Skip to content

An open-source interactive visualization tool for comparing IR CFGs

License

Notifications You must be signed in to change notification settings

kc-ml2/llvm-flow

Repository files navigation

PyPi license

Visualize the LLVM CFG interactively !

LLVM-FLOW is an open-source project that provides interactive visualization of LLVM IR Control Flow Graphs (CFG). With LLVM-FLOW , users can easily compare the CFG before and after optimization.
The tool can be accessed either through the LLVM-FLOW website or by running it directly on your local environment via Docker.


✅ Get started: LLVM-FLOW website

👉 visit https://llvmflow.kc-ml2.com/

example

✅ Get started: Docker

To run this project with Docker, first, you'll need to install Docker on your machine. Once you've installed Docker, follow these steps:

  1. Clone the repository:
git clone https://github.com/kc-ml2/llvm-flow.git
  1. Build the Docker image:
docker build -t llvm-flow .
  1. Run the Docker container:
docker run -p 8000:8000 -p 3000:3000 llvm-flow

This will start the application on http://localhost:3000


✅ Features

  1. Detect the same Basic Block between IR modules
  2. Switch the mode of CFG
  3. Switch modes only for certain nodes
  4. Move the node
  5. Find the target&source node of the edge
  6. Resize the div
  7. Change the direction of CFG
  8. Zoom in / Zoom out
  9. Download .ll files
  10. Query uploaded history from board page

✅ Architecture

┌── llvm-flow-backend
│   ├── backend
|   	   └ backend		# settings, urls
|   	   └ llvmcfg		# main fetures
|
├── llvm-flow-frontend
│   ├── src
|   	   └ components
|   	  	 └ modules	# common components
|   	  	 └ pages	# page components
|
└── Dockerfile


✅ Contribution

  • Please make a new branch instead of the current basic branch (ex. main) and work on it.
  • If there is an additional commit after the review, please proceed with the Re-request review!