Hi Nathan! On Wed, 23 Sep 2015 08:40:51 -0400, Nathan Sidwell wrote: > On 09/23/15 05:27, Thomas Schwinge wrote: > > On Mon, 17 Aug 2015 15:30:16 -0400, Nathan Sidwell wrote: > >> I've committed this patch to add a new pair of internal functions. These will > >> be used in implementing reductions. > >> > >> They'll be emitted around reduction finalization, and implement the locking > >> required for the general case of combining reduction values. They may be > >> transformed in the oacc_xform pass, and the default behaviour is to delete them, > >> if there is no RTL expander. For PTX we delete them if they are at the vector > >> level. > >> > >> This avoids needing machine-specific builtins to expand to, and thus should > >> result in less backend code duplication. > > > > With the __builtin_nvptx_lock and __builtin_nvptx_unlock builtins > > removed, should the gcc.target/nvptx/spinlock-1.c and > > gcc.target/nvptx/spinlock-2.c test cases then be removed, too, or should > > these be re-written differently? > > confused. I don't think I remoced those locks. Certainly didn't intend to, and > I would have expected massive test fails if I had. You didn't remove the functionality, but you did remove the __builtin_nvptx_lock and __builtin_nvptx_unlock builtins (which the two test cases were written for), replacing them with GOACC_LOCK/GOACC_UNLOCK internal functions, nvptx_expand_oacc_lock_unlock. Grüße, Thomas