This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC PATCH] Fix middle-end/6963
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Ulrich dot Weigand at de dot ibm dot com, Richard Henderson <rth at redhat dot com>, Mark Mitchell <mark at codesourcery dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Alan Modra <amodra at bigpond dot net dot au>
- Date: Thu, 27 Jun 2002 18:29:25 -0400
- Subject: Re: [RFC PATCH] Fix middle-end/6963
- References: <OF17FC4659.82065A56-ONC1256BDF.0064A7C1@de.ibm.com>
A little more information about the divergence: at -O1, the RTL
difference begins with flow2. With the function.c patch virtual-stack-vars
reg remains alive after reload:
(note 120 209 228 NOTE_INSN_DELETED)
-(insn 228 120 229 (set (mem/f:DI (plus:DI (reg/f:DI 31 r31)
- (const_int 120 [0x78])) [0 S8 A64])
+(insn 228 120 229 (set (mem/f:DI (plus:DI (reg/f:DI 111 virtual-stack-vars)
+ (const_int 8 [0x8])) [0 S8 A64])
(reg/v:DI 63 f31 [119])) 314 {*movdi_internal64} (nil)
(expr_list:REG_DEAD (reg/v:DI 63 f31 [119])
(nil)))
(insn 229 228 230 (set (reg:DI 0 r0)
- (mem/f:DI (plus:DI (reg/f:DI 31 r31)
- (const_int 120 [0x78])) [0 S8 A64])) 314 {*movdi_internal64} (nil)
+ (mem/f:DI (plus:DI (reg/f:DI 111 virtual-stack-vars)
+ (const_int 8 [0x8])) [0 S8 A64])) 314 {*movdi_internal64} (nil)
(nil))
(insn 230 229 231 (parallel[
@@ -450,15 +450,15 @@
] ) 220 {*adddi3_internal3} (insn_list 229 (nil))
(nil))
-(insn 231 230 232 (set (mem/f:DI (plus:DI (reg/f:DI 31 r31)
- (const_int 120 [0x78])) [0 S8 A64])
+(insn 231 230 232 (set (mem/f:DI (plus:DI (reg/f:DI 111 virtual-stack-vars)
+ (const_int 8 [0x8])) [0 S8 A64])
(reg:DI 0 r0)) 314 {*movdi_internal64} (insn_list 230 (nil))
(expr_list:REG_DEAD (reg:DI 0 r0)
(nil)))
(insn 232 231 233 (set (reg/v:DI 63 f31 [119])
- (mem/f:DI (plus:DI (reg/f:DI 31 r31)
- (const_int 120 [0x78])) [0 S8 A64])) 314 {*movdi_internal64} (nil)
+ (mem/f:DI (plus:DI (reg/f:DI 111 virtual-stack-vars)
+ (const_int 8 [0x8])) [0 S8 A64])) 314 {*movdi_internal64} (nil)
(nil))
(jump_insn 233 232 143 (set (pc)
@@ -470,7 +470,7 @@
(expr_list:REG_BR_PROB (const_int 8900 [0x22c4])
(nil))))
;; End of basic block 8, registers live:
- 1 [1] 30 [30] 31 [31] 63 [31]
+ 1 [1] 30 [30] 31 [31] 63 [31] 111
(note 143 233 145 NOTE_INSN_LOOP_END)