Where does the optimiser fit in within the compiler pipeline
Middle: After front-end (AST), before backend (Binary).
What are 3 different angles an optimiser could optimise for
What are compiler optimisation flags used for
How does the optimser (compiler) transform the IR (ie AST) (and what is a basic block)
What is subexpression elimination (compiler). Use it on the following code
What is dead code elimination (compiler). Use it on the following code
What is constant folding (compiler). Use it on the following code
What is loop-invariant hoisting (compiler), use it on the following code
What is function inlining (compiler). Use it on the following code
Strength reduction (compiler): What is a loop induction variable (linear)
Using a loop induction variable (linear), strength reduce the following code
What are the 4 steps of strength reduction (compiler)
What is the purpose of register allocation (in terms of an unlimited amount of variables) (and what is register spilling)
Register allocation: what is the purpose of liveness analysis and how to decide if a variable is live.
What is the liveness analysis of the following program:
How does a linear scan determine variable liveness and register allocation:
What would a linear scan of the following program look like
What is graph coloring for register allocation
What would the graph coloring for the following program look like