Milestone 4 added a challenge problem, bury-dead. In milestone 6, undead-analysis adds the call-undead info. However, that info could become out of date after bury-dead.
One design is to simply make bury-dead update the call-undead info. This seems like the right approach, as most passes that affect the info fields are responsible for updating them.
We could also do a separate call-undead analysis. This seems a little wasteful but is perhaps more in the nanopass style.
Another is to have a later pass figure out the call-undead information. David suggested using conflict analysis to find all the things in conflict with a jump. This requires some changes to the conflict graph and seems like it's conflating two things.
Milestone 4 added a challenge problem, bury-dead. In milestone 6, undead-analysis adds the call-undead info. However, that info could become out of date after bury-dead.
One design is to simply make bury-dead update the call-undead info. This seems like the right approach, as most passes that affect the info fields are responsible for updating them.
We could also do a separate call-undead analysis. This seems a little wasteful but is perhaps more in the nanopass style.
Another is to have a later pass figure out the call-undead information. David suggested using conflict analysis to find all the things in conflict with a jump. This requires some changes to the conflict graph and seems like it's conflating two things.