Skip to content

Commit c89fd55

Browse files
author
Spencer Bryngelson
committed
fix: restrict whole-target -Oipa0 to CPU builds; GPU builds use per-file
1 parent 38ce1e1 commit c89fd55

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

CMakeLists.txt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -750,14 +750,13 @@ if (MFC_SIMULATION)
750750
MPI FFTW OpenACC OpenMP)
751751
# CCE 19.0.0 IPA ICE: bring_routine_resident SIGSEGV in optcg during
752752
# ipa_processing on GitHub Actions runners. Only manifests in CI.
753-
# For non-OpenMP builds: disable IPA for the entire target (safe, no IPA
754-
# requirements). For OpenMP builds: thermochem uses !DIR$ INLINEALWAYS
755-
# which requires IPA for device-call inlining, so we cannot disable IPA
756-
# globally. Instead apply -Oipa0 per-file to the known crash sites.
757-
# On OpenACC the pyrometheus patch emits !$acc routine seq (no IPA needed).
753+
# CPU builds: safe to disable IPA for the entire target (no GPU device-call
754+
# requirements). GPU builds (OpenACC or OpenMP): whole-target -Oipa0 breaks
755+
# cross-file !$acc routine / !DIR$ INLINEALWAYS device registration, causing
756+
# runtime aborts. Apply -Oipa0 per-file to the known crash sites only.
758757
# See PR #1286.
759758
if (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray" AND DEFINED ENV{GITHUB_ACTIONS})
760-
if (NOT MFC_OpenMP)
759+
if (NOT MFC_OpenACC AND NOT MFC_OpenMP)
761760
target_compile_options(simulation PRIVATE -Oipa0)
762761
else()
763762
set_source_files_properties(

0 commit comments

Comments
 (0)