Skip to content

Commit 78ba220

Browse files
author
Spencer Bryngelson
committed
fix: gate all CCE IPA workarounds on GITHUB_ACTIONS; GPU per-file, CPU whole-target
1 parent 10c2de8 commit 78ba220

1 file changed

Lines changed: 10 additions & 9 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -748,16 +748,17 @@ if (MFC_SIMULATION)
748748
MFC_SETUP_TARGET(TARGET simulation
749749
SOURCES "${simulation_SRCs}"
750750
MPI FFTW OpenACC OpenMP)
751-
# CCE 19.0.0 optcg ICE: two distinct crashes triggered by IPA inlining:
751+
# CCE 19.0.0 optcg ICE on GitHub Actions runners: IPA inlining triggers two
752+
# distinct crashes in optcg:
752753
# m_bubbles_EL: castIsValid assertion (InstCombine/foldIntegerTypedPHI)
753754
# m_phase_change, m_mpi_common, m_start_up: bring_routine_resident SIGSEGV
754-
# Both crash locally and in CI on GPU builds. Apply -Oipa0 per-file
755-
# unconditionally to the known crash sites (IPA cross-file inlining triggers
756-
# the ICE; per-file disabling prevents it without affecting other files).
757-
# CPU-only builds in CI additionally disable IPA for the whole target
758-
# (safe — no GPU device-call requirements, and the crash is nondeterministic
759-
# so any file can become the crash site). See PR #1286.
760-
if (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray")
755+
# GPU builds: apply -Oipa0 per-file to known crash sites. Whole-target
756+
# -Oipa0 is not safe for GPU builds — it breaks cross-file !$acc routine /
757+
# !DIR$ INLINEALWAYS device-call registration, causing runtime aborts.
758+
# CPU builds: disable IPA for the whole target (safe — no GPU requirements,
759+
# and the crash is nondeterministic so any file can become the crash site).
760+
# See PR #1286.
761+
if (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray" AND DEFINED ENV{GITHUB_ACTIONS})
761762
if (MFC_OpenACC OR MFC_OpenMP)
762763
set_source_files_properties(
763764
"${CMAKE_BINARY_DIR}/fypp/simulation/m_bubbles_EL.fpp.f90"
@@ -766,7 +767,7 @@ if (MFC_SIMULATION)
766767
"${CMAKE_BINARY_DIR}/fypp/simulation/m_start_up.fpp.f90"
767768
PROPERTIES COMPILE_OPTIONS "-Oipa0"
768769
)
769-
elseif (DEFINED ENV{GITHUB_ACTIONS})
770+
else()
770771
target_compile_options(simulation PRIVATE -Oipa0)
771772
endif()
772773
endif()

0 commit comments

Comments
 (0)