# Intermediate code generation - Calculate maximum number of arguments that a function can have. Put procedure arguments onto the stack, above the stack pointer. Should the offsets be calculated during IR generation or target code generation? # ELF generation - Don't ignore relocations where the symbol is not defined in the symbol table. Report an error about an undefined symbol. # Name analysis - Format error messages. - Return non-zero error code on errors. # Built-in Printi should be able to print numbers with multiple digits.