[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