gromacs ns.c miscompiled on armel with -O1 -fcse-follow-jumps -finline-small-functions
Bug #693502 reported by
Dr. David Alan Gilbert
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Fix Released
|
Medium
|
Richard Sandiford | ||
Linaro GCC Tracking |
Fix Released
|
Undecided
|
Unassigned | ||
gcc |
Fix Released
|
Critical
|
|||
gcc-4.5 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Gromacs (as included in the SPEC2006 benchmark) fails with the error:
Fatal error: One of the box vectors has become shorter than twice the cut-off length.
when built with -O2 but works with -O1; I've followed it down to
-O1 -fcse-follow-jumps -finline-
ns.c file of Gromacs that needs those options to fail.
Dave
Related branches
lp:~rsandifo/gcc-linaro/lp-695302
- Andrew Stubbs (community): Approve
-
Diff: 142 lines (+99/-7)3 files modifiedChangeLog.linaro (+18/-0)
gcc/reload1.c (+19/-7)
gcc/testsuite/gcc.c-torture/execute/postmod-1.c (+62/-0)
visibility: | public → private |
Changed in gcc-linaro: | |
assignee: | nobody → Dr. David Alan Gilbert (davidgil-uk) |
Changed in gcc-linaro: | |
status: | New → Confirmed |
assignee: | Dr. David Alan Gilbert (davidgil-uk) → Richard Sandiford (rsandifo) |
status: | Confirmed → In Progress |
Changed in gcc-linaro: | |
importance: | Undecided → Medium |
Changed in gcc: | |
importance: | Unknown → Critical |
status: | Unknown → Fix Released |
Changed in gcc-linaro: | |
status: | Fix Committed → Fix Released |
Changed in gcc-linaro-tracking: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Mis-inlining of norm2 into search_neighbours; norm2 is a simple vector x[0]*x[ 0]+x[1] *x[1]+x[ 2]*x[2] but it looks like it's using the wrong base address for the 2nd and 3rd calls to norm2 (thinking it can share with the 1st one).
Dave