+ CoreDoSimplify (isAmongSimpl [
+ MaxSimplifierIterations max_iter
+ -- No -finline-phase: allow all Ids to be inlined now
+ ])
+ else
+ CoreDoNothing,
+ -- Simplify before SpecConstr, because LiberateCase leaves
+ -- case binders the wrong way round. E.g. it leaves it like
+ -- case x of wild { ... f x .... }
+ -- rather than
+ -- case x of wild { ... f wild ... }
+ -- The latter is better because 'wild' has the unfolding for
+ -- x inside it.
+ if opt_level >= 2 then