LLVM 22.0.0git
llvm::BitTracker::MachineEvaluator Struct Referenceabstract

#include "Target/Hexagon/BitTracker.h"

Inheritance 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 (Register 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 (MCRegister Reg) const

Public Attributes

const TargetRegisterInfoTRI
MachineRegisterInfoMRI

Detailed Description

Definition at line 389 of file BitTracker.h.

Constructor & Destructor Documentation

◆ MachineEvaluator()

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

Definition at line 390 of file BitTracker.h.

References MRI, T, and TRI.

Referenced by llvm::HexagonEvaluator::HexagonEvaluator().

◆ ~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 479 of file BitTracker.h.

References llvm_unreachable.

Referenced by getRegBitWidth().

◆ eADD()

◆ eAND()

◆ eASL()

◆ eASR()

◆ eCLB()

◆ eCLR()

◆ eCTB()

◆ eIMM() [1/2]

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

Definition at line 417 of file BitTracker.cpp.

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

◆ eIMM() [2/2]

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

Definition at line 407 of file BitTracker.cpp.

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

◆ eINS()

◆ eLSR()

◆ eMLS()

◆ eMLU()

◆ eNOT()

◆ eORL()

◆ eSET()

◆ eSUB()

◆ eSXT()

◆ evaluate() [1/2]

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

Implemented in llvm::HexagonEvaluator.

◆ evaluate() [2/2]

◆ eXOR()

◆ eXTR()

◆ eZXT()

◆ getCell()

◆ getPhysRegBitWidth()

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

Reimplemented in llvm::HexagonEvaluator.

Definition at line 709 of file BitTracker.cpp.

References TRI.

Referenced by getRegBitWidth().

◆ getRef()

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

Definition at line 402 of file BitTracker.h.

References getCell(), and llvm::BitTracker::RegisterCell::ref().

◆ getRegBitWidth()

◆ isInt()

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

Definition at line 383 of file BitTracker.cpp.

References A().

Referenced by toInt().

◆ mask()

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

Reimplemented in llvm::HexagonEvaluator.

Definition at line 702 of file BitTracker.cpp.

References assert(), getRegBitWidth(), and llvm::Sub.

Referenced by evaluate(), and getCell().

◆ putCell()

◆ toInt()

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

Definition at line 392 of file BitTracker.cpp.

References A(), assert(), and isInt().

◆ track()

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

Definition at line 464 of file BitTracker.h.

Referenced by getCell().

Member Data Documentation

◆ MRI

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

◆ TRI


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