What's false unwind edges?

Most liveliness algorithms work by starting at a return statement and working backwards in the control-flow graph to see which variables are alive/used at each node. This breaks down when you've got infinite loops though, because execution will never leave the loop (i.e. there is no "return" statement after it) and therefore nothing inside it will ever be considered alive.

It sounds like they are using "false unwinds" as a dummy node to ensure the loop gets checked for liveliness.

3 Likes