This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/44973] New: SH: libjava failed to build with 'flow control insn inside a basic block'
- From: "kkojima at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Jul 2010 21:27:52 -0000
- Subject: [Bug rtl-optimization/44973] New: SH: libjava failed to build with 'flow control insn inside a basic block'
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
On sh4-unknown-linux-gnu,
r162270 | bernds | 2010-07-17 08:47:46 +0900 (Sat, 17 Jul 2010) | 26 lines
caused a build failure during compiling libjava:
../trunk/libjava/verify.cc: In member function 'void
_Jv_BytecodeVerifier::merge_into(int, _Jv_BytecodeVerifier::state*)':
../trunk/libjava/verify.cc:1527:3: error: in basic block 200:
../trunk/libjava/verify.cc:1527:3: error: flow control insn inside a basic
block
(insn 1318 1315 1309 200 ../trunk/libjava/verify.cc:686 (set (reg:SI 1 r1
[orig:447 D.22193 ] [447])
(mem/s:SI (plus:SI (reg/v/f:SI 9 r9 [orig:452 from_state ] [452])
(const_int 24 [0x18])) [45 MEM[(const struct type
&)from_state_22(D) + 16].pc+0 S4 A32])) 176 {movsi_ie} (expr_list:REG_EH_REGION
(const_int 3 [0x3])
(nil)))
../trunk/libjava/verify.cc:1527:3: internal compiler error: in
rtl_verify_flow_info_1, at cfgrtl.c:2030
P../trunk/libjava/verify.cc: In member function 'void
_Jv_BytecodeVerifier::merge_into(int, _Jv_BytecodeVerifier::state*)':
../trunk/libjava/verify.cc:1527:3: error: in basic block 200:
../trunk/libjava/verify.cc:1527:3: error: flow control insn inside a basic
block
(insn 1318 1315 1309 200 ../trunk/libjava/verify.cc:686 (set (reg:SI 1 r1
[orig:447 D.22193 ] [447])
(mem/s:SI (plus:SI (reg/v/f:SI 9 r9 [orig:452 from_state ] [452])
(const_int 24 [0x18])) [45 MEM[(const struct type
&)from_state_22(D) + 16].pc+0 S4 A32])) 176 {movsi_ie} (expr_list:REG_EH_REGION
(const_int 3 [0x3])
(nil)))
../trunk/libjava/verify.cc:1527:3: internal compiler error: in
rtl_verify_flow_info_1, at cfgrtl.c:2030
It seems that the patch below restores the build on SH, though
I'm not sure if it's the right thing to do.
diff -up ORIG/trunk/gcc/postreload.c trunk/gcc/postreload.c
--- ORIG/trunk/gcc/postreload.c 2010-07-17 10:31:33.000000000 +0900
+++ trunk/gcc/postreload.c 2010-07-17 23:07:42.000000000 +0900
@@ -924,6 +924,9 @@ reload_combine_recognize_const_pattern (
if (must_move_add && use_ruid < last_jump_ruid)
break;
+ if (find_reg_note (use_insn, REG_EH_REGION, NULL))
+ break;
+
/* If the add clobbers another hard reg in parallel, don't move
it past a real set of this hard reg. */
if (must_move_add && clobbered_regno >= 0
--
Summary: SH: libjava failed to build with 'flow control insn
inside a basic block'
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kkojima at gcc dot gnu dot org
GCC target triplet: sh4-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44973