[cfe-commits] cfe-commits Digest, Vol 49, Issue 1
zachw.foss at gmail.com
Sat Jul 2 09:17:36 PDT 2011
On Fri, Jul 1, 2011 at 8:07 PM, Douglas Gregor <dgregor at apple.com> wrote:
> On Jul 1, 2011, at 3:45 PM, Argyrios Kyrtzidis wrote:
> > On Jul 1, 2011, at 12:28 PM, Zach Wheeler wrote:
> >> Looking at DiagnosticIDs.cpp again, it seems that he probably didn't
> store straight StringRefs because they would not pack efficiently for the
> short strings he was anticipating.
> >> OK, I'm not following you. The compilation of /which file/ gets slowed
> down by constructor calls to /what object/, exactly?
> > DiagnosticIDs.cpp contains huge static arrays. Putting a StringRef into
> the struct there would make the struct non-POD and its constructor would
> have to be called, and since it is a global array all the constructor calls
> would occur in the global initializer function.
> > That caused a huge slow down when compiling that file but, apart from
> that, we generally try to avoid the need for global initializer functions as
> much as possible.
> ... especially because global initializer functions affect our startup
> - Doug
Thanks for clarifying Argyrios and Doug; I think I understand
DiagnosticIDs.cpp better now.
Perhaps I'm being dense, but still I don't understand why the methods in
Option.cpp have to call strlen so many times; it seems like there's a few
ways around that. Did I misunderstand something?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits