Made apparent by recent commit dc703151d4f4560e647649506d5b4ceb0ee11e90
"openmp: Implement discovery of implicit declare target to clauses":
+FAIL: libgomp.c/target-39.c (internal compiler error)
+FAIL: libgomp.c/target-39.c (test for excess errors)
+UNRESOLVED: libgomp.c/target-39.c compilation failed to produce executable
This is in a '--enable-offload-targets=[...],hsa' build, with '-foffload=hsa'
enabled (by default).
during GIMPLE pass: hsagen
source-gcc/libgomp/testsuite/libgomp.c/target-39.c: In function ‘main._omp_fn.0.hsa.0’:
source-gcc/libgomp/testsuite/libgomp.c/target-39.c:23:11: internal compiler error: Segmentation fault
23 | #pragma omp target map(from:err)
| ^~~
[...]
GDB:
Program received signal SIGSEGV, Segmentation fault.
fndecl_built_in_p (node=0x0, name=BUILT_IN_PREFETCH) at [...]/source-gcc/gcc/tree.h:6267
6267 return (fndecl_built_in_p (node, BUILT_IN_NORMAL)
(gdb) bt
#0 fndecl_built_in_p (node=0x0, name=BUILT_IN_PREFETCH) at [...]/source-gcc/gcc/tree.h:6267
#1 0x0000000000b19739 in gen_hsa_insns_for_call (stmt=stmt@entry=0x7ffff693b200, hbb=hbb@entry=0x2b152c0) at [...]/source-gcc/gcc/hsa-gen.c:5304
#2 0x0000000000b1aca7 in gen_hsa_insns_for_gimple_stmt (stmt=0x7ffff693b200, hbb=hbb@entry=0x2b152c0) at [...]/source-gcc/gcc/hsa-gen.c:5770
#3 0x0000000000b1bd21 in gen_body_from_gimple () at [...]/source-gcc/gcc/hsa-gen.c:5999
#4 0x0000000000b1dbd2 in generate_hsa (kernel=<optimized out>) at [...]/source-gcc/gcc/hsa-gen.c:6596
#5 0x0000000000b1de66 in (anonymous namespace)::pass_gen_hsail::execute (this=0x2a2aac0) at [...]/source-gcc/gcc/hsa-gen.c:6680
#6 0x0000000000d06f90 in execute_one_pass (pass=pass@entry=0x2a2aac0) at [...]/source-gcc/gcc/passes.c:2502
[...]
(gdb) up
#1 0x0000000000b19739 in gen_hsa_insns_for_call (stmt=stmt@entry=0x7ffff693b200, hbb=hbb@entry=0x2b152c0) at /home/thomas/tmp/source/gcc/build/track-slim-omp/source-gcc/gcc/hsa-gen.c:5304
5304 if (fndecl_built_in_p (function_decl, BUILT_IN_PREFETCH))
(gdb) print function_decl
$1 = (tree) 0x0
(gdb) list
5299 if (!gimple_call_builtin_p (stmt, BUILT_IN_NORMAL))
5300 {
5301 tree function_decl = gimple_call_fndecl (stmt);
5302 /* Prefetch pass can create type-mismatching prefetch builtin calls which
5303 fail the gimple_call_builtin_p test above. Handle them here. */
5304 if (fndecl_built_in_p (function_decl, BUILT_IN_PREFETCH))
5305 return;
5306
5307 if (function_decl == NULL_TREE)
5308 {
The problem is present already since 2016-11-23 commit
56b1c60e (r242761) "Merge from HSA branch to
trunk", and the fix obvious enough.
gcc/
* hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl ==
NULL_TREE' check earlier.
gcc/testsuite/
* c-c++-common/gomp/hsa-indirect-call-1.c: New file.
(cherry picked from commit 973bce0fb50bbfd91f47238b82b99935525716ad)
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| Wparentheses-1.c | Loading commit data... | |
| Wparentheses-2.c | Loading commit data... | |
| Wparentheses-3.c | Loading commit data... | |
| Wparentheses-4.c | Loading commit data... | |
| atomic-1.c | Loading commit data... | |
| atomic-10.c | Loading commit data... | |
| atomic-12.c | Loading commit data... | |
| atomic-13.c | Loading commit data... | |
| atomic-14.c | Loading commit data... | |
| atomic-15.c | Loading commit data... | |
| atomic-16.c | Loading commit data... | |
| atomic-17.c | Loading commit data... | |
| atomic-18.c | Loading commit data... | |
| atomic-19.c | Loading commit data... | |
| atomic-2.c | Loading commit data... | |
| atomic-20.c | Loading commit data... | |
| atomic-21.c | Loading commit data... | |
| atomic-22.c | Loading commit data... | |
| atomic-23.c | Loading commit data... | |
| atomic-3.c | Loading commit data... | |
| atomic-4.c | Loading commit data... | |
| atomic-7.c | Loading commit data... | |
| atomic-8.c | Loading commit data... | |
| atomic-9.c | Loading commit data... | |
| cancel-1.c | Loading commit data... | |
| cancel-2.c | Loading commit data... | |
| clause-dups-1.c | Loading commit data... | |
| clauses-1.c | Loading commit data... | |
| clauses-2.c | Loading commit data... | |
| clauses-3.c | Loading commit data... | |
| clauses-4.c | Loading commit data... | |
| clauses-5.c | Loading commit data... | |
| combined-1.c | Loading commit data... | |
| combined-2.c | Loading commit data... | |
| combined-3.c | Loading commit data... | |
| critical-1.c | Loading commit data... | |
| critical-2.c | Loading commit data... | |
| declare-target-1.c | Loading commit data... | |
| declare-target-2.c | Loading commit data... | |
| declare-target-3.c | Loading commit data... | |
| declare-target-4.c | Loading commit data... | |
| declare-target-5.c | Loading commit data... | |
| declare-variant-1.c | Loading commit data... | |
| declare-variant-10.c | Loading commit data... | |
| declare-variant-11.c | Loading commit data... | |
| declare-variant-12.c | Loading commit data... | |
| declare-variant-13.c | Loading commit data... | |
| declare-variant-2.c | Loading commit data... | |
| declare-variant-3.c | Loading commit data... | |
| declare-variant-4.c | Loading commit data... | |
| declare-variant-5.c | Loading commit data... | |
| declare-variant-6.c | Loading commit data... | |
| declare-variant-7.c | Loading commit data... | |
| declare-variant-8.c | Loading commit data... | |
| declare-variant-9.c | Loading commit data... | |
| default-1.c | Loading commit data... | |
| defaultmap-1.c | Loading commit data... | |
| defaultmap-2.c | Loading commit data... | |
| defaultmap-3.c | Loading commit data... | |
| depend-1.c | Loading commit data... | |
| depend-2.c | Loading commit data... | |
| depend-3.c | Loading commit data... | |
| depend-4.c | Loading commit data... | |
| depend-5.c | Loading commit data... | |
| depend-6.c | Loading commit data... | |
| depend-iterator-1.c | Loading commit data... | |
| depend-iterator-2.c | Loading commit data... | |
| depobj-1.c | Loading commit data... | |
| distribute-1.c | Loading commit data... | |
| doacross-1.c | Loading commit data... | |
| doacross-2.c | Loading commit data... | |
| doacross-3.c | Loading commit data... | |
| element-1.c | Loading commit data... | |
| flush-1.c | Loading commit data... | |
| flush-2.c | Loading commit data... | |
| for-1.c | Loading commit data... | |
| for-2.c | Loading commit data... | |
| for-3.c | Loading commit data... | |
| for-4.c | Loading commit data... | |
| for-5.c | Loading commit data... | |
| for-6.c | Loading commit data... | |
| for-7.c | Loading commit data... | |
| gridify-1.c | Loading commit data... | |
| gridify-2.c | Loading commit data... | |
| gridify-3.c | Loading commit data... | |
| has-include-1.c | Loading commit data... | |
| hsa-indirect-call-1.c | Loading commit data... | |
| if-1.c | Loading commit data... | |
| if-2.c | Loading commit data... | |
| if-3.c | Loading commit data... | |
| if-4.c | Loading commit data... | |
| lastprivate-conditional-1.c | Loading commit data... | |
| lastprivate-conditional-2.c | Loading commit data... | |
| lastprivate-conditional-3.c | Loading commit data... | |
| lastprivate-conditional-4.c | Loading commit data... | |
| lastprivate-conditional-5.c | Loading commit data... | |
| linear-1.c | Loading commit data... | |
| loop-1.c | Loading commit data... | |
| loop-2.c | Loading commit data... | |
| loop-3.c | Loading commit data... | |
| loop-4.c | Loading commit data... | |
| loop-5.c | Loading commit data... | |
| map-1.c | Loading commit data... | |
| map-2.c | Loading commit data... | |
| map-3.c | Loading commit data... | |
| master-combined-1.c | Loading commit data... | |
| master-combined-2.c | Loading commit data... | |
| nesting-1.c | Loading commit data... | |
| nesting-2.c | Loading commit data... | |
| nesting-warn-1.c | Loading commit data... | |
| nontemporal-1.c | Loading commit data... | |
| nontemporal-2.c | Loading commit data... | |
| order-1.c | Loading commit data... | |
| order-2.c | Loading commit data... | |
| order-3.c | Loading commit data... | |
| order-4.c | Loading commit data... | |
| ordered-1.c | Loading commit data... | |
| ordered-2.c | Loading commit data... | |
| ordered-3.c | Loading commit data... | |
| ordered-4.c | Loading commit data... | |
| pr51360.c | Loading commit data... | |
| pr53580.c | Loading commit data... | |
| pr54017.c | Loading commit data... | |
| pr56883.c | Loading commit data... | |
| pr57580.c | Loading commit data... | |
| pr57824.c | Loading commit data... | |
| pr58257.c | Loading commit data... | |
| pr58472.c | Loading commit data... | |
| pr58551.c | Loading commit data... | |
| pr58703.c | Loading commit data... | |
| pr58809.c | Loading commit data... | |
| pr59073.c | Loading commit data... | |
| pr59152.c | Loading commit data... | |
| pr59467.c | Loading commit data... | |
| pr59917-1.c | Loading commit data... | |
| pr59917-2.c | Loading commit data... | |
| pr60823-1.c | Loading commit data... | |
| pr60823-2.c | Loading commit data... | |
| pr60823-3.c | Loading commit data... | |
| pr60823-4.c | Loading commit data... | |
| pr61200.c | Loading commit data... | |
| pr61486-1.c | Loading commit data... | |
| pr61486-2.c | Loading commit data... | |
| pr63249.c | Loading commit data... | |
| pr63326.c | Loading commit data... | |
| pr63328.c | Loading commit data... | |
| pr64769.c | Loading commit data... | |
| pr66429.c | Loading commit data... | |
| pr67501.c | Loading commit data... | |
| pr67502.c | Loading commit data... | |
| pr67517.c | Loading commit data... | |
| pr67521.c | Loading commit data... | |
| pr70550-1.c | Loading commit data... | |
| pr70550-2.c | Loading commit data... | |
| pr71371.c | Loading commit data... | |
| pr71758.c | Loading commit data... | |
| pr79428-2.c | Loading commit data... | |
| pr79428-5.c | Loading commit data... | |
| pr79428-6.c | Loading commit data... | |
| pr79429.c | Loading commit data... | |
| pr79431.c | Loading commit data... | |
| pr79512.c | Loading commit data... | |
| pr81006.c | Loading commit data... | |
| pr81887.c | Loading commit data... | |
| pr83977-1.c | Loading commit data... | |
| pr83977-2.c | Loading commit data... | |
| pr83977-3.c | Loading commit data... | |
| pr84341.c | Loading commit data... | |
| pr85696.c | Loading commit data... | |
| pr85956.c | Loading commit data... | |
| pr86025.c | Loading commit data... | |
| pr88203-1.c | Loading commit data... | |
| pr88203-2.c | Loading commit data... | |
| pr88203-3.c | Loading commit data... | |
| pr88588.c | Loading commit data... | |
| pr90954.c | Loading commit data... | |
| pr91401-1.c | Loading commit data... | |
| pr91401-2.c | Loading commit data... | |
| pr91920.c | Loading commit data... | |
| pr91987.c | Loading commit data... | |
| pr93555-1.c | Loading commit data... | |
| pr93555-2.c | Loading commit data... | |
| priority-1.c | Loading commit data... | |
| reduction-1.c | Loading commit data... | |
| reduction-task-1.c | Loading commit data... | |
| reduction-task-2.c | Loading commit data... | |
| reduction-task-3.c | Loading commit data... | |
| requires-1.c | Loading commit data... | |
| requires-2.c | Loading commit data... | |
| requires-3.c | Loading commit data... | |
| requires-4.c | Loading commit data... | |
| scan-1.c | Loading commit data... | |
| scan-2.c | Loading commit data... | |
| scan-3.c | Loading commit data... | |
| scan-4.c | Loading commit data... | |
| scan-5.c | Loading commit data... | |
| schedule-1.c | Loading commit data... | |
| schedule-modifiers-1.c | Loading commit data... | |
| schedule-simd-1.c | Loading commit data... | |
| sections1.c | Loading commit data... | |
| simd-setjmp-1.c | Loading commit data... | |
| simd1.c | Loading commit data... | |
| simd2.c | Loading commit data... | |
| simd3.c | Loading commit data... | |
| simd4.c | Loading commit data... | |
| simd5.c | Loading commit data... | |
| simd6.c | Loading commit data... | |
| simd7.c | Loading commit data... | |
| simd8.c | Loading commit data... | |
| single1.c | Loading commit data... | |
| sink-1.c | Loading commit data... | |
| sink-2.c | Loading commit data... | |
| sink-3.c | Loading commit data... | |
| sink-4.c | Loading commit data... | |
| target-data-1.c | Loading commit data... | |
| target-teams-1.c | Loading commit data... | |
| taskloop-reduction-1.c | Loading commit data... | |
| taskwait-depend-1.c | Loading commit data... | |
| teams-1.c | Loading commit data... | |
| teams-2.c | Loading commit data... | |
| udr-1.c | Loading commit data... |