This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/26505] New: Storing float to int into two different pointers requires stack space
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Mar 2006 05:21:49 -0000
- Subject: [Bug target/26505] New: Storing float to int into two different pointers requires stack space
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Testcase (modified from testcase which Chris Latter was looking at):
void foo(float a, int *b) { b[0] = b[1] = a; }
----
Currently we get:
fctiwz f0,f1
addi r2,r1,-24
stfiwx f0,0,r2
lwz r0,-24(r1)
stw r0,0(r4)
stw r0,4(r4)
------
We should be able to get:
fctiwz f0,f1
stfiwx f0,0,r4
li r2, 4
stfiwx f0,r2,r4
---- or -----
fctiwz f0,f1
stfiwx f0,0,r4
addi r4, r4, 4
stfiwx f0,0,r4
Depending on a lot of stuff
I don't know how much this shows up in real code.
--
Summary: Storing float to int into two different pointers
requires stack space
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
GCC target triplet: powerpc-darwin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26505