tip.cfg.cfa
Class Interprocedural

java.lang.Object
  extended by tip.cfg.CFGQuestionAnswerAdapter<Map<String,ICFG>,ICFG>
      extended by tip.cfg.cfa.Interprocedural
All Implemented Interfaces:
CFGQuestionAnswer<Map<String,ICFG>,ICFG>

public class Interprocedural
extends CFGQuestionAnswerAdapter<Map<String,ICFG>,ICFG>

Interprocedural converts a collection of intraprocedural control flow graphs into a single interprocedural control flow graph. The entry point of the new control flow graph is the entry point of the "main" method.

The maximal number of copies of a control flow graph for each call-site can be specified in order make both mono- and polyvariant analyses. If the maximal number of copies is 0, the interproduceral control flow graph is monovariant, and the maximal number of copies is greater than 0, the interprocedural control flow graph is polyvariant.

Author:
Johnni Winther, jw@brics.dk

Field Summary
static boolean DEBUG
           
 
Method Summary
static ICFGCollection makeInterprocedural(ICFGCollection oldCollection, int maxCopies)
          Creates a new ICFGCollection containing a single interprocedural control flow graph created from oldCollection.
 
Methods inherited from class tip.cfg.CFGQuestionAnswerAdapter
caseCAssignPtrStmPoint, caseCAssignVarStmPoint, caseCBinopExpPoint, caseCBlockPoint, caseCDeclStmPoint, caseCDerefExpPoint, caseCFunctionCallExpPoint, caseCFunctionPtrCallExpPoint, caseCIfThenElseStmPoint, caseCIfThenStmPoint, caseCInputExpPoint, caseCIntConstExpPoint, caseCMallocExpPoint, caseCNullExpPoint, caseCOutputStmPoint, caseCPointerExpPoint, caseCReturnStmPoint, caseCVarExpPoint, caseCWhileStmPoint, caseEntryPoint, caseExitPoint, defaultNode
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values
Method Detail

makeInterprocedural

public static ICFGCollection makeInterprocedural(ICFGCollection oldCollection,
                                                 int maxCopies)
Creates a new ICFGCollection containing a single interprocedural control flow graph created from oldCollection. maxCopies specifies the degree of mono-/polyvariance.

Parameters:
oldCollection - the collection from which the control flow graph is created
maxCopies - the maximal number of copies of a control flow graph for each call-site.
Returns:
a singleton collection containing an interprocedural control flow graph