Skip to content

This gui provides a simple IDE that can be used to experiment with the CAnDL programming language.

Notifications You must be signed in to change notification settings

cc18ginsbach/CAnDL-Demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

CAnDL Demo

Introduction

This is a gui to demonstrate the Compiler Analysis Description Language (CAnDL). Please refer to Philip Ginsbach, Lewis Crawford and Michael O’Boyle. CAnDL: A Domain Specific Language for Compiler Analysis. 27th ACM International Conference on Compiler Construction for details.

Dependencies

Installation

Please set up the gui directory as follows:

git clone https://github.com/cc18ginsbach/CAnDL-Demo
cd CAnDL-Demo
git clone https://github.com/cc18ginsbach/llvm
cd llvm/tools
git clone https://github.com/cc18ginsbach/clang
cd ../..
mkdir build
cd build
cmake ../llvm -DCMAKE_BUILD_TYPE=RELEASE -GNinja -DLLVM_PARALLEL_LINK_JOBS=1
ninja

Usage

On the left side, enter valid C++ code. Load existing files into the editor using File->Open. Selecting Compiler->Compile will run this code through a modified version of clang that implements compiler analyses using the CAnDL programming language. The progress can be observed in the message box at the bottom.

As a result of running Compiler->Compile, LLVM IR will appear in the compiler IR code tab and the detected instances will appear in the detection results tab. By default, the program will look for polyhedral SCoPs.

To run different analysis routines than SCoPs, modify the Experiment specification in the constraint specifications tab.

Screenshot of CAnDL GUI

Contact

If you have further questions, please contact me at philip.ginsbach@ed.ac.uk.

About

This gui provides a simple IDE that can be used to experiment with the CAnDL programming language.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages