LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AvailableSpills Class Reference

Collaboration diagram for AvailableSpills:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 AvailableSpills (const TargetRegisterInfo *tri, const TargetInstrInfo *tii)
const TargetRegisterInfogetRegInfo () const
unsigned getSpillSlotOrReMatPhysReg (int Slot) const
void addAvailable (int SlotOrReMat, MachineInstr *MI, unsigned Reg, bool CanClobber=true)
bool canClobberPhysReg (int SlotOrReMat) const
void disallowClobberPhysReg (unsigned PhysReg)
void ClobberPhysReg (unsigned PhysReg)
void ModifyStackSlotOrReMat (int SlotOrReMat)

Constructor & Destructor Documentation

AvailableSpills::AvailableSpills const TargetRegisterInfo tri,
const TargetInstrInfo tii
[inline]
 

Definition at line 415 of file VirtRegMap.cpp.


Member Function Documentation

void AvailableSpills::addAvailable int  SlotOrReMat,
MachineInstr MI,
unsigned  Reg,
bool  CanClobber = true
[inline]
 

addAvailable - Mark that the specified stack slot / remat is available in the specified physreg. If CanClobber is true, the physreg can be modified at any time without changing the semantics of the program.

Definition at line 436 of file VirtRegMap.cpp.

References DOUT, llvm::TargetRegisterInfo::getName(), ModifyStackSlotOrReMat(), and Reg.

Referenced by ReuseInfo::GetRegForReload().

bool AvailableSpills::canClobberPhysReg int  SlotOrReMat  )  const [inline]
 

canClobberPhysReg - Return true if the spiller is allowed to change the value of the specified stackslot register if it desires. The specified stack slot must be available in a physreg for this query to make sense.

Definition at line 455 of file VirtRegMap.cpp.

void AvailableSpills::ClobberPhysReg unsigned  PhysReg  ) 
 

ClobberPhysReg - This is called when the specified physreg changes value. We use this to invalidate any info about stuff that lives in it and any of its aliases.

Definition at line 527 of file VirtRegMap.cpp.

References llvm::TargetRegisterInfo::getAliasSet().

Referenced by ReuseInfo::GetRegForReload().

void AvailableSpills::disallowClobberPhysReg unsigned  PhysReg  ) 
 

disallowClobberPhysReg - Unset the CanClobber bit of the specified stackslot register. The register is still available but is no longer allowed to be modifed.

Definition at line 498 of file VirtRegMap.cpp.

References llvm::TargetRegisterInfo::getAliasSet().

const TargetRegisterInfo* AvailableSpills::getRegInfo  )  const [inline]
 

Definition at line 419 of file VirtRegMap.cpp.

Referenced by ReuseInfo::GetRegForReload().

unsigned AvailableSpills::getSpillSlotOrReMatPhysReg int  Slot  )  const [inline]
 

getSpillSlotOrReMatPhysReg - If the specified stack slot or remat is available in a physical register, return that PhysReg, otherwise return 0.

Definition at line 424 of file VirtRegMap.cpp.

void AvailableSpills::ModifyStackSlotOrReMat int  SlotOrReMat  ) 
 

ModifyStackSlotOrReMat - This method is called when the value in a stack slot changes. This removes information about which register the previous value for this slot lives in (as the previous value is dead now).

Definition at line 536 of file VirtRegMap.cpp.

References Reg.

Referenced by addAvailable().


The documentation for this class was generated from the following file:


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.