aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2016-01-19 14:55:02 +0000
committerDan Gohman <dan433584@gmail.com>2016-01-19 14:55:02 +0000
commitb13c91f159fa9b631cb15dc02ea0b72b2802ac4d (patch)
tree9a33816fe810b25dea1ce5e31e4e4851a5a400d3 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parent3196650bf31201ade71e01840fe844ecfaf9a687 (diff)
downloadllvm-b13c91f159fa9b631cb15dc02ea0b72b2802ac4d.zip
llvm-b13c91f159fa9b631cb15dc02ea0b72b2802ac4d.tar.gz
llvm-b13c91f159fa9b631cb15dc02ea0b72b2802ac4d.tar.bz2
[WebAssembly] Disable some WebAssembly-specific optimization passes at -O0.
llvm-svn: 258127
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp9
1 files changed, 6 insertions, 3 deletions
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 @@ void WebAssemblyPassConfig::addIRPasses() {
addPass(createAtomicExpandPass(TM));
// Optimize "returned" function attributes.
- addPass(createWebAssemblyOptimizeReturned());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyOptimizeReturned());
TargetPassConfig::addIRPasses();
}
@@ -165,7 +166,8 @@ void WebAssemblyPassConfig::addPreRegAlloc() {
TargetPassConfig::addPreRegAlloc();
// Prepare store instructions for register stackifying.
- addPass(createWebAssemblyStoreResults());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyStoreResults());
}
void WebAssemblyPassConfig::addPostRegAlloc() {
@@ -206,5 +208,6 @@ void WebAssemblyPassConfig::addPreEmitPass() {
addPass(createWebAssemblyRegNumbering());
// Perform the very last peephole optimizations on the code.
- addPass(createWebAssemblyPeephole());
+ if (getOptLevel() != CodeGenOpt::None)
+ addPass(createWebAssemblyPeephole());
}