Go to the documentation of this file.
26 #define DEBUG_TYPE "ehcontguard-catchret"
29 "Number of EHCont Guard catchret targets");
44 return "EH Cont Guard catchret targets";
55 "Insert symbols at valid catchret targets for /guard:ehcont",
58 return new EHContGuardCatchret();
76 EHContGuardCatchretTargets++;
This is an optimization pass for GlobalISel generic memory operations.
INITIALIZE_PASS(EHContGuardCatchret, "EHContGuardCatchret", "Insert symbols at valid catchret targets for /guard:ehcont", false, false) FunctionPass *llvm
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
MCSymbol * getEHCatchretSymbol() const
Return the EHCatchret Symbol for this basic block.
Metadata * getModuleFlag(StringRef Key) const
Return the corresponding value if Key appears in module flags, otherwise return null.
FunctionPass * createEHContGuardCatchretPass()
Creates EHContGuard catchret target identification pass.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
bool hasEHCatchret() const
STATISTIC(NumFunctions, "Total number of functions")
bool isEHCatchretTarget() const
Returns true if this is a target block of a catchret.
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
MachineModuleInfo & getMMI() const
StringRef - Represent a constant reference to a string, i.e.
void initializeEHContGuardCatchretPass(PassRegistry &)
FunctionPass class - This class is used to implement most global optimizations.
const Module * getModule() const