[GHC] #15569: Constant folding optimises 1 into 3
GHC
ghc-devs at haskell.org
Thu Sep 13 13:58:30 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 ChaiTRex):
I've started reworking my code to generate a small subset of test cases
that use one specific fixed constant (100^th^ prime, 200^th^ prime,
''etc''. to avoid coincidentally passing tests) for each spot where a
literal or variable is expected, which should cut down significantly on
the number of tests.
I'd like to further cut down on the number of tests while still getting
full coverage, but I've only skimmed some of the constant folding rules.
Am I right in assuming that the following are true?
* `Int`s are the only type we need to test (if this isn't true, my
reworking will make the code take a type parameter, so generating tests
for additional types will be simple).
* The following expression shapes are the only ones required, where `∘` is
multiplication, addition, or subtraction and where multiple occurrences in
one expression can represent different operations. '''Note:''' negation
stops after single-`∘` expressions:
* `a`
* `-a`
* `a ∘ b`
* `a ∘ -b`
* `-a ∘ b`
* `a ∘ (b ∘ c)`
* `(a ∘ b) ∘ c`
* `(a ∘ b) ∘ (c ∘ d)`
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15569#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list