This is a repository containing implementations of analyses, optimizations, and other tools for CS 6120 using the Big Red Intermediate Language
-
bril-rs
- Simple rust library for interfacing with Bril. Most of it is taken from https://github.com/sampsyo/bril -
lesson-tasks
- Tasks organised by lesson -
benchmark
- Test directory for TURNT snapshot tests. Benchmarks are taken from https://github.com/sampsyo/bril benchmarks.
-
bril_type
- Types for bril constructs. -
utils
- Utility functions loading and manipulating bril programs.
-
cfg
- A simple library that construst control flow graphs from bril programs and also visualizes them in dot format. -
dfa
- Implementations of data flow analyses using the framework (currently includes constant propagation and reaching definitions). -
dfa_framework
- A generic solver framework for implementing data flow analyses. -
dot
- A series of functions to help with manipulating dot files, most notably it can create an animation from series of dot files. -
node
- A representation of a node (one instr per node) in a control flow graph.
-
dominator
- A library for computing dominator trees and dominator frontiers.
-
block
- A representation of a block (multiple instr per block) in a control flow graph. -
ssa
- A library for converting bril programs to and back from SSA form.