Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/salekinsirajus/licm-optimization-pass-llvm

Loop Invariant Code Motion Optimization Pass - Implemented with LLVM. For ECE566 class project.
https://github.com/salekinsirajus/licm-optimization-pass-llvm

compiler compiler-optimization llvm llvm-pass loop-optimization

Last synced: about 13 hours ago
JSON representation

Loop Invariant Code Motion Optimization Pass - Implemented with LLVM. For ECE566 class project.

Awesome Lists containing this project

README

        

# LLVM Optimization Pass: Loop Invariant Code Motion
This is a class project for ECE566: Compiler Optimization and Scheduling at NC State

## Running Locally
Build a docker container using the docker file provided.
```
docker build -t llvmp3:latest .
```

### Build Executable
Get into the docker container
```
docker run -v $(pwd):/ece566 -it llvmp3:latest /bin/bash
```
Create a build directory
```
mkdir build
```
Run cmake
```
cmake ..
```
Now run make
```
make
```

## Building Test
Create a test directory in the root folder and `cd` into it
```
mkdir test
cd test
```
Configure the benchmark tool to find the executable that we built earlier
```
/ece566/wolfbench/wolfbench/configure --enable-customtool=/ece566/build/p3
```

## Running Test
while you are in the `test` directory, run the following command to compile
all the benchmark.
```
make all test
```
To ensure that our optimization pass did not break things, run the following:
```
make test compare
```