
1. This adds a new constraint on the dataflow algorithm, namely that it must traverse the blocks in the correct order. I don't follow. From what I've seen in the code Hoopl orders blocks using depth-first traversal. For backwards analysis it reverses that order. I don't think that proposed changes will affect this. What did I miss?
2. Has anyone tried implementing this change? I'm slightly concerned that having a difference between forward and backward analyses might lead to divergence in some of the shared parts of the internals of the algorithm. If it turns out that forward and backward cases have to diverge to implement this change, will that be acceptable? GHC's specialized Hoopl module (compiler/cmm/Hoopl/Dataflow) already has separate functions for handling forward and backward analysis.
Janek