clang 22.0.0git
clang::driver::tools::arm Namespace Reference

Enumerations

enum class  ReadTPMode {
  Invalid , Soft , TPIDRURW , TPIDRURO ,
  TPIDRPRW
}
enum class  FloatABI { Invalid , Soft , SoftFP , Hard }

Functions

std::string getARMTargetCPU (StringRef CPU, llvm::StringRef Arch, const llvm::Triple &Triple)
std::string getARMArch (llvm::StringRef Arch, const llvm::Triple &Triple)
StringRef getARMCPUForMArch (llvm::StringRef Arch, const llvm::Triple &Triple)
llvm::ARM::ArchKind getLLVMArchKindForARM (StringRef CPU, StringRef Arch, const llvm::Triple &Triple)
 getLLVMArchSuffixForARM - Get the LLVM ArchKind value to use for a particular CPU (or Arch, if CPU is generic).
StringRef getLLVMArchSuffixForARM (llvm::StringRef CPU, llvm::StringRef Arch, const llvm::Triple &Triple)
void appendBE8LinkFlag (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const llvm::Triple &Triple)
FloatABI getDefaultFloatABI (const llvm::Triple &Triple)
FloatABI getARMFloatABI (const ToolChain &TC, const llvm::opt::ArgList &Args)
FloatABI getARMFloatABI (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
void setFloatABIInTriple (const Driver &D, const llvm::opt::ArgList &Args, llvm::Triple &triple)
bool isHardTPSupported (const llvm::Triple &Triple)
ReadTPMode getReadTPMode (const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple, bool ForAS)
void setArchNameInTriple (const Driver &D, const llvm::opt::ArgList &Args, types::ID InputType, llvm::Triple &Triple)
bool useAAPCSForMachO (const llvm::Triple &T)
void getARMArchCPUFromArgs (const llvm::opt::ArgList &Args, llvm::StringRef &Arch, llvm::StringRef &CPU, bool FromAs=false)
llvm::ARM::FPUKind getARMTargetFeatures (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args, std::vector< llvm::StringRef > &Features, bool ForAS, bool ForMultilib=false)
int getARMSubArchVersionNumber (const llvm::Triple &Triple)
bool isARMMProfile (const llvm::Triple &Triple)
bool isARMAProfile (const llvm::Triple &Triple)
bool isARMBigEndian (const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
bool isARMEABIBareMetal (const llvm::Triple &Triple)
 Is the triple {arm,armeb,thumb,thumbeb}-none-none-{eabi,eabihf} ?

Enumeration Type Documentation

◆ FloatABI

Enumerator
Invalid 
Soft 
SoftFP 
Hard 

Definition at line 46 of file ARM.h.

◆ ReadTPMode

Enumerator
Invalid 
Soft 
TPIDRURW 
TPIDRURO 
TPIDRPRW 

Definition at line 38 of file ARM.h.

Function Documentation

◆ appendBE8LinkFlag()

void clang::driver::tools::arm::appendBE8LinkFlag ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const llvm::Triple & Triple )

◆ getARMArch()

std::string clang::driver::tools::arm::getARMArch ( llvm::StringRef Arch,
const llvm::Triple & Triple )

References Arch.

Referenced by checkARMArchName(), and getLLVMArchKindForARM().

◆ getARMArchCPUFromArgs()

void clang::driver::tools::arm::getARMArchCPUFromArgs ( const llvm::opt::ArgList & Args,
llvm::StringRef & Arch,
llvm::StringRef & CPU,
bool FromAs = false )

◆ getARMCPUForMArch()

StringRef clang::driver::tools::arm::getARMCPUForMArch ( llvm::StringRef Arch,
const llvm::Triple & Triple )

References Arch.

◆ getARMFloatABI() [1/2]

FloatABI clang::driver::tools::arm::getARMFloatABI ( const Driver & D,
const llvm::Triple & Triple,
const llvm::opt::ArgList & Args )

◆ getARMFloatABI() [2/2]

◆ getARMSubArchVersionNumber()

int clang::driver::tools::arm::getARMSubArchVersionNumber ( const llvm::Triple & Triple)

Definition at line 23 of file ARM.cpp.

References Arch.

Referenced by getDefaultFloatABI(), isHardTPSupported(), and supportsThumb2Encoding().

◆ getARMTargetCPU()

std::string clang::driver::tools::arm::getARMTargetCPU ( StringRef CPU,
llvm::StringRef Arch,
const llvm::Triple & Triple )

◆ getARMTargetFeatures()

llvm::ARM::FPUKind clang::driver::tools::arm::getARMTargetFeatures ( const Driver & D,
const llvm::Triple & Triple,
const llvm::opt::ArgList & Args,
std::vector< llvm::StringRef > & Features,
bool ForAS,
bool ForMultilib = false )

Referenced by getARMMultilibFlags().

◆ getDefaultFloatABI()

arm::FloatABI clang::driver::tools::arm::getDefaultFloatABI ( const llvm::Triple & Triple)

Definition at line 405 of file ARM.cpp.

References getARMSubArchVersionNumber(), Hard, Invalid, Soft, SoftFP, and useAAPCSForMachO().

◆ getLLVMArchKindForARM()

llvm::ARM::ArchKind clang::driver::tools::arm::getLLVMArchKindForARM ( StringRef CPU,
StringRef Arch,
const llvm::Triple & Triple )

getLLVMArchSuffixForARM - Get the LLVM ArchKind value to use for a particular CPU (or Arch, if CPU is generic).

This is needed to pass to functions like llvm::ARM::getDefaultFPU which need an ArchKind as well as a CPU name.

Definition at line 1144 of file ARM.cpp.

References Arch, and getARMArch().

Referenced by checkARMCPUName().

◆ getLLVMArchSuffixForARM()

StringRef clang::driver::tools::arm::getLLVMArchSuffixForARM ( llvm::StringRef CPU,
llvm::StringRef Arch,
const llvm::Triple & Triple )

References Arch.

◆ getReadTPMode()

ReadTPMode clang::driver::tools::arm::getReadTPMode ( const Driver & D,
const llvm::opt::ArgList & Args,
const llvm::Triple & Triple,
bool ForAS )

◆ isARMAProfile()

bool clang::driver::tools::arm::isARMAProfile ( const llvm::Triple & Triple)

Definition at line 49 of file ARM.cpp.

References Arch.

◆ isARMBigEndian()

bool clang::driver::tools::arm::isARMBigEndian ( const llvm::Triple & Triple,
const llvm::opt::ArgList & Args )

◆ isARMEABIBareMetal()

bool clang::driver::tools::arm::isARMEABIBareMetal ( const llvm::Triple & Triple)

Is the triple {arm,armeb,thumb,thumbeb}-none-none-{eabi,eabihf} ?

Definition at line 55 of file ARM.cpp.

Referenced by clang::driver::tools::baremetal::Linker::ConstructJob(), clang::driver::toolchains::BareMetal::handlesTarget(), and useFramePointerForTargetByDefault().

◆ isARMMProfile()

bool clang::driver::tools::arm::isARMMProfile ( const llvm::Triple & Triple)

Definition at line 29 of file ARM.cpp.

References Arch.

Referenced by isHardTPSupported(), and useAAPCSForMachO().

◆ isHardTPSupported()

bool clang::driver::tools::arm::isHardTPSupported ( const llvm::Triple & Triple)

Definition at line 210 of file ARM.cpp.

References getARMSubArchVersionNumber(), and isARMMProfile().

Referenced by RenderSSPOptions().

◆ setArchNameInTriple()

void clang::driver::tools::arm::setArchNameInTriple ( const Driver & D,
const llvm::opt::ArgList & Args,
types::ID InputType,
llvm::Triple & Triple )

◆ setFloatABIInTriple()

void clang::driver::tools::arm::setFloatABIInTriple ( const Driver & D,
const llvm::opt::ArgList & Args,
llvm::Triple & triple )

◆ useAAPCSForMachO()

bool clang::driver::tools::arm::useAAPCSForMachO ( const llvm::Triple & T)

Definition at line 196 of file ARM.cpp.

References isARMMProfile(), and clang::T.

Referenced by getDefaultFloatABI().