aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathameshk@nvidia.com>2024-09-24 08:18:48 +0530
committerPrathamesh Kulkarni <prathameshk@nvidia.com>2024-09-24 08:20:46 +0530
commitf5ee372b012594830f6d5f7f4b7e01bae810b1da (patch)
treeb1f77e17b78c2f0dcfa4627e3702f0ee0f458efd /gcc/cp
parent4d6fa5b7f14b1d4aeb040db51b33c24456d94699 (diff)
downloadgcc-f5ee372b012594830f6d5f7f4b7e01bae810b1da.zip
gcc-f5ee372b012594830f6d5f7f4b7e01bae810b1da.tar.gz
gcc-f5ee372b012594830f6d5f7f4b7e01bae810b1da.tar.bz2
nvptx: Partial support for aliases to aliases.
For the following test (adapted from pr96390.c): __attribute__((noipa)) int foo () { return 42; } int bar () __attribute__((alias ("foo"))); int baz () __attribute__((alias ("bar"))); int main () { int n; #pragma omp target map(from:n) n = baz (); return n; } gcc emits following ptx for baz: .visible .func (.param.u32 %value_out) bar; .alias bar,foo; .visible .func (.param.u32 %value_out) baz; .alias baz,bar; which is incorrect since PTX requires aliasee to be a defined function. The patch instead uses cgraph_node::get(name)->ultimate_alias_target, which generates the following PTX: .visible .func (.param.u32 %value_out) baz; .alias baz,foo; gcc/ChangeLog: PR target/104957 * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls): Use cgraph_node::get(name)->ultimate_alias_target instead of value. gcc/testsuite/ChangeLog: PR target/104957 * gcc.target/nvptx/alias-to-alias-1.c: Adjust. Signed-off-by: Prathamesh Kulkarni <prathameshk@nvidia.com> Co-authored-by: Thomas Schwinge <tschwinge@baylibre.com>
Diffstat (limited to 'gcc/cp')
0 files changed, 0 insertions, 0 deletions