LLVM API Documentation

llvm::ARMSubtarget Class Reference

#include <ARMSubtarget.h>

Inheritance diagram for llvm::ARMSubtarget:
[legend]
Collaboration diagram for llvm::ARMSubtarget:
[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


Detailed Description

Definition at line 23 of file ARMSubtarget.h.


Member Enumeration Documentation

Enumerator:
V4T 
V5T 
V5TE 
V6 

Definition at line 25 of file ARMSubtarget.h.

anonymous enum

Enumerator:
isELF 
isDarwin 

Definition at line 51 of file ARMSubtarget.h.

anonymous enum

Enumerator:
ARM_ABI_APCS 
ARM_ABI_AAPCS 

Definition at line 55 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 ARM_ABI_AAPCS, llvm::Module::getTargetTriple(), isAAPCS_ABI(), isDarwin, 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.

References isThumb().

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::hasV4TOps (  )  const [inline]

Definition at line 76 of file ARMSubtarget.h.

References ARMArchVersion, and V4T.

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

Definition at line 77 of file ARMSubtarget.h.

References ARMArchVersion, and V5T.

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

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

Definition at line 78 of file ARMSubtarget.h.

References ARMArchVersion, and V5TE.

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

Definition at line 79 of file ARMSubtarget.h.

References ARMArchVersion, and V6.

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

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

Definition at line 81 of file ARMSubtarget.h.

References HasVFP2.

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

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

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

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

Definition at line 86 of file ARMSubtarget.h.

References ARM_ABI_APCS, and TargetABI.

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

Definition at line 87 of file ARMSubtarget.h.

References ARM_ABI_AAPCS, and TargetABI.

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

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

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

Definition at line 91 of file ARMSubtarget.h.

References UseThumbBacktraces.

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

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

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.

References stackAlignment.


Member Data Documentation

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

Definition at line 31 of file ARMSubtarget.h.

Referenced by hasV4TOps(), hasV5TEOps(), hasV5TOps(), and hasV6Ops().

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.

Referenced by hasVFP2().

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.

Referenced by isThumb().

UseThumbBacktraces - True if we use thumb style backtraces.

Definition at line 41 of file ARMSubtarget.h.

Referenced by ARMSubtarget(), and useThumbBacktraces().

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

Definition at line 44 of file ARMSubtarget.h.

Referenced by ARMSubtarget(), and isR9Reserved().

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(), and getStackAlignment().


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