Index: llvm/trunk/lib/CodeGen/MachineSink.cpp =================================================================== --- llvm/trunk/lib/CodeGen/MachineSink.cpp +++ llvm/trunk/lib/CodeGen/MachineSink.cpp @@ -948,6 +948,11 @@ PostRAMachineSinking() : MachineFunctionPass(ID) {} StringRef getPassName() const override { return "PostRA Machine Sink"; } + void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.setPreservesCFG(); + MachineFunctionPass::getAnalysisUsage(AU); + } + private: /// Track which registers have been modified and used. BitVector ModifiedRegs, UsedRegs; Index: llvm/trunk/test/CodeGen/X86/O3-pipeline.ll =================================================================== --- llvm/trunk/test/CodeGen/X86/O3-pipeline.ll +++ llvm/trunk/test/CodeGen/X86/O3-pipeline.ll @@ -120,8 +120,6 @@ ; CHECK-NEXT: Bundle Machine CFG Edges ; CHECK-NEXT: X86 FP Stackifier ; CHECK-NEXT: PostRA Machine Sink -; CHECK-NEXT: MachineDominator Tree Construction -; CHECK-NEXT: Machine Natural Loop Construction ; CHECK-NEXT: Machine Block Frequency Analysis ; CHECK-NEXT: MachinePostDominator Tree Construction ; CHECK-NEXT: Shrink Wrapping analysis