diff --git a/llvm/lib/Target/X86/X86.h b/llvm/lib/Target/X86/X86.h --- a/llvm/lib/Target/X86/X86.h +++ b/llvm/lib/Target/X86/X86.h @@ -164,35 +164,36 @@ FunctionPass *createX86SpeculativeExecutionSideEffectSuppression(); void initializeEvexToVexInstPassPass(PassRegistry &); +void initializeFPSPass(PassRegistry &); void initializeFixupBWInstPassPass(PassRegistry &); void initializeFixupLEAPassPass(PassRegistry &); -void initializeFPSPass(PassRegistry &); void initializeWinEHStatePassPass(PassRegistry &); void initializeX86AvoidSFBPassPass(PassRegistry &); void initializeX86AvoidTrailingCallPassPass(PassRegistry &); void initializeX86CallFrameOptimizationPass(PassRegistry &); void initializeX86CmovConverterPassPass(PassRegistry &); +void initializeX86DAGToDAGISelPass(PassRegistry &); void initializeX86DomainReassignmentPass(PassRegistry &); void initializeX86ExecutionDomainFixPass(PassRegistry &); void initializeX86ExpandPseudoPass(PassRegistry &); +void initializeX86FastPreTileConfigPass(PassRegistry &); +void initializeX86FastTileConfigPass(PassRegistry &); void initializeX86FixupSetCCPassPass(PassRegistry &); void initializeX86FlagsCopyLoweringPassPass(PassRegistry &); void initializeX86KCFIPass(PassRegistry &); void initializeX86LoadValueInjectionLoadHardeningPassPass(PassRegistry &); void initializeX86LoadValueInjectionRetHardeningPassPass(PassRegistry &); +void initializeX86LowerAMXIntrinsicsLegacyPassPass(PassRegistry &); +void initializeX86LowerAMXTypeLegacyPassPass(PassRegistry &); +void initializeX86LowerTileCopyPass(PassRegistry &); void initializeX86OptimizeLEAPassPass(PassRegistry &); void initializeX86PartialReductionPass(PassRegistry &); -void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &); -void initializeX86SpeculativeExecutionSideEffectSuppressionPass(PassRegistry &); -void initializeX86PreTileConfigPass(PassRegistry &); -void initializeX86FastPreTileConfigPass(PassRegistry &); -void initializeX86FastTileConfigPass(PassRegistry &); -void initializeX86TileConfigPass(PassRegistry &); -void initializeX86LowerAMXTypeLegacyPassPass(PassRegistry &); void initializeX86PreAMXConfigPassPass(PassRegistry &); -void initializeX86LowerTileCopyPass(PassRegistry &); -void initializeX86LowerAMXIntrinsicsLegacyPassPass(PassRegistry &); +void initializeX86PreTileConfigPass(PassRegistry &); void initializeX86ReturnThunksPass(PassRegistry &); +void initializeX86SpeculativeExecutionSideEffectSuppressionPass(PassRegistry &); +void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &); +void initializeX86TileConfigPass(PassRegistry &); namespace X86AS { enum : unsigned { diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -35,6 +35,7 @@ using namespace llvm; #define DEBUG_TYPE "x86-isel" +#define PASS_NAME "X86 DAG->DAG Instruction Selection" STATISTIC(NumLoadMoved, "Number of loads moved below TokenFactor"); @@ -176,10 +177,6 @@ : SelectionDAGISel(ID, tm, OptLevel), Subtarget(nullptr), OptForMinSize(false), IndirectTlsSegRefs(false) {} - StringRef getPassName() const override { - return "X86 DAG->DAG Instruction Selection"; - } - bool runOnMachineFunction(MachineFunction &MF) override { // Reset the subtarget each time through. Subtarget = &MF.getSubtarget(); @@ -580,6 +577,8 @@ char X86DAGToDAGISel::ID = 0; +INITIALIZE_PASS(X86DAGToDAGISel, DEBUG_TYPE, PASS_NAME, false, false) + // Returns true if this masked compare can be implemented legally with this // type. static bool isLegalMaskCompare(SDNode *N, const X86Subtarget *Subtarget) { diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp --- a/llvm/lib/Target/X86/X86TargetMachine.cpp +++ b/llvm/lib/Target/X86/X86TargetMachine.cpp @@ -102,6 +102,7 @@ initializeX86PartialReductionPass(PR); initializePseudoProbeInserterPass(PR); initializeX86ReturnThunksPass(PR); + initializeX86DAGToDAGISelPass(PR); } static std::unique_ptr createTLOF(const Triple &TT) {