[GHC] #14528: LLVM's CallAnalyzer Breaks

GHC ghc-devs at haskell.org
Sun Nov 26 23:08:36 UTC 2017


#14528: LLVM's CallAnalyzer Breaks
-------------------------------------+-------------------------------------
           Reporter:  kavon          |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.2.1
  (LLVM)                             |
           Keywords:  inline         |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  Compile-time
  Unknown/Multiple                   |  crash or panic
          Test Case:                 |        Blocked By:
           Blocking:  11295          |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 I found this issue while working on #11295.

 It seems that after first running `-mem2reg -inline` on some nofib
 programs, such as `imaginary/integrate` and `real/lift` (using `llvm-link`
 to roll the IR files together), running another pass that depends on
 LLVM's CallAnalyzer will cause `opt` to overflow the stack.

 For example, here are some pass sequences that break `opt` when optimizing
 `integrate`:

 * `-mem2reg -inline -gvn`
 * `-mem2reg -inline -instcombine`
 * `-mem2reg -inline -early-cse`

 This happens in LLVM 5 and tip-of-tree (LLVM 6). It probably is present in
 LLVM 4 as well.

 I'm working on putting together a reduced test case to report a bug to
 LLVM developers.

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


More information about the ghc-tickets mailing list