Hi,

the patch below makes the griddim and currentworkgroupsize special HSA
instructions available for omp lowering through a builtin.  They are
then used by subsequent patch to implement conditions determining the
last iteration for the lastprivate OpenMP sharing clause.

Committed to the branch, queued for merge to trunk soon.
Thanks,

Martin

2016-10-03  Martin Jambor  <mjam...@suse.cz>

        * hsa-builtins.def (BUILT_IN_HSA_GRIDSIZE): New.
        (BUILT_IN_HSA_CURRENTWORKGROUPSIZE): Likewise.
        * hsa-gen.c (gen_hsa_insns_for_call): Handle BUILT_IN_HSA_GRIDSIZE.
---
 gcc/hsa-builtins.def | 4 ++++
 gcc/hsa-gen.c        | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/hsa-builtins.def b/gcc/hsa-builtins.def
index dcd0c55..cc0409e 100644
--- a/gcc/hsa-builtins.def
+++ b/gcc/hsa-builtins.def
@@ -33,3 +33,7 @@ DEF_HSA_BUILTIN (BUILT_IN_HSA_WORKITEMID, "hsa_workitemid",
                 BT_FN_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
 DEF_HSA_BUILTIN (BUILT_IN_HSA_WORKITEMABSID, "hsa_workitemabsid",
                 BT_FN_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_HSA_BUILTIN (BUILT_IN_HSA_GRIDSIZE, "hsa_gridsize",
+                BT_FN_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
+DEF_HSA_BUILTIN (BUILT_IN_HSA_CURRENTWORKGROUPSIZE, "hsa_currentworkgroupsize",
+                BT_FN_UINT_UINT, ATTR_CONST_NOTHROW_LEAF_LIST)
diff --git a/gcc/hsa-gen.c b/gcc/hsa-gen.c
index f63608c..deb2a07 100644
--- a/gcc/hsa-gen.c
+++ b/gcc/hsa-gen.c
@@ -5812,6 +5812,12 @@ gen_hsa_insns_for_call (gimple *stmt, hsa_bb *hbb)
     case BUILT_IN_HSA_WORKITEMABSID:
       query_hsa_grid_dim (stmt, BRIG_OPCODE_WORKITEMABSID, hbb);
       break;
+    case BUILT_IN_HSA_GRIDSIZE:
+      query_hsa_grid_dim (stmt, BRIG_OPCODE_GRIDSIZE, hbb);
+      break;
+    case BUILT_IN_HSA_CURRENTWORKGROUPSIZE:
+      query_hsa_grid_dim (stmt, BRIG_OPCODE_CURRENTWORKGROUPSIZE, hbb);
+      break;
 
     case BUILT_IN_GOMP_BARRIER:
       hbb->append_insn (new hsa_insn_br (0, BRIG_OPCODE_BARRIER, 
BRIG_TYPE_NONE,
-- 
2.10.0

Reply via email to