LLVM  mainline
Namespaces | Defines | Functions
TargetRegisterInfo.cpp File Reference
#include "llvm/ADT/BitVector.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/VirtRegMap.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetRegisterInfo.h"
Include dependency graph for TargetRegisterInfo.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm
 

Compute iterated dominance frontiers using a linear time algorithm.


Defines

#define DEBUG_TYPE   "target-reg-info"

Functions

Printable llvm::PrintReg (unsigned Reg, const TargetRegisterInfo *TRI=nullptr, unsigned SubRegIdx=0)
 Prints virtual and physical registers with or without a TRI instance.
Printable llvm::PrintRegUnit (unsigned Unit, const TargetRegisterInfo *TRI)
 Create Printable object to print register units on a raw_ostream.
Printable llvm::PrintVRegOrUnit (unsigned VRegOrUnit, const TargetRegisterInfo *TRI)
 Create Printable object to print virtual registers and physical registers on a raw_ostream.
Printable llvm::PrintLaneMask (LaneBitmask LaneMask)
 Create Printable object to print LaneBitmasks on a raw_ostream.
static void getAllocatableSetForRC (const MachineFunction &MF, const TargetRegisterClass *RC, BitVector &R)
 getAllocatableSetForRC - Toggle the bits that represent allocatable registers for the specific register class.
static const TargetRegisterClassfirstCommonClass (const uint32_t *A, const uint32_t *B, const TargetRegisterInfo *TRI, const MVT::SimpleValueType SVT=MVT::SimpleValueType::Any)
static bool shareSameRegisterFile (const TargetRegisterInfo &TRI, const TargetRegisterClass *DefRC, unsigned DefSubReg, const TargetRegisterClass *SrcRC, unsigned SrcSubReg)
 Check if the registers defined by the pair (RegisterClass, SubReg) share the same register file.

Define Documentation

#define DEBUG_TYPE   "target-reg-info"

Definition at line 26 of file TargetRegisterInfo.cpp.


Function Documentation

static const TargetRegisterClass* firstCommonClass ( const uint32_t *  A,
const uint32_t *  B,
const TargetRegisterInfo TRI,
const MVT::SimpleValueType  SVT = MVT::SimpleValueType::Any 
) [inline, static]
static void getAllocatableSetForRC ( const MachineFunction MF,
const TargetRegisterClass RC,
BitVector R 
) [static]

getAllocatableSetForRC - Toggle the bits that represent allocatable registers for the specific register class.

Definition at line 154 of file TargetRegisterInfo.cpp.

References llvm::TargetRegisterClass::getRawAllocationOrder(), llvm::TargetRegisterClass::isAllocatable(), and llvm::BitVector::set().

Referenced by llvm::TargetRegisterInfo::getAllocatableSet().

static bool shareSameRegisterFile ( const TargetRegisterInfo TRI,
const TargetRegisterClass DefRC,
unsigned  DefSubReg,
const TargetRegisterClass SrcRC,
unsigned  SrcSubReg 
) [static]

Check if the registers defined by the pair (RegisterClass, SubReg) share the same register file.

Definition at line 296 of file TargetRegisterInfo.cpp.

References llvm::TargetRegisterInfo::getCommonSubClass(), llvm::TargetRegisterInfo::getCommonSuperRegClass(), llvm::TargetRegisterInfo::getMatchingSuperRegClass(), and std::swap().

Referenced by llvm::TargetRegisterInfo::shouldRewriteCopySrc().