Hi Jakub, hi Martin,
I think I misread some bits – after more code reading, I think it
correctly sets '(NODE)->omp_clause.code' alias OMP_CLAUSE_CODE;
Hence, using OMP_CLAUSE_CODE in the switch statement makes sense
for the actual code usage (and, of course, also semantically).
As I don't have HSA setup, I couldn't test it. This code is only
called via omp-low.c's execute_lower_omp via:
if (hsa_gen_requested_p ())
omp_grid_gridify_all_targets (&body);
Hence, unsurprisingly, it did not make a difference when running
the testsuite .
OK?
[The code was added (back then to omp-low.c) in
commit 56b1c60e412fcf1245b4780871553cbdebb956a3 (r242761) with
Martins' [plural ;-)] 'Merge from HSA branch to trunk'.]
Tobias
On 4/3/20 11:08 AM, Jakub Jelinek wrote:
On Fri, Apr 03, 2020 at 11:02:13AM +0200, Tobias Burnus wrote:
Those are all for the same switch statement;
gomp_for contains 'tree clauses' and this clauses's '->code' is used
to handle store 'enum omp_clauses_code' values in in gimple.{h,c}.
I think adding this cast (and only this one) makes sense and it
also silences a (clang) compiler warning.
That looks wrong to me. If *pc are OMP_CLAUSES, then it should use
OMP_CLAUSE_CODE (c) instead of TREE_CODE (c).
If something creates a tree that has TREE_CODE OMP_CLAUSE_LINEAR, then
that looks very suspicios (TREE_CODE should be OMP_CLAUSE).
omp-grid.c – add cast to silence different enumeration types warning
* omp-grid.c (grid_eliminate_combined_simd_part): Add cast
to omp_clause_code to silence compiler warning.
diff --git a/gcc/omp-grid.c b/gcc/omp-grid.c
index b98e45de6a0..878977da2f9 100644
--- a/gcc/omp-grid.c
+++ b/gcc/omp-grid.c
@@ -1058,21 +1058,21 @@ grid_eliminate_combined_simd_part (gomp_for *parloop)
while (*tgt)
tgt = &OMP_CLAUSE_CHAIN (*tgt);
/* Copy over all clauses, except for linear clauses, which are turned into
private clauses, and all other simd-specific clauses, which are
ignored. */
tree *pc = gimple_omp_for_clauses_ptr (simd);
while (*pc)
{
tree c = *pc;
- switch (TREE_CODE (c))
+ switch ((omp_clause_code) TREE_CODE (c))
{
case OMP_CLAUSE_LINEAR:
{
tree priv = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_PRIVATE);
OMP_CLAUSE_DECL (priv) = OMP_CLAUSE_DECL (c);
OMP_CLAUSE_CHAIN (priv) = NULL;
*tgt = priv;
tgt = &OMP_CLAUSE_CHAIN (priv);
pc = &OMP_CLAUSE_CHAIN (c);
break;
Jakub
-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander
Walter
HSA: omp-grid.c – access proper clause code
* omp-grid.c (grid_eliminate_combined_simd_part): Use
OMP_CLAUSE_CODE to access the omp clause code.
diff --git a/gcc/omp-grid.c b/gcc/omp-grid.c
index b98e45de6a0..ba635fd3ea2 100644
--- a/gcc/omp-grid.c
+++ b/gcc/omp-grid.c
@@ -1065,7 +1065,7 @@ grid_eliminate_combined_simd_part (gomp_for *parloop)
while (*pc)
{
tree c = *pc;
- switch (TREE_CODE (c))
+ switch (OMP_CLAUSE_CODE (c))
{
case OMP_CLAUSE_LINEAR:
{