@@ -275,7 +275,9 @@ namespace IGC
275275 else
276276 {
277277 // create a copy to make the CVariable aligned
278- auto tmpVar = m_program->GetNewVariable (8 , var->GetType (), CVariable::getAlignment (getGRFSize ()));
278+ auto tmpVar = m_program->GetNewVariable (
279+ 8 , var->GetType (), CVariable::getAlignment (getGRFSize ()),
280+ CName::NONE);
279281 SModifier mod;
280282 mod.init ();
281283 auto dstOpnd = GetDestinationOperand (tmpVar, mod);
@@ -1878,7 +1880,8 @@ namespace IGC
18781880
18791881 if (Lo == nullptr ) {
18801882 // We cannot reduce the strength if only Lo is ignored.
1881- Lo = m_program->GetNewVariable (Hi->GetNumberElement (), Hi->GetType (), Hi->GetAlign (), Hi->IsUniform ());
1883+ Lo = m_program->GetNewVariable (
1884+ Hi->GetNumberElement (), Hi->GetType (), Hi->GetAlign (), Hi->IsUniform (), Hi->getName ());
18821885 }
18831886
18841887 // Use `UD` only.
@@ -1916,7 +1919,9 @@ namespace IGC
19161919 VISA_VectorOpnd* HIn = GetSourceOperand (Hi, NewDstMod);
19171920
19181921 unsigned NumElems = 8 ;
1919- CVariable* Carry = m_program->GetNewVariable ((uint16_t )NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform ());
1922+ CVariable* Carry = m_program->GetNewVariable (
1923+ (uint16_t )NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform (),
1924+ CName (Lo->getName (), " Carry" ));
19201925 VISA_VectorOpnd* AccOut = GetDestinationOperand (Carry, m_encoderState.m_dstOperand );
19211926 VISA_VectorOpnd* AccIn = GetSourceOperand (Carry, m_encoderState.m_dstOperand );
19221927
@@ -1957,7 +1962,8 @@ namespace IGC
19571962 unsigned short NumElems = (ExecSize == EXEC_SIZE_1) ? 1 :
19581963 (ExecSize == EXEC_SIZE_2) ? 2 :
19591964 (ExecSize == EXEC_SIZE_4) ? 4 : 8 ;
1960- CVariable* Carry = m_program->GetNewVariable (NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform ());
1965+ CVariable* Carry = m_program->GetNewVariable (
1966+ NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform (), CName (Lo->getName (), " Carry" ));
19611967 VISA_VectorOpnd* AccOut = GetDestinationOperand (Carry, m_encoderState.m_dstOperand );
19621968
19631969 SModifier MidMod = m_encoderState.m_dstOperand ;
@@ -2010,7 +2016,8 @@ namespace IGC
20102016
20112017 if (Lo == nullptr ) {
20122018 // We cannot reduce the strength if only Lo is ignored.
2013- Lo = m_program->GetNewVariable (Hi->GetNumberElement (), Hi->GetType (), Hi->GetAlign (), Hi->IsUniform ());
2019+ Lo = m_program->GetNewVariable (
2020+ Hi->GetNumberElement (), Hi->GetType (), Hi->GetAlign (), Hi->IsUniform (), CName (Hi->getName (), " Carry" ));
20142021 }
20152022
20162023 // Use `UD` only.
@@ -2050,7 +2057,8 @@ namespace IGC
20502057 VISA_VectorOpnd* HIn = GetSourceOperand (Hi, NewDstMod);
20512058
20522059 unsigned short NumElems = 8 ;
2053- CVariable* Carry = m_program->GetNewVariable (NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform ());
2060+ CVariable* Carry =
2061+ m_program->GetNewVariable (NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform (), CName (Lo->getName (), " Carry" ));
20542062 VISA_VectorOpnd* AccOut = GetDestinationOperand (Carry, m_encoderState.m_dstOperand );
20552063 // Negative `Acc0`
20562064 SModifier AccMod = m_encoderState.m_dstOperand ;
@@ -2085,7 +2093,8 @@ namespace IGC
20852093 VISA_PredOpnd* Pred = GetFlagOperand (m_encoderState.m_flag );
20862094
20872095 unsigned short NumElems = (ExecSize == 1 ) ? 1 : 8 ;
2088- CVariable* Carry = m_program->GetNewVariable (NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform ());
2096+ CVariable* Carry = m_program->GetNewVariable (
2097+ NumElems, Lo->GetType (), Lo->GetAlign (), Lo->IsUniform (), CName (Lo->getName (), " Carry" ));
20892098 VISA_VectorOpnd* AccOut = GetDestinationOperand (Carry, m_encoderState.m_dstOperand );
20902099
20912100 SModifier MidMod = m_encoderState.m_dstOperand ;
@@ -2204,7 +2213,7 @@ namespace IGC
22042213 }
22052214 else
22062215 {
2207- CVariable* tmpDst = m_program->GetNewVariable (8 , ISA_TYPE_UD, EALIGN_GRF, true );
2216+ CVariable* tmpDst = m_program->GetNewVariable (8 , ISA_TYPE_UD, EALIGN_GRF, true , CName::NONE );
22082217 VISA_VectorOpnd* movDst = nullptr ;
22092218 V (vKernel->CreateVISADstOperand (movDst, GetVISAVariable (tmpDst), 1 , 0 , 0 ));
22102219
@@ -4628,7 +4637,7 @@ namespace IGC
46284637
46294638 V (vKernel->CreateVISAGenVar (
46304639 var->visaGenVariable [i],
4631- " " ,
4640+ var-> getVisaCString () ,
46324641 nbElement,
46334642 var->GetType (),
46344643 GetVISAAlign (var->GetAlias ()), // Use parent's align as we create an alias of the parent.
@@ -4650,7 +4659,7 @@ namespace IGC
46504659 {
46514660 V (vKernel->CreateVISAGenVar (
46524661 var->visaGenVariable [i],
4653- " " ,
4662+ var-> getVisaCString () ,
46544663 num_elts,
46554664 var->GetType (),
46564665 GetVISAAlign (var)));
@@ -5244,10 +5253,12 @@ namespace IGC
52445253 }
52455254 }
52465255
5247- void CEncoder::GatherA64 (CVariable* dst,
5256+ void CEncoder::GatherA64 (
5257+ CVariable* dst,
52485258 CVariable* offset,
52495259 unsigned elemSize,
5250- unsigned numElems) {
5260+ unsigned numElems)
5261+ {
52515262 IGC_ASSERT_MESSAGE ((elemSize == 8 ) || (elemSize == 32 ) || (elemSize == 64 ),
52525263 " Only B/DW/QW-sized elements are supported!" );
52535264 IGC_ASSERT_MESSAGE ((numElems == 1 ) || (numElems == 2 ) || (numElems == 4 ) || ((numElems == 8 ) && ((elemSize == 32 ) || m_program->m_Platform ->has8ByteA64ByteScatteredMessage ())),
@@ -5287,14 +5298,18 @@ namespace IGC
52875298 // to form the single simd16 payload.
52885299 CVariable* V0, * V1;
52895300 uint16_t newNumElems = (uint16_t )8 * numElems;
5290- V0 = m_program->GetNewVariable (newNumElems,
5301+ V0 = m_program->GetNewVariable (
5302+ newNumElems,
52915303 dst->GetType (),
52925304 dst->GetAlign (),
5293- dst->IsUniform ());
5294- V1 = m_program->GetNewVariable (newNumElems,
5305+ dst->IsUniform (),
5306+ dst->getName ());
5307+ V1 = m_program->GetNewVariable (
5308+ newNumElems,
52955309 dst->GetType (),
52965310 dst->GetAlign (),
5297- dst->IsUniform ());
5311+ dst->IsUniform (),
5312+ dst->getName ());
52985313
52995314 for (unsigned p = 0 ; p < 2 ; ++p)
53005315 {
@@ -5365,14 +5380,18 @@ namespace IGC
53655380 // data payload by splitting the original simd16 data payload.
53665381 CVariable* V0, * V1;
53675382 uint16_t newNumElems = (uint16_t )8 * numElems;
5368- V0 = m_program->GetNewVariable (newNumElems,
5383+ V0 = m_program->GetNewVariable (
5384+ newNumElems,
53695385 src->GetType (),
53705386 src->GetAlign (),
5371- src->IsUniform ());
5372- V1 = m_program->GetNewVariable (newNumElems,
5387+ src->IsUniform (),
5388+ CName::NONE);
5389+ V1 = m_program->GetNewVariable (
5390+ newNumElems,
53735391 src->GetType (),
53745392 src->GetAlign (),
5375- src->IsUniform ());
5393+ src->IsUniform (),
5394+ CName::NONE);
53765395 // Starting offset is calculated from AliasOffset only (subVar not used).
53775396 uint32_t srcOfstBytes = src->GetAliasOffset ();
53785397 SplitPayloadToLowerSIMD (src, srcOfstBytes, numElems, V0, V1, 16 );
@@ -5401,7 +5420,8 @@ namespace IGC
54015420 addressOpnd, srcOpnd));
54025421 }
54035422
5404- void CEncoder::ByteGather (CVariable* dst,
5423+ void CEncoder::ByteGather (
5424+ CVariable* dst,
54055425 const ResourceDescriptor& resource,
54065426 CVariable* offset,
54075427 unsigned elemSize,
@@ -5418,11 +5438,13 @@ namespace IGC
54185438 SEncoderState gatherState = CopyEncoderState ();
54195439 Push ();
54205440
5421- CVariable* offset64 = m_program->GetNewVariable (offset->GetNumberElement (),
5441+ CVariable* offset64 = m_program->GetNewVariable (
5442+ offset->GetNumberElement (),
54225443 ISA_TYPE_UQ,
54235444 EALIGN_GRF,
54245445 offset->IsUniform (),
5425- offset->GetNumberInstance ());
5446+ offset->GetNumberInstance (),
5447+ CName (offset->getName (), " _64b" ));
54265448
54275449 CVariable* offset32UD = m_program->BitCast (offset, ISA_TYPE_UD);
54285450
@@ -5463,11 +5485,13 @@ namespace IGC
54635485 addressOpnd, dstOpnd));
54645486 }
54655487
5466- void CEncoder::ByteScatter (CVariable* src,
5488+ void CEncoder::ByteScatter (
5489+ CVariable* src,
54675490 const ResourceDescriptor& resource,
54685491 CVariable* offset,
54695492 unsigned elemSize,
5470- unsigned numElems) {
5493+ unsigned numElems)
5494+ {
54715495 IGC_ASSERT_MESSAGE (elemSize == 8 , " Only BYTE element is supported!" );
54725496 IGC_ASSERT_MESSAGE ((numElems == 1 ) || (numElems == 2 ) || (numElems == 4 ),
54735497 " Only 1/2/4 elements are supported!" );
@@ -5480,11 +5504,13 @@ namespace IGC
54805504 SEncoderState gatherState = CopyEncoderState ();
54815505 Push ();
54825506
5483- CVariable* offset64 = m_program->GetNewVariable (offset->GetNumberElement (),
5507+ CVariable* offset64 = m_program->GetNewVariable (
5508+ offset->GetNumberElement (),
54845509 ISA_TYPE_UQ,
54855510 EALIGN_GRF,
54865511 offset->IsUniform (),
5487- offset->GetNumberInstance ());
5512+ offset->GetNumberInstance (),
5513+ CName (offset->getName (), " _64b" ));
54885514
54895515 CVariable* offset32UD = m_program->BitCast (offset, ISA_TYPE_UD);
54905516
@@ -5673,14 +5699,18 @@ namespace IGC
56735699 // by merging the two simd8 data payload.
56745700 CVariable* V0, * V1;
56755701 uint16_t newNumElems = (uint16_t )8 * nd;
5676- V0 = m_program->GetNewVariable (newNumElems,
5702+ V0 = m_program->GetNewVariable (
5703+ newNumElems,
56775704 dst->GetType (),
56785705 dst->GetAlign (),
5679- dst->IsUniform ());
5680- V1 = m_program->GetNewVariable (newNumElems,
5706+ dst->IsUniform (),
5707+ CName (dst->getName ()," _M0" ));
5708+ V1 = m_program->GetNewVariable (
5709+ newNumElems,
56815710 dst->GetType (),
56825711 dst->GetAlign (),
5683- dst->IsUniform ());
5712+ dst->IsUniform (),
5713+ CName (dst->getName ()," _M8" ));
56845714
56855715 for (unsigned p = 0 ; p < 2 ; ++p)
56865716 {
@@ -5769,14 +5799,18 @@ namespace IGC
57695799 // two SIMD8 data payload by spliting the original simd16 data payload.
57705800 CVariable* V0, * V1;
57715801 uint16_t newNumElems = (uint16_t )8 * nd;
5772- V0 = m_program->GetNewVariable (newNumElems,
5802+ V0 = m_program->GetNewVariable (
5803+ newNumElems,
57735804 src->GetType (),
57745805 src->GetAlign (),
5775- src->IsUniform ());
5776- V1 = m_program->GetNewVariable (newNumElems,
5806+ src->IsUniform (),
5807+ CName (src->getName ()," _M0" ));
5808+ V1 = m_program->GetNewVariable (
5809+ newNumElems,
57775810 src->GetType (),
57785811 src->GetAlign (),
5779- src->IsUniform ());
5812+ src->IsUniform (),
5813+ CName (src->getName ()," _M8" ));
57805814
57815815 SplitPayloadToLowerSIMD (src, srcOfstBytes, nd, V0, V1, 16 );
57825816
@@ -5806,7 +5840,8 @@ namespace IGC
58065840 addressOpnd, srcOpnd));
58075841 }
58085842
5809- void CEncoder::AtomicRawA64 (AtomicOp atomic_op,
5843+ void CEncoder::AtomicRawA64 (
5844+ AtomicOp atomic_op,
58105845 const ResourceDescriptor& resource,
58115846 CVariable* dst,
58125847 CVariable* offset,
@@ -5851,7 +5886,11 @@ namespace IGC
58515886 }
58525887 else
58535888 {
5854- rawOpndVar = m_program->GetNewVariable (8 , dst->GetType (), CVariable::getAlignment (getGRFSize ()));
5889+ rawOpndVar = m_program->GetNewVariable (
5890+ 8 ,
5891+ dst->GetType (),
5892+ CVariable::getAlignment (getGRFSize ()),
5893+ CName (dst->getName (), " _RET" ));
58555894 dstOpnd = GetRawDestination (rawOpndVar, 0 );
58565895 }
58575896
0 commit comments