I checked a patch into the ia64-improvements branch to move Superblock formation to the Tree-SSA level. This patch also brings an update to the trace formation pass. When building a trace inside a loop, we now follow the backedge once to add the loop header to the trace. This allows tail duplication to form a superblock loop that can be processed by the loop unroller later on.

2006-02-17  Robert Kidd  <[EMAIL PROTECTED]>

        * tracer.c (mark_bb_seen): New function.
        (bb_seen_p): New function.
        (count_insns): Use estimate_num_insns instead of counting RTL
        instructions.
        (find_trace): Tracing a loop now traverses the back edge once
        to duplicate the loop header.
        (tail_duplicate): Phi nodes are fixed after duplicating
        blocks.
        (layout_superblocks): Remove function.
        (execute_tracer): CFG layout stuff is not needed at the tree
        level.
        (rest_of_handle_tracer): Remove function.
        * bb-reorder.c (rest_of_handle_reorder_blocks): Removed call
        to RTL level tracer.
        * passes.c (init_optimization_passes): Moved pass_tracer from
        after pass_rtl_ifcvt to after pass_build_ssa.

Robert Kidd
[EMAIL PROTECTED]

Reply via email to