Skip to content

Commit d5bef0c

Browse files
pratikasharigcbot
authored andcommitted
Fix outdated comment.
Fix outdated comment.
1 parent 84186bc commit d5bef0c

16 files changed

+74
-16
lines changed

IGC/Compiler/CISACodeGen/CISABuilder.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7419,7 +7419,10 @@ namespace IGC
74197419

74207420
LSC_ADDR_TYPE CEncoder::getLSCAddrType(const ResourceDescriptor* resource)
74217421
{
7422-
return getLSCAddrType(resource->m_surfaceType);
7422+
if (resource->m_isThreadArg)
7423+
return LSC_ADDR_TYPE_ARG;
7424+
else
7425+
return getLSCAddrType(resource->m_surfaceType);
74237426
}
74247427

74257428
LSC_ADDR_TYPE CEncoder::getLSCAddrType(e_predefSurface surfaceType)
@@ -7477,6 +7480,11 @@ namespace IGC
74777480
{
74787481
globalOffsetOpnd = nullptr;
74797482
}
7483+
else if (addr.type == LSC_ADDR_TYPE_ARG)
7484+
{
7485+
globalOffsetOpnd = nullptr;
7486+
addr.size = LSC_ADDR_SIZE_32b;
7487+
}
74807488
else
74817489
{
74827490
globalOffsetOpnd = GetVISALSCSurfaceOpnd(resource->m_surfaceType, resource->m_resource);

IGC/Compiler/CISACodeGen/CISACodeGen.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,12 @@ namespace IGC
167167
{
168168
CVariable* m_resource;
169169
e_predefSurface m_surfaceType;
170-
ResourceDescriptor() : m_resource(nullptr), m_surfaceType(ESURFACE_NORMAL) {}
170+
// this flag is set whenever addrspace is set to ADDRESS_SPACE_THREAD_ARG
171+
// to access thread arguments. we need to lower such messages
172+
// using special addressing mode.
173+
bool m_isThreadArg = false;
174+
ResourceDescriptor() : m_resource(nullptr), m_surfaceType(ESURFACE_NORMAL),
175+
m_isThreadArg(false) {}
171176
};
172177

173178
struct SamplerDescriptor

IGC/Compiler/CISACodeGen/EmitVISAPass.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19610,6 +19610,9 @@ ResourceDescriptor EmitPass::GetResourceVariable(Value* resourcePtr)
1961019610

1961119611
bufType = DecodeAS4GFXResource(as, directIndexing, bufferIndex);
1961219612

19613+
if (as == ADDRESS_SPACE_THREAD_ARG)
19614+
resource.m_isThreadArg = true;
19615+
1961319616
if (IsBindless(bufType) || !directIndexing)
1961419617
{
1961519618
if (isa<IntToPtrInst>(resourcePtr))

IGC/Compiler/CISACodeGen/helper.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ namespace IGC
7979
}
8080
else if (bufType == STATELESS_A32)
8181
{
82-
return ADDRESS_SPACE_A32;
82+
return ADDRESS_SPACE_THREAD_ARG;
8383
}
8484
else if (auto *CI = dyn_cast<ConstantInt>(&bufIdx))
8585
{
@@ -110,7 +110,7 @@ namespace IGC
110110
{
111111
return SLM;
112112
}
113-
else if (addrSpace == ADDRESS_SPACE_A32)
113+
else if (addrSpace == ADDRESS_SPACE_THREAD_ARG)
114114
{
115115
return STATELESS_A32;
116116
}
@@ -207,7 +207,7 @@ namespace IGC
207207
return SLM;
208208
case ADDRESS_SPACE_GLOBAL:
209209
return STATELESS;
210-
case ADDRESS_SPACE_A32:
210+
case ADDRESS_SPACE_THREAD_ARG:
211211
return STATELESS_A32;
212212
default:
213213
break;

IGC/Compiler/CodeGenContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@ namespace IGC
974974
getModule()->getDataLayout().getPointerSizeInBits(AS);
975975
break;
976976
case ADDRESS_SPACE_LOCAL:
977-
case ADDRESS_SPACE_A32:
977+
case ADDRESS_SPACE_THREAD_ARG:
978978
pointerSizeInRegister = 32;
979979
break;
980980
case ADDRESS_SPACE_PRIVATE:

IGC/Compiler/CodeGenPublicEnums.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ namespace IGC
115115
ADDRESS_SPACE_CONSTANT = 2,
116116
ADDRESS_SPACE_LOCAL = 3,
117117
ADDRESS_SPACE_GENERIC = 4,
118-
ADDRESS_SPACE_A32 = 5,
118+
ADDRESS_SPACE_THREAD_ARG = 5,
119119

120120
ADDRESS_SPACE_GLOBAL_OR_PRIVATE = 20,
121121

IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ llvm::Value* LowerImplicitArgIntrinsics::BuildLoadInst(llvm::CallInst& CI, unsig
333333
unsigned int AddrSpace = ADDRESS_SPACE_GLOBAL;
334334
if (m_ctx->platform.isProductChildOf(IGFX_XE_HP_SDV))
335335
{
336-
AddrSpace = ADDRESS_SPACE_A32;
336+
AddrSpace = ADDRESS_SPACE_THREAD_ARG;
337337
}
338338

339339
llvm::Value* LoadedData = nullptr;

visa/BuildIRImpl.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2670,8 +2670,9 @@ G4_SendDescRaw* IR_Builder::createLscMsgDesc(
26702670
// promote the immediate BTI to the descriptor
26712671
exDesc |= surfaceImm << 24;
26722672
surface = nullptr;
2673-
}
2674-
else if (
2673+
} else if (addr.type == LSC_ADDR_TYPE_ARG) {
2674+
MUST_BE_TRUE(false, "caller should have converted LSC_ADDR_TYPE_ARG to ...BTI");
2675+
} else if (
26752676
addr.type == LSC_ADDR_TYPE_BSS ||
26762677
addr.type == LSC_ADDR_TYPE_SS)
26772678
{
@@ -2781,7 +2782,7 @@ G4_InstSend *IR_Builder::createLscSendInst(
27812782
if (surface && surface->isSrcRegRegion()) {
27822783
if (emitA0RegDef)
27832784
{
2784-
// This path is taken when caller hasnt defined a0.2 register for use
2785+
// This path is taken when caller hasn't defined a0.2 register for use
27852786
// as ext msg descriptor of lsc. Currently, spill module defines a0.2
27862787
// once per BB and reuses it in all spill msgs for that BB. Without this
27872788
// check, each spill/fill msg would get its own computation of a0.2

visa/CISA.l

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1082,6 +1082,7 @@ flat {return LSC_AM_FLAT;}
10821082
bti {return LSC_AM_BTI;}
10831083
ss {return LSC_AM_SS;}
10841084
bss {return LSC_AM_BSS;}
1085+
arg {return LSC_AM_ARG;}
10851086

10861087
".none" {
10871088
CISAlval.lsc_fence_op = LSC_FENCE_OP_NONE;

visa/CISA.y

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,7 @@ std::vector<attr_gen_struct*> AttrOptVar;
593593
%token LSC_AM_BTI
594594
%token LSC_AM_BSS
595595
%token LSC_AM_SS
596+
%token LSC_AM_ARG
596597
//
597598
%token <lsc_fence_op> LSC_FENCE_OP_TYPE
598599
%token <lsc_scope> LSC_FENCE_SCOPE
@@ -1132,7 +1133,7 @@ MovInstruction:
11321133
Predicate MOV_OP SatModOpt ExecSize VecDstOperand_A VecSrcOperand_G_I_IMM_A_AO
11331134
{
11341135
pBuilder->CISA_create_mov_instruction(
1135-
$1, $2, $4.emask, $4.exec_size, $3,
1136+
$1, $2, $4.emask, $4.exec_size, $3,
11361137
$5.cisa_gen_opnd, $6.cisa_gen_opnd, CISAlineno);
11371138
}
11381139
|
@@ -2003,6 +2004,7 @@ LscAddrImmScaleOpt:
20032004
LscAddrModelOpt:
20042005
%empty {$$ = {LSC_ADDR_TYPE_FLAT,nullptr};}
20052006
| LSC_AM_FLAT {$$ = {LSC_ADDR_TYPE_FLAT,nullptr};}
2007+
| LSC_AM_ARG {$$ = {LSC_ADDR_TYPE_ARG,nullptr};}
20062008
| LscRegAddrModel
20072009

20082010
LscRegAddrModel:

0 commit comments

Comments
 (0)