Index: llvm/lib/Target/X86/X86.h =================================================================== --- llvm/lib/Target/X86/X86.h +++ llvm/lib/Target/X86/X86.h @@ -143,7 +143,7 @@ void initializeX86ExecutionDomainFixPass(PassRegistry &); void initializeX86FlagsCopyLoweringPassPass(PassRegistry &); void initializeX86SpeculativeLoadHardeningPassPass(PassRegistry &); - +void initializeOptimizeLEAPassPass(PassRegistry &); } // End llvm namespace #endif Index: llvm/lib/Target/X86/X86OptimizeLEAs.cpp =================================================================== --- llvm/lib/Target/X86/X86OptimizeLEAs.cpp +++ llvm/lib/Target/X86/X86OptimizeLEAs.cpp @@ -245,6 +245,7 @@ /// been calculated by LEA. Also, remove redundant LEAs. bool runOnMachineFunction(MachineFunction &MF) override; + static char ID; private: using MemOpMap = DenseMap>; @@ -296,7 +297,6 @@ const X86InstrInfo *TII; const X86RegisterInfo *TRI; - static char ID; }; } // end anonymous namespace @@ -304,6 +304,8 @@ char OptimizeLEAPass::ID = 0; FunctionPass *llvm::createX86OptimizeLEAs() { return new OptimizeLEAPass(); } +INITIALIZE_PASS(OptimizeLEAPass, DEBUG_TYPE, + "X86 optimize LEA pass", false, false) int OptimizeLEAPass::calcInstrDist(const MachineInstr &First, const MachineInstr &Last) { Index: llvm/lib/Target/X86/X86TargetMachine.cpp =================================================================== --- llvm/lib/Target/X86/X86TargetMachine.cpp +++ llvm/lib/Target/X86/X86TargetMachine.cpp @@ -81,6 +81,7 @@ initializeX86SpeculativeLoadHardeningPassPass(PR); initializeX86FlagsCopyLoweringPassPass(PR); initializeX86CondBrFoldingPassPass(PR); + initializeOptimizeLEAPassPass(PR); } static std::unique_ptr createTLOF(const Triple &TT) {