{"id":13622360,"url":"https://github.com/learn-llvm/awesome-llvm","last_synced_at":"2025-04-05T03:12:44.900Z","repository":{"id":25812074,"uuid":"29251104","full_name":"learn-llvm/awesome-llvm","owner":"learn-llvm","description":"A curated list of awesome LLVM (including Clang, etc) related resources.","archived":false,"fork":false,"pushed_at":"2024-06-11T09:00:20.000Z","size":403,"stargazers_count":521,"open_issues_count":1,"forks_count":40,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-10-29T17:31:52.544Z","etag":null,"topics":["awesome-list","clang","compilers","llvm","llvm-tutorial","program-analysis"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/learn-llvm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-14T15:36:14.000Z","updated_at":"2024-10-29T12:19:54.000Z","dependencies_parsed_at":"2023-10-12T12:25:17.449Z","dependency_job_id":"48d9e493-d578-4659-862e-41fd0b7b0bb6","html_url":"https://github.com/learn-llvm/awesome-llvm","commit_stats":null,"previous_names":["hongxuchen/awesome-llvm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learn-llvm%2Fawesome-llvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learn-llvm%2Fawesome-llvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learn-llvm%2Fawesome-llvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learn-llvm%2Fawesome-llvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/learn-llvm","download_url":"https://codeload.github.com/learn-llvm/awesome-llvm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome-list","clang","compilers","llvm","llvm-tutorial","program-analysis"],"created_at":"2024-08-01T21:01:18.115Z","updated_at":"2025-04-05T03:12:44.885Z","avatar_url":"https://github.com/learn-llvm.png","language":"Python","readme":"Awesome LLVM [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n------\n\nThis repo includes LLVM-related projects, websites, docs, and other resources. Only well-maintained resources are included; PRs are welcome.\nThis README.md itself mostly records **LLVM backend** (as well as mixed) resources; for **Clang**-specific ones, please check **[Clang.md](./Clang.md)** in this repo.\n\n## Starchart\n\n![Star History Chart](https://api.star-history.com/svg?repos=learn-llvm/awesome-llvm\u0026type=Date)\n\n# Websites([references](https://llvm.org/docs/GettingInvolved.html))\n- 🐉 http://llvm.org/, and [its doxygen docs](https://llvm.org/doxygen/index.html)\n- 🐉 https://llvm.org/devmtg/ - LLVM Developers' Meeting and other events\n  - 📹 [2023](https://www.youtube.com/playlist?list=PL_R5A0lGi1AD9nPVlv7mG8_2mMSiL_0Ik)\n- 🐉 http://blog.llvm.org/ - official blog\n- 🐉 [discourse forum](https://discourse.llvm.org/)\n- 🐉 [llvm-commits archives](https://lists.llvm.org/pipermail/llvm-commits/)\n- 🐉 [llvm-bugs archives](https://lists.llvm.org/pipermail/llvm-bugs/)\n- 🐉 [LLVMProj @ YouTube](https://www.youtube.com/@LLVMPROJ/videos?view=0\u0026sort=dd\u0026shelf_id=0) - official account, including [LLVM devmeeting](http://llvm.org/devmtg/), EuroLLVM, etc\n- 🐉 [Open Projects](https://llvm.org/OpenProjects.html)\n- 🐉 [LLVM Community events calendar](https://calendar.google.com/calendar/u/0/embed?src=calendar@llvm.org)\n- [llvm-weekly](http://llvmweekly.org/) and its [Mastodon page](https://fosstodon.org/@llvmweekly) by [Alex Bradbury](https://fosstodon.org/@asb)\n- [The Architecture of Open Source Applications - LLVM](http://www.aosabook.org/en/llvm.html)\n- [Eli Bendersky's website](http://eli.thegreenplace.net/)\n- [ChenWj's LLVM Wiki](http://people.cs.nctu.edu.tw/~chenwj/dokuwiki/doku.php?id=llvm)(Traditional Chinese)\n- [An Unofficial LLVM Website](http://llvm.lyngvig.org/Articles/)\n- [LLVM @ StackOverflow](http://stackoverflow.com/questions/tagged/llvm)\n- [LLVM @ reddit](https://www.reddit.com/r/LLVM/)\n- [GitHub LLVM topic](https://github.com/topics/llvm)\n- [LLVM documentation in hdoc](https://docs.hdoc.io/hdoc/llvm-project/functions.html)\n- ~~[ELLCC](http://ellcc.org/demo/index.cgi) - Online LLVM Demo Page~~\n\n# Tutorials/Documentation ([reference](http://llvm.org/docs/index.html))\n- 🐉 [LLVM Tutorials](http://llvm.org/docs/tutorial/index.html) - a list of tutorials\n  - :octocat: [Python Version of the LLVM Tutorial](https://github.com/eliben/pykaleidoscope)\n- 🐉 [LLVM Language Reference Manual](http://llvm.org/docs/LangRef.html) - detailed docs for LLVM IR/Bitcode\n  - 🐉 [LLVM Bitcode File Format](http://llvm.org/docs/BitCodeFormat.html)\n  - 🐉 [The Often Misunderstood GEP Instruction](http://llvm.org/docs/GetElementPtr.html)\n  - 🐉 [Opaque Pointers](https://llvm.org/docs/OpaquePointers.html) - Opaque pointer that was introduced in LLVM14 and fully deprecates typed pointers in LLVM17\n  - [A Gentle Introduction to LLVM IR](https://mcyoung.xyz/2023/08/01/llvm-ir/), with a [Chinese translation version](TODO)\n  - :octocat: [PSA: Instruction-constructors changing to iterator-only insertion](https://github.com/sunxfancy/vscode-llvm) - VSCode LLVM Compiler Explorer\n- 🐉 [LLVM Programmer’s Manual](http://llvm.org/docs/ProgrammersManual.html) - how to develop using LLVM infrastructure\n  - 🐉 [LLVM Coding Standards](http://llvm.org/docs/CodingStandards.html)\n  - 🐉 [LLVM Developer Policy](http://llvm.org/docs/DeveloperPolicy.html)\n  - 🐉 [LLVM Style RTTI](http://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html)\n  - 🐉 [Source Level Debugging](http://llvm.org/docs/SourceLevelDebugging.html)\n  - 🐉 [Create A Project](http://llvm.org/docs/Projects.html)\n  - 🐉 [Exception Handling in LLVM](http://llvm.org/docs/ExceptionHandling.html)\n  - 🐉 [](https://discourse.llvm.org/t/psa-instruction-constructors-changing-to-iterator-only-insertion/77845)\n  - 📹 [A Tour of ADT - the LLVM Developer's Toolbox](https://www.youtube.com/watch?v=owQlnNYek2o\u0026list=PL_R5A0lGi1AD9nPVlv7mG8_2mMSiL_0Ik\u0026index=26)\n- 🐉 [CommandLine 2.0 Library Manual](http://llvm.org/docs/CommandLine.html) - LLVM's CLI option parser library, used by all LLVM CLI tools etc\n- 🐉 [Getting Started with the LLVM System](http://llvm.org/docs/GettingStarted.html) - LLVM project's build, configurations, directory layouts etc\n- 🐉 [LLVM’s Analysis and Transform Passes](http://llvm.org/docs/Passes.html)\n  - 🐉 [Using the New Pass Manager](https://llvm.org/docs/NewPassManager.html) - LLVM's new pass manager for optimization (both CLI and API changed)\n  - 🐉 [Writing an LLVM Pass](http://llvm.org/docs/WritingAnLLVMPass.html)\n  - 🐉 [LLVM Alias Analysis Infrastructure](http://llvm.org/docs/AliasAnalysis.html)\n  - [Tracing Memory Access With an LLVM Pass](https://www.bitsand.cloud/posts/llvm-pass/) - a blog post details how to implement an LLVM Pass that allows for tracing memory access\n- 🐉 [LLVM Testing Infrastructure Guide](http://llvm.org/docs/TestingGuide.html)\n- 🐉 [Writing an LLVM Backend](http://llvm.org/docs/WritingAnLLVMBackend.html)\n- 🐉 [LLVM Remarks](https://llvm.org/docs/Remarks.html) - emit diagnostics describing whether an optimization is performed/missed\n- 🐉 [LLVM FAQ](http://llvm.org/docs/FAQ.html) - Frequently Asked Questions\n- :octocat: [Sanitizers](docs/sanitizers) - AddressSanitizer, MemorySanitizer, ThreadSanitizer, UndefinedBehaviorSanitizer, LeakSanitizer, etc\n- :octocat: [Tutorial: Creating an LLVM Backend for the Cpu0 Architecture](http://jonathan2251.github.io/lbd/index.html)\n- :octocat: [LLVM-Tutor](https://github.com/banach-space/llvm-tutor) - A collection of out-of-tree LLVM passes for teaching and learning\n- :octocat: [learning-llvm](https://github.com/danbev/learning-llvm) - a project for learning about llvm\n- :octocat: [LLVM-Pass-Analysis-Collection](https://github.com/JohannesLiu/LLVM-Pass-Analysis-Collection) - A Collection of LLVM Pass for Program Analysis\n- :octocat: [srg-llvm-pass-tutorial](https://github.com/delcypher/srg-llvm-pass-tutorial) - A tutorial about llvm passes from [Software reliability group](http://srg.doc.ic.ac.uk/)\n- 📃 [Get Started with the LLVM C API](https://pauladamsmith.com/blog/2015/01/how-to-get-started-with-llvm-c-api.html)\n- :octocat: [lahiri-phdworks/LLVM-Examples](https://github.com/lahiri-phdworks/LLVM-Examples) - LLVM Repository and Code samples. LLVM Passes and quick bytes.\n- :octocat: [wuzhanglin/llvm-IR-examples](https://github.com/wuzhanglin/llvm-IR-examples) - Some examples for using LLVM to generate IR\n- :octocat: [llvm-ir-tutorial](https://github.com/Evian-Zhang/llvm-ir-tutorial) (in Chinese)\n- 📹 [LLVM Tutorial Walkthrough](https://www.youtube.com/watch?v=09EAVa7BAp4\u0026list=PLSq9OFrD2Q3ChEc_ejnBcO5u9JeT0ufkg) -- Toby Ho's tutorial\n- 📹 [Introduction to the Low-Level Virtual Machine (LLVM)](https://www.youtube.com/playlist?list=PLDSTpI7ZVmVnvqtebWnnI8YeB8bJoGOyv) - UFMG's Compilers Lab's tutorial\n- 📹 [Understanding Compiler Optimization](https://www.youtube.com/watch?v=FnGCDLhaxKU\u0026t=59s) - Chandler Carruth's Opening Keynote Meeting C++ 2015\n- 🐉 [Tools for Learning LLVM TableGen](https://blog.llvm.org/posts/2023-12-07-tools-for-learning-llvm-tablegen/) - tutorial by David Spickett about LLVM's [TableGen](https://github.com/llvm/llvm-project/tree/main/llvm/utils/TableGen)\n\n# Publications\n- http://llvm.org/pubs/\n- [LLVM @ Google Scholar](https://scholar.google.com/scholar?hl=en\u0026q=llvm)\n- [LLVM @ ACM-DL](https://dl.acm.org/action/doSearch?fillQuickSearch=false\u0026target=advanced\u0026expand=dl\u0026field1=AllField\u0026text1=llvm)\n- [LLVM @ IEEEXplore](http://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true\u0026queryText=llvm)\n- [LLVM @ DBLP](http://dblp.org/search/#query=llvm)\n- 📖 [Learn LLVM 12](https://www.amazon.com/Learn-LLVM-12-beginners-libraries/dp/1839213507/ref=sr_1_1) - good to start with\n- 📖 [Learn LLVM 17](https://www.packtpub.com/product/learn-llvm-17-second-edition/9781837631346) Second Edition\n- 📖 [Getting Started with LLVM Core Libraries](https://www.amazon.com/Getting-Started-LLVM-Core-Libraries/dp/1782166920), also available on [ACM library](https://dl.acm.org/citation.cfm?id=2692607)\n- 📖 [LLVM Cookbook](https://www.amazon.com/LLVM-Cookbook-Mayur-Pandey/dp/178528598X)\n- 📖 [LLVM Essentials](https://www.amazon.com/LLVM-Essentials-Suyog-Sarda/dp/1785280805/)\n- 📖 [LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries](https://www.amazon.com/Techniques-Practices-Clang-Middle-End-Libraries/dp/1838824952)\n- 📖 [Engineering LLVM Backend](https://www.amazon.com/Engineering-LLVM-Backend-next-generation-accelerator-ebook/dp/B0BBRF69XL/ref=sr_1_15)\n\n# Official Tools/Libraries ([reference](http://llvm.org/docs/CommandGuide/index.html))\n- Core Utilities\n  - [opt](http://llvm.org/docs/CommandGuide/opt.html) - LLVM optimizer, for LLVM analysis and transformation passes, works on `.ll` or `.bc` files\n    - 📹 [Core C++ 2021 :: opt-viewer: Inspecting compiler optimizations in high-level code](https://www.youtube.com/watch?v=BJ_yxTmZQbc)\n    - 📹 [LLVM Optimization Remarks - Ofek Shilon - CppCon 2022](https://www.youtube.com/watch?v=qmEsx4MbKoc)\n  - [lli](https://llvm.org/docs/CommandGuide/lli.html) - Directly execute/intepreter programs from LLVM bitcode, running on `.ll` or `.bc` files\n  - [llvm-dis](http://llvm.org/docs/CommandGuide/llvm-dis.html) - LLVM disassembler, from `.bc` to `.ll`\n  - [llvm-as](http://llvm.org/docs/CommandGuide/llvm-as.html) - LLVM assembler, from `.ll` to `.bc`\n  - [llvm-link](http://llvm.org/docs/CommandGuide/llvm-link.html) - LLVM bitcode linker, merge multiple `.bc`s/`.ll`s into one\n  - [llvm-dwarfdump](http://llvm.org/docs/CommandGuide/llvm-dwarfdump.html) - Print contents of DWARF sections, `llvm-dwarfdump -a main.o`\n  - [llvm-config](http://llvm.org/docs/CommandGuide/llvm-config.html) - Print LLVM compilation options, e.g., `llvm-config --includedir`\n  - [llvm-extract](http://llvm.org/docs/CommandGuide/llvm-extract.html) - Extract functions from an LLVM module\n  - [llvm-bcanalyzer](http://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html) - LLVM bitcode analyzer, `llvm-bcanalyzer main.bc`\n  - [llvm-objdump](http://llvm.org/docs/CommandGuide/llvm-objdump.html) - LLVM's [objdump](https://en.wikipedia.org/wiki/Objdump), `llvm-objdump -a main.o`\n  - [llvm-nm](http://llvm.org/docs/CommandGuide/llvm-nm.html) - LLVM's nm\n  - [llvm-readelf](https://llvm.org/docs/CommandGuide/llvm-readelf.html) - LLVM's [readelf](https://en.wikipedia.org/wiki/Readelf), `llvm-readelf -a main.o`\n  - [llvm-readobj](http://llvm.org/docs/CommandGuide/llvm-readobj.html) - LLVM object reader, `llvm-readobj --all main.o`\n  - [llvm-diff](http://llvm.org/docs/CommandGuide/llvm-diff.html) - LLVM structural \"diff\"\n  - [llc](http://llvm.org/docs/CommandGuide/llc.html) -  LLVM static compiler, compile LLVM IR to native assembly,  `llc main.ll -o main.s`\n  - [llvm-ar](http://llvm.org/docs/CommandGuide/llvm-ar.html)(llvm-ranlib) - LLVM archiver\n  - [llvm-mca](https://llvm.org/docs/CommandGuide/llvm-mca.html) - LLVM Machine Code Analyzer\n  - [lit](http://llvm.org/docs/CommandGuide/lit.html) - LLVM Integrated Tester, for testing purpose during development\n- [libc++](https://libcxx.llvm.org/) - LLVM's implementation of C++ standard library\n- [libc++abi](https://libcxxabi.llvm.org/) - LLVM's C++ ABI library that provides an implementation of the library portion of the Itanium C++ ABI\n- [Compiler-RT](https://compiler-rt.llvm.org/) - runtime libraries, including sanitizers, profiling utilities, etc\n- [MLIR](https://mlir.llvm.org/) - Multi-Level Intermediate Representation\n  - 🐉 [MLIR News](https://discourse.llvm.org/c/mlir/mlir-news-mlir-newsletter/) - MLIR News issue on discourse\n  - 🐉 [](https://discourse.llvm.org/t/rfc-a-new-tutorial-mlir-for-beginners/78273)\n  - :octocat: [llvm/Torch-LLVM](https://github.com/llvm/torch-mlir) - first class support from the PyTorch ecosystem to the MLIR ecosystem\n  - :octocat: [llvm/Polygeist](https://github.com/llvm/Polygeist) - C/C++ frontend for MLIR\n  - :octocat: [j2kun/mlir-tutorial](https://github.com/j2kun/mlir-tutorial) - a series of articles on the MLIR framework for building compilers\n  - :octocat: [Lewuathe/mlir-hello](https://github.com/Lewuathe/mlir-hello) - minimal Hello-World example of MLIR\n  - :octocat: [melior](https://github.com/edg-l/melior) - The rustic MLIR bindings in Rust; see also [introduction blog post](https://edgarluque.com/blog/mlir-with-rust/)\n  - :octocat: [Sparsifier](https://developers.google.com/mlir-sparsifier) - Google MLIR sparsifier\n  - :octocat: [intel/mlir-extensions](https://github.com/intel/mlir-extensions/tree/main) - Intel® Extension for MLIR\n  - [MLIR Workshop @ EuroLLVM 2024](https://discourse.llvm.org/t/cfp-mlir-workshop-at-the-eurollvm-developer-meeting-apr-9-2024/76987) -- 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)\n  - 📹 [MLIR Is Not an ML Compiler, and Other Common Misconceptions](https://www.youtube.com/watch?v=lXAp6ZAWyBY\u0026list=PL_R5A0lGi1AD9nPVlv7mG8_2mMSiL_0Ik\u0026index=25)\n  - out-of-tree MLIR project templates: [zincnode/mlir-he](https://github.com/zincnode/mlir-he), [jmgorius/mlir-standalone-template](https://github.com/jmgorius/mlir-standalone-template), [Lewuathe/mlir-hello](https://github.com/Lewuathe/mlir-hello)\n  - [Working with MLIR](https://makslevental.github.io/working-with-mlir/)\n- [libfuzzer](https://llvm.org/docs/LibFuzzer.html) - a library for coverage-guided fuzz testing\n- [LLD](https://lld.llvm.org/) - 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))\n  - relevant: [LLVM Gold Linker plugin](https://llvm.org/docs/GoldPlugin.html)\n- [LLDB](http://lldb.llvm.org/) - LLVM's LLDB Debugger\n  - 🐉 [GDB to LLDB command map](https://lldb.llvm.org/use/map.html)\n- [LLVM's libunwind](https://bcain-llvm.readthedocs.io/projects/libunwind/en/latest/) - an implementation of the interface defined by the HP libunwind project\n- [Polly](http://polly.llvm.org/) - LLVM Framework for High-Level Loop and Data-Locality Optimizations\n- [OpenMP in LLVM](https://openmp.llvm.org/)\n  - 🐉 [LLVM OpenMP @ discourse](https://discourse.llvm.org/c/runtimes/openmp/35)\n- [OpenCL C in LLVM](https://libclc.llvm.org/) - open source, BSD/MIT dual licensed implementation of the library requirements of the OpenCL C programming language\n- [BOLT](https://github.com/llvm/llvm-project/blob/main/bolt/README.md) - a post-link optimizer developed to speed up large applications\n\n# Unofficial Tools/Libraries ([reference](http://llvm.org/ProjectsWithLLVM/))\n- [SVF-tools](https://github.com/SVF-tools/SVF) - Pointer Analysis and Program Dependence Analysis for C and C++ Programs\n- [smack](https://github.com/smackers/smack) - SMACK Software Verifier and Verification Toolchain\n- [Phasar](https://github.com/secure-software-engineering/phasar) - A LLVM-based static analysis framework\n- [Infer](https://github.com/facebook/infer) - Facebook's static analysis framework; C/C++/objc is based on LLVM/Clang\n- [mstorsjo/llvm-mingw](https://github.com/mstorsjo/llvm-mingw) - An LLVM/Clang/LLD based mingw-w64 toolchain\n- [microsoft/llvm-mctoll](https://github.com/microsoft/llvm-mctoll) - statically (AOT) translates (or raises) binaries to LLVM IR\n- [mcsema](https://github.com/trailofbits/mcsema) - An x86 to LLVM IR decompiler\n- [whole-program-llvm](https://github.com/travitch/whole-program-llvm) - A wrapper script to build whole-program LLVM bitcode files; its go port [gllvm](https://github.com/SRI-CSL/gllvm)\n- [ollvm](https://github.com/obfuscator-llvm/obfuscator/wiki) - code obfuscation based on LLVM4.0\n- [S2E](https://github.com/s2e) - Selective Symbolic Execution (use KLEE as symbolic executor)\n- [RetDec](https://github.com/avast/retdec) - a retargetable machine-code decompiler based on LLVM\n- [capstone](http://www.capstone-engine.org/beyond_llvm.html) - Disassembler based on the MC component of the LLVM compiler infrastructure\n- [DWGrep](http://pmachata.github.io/dwgrep/) - A tool for querying Dwarf (debuginfo) graphs\n- [Emscripten](https://github.com/kripken/emscripten) - An LLVM-to-JavaScript Compiler\n- [cling](https://github.com/root-project/cling) - The cling C++ interpreter ([1.0](https://github.com/vgvassilev/cling/releases/tag/v1.0) has been released)\n- [remill](https://github.com/lifting-bits/remill) - Library for lifting machine code to LLVM bitcode\n- [llvm2cpg](https://github.com/ShiftLeftSecurity/llvm2cpg) - LLVM meets Code Property Graphs\n- [QBDI](https://github.com/QBDI/QBDI) - A Dynamic Binary Instrumentation framework based on LLVM\n- [circt](https://github.com/llvm/circt) - Circuit IR Compilers and Tools\n- [American fuzzy lop (AFL)](http://lcamtuf.coredump.cx/afl/) - LLVM mode for instrumentation\n- [klee](https://github.com/klee/klee) - Symbolic Virtual Machine\n- [IKOS](https://github.com/nasa-sw-vnv/ikos) - Static analyzer for C/C++ based on the theory of Abstract Interpretation.\n- [diffkemp](https://github.com/viktormalik/diffkemp) - Static analysis of semantic differences in kernel versionsa\n- [GaloisInc/yapall](https://github.com/GaloisInc/yapall) - A precise and scalable pointer analysis for LLVM, written in Ascent\n- [llvm2c](https://github.com/staticafi/llvm2c) - Decompiler of LLVM bitcode to C\n- [dr checker](https://github.com/ucsb-seclab/dr_checker) - A Soundy Vulnerability Detection Tool for Linux Kernel Drivers\n- [DG](https://github.com/mchalupa/dg) -  Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode\n  - dg can integrate SVF, see [here](https://github.com/mchalupa/dg/blob/master/doc/SVF.md) for details\n- [llvm-crash-analyzer](https://github.com/cisco-open/llvm-crash-analyzer) -- crash analysis against coredump files based on LLVM Machine-IR, together with LLDB\n- [seahorn/clam](https://github.com/seahorn/clam) - a static analyzer (CLI) based on [seahorn/crab](https://github.com/seahorn/crab), the latter of which is abstract Interpretation-based library\n\n# Bindings\n- [llvmlite](https://github.com/numba/llvmlite) - A lightweight LLVM **python** binding for writing JIT compilers\n- [LLVM Rust crates](https://crates.io/search?q=llvm) - **Rust** bindings\n- [go-llvm](https://github.com/tinygo-org/go-llvm) - **Go** binding\n\n# LLVM-backed Languages\n- C/C++/ObjC/ObjC++\n- [Swift](https://developer.apple.com/swift/)\n- [GHC Haskell](https://www.haskell.org/ghc/)\n- [Rust](https://www.rust-lang.org)\n- [Julia](https://julialang.org/)\n- [scala-native](https://github.com/scala-native/scala-native)\n- [ldc](https://github.com/ldc-developers/ldc)\n- [Crystal](https://crystal-lang.org/)\n- [codon](https://github.com/exaloop/codon)\n- [numba](https://github.com/numba/numba)\n- [mojo](https://docs.modular.com/)\n- [solang](https://github.com/hyperledger/solang)\n- [Ola](https://github.com/mateeeeeee/Ola) - a toy language, for learning LLVM-backend codegen\n- ~~[go-llvm](https://github.com/go-llvm/llgo)~~\n\n# Setup\n- ⚙️ [LLVM Debian/Ubuntu nightly packages](http://apt.llvm.org/) - Debian APT sources\n- ⚙️ [Mac OS Homebrew Formula]([https://github.com/Homebrew/homebrew-core/blob/master/Formula/llvm.rb](https://github.com/Homebrew/homebrew-core/blob/master/Formula/l/llvm.rb)) - HomeBrew's LLVM formula\n\n# Other relevant resources:\n* :octocat: [awesome-llvm-security](https://github.com/gmh5225/awesome-llvm-security) - awesome llvm security projects\n* :octocat: [static-analysis](https://github.com/analysis-tools-dev/static-analysis) - A curated list of static analysis tools and linters for all programming languages, config files, build tools, and more\n* :octocat: [dynamic-analysis](https://github.com/analysis-tools-dev/dynamic-analysis) - A curated list of dynamic analysis tools and linters for all programming languages, binaries, and more\n* :octocat: [LLVM-Guide](https://github.com/mikeroyal/LLVM-Guide)\n* :octocat: [program analysis topics on GitHub](https://github.com/topics/program-analysis)\n* :octocat: other [awesome lists on GitHub](https://github.com/topics/awesome)\n* [List of tools for static code analysis (on Wikipedia)](https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis)\n","funding_links":[],"categories":["Python","Other Lists"],"sub_categories":["TeX Lists"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearn-llvm%2Fawesome-llvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearn-llvm%2Fawesome-llvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearn-llvm%2Fawesome-llvm/lists"}