Week 9
Code generation
- Derive code templates for a do-while loop and a for-loop,
similar to the template for while-loops, which was presented in class. solution
- Under which circumstances can a program store a value
different from this in local variable 0? Could a peephole
optimization
determine such circumstances? Answer: Variable 0 can hold other values (a) if
the surrounding method is a static method (this is not accessible) or if this is
never accessed in the current method. This property requires a live-variable analysis and
cannot be decided in a peephole optimizer.
- Assume a (static) method that stores the values x,y, and
z in local variables 0,1 and 2. Write down the code that the "naive"
code generation scheme would generate for the expression x==y || x==z.
Also write down the code that would be generated according to the
"Jumping Code" code-generation scheme. How many instructions do both
generated pieces of code execute in the case where "x==y" holds? solution
|