Difference between revisions of "XCSG:InterproceduralDataFlow"

From AtlasWiki
Jump to: navigation, search
(Specification: Added specific connections between MasterReturn nodes and CallSites, moved less specific connections to "permitted", corrected Assignment->ProgramVariable (not every Assignment goes to one))
Line 3: Line 3:
 
| extends = DataFlow (Edge)
 
| extends = DataFlow (Edge)
 
| description = Represents [[DataFlow (Edge){{!}}data flows]] between [[Function]]s, or involving [[Variable]]s visible to multiple Functions.
 
| description = Represents [[DataFlow (Edge){{!}}data flows]] between [[Function]]s, or involving [[Variable]]s visible to multiple Functions.
| specified = Variable,DataFlow (Node),*,*;ParameterPass,Parameter,*,1;Assignment,Variable,*,0..1;Assignment,ProgramVariable,*,1..*;ProgramVariable,ProgramVariable,0..1,0..1
+
| permitted = Variable,DataFlow (Node),*,*;Assignment,Variable,*,0..1
 +
| specified = ParameterPass,Parameter,*,1;Assignment,ProgramVariable,*,0..1;MasterReturn,StaticCallSite,1,*;MasterReturn,DynamicCallSite,1..*,*;MasterReturn,FunctionPointerCallSite,1..*,*
 
}}
 
}}

Revision as of 17:24, 5 June 2014

Specification

Metaclass InterproceduralDataFlow
Extends DataFlow (Edge)
Description Represents data flows between Functions, or involving Variables visible to multiple Functions.
Permitted Connections
Predecessor Multiplicity Successor
Variable ✱ ➞ ✱ DataFlow (Node)
Assignment ✱ ➞ 0..1 Variable
Specified Connections
Predecessor Multiplicity Successor
ParameterPass ✱ ➞ 1 Parameter
Assignment ✱ ➞ 0..1 ProgramVariable
MasterReturn 1 ➞ ✱ StaticCallSite
MasterReturn 1..✱ ➞ ✱ DynamicCallSite
MasterReturn 1..✱ ➞ ✱ FunctionPointerCallSite