Skip to content

Commit 5a89ef5

Browse files
skachkov-inteligcbot
authored andcommitted
Remove VME register category
VME variables are not longer used in Finalizer and can be removed
1 parent 93d13ca commit 5a89ef5

File tree

10 files changed

+21
-39
lines changed

10 files changed

+21
-39
lines changed

IGC/VectorCompiler/include/vc/GenXOpts/Utils/KernelInfo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,15 +177,13 @@ class KernelMetadata {
177177
return ArgTypeDescs[Idx];
178178
}
179179

180-
enum { AK_NORMAL, AK_SAMPLER, AK_SURFACE, AK_VME };
180+
enum { AK_NORMAL, AK_SAMPLER, AK_SURFACE };
181181
unsigned getArgCategory(unsigned Idx) const {
182182
switch (getArgKind(Idx) & 7) {
183183
case AK_SAMPLER:
184184
return RegCategory::SAMPLER;
185185
case AK_SURFACE:
186186
return RegCategory::SURFACE;
187-
case AK_VME:
188-
return RegCategory::VME;
189187
default:
190188
return RegCategory::GENERAL;
191189
}

IGC/VectorCompiler/include/vc/GenXOpts/Utils/RegCategory.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ struct RegCategory {
2323
PREDICATE,
2424
SAMPLER,
2525
SURFACE,
26-
VME,
2726
NUMREALCATEGORIES,
2827
EM,
2928
RM,

IGC/VectorCompiler/lib/GenXCodeGen/GenXCategory.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -782,8 +782,6 @@ static unsigned intrinsicCategoryToRegCategory(unsigned ICat)
782782
return RegCategory::SAMPLER;
783783
case GenXIntrinsicInfo::SURFACE:
784784
return RegCategory::SURFACE;
785-
case GenXIntrinsicInfo::VME:
786-
return RegCategory::VME;
787785
default:
788786
return RegCategory::GENERAL;
789787
}

IGC/VectorCompiler/lib/GenXCodeGen/GenXCisaBuilder.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1722,7 +1722,6 @@ GenXKernelBuilder::createDestination(Value *Dest, genx::Signedness Signed,
17221722
DONTCARESIGNED, Mod, true /*isDest*/);
17231723
} else {
17241724
IGC_ASSERT(Reg->Category == RegCategory::SURFACE ||
1725-
Reg->Category == RegCategory::VME ||
17261725
Reg->Category == RegCategory::SAMPLER);
17271726

17281727
return createState(Reg, 0 /*Offset*/, true /*IsDst*/);
@@ -1755,8 +1754,7 @@ GenXKernelBuilder::createDestination(Value *Dest, genx::Signedness Signed,
17551754
*SignedRes = RegAlloc->getSigned(Reg);
17561755

17571756
if (Reg && (Reg->Category == RegCategory::SAMPLER ||
1758-
Reg->Category == RegCategory::SURFACE ||
1759-
Reg->Category == RegCategory::VME)) {
1757+
Reg->Category == RegCategory::SURFACE)) {
17601758
IGC_ASSERT(R.ElementBytes);
17611759
return createState(Reg, R.Offset / R.ElementBytes, true /*IsDest*/);
17621760
} else {
@@ -2086,8 +2084,7 @@ VISA_VectorOpnd *GenXKernelBuilder::createSource(Value *V, Signedness Signed,
20862084
Register *Reg = getRegForValueAndSaveAlias(KernFunc, V, Signed);
20872085
IGC_ASSERT(Reg->Category == RegCategory::GENERAL ||
20882086
Reg->Category == RegCategory::SURFACE ||
2089-
Reg->Category == RegCategory::SAMPLER ||
2090-
Reg->Category == RegCategory::VME);
2087+
Reg->Category == RegCategory::SAMPLER);
20912088
// Write the vISA general operand.
20922089
Region R(V);
20932090
if (Offset)
@@ -2614,8 +2611,7 @@ void GenXKernelBuilder::buildLoneOperand(Instruction *Inst, genx::BaleInfo BI,
26142611
DstReg = getRegForValueAndSaveAlias(KernFunc, Inst, DONTCARESIGNED);
26152612
}
26162613
if (DstReg && (DstReg->Category == RegCategory::SURFACE ||
2617-
DstReg->Category == RegCategory::SAMPLER ||
2618-
DstReg->Category == RegCategory::VME)) {
2614+
DstReg->Category == RegCategory::SAMPLER)) {
26192615
Opcode = ISA_MOVS;
26202616
}
26212617
}
@@ -3215,10 +3211,6 @@ void GenXKernelBuilder::buildVariables() {
32153211
Reg->SetVar(Kernel, Decl);
32163212
} break;
32173213

3218-
case RegCategory::VME:
3219-
report_fatal_error("VME variable is no longer supported");
3220-
break;
3221-
32223214
default:
32233215
report_fatal_error("Unknown category for register");
32243216
break;

IGC/VectorCompiler/lib/GenXCodeGen/GenXIntrinsics.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,9 @@ unsigned GenXIntrinsicInfo::getTrailingNullZoneStart(CallInst *CI) {
126126
*/
127127
unsigned GenXIntrinsicInfo::getExecSizeAllowedBits() {
128128
for (const auto *p = Args; *p; p++) {
129-
if (!(*p & GENERAL)) {
130-
switch (*p & CATMASK) {
129+
ArgInfo AI(*p);
130+
if (!AI.isGeneral()) {
131+
switch (AI.getCategory()) {
131132
case EXECSIZE:
132133
return 0x3f;
133134
case EXECSIZE_GE2:

IGC/VectorCompiler/lib/GenXCodeGen/GenXIntrinsics.h

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -116,31 +116,32 @@ class GenXIntrinsicInfo {
116116
Z_PREDICATE = PREDICATE | PREDICATE_ZEROED,
117117
SAMPLER = GENX_ITR_CATVAL(0x25), // sampler operand
118118
SURFACE = GENX_ITR_CATVAL(0x26), // surface operand
119-
VME = GENX_ITR_CATVAL(0x27), // vme operand
120119
// byte height of media 2D block, inferred from the width operand
121120
// pointed at and the size of the return type or final operand type
122-
MEDIAHEIGHT = GENX_ITR_CATVAL(0x28),
121+
MEDIAHEIGHT = GENX_ITR_CATVAL(0x27),
123122
// predication control field from explicit predicate arg
124-
PREDICATION = GENX_ITR_CATVAL(0x29),
123+
PREDICATION = GENX_ITR_CATVAL(0x28),
125124
// chmask field in load/sample, with exec size bit
126-
SAMPLECHMASK = GENX_ITR_CATVAL(0x2a),
125+
SAMPLECHMASK = GENX_ITR_CATVAL(0x29),
127126
// does not appear in the vISA output, but needs to be two address
128127
// coalesced with result
129-
TWOADDR = GENX_ITR_CATVAL(0x2b),
130-
CONSTVI1ASI32 = GENX_ITR_CATVAL(0x2c), // constant vXi1 written as i32 (used in setp)
131-
RAW = GENX_ITR_CATVAL(0x2d), // raw operand or result,
128+
TWOADDR = GENX_ITR_CATVAL(0x2a),
129+
CONSTVI1ASI32 = GENX_ITR_CATVAL(0x2b), // constant vXi1 written as i32 (used in setp)
130+
RAW = GENX_ITR_CATVAL(0x2c), // raw operand or result,
132131
// Raw descriptor flags, 3 bits used
133132
RAW_UNSIGNED = GENX_ITR_FLAGVAL(0), // raw operand/result must be unsigned
134133
RAW_SIGNED = GENX_ITR_FLAGVAL(1), // raw operand/result must be signed
135134
RAW_NULLALLOWED = GENX_ITR_FLAGVAL(2), // raw operand or result can be null (V0)
136135
URAW = RAW | RAW_UNSIGNED,
137136
SRAW = RAW | RAW_SIGNED,
138-
EXECSIZE_NOMASK = GENX_ITR_CATVAL(0x2e), // execution size with NoMask
137+
EXECSIZE_NOMASK = GENX_ITR_CATVAL(0x2d), // execution size with NoMask
139138

140139
// A general operand
141-
GENERAL = GENX_ITR_CATVAL(0x30),
140+
GENERAL = GENX_ITR_CATVAL(0x2e),
142141
// A general operand with compile-time signedness choosing
143142
GENERAL_CTSIGN = GENERAL,
143+
// A predefined surface operand
144+
PREDEF_SURFACE = GENX_ITR_CATVAL(0x2f),
144145
// Modifiers for destination or source, 7 bits used
145146
UNSIGNED = GENX_ITR_FLAGVAL(0), // int type forced to unsigned
146147
SIGNED = GENX_ITR_FLAGVAL(1), // int type forced to signed
@@ -170,7 +171,6 @@ class GenXIntrinsicInfo {
170171
MODIFIER_LOGIC = GENX_ITR_FLAGENUM(8, 2), // src modifier: logic
171172
MODIFIER_EXTONLY = GENX_ITR_FLAGENUM(8, 3), // src modifier: extend only
172173
DIRECTONLY = GENX_ITR_FLAGVAL(10), // indirect region not allowed
173-
PREDEF_SURFACE = GENX_ITR_CATVAL(0x31), // predefined surface operand
174174
};
175175
struct ArgInfo {
176176
unsigned Info;
@@ -267,7 +267,6 @@ class GenXIntrinsicInfo {
267267
case PREDICATION:
268268
case SURFACE:
269269
case SAMPLER:
270-
case VME:
271270
return true;
272271
default: break;
273272
}

IGC/VectorCompiler/lib/GenXCodeGen/GenXLiveness.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1782,11 +1782,10 @@ void LiveRange::print(raw_ostream &OS) const
17821782
case RegCategory::GENERAL: Cat = "general"; break;
17831783
case RegCategory::ADDRESS: Cat = "address"; break;
17841784
case RegCategory::PREDICATE: Cat = "predicate"; break;
1785-
case RegCategory::EM: Cat = "em"; break;
1786-
case RegCategory::RM: Cat = "rm"; break;
17871785
case RegCategory::SAMPLER: Cat = "sampler"; break;
17881786
case RegCategory::SURFACE: Cat = "surface"; break;
1789-
case RegCategory::VME: Cat = "vme"; break;
1787+
case RegCategory::EM: Cat = "em"; break;
1788+
case RegCategory::RM: Cat = "rm"; break;
17901789
}
17911790
OS << "{" << Cat << ",align" << (1U << LogAlignment);
17921791
if (Offset)

IGC/VectorCompiler/lib/GenXCodeGen/GenXVisa.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,7 @@ namespace llvm {
115115
VISA_MAX_ADDRESS_REGS = 4096,
116116
VISA_MAX_PREDICATE_REGS = 4096,
117117
VISA_MAX_SAMPLER_REGS = 32 - 1,
118-
VISA_MAX_SURFACE_REGS = 256,
119-
VISA_MAX_VME_REGS = 16 };
118+
VISA_MAX_SURFACE_REGS = 256 };
120119

121120
enum { VISA_WIDTH_GENERAL_REG = 32 };
122121

IGC/VectorCompiler/lib/GenXCodeGen/GenXVisaRegAlloc.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,6 @@ bool GenXVisaRegAlloc::runOnFunctionGroup(FunctionGroup &FGArg)
155155
report_fatal_error("Too many vISA sampler registers");
156156
if (CurrentRegId[RegCategory::SURFACE] > VISA_MAX_SURFACE_REGS)
157157
report_fatal_error("Too many vISA surface registers");
158-
if (CurrentRegId[RegCategory::VME] > VISA_MAX_VME_REGS)
159-
report_fatal_error("Too many vISA VME registers");
160158
return false;
161159
}
162160

@@ -951,7 +949,6 @@ void GenXVisaRegAlloc::Reg::print(raw_ostream &OS) const
951949
case RegCategory::PREDICATE: OS << "p"; break;
952950
case RegCategory::SAMPLER: OS << "s"; break;
953951
case RegCategory::SURFACE: OS << "t"; break;
954-
case RegCategory::VME: OS << "vme"; break;
955952
default: OS << "?"; break;
956953
}
957954
OS << Num;

IGC/VectorCompiler/lib/GenXCodeGen/GenXVisaRegAlloc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ namespace llvm {
100100
Reg* AliasTo = nullptr)
101101
: Category(Category), Num(Num), AliasTo(AliasTo), Signed(Signed),
102102
Ty(Ty), Alignment(LogAlignment) {
103-
static const char* Prefix[] = { "ERR", "V", "A", "P", "S", "T", "VME" };
103+
static const char* Prefix[] = { "ERR", "V", "A", "P", "S", "T" };
104104
IGC_ASSERT(Category);
105105
IGC_ASSERT(Category < genx::RegCategory::NUMREALCATEGORIES);
106106
NameStr = Prefix[Category] + std::to_string(Num);

0 commit comments

Comments
 (0)