[cfe-commits] [PATCH] Allow PCHReader to be used without having a pre-initialized Preprocessor
Chris Lattner
clattner at apple.com
Thu Jun 18 09:31:41 PDT 2009
On Jun 18, 2009, at 8:04 AM, Douglas Gregor wrote:
>> Ah, okay, that makes sense. Although, what specific uses do you have
>> in mind? I can only think of a couple off the top of my head: a
>> dist-cc-like thing and an inter-procedural analysis tool.
>
> Another use of "load an AST and send it to codegen" is implement
> implicit template instantiation via prelinking. In this scheme,
> function templates are not implicitly instantiated in .o files.
> Instead, when the linker sees that it needs a symbol that
> corresponds to a template instantiation, it spawns the compiler to
> perform the template instantiation and give it a .o file containing
> that template instantiation.
>
> Prelinking can save a lot of disk I/O and a bunch of computation,
> since many templates end up being instantiated in several
> different .o files. With prelinking, these instantiations only
> happen once, and we only instantiate what the linker actually needs.
> However, prelinking has never been a huge win because "spawning the
> compiler" meant re-parsing all of the source code. With AST files,
> we only bring in the code that we need to perform the template
> instantiation itself.
That would be very nice. We'd only want to do that at -O0, because
this would prevent inlining of these templates etc. However it could
be a pretty huge compile-time performance win for -O0.
-Chris
More information about the cfe-commits
mailing list