https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112937
Bug ID: 112937 Summary: [14 Regression] GCN: FAILs due to unconditional 'f->use_flat_addressing = true;' Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: testsuite-fail Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org CC: ams at gcc dot gnu.org, jules at gcc dot gnu.org Target Milestone: --- Target: GCN The unconditional GCN 'f->use_flat_addressing = true;' applied as part of commit r14-6226-ge7d6c277fa28c0b9b621d23c471e0388d2912644 "amdgcn, libgomp: low-latency allocator" is causing a few regressions for GCN target (not offloading) testing (tested '-march=gfx906', '-march=gfx90a'): C: [-PASS:-]{+FAIL:+} gcc.dg/pr64935-1.c (test for excess errors) xgcc: error: [...]/gcc.dg/pr64935-1.c: '-fcompare-debug' failure (length) Fortran: PASS: gfortran.dg/coarray/fail_image_2.f08 -fcoarray=single -O2 (test for excess errors) [-PASS:-]{+FAIL:+} gfortran.dg/coarray/fail_image_2.f08 -fcoarray=single -O2 execution test PASS: gfortran.dg/team_change_1.f90 -O0 (test for excess errors) [-PASS:-]{+FAIL:+} gfortran.dg/team_change_1.f90 -O0 execution test [Etc.] PASS: gfortran.dg/team_end_1.f90 -O0 (test for excess errors) [-PASS:-]{+FAIL:+} gfortran.dg/team_end_1.f90 -O0 execution test [Etc.] PASS: gfortran.dg/team_form_1.f90 -O0 (test for excess errors) [-PASS:-]{+FAIL:+} gfortran.dg/team_form_1.f90 -O0 execution test [Etc.] PASS: gfortran.dg/team_number_1.f90 -O0 (test for excess errors) [-PASS:-]{+FAIL:+} gfortran.dg/team_number_1.f90 -O0 execution test [Etc.] These execution test FAILs are generally of the form: Memory access fault by GPU node-2 (Agent handle: 0x20a1d40) on address 0x7f5600000000. Reason: Page not present or supervisor privilege. Additionally, I'm seeing the following in my libstdc++ enablement tree: PASS: std/ranges/iota/max_size_type.cc -std=gnu++20 (test for excess errors) {+WARNING: std/ranges/iota/max_size_type.cc -std=gnu++20 execution test program timed out.+} [-PASS:-]{+FAIL:+} std/ranges/iota/max_size_type.cc -std=gnu++20 execution test PASS: std/ranges/iota/max_size_type.cc -std=gnu++26 (test for excess errors) {+WARNING: std/ranges/iota/max_size_type.cc -std=gnu++26 execution test program timed out.+} [-PASS:-]{+FAIL:+} std/ranges/iota/max_size_type.cc -std=gnu++26 execution test (I guess I could provide pre-processed files for those if you'd like to reproduce.) To restore the Fortran test cases, just reverting the GCN back end change is not sufficient: also need to rebuild GCN target libraries. (That is, the GCN back end change does affect code generated for GCN target libraries.)