summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-12-05 22:12:39 +0000
committerDan Gohman <dan433584@gmail.com>2015-12-05 22:12:39 +0000
commitd85c3b1fbc3817ad411919b18751d0d80aa92d44 (patch)
treeeab26dd73fb54b4892c8a0f1decb8401881f572a /llvm/lib
parenta019e81df975f86161d404eae6416f7156b89813 (diff)
downloadbcm5719-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.cpp3
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++;
OpenPOWER on IntegriCloud