Skip to content

Commit f6c8e01

Browse files
committed
Add helper accessor for LangAS::Default -> TargetAS queries.
1 parent d8bd7ab commit f6c8e01

File tree

20 files changed

+85
-149
lines changed

20 files changed

+85
-149
lines changed

clang/lib/CodeGen/ABIInfo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
using namespace clang;
1313
using namespace clang::CodeGen;
1414

15+
unsigned ABIInfo::getTargetDefaultAS() const {
16+
return getContext().getTargetAddressSpace(LangAS::Default);
17+
}
18+
1519
// Pin the vtable to this file.
1620
ABIInfo::~ABIInfo() = default;
1721

clang/lib/CodeGen/ABIInfo.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class ABIInfo {
4949
CodeGen::CodeGenTypes &CGT;
5050
llvm::CallingConv::ID RuntimeCC;
5151

52+
unsigned getTargetDefaultAS() const;
53+
5254
public:
5355
ABIInfo(CodeGen::CodeGenTypes &cgt)
5456
: CGT(cgt), RuntimeCC(llvm::CallingConv::C) {}

clang/lib/CodeGen/Targets/AArch64.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -326,18 +326,15 @@ ABIArgInfo AArch64ABIInfo::coerceIllegalVector(QualType Ty, unsigned &NSRN,
326326
return ABIArgInfo::getDirect(ResType);
327327
}
328328

329-
return getNaturalAlignIndirect(
330-
Ty, getContext().getTargetAddressSpace(LangAS::Default), /*ByVal=*/false);
329+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/false);
331330
}
332331

333332
ABIArgInfo AArch64ABIInfo::coerceAndExpandPureScalableAggregate(
334333
QualType Ty, bool IsNamedArg, unsigned NVec, unsigned NPred,
335334
const SmallVectorImpl<llvm::Type *> &UnpaddedCoerceToSeq, unsigned &NSRN,
336335
unsigned &NPRN) const {
337336
if (!IsNamedArg || NSRN + NVec > 8 || NPRN + NPred > 4)
338-
return getNaturalAlignIndirect(
339-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
340-
/*ByVal=*/false);
337+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/false);
341338
NSRN += NVec;
342339
NPRN += NPred;
343340

@@ -377,8 +374,7 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadicFn,
377374

378375
if (const auto *EIT = Ty->getAs<BitIntType>())
379376
if (EIT->getNumBits() > 128)
380-
return getNaturalAlignIndirect(
381-
Ty, getContext().getTargetAddressSpace(LangAS::Default), false);
377+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), false);
382378

383379
if (Ty->isVectorType())
384380
NSRN = std::min(NSRN + 1, 8u);
@@ -419,7 +415,7 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadicFn,
419415
// copy constructor are always indirect.
420416
if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI())) {
421417
return getNaturalAlignIndirect(
422-
Ty, /*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
418+
Ty, /*AddrSpace=*/getTargetDefaultAS(),
423419
/*ByVal=*/RAA == CGCXXABI::RAA_DirectInMemory);
424420
}
425421

@@ -494,9 +490,7 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty, bool IsVariadicFn,
494490
: llvm::ArrayType::get(BaseTy, Size / Alignment));
495491
}
496492

497-
return getNaturalAlignIndirect(
498-
Ty, /*AddrSpace*/ getContext().getTargetAddressSpace(LangAS::Default),
499-
/*ByVal=*/false);
493+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/false);
500494
}
501495

502496
ABIArgInfo AArch64ABIInfo::classifyReturnType(QualType RetTy,

clang/lib/CodeGen/Targets/ARC.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,18 +71,15 @@ class ARCTargetCodeGenInfo : public TargetCodeGenInfo {
7171
ABIArgInfo ARCABIInfo::getIndirectByRef(QualType Ty, bool HasFreeRegs) const {
7272
return HasFreeRegs
7373
? getNaturalAlignIndirectInReg(Ty)
74-
: getNaturalAlignIndirect(
75-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
76-
false);
74+
: getNaturalAlignIndirect(Ty, getTargetDefaultAS(), false);
7775
}
7876

7977
ABIArgInfo ARCABIInfo::getIndirectByValue(QualType Ty) const {
8078
// Compute the byval alignment.
8179
const unsigned MinABIStackAlignInBytes = 4;
8280
unsigned TypeAlign = getContext().getTypeAlign(Ty) / 8;
8381
return ABIArgInfo::getIndirect(
84-
CharUnits::fromQuantity(4),
85-
/*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
82+
CharUnits::fromQuantity(4), /*AddrSpace=*/getTargetDefaultAS(),
8683
/*ByVal=*/true, TypeAlign > MinABIStackAlignInBytes);
8784
}
8885

clang/lib/CodeGen/Targets/ARM.cpp

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,8 @@ ABIArgInfo ARMABIInfo::coerceIllegalVector(QualType Ty) const {
298298
llvm::Type::getInt32Ty(getVMContext()), Size / 32);
299299
return ABIArgInfo::getDirect(ResType);
300300
}
301-
return getNaturalAlignIndirect(
302-
Ty, /*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
303-
/*ByVal=*/false);
301+
return getNaturalAlignIndirect(Ty, /*AddrSpace=*/getTargetDefaultAS(),
302+
/*ByVal=*/false);
304303
}
305304

306305
ABIArgInfo ARMABIInfo::classifyHomogeneousAggregate(QualType Ty,
@@ -357,20 +356,17 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, bool isVariadic,
357356

358357
if (const auto *EIT = Ty->getAs<BitIntType>())
359358
if (EIT->getNumBits() > 64)
360-
return getNaturalAlignIndirect(
361-
Ty,
362-
/*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
363-
/*ByVal=*/true);
359+
return getNaturalAlignIndirect(Ty, /*AddrSpace=*/getTargetDefaultAS(),
360+
/*ByVal=*/true);
364361

365362
return (isPromotableIntegerTypeForABI(Ty)
366363
? ABIArgInfo::getExtend(Ty, CGT.ConvertType(Ty))
367364
: ABIArgInfo::getDirect());
368365
}
369366

370367
if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI())) {
371-
return getNaturalAlignIndirect(
372-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
373-
RAA == CGCXXABI::RAA_DirectInMemory);
368+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(),
369+
RAA == CGCXXABI::RAA_DirectInMemory);
374370
}
375371

376372
// Ignore empty records.
@@ -405,7 +401,7 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, bool isVariadic,
405401
// and a pointer is passed.
406402
return ABIArgInfo::getIndirect(
407403
CharUnits::fromQuantity(getContext().getTypeAlign(Ty) / 8),
408-
getContext().getTargetAddressSpace(LangAS::Default), false);
404+
getTargetDefaultAS(), false);
409405
}
410406

411407
// Support byval for ARM.
@@ -424,8 +420,7 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, bool isVariadic,
424420
if (getContext().getTypeSizeInChars(Ty) > CharUnits::fromQuantity(64)) {
425421
assert(getABIKind() != ARMABIKind::AAPCS16_VFP && "unexpected byval");
426422
return ABIArgInfo::getIndirect(
427-
CharUnits::fromQuantity(ABIAlign),
428-
/*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
423+
CharUnits::fromQuantity(ABIAlign), /*AddrSpace=*/getTargetDefaultAS(),
429424
/*ByVal=*/true, /*Realign=*/TyAlign > ABIAlign);
430425
}
431426

clang/lib/CodeGen/Targets/BPF.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class BPFABIInfo : public DefaultABIInfo {
4343
return ABIArgInfo::getDirect(CoerceTy);
4444
} else {
4545
return getNaturalAlignIndirect(
46-
Ty, getContext().getTargetAddressSpace(LangAS::Default));
46+
Ty, getTargetDefaultAS());
4747
}
4848
}
4949

@@ -53,8 +53,7 @@ class BPFABIInfo : public DefaultABIInfo {
5353
ASTContext &Context = getContext();
5454
if (const auto *EIT = Ty->getAs<BitIntType>())
5555
if (EIT->getNumBits() > Context.getTypeSize(Context.Int128Ty))
56-
return getNaturalAlignIndirect(
57-
Ty, Context.getTargetAddressSpace(LangAS::Default));
56+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS());
5857

5958
return (isPromotableIntegerTypeForABI(Ty) ? ABIArgInfo::getExtend(Ty)
6059
: ABIArgInfo::getDirect());

clang/lib/CodeGen/Targets/CSKY.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ ABIArgInfo CSKYABIInfo::classifyArgumentType(QualType Ty, int &ArgGPRsLeft,
8383
if (ArgGPRsLeft)
8484
ArgGPRsLeft -= 1;
8585
return getNaturalAlignIndirect(
86-
Ty, /*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
86+
Ty, /*AddrSpace=*/getTargetDefaultAS(),
8787
/*ByVal=*/RAA == CGCXXABI::RAA_DirectInMemory);
8888
}
8989

@@ -145,8 +145,7 @@ ABIArgInfo CSKYABIInfo::classifyArgumentType(QualType Ty, int &ArgGPRsLeft,
145145
llvm::IntegerType::get(getVMContext(), XLen), (Size + 31) / XLen));
146146
}
147147
}
148-
return getNaturalAlignIndirect(
149-
Ty, getContext().getTargetAddressSpace(LangAS::Default), /*ByVal=*/false);
148+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/false);
150149
}
151150

152151
ABIArgInfo CSKYABIInfo::classifyReturnType(QualType RetTy) const {

clang/lib/CodeGen/Targets/Hexagon.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,18 +105,15 @@ ABIArgInfo HexagonABIInfo::classifyArgumentType(QualType Ty,
105105
HexagonAdjustRegsLeft(Size, RegsLeft);
106106

107107
if (Size > 64 && Ty->isBitIntType())
108-
return getNaturalAlignIndirect(
109-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
110-
/*ByVal=*/true);
108+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/true);
111109

112110
return isPromotableIntegerTypeForABI(Ty) ? ABIArgInfo::getExtend(Ty)
113111
: ABIArgInfo::getDirect();
114112
}
115113

116114
if (CGCXXABI::RecordArgABI RAA = getRecordArgABI(Ty, getCXXABI()))
117-
return getNaturalAlignIndirect(
118-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
119-
RAA == CGCXXABI::RAA_DirectInMemory);
115+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(),
116+
RAA == CGCXXABI::RAA_DirectInMemory);
120117

121118
// Ignore empty records.
122119
if (isEmptyRecord(getContext(), Ty, true))
@@ -126,9 +123,7 @@ ABIArgInfo HexagonABIInfo::classifyArgumentType(QualType Ty,
126123
unsigned Align = getContext().getTypeAlign(Ty);
127124

128125
if (Size > 64)
129-
return getNaturalAlignIndirect(
130-
Ty, getContext().getTargetAddressSpace(LangAS::Default),
131-
/*ByVal=*/true);
126+
return getNaturalAlignIndirect(Ty, getTargetDefaultAS(), /*ByVal=*/true);
132127

133128
if (HexagonAdjustRegsLeft(Size, RegsLeft))
134129
Align = Size <= 32 ? 32 : 64;

clang/lib/CodeGen/Targets/Lanai.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,8 @@ ABIArgInfo LanaiABIInfo::classifyArgumentType(QualType Ty,
9494
if (RAA == CGCXXABI::RAA_Indirect) {
9595
return getIndirectResult(Ty, /*ByVal=*/false, State);
9696
} else if (RAA == CGCXXABI::RAA_DirectInMemory) {
97-
return getNaturalAlignIndirect(
98-
Ty, /*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
99-
/*ByVal=*/true);
97+
return getNaturalAlignIndirect(Ty, /*AddrSpace=*/getTargetDefaultAS(),
98+
/*ByVal=*/true);
10099
}
101100
}
102101

clang/lib/CodeGen/Targets/LoongArch.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,7 @@ ABIArgInfo LoongArchABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
306306
if (GARsLeft)
307307
GARsLeft -= 1;
308308
return getNaturalAlignIndirect(
309-
Ty,
310-
/*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
309+
Ty, /*AddrSpace=*/getTargetDefaultAS(),
311310
/*ByVal=*/RAA == CGCXXABI::RAA_DirectInMemory);
312311
}
313312

@@ -384,9 +383,7 @@ ABIArgInfo LoongArchABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
384383
(!getContext().getTargetInfo().hasInt128Type() &&
385384
EIT->getNumBits() > 64))
386385
return getNaturalAlignIndirect(
387-
Ty,
388-
/*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
389-
/*ByVal=*/false);
386+
Ty, /*AddrSpace=*/getTargetDefaultAS(), /*ByVal=*/false);
390387
}
391388

392389
return ABIArgInfo::getDirect();
@@ -409,9 +406,8 @@ ABIArgInfo LoongArchABIInfo::classifyArgumentType(QualType Ty, bool IsFixed,
409406
return ABIArgInfo::getDirect(
410407
llvm::ArrayType::get(llvm::IntegerType::get(getVMContext(), GRLen), 2));
411408
}
412-
return getNaturalAlignIndirect(
413-
Ty, /*AddrSpace=*/getContext().getTargetAddressSpace(LangAS::Default),
414-
/*ByVal=*/false);
409+
return getNaturalAlignIndirect(Ty, /*AddrSpace=*/getTargetDefaultAS(),
410+
/*ByVal=*/false);
415411
}
416412

417413
ABIArgInfo LoongArchABIInfo::classifyReturnType(QualType RetTy) const {

0 commit comments

Comments
 (0)