aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/Utils/SimplifyLibCalls.cpp
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2013-02-27 05:53:43 +0000
committerNadav Rotem <nrotem@apple.com>2013-02-27 05:53:43 +0000
commitf26b4f05b3fdd8618f75b8784388e8415a6eea0c (patch)
tree13ef85aef6048a51854d4601c594414a38e5c00d /lib/Transforms/Utils/SimplifyLibCalls.cpp
parentbd2d1245e7db11b58b52c5b36fe76925683aaea5 (diff)
downloadexternal_llvm-f26b4f05b3fdd8618f75b8784388e8415a6eea0c.zip
external_llvm-f26b4f05b3fdd8618f75b8784388e8415a6eea0c.tar.gz
external_llvm-f26b4f05b3fdd8618f75b8784388e8415a6eea0c.tar.bz2
For each function that we optimize we initialize a new list of lib functions. For each function name we malloc memory. This patch changes the Libcall map to use BumpPtrAllocator. Now we malloc only once. This speeds up instcombine by a few % on a large c++ program.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176170 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/SimplifyLibCalls.cpp')
-rw-r--r--lib/Transforms/Utils/SimplifyLibCalls.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Transforms/Utils/SimplifyLibCalls.cpp b/lib/Transforms/Utils/SimplifyLibCalls.cpp
index 8ad566c..9b39bf4 100644
--- a/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -23,6 +23,7 @@
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
+#include "llvm/Support/Allocator.h"
#include "llvm/Target/TargetLibraryInfo.h"
#include "llvm/Transforms/Utils/BuildLibCalls.h"
@@ -1672,7 +1673,7 @@ class LibCallSimplifierImpl {
const TargetLibraryInfo *TLI;
const LibCallSimplifier *LCS;
bool UnsafeFPShrink;
- StringMap<LibCallOptimization*> Optimizations;
+ StringMap<LibCallOptimization*, BumpPtrAllocator> Optimizations;
// Fortified library call optimizations.
MemCpyChkOpt MemCpyChk;