14#ifndef LLVM_CODEGEN_CODEGENCOMMONISEL_H
15#define LLVM_CODEGEN_CODEGENCOMMONISEL_H
123 return ParentMBB && SuccessMBB && FailureMBB;
127 return ParentMBB && !SuccessMBB && !FailureMBB;
133 bool FunctionBasedInstrumentation) {
136 "already initialized!");
138 if (!FunctionBasedInstrumentation) {
139 SuccessMBB = addSuccessorMBB(BB,
MBB,
true);
140 FailureMBB = addSuccessorMBB(BB,
MBB,
false, FailureMBB);
156 SuccessMBB =
nullptr;
215 const TargetInstrInfo &
TII);
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
const HexagonInstrInfo * TII
LLVM Basic Block Representation.
MachineInstrBundleIterator< MachineInstr > iterator
void initialize(const BasicBlock *BB, MachineBasicBlock *MBB, bool FunctionBasedInstrumentation)
Initialize the stack protector descriptor structure for a new basic block.
MachineBasicBlock * getSuccessMBB()
void resetPerBBState()
Reset state that changes when we handle different basic blocks.
void resetPerFunctionState()
Reset state that only changes when we switch functions.
MachineBasicBlock * getFailureMBB()
MachineBasicBlock * getParentMBB()
bool shouldEmitStackProtector() const
Returns true if all fields of the stack protector descriptor are initialized implying that we should/...
bool shouldEmitFunctionBasedCheckStackProtector() const
StackProtectorDescriptor()=default
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI FPClassTest invertFPClassTestIfSimpler(FPClassTest Test, bool UseFCmp)
Evaluates if the specified FP class test is better performed as the inverse (i.e.
LLVM_ABI MachineBasicBlock::iterator findSplitPointForStackProtector(MachineBasicBlock *BB, const TargetInstrInfo &TII)
Find the split point at which to splice the end of BB into its success stack protector check machine ...
FPClassTest
Floating-point class tests, supported by 'is_fpclass' intrinsic.
ArrayRef(const T &OneElt) -> ArrayRef< T >
LLVM_ABI void salvageDebugInfoForDbgValue(const MachineRegisterInfo &MRI, MachineInstr &MI, ArrayRef< MachineOperand * > DbgUsers)
Assuming the instruction MI is going to be deleted, attempt to salvage debug users of MI by writing t...