Basic block infrastructure after dbr pass

Boris Boesler baembel@gmx.de
Tue Mar 18 12:16:00 GMT 2008


Am 17.03.2008 um 17:45 schrieb Jim Wilson:

> Boris Boesler wrote:
>>  But some basic blocks seem to point to insns which are not in the  
>> insn-list. I had a short look at dbr_schedule() in reorg.c and the  
>> basic blocks are not updated. Are they evaluated in a later pass?
>
> No.  See pass_free_cfg, which is the third pass before  
> pass_delay_slots.

  The following code generators use FOR_EACH_BB[_REVERSE] in the  
target machine dependent reorg pass:
	- bfin
	- frv
	- ia64
	- mt
	- s390
  Are these invalid code generators then? Or are we talking about  
different things?

  I have to check basic block boundaries:

   FOR_EACH_BB(bb) {
     edge e;
     edge_iterator ei;
     FOR_EACH_EDGE(e, ei, bb -> preds) {
	basic_block prev_bb = e -> src;
	check_boundary(bb, prev_bb);
     }
   }

  If this basic block infrastructure is not valid anymore is the pure  
insn-list the only data structure I can use?

Boris



More information about the Gcc mailing list