On Fri, Jul 31, 2015 at 11:22:30AM +0200, Richard Biener wrote:
> On Fri, Jul 31, 2015 at 10:43 AM, Jakub Jelinek <ja...@redhat.com> wrote:
> > Hi!
> >
> > I wonder if we shouldn't change:
> >
> >   TREE_TYPE (ctx->receiver_decl)
> >     = build_qualified_type (build_reference_type (type), 
> > TYPE_QUAL_RESTRICT);
> >
> > in fixup_child_record_type to add:
> >
> >   if (is_gimple_omp_offloaded (ctx->stmt))
> >     type = build_qualified_type (type, TYPE_QUAL_CONST);
> >
> > before it (and perhaps also add | TYPE_QUAL_CONST to TYPE_QUAL_RESTRICT for 
> > all
> > constructs).  I mean, aren't all the pointers in *.omp_data_i for the target
> > constructs constant in the offloaded region?  Perhaps that could result in
> > better generated code (though perhaps just the restrict helps enough).
> > Can you think of any case where it is not constant?
> 
> Const qualification of a pointer or reference doesn't result in any
> optimization.  The
> decl you refer to has to be constant.

Even if the pointer would be addressable?  But it isn't in this case.
Still the
  if (is_gimple_omp_offloaded (ctx->stmt))
    type = build_qualified_type (type, TYPE_QUAL_CONST);
would constify what the reference refers to.  Maybe it doesn't make
any difference either due to TYPE_QUAL_RESTRICT on the reference though.

        Jakub

Reply via email to