This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/30688] Branch registers loaded too late on ia64
- From: "ak at muc dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Feb 2007 11:22:54 -0000
- Subject: [Bug rtl-optimization/30688] Branch registers loaded too late on ia64
- References: <bug-30688-7834@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from ak at muc dot de 2007-02-03 11:22 -------
Here's a simple test case:
void f(int k, int (*fptr)(int i))
{
int i;
/* Do something useless */
for (i = 0; i < 5; i++)
k *= 10;
fptr(k);
}
compiled with 4.3.0 20070203 gives
...
;;
.mmi
nop 0
mov r1 = r36
mov b0 = r34
.mib
nop 0
mov ar.pfs = r35
br.ret.sptk.many b0
Note b0 is only loaded directly in front of the branch, even though it could
have been loaded much earlier in front of the loop.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30688