diff options
author | Dan Gohman <dan433584@gmail.com> | 2015-11-25 16:55:01 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2015-11-25 16:55:01 +0000 |
commit | 81719f8555464ed6dd12ddc1d122a2dee7755d0f (patch) | |
tree | 8bab717038c93920ded1a24a49ce591402a62e67 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | |
parent | 2c8fe6a428668f8fdbdb88d98104f591ff142ad8 (diff) | |
download | llvm-81719f8555464ed6dd12ddc1d122a2dee7755d0f.zip llvm-81719f8555464ed6dd12ddc1d122a2dee7755d0f.tar.gz llvm-81719f8555464ed6dd12ddc1d122a2dee7755d0f.tar.bz2 |
[WebAssembly] Support for register stackifying with load and store instructions.
llvm-svn: 254076
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp index d60c41a..493e4be 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp @@ -143,6 +143,9 @@ void WebAssemblyPassConfig::addIRPasses() { // control specifically what gets lowered. addPass(createAtomicExpandPass(TM)); + // Optimize "returned" function attributes. + addPass(createWebAssemblyOptimizeReturned()); + TargetPassConfig::addIRPasses(); } @@ -157,6 +160,9 @@ bool WebAssemblyPassConfig::addInstSelector() { bool WebAssemblyPassConfig::addILPOpts() { return true; } void WebAssemblyPassConfig::addPreRegAlloc() { + // Prepare store instructions for register stackifying. + addPass(createWebAssemblyStoreResults()); + // Mark registers as representing wasm's expression stack. addPass(createWebAssemblyRegStackify()); } @@ -183,4 +189,5 @@ void WebAssemblyPassConfig::addPreSched2() {} void WebAssemblyPassConfig::addPreEmitPass() { addPass(createWebAssemblyCFGStackify()); addPass(createWebAssemblyRegNumbering()); + addPass(createWebAssemblyPeephole()); } |