This repository contains the source code for managing the GraphIR toolchain, which is a set of tools for the extraction, analysis and transformation of GraphIR. GraphIR is a graph-based, single static assignment (SSA) intermediate representation (IR) for analysis and optimization of gradually typed languages.
- GraphIR - TS class definitions for representing GraphIR.
- TS-Graph-Extracor - Parses TS code into GraphIR objects. Essentially toolchain's frontend.
- GraphIR-Static-Analysis - Inference and reasoning over GraphIR, implemented in Souffle Datalog.
- GraphIR-Backend - Emit c++ code corresponding to GraphIR objects.
After cloning the repository, run the following command to install the dependencies:
git submodule update --init --recursive
npm i
npm run build
npm start -- -i <input-file> -o <output-file>