LLVM API Documentation
#include "llvm/CodeGen/RegisterScavenging.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/Target/TargetRegisterInfo.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/STLExtras.h"

Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "reg-scavenging" |
Functions | |
| static bool | RedefinesSuperRegPart (const MachineInstr *MI, unsigned SubReg, const TargetRegisterInfo *TRI) |
| static bool | RedefinesSuperRegPart (const MachineInstr *MI, const MachineOperand &MO, const TargetRegisterInfo *TRI) |
| static bool | isLiveInButUnusedBefore (unsigned Reg, MachineInstr *MI, MachineBasicBlock *MBB, const TargetRegisterInfo *TRI, MachineRegisterInfo *MRI) |
| static void | CreateRegClassMask (const TargetRegisterClass *RC, BitVector &Mask) |
| #define DEBUG_TYPE "reg-scavenging" |
Definition at line 17 of file RegisterScavenging.cpp.
| static void CreateRegClassMask | ( | const TargetRegisterClass * | RC, | |
| BitVector & | Mask | |||
| ) | [static] |
CreateRegClassMask - Set the bits that represent the registers in the TargetRegisterClass.
Definition at line 350 of file RegisterScavenging.cpp.
References llvm::TargetRegisterClass::begin(), E, llvm::TargetRegisterClass::end(), I, and llvm::BitVector::set().
Referenced by llvm::RegScavenger::FindUnusedReg(), and llvm::RegScavenger::scavengeRegister().
| static bool isLiveInButUnusedBefore | ( | unsigned | Reg, | |
| MachineInstr * | MI, | |||
| MachineBasicBlock * | MBB, | |||
| const TargetRegisterInfo * | TRI, | |||
| MachineRegisterInfo * | MRI | |||
| ) | [static] |
isLiveInButUnusedBefore - Return true if register is livein the MBB not not used before it reaches the MI that defines register.
Definition at line 146 of file RegisterScavenging.cpp.
References llvm::MachineBasicBlock::begin(), llvm::SmallPtrSet< PtrType, SmallSize >::count(), E, llvm::SmallPtrSetImpl::empty(), llvm::MachineInstr::getParent(), I, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), isLiveIn(), llvm::MachineBasicBlock::livein_begin(), llvm::MachineBasicBlock::livein_end(), MI, Reg, llvm::MachineRegisterInfo::use_begin(), and llvm::MachineRegisterInfo::use_end().
Referenced by llvm::RegScavenger::forward().
| static bool RedefinesSuperRegPart | ( | const MachineInstr * | MI, | |
| const MachineOperand & | MO, | |||
| const TargetRegisterInfo * | TRI | |||
| ) | [static] |
Definition at line 52 of file RegisterScavenging.cpp.
References llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), and RedefinesSuperRegPart().
| static bool RedefinesSuperRegPart | ( | const MachineInstr * | MI, | |
| unsigned | SubReg, | |||
| const TargetRegisterInfo * | TRI | |||
| ) | [static] |
RedefinesSuperRegPart - Return true if the specified register is redefining part of a super-register.
Definition at line 33 of file RegisterScavenging.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isSuperRegister(), and llvm::MachineOperand::isUse().
Referenced by llvm::RegScavenger::forward(), RedefinesSuperRegPart(), and llvm::RegScavenger::setUnused().
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.