To support simd16/9 mixing, we have to do two things: 1. collect IR layer vector information and pass it into register allocation function to allocate proper contiguous regions for those ir vectors. 2. Enable post register allocation instruction scheduling, as we need to do the instruction merging after register allocation.
This patch set finish the above two things, and do some optimization on the post instruction scheduling. This patchset itself could get about 10% performance improvement with luxmark. Zhigang Gong (5): GBE: disable mad for some cases. GBE: fix one post register allocation instruction scheduling bug. GBE: optimize post reg allocation instruction scheduling. GBE: fix post scheduling related bug for spill/unspill. GBE: preparation to mix simd16 into simd8 kernel. .../src/backend/gen_insn_gen7_schedule_info.hxx | 48 ++-- backend/src/backend/gen_insn_scheduling.cpp | 262 ++++++++++++++------- backend/src/backend/gen_insn_selection.cpp | 98 ++++++-- backend/src/backend/gen_insn_selection.hpp | 44 +++- backend/src/backend/gen_reg_allocation.cpp | 103 +++++--- backend/src/ir/function.hpp | 25 ++ backend/src/ir/unit.cpp | 1 + backend/src/ir/unit.hpp | 39 +++ backend/src/llvm/llvm_gen_backend.cpp | 14 +- backend/src/llvm/llvm_gen_backend.hpp | 3 +- backend/src/llvm/llvm_scalarize.cpp | 13 +- backend/src/llvm/llvm_to_gen.cpp | 2 +- 12 files changed, 481 insertions(+), 171 deletions(-) -- 1.8.3.2 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
