Many compiler flags affecting code generation are not accounted for in recompilation checking
Currently there are a number of flags which may affect program behavior but are not considered by the recompilation checker. Specifically:
-
-feager-blackholing
, which can affect the probability of multiple thunk entry and may improve deadlock detection -
-fexcess-precision
, which can affect floating point arithmetic -
-fdicts-strict
, which can affect program divergence behavior whenUndecidableInstances
is in use (#22549 (closed)) -
-fpedantic-bottoms
, which can affect program divergence -
-fomit-yields
, which can affect concurrent program behavior (#15975) -
-finfo-table-map
, which affects debugging information -
-fdistinct-constructor-tables
, which affects debugging information -
-fcatch-nonexhaustive-cases
, which may cause programs that would otherwise segfault to fail with a more sensible error (#20601 (closed)) -
-fno-typeable-binds
, which affects which bindings are generated -
-fexpose-all-unfoldings
, which affects interface file content
While some of these are admittedly debugging flags, it would be best (that is, less surprising) if recompilation checking accounted for them.
However, we do need to be careful here to avoid regressing #13604, which asks that, when -fignore-optim-changes
is use, the user be able to adjust optimisation level without recompilation.
Edited by Ben Gamari