[cfe-dev] adding FileSkipped() to PPCallbacks

Chris Lattner clattner at apple.com
Fri Apr 16 16:41:20 PDT 2010


On Apr 16, 2010, at 2:38 PM, Zhanyong Wan (λx.x x) wrote:

> On Fri, Apr 16, 2010 at 2:14 PM, Chris Lattner <clattner at apple.com> wrote:
>> 
>> On Apr 16, 2010, at 2:09 PM, Zhanyong Wan (λx.x x) wrote:
>> 
>>> Thanks for the review, Chris.  Please see the new patch.  I kept the
>>> signature of FileSkipped() unchanged to be consistent with
>>> FileChanged().
>> 
>> Keeping the interfaces consistent is nice, but is it really worth it?  This will punish other PPCallbacks that don't care about this, like -MM mode and friends.  SourceMgr.createFileID isn't hyper-expensive, but it is good to avoid work that no other client at all needs.  Sinking this work into the implementation that cares makes sense to me.
> 
> If createFileID() is called here, the file being skipped has already
> been processed earlier, which is a much more expensive operation.  So
> do we really want to sacrifice the cleanness of the API for it?

I'm pushing back because the preprocessor is a particularly performance sensitive part of the compiler, and this adds no value for any current clients.  I think the cost should be sunk into your client, even if it makes its implementation a little less elegant.

-Chris



More information about the cfe-dev mailing list