awesome-llvm
A curated list of awesome LLVM (including Clang, etc) related resources.
https://github.com/learn-llvm/awesome-llvm
Last synced: 13 days ago
JSON representation
-
Starchart
- Star History Chart
- references
- its doxygen docs
- 2023
- discourse forum
- llvm-commits archives
- llvm-bugs archives
- LLVMProj @ YouTube - official account, including [LLVM devmeeting](http://llvm.org/devmtg/), EuroLLVM, etc
- Open Projects
- LLVM Community events calendar
- ChenWj's LLVM Wiki
- An Unofficial LLVM Website
- LLVM @ StackOverflow
- LLVM @ reddit
- GitHub LLVM topic
- LLVM documentation in hdoc
- ELLCC - Online LLVM Demo Page~~
- reference
- LLVM Bitcode File Format
- The Often Misunderstood GEP Instruction
- LLVM Programmer’s Manual - how to develop using LLVM infrastructure
- LLVM Developer Policy
- LLVM Style RTTI
- Source Level Debugging
- Create A Project
- Exception Handling in LLVM
- A Tour of ADT - the LLVM Developer's Toolbox
- CommandLine 2.0 Library Manual - LLVM's CLI option parser library, used by all LLVM CLI tools etc
- Getting Started with the LLVM System - LLVM project's build, configurations, directory layouts etc
- LLVM’s Analysis and Transform Passes
- Using the New Pass Manager - LLVM's new pass manager for optimization (both CLI and API changed)
- Writing an LLVM Pass
- LLVM Alias Analysis Infrastructure
- Tracing Memory Access With an LLVM Pass - a blog post details how to implement an LLVM Pass that allows for tracing memory access
- LLVM Testing Infrastructure Guide
- Writing an LLVM Backend
- LLVM Remarks - emit diagnostics describing whether an optimization is performed/missed
- LLVM FAQ - Frequently Asked Questions
- Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
- Get Started with the LLVM C API
- LLVM Tutorial Walkthrough - - Toby Ho's tutorial
- Introduction to the Low-Level Virtual Machine (LLVM) - UFMG's Compilers Lab's tutorial
- Understanding Compiler Optimization - Chandler Carruth's Opening Keynote Meeting C++ 2015
- Tools for Learning LLVM TableGen - tutorial by David Spickett about LLVM's [TableGen](https://github.com/llvm/llvm-project/tree/main/llvm/utils/TableGen)
- LLVM @ Google Scholar
- LLVM @ IEEEXplore
- LLVM @ DBLP
- Learn LLVM 12 - good to start with
- Getting Started with LLVM Core Libraries
- LLVM Cookbook
- LLVM Essentials
- LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries
- Engineering LLVM Backend
- reference
- opt - LLVM optimizer, for LLVM analysis and transformation passes, works on `.ll` or `.bc` files
- Core C++ 2021 :: opt-viewer: Inspecting compiler optimizations in high-level code
- LLVM Optimization Remarks - Ofek Shilon - CppCon 2022
- lli - Directly execute/intepreter programs from LLVM bitcode, running on `.ll` or `.bc` files
- llvm-dis - LLVM disassembler, from `.bc` to `.ll`
- llvm-as - LLVM assembler, from `.ll` to `.bc`
- llvm-link - LLVM bitcode linker, merge multiple `.bc`s/`.ll`s into one
- llvm-dwarfdump - Print contents of DWARF sections, `llvm-dwarfdump -a main.o`
- llvm-config - Print LLVM compilation options, e.g., `llvm-config --includedir`
- llvm-extract - Extract functions from an LLVM module
- llvm-bcanalyzer - LLVM bitcode analyzer, `llvm-bcanalyzer main.bc`
- llvm-objdump - LLVM's [objdump](https://en.wikipedia.org/wiki/Objdump), `llvm-objdump -a main.o`
- llvm-nm - LLVM's nm
- llvm-readelf - LLVM's [readelf](https://en.wikipedia.org/wiki/Readelf), `llvm-readelf -a main.o`
- llvm-readobj - LLVM object reader, `llvm-readobj --all main.o`
- llvm-diff - LLVM structural "diff"
- llc - LLVM static compiler, compile LLVM IR to native assembly, `llc main.ll -o main.s`
- llvm-ar - ranlib) - LLVM archiver
- lit - LLVM Integrated Tester, for testing purpose during development
- libc++ - LLVM's implementation of C++ standard library
- libc++abi - LLVM's C++ ABI library that provides an implementation of the library portion of the Itanium C++ ABI
- Compiler-RT - runtime libraries, including sanitizers, profiling utilities, etc
- MLIR - Multi-Level Intermediate Representation
- MLIR News - MLIR News issue on discourse
- Sparsifier - Google MLIR sparsifier
- intel/mlir-extensions - Intel® Extension for MLIR
- MLIR Is Not an ML Compiler, and Other Common Misconceptions
- libfuzzer - a library for coverage-guided fuzz testing
- LLD - LLVM's integrated linker, similar to [GNU ld](https://linux.die.net/man/1/ld) and [gold linker](https://en.wikipedia.org/wiki/Gold_(linker))
- LLVM Gold Linker plugin
- GDB to LLDB command map
- LLVM's libunwind - an implementation of the interface defined by the HP libunwind project
- Polly - LLVM Framework for High-Level Loop and Data-Locality Optimizations
- OpenMP in LLVM
- LLVM OpenMP @ discourse
- OpenCL C in LLVM - open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL C programming language
- BOLT - a post-link optimizer developed to speed up large applications
- reference
- Infer - Facebook's static analysis framework; C/C++/objc is based on LLVM/Clang
- ollvm - code obfuscation based on LLVM4.0
- S2E - Selective Symbolic Execution (use KLEE as symbolic executor)
- capstone - Disassembler based on the MC component of the LLVM compiler infrastructure
- here
- LLVM Rust crates - **Rust** bindings
- Swift
- GHC Haskell
- Julia
- Crystal
- mojo
- static-analysis - A curated list of static analysis tools and linters for all programming languages, config files, build tools, and more
- program analysis topics on GitHub
- awesome lists on GitHub
- List of tools for static code analysis (on Wikipedia)
- llvm-mca - LLVM Machine Code Analyzer
- ChenWj's LLVM Wiki
- A Gentle Introduction to LLVM IR
- Learn LLVM 17
- Opaque Pointers - Opaque pointer that was introduced in LLVM14 and fully deprecates typed pointers in LLVM17
- MLIR Workshop @ EuroLLVM 2024 - - topics with slides available, also [notes about MLIR at round table](https://discourse.llvm.org/t/notes-from-the-mlir-upstream-round-table-eurollvm-2024/78374)
- Working with MLIR
- 2023
- LLVMProj @ YouTube - official account, including [LLVM devmeeting](http://llvm.org/devmtg/), EuroLLVM, etc
- ELLCC - Online LLVM Demo Page~~
- Python Version of the LLVM Tutorial
- PSA: Instruction-constructors changing to iterator-only insertion - VSCode LLVM Compiler Explorer
- Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
- LLVM-Tutor - A collection of out-of-tree LLVM passes for teaching and learning
- learning-llvm - a project for learning about llvm
- LLVM-Pass-Analysis-Collection - A Collection of LLVM Pass for Program Analysis
- srg-llvm-pass-tutorial - A tutorial about llvm passes from [Software reliability group](http://srg.doc.ic.ac.uk/)
- Get Started with the LLVM C API
- lahiri-phdworks/LLVM-Examples - LLVM Repository and Code samples. LLVM Passes and quick bytes.
- wuzhanglin/llvm-IR-examples - Some examples for using LLVM to generate IR
- llvm-ir-tutorial
- Introduction to the Low-Level Virtual Machine (LLVM) - UFMG's Compilers Lab's tutorial
- LLVM @ ACM-DL
- LLVM @ IEEEXplore
- llvm/Torch-LLVM - first class support from the PyTorch ecosystem to the MLIR ecosystem
- llvm/Polygeist - C/C++ frontend for MLIR
- j2kun/mlir-tutorial - a series of articles on the MLIR framework for building compilers
- Lewuathe/mlir-hello - minimal Hello-World example of MLIR
- melior - The rustic MLIR bindings in Rust; see also [introduction blog post](https://edgarluque.com/blog/mlir-with-rust/)
- zincnode/mlir-he - standalone-template](https://github.com/jmgorius/mlir-standalone-template), [Lewuathe/mlir-hello](https://github.com/Lewuathe/mlir-hello)
- SVF-tools - Pointer Analysis and Program Dependence Analysis for C and C++ Programs
- smack - SMACK Software Verifier and Verification Toolchain
- Phasar - A LLVM-based static analysis framework
- mstorsjo/llvm-mingw - An LLVM/Clang/LLD based mingw-w64 toolchain
- microsoft/llvm-mctoll - statically (AOT) translates (or raises) binaries to LLVM IR
- whole-program-llvm - A wrapper script to build whole-program LLVM bitcode files; its go port [gllvm](https://github.com/SRI-CSL/gllvm)
- RetDec - a retargetable machine-code decompiler based on LLVM
- capstone - Disassembler based on the MC component of the LLVM compiler infrastructure
- DWGrep - A tool for querying Dwarf (debuginfo) graphs
- cling - The cling C++ interpreter ([1.0](https://github.com/vgvassilev/cling/releases/tag/v1.0) has been released)
- remill - Library for lifting machine code to LLVM bitcode
- llvm2cpg - LLVM meets Code Property Graphs
- QBDI - A Dynamic Binary Instrumentation framework based on LLVM
- circt - Circuit IR Compilers and Tools
- klee - Symbolic Virtual Machine
- IKOS - Static analyzer for C/C++ based on the theory of Abstract Interpretation.
- diffkemp - Static analysis of semantic differences in kernel versionsa
- GaloisInc/yapall - A precise and scalable pointer analysis for LLVM, written in Ascent
- google/souper - A superoptimizer for LLVM IR
- llvm2c - Decompiler of LLVM bitcode to C
- dr checker - A Soundy Vulnerability Detection Tool for Linux Kernel Drivers
- DG - Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode
- llvm-crash-analyzer - - crash analysis against coredump files based on LLVM Machine-IR, together with LLDB
- seahorn/clam - a static analyzer (CLI) based on [seahorn/crab](https://github.com/seahorn/crab), the latter of which is abstract Interpretation-based library
- llvm-pass-skeleton - example LLVM pass
- llvmlite - A lightweight LLVM **python** binding for writing JIT compilers
- go-llvm - **Go** binding
- Swift
- scala-native
- ldc
- codon
- numba
- Ola - a toy language, for learning LLVM-backend codegen
- go-llvm
- awesome-llvm-security - awesome llvm security projects
- dynamic-analysis - A curated list of dynamic analysis tools and linters for all programming languages, binaries, and more
- LLVM-Guide
- LLVM @ DBLP
- DWGrep - A tool for querying Dwarf (debuginfo) graphs
- LLVM Essentials
- ELLCC - Online LLVM Demo Page~~
- solang
- LLVM Community events calendar
- ELLCC - Online LLVM Demo Page~~
- Emscripten - An LLVM-to-JavaScript Compiler
- American fuzzy lop (AFL) - LLVM mode for instrumentation
- Learn LLVM 17
- Star History Chart
- LLVM Community events calendar
- LLVM Style RTTI
- Create A Project
- LLVM Tutorial Walkthrough - - Toby Ho's tutorial
- Introduction to the Low-Level Virtual Machine (LLVM) - UFMG's Compilers Lab's tutorial
- reference
- opt - LLVM optimizer, for LLVM analysis and transformation passes, works on `.ll` or `.bc` files
- llvm-dis - LLVM disassembler, from `.bc` to `.ll`
- llvm-as - LLVM assembler, from `.ll` to `.bc`
- llvm-link - LLVM bitcode linker, merge multiple `.bc`s/`.ll`s into one
- llvm-dwarfdump - Print contents of DWARF sections, `llvm-dwarfdump -a main.o`
- llvm-config - Print LLVM compilation options, e.g., `llvm-config --includedir`
- llvm-extract - Extract functions from an LLVM module
Programming Languages
Categories
Sub Categories
Keywords
llvm
22
compiler
8
static-analysis
8
mlir
6
llvm-ir
6
program-analysis
4
c
4
clang
3
static-code-analysis
3
analysis
3
jit
2
tutorial
2
rust
2
parallel-programming
2
x86-64
2
llvm-pass
2
compilers
2
python
2
numpy
2
code-quality
2
pointer-analysis
2
cpp
2
points-to-analysis
2
static-analyzer
2
reverse-engineering
2
c-plus-plus
2
software-verification
2
abstract-interpretation
2
verifier
1
slice
1
backward-slice
1
reaching-definitions
1
backward-slicing
1
slicing
1
control-dependency
1
data-dependency
1
dependence-graph
1
dependency-graph
1
llvm-bitcode
1
code-security
1
llvm-slicer
1
code-analysis
1
awesome-list
1
linter
1
sast
1
static-analyzers
1
java
1
objective-c
1
interpreter
1
jupyter
1