Speedup Function::getIntrinsicID() with caching of result
Jean-Luc Duprat
jduprat at apple.com
Wed Feb 27 17:16:23 PST 2013
The attached patch caches the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. This reduces the time actually spent doing string to ID conversion and shows a 10% improvement in compile time for a particularly bad case that involves ARM Neon intrinsics (these have many overloads).
This changes passes the regression tests and the nightly tests suite.
Before:
$ time ./Release+Asserts/bin/llc -march=arm -mattr=+neon /Users/jduprat/src/LLVM/llvm/test/CodeGen/ARM/vsub_JLD2.ll -O0
real 0m6.859s
$ time ./Release+Asserts/bin/llc -march=arm -mattr=+neon /Users/jduprat/src/LLVM/llvm/test/CodeGen/ARM/vsub_JLD2.ll -O2
real 0m7.490s
After:
$ time ./Release+Asserts/bin/llc -march=arm -mattr=+neon /Users/jduprat/src/LLVM/llvm/test/CodeGen/ARM/vsub_JLD2.ll -O0
real 0m6.139s
$ time ./Release+Asserts/bin/llc -march=arm -mattr=+neon /Users/jduprat/src/LLVM/llvm/test/CodeGen/ARM/vsub_JLD2.ll -O2
real 0m6.712s
Speedup -O0: 10.5%
Speedup -O2: 10.4%
JL
-------------- next part --------------
A non-text attachment was scrubbed...
Name: getIntrinsicID.patch
Type: application/octet-stream
Size: 5451 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130227/7b554127/attachment.obj>
-------------- next part --------------
More information about the llvm-commits
mailing list