LLVM 20.0.0git
Macros | Functions | Variables
PPCRegisterInfo.cpp File Reference
#include "PPCRegisterInfo.h"
#include "PPCFrameLowering.h"
#include "PPCInstrBuilder.h"
#include "PPCMachineFunctionInfo.h"
#include "PPCSubtarget.h"
#include "PPCTargetMachine.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/VirtRegMap.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include <cstdlib>
#include "PPCGenRegisterInfo.inc"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "reginfo"
 
#define GET_REGINFO_TARGET_DESC
 

Functions

 STATISTIC (InflateGPRC, "Number of gprc inputs for getLargestLegalClass")
 
 STATISTIC (InflateGP8RC, "Number of g8rc inputs for getLargestLegalClass")
 
static unsigned offsetMinAlignForOpcode (unsigned OpC)
 
static void emitAccSpillRestoreInfo (MachineBasicBlock &MBB, bool IsPrimed, bool IsRestore)
 
static void spillRegPairs (MachineBasicBlock &MBB, MachineBasicBlock::iterator II, DebugLoc DL, const TargetInstrInfo &TII, Register SrcReg, unsigned FrameIndex, bool IsLittleEndian, bool IsKilled, bool TwoPairs)
 
static void emitWAccSpillRestoreInfo (MachineBasicBlock &MBB, bool IsRestore)
 
static unsigned offsetMinAlign (const MachineInstr &MI)
 
static unsigned getOffsetONFromFION (const MachineInstr &MI, unsigned FIOperandNum)
 

Variables

static cl::opt< boolEnableBasePointer ("ppc-use-base-pointer", cl::Hidden, cl::init(true), cl::desc("Enable use of a base pointer for complex stack frames"))
 
static cl::opt< boolAlwaysBasePointer ("ppc-always-use-base-pointer", cl::Hidden, cl::init(false), cl::desc("Force the use of a base pointer in every function"))
 
static cl::opt< boolEnableGPRToVecSpills ("ppc-enable-gpr-to-vsr-spills", cl::Hidden, cl::init(false), cl::desc("Enable spills from gpr to vsr rather than stack"))
 
static cl::opt< boolStackPtrConst ("ppc-stack-ptr-caller-preserved", cl::desc("Consider R1 caller preserved so stack saves of " "caller preserved registers can be LICM candidates"), cl::init(true), cl::Hidden)
 
static cl::opt< unsignedMaxCRBitSpillDist ("ppc-max-crbit-spill-dist", cl::desc("Maximum search distance for definition of CR bit " "spill on ppc"), cl::Hidden, cl::init(100))
 
static cl::opt< boolReportAccMoves ("ppc-report-acc-moves", cl::desc("Emit information about accumulator register spills " "and copies"), cl::Hidden, cl::init(false))
 
cl::opt< boolDisableAutoPairedVecSt
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "reginfo"

Definition at line 47 of file PPCRegisterInfo.cpp.

◆ GET_REGINFO_TARGET_DESC

#define GET_REGINFO_TARGET_DESC

Definition at line 49 of file PPCRegisterInfo.cpp.

Function Documentation

◆ emitAccSpillRestoreInfo()

static void emitAccSpillRestoreInfo ( MachineBasicBlock MBB,
bool  IsPrimed,
bool  IsRestore 
)
static

◆ emitWAccSpillRestoreInfo()

static void emitWAccSpillRestoreInfo ( MachineBasicBlock MBB,
bool  IsRestore 
)
static

◆ getOffsetONFromFION()

static unsigned getOffsetONFromFION ( const MachineInstr MI,
unsigned  FIOperandNum 
)
static

◆ offsetMinAlign()

static unsigned offsetMinAlign ( const MachineInstr MI)
static

◆ offsetMinAlignForOpcode()

static unsigned offsetMinAlignForOpcode ( unsigned  OpC)
static

◆ spillRegPairs()

static void spillRegPairs ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  II,
DebugLoc  DL,
const TargetInstrInfo TII,
Register  SrcReg,
unsigned  FrameIndex,
bool  IsLittleEndian,
bool  IsKilled,
bool  TwoPairs 
)
static

◆ STATISTIC() [1/2]

STATISTIC ( InflateGP8RC  ,
"Number of g8rc inputs for getLargestLegalClass"   
)

◆ STATISTIC() [2/2]

STATISTIC ( InflateGPRC  ,
"Number of gprc inputs for getLargestLegalClass"   
)

Variable Documentation

◆ AlwaysBasePointer

cl::opt< bool > AlwaysBasePointer("ppc-always-use-base-pointer", cl::Hidden, cl::init(false), cl::desc("Force the use of a base pointer in every function")) ( "ppc-always-use-base-pointer"  ,
cl::Hidden  ,
cl::init(false)  ,
cl::desc("Force the use of a base pointer in every function")   
)
static

◆ DisableAutoPairedVecSt

cl::opt<bool> DisableAutoPairedVecSt
extern

◆ EnableBasePointer

cl::opt< bool > EnableBasePointer("ppc-use-base-pointer", cl::Hidden, cl::init(true), cl::desc("Enable use of a base pointer for complex stack frames")) ( "ppc-use-base-pointer"  ,
cl::Hidden  ,
cl::init(true ,
cl::desc("Enable use of a base pointer for complex stack frames")   
)
static

◆ EnableGPRToVecSpills

cl::opt< bool > EnableGPRToVecSpills("ppc-enable-gpr-to-vsr-spills", cl::Hidden, cl::init(false), cl::desc("Enable spills from gpr to vsr rather than stack")) ( "ppc-enable-gpr-to-vsr-spills"  ,
cl::Hidden  ,
cl::init(false)  ,
cl::desc("Enable spills from gpr to vsr rather than stack")   
)
static

◆ MaxCRBitSpillDist

cl::opt< unsigned > MaxCRBitSpillDist("ppc-max-crbit-spill-dist", cl::desc("Maximum search distance for definition of CR bit " "spill on ppc"), cl::Hidden, cl::init(100)) ( "ppc-max-crbit-spill-dist"  ,
cl::desc("Maximum search distance for definition of CR bit " "spill on ppc")  ,
cl::Hidden  ,
cl::init(100)   
)
static

◆ ReportAccMoves

cl::opt< bool > ReportAccMoves("ppc-report-acc-moves", cl::desc("Emit information about accumulator register spills " "and copies"), cl::Hidden, cl::init(false)) ( "ppc-report-acc-moves"  ,
cl::desc("Emit information about accumulator register spills " "and copies")  ,
cl::Hidden  ,
cl::init(false)   
)
static

◆ StackPtrConst

cl::opt< bool > StackPtrConst("ppc-stack-ptr-caller-preserved", cl::desc("Consider R1 caller preserved so stack saves of " "caller preserved registers can be LICM candidates"), cl::init(true), cl::Hidden) ( "ppc-stack-ptr-caller-preserved"  ,
cl::desc("Consider R1 caller preserved so stack saves of " "caller preserved registers can be LICM candidates")  ,
cl::init(true ,
cl::Hidden   
)
static