TC-7 Goals

Things to learn during this stage that you should remember:

RISC vs. CISC etc.

Different kinds of microprocessors, different spirits in assembly.

Assembly

Understanding how computer actually run.

Memory hierarchy/management at runtime

Recursive languages need memory management to implement automatic variables.

Tree matching, rewriting

Perform instruction selection using pattern-matching.

Use of ios::xalloc

Instr are contained in Instrs, itself in Fragment, itself in Fragments. Suppose you mean to add a debugging flag to print an Instr, what shall you do? Add another argument to all the dump methods in these four hierarchies? The problem with Temp is even worse: they are scattered everywhere, yet we would like to specify how to output them thanks to a std::map. Should we pass this map in each and every single call?

Using ios::xalloc, ostream::pword, and ostream::iword saves the day.