class AggressiveAntiDepState
Declaration
class AggressiveAntiDepState { /* full declaration omitted */ };
Description
Contains all the state necessary for anti-dep breaking.
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:40
Member Variables
- private const unsigned int NumTargetRegs
- Number of non-virtual target registers (i.e. TRI->getNumRegs()).
- private std::vector<unsigned int> GroupNodes
- Implements a disjoint-union data structure to form register groups. A node is represented by an index into the vector. A node can "point to" itself to indicate that it is the parent of a group, or point to another node to indicate that it is a member of the same group as that node.
- private std::vector<unsigned int> GroupNodeIndices
- For each register, the index of the GroupNode currently representing the group that the register belongs to. Register 0 is always represented by the 0 group, a group composed of registers that are not eligible for anti-aliasing.
- private std::multimap<unsigned int, RegisterReference> RegRefs
- Map registers to all their references within a live range.
- private std::vector<unsigned int> KillIndices
- The index of the most recent kill (proceeding bottom-up), or ~0u if the register is not live.
- private std::vector<unsigned int> DefIndices
- The index of the most recent complete def (proceeding bottom up), or ~0u if the register is live.
Method Overview
- public AggressiveAntiDepState(const unsigned int TargetRegs, llvm::MachineBasicBlock * BB)
- public std::vector<unsigned int> & GetDefIndices()
- public unsigned int GetGroup(unsigned int Reg)
- public void GetGroupRegs(unsigned int Group, std::vector<unsigned int> & Regs, std::multimap<unsigned int, AggressiveAntiDepState::RegisterReference> * RegRefs)
- public std::vector<unsigned int> & GetKillIndices()
- public std::multimap<unsigned int, RegisterReference> & GetRegRefs()
- public bool IsLive(unsigned int Reg)
- public unsigned int LeaveGroup(unsigned int Reg)
- public unsigned int UnionGroups(unsigned int Reg1, unsigned int Reg2)
Methods
¶AggressiveAntiDepState(
const unsigned int TargetRegs,
llvm::MachineBasicBlock* BB)
AggressiveAntiDepState(
const unsigned int TargetRegs,
llvm::MachineBasicBlock* BB)
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:80
Parameters
- const unsigned int TargetRegs
- llvm::MachineBasicBlock* BB
¶std::vector<unsigned int>& GetDefIndices()
std::vector<unsigned int>& GetDefIndices()
Description
Return the define indices.
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:86
¶unsigned int GetGroup(unsigned int Reg)
unsigned int GetGroup(unsigned int Reg)
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:93
Parameters
- unsigned int Reg
¶void GetGroupRegs(
unsigned int Group,
std::vector<unsigned int>& Regs,
std::multimap<unsigned int,
AggressiveAntiDepState::
RegisterReference>* RegRefs)
void GetGroupRegs(
unsigned int Group,
std::vector<unsigned int>& Regs,
std::multimap<unsigned int,
AggressiveAntiDepState::
RegisterReference>* RegRefs)
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:97
Parameters
- unsigned int Group
- std::vector<unsigned int>& Regs
- std::multimap< unsigned int, AggressiveAntiDepState::RegisterReference>* RegRefs
¶std::vector<unsigned int>& GetKillIndices()
std::vector<unsigned int>& GetKillIndices()
Description
Return the kill indices.
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:83
¶std::multimap<unsigned int, RegisterReference>&
GetRegRefs()
std::multimap<unsigned int, RegisterReference>&
GetRegRefs()
Description
Return the RegRefs map.
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:89
¶bool IsLive(unsigned int Reg)
bool IsLive(unsigned int Reg)
Description
Return true if Reg is live.
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:113
Parameters
- unsigned int Reg
¶unsigned int LeaveGroup(unsigned int Reg)
unsigned int LeaveGroup(unsigned int Reg)
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:110
Parameters
- unsigned int Reg
¶unsigned int UnionGroups(unsigned int Reg1,
unsigned int Reg2)
unsigned int UnionGroups(unsigned int Reg1,
unsigned int Reg2)
Declared at: llvm/lib/CodeGen/AggressiveAntiDepBreaker.h:105
Parameters
- unsigned int Reg1
- unsigned int Reg2