clang 20.0.0git
Enumerations | Functions
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 
)

◆ 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 
)

◆ getARMFloatABI() [1/2]

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

◆ getARMFloatABI() [2/2]

FloatABI clang::driver::tools::arm::getARMFloatABI ( const ToolChain TC,
const llvm::opt::ArgList &  Args 
)

◆ getARMSubArchVersionNumber()

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

Definition at line 24 of file ARM.cpp.

Referenced by getDefaultFloatABI(), and isHardTPSupported().

◆ 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 387 of file ARM.cpp.

References getARMSubArchVersionNumber(), 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 1077 of file ARM.cpp.

References getARMArch().

Referenced by checkARMCPUName().

◆ getLLVMArchSuffixForARM()

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

◆ 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 50 of file ARM.cpp.

◆ 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 56 of file ARM.cpp.

References arch.

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 30 of file ARM.cpp.

Referenced by useAAPCSForMachO().

◆ isHardTPSupported()

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

Definition at line 208 of file ARM.cpp.

References getARMSubArchVersionNumber().

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 197 of file ARM.cpp.

References isARMMProfile(), and clang::T.

Referenced by getDefaultFloatABI().