linear(uval) definition is unclear

Comments and discussion of the 4.1 OpenMP Draft specifications. Comment period ends September 30, 2015. See http://openmp.org/wp/openmp-specifications/ to download the specifications. (Read Only)
Locked
Spreis
Posts: 12
Joined: Tue Jul 14, 2015 9:35 am

linear(uval) definition is unclear

Post by Spreis »

Description of 'linear(uval)' looks strange in the light of 'private' description:
10 The linear clause provides a superset of the functionality provided by the private clause.
11 A list item that appears in a linear clause is subject to the private clause semantics described
12 in Section 2.15.3.3 on page 189 except as noted. In addition, if the val or uval modifier is used,
13 the value of the new list item on each iteration of the associated loop(s) corresponds to the value of
14 the original list item before entering the construct plus the logical number of the iteration times
15 linear-step
In 2.15.3.3 among all the following is stated:
6 Inside the construct, all references to the original list item are replaced by references to the new list
7 item.
...
1 If the type of a list item is a reference to a type T then the type will be considered to be T for all
2 purposes of this clause
So inside the construct there shouldn't be accesses to original list item listed in linear(uval()). The initialization of new list item refers the value before entering construct and inside construct all references to original list item are replaced by references to new one (of the type T, so its a new location). In the light of all this it is unclear why invariance of an address of the original list item referred in uval definition would make any difference.
21The uval modifier declares the address of the original list item to have an invariant value for all
22 iterations of the associated loop(s).

Locked