#5054: LLVM Errors with test cases
---------------------------------+------------------------------------------
    Reporter:  arsenm            |       Owner:  davidterei@…        
        Type:  bug               |      Status:  new                 
    Priority:  normal            |   Component:  Compiler (LLVM)     
     Version:  7.0.2             |    Keywords:                      
    Testcase:                    |   Blockedby:                      
          Os:  Unknown/Multiple  |    Blocking:                      
Architecture:  Unknown/Multiple  |     Failure:  Compile-time crash  
---------------------------------+------------------------------------------
 I encountered a build error when using the LLVM backend on my homework. I
 attempted to get a reduced test case, but ended up running into a
 different problem. I don't really have the time to reduce these to simpler
 cases right now, and I figured it would be better to report this rather
 than doing nothing.

 In the original problem, the build fails with:
 {{{
 $ ghc -fllvm -O2 TestCase.hs
 [1 of 1] Compiling Main             ( TestCase.hs, TestCase.o )
 LLVM ERROR: Cannot yet select: 0x2793a60: f64 = sint_to_fp 0x2795aa0
 [ORD=2066] [ID=74]
   0x2795aa0: i64 = add 0x27b9e30, 0x2791990 [ORD=2065] [ID=72]
     0x27b9e30: i64,ch = load 0x2761e08, 0x2796db0, 0x27927a0<LD8[%ln79D]>
 [ORD=2064] [ID=70]
       0x2761e08: ch = EntryToken [ORD=2061] [ID=0]
       0x2796db0: i64 = add 0x27977b0, 0x27967a0 [ORD=2062] [ID=64]
         0x27977b0: i64,ch = CopyFromReg 0x2761e08, 0x27a76b0 [ORD=2062]
 [ID=45]
           0x2761e08: ch = EntryToken [ORD=2061] [ID=0]
           0x27a76b0: i64 = Register %reg16387 [ORD=2062] [ID=2]
         0x27967a0: i64 = Constant<7> [ORD=2062] [ID=3]
       0x27927a0: i64 = undef [ORD=2064] [ID=4]
     0x2791990: i64 = Constant<-1> [ORD=2065] [ID=5]

 }}}

 The second error I encountered was:

 TestCase2.hs:
 {{{
 ghc -fforce-recomp -fllvm -O2 TestCase2.hs
 [1 of 1] Compiling Main             ( TestCase2.hs, TestCase2.o )
 LLVM ERROR: Cannot yet select: 0x13834e0: f64 = ConstantFP<0.000000e+00>
 [ORD=1600] [ID=7]
 }}}

 Replacing the peek/poke with undefined seems to make the errors go away.
 The programs build and work correctly with the default NCG, and with -O0.
 The errors happen with -O1 and -O2. Both were using LLVM 2.8 on Linux
 x86_64.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5054>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to