Building GHC itself using the LLVM back end no longer works with LLVM 3.2 (3.1 is fine). On Linux x86_64, the stage2 compiler fails for me. Unfortunately running the test suite with stage=1 did not produce any quality failures that would help us track down the problem. This does not appear to be related to the new codegen since using LLVM 3.1 does not cause a failure.
Trac metadata
Trac field
Value
Version
7.7
Type
Bug
TypeOfFailure
OtherFailure
Priority
normal
Resolution
Unresolved
Component
Compiler (LLVM)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
OK I can confirm but not sure of the cause as of yet. This kind of bug may take me a while with the limited time I have available going forward. Usually the issue is in comping hand written Cmm files when the problem is bootstrapping LLVM and no bugs fail in the test suite.
I was actually considering blacklisting LLVM 3.2 completely since it clearly is generating bad code *somewhere*. Or at least outputting a warning. How would you feel about that?
I'd be fine with a warning but not outright blacklisting. LLVM 3.2 passes the testsuite fine and so it is very likely the bug only occurs when compiling the hand written Cmm files that can be quite different from the rest of the code GHC produces.
I wasn't having problems with llvm aside from when I tried to build ghc via -fllvm with 3.2.
having a warning saying "llvm 3.2 has known issues with ghc, use at your own risk and please consider using 3.3 instead" or something like that would be better.
@c00w, whats the full commit hash? the short hash doesnt make it possible to look up the commit (or at least i don't know how to )
Full commit hash is f7869ca8bd3742249f46b60d3d34c8f8ba26a3c2.
Note that its broken from that commit minus three to three after that where I removed the llvm building. The failure is coming from the APIServer.hs file in the haskell directory. Every attempt to make a smaller example removed the crash. If you want to actually reproduce the crash, rename the hostname in the VagrantFile to atlantis.m.bittoll.com and then make test should bring up a virtual machine. There is a dependency installation script in dev.