Skip to content

Too many Simplifier iterations

After fixing #24944 (closed) we get four simplifier iterations on the test program of that ticket:

WARNING:
  Simplifier bailing out
  T24944, after 4 iterations [4, 3, 3, 1]
    Size = {terms: 257, types: 117, coercions: 0, joins: 0/0}

Four iterations seems like a lot. Here is what happens:

Iteration 1
  1 PreInlineUnconditionally 1 sc_sDz
  1 RuleFired 1 SC:$j0
  1 BetaReduction 1 sc_sDz
  1 KnownBranch 1 myTyCon1_r4D

Now $j_sDm occurs just once; but $s$j_sDB occurs twice, once in the RULE of $j_sDm

Iteration 2
  2 PreInlineUnconditionally
    1 ds_dBD
    1 $j_sDm
  1 BetaReduction 1 ds_dBD

Now that $j_sDm has been inlinined, $s$s_sDB occurs just once

Iteration 3
  2 PreInlineUnconditionally
    1 sc_sDz
    1 $s$j_sDB
  1 BetaReduction 1 sc_sDz

It happens that we can now do a case-merge

Iteration 4
  1 AltMerge 1 wild_X1
Edited by Simon Peyton Jones
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information