Skip to content

Commit

Permalink
Dump address space types for LSC send messages
Browse files Browse the repository at this point in the history
Dump address space types {private, global, local, generic, raystack} for
LSC send messages in asm listing.
  • Loading branch information
anikaushik authored and igcbot committed Jul 11, 2023
1 parent 29f0166 commit 2dfe380
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 1 deletion.
3 changes: 3 additions & 0 deletions IGC/Compiler/CISACodeGen/CISABuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8074,6 +8074,8 @@ namespace IGC
addr.immScale = 1;
addr.immOffset = immOffset;
addr.size = addr_size;
// TODO: update this accordingly
addr.addrSpace = LSC_DOC_ADDR_SPACE::INVALID;

if (resource)
{
Expand Down Expand Up @@ -8219,6 +8221,7 @@ namespace IGC
addr.immScale = 1;
addr.immOffset = immOffset;
addr.size = addr_size;
addr.addrSpace = LSC_DOC_ADDR_SPACE::INVALID;
if (resource)
{
addr.type = getLSCAddrType(resource);
Expand Down
28 changes: 27 additions & 1 deletion visa/VisaToG4/TranslateSendLdStLsc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,31 @@ static int lscBlock2dComputeDataRegs(LSC_OP op,
return dataRegs;
}

static std::string generateAddrSpaceComment(LSC_DOC_ADDR_SPACE addrSpace) {
std::string addrSpaceString = "";
switch (addrSpace) {
case LSC_DOC_ADDR_SPACE::PRIVATE:
addrSpaceString += "address space: private";
break;
case LSC_DOC_ADDR_SPACE::GLOBAL:
addrSpaceString += "address space: global";
break;
case LSC_DOC_ADDR_SPACE::LOCAL:
addrSpaceString += "addres space: local";
break;
case LSC_DOC_ADDR_SPACE::GENERIC:
addrSpaceString += "address space: generic";
break;
case LSC_DOC_ADDR_SPACE::RAYSTACK:
addrSpaceString += "address space: raystack";
break;
default:
// do not print anything
break;
}
return addrSpaceString;
}

int IR_Builder::translateLscUntypedInst(
LSC_OP op, LSC_SFID lscSfid, G4_Predicate *pred,
VISA_Exec_Size visaExecSize, VISA_EMask_Ctrl execCtrl,
Expand Down Expand Up @@ -621,9 +646,10 @@ int IR_Builder::translateLscUntypedInst(
getSendAccessType(loadAccess, storeAccess),
surface, LdStAttrs::NONE);

createLscSendInst(pred, dstRead, src0Addr, src1Data, execSize, msgDesc,
auto sendInst = createLscSendInst(pred, dstRead, src0Addr, src1Data, execSize, msgDesc,
instOpt, addrInfo.type, true);

sendInst->addComment(generateAddrSpaceComment(addrInfo.addrSpace));
return status;
}

Expand Down
13 changes: 13 additions & 0 deletions visa/include/visa_igc_common_header.h
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,15 @@ enum LSC_ADDR_TYPE {
LSC_ADDR_TYPE_ARG, // pseudo address type for kernel arguments
};

enum class LSC_DOC_ADDR_SPACE {
INVALID,
PRIVATE,
GLOBAL,
LOCAL,
GENERIC,
RAYSTACK,
};

//
// Caching override behavior
//
Expand Down Expand Up @@ -780,6 +789,10 @@ struct LSC_ADDR {

// The number of bits per address; not all address models support all sizes
LSC_ADDR_SIZE size; // e.g. :a64, :a32, ...

// e.g private, global, local, generic, raystack
// used for documentation in comments
LSC_DOC_ADDR_SPACE addrSpace;
};

// The specific fence op
Expand Down

0 comments on commit 2dfe380

Please sign in to comment.