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

#include "Target/Hexagon/BitTracker.h"

Inheritance diagram for llvm::BitTracker::MachineEvaluator:
Inheritance graph
[legend]
Collaboration diagram for llvm::BitTracker::MachineEvaluator:
Collaboration graph
[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
 
virtual const TargetRegisterClasscomposeWithSubRegIndex (const TargetRegisterClass &RC, unsigned Idx) const
 
virtual uint16_t getPhysRegBitWidth (unsigned Reg) const
 

Public Attributes

const TargetRegisterInfoTRI
 
MachineRegisterInfoMRI
 

Detailed Description

Definition at line 392 of file BitTracker.h.

Constructor & Destructor Documentation

◆ MachineEvaluator()

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

Definition at line 393 of file BitTracker.h.

References llvm::AMDGPU::getRegBitWidth(), and MRI.

◆ ~MachineEvaluator()

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

Member Function Documentation

◆ composeWithSubRegIndex()

virtual const TargetRegisterClass& llvm::BitTracker::MachineEvaluator::composeWithSubRegIndex ( const TargetRegisterClass RC,
unsigned  Idx 
) const
inlinevirtual

Reimplemented in llvm::HexagonEvaluator.

Definition at line 482 of file BitTracker.h.

References llvm_unreachable.

Referenced by getRegBitWidth().

◆ eADD()

BT::RegisterCell BT::MachineEvaluator::eADD ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eAND()

BT::RegisterCell BT::MachineEvaluator::eAND ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eASL()

BT::RegisterCell BT::MachineEvaluator::eASL ( const RegisterCell A1,
uint16_t  Sh 
) const

◆ eASR()

BT::RegisterCell BT::MachineEvaluator::eASR ( const RegisterCell A1,
uint16_t  Sh 
) const

◆ eCLB()

BT::RegisterCell BT::MachineEvaluator::eCLB ( const RegisterCell A1,
bool  B,
uint16_t  W 
) const

◆ eCLR()

BT::RegisterCell BT::MachineEvaluator::eCLR ( const RegisterCell A1,
uint16_t  BitN 
) const

◆ eCTB()

BT::RegisterCell BT::MachineEvaluator::eCTB ( const RegisterCell A1,
bool  B,
uint16_t  W 
) const

◆ eIMM() [1/2]

BT::RegisterCell BT::MachineEvaluator::eIMM ( int64_t  V,
uint16_t  W 
) const

Definition at line 412 of file BitTracker.cpp.

References llvm::RISCVFenceField::W.

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

◆ eIMM() [2/2]

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

◆ eINS()

BT::RegisterCell BT::MachineEvaluator::eINS ( const RegisterCell A1,
const RegisterCell A2,
uint16_t  AtN 
) const

◆ eLSR()

BT::RegisterCell BT::MachineEvaluator::eLSR ( const RegisterCell A1,
uint16_t  Sh 
) const

◆ eMLS()

BT::RegisterCell BT::MachineEvaluator::eMLS ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eMLU()

BT::RegisterCell BT::MachineEvaluator::eMLU ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eNOT()

BT::RegisterCell BT::MachineEvaluator::eNOT ( const RegisterCell A1) const

◆ eORL()

BT::RegisterCell BT::MachineEvaluator::eORL ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eSET()

BT::RegisterCell BT::MachineEvaluator::eSET ( const RegisterCell A1,
uint16_t  BitN 
) const

◆ eSUB()

BT::RegisterCell BT::MachineEvaluator::eSUB ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eSXT()

BT::RegisterCell BT::MachineEvaluator::eSXT ( const RegisterCell A1,
uint16_t  FromN 
) const

◆ evaluate() [1/2]

bool BT::MachineEvaluator::evaluate ( const MachineInstr MI,
const CellMapType Inputs,
CellMapType Outputs 
) const
virtual

◆ evaluate() [2/2]

virtual bool llvm::BitTracker::MachineEvaluator::evaluate ( const MachineInstr BI,
const CellMapType Inputs,
BranchTargetList Targets,
bool FallsThru 
) const
pure virtual

Implemented in llvm::HexagonEvaluator.

◆ eXOR()

BT::RegisterCell BT::MachineEvaluator::eXOR ( const RegisterCell A1,
const RegisterCell A2 
) const

◆ eXTR()

BT::RegisterCell BT::MachineEvaluator::eXTR ( const RegisterCell A1,
uint16_t  B,
uint16_t  E 
) const

◆ eZXT()

BT::RegisterCell BT::MachineEvaluator::eZXT ( const RegisterCell A1,
uint16_t  FromN 
) const

◆ getCell()

BT::RegisterCell BT::MachineEvaluator::getCell ( const RegisterRef RR,
const CellMapType M 
) const

◆ getPhysRegBitWidth()

uint16_t BT::MachineEvaluator::getPhysRegBitWidth ( unsigned  Reg) const
virtual

◆ getRef()

RegisterCell llvm::BitTracker::MachineEvaluator::getRef ( const RegisterRef RR,
const CellMapType M 
) const
inline

◆ getRegBitWidth()

uint16_t BT::MachineEvaluator::getRegBitWidth ( const RegisterRef RR) const

◆ isInt()

bool BT::MachineEvaluator::isInt ( const RegisterCell A) const

Definition at line 388 of file BitTracker.cpp.

References llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().

Referenced by toInt().

◆ mask()

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

Reimplemented in llvm::HexagonEvaluator.

Definition at line 707 of file BitTracker.cpp.

References assert(), getRegBitWidth(), and llvm::RISCVFenceField::W.

Referenced by evaluate(), and getCell().

◆ putCell()

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

◆ toInt()

uint64_t BT::MachineEvaluator::toInt ( const RegisterCell A) const

◆ track()

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

Definition at line 467 of file BitTracker.h.

References MI.

Referenced by getCell().

Member Data Documentation

◆ MRI

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

◆ TRI

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

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