32 MachineSanitizerBinaryMetadata();
38 "Machine Sanitizer Binary Metadata",
false,
false)
40char MachineSanitizerBinaryMetadata::
ID = 0;
42 MachineSanitizerBinaryMetadata::
ID;
44MachineSanitizerBinaryMetadata::MachineSanitizerBinaryMetadata()
50bool MachineSanitizerBinaryMetadata::runOnMachineFunction(
MachineFunction &MF) {
57 auto &AuxMDs = *cast<MDTuple>(MD->
getOperand(1));
59 assert(AuxMDs.getNumOperands() == 1);
61 cast<ConstantAsMetadata>(AuxMDs.getOperand(0))->getValue();
83 LLVMContext::MD_pcsections,
84 MDB.createPCSections({{Section.getString(),
85 {IRB.getInt(NewFeatures), IRB.getInt32(Size)}}}));
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Class for arbitrary precision integers.
void setBit(unsigned BitPosition)
Set the given bit to 1 whose position is given as "bitPosition".
This is an important base class in LLVM.
const APInt & getUniqueInteger() const
If C is a constant integer then return its value, otherwise C must be a vector of constant integers,...
MDNode * getMetadata(unsigned KindID) const
Get the current metadata attachments for the given kind, if any.
This provides a uniform API for creating instructions and inserting them into a basic block: either a...
const MDOperand & getOperand(unsigned I) const
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.
Align getObjectAlign(int ObjectIdx) const
Return the alignment of the specified stack object.
int64_t getObjectSize(int ObjectIdx) const
Return the size of the specified object.
unsigned getNumFixedObjects() const
Return the number of fixed objects.
int64_t getObjectOffset(int ObjectIdx) const
Return the assigned stack offset of the specified object from the incoming stack pointer.
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
virtual bool runOnMachineFunction(MachineFunction &MF)=0
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
MachineFrameInfo & getFrameInfo()
getFrameInfo - Return the frame info object for the current function.
Function & getFunction()
Return the LLVM function that this machine code represents.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
This is an optimization pass for GlobalISel generic memory operations.
char & MachineSanitizerBinaryMetadataID
constexpr int kSanitizerBinaryMetadataUARHasSizeBit
constexpr int kSanitizerBinaryMetadataUARBit
constexpr char kSanitizerBinaryMetadataCoveredSection[]
void initializeMachineSanitizerBinaryMetadataPass(PassRegistry &)
This struct is a compact representation of a valid (non-zero power of two) alignment.
uint64_t value() const
This is a hole in the type system and should not be abused.