Skip to content

tpops/PDFG-IR_C_frontend

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

POLYHEDRAL DATA FLOW GRAPH IR (PDFG IR) FRONT END COMPILER

Author: Tobi Goodness Popoola

Features / Overview

A compiler that detects Static Control Parts (SCoPs) in a C program and generates Polyhedral DataFlow Graph IR.

  1. Parses C program
  2. Generates the Iteration Domain component of Polyhedral DataFlow Graph IR.
  3. Generates the Execution Schedule component of the Polyhedral DataFlow Graph IR.

Documentation

Generate Documentation to see source manifest

OUTPUT_DIRECTORY       = @CMAKE_CURRENT_BINARY_DIR@/doc_doxygen/
INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/src/ @CMAKE_CURRENT_SOURCE_DIR@/docs

To specify the location for documentation edit OUTPUT_DIRECTORY in the docs/ folder.

Dependencies

Clang/LLVM

Clang/LLVM: Clang installation is needed

Follow installation information here

Build / Install

Set llvm path variable

$ export /path/to/llvm/bin/directory:$PATH
$ git clone https://github.com/BoiseState-AdaptLab/PDFG-IR_C_frontend.git
$ mkdir build
$ cd build
$ cmake  -DBUILD_DOC=[ON|OFF] -DLLVM_BUILD=/path/to/llvm/build -DLLVM_SRC=path/to/llvm/src ../PDFG-IR_C_frontend

CMAKE options

BUILD_DOC: ON|OFF builds documentation using deoxygen

LLVM_BUILD: path to llvm build

LLVM_SRC: path to LLVM source

Usage

 $./build/bin/pdfg-c /test/c_file/path -- -std=c++11

Publications Used

[Strout, Michelle & Lamielle, Alan & Carter, Larry & Ferrante, Jeanne & Kreaseck, Barbara & Olschanowksy, Catherine. (2013). An Approach for Code Generation in the Sparse Polyhedral Framework. Parallel Computing. 53. 10.1016/j.parco.2016.02.004.] (https://www.researchgate.net/publication/259497067_An_Approach_for_Code_Generation_in_the_Sparse_Polyhedral_Framework)

ENABLING POLYHEDRAL OPTIMIZATIONS IN LLVM. Tobias Christian Grosser

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 68.9%
  • C 20.8%
  • Fortran 5.9%
  • CMake 1.5%
  • Jupyter Notebook 1.1%
  • Python 0.6%
  • Other 1.2%