diff options
author | Phoebe Wang <phoebe.wang@intel.com> | 2022-08-05 01:36:33 -0700 |
---|---|---|
committer | Phoebe Wang <phoebe.wang@intel.com> | 2022-08-05 01:58:17 -0700 |
commit | 2312b747b87300d94e834f257835ce93d36037cf (patch) | |
tree | a4a2fa7c6f17ed16b547e6a792ad2d56c7ac6b96 | |
parent | 45c056b1fb5a9bc797e935b160aa07bf53764a3a (diff) |
[X86] Move getting module flag into `runOnMachineFunction` to reduce compile-time. NFCIlinaro-local/ci/tcwg_bmk_llvm_fx/llvm-master-aarch64-spec2k6-O2
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D131245
-rw-r--r-- | llvm/lib/Target/X86/X86AsmPrinter.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86AsmPrinter.h | 1 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 7 |
3 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp index c205395aa084..3fc0eec8d1ed 100644 --- a/llvm/lib/Target/X86/X86AsmPrinter.cpp +++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp @@ -66,6 +66,9 @@ bool X86AsmPrinter::runOnMachineFunction(MachineFunction &MF) { EmitFPOData = Subtarget->isTargetWin32() && MF.getMMI().getModule()->getCodeViewFlag(); + IndCSPrefix = + MF.getMMI().getModule()->getModuleFlag("indirect_branch_cs_prefix"); + SetupMachineFunction(MF); if (Subtarget->isTargetCOFF()) { @@ -86,6 +89,8 @@ bool X86AsmPrinter::runOnMachineFunction(MachineFunction &MF) { EmitFPOData = false; + IndCSPrefix = false; + // We didn't modify anything. return false; } diff --git a/llvm/lib/Target/X86/X86AsmPrinter.h b/llvm/lib/Target/X86/X86AsmPrinter.h index d53c26b729ef..043c4b855475 100644 --- a/llvm/lib/Target/X86/X86AsmPrinter.h +++ b/llvm/lib/Target/X86/X86AsmPrinter.h @@ -31,6 +31,7 @@ class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter { std::unique_ptr<MCCodeEmitter> CodeEmitter; bool EmitFPOData = false; bool ShouldEmitWeakSwiftAsyncExtendedFramePointerFlags = false; + bool IndCSPrefix = false; // This utility class tracks the length of a stackmap instruction's 'shadow'. // It is used by the X86AsmPrinter to ensure that the stackmap shadow diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index bfbded8c5d64..e6116642aaa4 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -2449,9 +2449,6 @@ void X86AsmPrinter::emitInstruction(const MachineInstr *MI) { if (OutStreamer->isVerboseAsm()) addConstantComments(MI, *OutStreamer); - bool IndCS = - MF->getMMI().getModule()->getModuleFlag("indirect_branch_cs_prefix"); - switch (MI->getOpcode()) { case TargetOpcode::DBG_VALUE: llvm_unreachable("Should be handled target independently"); @@ -2501,7 +2498,7 @@ void X86AsmPrinter::emitInstruction(const MachineInstr *MI) { } case X86::TAILJMPd64: - if (IndCS && MI->hasRegisterImplicitUseOperand(X86::R11)) + if (IndCSPrefix && MI->hasRegisterImplicitUseOperand(X86::R11)) EmitAndCountInstruction(MCInstBuilder(X86::CS_PREFIX)); LLVM_FALLTHROUGH; case X86::TAILJMPr: @@ -2684,7 +2681,7 @@ void X86AsmPrinter::emitInstruction(const MachineInstr *MI) { .addReg(X86::NoRegister)); return; case X86::CALL64pcrel32: - if (IndCS && MI->hasRegisterImplicitUseOperand(X86::R11)) + if (IndCSPrefix && MI->hasRegisterImplicitUseOperand(X86::R11)) EmitAndCountInstruction(MCInstBuilder(X86::CS_PREFIX)); break; } |