package documentation

Static Single Assignment (SSA) is a technique of IR in the compiling thoery, it also shows great benefits to static anaysis tasks such as constant propagation, dead code elimination and etc. Constant propagation is also a matured technique in static anaysis. It is the process of evaluating or recognizing the actual constant values or expressions at a particular program point. This is realized by utilizing control flow and data flow information. Determining the possible values for variables before runtime gives great benefits to software anaysis. For instance, with constant value propagation, we can detect and remove dead code or perfrom type checking. In scalpel, we implement constant propagation along with the SSA for execution efficiency.

Module alg In this code we include a lightweight adaption algorithm for dominating relationships computing. The code is adapted from Networkx Please see the original one at https://networkx.org/documentation/stable/_modules/networkx/algorithms/dominance.html#dominance_frontiers...
Module const In this module, the single static assignment forms are implemented to allow further analysis. The module contain a single class named SSA.
Module def_use In this module, We implement def-use chain structure for Scalpel framework. A def-use chain is a data structure that consists of a definition of a variable and all the uses of that variable. A def-use chain is a step in liveness analysis, so that logical representations of all the variables can be identified and tracked through the code.
Module ssa In this module, the single static assignment forms are implemented to allow further analysis. The module contain a single class named SSA.

From __init__.py:

Variable __slots__ Undocumented
__slots__: list[str] = (source)

Undocumented