Go to the first, previous, next, last section, table of contents.
Loading
- very easy optimiations
-
- special transformations
-
- determination of BBL boundaries
-
- construction of CFG
-
Construct Flowgraph and Datastructures (BinaryConstructFlowgraph
)
- Increase size of date section to make space for new jumptables
- Mark function beginnings
- Mark basic block beginnings
- Use symboltable and reloc information to mark even more
- Create basic blocks and functions
- Create edges
Optimize Binary (BinaryProcess
)
- Iteratively apply easy optimizations
- Hard optimizations (Inlining,Stackmerging)
- Iteratively apply easy optimizations
Assemble (BinaryAssemble
)
- Layout all the basic blocks in the program in "a good order" and put them
in a single function. Create unconditional branches where necessary.
- Determine which basic blocks should be aligned.
- Schedule basic blocks.
- Relocate the code
Saving
Go to the first, previous, next, last section, table of contents.