[WebAssembly] Reintroduce ARGUMENT moving logic
[oota-llvm.git] / lib / Target / WebAssembly / WebAssemblyTargetMachine.cpp
index 917dfacfe9d5c2f605fdd0487d75776164769e23..a333fb3055e9fc1fde87c0cb08daf626a3fb677d 100644 (file)
@@ -149,6 +149,10 @@ bool WebAssemblyPassConfig::addInstSelector() {
   (void)TargetPassConfig::addInstSelector();
   addPass(
       createWebAssemblyISelDag(getWebAssemblyTargetMachine(), getOptLevel()));
+  // Run the argument-move pass immediately after the ScheduleDAG scheduler
+  // so that we can fix up the ARGUMENT instructions before anything else
+  // sees them in the wrong place.
+  addPass(createWebAssemblyArgumentMove());
   return false;
 }