Part of the plumbing that passes the ASM file name from the compiler options
level down to the emitCode level so that the assembly can be written to that
file.
---
 backend/src/backend/gen_context.cpp | 5 +++++
 backend/src/backend/gen_context.hpp | 3 +++
 backend/src/backend/gen_program.cpp | 1 +
 3 files changed, 9 insertions(+)

diff --git a/backend/src/backend/gen_context.cpp 
b/backend/src/backend/gen_context.cpp
index f10ecbe..446b693 100644
--- a/backend/src/backend/gen_context.cpp
+++ b/backend/src/backend/gen_context.cpp
@@ -49,6 +49,7 @@ namespace gbe
     this->p = NULL;
     this->sel = NULL;
     this->ra = NULL;
+    this->asmFileName = NULL;
     this->ifEndifFix = false;
     this->regSpillTick = 0;
   }
@@ -76,6 +77,10 @@ namespace gbe
     this->regSpillTick = 0;
   }
 
+  void GenContext::setASMFileName(const char* asmFname) {
+    this->asmFileName = asmFname;
+  }
+
   void GenContext::newSelection(void) {
     this->sel = GBE_NEW(Selection, *this);
   }
diff --git a/backend/src/backend/gen_context.hpp 
b/backend/src/backend/gen_context.hpp
index 6516316..cdb1401 100644
--- a/backend/src/backend/gen_context.hpp
+++ b/backend/src/backend/gen_context.hpp
@@ -69,6 +69,8 @@ namespace gbe
     #define GEN7_SCRATCH_SIZE  (12 * KB)
     /*! Start new code generation with specific parameters */
     void startNewCG(uint32_t simdWidth, uint32_t reservedSpillRegs, bool 
limitRegisterPressure);
+    /*! Set the file name for the ASM dump */
+    void setASMFileName(const char* asmFname);
     /*! Target device ID*/
     uint32_t deviceID;
     /*! Implements base class */
@@ -217,6 +219,7 @@ namespace gbe
     CompileErrorCode errCode;
     bool ifEndifFix;
     uint32_t regSpillTick;
+    const char* asmFileName;
     /*! Build the curbe patch list for the given kernel */
     void buildPatchList(void);
     /* Helper for printing the assembly */
diff --git a/backend/src/backend/gen_program.cpp 
b/backend/src/backend/gen_program.cpp
index b30ed8d..1a8903e 100644
--- a/backend/src/backend/gen_program.cpp
+++ b/backend/src/backend/gen_program.cpp
@@ -172,6 +172,7 @@ namespace gbe {
       ctx = GBE_NEW(Gen9Context, unit, name, deviceID, relaxMath);
     }
     GBE_ASSERTM(ctx != NULL, "Fail to create the gen context\n");
+    ctx->setASMFileName(this->asm_file_name);
 
     for (; codeGen < codeGenNum; ++codeGen) {
       const uint32_t simdWidth = codeGenStrategy[codeGen].simdWidth;
-- 
2.1.0

_______________________________________________
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to