IMA for C++
Use of the -combine flag in C++, permitting inlining and other interprocedural optimisations to work between modules. Definitions (like classes) which have been seen already are skipped and not re-parsed. Template instantiations occur only once per compilation. There may be a mode in which a PCH file counts as a separate translation unit, giving a speed benefit due to the skipping but no semantic changes.
Compile speed benefits (skipping of duplicate declarations, fewer template instantiations), even at -O0
- Optimisation benefits
Foundation for export implementation
- New PCH mode
- The primary work is in the C++ name lookup code and the parser. Some small consequential modifications elsewhere.