This reverts commit r224043 and r224042.
[oota-llvm.git] / lib / Target / X86 / X86TargetMachine.cpp
index 5e6aa7d3dbf4a6921c7ef5f0a99244d2824b65ec..8802febfc03a2a67f0ae47ff2197cbe585add91b 100644 (file)
@@ -154,8 +154,9 @@ public:
   void addIRPasses() override;
   bool addInstSelector() override;
   bool addILPOpts() override;
-  void addPostRegAlloc() override;
-  void addPreEmitPass() override;
+  bool addPreRegAlloc() override;
+  bool addPostRegAlloc() override;
+  bool addPreEmitPass() override;
 };
 } // namespace
 
@@ -187,19 +188,32 @@ bool X86PassConfig::addILPOpts() {
   return true;
 }
 
-void X86PassConfig::addPostRegAlloc() {
+bool X86PassConfig::addPreRegAlloc() {
+  return false;  // -print-machineinstr shouldn't print after this.
+}
+
+bool X86PassConfig::addPostRegAlloc() {
   addPass(createX86FloatingPointStackifierPass());
+  return true;  // -print-machineinstr should print after this.
 }
 
-void X86PassConfig::addPreEmitPass() {
-  if (getOptLevel() != CodeGenOpt::None && getX86Subtarget().hasSSE2())
+bool X86PassConfig::addPreEmitPass() {
+  bool ShouldPrint = false;
+  if (getOptLevel() != CodeGenOpt::None && getX86Subtarget().hasSSE2()) {
     addPass(createExecutionDependencyFixPass(&X86::VR128RegClass));
+    ShouldPrint = true;
+  }
 
-  if (UseVZeroUpper)
+  if (UseVZeroUpper) {
     addPass(createX86IssueVZeroUpperPass());
+    ShouldPrint = true;
+  }
 
   if (getOptLevel() != CodeGenOpt::None) {
     addPass(createX86PadShortFunctions());
     addPass(createX86FixupLEAs());
+    ShouldPrint = true;
   }
+
+  return ShouldPrint;
 }