[cfe-commits] [PATCH] Keep history of macro definitions and #undefs

Alexander Kornienko reviews at llvm-reviews.chandlerc.com
Wed Aug 29 11:32:49 PDT 2012


  I've made a quick-and-dirty performance measurement using almost all boost
  1.51 headers. The test source file, script and execution logs are attached.
  Clang was built with gcc (hence log names).

  TL;DR: changes 'caused by the patch: preprocessor memory usage 5.9M ->7.4M,
  total time: no measurable difference (both about 4.8s).

  As for the test input, I consider it quite a heavy load on preprocessor:

  *** Preprocessor Stats:
  75165 directives found:
    19499 #define.
    4433 #undef.
    #include/#include_next/#import:
      5357 source files entered.
      27 max include stack depth
    19919 #if/#ifndef/#ifdef.
    2459 #else/#elif.
    7110 #endif.
    426 #pragma.
  14996 #if/#ifndef#ifdef regions skipped
  82955/459701/1316 obj/fn/builtin macros expanded, 88278 on the fast path.
  129361 token paste (##) operations performed, 11361 on the fast path.

  Difference between execution logs:

  diff clang-gcc-perf-before-patch.log clang-gcc-perf-with-patch.log
  193,194c193,194
  < Preprocessor Memory: 5940151B total
  <   BumpPtr: 4464640
  ---
  > Preprocessor Memory: 7394231B total
  >   BumpPtr: 5918720
  229c229
  < FileID scans: 205598 linear, 2102385 binary.
  ---
  > FileID scans: 205604 linear, 2102345 binary.
  239,241c239,241
  < real 0m4.872s
  < user 0m4.700s
  < sys 0m0.160s
  ---
  > real 0m4.796s
  > user 0m4.560s
  > sys 0m0.220s
  434,435c434,435
  < Preprocessor Memory: 5940151B total
  <   BumpPtr: 4464640
  ---
  > Preprocessor Memory: 7394231B total
  >   BumpPtr: 5918720
  480,482c480,482
  < real 0m4.819s
  < user 0m4.620s
  < sys 0m0.180s
  ---
  > real 0m4.882s
  > user 0m4.730s
  > sys 0m0.140s
  675,676c675,676
  < Preprocessor Memory: 5940151B total
  <   BumpPtr: 4464640
  ---
  > Preprocessor Memory: 7394231B total
  >   BumpPtr: 5918720
  711c711
  < FileID scans: 205598 linear, 2102365 binary.
  ---
  > FileID scans: 205604 linear, 2102385 binary.
  721,723c721,723
  < real 0m4.794s
  < user 0m4.610s
  < sys 0m0.170s
  ---
  > real 0m4.789s
  > user 0m4.630s
  > sys 0m0.150s

http://llvm-reviews.chandlerc.com/D28

COMMIT
  http://llvm-reviews.chandlerc.com/rL162810



More information about the cfe-commits mailing list