- Before "real work", compiler has to initialize builtins and data structures.
- We now have 3 levels of initialization:
- Real one-time initialization.
- Initializing rtl and assembly generation, for each output file.
- Initializing pre-defined macros and identifiers, for each top-level input file.
- Existing code tangles these together with needless interdependencies.