[clang] [clang][X86] Support __attribute__((model("small"/"large"))) (PR #124834)
Yaxun Liu via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 3 17:10:39 PST 2025
================
@@ -2949,15 +2950,32 @@ static void handleSectionAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
}
}
+static bool isValidCodeModelAttr(Sema &S, StringRef Str) {
+ if (S.Context.getTargetInfo().getTriple().isLoongArch()) {
+ return Str == "normal" || Str == "medium" || Str == "extreme";
+ } else {
+ assert(S.Context.getTargetInfo().getTriple().getArch() ==
+ llvm::Triple::x86_64 &&
+ "only loongarch/x86-64 supported");
+ return Str == "small" || Str == "large";
+ }
+}
+
static void handleCodeModelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
StringRef Str;
SourceLocation LiteralLoc;
// Check that it is a string.
if (!S.checkStringLiteralArgumentAttr(AL, 0, Str, &LiteralLoc))
return;
+ // Ignore the attribute for NVPTX compiles since it only applies to host
+ // globals.
+ if (S.Context.getTargetInfo().getTriple().isNVPTX())
----------------
yxsamliu wrote:
Pls do the same for AMDGPU and SPIRV/SPIRV64
https://github.com/llvm/llvm-project/pull/124834
More information about the cfe-commits
mailing list