Re: Alternatives for representing a reverse postorder numbering

2021-12-09 Thread Sebastian Graf
ing a transient substitution type. Von: ghc-devs im Auftrag von Norman Ramsey Gesendet: Donnerstag, Dezember 9, 2021 8:16 PM An: Andreas Klebinger Cc: ghc-devs@haskell.org Betreff: Re: Alternatives for representing a reverse postorder numbering > Which I gues

Re: Alternatives for representing a reverse postorder numbering

2021-12-09 Thread Norman Ramsey
> Which I guess mostly depends on how much mileage we get out of the > numbering... I rarely have lost sleep over the overhead of looking > things up in IntMaps. Thank you!! I found your analysis very helpful. I will stick with the IntMaps until and unless things reach a stage where they look

Re: Alternatives for representing a reverse postorder numbering

2021-12-09 Thread Andreas Klebinger
Hello Norman, There is no invariant that Cmm control flow is reducible. So we can't always rely on this being the case. Depending on what you want to use this for this might or might not matter. In terms of implementation I think the question is if doing lookups in a LabelMap is more expensive t

Alternatives for representing a reverse postorder numbering

2021-12-06 Thread Norman Ramsey
Reverse postorder numbering is a superpower for control-flow analysis and other back-end things. For example, - In a reducible flow graph, a node Q is a loop header if and only if it is targeted by an edge P -> Q where Q's reverse postorder number is not greater than P's. - If a loop