From 205bc689aba9fd0afe6066a092b3d00c90833530 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 3 Dec 2016 23:00:12 +0000 Subject: [PATCH] [WebAssembly] Eliminate an ad-hoc command-line argument. Use the target triple to determine whether to run the explicit-locals pass, rather than using a separate command-line argument. llvm-svn: 288602 --- lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp | 5 +++++ lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | 8 +------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp b/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp index 56b0f4fb684..04ede7ff110 100644 --- a/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp +++ b/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp @@ -146,6 +146,11 @@ bool WebAssemblyExplicitLocals::runOnMachineFunction(MachineFunction &MF) { "********** Function: " << MF.getName() << '\n'); + // Disable this pass if we aren't doing direct wasm object emission. + if (MF.getSubtarget() + .getTargetTriple().isOSBinFormatELF()) + return false; + bool Changed = false; MachineRegisterInfo &MRI = MF.getRegInfo(); WebAssemblyFunctionInfo &MFI = *MF.getInfo(); diff --git a/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp index f0f74e7b5e8..b61bc0a0814 100644 --- a/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp +++ b/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp @@ -41,11 +41,6 @@ static cl::opt EnableEmSjLj( cl::desc("WebAssembly Emscripten-style setjmp/longjmp handling"), cl::init(false)); -static cl::opt ExplicitLocals( - "wasm-explicit-locals", - cl::desc("WebAssembly with explicit get_local/set_local"), - cl::init(false)); - extern "C" void LLVMInitializeWebAssemblyTarget() { // Register the target. RegisterTargetMachine X( @@ -262,8 +257,7 @@ void WebAssemblyPassConfig::addPreEmitPass() { } // Insert explicit get_local and set_local operators. - if (ExplicitLocals) - addPass(createWebAssemblyExplicitLocals()); + addPass(createWebAssemblyExplicitLocals()); // Eliminate multiple-entry loops. addPass(createWebAssemblyFixIrreducibleControlFlow());