diff options
author | Cameron Zwarich <zwarich@apple.com> | 2011-01-06 02:56:42 +0000 |
---|---|---|
committer | Cameron Zwarich <zwarich@apple.com> | 2011-01-06 02:56:42 +0000 |
commit | 9ec19ea06a328cc91839b3f166a411ab410dae74 (patch) | |
tree | ce316da8b66d14decf4d5835c1afe468f7b014d6 /llvm/lib | |
parent | d28c78eb4f01fb9199072d661a04032b5be7a224 (diff) | |
download | bcm5719-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.cpp | 7 |
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; |