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]

Re: [tree-ssa]: Inserting on an entry block edge seems to cause asplit


On Sat, 2003-11-22 at 21:04, Daniel Berlin wrote:
> Block 0 before the insert:
> (gdb) p debug_tree_bb (succ->dest)
> ;; basic block 0, loop depth 0, count 0
> ;; prev block -1, next block 1
> ;; pred:       14 ENTRY (fallthru,exec)
> ;; succ:       6 (exec)

> Block 0 after the insert:
> (gdb) p debug_tree_bb (succ->dest->succ->dest)
> ;; basic block 0, loop depth 0, count 0
> ;; prev block 15, next block 1
> ;; pred:       15 (fallthru) 14
> ;; succ:       6 (exec)

> 
> Newly created block 15:
> (gdb) p debug_tree_bb (succ->dest)
> ;; basic block 15, loop depth 0, count 0
> ;; prev block -1, next block 0
> ;; pred:       ENTRY (fallthru,exec)
> ;; succ:       0 (fallthru)
> pretmp.22_18 = pitch_49 * 3;
> 
> $7 = void
> 
> 
> Any clue why it decides it should up and create a fallthru block 
> between ENTRY_BLOCK
> and 0?
> 
Err, am I misreading it? It looks like 0 has 2 predecessors, ENTRY and
14. So if you insert on ENTRY->0, you have to split the edge since you
can't append to ENTRY... So now we have ENTRY->15->0

Nadrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]