aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2013-06-21 20:51:39 +0000
committerKevin Enderby <enderby@apple.com>2013-06-21 20:51:39 +0000
commit0fd064c1be9be0eaabb04a76eb8a5b4bbe780de8 (patch)
treef5f44cf5b43589d3dadaff23a459078ac8d3d6be /clang/lib/Frontend/CompilerInvocation.cpp
parentf6df64b6628d801888c85dd501e3ab3b03b703a1 (diff)
downloadllvm-0fd064c1be9be0eaabb04a76eb8a5b4bbe780de8.zip
llvm-0fd064c1be9be0eaabb04a76eb8a5b4bbe780de8.tar.gz
llvm-0fd064c1be9be0eaabb04a76eb8a5b4bbe780de8.tar.bz2
Improve the time it takes to generating dwarf for assembly source files
that have been run through the 'C' pre-processor. The implementation of SrcMgr.FindLineNumber() is slow but OK if it uses its cache when called multiple times with an SMLoc that is forward of the previous call. In the case of generating dwarf for assembly source files that have been run through the 'C' pre-processor we need to calculate the logical line number based on the last parsed cpp hash file line comment. And the current code calls SrcMgr.FindLineNumber() twice to do this causing its cache not to work and results in very slow compile times: % time /Volumes/SandBox/build-llvm/Debug+Asserts/bin/llvm-mc -triple thumbv7-apple-ios -filetype=obj -o /tmp/x.o mscorlib.dll.E -g 672.542u 0.299s 11:13.15 99.9% 0+0k 0+2io 2106pf+0w So we save the info from the last parsed cpp hash file line comment to avoid making the second call to SrcMgr.FindLineNumber() most times and end up with compile times like: % time /Volumes/SandBox/build-llvm/Debug+Asserts/bin/llvm-mc -triple thumbv7-apple-ios -filetype=obj -o /tmp/x.o mscorlib.dll.E -g 3.404u 0.104s 0:03.80 92.1% 0+0k 0+3io 2105pf+0w rdar://14156934 llvm-svn: 184592
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions