Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ethanuppal/cs3110_compiler

Optimizing compiler to x86
https://github.com/ethanuppal/cs3110_compiler

compiler cs3110

Last synced: 24 days ago
JSON representation

Optimizing compiler to x86

Awesome Lists containing this project

README

        

# x86ISTMB v1.1.0

![CI Status](https://github.com/ethanuppal/cs3110_compiler/actions/workflows/ci.yaml/badge.svg)

> "x86 is simple trust me bro"
> Last updated: 2024-05-19 14:04:20.689701

```
$ ./main -h
CS 3110 final project

Usage: ./main [-h|-v]
or: ./main FILE [-g][-O]

-h,--help prints this info
-v,--version prints version info
-g,--gen only produces IR
-O,--optimize runs optimizations
```
```
$ ./main -v
x86ISTMB v1.1.0

Written by: Utku Melemeti, Ethan Uppal, Jeffrey Huang, Vijay Shanmugam, Jason Klein
```

## Group

- Utku Melemetci (um44)
- IR generation
- Control flow graph and register allocation
- Data structures
- Randomized testing
- Ethan Uppal (eu55)
- Static analysis
- Types and type checking
- Control flow
- Live variable analysis
- IR representation and abstraction for x86 assembly
- Emission to executables following Sys V ABI, integrating C runtime
- CLI/user interface and program driver
- Jeffrey Huang (jrh382)
- Parser and lexer
- Abstract syntax tree
- Type checking
- Jason Klein (jak532)
- Vijay Shanmugam (vrs29)

## Usage

The `Makefile` in the project root directory enables easy usage.
Simply run `make` to build the project executable, `./main`.
`make clean` will clear all build and executable files.
Documentation is available online at the [wiki](https://github.com/ethanuppal/cs3110_compiler/wiki).
Installation instructions are in [INSTALL.md](INSTALL.md).
A full user manual is in [user_manual.md](docs/user_manual.md).