Constructing call multigraphs using dependence graphs
Constructing call multigraphs using dependence graphs
复制标题
使用依赖图构建调用多重图
DOI:
10.1145/158511.158647
复制
发表时间:
1993
期刊:
影响因子:
--
通讯作者:
Arun Lakhotia
中科院分区:
文献类型:
--
作者:
Arun Lakhotia
A call m.ultigraph’of a program is a directed Multigraph encoding the possible calling relations between procedures. These graphs are used in interprocedurd program optimization [2, 3, 9, 15] and for reverse engineering of softw~are systems [7, 8]. For programs that do not contain proCedul”e valued variables (referred to hencefollh as procedure variables) this graph can be constructed by a single pass over the program collecting the procedures called at each call site. When procedure v,ari.ables and indirect calls using values of such variables are allowed constructing such a graph is not so simple. In the worst case, the value of a procedure v,ariable at a call site may be a reference to any procedure in the program. For interprocedural optimizations and for understanding programs one would like to have more precise solutions. The importance of precisely constructing an analogue of call graph (referred to as the Ot}l order control flow analysis or OCFA) in the context of higher order languages such as Scheme and ML has been eloquently elaborated by Shivers [18]. A precise call graph enables data flow optimizations * In ths paper call multigmph is also refereed to as the call graph. Ths work was supported by the grant LEQSF (1991-92) ENH-98 from the Louisiana Bowl of Regents.