This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Oct 2012 00:10:37 +0000
- Subject: [Bug rtl-optimization/55093] [4.8 Regression] [x32] -maddress-mode=long failed
- Auto-submitted: auto-generated
- References: <bug-55093-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55093
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #28541|0 |1
is obsolete| |
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> 2012-10-29 00:10:37 UTC ---
Created attachment 28552
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28552
A smaller testcase
LRA failed to handle
(insn 34 32 35 4 (parallel [
(set (reg:SI 79)
(plus:SI (subreg:SI (reg/f:DI 16 argp) 0)
(const_int 4 [0x4])))
(clobber (reg:CC 17 flags))
]) x.ii:63 247 {*addsi_1}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0)
(const_int 4 [0x4]))
(nil))))
The old reload eliminates argp:
(insn 34 49 35 4 (parallel [
(set (reg:SI 4 si [79])
(plus:SI (reg:SI 4 si [79])
(const_int 20 [0x14])))
(clobber (reg:CC 17 flags))
]) x.ii:63 247 {*addsi_1}
(expr_list:REG_EQUIV (plus:SI (subreg:SI (plus:DI (reg/f:DI 7 sp)
(const_int 16 [0x10])) 0)
(const_int 4 [0x4]))
(nil)))
while LRA keeps:
(insn 34 32 35 4 (parallel [
(set (reg:SI 4 si [79])
(plus:SI (reg:SI 16 argp)
(const_int 20 [0x14])))
(clobber (reg:CC 17 flags))
]) x.ii:63 247 {*addsi_1}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUIV (plus:SI (subreg:SI (reg/f:DI 16 argp) 0)
(const_int 4 [0x4]))
(nil))))