clangir
demangle-mode
clangir | demangle-mode | |
---|---|---|
2 | 1 | |
287 | 19 | |
3.5% | - | |
10.0 | 10.0 | |
9 days ago | almost 3 years ago | |
Emacs Lisp | ||
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
clangir
-
Decoding C/C++ Compilation Process: From Source Code to Binary
It could be cool to see some explanation of CFG representations or GIMPLE/LLVM here. GCC/Clang can print those out as text, or just compile to that code and not go lower if you ask them to. There are some interesting things you can do with bytecode, like Rellic, AFL++, or optview2. It seems a bit reductive imo to go straight from high-level code to disassembly without at all examining any layers in between. Especially if we use something like Polygeist or CIR.
-
Compilers and IRS: LLVM IR, SPIR-V, and MLIR
I'm also curious, especially they seem to be gearing towards analysis as well.
https://github.com/llvm/clangir/blob/main/clang/lib/CIR/Dial...
demangle-mode
-
Decoding C/C++ Compilation Process: From Source Code to Binary
GDB can demangle C++ symbols, it just doesn't by default. I love demangle-mode in Emacs, because I can compose it with any other tools like an ELF viewer, linker output, or an integrated terminal and easily toggle the minor mode off and on.
What are some alternatives?
vast - VAST is an experimental compiler pipeline designed for program analysis of C and C++. It provides a tower of IRs as MLIR dialects to choose the best fit representations for a program analysis or further program abstraction.
optview2 - User-oriented fork of LLVM's opt-viewer
Polygeist - C/C++ frontend for MLIR. Also features polyhedral optimizations, parallel optimizations, and more!
checkedc-llvm-project - This repo contains a version of clang that is modified to support Checked C. Checked C is an extension to C that lets programmers write C code with bounds checking and improved type-safety.
codegena - Codegeneration tool
AFLplusplus - The fuzzer afl++ is afl with community patches, qemu 5.1 upgrade, collision-free coverage, enhanced laf-intel & redqueen, AFLfast++ power schedules, MOpt mutators, unicorn_mode, and a lot more!