r219036 - in /branches/gomp-4_0-branch/libgomp:...

tschwinge@gcc.gnu.org tschwinge@gcc.gnu.org
Mon Dec 22 22:53:00 GMT 2014


Author: tschwinge
Date: Mon Dec 22 22:53:55 2014
New Revision: 219036

URL: https://gcc.gnu.org/viewcvs?rev=219036&root=gcc&view=rev
Log:
libgomp: Fix locking in OpenMP GOMP_target* functions.

	libgomp/
	* libgomp.c (struct gomp_device_descr): Add lock member.
	* oacc-host.c (goacc_host_init): Initialize it.
	* target.c (gomp_target_init): Likewise.
	(gomp_init_dev_tables): Remove function.
	(GOMP_target, GOMP_target_data, GOMP_target_update): Instead of
	calling gomp_init_dev_tables, separate device and memory mapping
	initilization, guarded by appropriate locking.  Check (immutable)
	device capabilities early.

With Intel MIC offloading (emulation), this fixes:

    FAIL: libgomp.fortran/target7.f90   -O0  execution test
    FAIL: libgomp.fortran/target7.f90   -O1  execution test
    FAIL: libgomp.fortran/target7.f90   -O2  execution test
    FAIL: libgomp.fortran/target7.f90   -O3 -fomit-frame-pointer  execution test
    FAIL: libgomp.fortran/target7.f90   -O3 -fomit-frame-pointer -funroll-loops  execution test
    FAIL: libgomp.fortran/target7.f90   -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions  execution test
    FAIL: libgomp.fortran/target7.f90   -O3 -g  execution test
    FAIL: libgomp.fortran/target7.f90   -Os  execution test
    FAIL: libgomp.fortran/target8.f90   -O0  execution test
    FAIL: libgomp.fortran/target8.f90   -O1  execution test
    FAIL: libgomp.fortran/target8.f90   -O2  execution test
    FAIL: libgomp.fortran/target8.f90   -O3 -fomit-frame-pointer  execution test
    FAIL: libgomp.fortran/target8.f90   -O3 -fomit-frame-pointer -funroll-loops  execution test
    FAIL: libgomp.fortran/target8.f90   -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions  execution test
    FAIL: libgomp.fortran/target8.f90   -O3 -g  execution test
    FAIL: libgomp.fortran/target8.f90   -Os  execution test

Modified:
    branches/gomp-4_0-branch/libgomp/ChangeLog.gomp
    branches/gomp-4_0-branch/libgomp/libgomp.h
    branches/gomp-4_0-branch/libgomp/oacc-host.c
    branches/gomp-4_0-branch/libgomp/oacc-init.c
    branches/gomp-4_0-branch/libgomp/target.c



More information about the Gcc-cvs mailing list