[Beignet] [PATCH 00/17] IF/ENDIF transformation seres.

Song, Ruiling ruiling.song at intel.com
Mon Apr 7 23:08:46 PDT 2014


Other part simply looks good to me. Thanks!

Thanks!
Ruiling
-----Original Message-----
From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of Zhigang Gong
Sent: Friday, March 28, 2014 3:11 PM
To: beignet at lists.freedesktop.org
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
Beignet at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list