Preexistence revisited
Résumé
Preexistence is a property which asserts that the receiver of a given call site has been instantiated before the current invocation of the considered method [Detlefs and Agesen, Inlining of virtual methods. ECOOP’99].
Hence, preexistence is a mean to avoid on-stack replacement when a method must be recompiled during its own activation.
In the original proposition, preexistence is an immutable property, its analysis is purely intra-procedural, and it considers only values.
In this paper, we propose to extend it to a simple inter-procedural static analysis that considers types too, not only values.
A consequence of this extension is that preexistence is no longer immutable, hence the analysis is not monotonous.