26 #define DEBUG_TYPE "bpf-mi-checking" 44 void checkingIllegalXADD(
void);
52 checkingIllegalXADD();
65 void BPFMIPreEmitChecking::checkingIllegalXADD(
void) {
68 if (
MI.getOpcode() != BPF::XADD32 &&
MI.getOpcode() != BPF::XADD64)
72 if (!
MI.allDefsAreDead()) {
77 ": Invalid usage of the XADD return value",
false);
90 "BPF PreEmit Checking",
false,
false)
95 return new BPFMIPreEmitChecking();
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
This class represents lattice values for constants.
FunctionPass * createBPFMIPreEmitCheckingPass()
void initializeBPFMIPreEmitCheckingPass(PassRegistry &)
unsigned const TargetRegisterInfo * TRI
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
FunctionPass class - This class is used to implement most global optimizations.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
const Function & getFunction() const
Return the LLVM function that this machine code represents.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
static void initialize(TargetLibraryInfoImpl &TLI, const Triple &T, ArrayRef< StringRef > StandardNames)
Initialize the set of available library functions based on the specified target triple.
Representation of each machine instruction.
const std::string to_string(const T &Value)