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

2019-03-05 Thread steven at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48486

Steven Bosscher  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #3 from Steven Bosscher  ---
Can't reproduce with trunk.

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

2011-04-06 Thread steven at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48486

Steven Bosscher steven at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.04.06 22:09:35
 Blocks||48389
 AssignedTo|unassigned at gcc dot   |steven at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2011-04-06 
22:09:35 UTC ---
Found while looking into a way to fix bug 48389 without having two calls of
rebuild_jump_labels().

Mine.


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

2011-04-06 Thread steven at gcc dot gnu.org
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) 0x770d1f08
(gdb) watch ((basic_block) 0x770d1f08)-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=0x76fdb000) 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,
578TEST_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)