https://gcc.gnu.org/g:b8ac06163e485547ece41ea802dfdc94b18ce134

commit r15-7157-gb8ac06163e485547ece41ea802dfdc94b18ce134
Author: Tejas Belagod <tejas.bela...@arm.com>
Date:   Mon Oct 30 13:47:34 2023 +0530

    OpenMP/PolyInt: Pass poly-int structures by address to OMP libs.
    
    Currently poly-int type structures are passed by value to OpenMP runtime
    functions for shared clauses etc.  This patch improves on this by passing
    around poly-int structures by address to avoid copy-overhead.
    
    gcc/ChangeLog:
    
            * omp-low.cc (use_pointer_for_field): Use pointer if the OMP data
            structure's field type is a poly-int.

Diff:
---
 gcc/omp-low.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc
index 4f113df92008..c36ae38cf8e1 100644
--- a/gcc/omp-low.cc
+++ b/gcc/omp-low.cc
@@ -466,7 +466,8 @@ static bool
 use_pointer_for_field (tree decl, omp_context *shared_ctx)
 {
   if (AGGREGATE_TYPE_P (TREE_TYPE (decl))
-      || TYPE_ATOMIC (TREE_TYPE (decl)))
+      || TYPE_ATOMIC (TREE_TYPE (decl))
+      || POLY_INT_CST_P (DECL_SIZE (decl)))
     return true;
 
   /* We can only use copy-in/copy-out semantics for shared variables

Reply via email to