Question

I want know what's the meaning of a curve or arc in PDG. Which are data dependence and which are control dependence and so on.

enter image description here

Was it helpful?

Solution

The color of the edge represent the data dependencies : blue for yes, black otherwise. The shape of the arrow represent the control dependencies : circle for yes, normal arrow otherwise. The kind of the line represent the address dependencies : dotted for yes, plain otherwise.

Address dependencies are like data dependencies, but for the right part of an assignment. For instance, the statement :

*p = c ? a : b;

has a control dependency on c, data dependencies on a and b, and address dependencies on &p and p.

Well, this is not exactly like this in the real PDG since the statement is decomposed by Frama-C in :

if (c) { *p = a; } else { *p = b; }

But this is the idea.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top