diff options
author | Dan Gohman <dan433584@gmail.com> | 2015-12-05 22:12:39 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2015-12-05 22:12:39 +0000 |
commit | d85c3b1fbc3817ad411919b18751d0d80aa92d44 (patch) | |
tree | eab26dd73fb54b4892c8a0f1decb8401881f572a /llvm/lib | |
parent | a019e81df975f86161d404eae6416f7156b89813 (diff) | |
download | bcm5719-llvm-d85c3b1fbc3817ad411919b18751d0d80aa92d44.tar.gz bcm5719-llvm-d85c3b1fbc3817ad411919b18751d0d80aa92d44.zip |
[WebAssembly] Don't perform the returned-argument optimization on constants.
llvm-svn: 254866
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp index dea419c5975..4dc401a2c7c 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeReturned.cpp @@ -57,6 +57,9 @@ void OptimizeReturned::visitCallSite(CallSite CS) { if (CS.paramHasAttr(1 + i, Attribute::Returned)) { Instruction *Inst = CS.getInstruction(); Value *Arg = CS.getArgOperand(i); + // Ignore constants, globals, undef, etc. + if (isa<Constant>(Arg)) + continue; // Like replaceDominatedUsesWith but using Instruction/Use dominance. for (auto UI = Arg->use_begin(), UE = Arg->use_end(); UI != UE;) { Use &U = *UI++; |