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/brillesson-tasks
- Tasks organised by lessonbenchmark
- 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.