diff options
author | Dan Gohman <dan433584@gmail.com> | 2016-01-19 14:55:02 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2016-01-19 14:55:02 +0000 |
commit | b13c91f159fa9b631cb15dc02ea0b72b2802ac4d (patch) | |
tree | 9a33816fe810b25dea1ce5e31e4e4851a5a400d3 /llvm/lib/Target/WebAssembly | |
parent | 3196650bf31201ade71e01840fe844ecfaf9a687 (diff) | |
download | llvm-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')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | 9 |
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()); } |