SSA-based flow-sensitive type analysis
Alexandre Lenart, Christopher M. Sadler, Sandeep K. S. Gupta · 2000
An important step in compile-time optimization of objectoriented languages with polymorphic and virtual functions is static determination of concrete types (classes) of variables referring to objects.This information is essential for identifying monomorphic call sites and hence opening opportunities for interprocedural optimizations.In this paper, we present an Static Single Assignment (SSA) based interprocedural static type analysis algorithm, which combines constant propagation and type propagation.This algorithm enhances Wegman and Zadeck's [11] sparse conditional constant propagation (SCC) algorithm to perform simultaneous type analysis on a modified-SSA representation of a object-oriented program.Due to synergy between constant and types propagation, the proposed algorithm detects more constants and provides more precise type information than the case wherein the two analysis are performed separately.Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the fifll citation on the first page.To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and or fee.