Subject: Liveness Analysis and Register Allocation
Text: Read Appel p. 218—223 (excluding representation of sets). Then read bottom of p.225 (Static vs Dynamic Liveness) until 229 (without section 10.2). Finally read about Register Allocation starting at page 235 and ending at p.248 (without section 11.4). Time permitting we may also discuss section 11.5. Also skim section 2.4.1 of spru198 (Programmer's Guide).
Prerequisites: instruction selection (as explained in episode 4).
Comments: We will mostly focus on translating machine programs with abstract registers to concrete programs (register allocation). Liveness analysis will serve us to this purpose, by providing information how to do it more efficiently. In the last part of the lecture we shall briefly mention C67x compiler intrinsics, encourage their use (and explain why not using them would be bad, referring to techniques of episodes 4 and 5).
Time: Tuesday, 5 Apr, 12:30—14:15. Room A6-308
Tutorial: 14:30–16:00. Room your group office.
Resources: