On Thu, 20 Apr 2017, Jakub Jelinek wrote: > > This wasn't caught in testing, as apparently all testcases that have target > > simd loops with linear/lastprivate clauses also have the corresponding > > variables > > mentioned in target map clause, which makes them addressable (is that > > necessary?), > > Yes, in order to map something you need to map its address (+ size) on the > host to its address on the device, so it needs to be addressable. > Compared to that, firstprivate on target should not make it addressable.
But ideally if nothing else is taking the address of a mapped variable inside of a target region, then it'd be more efficient to create a non-addressable instance and just copy its value from/to the addressable one on target region entry/exit. > Would be nice to also test explicit linear, perhaps in the same testcase, > just add ch and c and use say linear(c:2). Unfortunately that uncovers a separate wrong-code issue, explicit linear is not specifically handled in simt regions, but it should be, since we change the loop iteration step. Thanks. Alexander