LLVM
8.0.1
|
#include "Target/Hexagon/HexagonBlockRanges.h"
Classes | |
class | IndexRange |
class | IndexType |
class | InstrIndexMap |
struct | PrintRangeMap |
class | RangeList |
struct | RegisterRef |
Public Types | |
using | RegisterSet = std::set< RegisterRef > |
using | RegToRangeMap = std::map< RegisterRef, RangeList > |
Public Member Functions | |
HexagonBlockRanges (MachineFunction &MF) | |
RegToRangeMap | computeLiveMap (InstrIndexMap &IndexMap) |
RegToRangeMap | computeDeadMap (InstrIndexMap &IndexMap, RegToRangeMap &LiveMap) |
Static Public Member Functions | |
static RegisterSet | expandToSubRegs (RegisterRef R, const MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI) |
Definition at line 31 of file HexagonBlockRanges.h.
using llvm::HexagonBlockRanges::RegisterSet = std::set<RegisterRef> |
Definition at line 41 of file HexagonBlockRanges.h.
using llvm::HexagonBlockRanges::RegToRangeMap = std::map<RegisterRef, RangeList> |
Definition at line 143 of file HexagonBlockRanges.h.
HexagonBlockRanges::HexagonBlockRanges | ( | MachineFunction & | MF | ) |
Definition at line 220 of file HexagonBlockRanges.cpp.
References expandToSubRegs(), llvm::MCSubRegIndexIterator::getSubRegIndex(), llvm::TargetRegisterInfo::getSubRegIndexLaneMask(), I, llvm::MCSubRegIndexIterator::isValid(), llvm::MachineBasicBlock::liveins(), MRI, llvm::TargetRegisterInfo::regclasses(), SI, TII, and TRI.
HexagonBlockRanges::RegToRangeMap HexagonBlockRanges::computeDeadMap | ( | InstrIndexMap & | IndexMap, |
RegToRangeMap & | LiveMap | ||
) |
Definition at line 432 of file HexagonBlockRanges.cpp.
References llvm::dbgs(), llvm::SIInstrFlags::DS, llvm::HexagonBlockRanges::IndexType::Entry, llvm::HexagonBlockRanges::IndexType::Exit, expandToSubRegs(), F(), llvm::HexagonBlockRanges::InstrIndexMap::getBlock(), llvm::HexagonBlockRanges::InstrIndexMap::getNextIndex(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineBasicBlock::getParent(), llvm::HexagonBlockRanges::InstrIndexMap::getPrevIndex(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterInfo::isVirtualRegister(), LLVM_DEBUG, MRI, llvm::HexagonBlockRanges::IndexType::None, P, and llvm::Z.
Referenced by llvm::HexagonFrameLowering::determineCalleeSaves().
HexagonBlockRanges::RegToRangeMap HexagonBlockRanges::computeLiveMap | ( | InstrIndexMap & | IndexMap | ) |
Definition at line 422 of file HexagonBlockRanges.cpp.
References llvm::dbgs(), and LLVM_DEBUG.
Referenced by llvm::HexagonFrameLowering::determineCalleeSaves().
|
static |
Definition at line 262 of file HexagonBlockRanges.cpp.
References assert(), llvm::TargetRegisterClass::begin(), llvm::HexagonBlockRanges::IndexType::Entry, llvm::HexagonBlockRanges::IndexType::Exit, llvm::HexagonBlockRanges::InstrIndexMap::getBlock(), llvm::HexagonBlockRanges::InstrIndexMap::getIndex(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineBasicBlock::getParent(), llvm::MachineRegisterInfo::getRegClass(), llvm::MachineFunction::getRegInfo(), I, llvm::tgtok::In, llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MCRegisterInfo::DiffListIterator::isValid(), llvm::MCSubRegIndexIterator::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::ARM_MB::LD, llvm::Left, N, llvm::HexagonBlockRanges::IndexType::None, P, llvm::HexagonBlockRanges::RegisterRef::Reg, and llvm::HexagonBlockRanges::RegisterRef::Sub.
Referenced by computeDeadMap(), llvm::HexagonFrameLowering::determineCalleeSaves(), and HexagonBlockRanges().