13 #ifndef LLVM_CLANG_LIB_BASIC_TARGETS_AARCH64_H 14 #define LLVM_CLANG_LIB_BASIC_TARGETS_AARCH64_H 18 #include "llvm/Support/TargetParser.h" 24 virtual void setDataLayout() = 0;
28 enum FPUModeEnum { FPUMode, NeonMode = (1 << 0), SveMode = (1 << 1) };
40 llvm::AArch64::ArchKind ArchKind;
49 StringRef getABI()
const override;
50 bool setABI(
const std::string &Name)
override;
53 StringRef &)
const override;
55 bool isValidCPUName(StringRef Name)
const override;
57 bool setCPU(
const std::string &Name)
override;
63 void getTargetDefinesARMV81A(
const LangOptions &Opts,
65 void getTargetDefinesARMV82A(
const LangOptions &Opts,
67 void getTargetDefinesARMV83A(
const LangOptions &Opts,
69 void getTargetDefinesARMV84A(
const LangOptions &Opts,
71 void getTargetDefinesARMV85A(
const LangOptions &Opts,
78 bool hasFeature(StringRef Feature)
const override;
79 bool handleTargetFeatures(std::vector<std::string> &Features,
84 bool isCLZForZeroUndef()
const override;
90 bool validateAsmConstraint(
const char *&Name,
93 validateConstraintModifier(StringRef Constraint,
char Modifier,
unsigned Size,
94 std::string &SuggestedModifier)
const override;
95 const char *getClobbers()
const override;
98 StringRef Expression)
const override {
102 int getEHDataRegisterNumber(
unsigned RegNo)
const override;
104 bool hasInt128Type()
const override;
114 void setDataLayout()
override;
119 const llvm::Triple Triple;
125 void setDataLayout()
override;
142 getCallingConvKind(
bool ClangABICompat4)
const override;
144 unsigned getMinGlobalAlign(uint64_t TypeSize)
const override;
161 void setDataLayout()
override;
172 void getOSDefines(
const LangOptions &Opts,
const llvm::Triple &Triple,
190 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_AARCH64_H
static const Builtin::Info BuiltinInfo[]
Options for controlling the target.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Concrete class used by the front-end to report problems and issues.
bool useFP16ConversionIntrinsics() const override
Check whether llvm intrinsics such as llvm.convert.to.fp16 should be used to convert to and from __fp...
static const char *const GCCRegNames[]
Exposes information about the current target.
CallingConv
CallingConv - Specifies the calling convention that a function uses.
StringRef getConstraintRegister(StringRef Constraint, StringRef Expression) const override
Extracts a register from the passed constraint (if it is a single-register constraint) and the asm la...
Enumerates target-specific builtins in their own namespaces within namespace clang.
OpenMPLinearClauseKind Modifier
Modifier of 'linear' clause.
Dataflow Directional Tag Classes.
BuiltinVaListKind
The different kinds of __builtin_va_list types defined by the target implementation.
static bool hasFeature(StringRef Feature, const LangOptions &LangOpts, const TargetInfo &Target)
Determine whether a translation unit built using the current language options has the given feature...