anthropics / anthropics/claudes-c-compiler
[LICENSING] The resulting code has traces of 'inspiration' from LLVM
- Dominant language
- Rust
- Stars
- 2.8k
- Forks
- 247
- PR merge metrics
- No merged PRs in 30d
Description
I just took a 10-minute-worth look at the directory structure and a couple of source files. One of my conclusions is that the IR has traces of LLVM-inspired constructs; specifically,
- [`getelementptr`](https://github.com/anthropics/claudes-c-compiler/blob/main/src/ir/instruction.rs#L142). Those of us in the compiler industry know that `getelementptr` is a very unique feature of LLVM IR, not present in other IR-like representations (e.g. [GIMPLE](https://gcc.gnu.org/onlinedocs/gccint/GIMPLE.html)). See [DuckDuckGo search](https://duckduckgo.com/?t=ffab&q=getelementptr&ia=web) for confirmation.
- In the same line, the plain-text notation for IR instructions seems derived from LLVM (see [LLVM IR documentation](https://llvm.org/docs/LangRef.html#identifiers) for syntax. This seems to be evident in [this comment](https://github.com/anthropics/claudes-c-compiler/blob/main/src/ir/instruction.rs#L122); also, I could not see `dump()`-like routines to print text/plain representation from in-memory IR, so these traces seem to only appear in comments
- Use of `va_start`, `va_end`, `memcpy` as IR-level instrinsics (see [here (traces)](https://github.com/anthropics/claudes-c-compiler/blob/main/src/ir/instruction.rs#L185) and [here (in LLVM IR reference)](https://llvm.org/docs/LangRef.html#llvm-va-start-intrinsic); or [here (sources](https://github.com/llvm/llvm-project/blob/main/llvm/include/llvm/IR/Intrinsics.td#L776)). Again, this seems to be a very strong indicator of something based off LLVM IR design.
Given all the above, and that the LLVM project is [under the Apache License v2.0 with LLVM Exceptions](https://github.com/llvm/llvm-project/blob/main/llvm/LICENSE.TXT), I think this "work" should, at the very least mention (likely in `README.md`) that underlying LLMs took 'inspiration' from LLVM, and that LLVM is owned by their respective authors / maintainers.
Looking forward to your replies. Also, as time permits, I'll create additional issues for maybe unrelated topics.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.