Pass Description Dump
Loop Moves constants out of loops, performs strength optimisation and loop unrolling. .loop, .cse2
Flow Another bunch of jump optimisation passes .cfg
Branch prob Instrument and analyse based on program flow graph. Can read info on previous program execution. .bp
Life analysis Figures which pseudos are live at each basic block boundary. Adds REG_DEAD/UNUSED notes, links instructions which use a reg with the insn that set the reg. .life
Combine Instruction combination attempts to combine groups of 2 or 3 RTL insns into single insns. .combine
If-conversion Transforms conditional code into a single control scheme. .ce
Register movement Attempts to change registers used by instructions to avoid reg->reg movement. .regmove
Scheduling Re-orders instructions to separate the definition and use of items that would cause pipeline stalls. .sched
Reg class Which register class is best for this pseudo? .
Local reg alloc Allocates hardware regs within basic blocks. .lreg
Global reg alloc Does the rest of the regs. Runs another scheduling pass too. .greg
Reloading Renumbers pseudo regs with hard reg no. or replaces with stack slots. Finds insns that are now invalid due to being in a stack slot or wrong reg class, and emits insns to reload to temp regs. .postreload, .flow2
Reg rename Hard reg renaming and constant propagation. .rnreg

cont