From: Pan Xiuli <[email protected]> We now make each sel ir instruction with ID of step 2.
Signed-off-by: Pan Xiuli <[email protected]> --- backend/src/backend/gen_context.cpp | 1 + backend/src/backend/gen_insn_selection.hpp | 2 ++ backend/src/backend/gen_insn_selection_optimize.cpp | 10 ++++++++++ backend/src/backend/gen_insn_selection_output.cpp | 1 + 4 files changed, 14 insertions(+) diff --git a/backend/src/backend/gen_context.cpp b/backend/src/backend/gen_context.cpp index 439b868..7360f6c 100644 --- a/backend/src/backend/gen_context.cpp +++ b/backend/src/backend/gen_context.cpp @@ -3840,6 +3840,7 @@ namespace gbe sel->select(); if (OCL_OPTIMIZE_SEL_IR) sel->optimize(); + sel->addID(); if (OCL_OUTPUT_SEL_IR) outputSelectionIR(*this, this->sel, genKernel->getName()); schedulePreRegAllocation(*this, *this->sel); diff --git a/backend/src/backend/gen_insn_selection.hpp b/backend/src/backend/gen_insn_selection.hpp index 14ac05f..814b449 100644 --- a/backend/src/backend/gen_insn_selection.hpp +++ b/backend/src/backend/gen_insn_selection.hpp @@ -314,6 +314,8 @@ namespace gbe void optimize(void); uint32_t opt_features; + /* Add insn ID for sel IR */ + void addID(void); const GenContext &getCtx(); /*! Use custom allocators */ diff --git a/backend/src/backend/gen_insn_selection_optimize.cpp b/backend/src/backend/gen_insn_selection_optimize.cpp index b8aa776..cc283d7 100644 --- a/backend/src/backend/gen_insn_selection_optimize.cpp +++ b/backend/src/backend/gen_insn_selection_optimize.cpp @@ -285,4 +285,14 @@ namespace gbe //do global optimization } + + void Selection::addID() + { + uint32_t insnID = 0; + for (auto &block : *blockList) + for (auto &insn : block.insnList) { + insn.ID = insnID; + insnID += 2; + } + } } /* namespace gbe */ diff --git a/backend/src/backend/gen_insn_selection_output.cpp b/backend/src/backend/gen_insn_selection_output.cpp index 7bdd8fd..b683869 100644 --- a/backend/src/backend/gen_insn_selection_output.cpp +++ b/backend/src/backend/gen_insn_selection_output.cpp @@ -102,6 +102,7 @@ namespace gbe cout << "WARNING: not completed yet, welcome for the FIX!" << endl; for (SelectionBlock &block : *sel->blockList) { for (SelectionInstruction &insn : block.insnList) { + cout<<"["<<insn.ID<<"]"; char opname[OP_NAME_LENGTH]; if (insn.isLabel()) { cout << " L" << insn.index << ":" << endl; -- 2.7.4 _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
