LouisJenkinsCS / LLVM-Simple-GUI

A GUI written in Java 8 + Swing; Comes with a basic text editor, ability to select optimizations, generate and view CFG, dominator trees and post-dominator trees, and more!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LLVM GUI

This tool allows you to run simple C programs in a code editor, select an order of optimizations, and even view the control-flow-graph, dominator tree, or the post-dominator tree. This is a pedagogical tool that has been adopted from the GUI used in my LLVM-JVM project. This has been modified to run C code rather than requiring the LLVM-JVM to compile Java down to Bytecode and then down to LLVM IR.

Build Instructions

Dependencies

  • clang
  • llvm

Build from Release

'java -jar LLVM-Simple-GUI.jar [filename]' where 'filename' is an optional C file.

Build from Source

Advised to use NetBeans, as no Makefile will be provided!

What does it do?

Includes a Code Editor with basic Syntax Highlighting!

CodeEditor

See the CFG, DOM Tree, and POSTDOM Tree!

CFG DOM POSTDOM

Select from various optimizations

OptimizationPanel

See Before-And-After Transformations!

CFG After-Optimization

View Basic Block Headers Only for Larger Functions!

CFG Header DOM Header POSTDOM Header

About

A GUI written in Java 8 + Swing; Comes with a basic text editor, ability to select optimizations, generate and view CFG, dominator trees and post-dominator trees, and more!

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Java 100.0%