This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa]: Inserting on an entry block edge seems to cause a split
On Nov 22, 2003, at 11:25 PM, Andrew MacLeod wrote:
On Sat, 2003-11-22 at 21:27, Daniel Berlin wrote:
Err, am I misreading it? It looks like 0 has 2 predecessors, ENTRY
Any clue why it decides it should up and create a fallthru block
14. So if you insert on ENTRY->0, you have to split the edge since
can't append to ENTRY...
Why can't we append to ENTRY again? ENTRY only goes to 0 (by
and it has code associated with it (or so debug_tree_bb claims).
Multiple entry points would have more successors than just BB 0. I
wouldn't expect ENTRY to ever have code associated with it. It ought to
be a symbolic representation of flow coming into the function. The
function ought not be able to put code into the ENTRY or EXIT block,
just on edges from ENTRY and to EXIT. At least in my view..
Otherwise, this is gonna get ugly, i'm sure.
This is what i get for trying to fix bugs :P
Any code thats written ought not be assuming block 0 is the first
executed block... or thats a bug
No, that's not the problem.
The problem is that it causes new bb creation during insertion, which
is what we were trying to avoid through critical edge splitting.
My two options are to special case this and try to handle it right, or
just pre-split the entry->block 0 edge when block 0 has multiple preds.