Native code generation
Explain the major differences between (1) the naive code generation approach (slide 12), (2) the fixed
register-allocation scheme, and (3) the basic-block register-allocation scheme.
- In which cases does the basic-block register-allocation scheme really pay off?
- What else can be done to improve register allocation?
- Try to describe a simple whole-program analysis that can be used to disambiguate virtual dispatch
in Java programs, i.e. that can often decide which of all the potential virtual methods at a
virtual call site will be called at runtime.