-
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.