This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
As hinted in the thread at <URL:http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01585.html> barriers don't have bb pointers, so nothing should set or inspect that insn field. An alternative solution is to enable this field for barriers, but as it should always be NULL, it's obviously less desirable. Built and checked i686-pc-linux-gnu, cross to mmix-knuth-mmixware, no Ada. There's reason for me to be more careful about obviousness, still this patch is simpler, even more obvious than the previous one, so committed. I omit the reversion for emit-rtl.c in this patch. As an aside, due to statements that --enable-checking=rtl shows nothing interesting for common targets I built and checked on i686-pc-linux-gnu (FC2) with --enable-checking=rtl. I see one additional FAIL compared to no --enable-checking option: Running /home/hp/gcc/gcc/libjava/testsuite/libjava.lang/lang.exp ... ... FAIL: pr83 -O3 compilation from bytecode This is in addition to the above testing with this patch here and the old one reverted. The FAIL is entered as PR java/18068. * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, don't inspect BLOCK_FOR_INSN for barriers. * emit-rtl.c (emit_barrier_before): Revert last change. (emit_barrier_after, emit_barrier): Ditto. Index: cfgrtl.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/cfgrtl.c,v retrieving revision 1.137 diff -p -c -r1.137 cfgrtl.c *** cfgrtl.c 18 Oct 2004 01:56:03 -0000 1.137 --- cfgrtl.c 19 Oct 2004 23:39:48 -0000 *************** rtl_verify_flow_info_1 (void) *** 2074,2082 **** for (x = BB_HEAD (bb); x != NEXT_INSN (BB_END (bb)); x = NEXT_INSN (x)) /* We may have a barrier inside a basic block before dead code ! elimination. They always have a NULL BLOCK_FOR_INSN. */ ! if (BLOCK_FOR_INSN (x) != bb ! && !(BARRIER_P (x) && BLOCK_FOR_INSN (x) == NULL)) { debug_rtx (x); if (! BLOCK_FOR_INSN (x)) --- 2074,2081 ---- for (x = BB_HEAD (bb); x != NEXT_INSN (BB_END (bb)); x = NEXT_INSN (x)) /* We may have a barrier inside a basic block before dead code ! elimination. There is no BLOCK_FOR_INSN field in a barrier. */ ! if (!BARRIER_P (x) && BLOCK_FOR_INSN (x) != bb) { debug_rtx (x); if (! BLOCK_FOR_INSN (x)) brgds, H-P
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |