Skip to content

Commit a2fba48

Browse files
weiyu-chengfxbot
authored andcommitted
Add vISA FILE opcode for interleaving src file with asm dump
Change-Id: I257c91ad5cec490dfe804d33ece4e1091519a3e2
1 parent 2580e3e commit a2fba48

File tree

6 files changed

+23
-3
lines changed

6 files changed

+23
-3
lines changed

IGC/Compiler/CISACodeGen/CISABuilder.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5264,5 +5264,10 @@ void CEncoder::Loc(unsigned int line)
52645264
V(vKernel->AppendVISAMiscLOC(line));
52655265
}
52665266

5267+
void CEncoder::File(std::string& s)
5268+
{
5269+
V(vKernel->AppendVISAMiscFileInst(s.c_str()));
5270+
}
5271+
52675272

52685273
}

IGC/Compiler/CISACodeGen/CISABuilder.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ class CEncoder
223223
void StackCall(CVariable *flag, llvm::Function *F, unsigned char argSize, unsigned char retSize);
224224
void StackRet(CVariable *flag);
225225
void Loc(unsigned int line);
226+
void File(std::string& s);
226227

227228
inline void Jump(uint label);
228229
inline void Cast(CVariable* dst, CVariable* src);

IGC/Compiler/CISACodeGen/EmitVISAPass.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,8 @@ bool EmitPass::runOnFunction(llvm::Function &F)
469469

470470
DenseMap<Instruction*, uint32_t> rootToVISAId;
471471

472+
StringRef curSrcFile, curSrcDir;
473+
472474
for(uint i = 0; i < m_pattern->m_numBlocks; i++)
473475
{
474476
SBasicBlock& block = m_pattern->m_blocks[i];
@@ -501,6 +503,18 @@ bool EmitPass::runOnFunction(llvm::Function &F)
501503
if ((*I).m_root->getDebugLoc())
502504
{
503505
unsigned int curLineNumber = (*I).m_root->getDebugLoc().getLine();
506+
auto&& srcFile = (*I).m_root->getDebugLoc()->getScope()->getFilename();
507+
auto&& srcDir = (*I).m_root->getDebugLoc()->getScope()->getDirectory();
508+
if (!curSrcFile.equals(srcFile) || !curSrcDir.equals(srcDir))
509+
{
510+
curSrcFile = srcFile;
511+
curSrcDir = srcDir;
512+
IF_DEBUG_INFO_IF(m_pDebugEmitter, m_pDebugEmitter->BeginEncodingMark();)
513+
std::string fileName = std::string(curSrcDir);
514+
fileName += std::string(curSrcFile);
515+
m_encoder->File(fileName);
516+
IF_DEBUG_INFO_IF(m_pDebugEmitter, m_pDebugEmitter->EndEncodingMark();)
517+
}
504518
if (curLineNumber != lineNo)
505519
{
506520
IF_DEBUG_INFO_IF(m_pDebugEmitter, m_pDebugEmitter->BeginEncodingMark();)

visa/VISAKernel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ class VISAKernelImpl : public VISAFunction
491491

492492
CM_BUILDER_API int AppendVISASplitBarrierInst(bool isSignal);
493493

494-
CM_BUILDER_API int AppendVISAMiscFileInst(char *fileName);
494+
CM_BUILDER_API int AppendVISAMiscFileInst(const char *fileName);
495495

496496
CM_BUILDER_API int AppendVISAMiscLOC(unsigned int lineNumber);
497497

visa/VISAKernelImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4800,7 +4800,7 @@ int VISAKernelImpl::AppendVISASplitBarrierInst(bool isSignal)
48004800
return status;
48014801
}
48024802

4803-
int VISAKernelImpl::AppendVISAMiscFileInst(char *fileName)
4803+
int VISAKernelImpl::AppendVISAMiscFileInst(const char *fileName)
48044804
{
48054805
AppendVISAInstCommon();
48064806
#if defined(MEASURE_COMPILATION_TIME) && defined(TIME_BUILDER)

visa/include/VISABuilderAPIDefinition.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,7 @@ class VISAKernel
521521
/// isSignal indicates whether this is the signal or wait for the barrier
522522
CM_BUILDER_API virtual int AppendVISASplitBarrierInst(bool isSignal) = 0;
523523

524-
CM_BUILDER_API virtual int AppendVISAMiscFileInst(char *fileName) = 0;
524+
CM_BUILDER_API virtual int AppendVISAMiscFileInst(const char *fileName) = 0;
525525

526526
CM_BUILDER_API virtual int AppendVISAMiscLOC(unsigned int lineNumber) = 0;
527527

0 commit comments

Comments
 (0)