GitPedia

Dg

[LLVM Static Slicer] Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode.

From mchalupa·Updated June 23, 2026·View on GitHub·

DG is a library containing various bits for program analysis. However, the main motivation of this library is program slicing. The library contains implementation of a pointer analysis, data dependence analysis, control dependence analysis, and an analysis of relations between values in LLVM bitcode. All of the analyses target LLVM bitcode, but most of them are written in a generic way, so they are not dependent on LLVM in particular. The project is written primarily in C++, distributed under the MIT License license, first published in 2015. Key topics include: analysis, backward-slice, backward-slicing, control-dependency, data-dependency.

Latest release: v0.9-preUbuntu 18.04 package
May 27, 2020View Changelog →

DG

Linux CI
macOS CI

DG is a library containing various bits for program analysis. However, the main motivation of this library is program slicing. The library contains implementation of a pointer analysis, data dependence analysis, control dependence analysis, and an analysis of relations between values in LLVM bitcode. All of the analyses target LLVM bitcode, but most of them are written in a generic way, so they are not dependent on LLVM in particular.

Further, DG contains an implementation of dependence graphs and a static program slicer for LLVM bitcode. Some documentation can be found in the doc/ directory.


You can find a high-level description of DG in DG: a program analysis library or DG: Analysis and slicing of LLVM bitcode papers. More detailed information about dg is in the doc/ folder or in my master thesis.

You can write e-mails with issues to mchqwerty@gmail.com (or file issue in github).

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from mchalupa/dg via the GitHub API.Last fetched: 6/25/2026