[LLVMbugs] [Bug 20020] New: miscompile at -O1 produces crashing program (postRA scheduler?)
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Jun 12 16:01:08 PDT 2014
http://llvm.org/bugs/show_bug.cgi?id=20020
Bug ID: 20020
Summary: miscompile at -O1 produces crashing program (postRA
scheduler?)
Product: new-bugs
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: new bugs
Assignee: unassignedbugs at nondot.org
Reporter: spatel+llvm at rotateright.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
The following C test case is a reduced version of
test-suite/SingleSource/Benchmarks/BenchmarkGame/n-body.c.
This program is crashing on both Linux x86-64 and OS X using clang trunk (v3.5)
like so:
$ ./clang -fmath-errno -O1 nbody_reduced.c -march=atom -lm
$ ./a.out
Segmentation fault (core dumped)
I am suspicious of postRA scheduling because after I enabled postRA scheduling
for another target (btver2) and rebuilt clang, the program began crashing on
that target too. I don't see a way to toggle postRA scheduling via command-line
flags, but if that's possible, it would be much easier to test.
Any suggestions on how to isolate this fault?
$ cat nbody_reduced.c
#include <math.h>
struct planet {
double x, y;
double vx, vy;
double mass;
};
void advance(int nbodies, struct planet * bodies, double dt)
{
int i, j;
for (i = 0; i < nbodies; i++) {
struct planet * b = &(bodies[i]);
for (j = i + 1; j < nbodies; j++) {
struct planet * b2 = &(bodies[j]);
double dx = b->x - b2->x;
double dy = b->y - b2->y;
double distance = sqrt(dx * dx + dy * dy);
double mag = dt / (distance * distance * distance);
b->vx -= dx * b2->mass * mag;
b->vy -= dy * b2->mass * mag;
}
}
for (i = 0; i < nbodies; i++) {
struct planet * b = &(bodies[i]);
b->x += b->vx;
b->y += 0.01 * b->vy;
}
}
int main()
{
struct planet bodies;
advance(1, &bodies, 0.01);
return 0;
}
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140612/f2e25976/attachment.html>
More information about the llvm-bugs
mailing list