summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2011-01-06 02:56:42 +0000
committerCameron Zwarich <zwarich@apple.com>2011-01-06 02:56:42 +0000
commit9ec19ea06a328cc91839b3f166a411ab410dae74 (patch)
treece316da8b66d14decf4d5835c1afe468f7b014d6 /llvm/lib
parentd28c78eb4f01fb9199072d661a04032b5be7a224 (diff)
downloadbcm5719-llvm-9ec19ea06a328cc91839b3f166a411ab410dae74.tar.gz
bcm5719-llvm-9ec19ea06a328cc91839b3f166a411ab410dae74.zip
Add the CallInst optimizations that don't involve expanding inline assembly to
OptimizeInst() so that they can be used on a worklist instruction. llvm-svn: 122945
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp b/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp
index 166d9d6ee3f..e3e634339e2 100644
--- a/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp
+++ b/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp
@@ -1014,6 +1014,13 @@ bool CodeGenPrepare::OptimizeInst(Instruction *I) {
MadeChange = true;
OptimizeInst(NC);
}
+ } else if (CallInst *CI = dyn_cast<CallInst>(I)) {
+ if (TLI && isa<InlineAsm>(CI->getCalledValue())) {
+ // Sink address computing for memory operands into the block.
+ MadeChange |= OptimizeInlineAsmInst(I, &(*CI), SunkAddrs);
+ } else {
+ MadeChange |= OptimizeCallInst(CI);
+ }
}
return MadeChange;
OpenPOWER on IntegriCloud