Other part simply looks good to me. Thanks!
Thanks!
Ruiling
-----Original Message-----
From: Beignet [mailto:[email protected]] On Behalf Of
Zhigang Gong
Sent: Friday, March 28, 2014 3:11 PM
To: [email protected]
Cc: Gong, Zhigang
Subject: [Beignet] [PATCH 00/17] IF/ENDIF transformation seres.
This patchset transforms the previous predication style basic block encoding to
IF/ENDIF style. This make some further optimization possible and easier (the
SEL/SEL_CMP and some possible extension). And it also opens a door to mix
structured/unstructured branches together in the future. This patchset has some
patches already sent before, and rebase to the latest master and packaing them
into this patchset. Please ignore the previous patch on the list and review
this one instead.
Zhigang Gong (17):
GBE: Add a new pass to handle barrier function's noduplicate attribute
correctly.
GBE: Remove BBs if it only has a label instruction.
GBE: refine the "scalar" register handling.
GBE: fix the wrong usage of stack pointer and stack buffer.
GBE: use a uniform style to calculate register size for curbe
allocation.
GBE: fix one misusage of flag in forward jump.
GBE: use S16 vector to represent bool.
GBE: further optimize forward/backward jump.
GBE: Add if/endif/brc/brd instruction support.
GBE: Disable SPF and use JMPI + IF/ENDIF to handle each blocks.
GBE: Don't need the emask/notemask/barriermask any more.
GBE: Only emit long jump when jump a lot of blocks
GBE: pass the OCL_STRICT_CONFORMANCE env to the backend.
GBE: one instruction is enough for SEL_CMP now.
GBE: don't emit jmpi to next label.
GBE: Add two helper scalar registers to hold 0 and all 1s.
GBE: avoid use a temporay register at the CMP instruction.
backend/src/CMakeLists.txt | 1 +
backend/src/backend/context.cpp | 123 +------
backend/src/backend/context.hpp | 5 +-
backend/src/backend/gen/gen_mesa_disasm.c | 32 +-
backend/src/backend/gen_context.cpp | 296 +++++++++++------
backend/src/backend/gen_context.hpp | 21 +-
backend/src/backend/gen_defs.hpp | 8 +-
backend/src/backend/gen_encoder.cpp | 54 +++-
backend/src/backend/gen_encoder.hpp | 16 +-
backend/src/backend/gen_insn_selection.cpp | 496 +++++++++++++----------------
backend/src/backend/gen_insn_selection.hpp | 14 +
backend/src/backend/gen_insn_selection.hxx | 4 +
backend/src/backend/gen_program.cpp | 4 +-
backend/src/backend/gen_program.hpp | 2 +-
backend/src/backend/gen_reg_allocation.cpp | 28 +-
backend/src/backend/gen_reg_allocation.hpp | 2 +
backend/src/backend/gen_register.hpp | 13 +-
backend/src/backend/program.cpp | 5 +-
backend/src/backend/program.h | 5 +-
backend/src/backend/program.hpp | 3 +-
backend/src/ir/context.cpp | 7 +-
backend/src/ir/context.hpp | 2 +-
backend/src/ir/function.cpp | 75 +++++
backend/src/ir/function.hpp | 8 +-
backend/src/ir/lowering.cpp | 3 +-
backend/src/ir/profile.cpp | 70 ++--
backend/src/ir/profile.hpp | 14 +-
backend/src/ir/register.hpp | 13 +-
backend/src/llvm/llvm_barrier_nodup.cpp | 114 +++++++
backend/src/llvm/llvm_gen_backend.cpp | 27 +-
backend/src/llvm/llvm_gen_backend.hpp | 2 +
backend/src/llvm/llvm_to_gen.cpp | 2 +
backend/src/ocl_barrier.ll | 6 +-
src/cl_api.c | 1 +
src/intel/intel_driver.c | 1 +
src/intel/intel_gpgpu.c | 2 +-
utests/compiler_long_cmp.cpp | 1 +
utests/compiler_unstructured_branch0.cpp | 4 +-
utests/compiler_unstructured_branch1.cpp | 3 +-
utests/compiler_unstructured_branch2.cpp | 10 +-
40 files changed, 875 insertions(+), 622 deletions(-) create mode 100644
backend/src/llvm/llvm_barrier_nodup.cpp
--
1.8.3.2
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet