Skip to content

Commit 13ed349

Browse files
authored
[AMDGPU][NFC] Rename AMDGPUVariadicMCExpr to AMDGPUMCExpr. (#96618)
Some of our custom expressions are not variadic and there seems to be little benefit in mentioning the variadic nature of expression nodes in the name anyway.
1 parent 7e9b49f commit 13ed349

File tree

4 files changed

+93
-102
lines changed

4 files changed

+93
-102
lines changed

llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -797,7 +797,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
797797
// The calculations related to SGPR/VGPR blocks are
798798
// duplicated in part in AMDGPUAsmParser::calculateGPRBlocks, and could be
799799
// unified.
800-
const MCExpr *ExtraSGPRs = AMDGPUVariadicMCExpr::createExtraSGPRs(
800+
const MCExpr *ExtraSGPRs = AMDGPUMCExpr::createExtraSGPRs(
801801
ProgInfo.VCCUsed, ProgInfo.FlatUsed,
802802
getTargetStreamer()->getTargetID()->isXnackOnOrAny(), Ctx);
803803

@@ -890,27 +890,27 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
890890
}
891891
}
892892
}
893-
ProgInfo.NumSGPR = AMDGPUVariadicMCExpr::createMax(
893+
ProgInfo.NumSGPR = AMDGPUMCExpr::createMax(
894894
{ProgInfo.NumSGPR, CreateExpr(WaveDispatchNumSGPR)}, Ctx);
895895

896-
ProgInfo.NumArchVGPR = AMDGPUVariadicMCExpr::createMax(
896+
ProgInfo.NumArchVGPR = AMDGPUMCExpr::createMax(
897897
{ProgInfo.NumVGPR, CreateExpr(WaveDispatchNumVGPR)}, Ctx);
898898

899-
ProgInfo.NumVGPR = AMDGPUVariadicMCExpr::createTotalNumVGPR(
899+
ProgInfo.NumVGPR = AMDGPUMCExpr::createTotalNumVGPR(
900900
ProgInfo.NumAccVGPR, ProgInfo.NumArchVGPR, Ctx);
901901
}
902902

903903
// Adjust number of registers used to meet default/requested minimum/maximum
904904
// number of waves per execution unit request.
905905
unsigned MaxWaves = MFI->getMaxWavesPerEU();
906-
ProgInfo.NumSGPRsForWavesPerEU = AMDGPUVariadicMCExpr::createMax(
907-
{ProgInfo.NumSGPR, CreateExpr(1ul),
908-
CreateExpr(STM.getMinNumSGPRs(MaxWaves))},
909-
Ctx);
910-
ProgInfo.NumVGPRsForWavesPerEU = AMDGPUVariadicMCExpr::createMax(
911-
{ProgInfo.NumVGPR, CreateExpr(1ul),
912-
CreateExpr(STM.getMinNumVGPRs(MaxWaves))},
913-
Ctx);
906+
ProgInfo.NumSGPRsForWavesPerEU =
907+
AMDGPUMCExpr::createMax({ProgInfo.NumSGPR, CreateExpr(1ul),
908+
CreateExpr(STM.getMinNumSGPRs(MaxWaves))},
909+
Ctx);
910+
ProgInfo.NumVGPRsForWavesPerEU =
911+
AMDGPUMCExpr::createMax({ProgInfo.NumVGPR, CreateExpr(1ul),
912+
CreateExpr(STM.getMinNumVGPRs(MaxWaves))},
913+
Ctx);
914914

915915
if (STM.getGeneration() <= AMDGPUSubtarget::SEA_ISLANDS ||
916916
STM.hasSGPRInitBug()) {
@@ -959,10 +959,9 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
959959
unsigned Granule) {
960960
const MCExpr *OneConst = CreateExpr(1ul);
961961
const MCExpr *GranuleConst = CreateExpr(Granule);
962-
const MCExpr *MaxNumGPR =
963-
AMDGPUVariadicMCExpr::createMax({NumGPR, OneConst}, Ctx);
962+
const MCExpr *MaxNumGPR = AMDGPUMCExpr::createMax({NumGPR, OneConst}, Ctx);
964963
const MCExpr *AlignToGPR =
965-
AMDGPUVariadicMCExpr::createAlignTo(MaxNumGPR, GranuleConst, Ctx);
964+
AMDGPUMCExpr::createAlignTo(MaxNumGPR, GranuleConst, Ctx);
966965
const MCExpr *DivGPR =
967966
MCBinaryExpr::createDiv(AlignToGPR, GranuleConst, Ctx);
968967
const MCExpr *SubGPR = MCBinaryExpr::createSub(DivGPR, OneConst, Ctx);
@@ -1004,7 +1003,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
10041003
// The MCExpr equivalent of divideCeil.
10051004
auto DivideCeil = [&Ctx](const MCExpr *Numerator, const MCExpr *Denominator) {
10061005
const MCExpr *Ceil =
1007-
AMDGPUVariadicMCExpr::createAlignTo(Numerator, Denominator, Ctx);
1006+
AMDGPUMCExpr::createAlignTo(Numerator, Denominator, Ctx);
10081007
return MCBinaryExpr::createDiv(Ceil, Denominator, Ctx);
10091008
};
10101009

@@ -1077,7 +1076,7 @@ void AMDGPUAsmPrinter::getSIProgramInfo(SIProgramInfo &ProgInfo,
10771076
amdhsa::COMPUTE_PGM_RSRC3_GFX90A_TG_SPLIT_SHIFT);
10781077
}
10791078

1080-
ProgInfo.Occupancy = AMDGPUVariadicMCExpr::createOccupancy(
1079+
ProgInfo.Occupancy = AMDGPUMCExpr::createOccupancy(
10811080
STM.computeOccupancy(F, ProgInfo.LDSSize), ProgInfo.NumSGPRsForWavesPerEU,
10821081
ProgInfo.NumVGPRsForWavesPerEU, STM, Ctx);
10831082

@@ -1269,8 +1268,8 @@ void AMDGPUAsmPrinter::EmitPALMetadata(const MachineFunction &MF,
12691268
// ScratchSize is in bytes, 16 aligned.
12701269
MD->setScratchSize(
12711270
CC,
1272-
AMDGPUVariadicMCExpr::createAlignTo(CurrentProgramInfo.ScratchSize,
1273-
MCConstantExpr::create(16, Ctx), Ctx),
1271+
AMDGPUMCExpr::createAlignTo(CurrentProgramInfo.ScratchSize,
1272+
MCConstantExpr::create(16, Ctx), Ctx),
12741273
Ctx);
12751274

12761275
if (MF.getFunction().getCallingConv() == CallingConv::AMDGPU_PS) {

llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8357,7 +8357,7 @@ void AMDGPUAsmParser::onBeginOfFile() {
83578357
/// max(expr, ...)
83588358
///
83598359
bool AMDGPUAsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc) {
8360-
using AGVK = AMDGPUVariadicMCExpr::VariadicKind;
8360+
using AGVK = AMDGPUMCExpr::VariantKind;
83618361

83628362
if (isToken(AsmToken::Identifier)) {
83638363
StringRef TokenId = getTokenStr();
@@ -8387,7 +8387,7 @@ bool AMDGPUAsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc) {
83878387
"mismatch of commas in " + Twine(TokenId) + " expression");
83888388
return true;
83898389
}
8390-
Res = AMDGPUVariadicMCExpr::create(VK, Exprs, getContext());
8390+
Res = AMDGPUMCExpr::create(VK, Exprs, getContext());
83918391
return false;
83928392
}
83938393
const MCExpr *Expr;

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp

Lines changed: 45 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@
2121
using namespace llvm;
2222
using namespace llvm::AMDGPU;
2323

24-
AMDGPUVariadicMCExpr::AMDGPUVariadicMCExpr(VariadicKind Kind,
25-
ArrayRef<const MCExpr *> Args,
26-
MCContext &Ctx)
24+
AMDGPUMCExpr::AMDGPUMCExpr(VariantKind Kind, ArrayRef<const MCExpr *> Args,
25+
MCContext &Ctx)
2726
: Kind(Kind), Ctx(Ctx) {
2827
assert(Args.size() >= 1 && "Needs a minimum of one expression.");
29-
assert(Kind != AGVK_None &&
30-
"Cannot construct AMDGPUVariadicMCExpr of kind none.");
28+
assert(Kind != AGVK_None && "Cannot construct AMDGPUMCExpr of kind none.");
3129

3230
// Allocating the variadic arguments through the same allocation mechanism
3331
// that the object itself is allocated with so they end up in the same memory.
@@ -40,25 +38,23 @@ AMDGPUVariadicMCExpr::AMDGPUVariadicMCExpr(VariadicKind Kind,
4038
this->Args = ArrayRef<const MCExpr *>(RawArgs, Args.size());
4139
}
4240

43-
AMDGPUVariadicMCExpr::~AMDGPUVariadicMCExpr() { Ctx.deallocate(RawArgs); }
41+
AMDGPUMCExpr::~AMDGPUMCExpr() { Ctx.deallocate(RawArgs); }
4442

45-
const AMDGPUVariadicMCExpr *
46-
AMDGPUVariadicMCExpr::create(VariadicKind Kind, ArrayRef<const MCExpr *> Args,
47-
MCContext &Ctx) {
48-
return new (Ctx) AMDGPUVariadicMCExpr(Kind, Args, Ctx);
43+
const AMDGPUMCExpr *AMDGPUMCExpr::create(VariantKind Kind,
44+
ArrayRef<const MCExpr *> Args,
45+
MCContext &Ctx) {
46+
return new (Ctx) AMDGPUMCExpr(Kind, Args, Ctx);
4947
}
5048

51-
const MCExpr *AMDGPUVariadicMCExpr::getSubExpr(size_t Index) const {
52-
assert(Index < Args.size() &&
53-
"Indexing out of bounds AMDGPUVariadicMCExpr sub-expr");
49+
const MCExpr *AMDGPUMCExpr::getSubExpr(size_t Index) const {
50+
assert(Index < Args.size() && "Indexing out of bounds AMDGPUMCExpr sub-expr");
5451
return Args[Index];
5552
}
5653

57-
void AMDGPUVariadicMCExpr::printImpl(raw_ostream &OS,
58-
const MCAsmInfo *MAI) const {
54+
void AMDGPUMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
5955
switch (Kind) {
6056
default:
61-
llvm_unreachable("Unknown AMDGPUVariadicMCExpr kind.");
57+
llvm_unreachable("Unknown AMDGPUMCExpr kind.");
6258
case AGVK_Or:
6359
OS << "or(";
6460
break;
@@ -86,21 +82,19 @@ void AMDGPUVariadicMCExpr::printImpl(raw_ostream &OS,
8682
OS << ')';
8783
}
8884

89-
static int64_t op(AMDGPUVariadicMCExpr::VariadicKind Kind, int64_t Arg1,
90-
int64_t Arg2) {
85+
static int64_t op(AMDGPUMCExpr::VariantKind Kind, int64_t Arg1, int64_t Arg2) {
9186
switch (Kind) {
9287
default:
93-
llvm_unreachable("Unknown AMDGPUVariadicMCExpr kind.");
94-
case AMDGPUVariadicMCExpr::AGVK_Max:
88+
llvm_unreachable("Unknown AMDGPUMCExpr kind.");
89+
case AMDGPUMCExpr::AGVK_Max:
9590
return std::max(Arg1, Arg2);
96-
case AMDGPUVariadicMCExpr::AGVK_Or:
91+
case AMDGPUMCExpr::AGVK_Or:
9792
return Arg1 | Arg2;
9893
}
9994
}
10095

101-
bool AMDGPUVariadicMCExpr::evaluateExtraSGPRs(MCValue &Res,
102-
const MCAsmLayout *Layout,
103-
const MCFixup *Fixup) const {
96+
bool AMDGPUMCExpr::evaluateExtraSGPRs(MCValue &Res, const MCAsmLayout *Layout,
97+
const MCFixup *Fixup) const {
10498
auto TryGetMCExprValue = [&](const MCExpr *Arg, uint64_t &ConstantValue) {
10599
MCValue MCVal;
106100
if (!Arg->evaluateAsRelocatable(MCVal, Layout, Fixup) ||
@@ -112,7 +106,7 @@ bool AMDGPUVariadicMCExpr::evaluateExtraSGPRs(MCValue &Res,
112106
};
113107

114108
assert(Args.size() == 3 &&
115-
"AMDGPUVariadic Argument count incorrect for ExtraSGPRs");
109+
"AMDGPUMCExpr Argument count incorrect for ExtraSGPRs");
116110
const MCSubtargetInfo *STI = Ctx.getSubtargetInfo();
117111
uint64_t VCCUsed = 0, FlatScrUsed = 0, XNACKUsed = 0;
118112

@@ -129,9 +123,8 @@ bool AMDGPUVariadicMCExpr::evaluateExtraSGPRs(MCValue &Res,
129123
return true;
130124
}
131125

132-
bool AMDGPUVariadicMCExpr::evaluateTotalNumVGPR(MCValue &Res,
133-
const MCAsmLayout *Layout,
134-
const MCFixup *Fixup) const {
126+
bool AMDGPUMCExpr::evaluateTotalNumVGPR(MCValue &Res, const MCAsmLayout *Layout,
127+
const MCFixup *Fixup) const {
135128
auto TryGetMCExprValue = [&](const MCExpr *Arg, uint64_t &ConstantValue) {
136129
MCValue MCVal;
137130
if (!Arg->evaluateAsRelocatable(MCVal, Layout, Fixup) ||
@@ -142,7 +135,7 @@ bool AMDGPUVariadicMCExpr::evaluateTotalNumVGPR(MCValue &Res,
142135
return true;
143136
};
144137
assert(Args.size() == 2 &&
145-
"AMDGPUVariadic Argument count incorrect for TotalNumVGPRs");
138+
"AMDGPUMCExpr Argument count incorrect for TotalNumVGPRs");
146139
const MCSubtargetInfo *STI = Ctx.getSubtargetInfo();
147140
uint64_t NumAGPR = 0, NumVGPR = 0;
148141

@@ -158,9 +151,8 @@ bool AMDGPUVariadicMCExpr::evaluateTotalNumVGPR(MCValue &Res,
158151
return true;
159152
}
160153

161-
bool AMDGPUVariadicMCExpr::evaluateAlignTo(MCValue &Res,
162-
const MCAsmLayout *Layout,
163-
const MCFixup *Fixup) const {
154+
bool AMDGPUMCExpr::evaluateAlignTo(MCValue &Res, const MCAsmLayout *Layout,
155+
const MCFixup *Fixup) const {
164156
auto TryGetMCExprValue = [&](const MCExpr *Arg, uint64_t &ConstantValue) {
165157
MCValue MCVal;
166158
if (!Arg->evaluateAsRelocatable(MCVal, Layout, Fixup) ||
@@ -172,7 +164,7 @@ bool AMDGPUVariadicMCExpr::evaluateAlignTo(MCValue &Res,
172164
};
173165

174166
assert(Args.size() == 2 &&
175-
"AMDGPUVariadic Argument count incorrect for AlignTo");
167+
"AMDGPUMCExpr Argument count incorrect for AlignTo");
176168
uint64_t Value = 0, Align = 0;
177169
if (!TryGetMCExprValue(Args[0], Value) || !TryGetMCExprValue(Args[1], Align))
178170
return false;
@@ -181,9 +173,8 @@ bool AMDGPUVariadicMCExpr::evaluateAlignTo(MCValue &Res,
181173
return true;
182174
}
183175

184-
bool AMDGPUVariadicMCExpr::evaluateOccupancy(MCValue &Res,
185-
const MCAsmLayout *Layout,
186-
const MCFixup *Fixup) const {
176+
bool AMDGPUMCExpr::evaluateOccupancy(MCValue &Res, const MCAsmLayout *Layout,
177+
const MCFixup *Fixup) const {
187178
auto TryGetMCExprValue = [&](const MCExpr *Arg, uint64_t &ConstantValue) {
188179
MCValue MCVal;
189180
if (!Arg->evaluateAsRelocatable(MCVal, Layout, Fixup) ||
@@ -194,7 +185,7 @@ bool AMDGPUVariadicMCExpr::evaluateOccupancy(MCValue &Res,
194185
return true;
195186
};
196187
assert(Args.size() == 7 &&
197-
"AMDGPUVariadic Argument count incorrect for Occupancy");
188+
"AMDGPUMCExpr Argument count incorrect for Occupancy");
198189
uint64_t InitOccupancy, MaxWaves, Granule, TargetTotalNumVGPRs, Generation,
199190
NumSGPRs, NumVGPRs;
200191

@@ -226,8 +217,9 @@ bool AMDGPUVariadicMCExpr::evaluateOccupancy(MCValue &Res,
226217
return true;
227218
}
228219

229-
bool AMDGPUVariadicMCExpr::evaluateAsRelocatableImpl(
230-
MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const {
220+
bool AMDGPUMCExpr::evaluateAsRelocatableImpl(MCValue &Res,
221+
const MCAsmLayout *Layout,
222+
const MCFixup *Fixup) const {
231223
std::optional<int64_t> Total;
232224

233225
switch (Kind) {
@@ -258,12 +250,12 @@ bool AMDGPUVariadicMCExpr::evaluateAsRelocatableImpl(
258250
return true;
259251
}
260252

261-
void AMDGPUVariadicMCExpr::visitUsedExpr(MCStreamer &Streamer) const {
253+
void AMDGPUMCExpr::visitUsedExpr(MCStreamer &Streamer) const {
262254
for (const MCExpr *Arg : Args)
263255
Streamer.visitUsedExpr(*Arg);
264256
}
265257

266-
MCFragment *AMDGPUVariadicMCExpr::findAssociatedFragment() const {
258+
MCFragment *AMDGPUMCExpr::findAssociatedFragment() const {
267259
for (const MCExpr *Arg : Args) {
268260
if (Arg->findAssociatedFragment())
269261
return Arg->findAssociatedFragment();
@@ -275,18 +267,19 @@ MCFragment *AMDGPUVariadicMCExpr::findAssociatedFragment() const {
275267
/// are unresolvable but needed for further MCExprs). Derived from
276268
/// implementation of IsaInfo::getNumExtraSGPRs in AMDGPUBaseInfo.cpp.
277269
///
278-
const AMDGPUVariadicMCExpr *
279-
AMDGPUVariadicMCExpr::createExtraSGPRs(const MCExpr *VCCUsed,
280-
const MCExpr *FlatScrUsed,
281-
bool XNACKUsed, MCContext &Ctx) {
270+
const AMDGPUMCExpr *AMDGPUMCExpr::createExtraSGPRs(const MCExpr *VCCUsed,
271+
const MCExpr *FlatScrUsed,
272+
bool XNACKUsed,
273+
MCContext &Ctx) {
282274

283275
return create(AGVK_ExtraSGPRs,
284276
{VCCUsed, FlatScrUsed, MCConstantExpr::create(XNACKUsed, Ctx)},
285277
Ctx);
286278
}
287279

288-
const AMDGPUVariadicMCExpr *AMDGPUVariadicMCExpr::createTotalNumVGPR(
289-
const MCExpr *NumAGPR, const MCExpr *NumVGPR, MCContext &Ctx) {
280+
const AMDGPUMCExpr *AMDGPUMCExpr::createTotalNumVGPR(const MCExpr *NumAGPR,
281+
const MCExpr *NumVGPR,
282+
MCContext &Ctx) {
290283
return create(AGVK_TotalNumVGPRs, {NumAGPR, NumVGPR}, Ctx);
291284
}
292285

@@ -295,10 +288,11 @@ const AMDGPUVariadicMCExpr *AMDGPUVariadicMCExpr::createTotalNumVGPR(
295288
/// Remove dependency on GCNSubtarget and depend only only the necessary values
296289
/// for said occupancy computation. Should match computeOccupancy implementation
297290
/// without passing \p STM on.
298-
const AMDGPUVariadicMCExpr *
299-
AMDGPUVariadicMCExpr::createOccupancy(unsigned InitOcc, const MCExpr *NumSGPRs,
300-
const MCExpr *NumVGPRs,
301-
const GCNSubtarget &STM, MCContext &Ctx) {
291+
const AMDGPUMCExpr *AMDGPUMCExpr::createOccupancy(unsigned InitOcc,
292+
const MCExpr *NumSGPRs,
293+
const MCExpr *NumVGPRs,
294+
const GCNSubtarget &STM,
295+
MCContext &Ctx) {
302296
unsigned MaxWaves = IsaInfo::getMaxWavesPerEU(&STM);
303297
unsigned Granule = IsaInfo::getVGPRAllocGranule(&STM);
304298
unsigned TargetTotalNumVGPRs = IsaInfo::getTotalNumVGPRs(&STM);

0 commit comments

Comments
 (0)