GHC goes into an apparently infinite loop at -O2
I ran across a peculiar case this evening: a benchmark that I can't compile with -O2, because GHC goes into an infinite loop.
I have a very small repro at https://github.com/bos/inttable/blob/2d529c693f4c9a2903dae8f640759a05e7d20c69/Repro.hs
You can grab the necessary code and reproduce as follows:
git clone git://github.com/bos/inttable.git
cd inttable
ghc -O2 --make Repro
With GHC 7.6.3, this goes into an infinite loop. If I compile with -v3, I see that GHC freezes here:
*** SpecConstr:
Result size of SpecConstr
This never prints any output. Since the compiler isn't allocating more memory, I assume that it's stuck in a loop, rather than doing something productive.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | MacOS X |
| Architecture |