I came across the LLVM demo (http://llvm.cs.uiuc.edu/demo/index.cgi)
today. It seems to mis-optimise my test case, calculating the wrong
value. I'm not a LLVM user so it's not a problem for me; just thought
I'd send it your way in case this is a bug.
The following code should return the value 17 (I tested with GCC, to
be sure):
int main() {
int i;
for (i=0; i<10; i++)
if (i>5) i+=10;
return i;
}
But the demo wants to return 7 instead:
Output from LLVM disassembler
target endian = little
target pointersize = 32
deplibs = [ "c", "crtend" ]
implementation ; Functions:
int %main() {
loopexit:
call void %__main( )
ret int 7
}
declare void %__main()
I came across the LLVM demo (http://llvm.cs.uiuc.edu/demo/index.cgi)
today. It seems to mis-optimise my test case, calculating the wrong
value. I'm not a LLVM user so it's not a problem for me; just thought
I'd send it your way in case this is a bug.
Fixed. Patch here:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050221/024295.html
Testcase here:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050221/024294.html
Thanks!
-Chris
The following code should return the value 17 (I tested with GCC, to
be sure):
int main() {
int i;
for (i=0; i<10; i++)
if (i>5) i+=10;
return i;
}
But the demo wants to return 7 instead:
Output from LLVM disassembler
target endian = little
target pointersize = 32
deplibs = [ "c", "crtend" ]
implementation ; Functions:
int %main() {
loopexit:
call void %__main( )
ret int 7
}
declare void %__main()
-Chris