On Jul 3, 2008, at 3:01 PM, Joseph S. Myers wrote:
Taking an approach reduces startup time of the preprocessor,
because it
doesn't have to populate the identifier table with tons of
predefines.
I'd hope this is not a significant cost (certainly not compared to the
thousands of built-in functions on some target), though I haven't seen
recent figures for startup costs.
I was referring to clang startup times, not GCC. clang registers
builtins completely lazily, so they don't take significant time at
startup. Much of clang startup time is populating the predefined
identifier table for macros.
We have some existing practice for feature macros
(__GNUC_GNU_INLINE__,
__GNUC_STDC_INLINE__, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, ...).
Understood. Likewise many system headers have these. I don't think
we can eliminate existing macros, but adding a plethora of new macros
would be bad.
-Chris