samuelkgutierrez / dflow

Data-Flow Analysis Code Using C++11

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dflow

Straightforward data-flow analysis in C++.

Building the Source

./autogen && ./configure && make

Example Usage and Output

$ ./src/dflow ./tests/if-reach-00
> generating AST from ./tests/if-reach-00 ... done
> generating source from AST ...
> -- setting nesting depths ... done
> -- labeling ... done
> here is the annotated source:
  [a = 1] -- 1
  [b = 2] -- 5
  if [a > b] -- 10 then
      [b = a] -- 14
  else
      [skip] -- 18
  fi
> drawing ASTs ...
> -- writing ./tests/if-reach-00-ast.eps ... done
> -- writing ./tests/if-reach-00-dast.eps ... done
> drawing control flow graph ...
> -- writing ./tests/if-reach-00-cfg.eps ... done
> calculating reaching definitions data-flow ...
> -- gathering variables ...
> -- 2 found ...
> -- { a b }
> -- starting fixed point iteration ...
> -- done ...
> -- here are the rd sets ...
{ (a, ?) (b, ?) }
[a = 1] -- 1
{ (a, 1) (b, ?) }
{ (a, 1) (b, ?) }
[b = 2] -- 5
{ (a, 1) (b, 5) }
{ (a, 1) (b, 5) }
[a > b] -- 10
{ (a, 1) (b, 5) }
{ (a, 1) (b, 5) }
[b = a] -- 14
{ (a, 1) (b, 14) }
{ (a, 1) (b, 5) }
skip
{ (a, 1) (b, 5) }

Helpful Resources

About

Data-Flow Analysis Code Using C++11

License:Other


Languages

Language:C++ 70.9%Language:M4 10.3%Language:Yacc 6.7%Language:Python 4.8%Language:LLVM 3.3%Language:Makefile 2.8%Language:Shell 1.1%