34 StringRef getPassName()
const override {
return "X86 LFI rewrites"; }
38char X86LFIRewriteLegacy::ID = 0;
48 if (
MBB.hasAddressTaken() ||
MBB.isEHPad())
91 return new X86LFIRewriteLegacy();
static void alignToBundle(MachineBasicBlock &MBB)
static constexpr Align BundleAlign
static void alignIndirectBranchTargets(MachineFunction &MF)
static bool isIndirectlyReachable(MachineFunction &MF, const MachineBasicBlock &MBB)
FunctionPass class - This class is used to implement most global optimizations.
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
void ensureAlignment(Align A)
ensureAlignment - Make sure the function is at least A bytes aligned.
bool hasCallSiteLandingPad(MCSymbol *Sym)
Return true if the landing pad Eh symbol has an associated call site.
const MachineJumpTableInfo * getJumpTableInfo() const
getJumpTableInfo - Return the jump table info object for the current function.
const TargetMachine & getTarget() const
getTarget - Return the target machine this machine code is compiled with
Representation of each machine instruction.
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
ExceptionHandling ExceptionModel
What exception model to use.
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
FunctionPass * createX86LFIRewritePass()
@ SjLj
setjmp/longjmp based exceptions
This struct is a compact representation of a valid (non-zero power of two) alignment.
static constexpr Align Constant()
Allow constructions of constexpr Align.
MachineJumpTableEntry - One jump table in the jump table info.