[WebAssembly] Disable some WebAssembly-specific optimization passes at -O0.
llvm-svn: 258127
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
index b290b4b..9228ecb 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -140,7 +140,8 @@
addPass(createAtomicExpandPass(TM));
// Optimize "returned" function attributes.
- addPass(createWebAssemblyOptimizeReturned());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyOptimizeReturned());
TargetPassConfig::addIRPasses();
}
@@ -165,7 +166,8 @@
TargetPassConfig::addPreRegAlloc();
// Prepare store instructions for register stackifying.
- addPass(createWebAssemblyStoreResults());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyStoreResults());
}
void WebAssemblyPassConfig::addPostRegAlloc() {
@@ -206,5 +208,6 @@
addPass(createWebAssemblyRegNumbering());
// Perform the very last peephole optimizations on the code.
- addPass(createWebAssemblyPeephole());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyPeephole());
}