Subject: openMM: internal compiler error: in vect_get_vec_defs_for_operand, at tree-vect-stmts.cc:1509

From: Tru Huynh <[email-masked]>
Date: Thu, 27 Feb 2025 16:21:37 +0100

Package: g++-12
Version: 12.2.0-14
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
   compiling openMM relesed version 8.2.0 with cuda 12.8 support on
   x86_64
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
     https://github.com/openmm/openmm/issues/4813
   * What was the outcome of this action?
   compilation failure
   * What outcome did you expect instead?
   compilation proceed

*** End of the template - remove these template lines ***

-- System Information:
Debian Release: 12.9
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-31-amd64 (SMP w/48 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages g++-12 depends on:
ii  gcc-12            12.2.0-14
ii  gcc-12-base       12.2.0-14
ii  libc6             2.36-9+deb12u9
ii  libgmp10          2:6.2.1+dfsg1-1.1
ii  libisl23          0.25-1.1
ii  libmpc3           1.3.1-1
ii  libmpfr6          4.2.0-1
ii  libstdc++-12-dev  12.2.0-14
ii  libzstd1          1.5.4+dfsg2-5
ii  zlib1g            1:1.2.13.dfsg-1

g++-12 recommends no packages.

Versions of packages g++-12 suggests:
pn  g++-12-multilib  <none>
pn  gcc-12-doc       <none>

-- no debconf information

---

From: Tru Huynh <[email-masked]>
Date: Thu, 27 Feb 2025 18:05:56 +0100

ccSEyJuT.out is attached generated after adding "-freport-bug"
to build/platforms/cuda/sharedTarget/CMakeFiles/OpenMMCUDA.dir/flags.make file

initial value:
CXX_FLAGS = -I/d12/shared/cuda/12.8.0_570.86.10/include -O2 -DNDEBUG -fPIC -msse2 -DLEPTON_USE_JIT -DOPENMM_COMMON_BUILDING_SHARED_LIBRARY -std=gnu++11 
changed into:
CXX_FLAGS = -I/d12/shared/cuda/12.8.0_570.86.10/include -O2 -DNDEBUG -fPIC -msse2 -DLEPTON_USE_JIT -DOPENMM_COMMON_BUILDING_SHARED_LIBRARY -std=gnu++11 -freport-bug

```
during GIMPLE pass: vect
/jade/home/tru/build/openmm/openmm-8.2.0/platforms/common/src/CommonKernels.cpp: In member function ‘void OpenMM::Common
CalcGayBerneForceKernel::sortAtoms()’:
/jade/home/tru/build/openmm/openmm-8.2.0/platforms/common/src/CommonKernels.cpp:5375:6: internal compiler error: in vect
_get_vec_defs_for_operand, at tree-vect-stmts.cc:1509
 5375 | void CommonCalcGayBerneForceKernel::sortAtoms() {
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x1afaeb6 internal_error(char const*, ...)
        ???:0
0x69ec5a fancy_abort(char const*, int, char const*)
        ???:0
0x1abda20 vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
        ???:0
0xfa2dbd vect_transform_loop(_loop_vec_info*, gimple*)
        ???:0
Please submit a full bug report, with preprocessed source.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions.
Preprocessed source stored into /tmp/ccSEyJuT.out file, please attach this to your bugreport.
```

Other data points:
1) lowering the optimisation from -O3 to -O2 avoids the internal compiler error
2) using gcc-11/g++-11 (with -O3) instead og gcc-12/g++-12 does not cause any issue.

Best regards

Tru

-- 
Tru Huynh (PhD) | mailto:[email-masked] | tel +33 1 45 68 87 37
https://research.pasteur.fr/en/team/structural-bioinformatics/
https://research.pasteur.fr/en/team/computational-structural-biology/
Institut Pasteur, 25-28 rue du Docteur Roux, 75724 Paris CEDEX 15 France

---

From: Tru Huynh <[email-masked]>
Date: Thu, 27 Feb 2025 19:07:21 +0100

missing attachement... take 2