LLVM  4.0.0
Public Member Functions | Public Attributes | List of all members
llvm::BitTracker::MachineEvaluator Struct Referenceabstract

#include <BitTracker.h>

Inheritance diagram for llvm::BitTracker::MachineEvaluator:
[legend]
Collaboration diagram for llvm::BitTracker::MachineEvaluator:
[legend]

Public Member Functions

 MachineEvaluator (const TargetRegisterInfo &T, MachineRegisterInfo &M)
 
virtual ~MachineEvaluator ()=default
 
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 BitMask mask (unsigned Reg, unsigned Sub) const
 
virtual bool track (const TargetRegisterClass *RC) const
 
virtual bool evaluate (const MachineInstr &MI, const CellMapType &Inputs, CellMapType &Outputs) const
 
virtual bool evaluate (const MachineInstr &BI, const CellMapType &Inputs, BranchTargetList &Targets, bool &FallsThru) const =0
 

Public Attributes

const TargetRegisterInfoTRI
 
MachineRegisterInfoMRI
 

Detailed Description

Definition at line 345 of file BitTracker.h.

Constructor & Destructor Documentation

llvm::BitTracker::MachineEvaluator::MachineEvaluator ( const TargetRegisterInfo T,
MachineRegisterInfo M 
)
inline

Definition at line 346 of file BitTracker.h.

References MRI.

virtual llvm::BitTracker::MachineEvaluator::~MachineEvaluator ( )
virtualdefault

Member Function Documentation

BT::RegisterCell BT::MachineEvaluator::eADD ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eAND ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eASL ( const RegisterCell A1,
uint16_t  Sh 
) const
BT::RegisterCell BT::MachineEvaluator::eASR ( const RegisterCell A1,
uint16_t  Sh 
) const
BT::RegisterCell BT::MachineEvaluator::eCLB ( const RegisterCell A1,
bool  B,
uint16_t  W 
) const
BT::RegisterCell BT::MachineEvaluator::eCLR ( const RegisterCell A1,
uint16_t  BitN 
) const
BT::RegisterCell BT::MachineEvaluator::eCTB ( const RegisterCell A1,
bool  B,
uint16_t  W 
) const
BT::RegisterCell BT::MachineEvaluator::eIMM ( int64_t  V,
uint16_t  W 
) const

Definition at line 414 of file BitTracker.cpp.

References i.

Referenced by eCLB(), eCTB(), and llvm::HexagonEvaluator::evaluate().

BT::RegisterCell BT::MachineEvaluator::eIMM ( const ConstantInt CI) const

Definition at line 424 of file BitTracker.cpp.

References A, assert(), llvm::APInt::getBitWidth(), llvm::ConstantInt::getValue(), and i.

BT::RegisterCell BT::MachineEvaluator::eINS ( const RegisterCell A1,
const RegisterCell A2,
uint16_t  AtN 
) const
BT::RegisterCell BT::MachineEvaluator::eLSR ( const RegisterCell A1,
uint16_t  Sh 
) const
BT::RegisterCell BT::MachineEvaluator::eMLS ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eMLU ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eNOT ( const RegisterCell A1) const
BT::RegisterCell BT::MachineEvaluator::eORL ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eSET ( const RegisterCell A1,
uint16_t  BitN 
) const
BT::RegisterCell BT::MachineEvaluator::eSUB ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eSXT ( const RegisterCell A1,
uint16_t  FromN 
) const
bool BT::MachineEvaluator::evaluate ( const MachineInstr MI,
const CellMapType Inputs,
CellMapType Outputs 
) const
virtual
virtual bool llvm::BitTracker::MachineEvaluator::evaluate ( const MachineInstr BI,
const CellMapType Inputs,
BranchTargetList Targets,
bool FallsThru 
) const
pure virtual

Implemented in llvm::HexagonEvaluator.

BT::RegisterCell BT::MachineEvaluator::eXOR ( const RegisterCell A1,
const RegisterCell A2 
) const
BT::RegisterCell BT::MachineEvaluator::eXTR ( const RegisterCell A1,
uint16_t  B,
uint16_t  E 
) const
BT::RegisterCell BT::MachineEvaluator::eZXT ( const RegisterCell A1,
uint16_t  FromN 
) const
BT::RegisterCell BT::MachineEvaluator::getCell ( const RegisterRef RR,
const CellMapType M 
) const
RegisterCell llvm::BitTracker::MachineEvaluator::getRef ( const RegisterRef RR,
const CellMapType M 
) const
inline

Definition at line 358 of file BitTracker.h.

References llvm::BitTracker::RegisterCell::ref().

uint16_t BT::MachineEvaluator::getRegBitWidth ( const RegisterRef RR) const
bool BT::MachineEvaluator::isInt ( const RegisterCell A) const

Definition at line 390 of file BitTracker.cpp.

References i, and llvm::BitTracker::RegisterCell::width().

Referenced by toInt().

BT::BitMask BT::MachineEvaluator::mask ( unsigned  Reg,
unsigned  Sub 
) const
virtual

Reimplemented in llvm::HexagonEvaluator.

Definition at line 709 of file BitTracker.cpp.

References assert(), and getRegBitWidth().

Referenced by evaluate(), getCell(), and llvm::BitTracker::subst().

void BT::MachineEvaluator::putCell ( const RegisterRef RR,
RegisterCell  RC,
CellMapType M 
) const
uint64_t BT::MachineEvaluator::toInt ( const RegisterCell A) const

Definition at line 399 of file BitTracker.cpp.

References assert(), i, isInt(), and llvm::BitTracker::RegisterCell::width().

virtual bool llvm::BitTracker::MachineEvaluator::track ( const TargetRegisterClass RC) const
inlinevirtual

Definition at line 420 of file BitTracker.h.

Referenced by getCell().

Member Data Documentation

MachineRegisterInfo& llvm::BitTracker::MachineEvaluator::MRI

Definition at line 434 of file BitTracker.h.

Referenced by getCell(), getRegBitWidth(), and llvm::HexagonEvaluator::mask().

const TargetRegisterInfo& llvm::BitTracker::MachineEvaluator::TRI

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