Skip to content

learn-llvm/awesome-llvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Awesome LLVM Awesome

This repo includes LLVM-related projects, websites, docs, and other resources. Only well-maintained resources are included; PRs are welcome. This README.md itself mostly records LLVM backend (as well as mixed) resources; for Clang-specific ones, please check Clang.md in this repo.

Starchart

Star History Chart

Websites(references)

Tutorials/Documentation (reference)

Publications

Official Tools/Libraries (reference)

Unofficial Tools/Libraries (reference)

  • 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
  • Infer - Facebook's static analysis framework; C/C++/objc is based on LLVM/Clang
  • mstorsjo/llvm-mingw - An LLVM/Clang/LLD based mingw-w64 toolchain
  • microsoft/llvm-mctoll - statically (AOT) translates (or raises) binaries to LLVM IR
  • mcsema - An x86 to LLVM IR decompiler
  • whole-program-llvm - A wrapper script to build whole-program LLVM bitcode files; its go port gllvm
  • ollvm - code obfuscation based on LLVM4.0
  • S2E - Selective Symbolic Execution (use KLEE as symbolic executor)
  • 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
  • Emscripten - An LLVM-to-JavaScript Compiler
  • cling - The cling C++ interpreter (1.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
  • American fuzzy lop (AFL) - LLVM mode for instrumentation
  • 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
  • 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
    • dg can integrate SVF, see here for details
  • 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, the latter of which is abstract Interpretation-based library

Bindings

LLVM-backed Languages

Setup

Other relevant resources: