LLVM API Documentation

Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Attributes
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  { ARM_ABI_UNKNOWN, ARM_ABI_APCS, ARM_ABI_AAPCS }

Public Member Functions

 ARMSubtarget (const std::string &TT, const std::string &CPU, const std::string &FS, TargetMachine &TM, bool IsLittle, const TargetOptions &Options)
unsigned getMaxInlineSizeThreshold () const
void ParseSubtargetFeatures (StringRef CPU, StringRef FS)
ARMSubtargetinitializeSubtargetDependencies (StringRef CPU, StringRef FS)
const DataLayoutgetDataLayout () const override
const ARMSelectionDAGInfogetSelectionDAGInfo () const override
const ARMBaseInstrInfogetInstrInfo () const override
const ARMTargetLoweringgetTargetLowering () const override
const ARMFrameLoweringgetFrameLowering () const override
const ARMBaseRegisterInfogetRegisterInfo () const override
void computeIssueWidth ()
bool hasV4TOps () const
bool hasV5TOps () const
bool hasV5TEOps () const
bool hasV6Ops () const
bool hasV6MOps () const
bool hasV6T2Ops () const
bool hasV7Ops () const
bool hasV8Ops () const
bool isCortexA5 () const
bool isCortexA7 () const
bool isCortexA8 () const
bool isCortexA9 () const
bool isCortexA15 () const
bool isSwift () const
bool isCortexM3 () const
bool isLikeA9 () const
bool isCortexR5 () const
bool isKrait () const
bool hasARMOps () const
bool hasVFP2 () const
bool hasVFP3 () const
bool hasVFP4 () const
bool hasFPARMv8 () const
bool hasNEON () const
bool hasCrypto () const
bool hasCRC () const
bool hasVirtualization () const
bool useNEONForSinglePrecisionFP () const
bool hasDivide () const
bool hasDivideInARMMode () const
bool hasT2ExtractPack () const
bool hasDataBarrier () const
bool hasAnyDataBarrier () const
bool useMulOps () const
bool useFPVMLx () const
bool hasVMLxForwarding () const
bool isFPBrccSlow () const
bool isFPOnlySP () const
bool hasPerfMon () const
bool hasTrustZone () const
bool hasZeroCycleZeroing () const
bool prefers32BitThumb () const
bool avoidCPSRPartialUpdate () const
bool avoidMOVsShifterOperand () const
bool hasRAS () const
bool hasMPExtension () const
bool hasThumb2DSP () const
bool useNaClTrap () const
bool hasFP16 () const
bool hasD16 () const
const TriplegetTargetTriple () const
bool isTargetDarwin () const
bool isTargetIOS () const
bool isTargetLinux () const
bool isTargetNaCl () const
bool isTargetNetBSD () const
bool isTargetWindows () const
bool isTargetCOFF () const
bool isTargetELF () const
bool isTargetMachO () const
bool isTargetAEABI () const
bool isTargetEHABICompatible () const
bool isTargetHardFloat () const
bool isTargetAndroid () const
bool isAPCS_ABI () const
bool isAAPCS_ABI () const
bool isThumb () const
bool isThumb1Only () const
bool isThumb2 () const
bool hasThumb2 () const
bool isMClass () const
bool isRClass () const
bool isAClass () const
bool isR9Reserved () const
bool useMovt (const MachineFunction &MF) const
bool supportsTailCall () const
bool allowsUnalignedMem () const
bool restrictIT () const
const std::string & getCPUString () const
bool isLittle () const
unsigned getMispredictionPenalty () const
bool hasSinCos () const
bool enablePostMachineScheduler () const override
 True for some subtargets at > -O0.
bool enableAtomicExpand () const override
const InstrItineraryDatagetInstrItineraryData () const override
unsigned getStackAlignment () const
bool GVIsIndirectSymbol (const GlobalValue *GV, Reloc::Model RelocM) const

Public Attributes

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

Protected Types

enum  ARMProcFamilyEnum {
  Others, CortexA5, CortexA7, CortexA8,
  CortexA9, CortexA12, CortexA15, CortexR5,
  Swift, CortexA53, CortexA57, Krait
}
enum  ARMProcClassEnum { None, AClass, RClass, MClass }

Protected Attributes

ARMProcFamilyEnum ARMProcFamily
 ARMProcFamily - ARM processor family: Cortex-A8, Cortex-A9, and others.
ARMProcClassEnum ARMProcClass
 ARMProcClass - ARM processor class: None, AClass, RClass or MClass.
bool HasV4TOps
bool HasV5TOps
bool HasV5TEOps
bool HasV6Ops
bool HasV6MOps
bool HasV6T2Ops
bool HasV7Ops
bool HasV8Ops
bool HasVFPv2
bool HasVFPv3
bool HasVFPv4
bool HasFPARMv8
bool HasNEON
bool UseNEONForSinglePrecisionFP
bool UseMulOps
bool SlowFPVMLx
bool HasVMLxForwarding
bool SlowFPBrcc
 SlowFPBrcc - True if floating point compare + branch is slow.
bool InThumbMode
 InThumbMode - True if compiling for Thumb, false for ARM.
bool HasThumb2
 HasThumb2 - True if Thumb2 instructions are supported.
bool NoARM
 NoARM - True if subtarget does not support ARM mode execution.
bool IsR9Reserved
 IsR9Reserved - True if R9 is a not available as general purpose register.
bool UseMovt
bool SupportsTailCall
bool HasFP16
bool HasD16
bool HasHardwareDivide
 HasHardwareDivide - True if subtarget supports [su]div.
bool HasHardwareDivideInARM
 HasHardwareDivideInARM - True if subtarget supports [su]div in ARM mode.
bool HasT2ExtractPack
bool HasDataBarrier
bool Pref32BitThumb
bool AvoidCPSRPartialUpdate
bool AvoidMOVsShifterOperand
bool HasRAS
bool HasMPExtension
bool HasVirtualization
bool FPOnlySP
bool HasPerfMon
bool HasTrustZone
 HasTrustZone - if true, processor supports TrustZone security extensions.
bool HasCrypto
 HasCrypto - if true, processor supports Cryptography extensions.
bool HasCRC
 HasCRC - if true, processor supports CRC instructions.
bool HasZeroCycleZeroing
bool AllowsUnalignedMem
bool RestrictIT
bool Thumb2DSP
bool UseNaClTrap
 NaCl TRAP instruction is generated instead of the regular TRAP.
bool UnsafeFPMath
 Target machine allowed unsafe FP math (such as use of NEON fp)
unsigned stackAlignment
std::string CPUString
 CPUString - String name of used CPU.
bool IsLittle
 IsLittle - The target is Little Endian.
Triple TargetTriple
 TargetTriple - What processor and OS we're targeting.
MCSchedModel SchedModel
 SchedModel - Processor specific instruction costs.
InstrItineraryData InstrItins
 Selected instruction itineraries (one entry per itinerary class.)
const TargetOptionsOptions
 Options passed via command line that could influence the target.

Detailed Description

Definition at line 41 of file ARMSubtarget.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
ARM_ABI_UNKNOWN 
ARM_ABI_APCS 
ARM_ABI_AAPCS 

Definition at line 229 of file ARMSubtarget.h.

Enumerator:
None 
AClass 
RClass 
MClass 

Definition at line 47 of file ARMSubtarget.h.

Enumerator:
Others 
CortexA5 
CortexA7 
CortexA8 
CortexA9 
CortexA12 
CortexA15 
CortexR5 
Swift 
CortexA53 
CortexA57 
Krait 

Definition at line 43 of file ARMSubtarget.h.


Constructor & Destructor Documentation

ARMSubtarget::ARMSubtarget ( const std::string &  TT,
const std::string &  CPU,
const std::string &  FS,
TargetMachine TM,
bool  IsLittle,
const TargetOptions Options 
)

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

Definition at line 155 of file ARMSubtarget.cpp.


Member Function Documentation

Definition at line 335 of file ARMSubtarget.h.

References AvoidCPSRPartialUpdate.

Definition at line 336 of file ARMSubtarget.h.

References AvoidMOVsShifterOperand.

bool ARMSubtarget::enableAtomicExpand ( ) const [override]

Definition at line 414 of file ARMSubtarget.cpp.

References hasAnyDataBarrier(), and isThumb1Only().

True for some subtargets at > -O0.

Definition at line 410 of file ARMSubtarget.cpp.

References hasThumb2(), and isThumb().

const std::string& llvm::ARMSubtarget::getCPUString ( ) const [inline]

Definition at line 419 of file ARMSubtarget.h.

References CPUString.

Referenced by llvm::ARMTargetMachine::ARMTargetMachine().

const DataLayout* llvm::ARMSubtarget::getDataLayout ( ) const [inline, override]

Definition at line 255 of file ARMSubtarget.h.

Definition at line 265 of file ARMSubtarget.h.

Definition at line 259 of file ARMSubtarget.h.

getInstrItins - Return the instruction itineraries based on subtarget selection.

Definition at line 437 of file ARMSubtarget.h.

References InstrItins.

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

Definition at line 244 of file ARMSubtarget.h.

Referenced by llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy().

Definition at line 268 of file ARMSubtarget.h.

Definition at line 256 of file ARMSubtarget.h.

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

References stackAlignment.

Definition at line 262 of file ARMSubtarget.h.

bool llvm::ARMSubtarget::hasARMOps ( ) const [inline]
bool llvm::ARMSubtarget::hasCRC ( ) const [inline]

Definition at line 314 of file ARMSubtarget.h.

References HasCRC.

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

Definition at line 313 of file ARMSubtarget.h.

References HasCrypto.

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

Definition at line 343 of file ARMSubtarget.h.

References HasD16.

Referenced by llvm::ARMBaseRegisterInfo::getReservedRegs().

Definition at line 322 of file ARMSubtarget.h.

References HasDataBarrier.

Referenced by LowerATOMIC_FENCE().

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

Definition at line 319 of file ARMSubtarget.h.

References HasHardwareDivide.

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

Definition at line 320 of file ARMSubtarget.h.

References HasHardwareDivideInARM.

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

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

Definition at line 342 of file ARMSubtarget.h.

References HasFP16.

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

Definition at line 311 of file ARMSubtarget.h.

References HasFPARMv8.

Definition at line 338 of file ARMSubtarget.h.

References HasMPExtension.

Referenced by LowerPREFETCH().

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

Definition at line 331 of file ARMSubtarget.h.

References HasPerfMon.

Referenced by ReplaceREADCYCLECOUNTER().

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

Definition at line 337 of file ARMSubtarget.h.

References HasRAS.

This function returns true if the target has sincos() routine in its compiler runtime or math libraries.

Definition at line 404 of file ARMSubtarget.cpp.

References llvm::Triple::getOS(), getTargetTriple(), llvm::Triple::IOS, and llvm::Triple::isOSVersionLT().

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

Definition at line 321 of file ARMSubtarget.h.

References HasT2ExtractPack.

Referenced by PerformORCombine().

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

Definition at line 404 of file ARMSubtarget.h.

References HasThumb2.

Referenced by enablePostMachineScheduler().

Definition at line 339 of file ARMSubtarget.h.

References Thumb2DSP.

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

Definition at line 332 of file ARMSubtarget.h.

References HasTrustZone.

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

Definition at line 290 of file ARMSubtarget.h.

References HasV6MOps.

Referenced by getArchForCPU().

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

Definition at line 293 of file ARMSubtarget.h.

References HasV8Ops.

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

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

Definition at line 310 of file ARMSubtarget.h.

References HasVFPv4.

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

Definition at line 315 of file ARMSubtarget.h.

References HasVirtualization.

Definition at line 328 of file ARMSubtarget.h.

References HasVMLxForwarding.

Referenced by PerformVMULCombine().

Definition at line 333 of file ARMSubtarget.h.

References HasZeroCycleZeroing.

initializeSubtargetDependencies - Initializes using a CPU and feature string so that we can use initializer lists for subtarget initialization.

Definition at line 148 of file ARMSubtarget.cpp.

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

Definition at line 407 of file ARMSubtarget.h.

References AClass, and ARMProcClass.

Definition at line 392 of file ARMSubtarget.h.

References ARM_ABI_APCS, ARM_ABI_UNKNOWN, and TargetABI.

Referenced by computeDataLayout().

Definition at line 295 of file ARMSubtarget.h.

References ARMProcFamily, and CortexA5.

Definition at line 298 of file ARMSubtarget.h.

References ARMProcFamily, and CortexA9.

Referenced by llvm::ARMBaseInstrInfo::getExecutionDomain(), and isLikeA9().

Definition at line 301 of file ARMSubtarget.h.

References CPUString.

Definition at line 303 of file ARMSubtarget.h.

References ARMProcFamily, and CortexR5.

Definition at line 329 of file ARMSubtarget.h.

References SlowFPBrcc.

Referenced by canChangeToInt().

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

Definition at line 304 of file ARMSubtarget.h.

References ARMProcFamily, and Krait.

Referenced by isLikeA9().

bool llvm::ARMSubtarget::isLikeA9 ( ) const [inline]
bool llvm::ARMSubtarget::isLittle ( ) const [inline]
bool llvm::ARMSubtarget::isMClass ( ) const [inline]
bool llvm::ARMSubtarget::isRClass ( ) const [inline]

Definition at line 406 of file ARMSubtarget.h.

References ARMProcClass, and RClass.

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

Definition at line 350 of file ARMSubtarget.h.

References llvm::Triple::isOSNaCl(), and TargetTriple.

Referenced by computeDataLayout(), and llvm::ARM::createFastISel().

Definition at line 351 of file ARMSubtarget.h.

References llvm::Triple::getOS(), llvm::Triple::NetBSD, and TargetTriple.

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

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

Definition at line 334 of file ARMSubtarget.h.

References Pref32BitThumb.

Definition at line 417 of file ARMSubtarget.h.

References RestrictIT.

Referenced by llvm::ARMBaseInstrInfo::isPredicable().

Definition at line 413 of file ARMSubtarget.h.

References SupportsTailCall.

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

Definition at line 327 of file ARMSubtarget.h.

References SlowFPVMLx.

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

Definition at line 326 of file ARMSubtarget.h.

References UseMulOps.

Definition at line 340 of file ARMSubtarget.h.

References UseNaClTrap.

Referenced by llvm::ARMBaseInstrInfo::getTrap().


Member Data Documentation

AllowsUnalignedMem - If true, the subtarget allows unaligned memory accesses for some types. For details, see ARMTargetLowering::allowsMisalignedMemoryAccesses().

Definition at line 190 of file ARMSubtarget.h.

Referenced by allowsUnalignedMem().

ARMProcClass - ARM processor class: None, AClass, RClass or MClass.

Definition at line 55 of file ARMSubtarget.h.

Referenced by isAClass(), isMClass(), and isRClass().

ARMProcFamily - ARM processor family: Cortex-A8, Cortex-A9, and others.

Definition at line 52 of file ARMSubtarget.h.

Referenced by isCortexA15(), isCortexA5(), isCortexA7(), isCortexA8(), isCortexA9(), isCortexR5(), isKrait(), and isSwift().

AvoidCPSRPartialUpdate - If true, codegen would avoid using instructions that partially update CPSR and add false dependency on the previous CPSR setting instruction.

Definition at line 147 of file ARMSubtarget.h.

Referenced by avoidCPSRPartialUpdate().

AvoidMOVsShifterOperand - If true, codegen should avoid using flag setting movs with shifter operand (i.e. asr, lsl, lsr).

Definition at line 151 of file ARMSubtarget.h.

Referenced by avoidMOVsShifterOperand().

std::string llvm::ARMSubtarget::CPUString [protected]

CPUString - String name of used CPU.

Definition at line 211 of file ARMSubtarget.h.

Referenced by getCPUString(), and isCortexM3().

FPOnlySP - If true, the floating point unit only supports single precision.

Definition at line 167 of file ARMSubtarget.h.

Referenced by isFPOnlySP().

HasCRC - if true, processor supports CRC instructions.

Definition at line 181 of file ARMSubtarget.h.

Referenced by hasCRC().

HasCrypto - if true, processor supports Cryptography extensions.

Definition at line 178 of file ARMSubtarget.h.

Referenced by hasCrypto().

HasD16 - True if subtarget is limited to 16 double precision FP registers for VFPv3.

Definition at line 124 of file ARMSubtarget.h.

Referenced by hasD16().

HasDataBarrier - True if the subtarget supports DMB / DSB data barrier instructions.

Definition at line 138 of file ARMSubtarget.h.

Referenced by hasAnyDataBarrier(), and hasDataBarrier().

HasFP16 - True if subtarget supports half-precision FP (We support VFP+HF only so far)

Definition at line 120 of file ARMSubtarget.h.

Referenced by hasFP16().

Definition at line 74 of file ARMSubtarget.h.

Referenced by hasFPARMv8().

HasHardwareDivide - True if subtarget supports [su]div.

Definition at line 127 of file ARMSubtarget.h.

Referenced by hasDivide().

HasHardwareDivideInARM - True if subtarget supports [su]div in ARM mode.

Definition at line 130 of file ARMSubtarget.h.

Referenced by hasDivideInARMMode().

HasMPExtension - True if the subtarget supports Multiprocessing extension (ARMv7 only).

Definition at line 159 of file ARMSubtarget.h.

Referenced by hasMPExtension().

Definition at line 75 of file ARMSubtarget.h.

Referenced by hasNEON().

If true, the processor supports the Performance Monitor Extensions. These include a generic cycle-counter as well as more fine-grained (often implementation-specific) events.

Definition at line 172 of file ARMSubtarget.h.

Referenced by hasPerfMon().

HasRAS - Some processors perform return stack prediction. CodeGen should avoid issue "normal" call instructions to callees which do not return.

Definition at line 155 of file ARMSubtarget.h.

Referenced by hasRAS().

HasT2ExtractPack - True if subtarget supports thumb2 extract/pack instructions.

Definition at line 134 of file ARMSubtarget.h.

Referenced by hasT2ExtractPack().

HasThumb2 - True if Thumb2 instructions are supported.

Definition at line 101 of file ARMSubtarget.h.

Referenced by hasThumb2(), isThumb1Only(), and isThumb2().

HasTrustZone - if true, processor supports TrustZone security extensions.

Definition at line 175 of file ARMSubtarget.h.

Referenced by hasTrustZone().

HasV4TOps, HasV5TOps, HasV5TEOps, HasV6Ops, HasV6MOps, HasV6T2Ops, HasV7Ops, HasV8Ops - Specify whether target support specific ARM ISA variants.

Definition at line 60 of file ARMSubtarget.h.

Referenced by hasV4TOps().

Definition at line 62 of file ARMSubtarget.h.

Referenced by hasV5TEOps().

Definition at line 61 of file ARMSubtarget.h.

Referenced by hasV5TOps().

Definition at line 64 of file ARMSubtarget.h.

Referenced by hasV6MOps().

Definition at line 63 of file ARMSubtarget.h.

Referenced by hasV6Ops().

Definition at line 65 of file ARMSubtarget.h.

Referenced by hasV6T2Ops().

Definition at line 66 of file ARMSubtarget.h.

Referenced by hasV7Ops().

Definition at line 67 of file ARMSubtarget.h.

Referenced by hasV8Ops().

HasVFPv2, HasVFPv3, HasVFPv4, HasFPARMv8, HasNEON - Specify what floating point ISAs are supported.

Definition at line 71 of file ARMSubtarget.h.

Referenced by hasVFP2().

Definition at line 72 of file ARMSubtarget.h.

Referenced by hasVFP3().

Definition at line 73 of file ARMSubtarget.h.

Referenced by hasVFP4().

HasVirtualization - True if the subtarget supports the Virtualization extension.

Definition at line 163 of file ARMSubtarget.h.

Referenced by hasVirtualization().

HasVMLxForwarding - If true, NEON has special multiplier accumulator forwarding to allow mul + mla being issued back to back.

Definition at line 92 of file ARMSubtarget.h.

Referenced by hasVMLxForwarding().

If true, the instructions "vmov.i32 d0, #0" and "vmov.i32 q0, #0" are particularly effective at zeroing a VFP register.

Definition at line 185 of file ARMSubtarget.h.

Referenced by hasZeroCycleZeroing().

Selected instruction itineraries (one entry per itinerary class.)

Definition at line 223 of file ARMSubtarget.h.

Referenced by getInstrItineraryData().

InThumbMode - True if compiling for Thumb, false for ARM.

Definition at line 98 of file ARMSubtarget.h.

Referenced by isThumb(), isThumb1Only(), and isThumb2().

IsLittle - The target is Little Endian.

Definition at line 214 of file ARMSubtarget.h.

Referenced by isLittle().

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

Definition at line 107 of file ARMSubtarget.h.

Referenced by isR9Reserved().

NoARM - True if subtarget does not support ARM mode execution.

Definition at line 104 of file ARMSubtarget.h.

Referenced by hasARMOps().

Options passed via command line that could influence the target.

Definition at line 226 of file ARMSubtarget.h.

Pref32BitThumb - If true, codegen would prefer 32-bit Thumb instructions over 16-bit ones.

Definition at line 142 of file ARMSubtarget.h.

Referenced by prefers32BitThumb().

RestrictIT - If true, the subtarget disallows generation of deprecated IT blocks to conform to ARMv8 rule.

Definition at line 194 of file ARMSubtarget.h.

Referenced by restrictIT().

SchedModel - Processor specific instruction costs.

Definition at line 220 of file ARMSubtarget.h.

Referenced by getMispredictionPenalty().

SlowFPBrcc - True if floating point compare + branch is slow.

Definition at line 95 of file ARMSubtarget.h.

Referenced by isFPBrccSlow().

SlowFPVMLx - If the VFP2 / NEON instructions are available, indicates whether the FP VML[AS] instructions are slow (if so, don't use them).

Definition at line 88 of file ARMSubtarget.h.

Referenced by useFPVMLx().

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

Referenced by getStackAlignment().

SupportsTailCall - True if the OS supports tail call. The dynamic linker must be able to synthesize call stubs for interworking between ARM and Thumb.

Definition at line 116 of file ARMSubtarget.h.

Referenced by supportsTailCall().

Referenced by isAAPCS_ABI(), and isAPCS_ABI().

Thumb2DSP - If true, the subtarget supports the v7 DSP (saturating arith and such) instructions in Thumb2 code.

Definition at line 198 of file ARMSubtarget.h.

Referenced by hasThumb2DSP().

Target machine allowed unsafe FP math (such as use of NEON fp)

Definition at line 204 of file ARMSubtarget.h.

UseMovt - True if MOVT / MOVW pairs are used for materialization of 32-bit imms (including global addresses).

Definition at line 111 of file ARMSubtarget.h.

Referenced by useMovt().

UseMulOps - True if non-microcoded fused integer multiply-add and multiply-subtract instructions should be used.

Definition at line 84 of file ARMSubtarget.h.

Referenced by useMulOps().

NaCl TRAP instruction is generated instead of the regular TRAP.

Definition at line 201 of file ARMSubtarget.h.

Referenced by useNaClTrap().

UseNEONForSinglePrecisionFP - if the NEONFP attribute has been specified. Use the method useNEONForSinglePrecisionFP() to determine if NEON should actually be used.

Definition at line 80 of file ARMSubtarget.h.

Referenced by useNEONForSinglePrecisionFP().


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