hoopl
hoopl copied to clipboard
Stateful transformation causes non-termination in Hoopl analysis.
This ticket was filed by Andreas at https://ghc.haskell.org/trac/ghc/ticket/9853.
I can think of the following solutions:
- investigate Andreas's proposal of rolling back the side effects when a rewritten graph is dropped. 2a. declare it's a fact of life, and document the limitation: A dataflow analysis and transformation that use non-deterministic algorithm to generate new variables, and the dataflow fact includes the new variables should be split to two part. a) use a pre tranformation step to introduce all new variables, b) a analysis and tranformation step that only simplfies the pre transformed code. 2b. declare it's a fact of life, document it, and provide the utility functions to support the pre transformation.
Any other better solutions?