LLVM 22.0.0git
llvm::HexagonEvaluator Struct Reference

#include "Target/Hexagon/HexagonBitTracker.h"

Inheritance diagram for llvm::HexagonEvaluator:
[legend]

Public Types

using CellMapType = BitTracker::CellMapType
using RegisterRef = BitTracker::RegisterRef
using RegisterCell = BitTracker::RegisterCell
using BranchTargetList = BitTracker::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 (Register Reg, unsigned Sub) const override
uint16_t getPhysRegBitWidth (MCRegister Reg) const override
const TargetRegisterClasscomposeWithSubRegIndex (const TargetRegisterClass &RC, unsigned Idx) const override
Public Member Functions inherited from llvm::BitTracker::MachineEvaluator
 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 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 24 of file HexagonBitTracker.h.

Member Typedef Documentation

◆ BranchTargetList

◆ CellMapType

◆ RegisterCell

◆ RegisterRef

Constructor & Destructor Documentation

◆ HexagonEvaluator()

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

Member Function Documentation

◆ composeWithSubRegIndex()

◆ evaluate() [1/2]

◆ evaluate() [2/2]

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

◆ getPhysRegBitWidth()

uint16_t HexagonEvaluator::getPhysRegBitWidth ( MCRegister Reg) const
overridevirtual

◆ mask()

Member Data Documentation

◆ MF

MachineFunction& llvm::HexagonEvaluator::MF

Definition at line 45 of file HexagonBitTracker.h.

Referenced by getPhysRegBitWidth(), and HexagonEvaluator().

◆ MFI

MachineFrameInfo& llvm::HexagonEvaluator::MFI

Definition at line 46 of file HexagonBitTracker.h.

Referenced by evaluate(), and HexagonEvaluator().

◆ TII

const HexagonInstrInfo& llvm::HexagonEvaluator::TII

Definition at line 47 of file HexagonBitTracker.h.

Referenced by HexagonEvaluator().


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