LLVM API Documentation

llvm::PPCSubtarget Class Reference

#include <PPCSubtarget.h>

Inheritance diagram for llvm::PPCSubtarget:
[legend]
Collaboration diagram for llvm::PPCSubtarget:
[legend]

List of all members.

Public Types

enum  AsmWriterFlavorTy { OldMnemonic, NewMnemonic, Unset }

Public Member Functions

 PPCSubtarget (const TargetMachine &TM, const Module &M, const std::string &FS, bool is64Bit)
void ParseSubtargetFeatures (const std::string &FS, const std::string &CPU)
void SetJITMode ()
unsigned getStackAlignment () const
unsigned getDarwinDirective () const
const InstrItineraryData & getInstrItineraryData () const
const char * getTargetDataString () const
bool isPPC64 () const
bool has64BitSupport () const
bool use64BitRegs () const
bool hasLazyResolverStub (const GlobalValue *GV) const
bool hasFSQRT () const
bool hasSTFIWX () const
bool hasAltivec () const
bool isGigaProcessor () const
bool isDarwin () const
 isDarwin - True if this is any darwin platform.
bool isDarwin9 () const
 isDarwin - True if this is darwin9 (leopard, 10.5) or above.
unsigned getDarwinVers () const
 getDarwinVers - Return the darwin version number, 8 = tiger, 9 = leopard.
bool isMachoABI () const
bool isELF32_ABI () const
unsigned getAsmFlavor () const

Protected Attributes

const TargetMachine & TM
unsigned StackAlignment
InstrItineraryData InstrItins
 Selected instruction itineraries (one entry per itinerary class.).
unsigned DarwinDirective
 Which cpu directive was used.
AsmWriterFlavorTy AsmFlavor
 AsmFlavor - Which PPC asm dialect to use.
bool IsGigaProcessor
 Used by the ISel to turn in optimizations for POWER4-derived architectures.
bool Has64BitSupport
bool Use64BitRegs
bool IsPPC64
bool HasAltivec
bool HasFSQRT
bool HasSTFIWX
bool HasLazyResolverStubs
unsigned char DarwinVers


Detailed Description

Definition at line 46 of file PPCSubtarget.h.


Member Enumeration Documentation

Enumerator:
OldMnemonic 
NewMnemonic 
Unset 

Definition at line 48 of file PPCSubtarget.h.


Constructor & Destructor Documentation

PPCSubtarget::PPCSubtarget ( const TargetMachine &  TM,
const Module &  M,
const std::string &  FS,
bool  is64Bit 
)

This constructor initializes the data members to match that of the specified module.

Definition at line 60 of file PPCSubtarget.cpp.

References AsmFlavor, DarwinVers, llvm::Module::getTargetTriple(), has64BitSupport(), Has64BitSupport, HasLazyResolverStubs, isDarwin(), NewMnemonic, OldMnemonic, ParseSubtargetFeatures(), use64BitRegs(), and Use64BitRegs.


Member Function Documentation

void llvm::PPCSubtarget::ParseSubtargetFeatures ( const std::string &  FS,
const std::string &  CPU 
)

ParseSubtargetFeatures - Parses features string setting specified subtarget options. Definition of function is auto generated by tblgen.

Referenced by PPCSubtarget().

void PPCSubtarget::SetJITMode (  ) 

SetJITMode - This is called to inform the subtarget info that we are producing code for the JIT.

SetJITMode - This is called to inform the subtarget info that we are producing code for the JIT.

Definition at line 130 of file PPCSubtarget.cpp.

References HasLazyResolverStubs.

Referenced by llvm::PPCTargetMachine::addCodeEmitter().

unsigned llvm::PPCSubtarget::getStackAlignment (  )  const [inline]

getStackAlignment - Returns the minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function for this subtarget.

Definition at line 98 of file PPCSubtarget.h.

References StackAlignment.

unsigned llvm::PPCSubtarget::getDarwinDirective (  )  const [inline]

getDarwinDirective - Returns the -m directive specified for the cpu.

Definition at line 102 of file PPCSubtarget.h.

References DarwinDirective.

const InstrItineraryData& llvm::PPCSubtarget::getInstrItineraryData (  )  const [inline]

getInstrItins - Return the instruction itineraies based on subtarget selection.

Definition at line 106 of file PPCSubtarget.h.

References InstrItins.

const char* llvm::PPCSubtarget::getTargetDataString (  )  const [inline]

getTargetDataString - Return the pointer size and type alignment properties of this subtarget.

Definition at line 110 of file PPCSubtarget.h.

References isPPC64().

bool llvm::PPCSubtarget::isPPC64 (  )  const [inline]

bool llvm::PPCSubtarget::has64BitSupport (  )  const [inline]

has64BitSupport - Return true if the selected CPU supports 64-bit instructions, regardless of whether we are in 32-bit or 64-bit mode.

Definition at line 121 of file PPCSubtarget.h.

References Has64BitSupport.

Referenced by PPCSubtarget().

bool llvm::PPCSubtarget::use64BitRegs (  )  const [inline]

use64BitRegs - Return true if in 64-bit mode or if we should use 64-bit registers in 32-bit mode when possible. This can only true if has64BitSupport() returns true.

Definition at line 126 of file PPCSubtarget.h.

References Use64BitRegs.

Referenced by PPCSubtarget().

bool PPCSubtarget::hasLazyResolverStub ( const GlobalValue *  GV  )  const

hasLazyResolverStub - Return true if accesses to the specified global have to go through a dyld lazy resolution stub. This means that an extra load is required to get the address of the global.

hasLazyResolverStub - Return true if accesses to the specified global have to go through a dyld lazy resolution stub. This means that an extra load is required to get the address of the global.

Definition at line 141 of file PPCSubtarget.cpp.

References llvm::TargetMachine::getRelocationModel(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasHiddenVisibility(), HasLazyResolverStubs, llvm::GlobalValue::hasLinkOnceLinkage(), llvm::GlobalValue::hasNotBeenReadFromBitcode(), llvm::GlobalValue::hasWeakLinkage(), llvm::GlobalValue::isDeclaration(), llvm::Reloc::Static, and TM.

bool llvm::PPCSubtarget::hasFSQRT (  )  const [inline]

Definition at line 134 of file PPCSubtarget.h.

References HasFSQRT.

bool llvm::PPCSubtarget::hasSTFIWX (  )  const [inline]

Definition at line 135 of file PPCSubtarget.h.

References HasSTFIWX.

bool llvm::PPCSubtarget::hasAltivec (  )  const [inline]

Definition at line 136 of file PPCSubtarget.h.

References HasAltivec.

bool llvm::PPCSubtarget::isGigaProcessor (  )  const [inline]

Definition at line 137 of file PPCSubtarget.h.

References IsGigaProcessor.

bool llvm::PPCSubtarget::isDarwin (  )  const [inline]

bool llvm::PPCSubtarget::isDarwin9 (  )  const [inline]

isDarwin - True if this is darwin9 (leopard, 10.5) or above.

Definition at line 142 of file PPCSubtarget.h.

References DarwinVers.

unsigned llvm::PPCSubtarget::getDarwinVers (  )  const [inline]

getDarwinVers - Return the darwin version number, 8 = tiger, 9 = leopard.

Definition at line 145 of file PPCSubtarget.h.

References DarwinVers.

Referenced by llvm::PPCDarwinTargetAsmInfo::getEHGlobalPrefix().

bool llvm::PPCSubtarget::isMachoABI (  )  const [inline]

bool llvm::PPCSubtarget::isELF32_ABI (  )  const [inline]

Definition at line 148 of file PPCSubtarget.h.

References isDarwin(), and IsPPC64.

Referenced by llvm::PPCRegisterInfo::processFunctionBeforeCalleeSavedScan().

unsigned llvm::PPCSubtarget::getAsmFlavor (  )  const [inline]

Definition at line 150 of file PPCSubtarget.h.

References AsmFlavor, and Unset.

Referenced by llvm::PPCTargetAsmInfo< llvm::ELFTargetAsmInfo >::PPCTargetAsmInfo().


Member Data Documentation

Definition at line 52 of file PPCSubtarget.h.

Referenced by hasLazyResolverStub().

stackAlignment - The minimum alignment known to hold of the stack frame on entry to the function and which must be maintained by every function.

Definition at line 56 of file PPCSubtarget.h.

Referenced by getStackAlignment().

Selected instruction itineraries (one entry per itinerary class.).

Definition at line 59 of file PPCSubtarget.h.

Referenced by getInstrItineraryData().

Which cpu directive was used.

Definition at line 62 of file PPCSubtarget.h.

Referenced by getDarwinDirective().

AsmFlavor - Which PPC asm dialect to use.

Definition at line 65 of file PPCSubtarget.h.

Referenced by getAsmFlavor(), and PPCSubtarget().

Used by the ISel to turn in optimizations for POWER4-derived architectures.

Definition at line 68 of file PPCSubtarget.h.

Referenced by isGigaProcessor().

Definition at line 69 of file PPCSubtarget.h.

Referenced by has64BitSupport(), and PPCSubtarget().

Definition at line 70 of file PPCSubtarget.h.

Referenced by PPCSubtarget(), and use64BitRegs().

bool llvm::PPCSubtarget::IsPPC64 [protected]

Definition at line 71 of file PPCSubtarget.h.

Referenced by isELF32_ABI(), isMachoABI(), and isPPC64().

Definition at line 72 of file PPCSubtarget.h.

Referenced by hasAltivec().

bool llvm::PPCSubtarget::HasFSQRT [protected]

Definition at line 73 of file PPCSubtarget.h.

Referenced by hasFSQRT().

Definition at line 74 of file PPCSubtarget.h.

Referenced by hasSTFIWX().

Definition at line 75 of file PPCSubtarget.h.

Referenced by hasLazyResolverStub(), PPCSubtarget(), and SetJITMode().

DarwinVers - Nonzero if this is a darwin platform. Otherwise, the numeric version of the platform, e.g. 8 = 10.4 (Tiger), 9 = 10.5 (Leopard), etc.

Definition at line 79 of file PPCSubtarget.h.

Referenced by getDarwinVers(), isDarwin(), isDarwin9(), and PPCSubtarget().


The documentation for this class was generated from the following files: