[Bug middle-end/48486] cfgexpand leaves BARRIERs at the end of basic blocks

steven at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Apr 6 22:39:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48486

--- Comment #2 from Steven Bosscher <steven at gcc dot gnu.org> 2011-04-06 22:38:51 UTC ---
find_many_sub_basic_blocks breaks its own STATE:

Breakpoint 6, find_many_sub_basic_blocks (blocks=0x19b6ea0) at
../../trunk/gcc/cfgbuild.c:577
577         SET_STATE (bb,
(gdb) p bb
$24 = (basic_block) 0x7ffff70d1f08
(gdb) watch ((basic_block) 0x7ffff70d1f08)->aux
Hardware watchpoint 9: ((struct basic_block_def *) 140737338220296)->aux
(gdb) cont
Continuing.
Hardware watchpoint 9: ((struct basic_block_def *) 140737338220296)->aux

Old value = (void *) 0x0
New value = (void *) 0x2
find_many_sub_basic_blocks (blocks=0x19b6ea0) at ../../trunk/gcc/cfgbuild.c:576
576       FOR_EACH_BB (bb)
(gdb) cont
Continuing.
Hardware watchpoint 9: ((struct basic_block_def *) 140737338220296)->aux

Old value = (void *) 0x2
New value = (void *) 0x22
mark_tablejump_edge (label=0x7ffff6fdb000) at ../../trunk/gcc/cfgbuild.c:391
391     }
(gdb) l cfgbuild.c:577
572     find_many_sub_basic_blocks (sbitmap blocks)
573     {
574       basic_block bb, min, max;
575
576       FOR_EACH_BB (bb)
577         SET_STATE (bb,
578                    TEST_BIT (blocks, bb->index) ? BLOCK_TO_SPLIT :
BLOCK_ORIGINAL);
579
580       FOR_EACH_BB (bb)
581         if (STATE (bb) == BLOCK_TO_SPLIT)
(gdb) l cfgbuild.c:391
386       /* See comment in make_label_edge.  */
387       if (INSN_UID (label) == 0)
388         return;
389       bb = BLOCK_FOR_INSN (label);
390       SET_STATE (bb, FULL_STATE (bb) | BLOCK_USED_BY_TABLEJUMP);
391     }
392
393     static void
394     purge_dead_tablejump_edges (basic_block bb, rtx table)
395     {
(gdb) 
(gdb) cont
Continuing.

Breakpoint 7, find_many_sub_basic_blocks (blocks=0x19b6ea0) at
../../trunk/gcc/cfgbuild.c:581
581         if (STATE (bb) == BLOCK_TO_SPLIT)
(gdb) p STATE(bb)
$25 = 34
(gdb)



More information about the Gcc-bugs mailing list