[PATCH] D20401: [Lexer] Don't merge macro args from different macro files

Vedant Kumar via cfe-commits cfe-commits at lists.llvm.org
Thu May 19 13:47:07 PDT 2016


vsk added a comment.

I discussed this bug with Argyrios off-list, who lgtm'd on the condition that it doesn't introduce a performance regression. He suggested preprocessing Cocoa.h to stress the patch. After running a stabilization script, I used this command to stress RelNoAsserts builds of clang both with and without this patch.

  for I in $(seq 1 100); do time $CC -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks -E Cocoa.h -o /dev/null; done

The results are basically in the noise (link to raw data: https://ghostbin.com/paste/r6cyh):

| Compiler           | **Unpatched** TOT | **Patched** TOT |
| Avg. wall time (s) | 0.21709           | 0.21608         |
| Std. deviation     | 0.02101           | 0.02219         |

I also made sure that the preprocessed sources emitted by the two compilers are the same.


http://reviews.llvm.org/D20401





More information about the cfe-commits mailing list