aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2019-07-03 23:54:06 +0000
committerDerek Schuff <dschuff@google.com>2019-07-03 23:54:06 +0000
commitec4be576554c8be1c0a47cb78d411c3f42ba69e9 (patch)
treea880af9e1480765c2f1dfcee6b2601057f6347fc /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parent5b0922fe1f9dcecfc1f92bec21f1c8f3849daf31 (diff)
downloadllvm-ec4be576554c8be1c0a47cb78d411c3f42ba69e9.zip
llvm-ec4be576554c8be1c0a47cb78d411c3f42ba69e9.tar.gz
llvm-ec4be576554c8be1c0a47cb78d411c3f42ba69e9.tar.bz2
[WebAssembly] Enable IndirectBrExpandPass
Wasm doesn't have a direct way to lower indirectbr, so hook up the IndirectBrExpandPass to lower indirectbr into a switch. Fixes PR42498 Reviewers: aheejin Differential Revision: https://reviews.llvm.org/D64161 llvm-svn: 365096
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
index 937d272..a75df34 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -368,6 +368,9 @@ void WebAssemblyPassConfig::addIRPasses() {
addPass(createWebAssemblyLowerEmscriptenEHSjLj(EnableEmException,
EnableEmSjLj));
+ // Expand indirectbr instructions to switches.
+ addPass(createIndirectBrExpandPass());
+
TargetPassConfig::addIRPasses();
}