LLVM 20.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 Idx, and 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(), llvm::BitTracker::BitValue::self(), 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(), llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), 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(), 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::CallingConv::C, llvm::BitTracker::RegisterCell::cl(), eIMM(), llvm::BitTracker::RegisterCell::self(), 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::CallingConv::C, llvm::BitTracker::RegisterCell::ct(), eIMM(), llvm::BitTracker::RegisterCell::self(), 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 A, assert(), and llvm::ConstantInt::getValue().
BT::RegisterCell BT::MachineEvaluator::eIMM | ( | int64_t | V, |
uint16_t | W | ||
) | const |
Definition at line 412 of file BitTracker.cpp.
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::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::BitTracker::RegisterCell::width(), 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::BitTracker::RegisterCell::width(), 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 llvm::BitTracker::BitValue::One, llvm::BitTracker::BitValue::self(), 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(), llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::One, llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), 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(), llvm::BitTracker::BitValue::self(), 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(), 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::BitTracker::RegisterRef::Sub, 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(), llvm::BitTracker::BitValue::is(), llvm::BitTracker::BitValue::ref(), llvm::BitTracker::BitValue::self(), 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, llvm::BitTracker::RegisterCell::extract(), llvm::Last, llvm::BitTracker::RegisterCell::ref(), 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::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(), llvm::CallingConv::C, F, getRegBitWidth(), llvm::MachineRegisterInfo::getRegClass(), llvm::Register::isPhysical(), llvm::Register::isVirtual(), 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.
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, and TRI.
Referenced by evaluate(), llvm::HexagonEvaluator::evaluate(), getCell(), mask(), and llvm::HexagonEvaluator::mask().
bool BT::MachineEvaluator::isInt | ( | const RegisterCell & | A | ) | const |
|
virtual |
Reimplemented in llvm::HexagonEvaluator.
Definition at line 707 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 |
Definition at line 375 of file BitTracker.cpp.
References assert(), llvm::Register::isVirtual(), llvm::BitTracker::RegisterRef::Reg, llvm::BitTracker::RegisterCell::regify(), and llvm::BitTracker::RegisterRef::Sub.
Referenced by evaluate(), llvm::HexagonEvaluator::evaluate(), and llvm::BitTracker::put().
uint64_t BT::MachineEvaluator::toInt | ( | const RegisterCell & | A | ) | const |
Definition at line 397 of file BitTracker.cpp.
|
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(), getPhysRegBitWidth(), llvm::HexagonEvaluator::getPhysRegBitWidth(), getRegBitWidth(), llvm::HexagonEvaluator::mask(), and llvm::BitTracker::print_cells().