anthropics / anthropics/claudes-c-compiler

[LICENSING] The resulting code has traces of 'inspiration' from LLVM

Open
#231 12 comments 80 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.