diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -1245,11 +1245,9 @@ // clobbered registers, to be used to optimize call sites. addPass(createRegUsageInfoCollector()); - // FIXME: Some backends are incompatible with running the verifier after - // addPreEmitPass. Maybe only pass "false" here for those targets? - addPass(&FuncletLayoutID, false); + addPass(&FuncletLayoutID); - addPass(&StackMapLivenessID, false); + addPass(&StackMapLivenessID); addPass(&LiveDebugValuesID, false); if (TM->Options.EnableMachineOutliner && getOptLevel() != CodeGenOpt::None && diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.h b/llvm/lib/Target/Hexagon/HexagonTargetMachine.h --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.h +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.h @@ -44,6 +44,11 @@ HexagonTargetObjectFile *getObjFileLowering() const override { return static_cast(TLOF.get()); } + + bool isMachineVerifierClean() const override { + // Machine verification fails after HexagonPacketizer. + return false; + } }; } // end namespace llvm