Reference1:
EQTDDataStructures is the ``final” form of DSA and is probably the appropriate pass for most external clients to use. By including this pass, a client will get the results of the DSA analysis after all phases of DSA have been run. Merging has been performed for aliasing in both callers and callees, so fewer nodes will be incomplete than in bottom-up. Aliasing information will therefore be most precise.
The primary disadvantage of using EQTDDataStructures is the loss of precision caused by the additional merging of nodes relative to bottom-up. Depending on the needs of a client, therefore, EquivBuDataStructures may be more appropriate in specific cases.
Class definition in DataStructure.h: derived from TDDataStructures
/// EQTDDataStructures - Analysis that computes new data structure graphs
/// for each function using the closed graphs for the callers computed
/// by the EQ bottom-up pass.
///
class EQTDDataStructures : public TDDataStructures {
public:
static char ID;
EQTDDataStructures()
:TDDataStructures(ID, "eqtd.", true)
{}
~EQTDDataStructures();
};
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?