[GHC] #15569: Constant folding optimises 1 into 3
GHC
ghc-devs at haskell.org
Thu Sep 13 22:14:51 UTC 2018
#15569: Constant folding optimises 1 into 3
-------------------------------------+-------------------------------------
Reporter: snowleopard | Owner: (none)
Type: bug | Status: new
Priority: highest | Milestone: 8.6.1
Component: Compiler | Version: 8.6.1-beta1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #9136 | Differential Rev(s): Phab:D5109
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by monoidal):
I picked all rules from D2858, including the wrong and the correct version
of `(L y :-: v) :-: (L x :-: w)` and used sympy to compute the
difference between LHS and RHS symbolically. Result: all differences
simplify to 0, except that one rule that was found to be wrong. Code:
https://gist.github.com/monoidal/3d5565b986a013639389fc57081d2781
All of the rules use addition, subtraction and multiplication only
(matters would be different if there was division). This makes me
confident that the rules are algebraically correct. It doesn't mean the
code is completely correct, but any remaining errors will be of different
nature. If someone is willing to do further review, I would suggest things
like: double-checking the code surrounding the rules, checking if integer
overflow can occur, does this apply only to Int/Integer or other types
etc.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15569#comment:20>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list