-
The classic approach leads to lots of extra work:
-
Forking a new
cc1 (and as)
for each source file.
-
Initializing
cc1 internal state (such
as predefined declarations).
-
Processing external modules (header files) is
re-done each time.
-
The latter is most significant as it leads to
O(N2) behavior.