27 #define GET_SUBTARGETINFO_TARGET_DESC
28 #define GET_SUBTARGETINFO_CTOR
29 #include "PPCGenSubtargetInfo.inc"
34 const std::string &
FS,
bool is64Bit)
38 initializeEnvironment();
65 initializeEnvironment();
70 void PPCSubtarget::initializeEnvironment() {
101 std::string CPUName = CPU;
104 #if (defined(__APPLE__) || defined(__linux__)) && \
105 (defined(__ppc__) || defined(__powerpc__))
106 if (CPUName ==
"generic")
111 InstrItins = getInstrItineraryForCPU(CPUName);
114 std::string FullFS =
FS;
122 FullFS =
"+64bit," + FullFS;
169 RegClassVector& CriticalPathRCs)
const {
172 CriticalPathRCs.clear();
175 CriticalPathRCs.push_back(&PPC::G8RCRegClass);
177 CriticalPathRCs.push_back(&PPC::GPRCRegClass);
185 default:
return false;
204 unsigned NumRegionInstrs)
const {
const_iterator end(StringRef path)
Get end iterator over path.
bool use64BitRegs() const
Reloc::Model getRelocationModel() const
void overrideSchedPolicy(MachineSchedPolicy &Policy, MachineInstr *begin, MachineInstr *end, unsigned NumRegionInstrs) const
bool enableMachineScheduler() const
const_iterator begin(StringRef path)
Get begin iterator over path.
bool isDarwin() const
isDarwin - True if this is any darwin platform.
const Function * getFunction() const
bool hasAttribute(AttrKind Val) const
Return true if the attribute is present.
bool hasLazyResolverStub(const GlobalValue *GV, const TargetMachine &TM) const
bool hasCommonLinkage() const
This file contains the simple types necessary to represent the attributes associated with functions a...
No attributes have been set.
unsigned DarwinDirective
Which cpu directive was used.
bool enablePostRAScheduler(CodeGenOpt::Level OptLevel, TargetSubtargetInfo::AntiDepBreakMode &Mode, RegClassVector &CriticalPathRCs) const
enablePostRAScheduler - True at 'More' optimization.
bool isBGQ() const
isBGQ - True if this is a BG/Q platform.
bool isMaterializable() const
virtual void resetSubtargetFeatures(const MachineFunction *MF)
Reset the features for the PowerPC target.
ArchType getArch() const
getArch - Get the parsed architecture type of this triple.
InstrItineraryData InstrItins
Selected instruction itineraries (one entry per itinerary class.)
static bool needsAggressiveScheduling(unsigned Directive)
bool hasHiddenVisibility() const
std::string getHostCPUName()
bool has64BitSupport() const
bool hasWeakLinkage() const
void ParseSubtargetFeatures(StringRef CPU, StringRef FS)
AttributeSet getAttributes() const
Return the attribute list for this Function.
Triple TargetTriple
TargetTriple - What processor and OS we're targeting.
bool hasLinkOnceLinkage() const
bool isDeclaration() const
Attribute getAttribute(unsigned Index, Attribute::AttrKind Kind) const
Return the attribute object that exists at the given index.
StringRef getValueAsString() const
Return the attribute's value as a string. This requires the attribute to be a string attribute...
bool HasMFOCRF
Used by the ISel to turn in optimizations for POWER4-derived architectures.
bool HasLazyResolverStubs
PPCSubtarget(const std::string &TT, const std::string &CPU, const std::string &FS, bool is64Bit)