cparser
libfirm
cparser | libfirm | |
---|---|---|
2 | 2 | |
320 | 455 | |
1.3% | 1.8% | |
4.6 | 5.2 | |
6 months ago | 6 months ago | |
C | C | |
GNU General Public License v3.0 only | GNU Lesser 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.
cparser
-
Compiling History: A brief tour of C compilers
> QBE is a new optimizing backend much simpler than LLVM; cproc and cparser are two of the C compilers that target it, in addition to its own minic.
I thought cparser targeted libFirm. That's what their GitHub page says [0].
"It acts as a frontend to the libFirm intermediate representation library."
> We really need a production quality open source C compiler that is actually written in C.
I honestly think cproc or cparser are almost there already. For cproc, you just need to improve the quality of code optimization; it's really QBE you'd need to change. For example, you could change unnecessary multiplications by powers of 2 into left shifts, improve instruction selection so that subtraction is always something like "sub rax, rdi" and not "neg rdi / add rax, rdi" [1]).
For cparser, I notice slightly higher quality codegen; libFirm just needs more architecture support (e.g. AMD64 support appears to work for me, but it's labeled as experimental).
[0]: https://github.com/libfirm/cparser
[1]: I'm pretty sure this is the line of code that generates it, too: https://c9x.me/git/qbe.git/tree/amd64/emit.c#n418
- Cparser – A C99 parser (with GNU extensions) (2020)
libfirm
-
Do you consider LLVM a complicated software? And are there any alternatives and how they compare to LLVM?
An alternative: LibFirm but it's much simpler and feature-poor.
-
Suggestion for a backend?
libFirm.
What are some alternatives?
honey-potion - Writing eBPF programs with Elixir!
mir - A lightweight JIT compiler based on MIR (Medium Internal Representation) and C11 JIT compiler and interpreter based on MIR
pg_plan_advsr - PostgreSQL extension for automated execution plan tuning
libass - libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
qbe-rs - QBE IR in natural Rust data structures
cru - co-recursion utilities
wasmtime - A fast and secure runtime for WebAssembly
METIS - METIS - Serial Graph Partitioning and Fill-reducing Matrix Ordering