[tree-ssa] Out of SSA status and issues

Michael S. Zick mszick@goquest.com
Sat May 17 17:19:00 GMT 2003


On Tuesday 13 May 2003 10:28 am, Richard Kenner wrote:
>     Consider instead that '*p' is just the name given a register's
>     contents.  Neither 'i' nor '9' are processor internal.  Both are
>     external to the cpu.  The memory reference for 'i' is source code
>     implicit, the memory reference for '*p' is source code explicit.
>
> True, but given caching effects, it's hard to see how *p could be less
> expensive than 'i'.

Six of one and half a dozen of the other.  Its a Union.

I am using "Union" in the general sense of either the union of two or
more data structures OR two or more code structures.
In this usage of "Union", an assignment statement is a "Union" -
including the assignment of a function result.

Our terminology and viewpoint differ, but we are talking about the
same thing.

As to the subject of this thread, a link you may find interesting:
<http://www.sac-home.org/>

Not for the specialization of "C" that the compiler processes, but for the
compiler options that allow it to be stopped and dump its internals.

Clipped from the help menu:

OPTIMIZATION OPTIONS:

         -ssa           use optimizations based on ssa-form.
         -no <opt>      disable optimization technique <opt>
         -do <opt>      enable optimization technique <opt>

        The following optimization techniques are currently supported:

                CF      constant folding
                INL     function inlining
                LUR     loop unrolling
                WLUR    with-loop unrolling
                LUS     loop unswitching
                DCR     dead code removal
                DFR     dead function removal
                LIR     loop invariant removal
                CSE     common subexpression elimination
                WLT     with-loop transformation
                WLF     with-loop folding
                DLAW    application of the distributive law
                IVE     index vector elimination
                AE      array elimination
                RCO     refcount optimization
                UIP     update-in-place
                AP      array padding
                APL     array placement
                TSI     tile size inference (blocking)
                TSP     tile size pragmas (blocking)
                MTO     multi-thread optimization
                SBE     syncronisation barrier elimination
                PHM     private heap management
                APS     arena preselection           (in conjunction with PHM)
                RCAO    refcount allocation optimiz. (in conjunction with PHM)
                MSCA    memory size cache adjustment (in conjunction with PHM)

                OPT     enables/disables all optimizations at once.

        Lower case letters may be used to indicate optimization techniques.

        Command line arguments are evaluated from left to right, i.e.,
        "-no OPT -do INL" disables all optimizations except for
        function inlining.

Mike



More information about the Gcc mailing list