15 #ifndef LLVM_MC_MCINSTRANALYSIS_H 16 #define LLVM_MC_MCINSTRANALYSIS_H 110 unsigned CPUID)
const {
135 unsigned CPUID)
const {
146 unsigned CPUID)
const {
157 virtual std::vector<std::pair<uint64_t, uint64_t>>
159 uint64_t GotPltSectionVA,
const Triple &TargetTriple)
const {
166 #endif // LLVM_MC_MCINSTRANALYSIS_H virtual bool isReturn(const MCInst &Inst) const
This class represents lattice values for constants.
virtual bool evaluateBranch(const MCInst &Inst, uint64_t Addr, uint64_t Size, uint64_t &Target) const
Given a branch instruction try to get the address the branch targets.
virtual bool isConditionalBranch(const MCInst &Inst) const
virtual bool isOptimizableRegisterMove(const MCInst &MI, unsigned CPUID) const
Returns true if MI is a candidate for move elimination.
virtual bool isUnconditionalBranch(const MCInst &Inst) const
Instances of this class represent a single low-level machine instruction.
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
virtual bool isBranch(const MCInst &Inst) const
virtual bool clearsSuperRegisters(const MCRegisterInfo &MRI, const MCInst &Inst, APInt &Writes) const
Returns true if at least one of the register writes performed by.
unsigned const MachineRegisterInfo * MRI
Interface to description of machine instruction set.
virtual bool isDependencyBreaking(const MCInst &MI, APInt &Mask, unsigned CPUID) const
Returns true if MI is a dependency breaking instruction for the subtarget associated with CPUID ...
virtual bool isIndirectBranch(const MCInst &Inst) const
virtual ~MCInstrAnalysis()=default
virtual std::vector< std::pair< uint64_t, uint64_t > > findPltEntries(uint64_t PltSectionVA, ArrayRef< uint8_t > PltContents, uint64_t GotPltSectionVA, const Triple &TargetTriple) const
Returns (PLT virtual address, GOT virtual address) pairs for PLT entries.
virtual bool isTerminator(const MCInst &Inst) const
Triple - Helper class for working with autoconf configuration names.
Target - Wrapper for Target specific information.
Class for arbitrary precision integers.
virtual bool isZeroIdiom(const MCInst &MI, APInt &Mask, unsigned CPUID) const
Returns true if MI is a dependency breaking zero-idiom for the given subtarget.
const MCInstrDesc & get(unsigned Opcode) const
Return the machine instruction descriptor that corresponds to the specified instruction opcode...
MCInstrAnalysis(const MCInstrInfo *Info)
std::underlying_type< E >::type Mask()
Get a bitmask with 1s in all places up to the high-order bit of E's largest value.
virtual bool isCall(const MCInst &Inst) const
unsigned getOpcode() const