LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::ARMSubtarget Class Reference

#include <ARMSubtarget.h>

Inheritance diagram for llvm::ARMSubtarget:

Inheritance graph
[legend]
Collaboration diagram for llvm::ARMSubtarget:

Collaboration graph
[legend]
List of all members.

Public Types

enum  { isELF, isDarwin }
enum  { ARM_ABI_APCS, ARM_ABI_AAPCS }

Public Member Functions

 ARMSubtarget (const Module &M, const std::string &FS, bool thumb)
unsigned getMaxInlineSizeThreshold () const
void ParseSubtargetFeatures (const std::string &FS, const std::string &CPU)
bool hasV4TOps () const
bool hasV5TOps () const
bool hasV5TEOps () const
bool hasV6Ops () const
bool hasVFP2 () const
bool isTargetDarwin () const
bool isTargetELF () const
bool isAPCS_ABI () const
bool isAAPCS_ABI () const
bool isThumb () const
bool useThumbBacktraces () const
bool isR9Reserved () const
unsigned getStackAlignment () const

Public Attributes

enum llvm::ARMSubtarget:: { ... }  TargetType
enum llvm::ARMSubtarget:: { ... }  TargetABI

Protected Types

enum  ARMArchEnum { V4T, V5T, V5TE, V6 }

Protected Attributes

ARMArchEnum ARMArchVersion
bool HasVFP2
bool IsThumb
 IsThumb - True if we are in thumb mode, false if in ARM mode.
bool UseThumbBacktraces
 UseThumbBacktraces - True if we use thumb style backtraces.
bool IsR9Reserved
 IsR9Reserved - True if R9 is a not available as general purpose register.
unsigned stackAlignment

Member Enumeration Documentation

anonymous enum
 

Enumeration values:
isELF 
isDarwin 

Definition at line 51 of file ARMSubtarget.h.

anonymous enum
 

Enumeration values:
ARM_ABI_APCS 
ARM_ABI_AAPCS 

Definition at line 55 of file ARMSubtarget.h.

enum llvm::ARMSubtarget::ARMArchEnum [protected]
 

Enumeration values:
V4T 
V5T 
V5TE 
V6 

Definition at line 25 of file ARMSubtarget.h.


Constructor & Destructor Documentation

ARMSubtarget::ARMSubtarget const Module M,
const std::string &  FS,
bool  thumb
 

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

Definition at line 19 of file ARMSubtarget.cpp.

References Module::getTargetTriple(), isAAPCS_ABI(), IsR9Reserved, isTargetDarwin(), ParseSubtargetFeatures(), stackAlignment, TargetABI, TargetType, and UseThumbBacktraces.


Member Function Documentation

unsigned llvm::ARMSubtarget::getMaxInlineSizeThreshold  )  const [inline]
 

getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size that still makes it profitable to inline the call.

Definition at line 67 of file ARMSubtarget.h.

unsigned llvm::ARMSubtarget::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 97 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::hasV4TOps  )  const [inline]
 

Definition at line 76 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::hasV5TEOps  )  const [inline]
 

Definition at line 78 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::hasV5TOps  )  const [inline]
 

Definition at line 77 of file ARMSubtarget.h.

Referenced by llvm::ARMTargetLowering::ARMTargetLowering().

bool llvm::ARMSubtarget::hasV6Ops  )  const [inline]
 

Definition at line 79 of file ARMSubtarget.h.

Referenced by llvm::ARMTargetLowering::ARMTargetLowering().

bool llvm::ARMSubtarget::hasVFP2  )  const [inline]
 

Definition at line 81 of file ARMSubtarget.h.

Referenced by llvm::ARMTargetLowering::ARMTargetLowering(), and isLegalAddressImmediate().

bool llvm::ARMSubtarget::isAAPCS_ABI  )  const [inline]
 

Definition at line 87 of file ARMSubtarget.h.

Referenced by llvm::ARMELFTargetAsmInfo::ARMELFTargetAsmInfo(), and ARMSubtarget().

bool llvm::ARMSubtarget::isAPCS_ABI  )  const [inline]
 

Definition at line 86 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::isR9Reserved  )  const [inline]
 

Definition at line 92 of file ARMSubtarget.h.

Referenced by llvm::ARMRegisterInfo::getReservedRegs(), and llvm::ARMRegisterInfo::isReservedReg().

bool llvm::ARMSubtarget::isTargetDarwin  )  const [inline]
 

Definition at line 83 of file ARMSubtarget.h.

Referenced by ARMSubtarget(), llvm::ARMTargetLowering::ARMTargetLowering(), ARMAsmPrinter::doFinalization(), ARMAsmPrinter::doInitialization(), llvm::ARMRegisterInfo::emitEpilogue(), llvm::ARMRegisterInfo::emitPrologue(), llvm::ARMRegisterInfo::getCalleeSavedRegs(), llvm::ARMRegisterInfo::getFrameRegister(), llvm::ARMTargetAsmInfo::getInlineAsmLength(), llvm::ARMRegisterInfo::getReservedRegs(), llvm::ARMRegisterInfo::isReservedReg(), llvm::ARMTargetLowering::LowerOperation(), movePastCSLoadStoreOps(), ARMAsmPrinter::printModuleLevelGV(), ARMAsmPrinter::printOperand(), llvm::ARMRegisterInfo::processFunctionBeforeCalleeSavedScan(), and ARMAsmPrinter::runOnMachineFunction().

bool llvm::ARMSubtarget::isTargetELF  )  const [inline]
 

Definition at line 84 of file ARMSubtarget.h.

Referenced by llvm::ARMRegisterInfo::emitPrologue(), ARMAsmPrinter::printModuleLevelGV(), and ARMAsmPrinter::printOperand().

bool llvm::ARMSubtarget::isThumb  )  const [inline]
 

Definition at line 89 of file ARMSubtarget.h.

Referenced by llvm::ARMTargetMachine::addPreEmitPass(), llvm::ARMTargetLowering::ARMTargetLowering(), ExpandSRx(), llvm::ARMRegisterInfo::getFrameRegister(), llvm::ARMTargetAsmInfo::getInlineAsmLength(), llvm::ARMTargetLowering::getPostIndexedAddressParts(), llvm::ARMTargetLowering::getPreIndexedAddressParts(), isLegalAddressImmediate(), llvm::ARMTargetLowering::isLegalAddressingMode(), LowerBR_CC(), LowerSELECT_CC(), and ARMDAGToDAGISel::Select().

void llvm::ARMSubtarget::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 ARMSubtarget().

bool llvm::ARMSubtarget::useThumbBacktraces  )  const [inline]
 

Definition at line 91 of file ARMSubtarget.h.

Referenced by llvm::ARMRegisterInfo::getFrameRegister().


Member Data Documentation

ARMArchEnum llvm::ARMSubtarget::ARMArchVersion [protected]
 

ARMArchVersion - ARM architecture vecrsion: V4T (base), V5T, V5TE, and V6.

Definition at line 31 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::HasVFP2 [protected]
 

HasVFP2 - True if the processor supports Vector Floating Point (VFP) V2 instructions.

Definition at line 35 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::IsR9Reserved [protected]
 

IsR9Reserved - True if R9 is a not available as general purpose register.

Definition at line 44 of file ARMSubtarget.h.

Referenced by ARMSubtarget().

bool llvm::ARMSubtarget::IsThumb [protected]
 

IsThumb - True if we are in thumb mode, false if in ARM mode.

Definition at line 38 of file ARMSubtarget.h.

unsigned llvm::ARMSubtarget::stackAlignment [protected]
 

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 48 of file ARMSubtarget.h.

Referenced by ARMSubtarget().

enum { ... } llvm::ARMSubtarget::TargetABI
 

Referenced by ARMSubtarget().

enum { ... } llvm::ARMSubtarget::TargetType
 

Referenced by ARMSubtarget(), and llvm::ARMTargetMachine::createTargetAsmInfo().

bool llvm::ARMSubtarget::UseThumbBacktraces [protected]
 

UseThumbBacktraces - True if we use thumb style backtraces.

Definition at line 41 of file ARMSubtarget.h.

Referenced by ARMSubtarget().


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.