This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/44249] [4.6/4.7 Regression] IRA generates extra register move
- From: "steven at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 09 Oct 2012 21:01:08 +0000
- Subject: [Bug rtl-optimization/44249] [4.6/4.7 Regression] IRA generates extra register move
- Auto-submitted: auto-generated
- References: <bug-44249-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44249
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.6/4.7/4.8 Regression] |[4.6/4.7 Regression] IRA
|IRA generates extra |generates extra register
|register move |move
--- Comment #5 from Steven Bosscher <steven at gcc dot gnu.org> 2012-10-09 21:01:08 UTC ---
No extra move with trunk today:
$ cat t.c
extern unsigned long table[];
unsigned long foo(unsigned char *p) {
unsigned long tag = *p;
return table[tag >> 4] + table[tag & 0xf];
}
$ cat t.s
.file "t.c"
.text
.p2align 4,,15
.globl foo
.type foo, @function
foo:
.LFB0:
.cfi_startproc
movzbl (%rdi), %edx
movq %rdx, %rax
shrq $4, %rdx
andl $15, %eax
movq table(,%rax,8), %rax
addq table(,%rdx,8), %rax
ret
.cfi_endproc
.LFE0:
.size foo, .-foo
.ident "GCC: (GNU) 4.8.0 20121008 (experimental) \
[trunk revision 192219]"
.section .note.GNU-stack,"",@progbits