LLVM
17.0.0git
|
#include "Target/Hexagon/BitTracker.h"
Public Attributes | |
const TargetRegisterInfo & | TRI |
MachineRegisterInfo & | MRI |
Definition at line 392 of file BitTracker.h.
|
inline |
Definition at line 393 of file BitTracker.h.
|
virtualdefault |
|
inlinevirtual |
Reimplemented in llvm::HexagonEvaluator.
Definition at line 482 of file BitTracker.h.
References llvm_unreachable.
Referenced by getRegBitWidth().
BT::RegisterCell BT::MachineEvaluator::eADD | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 432 of file BitTracker.cpp.
References assert(), I, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::num(), llvm::BitTracker::BitValue::ref(), S, llvm::BitTracker::BitValue::self(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eAND | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 548 of file BitTracker.cpp.
References assert(), i, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eASL | ( | const RegisterCell & | A1, |
uint16_t | Sh | ||
) | const |
Definition at line 518 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::RegisterCell::ref(), llvm::BitTracker::RegisterCell::rol(), llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eASR | ( | const RegisterCell & | A1, |
uint16_t | Sh | ||
) | const |
Definition at line 537 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::RegisterCell::ref(), llvm::BitTracker::RegisterCell::rol(), llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eCLB | ( | const RegisterCell & | A1, |
bool | B, | ||
uint16_t | W | ||
) | const |
Definition at line 643 of file BitTracker.cpp.
References B, llvm::BitTracker::RegisterCell::cl(), eIMM(), llvm::BitTracker::RegisterCell::self(), llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eCLR | ( | const RegisterCell & | A1, |
uint16_t | BitN | ||
) | const |
Definition at line 635 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::ref(), llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
BT::RegisterCell BT::MachineEvaluator::eCTB | ( | const RegisterCell & | A1, |
bool | B, | ||
uint16_t | W | ||
) | const |
Definition at line 653 of file BitTracker.cpp.
References B, llvm::BitTracker::RegisterCell::ct(), eIMM(), llvm::BitTracker::RegisterCell::self(), llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eIMM | ( | const ConstantInt * | CI | ) | const |
Definition at line 422 of file BitTracker.cpp.
References assert(), llvm::ConstantInt::getValue(), and i.
BT::RegisterCell BT::MachineEvaluator::eIMM | ( | int64_t | V, |
uint16_t | W | ||
) | const |
Definition at line 412 of file BitTracker.cpp.
References i, and llvm::RISCVFenceField::W.
Referenced by eCLB(), eCTB(), and llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eINS | ( | const RegisterCell & | A1, |
const RegisterCell & | A2, | ||
uint16_t | AtN | ||
) | const |
Definition at line 695 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::insert(), llvm::BitTracker::RegisterCell::ref(), and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eLSR | ( | const RegisterCell & | A1, |
uint16_t | Sh | ||
) | const |
Definition at line 527 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::RegisterCell::ref(), llvm::BitTracker::RegisterCell::rol(), llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eMLS | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 498 of file BitTracker.cpp.
References llvm::BitTracker::RegisterCell::ct(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::BitValue::self(), llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), llvm::ARCCC::Z, and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eMLU | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 508 of file BitTracker.cpp.
References llvm::BitTracker::RegisterCell::ct(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::BitValue::self(), llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), llvm::ARCCC::Z, and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eNOT | ( | const RegisterCell & | A1 | ) | const |
Definition at line 612 of file BitTracker.cpp.
References i, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::One, llvm::BitTracker::BitValue::self(), llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eORL | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 570 of file BitTracker.cpp.
References assert(), i, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::One, llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eSET | ( | const RegisterCell & | A1, |
uint16_t | BitN | ||
) | const |
Definition at line 627 of file BitTracker.cpp.
References assert(), llvm::BitTracker::BitValue::One, llvm::BitTracker::RegisterCell::ref(), and llvm::BitTracker::RegisterCell::width().
BT::RegisterCell BT::MachineEvaluator::eSUB | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 465 of file BitTracker.cpp.
References assert(), I, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::num(), llvm::BitTracker::BitValue::ref(), S, llvm::BitTracker::BitValue::self(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eSXT | ( | const RegisterCell & | A1, |
uint16_t | FromN | ||
) | const |
Definition at line 663 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::RegisterCell::ref(), llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
|
pure virtual |
Implemented in llvm::HexagonEvaluator.
|
virtual |
Reimplemented in llvm::HexagonEvaluator.
Definition at line 719 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), getCell(), getRegBitWidth(), llvm::BitTracker::RegisterCell::insert(), mask(), MI, putCell(), llvm::BitTracker::RegisterCell::ref(), llvm::BitTracker::RegisterRef::Reg, llvm::X86AS::SS, llvm::ARM_MB::ST, llvm::BitTracker::RegisterRef::Sub, llvm::RISCVFenceField::W, and llvm::BitTracker::BitValue::Zero.
BT::RegisterCell BT::MachineEvaluator::eXOR | ( | const RegisterCell & | A1, |
const RegisterCell & | A2 | ||
) | const |
Definition at line 592 of file BitTracker.cpp.
References assert(), i, llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eXTR | ( | const RegisterCell & | A1, |
uint16_t | B, | ||
uint16_t | E | ||
) | const |
Definition at line 683 of file BitTracker.cpp.
References assert(), B, E, llvm::BitTracker::RegisterCell::extract(), llvm::Last, llvm::BitTracker::RegisterCell::ref(), llvm::RISCVFenceField::W, and llvm::BitTracker::RegisterCell::width().
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::eZXT | ( | const RegisterCell & | A1, |
uint16_t | FromN | ||
) | const |
Definition at line 674 of file BitTracker.cpp.
References assert(), llvm::BitTracker::RegisterCell::fill(), llvm::BitTracker::RegisterCell::ref(), llvm::RISCVFenceField::W, llvm::BitTracker::RegisterCell::width(), and llvm::BitTracker::BitValue::Zero.
Referenced by llvm::HexagonEvaluator::evaluate().
BT::RegisterCell BT::MachineEvaluator::getCell | ( | const RegisterRef & | RR, |
const CellMapType & | M | ||
) | const |
Definition at line 348 of file BitTracker.cpp.
References assert(), F, getRegBitWidth(), llvm::MachineRegisterInfo::getRegClass(), llvm::Register::isPhysical(), llvm::Register::isVirtual(), M, mask(), MRI, llvm::BitTracker::RegisterRef::Reg, llvm::BitTracker::RegisterCell::self(), llvm::BitTracker::RegisterRef::Sub, llvm::BitTracker::RegisterCell::top(), and track().
Referenced by llvm::HexagonEvaluator::evaluate(), evaluate(), and llvm::BitTracker::get().
|
virtual |
Reimplemented in llvm::HexagonEvaluator.
Definition at line 714 of file BitTracker.cpp.
References llvm::TargetRegisterInfo::getMinimalPhysRegClass(), llvm::TargetRegisterInfo::getRegSizeInBits(), and TRI.
Referenced by getRegBitWidth().
|
inline |
Definition at line 405 of file BitTracker.h.
References M, and llvm::BitTracker::RegisterCell::ref().
uint16_t BT::MachineEvaluator::getRegBitWidth | ( | const RegisterRef & | RR | ) | const |
Definition at line 329 of file BitTracker.cpp.
References llvm::Register::asMCReg(), assert(), composeWithSubRegIndex(), getPhysRegBitWidth(), llvm::MachineRegisterInfo::getRegClass(), llvm::TargetRegisterInfo::getRegSizeInBits(), llvm::TargetRegisterInfo::getSubReg(), llvm::Register::isPhysical(), llvm::Register::isVirtual(), MRI, llvm::BitTracker::RegisterRef::Reg, llvm::BitTracker::RegisterRef::Sub, TRI, and llvm::AArch64CC::VC.
Referenced by llvm::HexagonEvaluator::evaluate(), evaluate(), getCell(), llvm::HexagonEvaluator::mask(), and mask().
bool BT::MachineEvaluator::isInt | ( | const RegisterCell & | A | ) | const |
Definition at line 388 of file BitTracker.cpp.
References i, is, and llvm::RISCVFenceField::W.
Referenced by toInt().
|
virtual |
Reimplemented in llvm::HexagonEvaluator.
Definition at line 707 of file BitTracker.cpp.
References assert(), getRegBitWidth(), and llvm::RISCVFenceField::W.
Referenced by evaluate(), getCell(), and llvm::BitTracker::subst().
void BT::MachineEvaluator::putCell | ( | const RegisterRef & | RR, |
RegisterCell | RC, | ||
CellMapType & | M | ||
) | const |
Definition at line 375 of file BitTracker.cpp.
References assert(), llvm::Register::isVirtual(), M, llvm::BitTracker::RegisterRef::Reg, llvm::BitTracker::RegisterCell::regify(), and llvm::BitTracker::RegisterRef::Sub.
Referenced by llvm::HexagonEvaluator::evaluate(), evaluate(), and llvm::BitTracker::put().
uint64_t BT::MachineEvaluator::toInt | ( | const RegisterCell & | A | ) | const |
Definition at line 397 of file BitTracker.cpp.
References assert(), i, isInt(), and llvm::RISCVFenceField::W.
|
inlinevirtual |
Definition at line 467 of file BitTracker.h.
Referenced by getCell().
MachineRegisterInfo& llvm::BitTracker::MachineEvaluator::MRI |
Definition at line 491 of file BitTracker.h.
Referenced by llvm::HexagonEvaluator::evaluate(), getCell(), getRegBitWidth(), and llvm::HexagonEvaluator::mask().
const TargetRegisterInfo& llvm::BitTracker::MachineEvaluator::TRI |
Definition at line 490 of file BitTracker.h.
Referenced by llvm::HexagonEvaluator::composeWithSubRegIndex(), llvm::HexagonEvaluator::getPhysRegBitWidth(), getPhysRegBitWidth(), getRegBitWidth(), llvm::HexagonEvaluator::mask(), and llvm::BitTracker::print_cells().