On Fri, Oct 17, 2014 at 07:17:31PM +0400, Ilya Verbin wrote:
> On 17 Oct 17:10, Jakub Jelinek wrote:
> > On Fri, Oct 17, 2014 at 06:58:17PM +0400, Ilya Verbin wrote:
> > > Here in the original test you have:
> > > 
> > >   #pragma omp target if (v <= 1)
> > >   if (omp_get_level () != 0 || (f && !omp_is_initial_device ()))
> > >     abort ();
> > >   #pragma omp target device (d) if (v <= 1)
> > >   if (omp_get_level () != 0 || (f && !omp_is_initial_device ()))
> > >     abort ();
> > > 
> > > There are 2 same if-statements, but target pragmas have different clauses.
> > > The second depends on device (d), and (f && !omp_is_initial_device ()) 
> > > works
> > > fine.  But the first one doesn't depend on 'f', and if we have offload 
> > > device,
> > > this check will fail.
> > > 
> > > So, to have this test working both with offloading and fallback, we need 
> > > to
> > > remove all pragmas without device-clause.
> > 
> > Well, there is no need to remove them, just the " || (f && 
> > !omp_is_initial_device ())"
> > should be dropped from target regions without device (d) on them.
> > Where there is no f && guard, the condition should stay.
> > Do you agree?
> 
> Yes, should I re-post the patch?

Guess just the target-7.c patch is enough, to make sure we agree on the same
thing.

        Jakub

Reply via email to