This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/35605] New: Label references are not updated after edge insertion
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Mar 2008 07:40:29 -0000
- Subject: [Bug rtl-optimization/35605] New: Label references are not updated after edge insertion
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This problem can be seen by compiling testsuite/gfortran.dg/g77/ndrm2.f. The
label reference (after x87 stack compensation edge is inserted) is updated only
in final jump insn, but other references to the same label are left untouched.
We enter stack pass with:
(insn:TI 19 20 18 4 dnrm2.f:33 (set (reg/v/f:SI 1 dx [orig:73 next.2 ] [73])
(label_ref:SI 53)) 47 {*movsi_1} (expr_list:REG_EQUAL (label_ref:SI 53)
(insn_list:REG_LABEL_OPERAND 53 (nil))))
...
(insn 23 137 17 4 dnrm2.f:40 (set (reg:CCZ 17 flags)
(compare:CCZ (reg/v/f:SI 1 dx [orig:73 next.2 ] [73])
(label_ref:SI 53))) 5 {*cmpsi_1_insn} (insn_list:REG_LABEL_OPERAND
53 (nil)))
...
(jump_insn 24 245 355 4 dnrm2.f:40 (set (pc)
(if_then_else (eq (reg:CCZ 17 flags)
(const_int 0
--
Summary: Label references are not updated after edge insertion
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ubizjak at gmail dot com
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35605