================
@@ -0,0 +1,234 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "WebAssembly.h"
+#include "WebAssemblyTargetMachine.h"
+#include "llvm/CodeGen/AtomicExpand.h"
+#include "llvm/CodeGen/IndirectBrExpand.h"
+#include "llvm/CodeGen/MachineBlockPlacement.h"
+#include "llvm/CodeGen/MachineCopyPropagation.h"
+#include "llvm/CodeGen/MachineLateInstrsCleanup.h"
+#include "llvm/CodeGen/PatchableFunction.h"
+#include "llvm/CodeGen/PostRAMachineSink.h"
+#include "llvm/CodeGen/PostRASchedulerList.h"
+#include "llvm/CodeGen/RegisterCoalescerPass.h"
+#include "llvm/CodeGen/RemoveLoadsIntoFakeUses.h"
+#include "llvm/CodeGen/ShrinkWrap.h"
+#include "llvm/CodeGen/UnreachableBlockElim.h"
+#include "llvm/IR/PassInstrumentation.h"
+#include "llvm/MC/MCStreamer.h"
+#include "llvm/Passes/CodeGenPassBuilder.h"
+#include "llvm/Passes/PassBuilder.h"
+#include "llvm/Target/CGPassBuilderOption.h"
+#include "llvm/Transforms/Utils/LowerGlobalDtors.h"
+#include "llvm/Transforms/Utils/LowerInvoke.h"
+
+using namespace llvm;
+
+namespace WebAssembly {
+extern cl::opt<bool> WasmDisableExplicitLocals;
+extern cl::opt<bool> WasmEnableEH;
+extern cl::opt<bool> WasmEnableEmEH;
+extern cl::opt<bool> WasmEnableEmSjLj;
+extern cl::opt<bool> WasmEnableSjLj;
+} // namespace WebAssembly
+
+using llvm::WebAssembly::WasmDisableExplicitLocals;
+using llvm::WebAssembly::WasmEnableEH;
+using llvm::WebAssembly::WasmEnableEmEH;
+using llvm::WebAssembly::WasmEnableEmSjLj;
+using llvm::WebAssembly::WasmEnableSjLj;
+
+namespace {
+
+class WebAssemblyCodeGenPassBuilder
+    : public CodeGenPassBuilder<WebAssemblyCodeGenPassBuilder,
+                                WebAssemblyTargetMachine> {
+  using Base = CodeGenPassBuilder<WebAssemblyCodeGenPassBuilder,
+                                  WebAssemblyTargetMachine>;
+
+public:
+  explicit WebAssemblyCodeGenPassBuilder(WebAssemblyTargetMachine &TM,
+                                         const CGPassBuilderOption &Opts,
+                                         PassInstrumentationCallbacks *PIC)
+      : CodeGenPassBuilder(TM, Opts, PIC) {
+    disablePass<RegisterCoalescerPass, MachineLateInstrsCleanupPass,
----------------
dschuff wrote:

RegisterCoalescer is disabled unconditionally here but we have it enabled 
[conditionallyu](https://github.com/llvm/llvm-project/blob/d76f677c075b71e2a5c2ee35539992d753258e2a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp#L575)
 in the existing config.

https://github.com/llvm/llvm-project/pull/208983
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to