https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105076
Bug ID: 105076
Summary: [OpenMP] Weak/template functions: split-off
offload-region functions should also be weak
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: missed-optimization, openmp
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
Target Milestone: ---
When using something like
template<T>
void foo(T var)
{
#pragma omp target ...
...
}
the function 'foo' is weak – but its associated offload function isn't.
Result: While at the end only one 'foo' function remains, there will be as many
offload function as 'foo'-using translation units.
Expected: Also the split off target-regions should be a weak symbol.
NOTE: Requires a consistent naming of the offload functions, but I think that's
already guaranteed by create_omp_child_function_name (invoked from
create_omp_child_function_name).
Existing testcase:
'test_map' in libgomp/testsuite/libgomp.c++/target-same-name-2.C
of PR104285 / r12-7776-g1002a7ace11
(checks only for link/run-time errors and not for how many offload functions
remain)