LLVM: lib/Target/PowerPC/PPCTargetMachine.cpp File Reference (original) (raw)

Go to the source code of this file.

Functions
LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCTarget ()
static bool isLittleEndianTriple (const Triple &T)
static std::string getDataLayoutString (const Triple &T)
Return the datalayout string of a subtarget.
static std::string computeFSAdditions (StringRef FS, CodeGenOptLevel OL, const Triple &TT)
static std::unique_ptr< TargetLoweringObjectFile > createTLOF (const Triple &TT)
static PPCTargetMachine::PPCABI computeTargetABI (const Triple &TT, const TargetOptions &Options)
static Reloc::Model getEffectiveRelocModel (const Triple &TT, std::optional< Reloc::Model > RM)
static CodeModel::Model getEffectivePPCCodeModel (const Triple &TT, std::optional< CodeModel::Model > CM, bool JIT)
static ScheduleDAGInstrs * createPPCMachineScheduler (MachineSchedContext *C)
static ScheduleDAGInstrs * createPPCPostMachineScheduler (MachineSchedContext *C)
Variables
static cl::opt< bool > EnableBranchCoalescing ("enable-ppc-branch-coalesce", cl::Hidden, cl::desc("enable coalescing of duplicate branches for PPC"))
static cl::opt< bool > DisableCTRLoops ("disable-ppc-ctrloops", cl::Hidden, cl::desc("Disable CTR loops for PPC"))
static cl::opt< bool > DisableInstrFormPrep ("disable-ppc-instr-form-prep", cl::Hidden, cl::desc("Disable PPC loop instr form prep"))
static cl::opt< bool > VSXFMAMutateEarly ("schedule-ppc-vsx-fma-mutation-early", cl::Hidden, cl::desc("Schedule VSX FMA instruction mutation early"))
static cl::opt< bool > DisableVSXSwapRemoval ("disable-ppc-vsx-swap-removal", cl::Hidden, cl::desc("Disable VSX Swap Removal for PPC"))
static cl::opt< bool > DisableMIPeephole ("disable-ppc-peephole", cl::Hidden, cl::desc("Disable machine peepholes for PPC"))
static cl::opt< bool > EnableGEPOpt ("ppc-gep-opt", cl::Hidden, cl::desc("Enable optimizations on complex GEPs"), cl::init(true))
static cl::opt< bool > EnablePrefetch ("enable-ppc-prefetching", cl::desc("enable software prefetching on PPC"), cl::init(false), cl::Hidden)
static cl::opt< bool > EnableExtraTOCRegDeps ("enable-ppc-extra-toc-reg-deps", cl::desc("Add extra TOC register dependencies"), cl::init(true), cl::Hidden)
static cl::opt< bool > EnableMachineCombinerPass ("ppc-machine-combiner", cl::desc("Enable the machine combiner pass"), cl::init(true), cl::Hidden)
static cl::opt< bool > ReduceCRLogical ("ppc-reduce-cr-logicals", cl::desc("Expand eligible cr-logical binary ops to branches"), cl::init(true), cl::Hidden)
static cl::opt< bool > EnablePPCGenScalarMASSEntries ("enable-ppc-gen-scalar-mass", cl::init(false), cl::desc("Enable lowering math functions to their corresponding MASS " "(scalar) entries"), cl::Hidden)
static cl::opt< bool > EnableGlobalMerge ("ppc-global-merge", cl::Hidden, cl::init(false), cl::desc("Enable the global merge pass"))
static cl::opt< unsigned > GlobalMergeMaxOffset ("ppc-global-merge-max-offset", cl::Hidden, cl::init(0x7fff), cl::desc("Maximum global merge offset"))
static MachineSchedRegistry PPCPreRASchedRegistry ("ppc-prera", "Run PowerPC PreRA specific scheduler", createPPCMachineScheduler)
static MachineSchedRegistry PPCPostRASchedRegistry ("ppc-postra", "Run PowerPC PostRA specific scheduler", createPPCPostMachineScheduler)

computeFSAdditions()

computeTargetABI()

createPPCMachineScheduler()

createPPCPostMachineScheduler()

createTLOF()

getDataLayoutString()

static std::string getDataLayoutString ( const Triple & T) static

getEffectivePPCCodeModel()

getEffectiveRelocModel()

isLittleEndianTriple()

LLVMInitializePowerPCTarget()

Definition at line 117 of file PPCTargetMachine.cpp.

References A, B, llvm::CallingConv::C, D, llvm::PassRegistry::getPassRegistry(), llvm::getThePPC32LETarget(), llvm::getThePPC32Target(), llvm::getThePPC64LETarget(), llvm::getThePPC64Target(), llvm::initializeGlobalISel(), llvm::initializePPCBoolRetToIntPass(), llvm::initializePPCBranchCoalescingPass(), llvm::initializePPCBSelPass(), llvm::initializePPCCTRLoopsPass(), llvm::initializePPCCTRLoopsVerifyPass(), llvm::initializePPCDAGToDAGISelLegacyPass(), llvm::initializePPCEarlyReturnPass(), llvm::initializePPCExpandAtomicPseudoPass(), llvm::initializePPCGenScalarMASSEntriesPass(), llvm::initializePPCLoopInstrFormPrepPass(), llvm::initializePPCLowerMASSVEntriesPass(), llvm::initializePPCMIPeepholePass(), llvm::initializePPCPreEmitPeepholePass(), llvm::initializePPCReduceCRLogicalsPass(), llvm::initializePPCTLSDynamicCallPass(), llvm::initializePPCTOCRegDepsPass(), llvm::initializePPCVSXCopyPass(), llvm::initializePPCVSXFMAMutatePass(), and llvm::initializePPCVSXSwapRemovalPass().

DisableCTRLoops

DisableInstrFormPrep

DisableMIPeephole

cl::opt< bool > DisableMIPeephole("disable-ppc-peephole", cl::Hidden, cl::desc("Disable machine peepholes for PPC")) ( "disable-ppc-peephole" , cl::Hidden , cl::desc("Disable machine peepholes for PPC") ) static

DisableVSXSwapRemoval

EnableBranchCoalescing

cl::opt< bool > EnableBranchCoalescing("enable-ppc-branch-coalesce", cl::Hidden, cl::desc("enable coalescing of duplicate branches for PPC")) ( "enable-ppc-branch-coalesce" , cl::Hidden , cl::desc("enable coalescing of duplicate branches for PPC") ) static

EnableExtraTOCRegDeps

cl::opt< bool > EnableExtraTOCRegDeps("enable-ppc-extra-toc-reg-deps", cl::desc("Add extra TOC register dependencies"), cl::init(true), cl::Hidden) ( "enable-ppc-extra-toc-reg-deps" , cl::desc("Add extra TOC register dependencies") , cl::init(true) , cl::Hidden ) static

EnableGEPOpt

EnableGlobalMerge

cl::opt< bool > EnableGlobalMerge("ppc-global-merge", cl::Hidden, cl::init(false), cl::desc("Enable the global merge pass")) ( "ppc-global-merge" , cl::Hidden , cl::init(false) , cl::desc("Enable the global merge pass") ) static

EnableMachineCombinerPass

cl::opt< bool > EnableMachineCombinerPass("ppc-machine-combiner", cl::desc("Enable the machine combiner pass"), cl::init(true), cl::Hidden) ( "ppc-machine-combiner" , cl::desc("Enable the machine combiner pass") , cl::init(true) , cl::Hidden ) static

EnablePPCGenScalarMASSEntries

cl::opt< bool > EnablePPCGenScalarMASSEntries("enable-ppc-gen-scalar-mass", cl::init(false), cl::desc("Enable lowering math functions to their corresponding MASS " "(scalar) entries"), cl::Hidden) ( "enable-ppc-gen-scalar-mass" , cl::init(false) , cl::desc("Enable lowering math functions to their corresponding MASS " "(scalar) entries") , cl::Hidden ) static

EnablePrefetch

cl::opt< bool > EnablePrefetch("enable-ppc-prefetching", cl::desc("enable software prefetching on PPC"), cl::init(false), cl::Hidden) ( "enable-ppc-prefetching" , cl::desc("enable software prefetching on PPC") , cl::init(false) , cl::Hidden ) static

GlobalMergeMaxOffset

cl::opt< unsigned > GlobalMergeMaxOffset("ppc-global-merge-max-offset", cl::Hidden, cl::init(0x7fff), cl::desc("Maximum global merge offset")) ( "ppc-global-merge-max-offset" , cl::Hidden , cl::init(0x7fff) , cl::desc("Maximum global merge offset") ) static

PPCPostRASchedRegistry

PPCPreRASchedRegistry

ReduceCRLogical

cl::opt< bool > ReduceCRLogical("ppc-reduce-cr-logicals", cl::desc("Expand eligible cr-logical binary ops to branches"), cl::init(true), cl::Hidden) ( "ppc-reduce-cr-logicals" , cl::desc("Expand eligible cr-logical binary ops to branches") , cl::init(true) , cl::Hidden ) static

VSXFMAMutateEarly

cl::opt< bool > VSXFMAMutateEarly("schedule-ppc-vsx-fma-mutation-early", cl::Hidden, cl::desc("Schedule VSX FMA instruction mutation early")) ( "schedule-ppc-vsx-fma-mutation-early" , cl::Hidden , cl::desc("Schedule VSX FMA instruction mutation early") ) static