This patch removes 0-size libgomp stubs where generic implementations can be
compiled for the NVPTX target.
It also removes non-stub critical.c, which contains assembly implementations
for GOMP_atomic_{start,end}, but does not contain implementations for
GOMP_critical_*. My understanding is that OpenACC offloading uses
GOMP_atomic_* routines (by virtue of OpenMP lowering using them). Linking in
GOMP_critical_* and dependencies would be pointless for OpenACC.
If OpenACC indeed uses GOMP_atomic_*, then it makes sense to split them out
into a separate file (atomic.c?).
After this patch, a few 0-size stubs remain in libgomp/config/nvptx. They
fall roughly into these categories:
- Files which must remain a 0-size stub, like env.c, because they implement
something that doesn't make sense on an accelerator-only target.
- Files that are 0-size because all functionality is implemented in the
corresponding header for now, like mutex.c.
- Fiels that are 0-size, but probably should be changed to use generic
implementations soon, like sections.c
- Files that are 0-size and will need to have a custom implementation for
nvptx, like time.c
---
libgomp/config/nvptx/alloc.c | 0
libgomp/config/nvptx/barrier.c | 0
libgomp/config/nvptx/critical.c | 57 -----------------------------------------
libgomp/config/nvptx/error.c | 0
libgomp/config/nvptx/iter.c | 0
libgomp/config/nvptx/iter_ull.c | 0
libgomp/config/nvptx/loop.c | 0
libgomp/config/nvptx/loop_ull.c | 0
libgomp/config/nvptx/ordered.c | 0
libgomp/config/nvptx/parallel.c | 0
libgomp/config/nvptx/single.c | 0
libgomp/config/nvptx/task.c | 0
libgomp/config/nvptx/work.c | 0
13 files changed, 57 deletions(-)
delete mode 100644 libgomp/config/nvptx/alloc.c
delete mode 100644 libgomp/config/nvptx/barrier.c
delete mode 100644 libgomp/config/nvptx/critical.c
delete mode 100644 libgomp/config/nvptx/error.c
delete mode 100644 libgomp/config/nvptx/iter.c
delete mode 100644 libgomp/config/nvptx/iter_ull.c
delete mode 100644 libgomp/config/nvptx/loop.c
delete mode 100644 libgomp/config/nvptx/loop_ull.c
delete mode 100644 libgomp/config/nvptx/ordered.c
delete mode 100644 libgomp/config/nvptx/parallel.c
delete mode 100644 libgomp/config/nvptx/single.c
delete mode 100644 libgomp/config/nvptx/task.c
delete mode 100644 libgomp/config/nvptx/work.c
diff --git a/libgomp/config/nvptx/alloc.c b/libgomp/config/nvptx/alloc.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/barrier.c b/libgomp/config/nvptx/barrier.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/critical.c b/libgomp/config/nvptx/critical.c
deleted file mode 100644
index 1f55aad..0000000
--- a/libgomp/config/nvptx/critical.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* GOMP atomic routines
-
- Copyright (C) 2014-2015 Free Software Foundation, Inc.
-
- Contributed by Mentor Embedded.
-
- This file is part of the GNU Offloading and Multi Processing Library
- (libgomp).
-
- Libgomp is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
-
- Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-__asm__ ("// BEGIN VAR DEF: libgomp_ptx_lock\n"
- ".global .align 4 .u32 libgomp_ptx_lock;\n"
- "\n"
- "// BEGIN GLOBAL FUNCTION DECL: GOMP_atomic_start\n"
- ".visible .func GOMP_atomic_start;\n"
- "// BEGIN GLOBAL FUNCTION DEF: GOMP_atomic_start\n"
- ".visible .func GOMP_atomic_start\n"
- "{\n"
- " .reg .pred %p<2>;\n"
- " .reg .s32 %r<2>;\n"
- " .reg .s64 %rd<2>;\n"
- "BB5_1:\n"
- " mov.u64 %rd1, libgomp_ptx_lock;\n"
- " atom.global.cas.b32 %r1, [%rd1], 0, 1;\n"
- " setp.ne.s32 %p1, %r1, 0;\n"
- " @%p1 bra BB5_1;\n"
- " ret;\n"
- " }\n"
- "// BEGIN GLOBAL FUNCTION DECL: GOMP_atomic_end\n"
- ".visible .func GOMP_atomic_end;\n"
- "// BEGIN GLOBAL FUNCTION DEF: GOMP_atomic_end\n"
- ".visible .func GOMP_atomic_end\n"
- "{\n"
- " .reg .s32 %r<2>;\n"
- " .reg .s64 %rd<2>;\n"
- " mov.u64 %rd1, libgomp_ptx_lock;\n"
- " atom.global.exch.b32 %r1, [%rd1], 0;\n"
- " ret;\n"
- " }");
diff --git a/libgomp/config/nvptx/error.c b/libgomp/config/nvptx/error.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/iter.c b/libgomp/config/nvptx/iter.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/iter_ull.c b/libgomp/config/nvptx/iter_ull.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/loop.c b/libgomp/config/nvptx/loop.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/loop_ull.c b/libgomp/config/nvptx/loop_ull.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/ordered.c b/libgomp/config/nvptx/ordered.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/parallel.c b/libgomp/config/nvptx/parallel.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/single.c b/libgomp/config/nvptx/single.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/task.c b/libgomp/config/nvptx/task.c
deleted file mode 100644
index e69de29..0000000
diff --git a/libgomp/config/nvptx/work.c b/libgomp/config/nvptx/work.c
deleted file mode 100644
index e69de29..0000000