LLVM  3.7.0
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
llvm::HexagonEvaluator Struct Reference

#include <HexagonBitTracker.h>

Inheritance diagram for llvm::HexagonEvaluator:
[legend]
Collaboration diagram for llvm::HexagonEvaluator:
[legend]

Public Types

typedef BitTracker::CellMapType CellMapType
 
typedef BitTracker::RegisterRef RegisterRef
 
typedef BitTracker::RegisterCell RegisterCell
 
typedef
BitTracker::BranchTargetList 
BranchTargetList
 

Public Member Functions

 HexagonEvaluator (const HexagonRegisterInfo &tri, MachineRegisterInfo &mri, const HexagonInstrInfo &tii, MachineFunction &mf)
 
bool evaluate (const MachineInstr *MI, const CellMapType &Inputs, CellMapType &Outputs) const override
 
bool evaluate (const MachineInstr *BI, const CellMapType &Inputs, BranchTargetList &Targets, bool &FallsThru) const override
 
BitTracker::BitMask mask (unsigned Reg, unsigned Sub) const override
 
- Public Member Functions inherited from llvm::BitTracker::MachineEvaluator
 MachineEvaluator (const TargetRegisterInfo &T, MachineRegisterInfo &M)
 
virtual ~MachineEvaluator ()
 
uint16_t getRegBitWidth (const RegisterRef &RR) const
 
RegisterCell getCell (const RegisterRef &RR, const CellMapType &M) const
 
void putCell (const RegisterRef &RR, RegisterCell RC, CellMapType &M) const
 
RegisterCell getRef (const RegisterRef &RR, const CellMapType &M) const
 
bool isInt (const RegisterCell &A) const
 
uint64_t toInt (const RegisterCell &A) const
 
RegisterCell eIMM (int64_t V, uint16_t W) const
 
RegisterCell eIMM (const ConstantInt *CI) const
 
RegisterCell eADD (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eSUB (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eMLS (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eMLU (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eASL (const RegisterCell &A1, uint16_t Sh) const
 
RegisterCell eLSR (const RegisterCell &A1, uint16_t Sh) const
 
RegisterCell eASR (const RegisterCell &A1, uint16_t Sh) const
 
RegisterCell eAND (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eORL (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eXOR (const RegisterCell &A1, const RegisterCell &A2) const
 
RegisterCell eNOT (const RegisterCell &A1) const
 
RegisterCell eSET (const RegisterCell &A1, uint16_t BitN) const
 
RegisterCell eCLR (const RegisterCell &A1, uint16_t BitN) const
 
RegisterCell eCLB (const RegisterCell &A1, bool B, uint16_t W) const
 
RegisterCell eCTB (const RegisterCell &A1, bool B, uint16_t W) const
 
RegisterCell eSXT (const RegisterCell &A1, uint16_t FromN) const
 
RegisterCell eZXT (const RegisterCell &A1, uint16_t FromN) const
 
RegisterCell eXTR (const RegisterCell &A1, uint16_t B, uint16_t E) const
 
RegisterCell eINS (const RegisterCell &A1, const RegisterCell &A2, uint16_t AtN) const
 
virtual bool track (const TargetRegisterClass *RC) const
 

Public Attributes

MachineFunctionMF
 
MachineFrameInfoMFI
 
const HexagonInstrInfoTII
 
- Public Attributes inherited from llvm::BitTracker::MachineEvaluator
const TargetRegisterInfoTRI
 
MachineRegisterInfoMRI
 

Detailed Description

Definition at line 20 of file HexagonBitTracker.h.

Member Typedef Documentation

Definition at line 24 of file HexagonBitTracker.h.

Definition at line 21 of file HexagonBitTracker.h.

Definition at line 23 of file HexagonBitTracker.h.

Definition at line 22 of file HexagonBitTracker.h.

Constructor & Destructor Documentation

HexagonEvaluator::HexagonEvaluator ( const HexagonRegisterInfo tri,
MachineRegisterInfo mri,
const HexagonInstrInfo tii,
MachineFunction mf 
)

Member Function Documentation

bool HexagonEvaluator::evaluate ( const MachineInstr MI,
const CellMapType Inputs,
CellMapType Outputs 
) const
overridevirtual

Reimplemented from llvm::BitTracker::MachineEvaluator.

Definition at line 123 of file HexagonBitTracker.cpp.

References llvm::ARM_PROC::A, llvm::abs(), llvm::BX, llvm::BitTracker::RegisterCell::cat(), llvm::HexagonISD::CONST32, llvm::BitTracker::MachineEvaluator::eADD(), llvm::BitTracker::MachineEvaluator::eAND(), llvm::BitTracker::MachineEvaluator::eASL(), llvm::BitTracker::MachineEvaluator::eASR(), llvm::BitTracker::MachineEvaluator::eCLB(), llvm::BitTracker::MachineEvaluator::eCTB(), llvm::BitTracker::MachineEvaluator::eIMM(), llvm::BitTracker::MachineEvaluator::eINS(), llvm::BitTracker::MachineEvaluator::eLSR(), llvm::BitTracker::MachineEvaluator::eMLS(), llvm::BitTracker::MachineEvaluator::eMLU(), llvm::BitTracker::MachineEvaluator::eNOT(), llvm::BitTracker::MachineEvaluator::eORL(), llvm::BitTracker::MachineEvaluator::eSUB(), llvm::BitTracker::MachineEvaluator::eSXT(), llvm::BitTracker::MachineEvaluator::eXOR(), llvm::MipsISD::Ext, llvm::BitTracker::MachineEvaluator::eXTR(), llvm::BitTracker::MachineEvaluator::eZXT(), F(), llvm::BitTracker::RegisterCell::fill(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumOperands(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::BitTracker::MachineEvaluator::getRegBitWidth(), llvm::MachineOperand::getSubReg(), I, im, llvm::BitTracker::RegisterCell::insert(), llvm::BitTracker::BitValue::is(), llvm::MachineOperand::isBlockAddress(), llvm::MachineInstr::isCopy(), llvm::MachineOperand::isCPI(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isJTI(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isSymbol(), llvm::Log2_32(), llvm::MachineInstr::mayLoad(), llvm::BitTracker::RegisterCell::meet(), MFI, llvm::AArch64CC::MI, N, llvm::BitTracker::BitValue::One, op, llvm::BitTracker::MachineEvaluator::putCell(), R2, rc, llvm::BitTracker::RegisterCell::ref(), llvm::NVPTX::PTXCvtMode::RZ, llvm::BitTracker::BitValue::self(), llvm::BitTracker::RegisterCell::self(), llvm::BitTracker::RegisterCell::width(), llvm::SystemZISD::XC, and llvm::BitTracker::BitValue::Zero.

bool HexagonEvaluator::evaluate ( const MachineInstr BI,
const CellMapType Inputs,
BranchTargetList Targets,
bool FallsThru 
) const
overridevirtual
BT::BitMask HexagonEvaluator::mask ( unsigned  Reg,
unsigned  Sub 
) const
overridevirtual

Member Data Documentation

MachineFunction& llvm::HexagonEvaluator::MF

Definition at line 36 of file HexagonBitTracker.h.

Referenced by HexagonEvaluator().

MachineFrameInfo& llvm::HexagonEvaluator::MFI

Definition at line 37 of file HexagonBitTracker.h.

Referenced by evaluate().

const HexagonInstrInfo& llvm::HexagonEvaluator::TII

Definition at line 38 of file HexagonBitTracker.h.


The documentation for this struct was generated from the following files: