Bug 2421 - ACATS cxg2021 fails at -O3
: ACATS cxg2021 fails at -O3
Status: REOPENED
Product: tools
Classification: Unclassified
Component: gnat
: trunk
: Other Linux
: P normal
Assigned To: Unassigned LLVM Bugs
:
:
:
:
  Show dependency treegraph
 
Reported: 2008-06-08 15:13 CDT by Duncan Sands
Modified: 2010-02-22 12:52 CST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Duncan Sands 2008-06-08 15:13:20 CDT
Building the ACATS tests at -O3 causes one additional failure: cxg2021.
Comment 1 Duncan Sands 2009-01-29 05:52:02 CST
This went away when the gcc inliner was disabled.  Most likely
the underlying problem has just been covered up, but I don't
care enough to investigate further.  Note that the original
failure only occurred when using the x86 floating point stack,
and not when using sse registers.
Comment 2 Duncan Sands 2009-02-02 04:46:21 CST
This recently started failing again (at -O2).
Comment 3 Duncan Sands 2009-02-06 01:56:04 CST
Remarks: this seems to be due to extra precision in x86-32 floating
point registers versus the precision (64 bits) when stored to a stack
slot.  The test is testing 64 bit precision, and as far as I can see
it shouldn't matter whether you use stack stores or registers, since
both give values inside the Ada "model interval" (Ada uses an interval
arithmetic model for floating point).  I wasn't able to find anything
obviously wrong with the LLVM generated code.  Currently I suspect that
the test is wrong, but didn't finish analyzing it yet.
Comment 4 Chris Lattner 2009-06-19 00:42:43 CDT
still a problem?
Comment 5 Duncan Sands 2009-06-19 03:21:04 CDT
Yes, still a problem.  In fact it now fails at -O2!  It is not clear if this
is a bug in LLVM or in the test.  In order to resolve this I wrote my own
simulator of Ada floating point interval arithmetic, but having done so never
found the time to apply it to the analysis of this test, d'oh!