the meaning of kinds of curve in PDG
-
30-06-2021 - |
题
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.
解决方案
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.