banach-space/llvm-tutor

A collection of out-of-tree LLVM passes for teaching and learning

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 11 minutes ago
Added to GitGenius on September 20th, 2026
Created on March 25th, 2019
Open Issues & Pull Requests: 14 (+0)
GitHub issues: Enabled
Number of forks: 451
Total Stargazers: 3,435 (+0)
Total Subscribers: 48 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 206 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

llvm-tutor is a collection of out-of-tree LLVM passes designed for teaching and learning compiler development.

The project addresses the challenge of learning LLVM's rich but complex API by providing self-contained, reference implementations of LLVM passes. Rather than requiring developers to build LLVM from source or navigate the full compiler codebase, llvm-tutor demonstrates idiomatic LLVM patterns through standalone passes that can be built against a binary LLVM installation. Each pass is accompanied by comprehensive documentation, CMake build scripts, LIT tests, and CI configuration, making the learning path concrete and testable.

Developers new to LLVM or those wanting to understand how to write custom passes should choose this project. It suits anyone building compiler extensions or optimization passes who needs working examples with clear explanations. The project is kept current with the latest LLVM releases, ensuring that the patterns taught remain relevant. For those interested in similar tutorials targeting Clang rather than LLVM, the README references a companion project.

The project maintains active CI workflows across multiple platforms including Apple Silicon and x86 Ubuntu systems, indicating ongoing testing and compatibility verification. Development activity shows consistent updates to align with new LLVM releases, demonstrating a commitment to keeping the tutorial material current with the compiler infrastructure it teaches.