27 cl::desc(
"Disable CTR loops for PPC"));
43 Subtarget(TT, CPU, FS, is64Bit),
44 DL(Subtarget.getDataLayoutString()), InstrInfo(*this),
45 FrameLowering(Subtarget), JITInfo(*this, is64Bit),
46 TLInfo(*this), TSInfo(*this),
47 InstrItins(Subtarget.getInstrItineraryData()) {
50 if (Subtarget.
isBGP())
55 void PPC32TargetMachine::anchor() { }
65 void PPC64TargetMachine::anchor() { }
88 return getTM<PPCTargetMachine>();
92 return *getPPCTargetMachine().getSubtargetImpl();
95 virtual bool addPreISel();
96 virtual bool addILPOpts();
97 virtual bool addInstSelector();
98 virtual bool addPreSched2();
99 virtual bool addPreEmitPass();
104 return new PPCPassConfig(
this, PM);
107 bool PPCPassConfig::addPreISel() {
114 bool PPCPassConfig::addILPOpts() {
115 if (getPPCSubtarget().hasISEL()) {
123 bool PPCPassConfig::addInstSelector() {
135 bool PPCPassConfig::addPreSched2() {
142 bool PPCPassConfig::addPreEmitPass() {
virtual bool addCodeEmitter(PassManagerBase &PM, JITCodeEmitter &JCE)
void setMCUseCFI(bool Value)
setMCUseCFI - Set whether all we should use dwarf's .cfi_* directives.
ImmutablePass * createBasicTargetTransformInfoPass(const TargetMachine *TM)
Create a basic TargetTransformInfo analysis pass.
char & EarlyIfConverterID
virtual TargetPassConfig * createPassConfig(PassManagerBase &PM)
bool isBGP() const
isBGP - True if this is a BG/P platform.
PPC64TargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
FunctionPass * createPPCJITCodeEmitterPass(PPCTargetMachine &TM, JITCodeEmitter &MCE)
PPC32TargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
FunctionPass * createPPCCTRLoopsVerify()
virtual void addAnalysisPasses(PassManagerBase &PM)
Register PPC analysis passes with a pass manager.
FunctionPass * createPPCBranchSelectionPass()
FunctionPass * createPPCEarlyReturnPass()
void LLVMInitializePowerPCTarget()
FunctionPass * createPPCCTRLoops(PPCTargetMachine &TM)
ImmutablePass * createPPCTargetTransformInfoPass(const PPCTargetMachine *TM)
Creates an PPC-specific Target Transformation Info pass.
static cl::opt< bool > DisableCTRLoops("disable-ppc-ctrloops", cl::Hidden, cl::desc("Disable CTR loops for PPC"))
char & IfConverterID
IfConverter - This pass performs machine code if conversion.
PPCTargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, bool is64Bit)
FunctionPass * createPPCISelDag(PPCTargetMachine &TM)