Repository navigation
Conversation
ZweZeya
force-pushed
the
feat/select-queue-impl-pinned
branch
from
October 18, 2026 05:20
74c71e6 to
57ea2a0
Compare
ZweZeya
force-pushed
the
test/end-to-end-from-cpp
branch
from
October 18, 2026 05:20
12e41dc to
328521c
Compare
Every test was hand-written IR, so nothing in the suite had seen what the compiler actually emits, which is how the hidden result argument went unnoticed until it was measured by hand. lit now finds the pinned clang (only that one: another would be a different frontend from the one the passes are built against) and provides %cir_cxx to emit CIR for a program written against the shim. %cir_x86_64_cxx emits for x86-64 wherever the host's headers allow it, natively on an x86-64 host and by target on macOS, because whether a record comes back through a hidden argument depends on the target. - queue-two-queues.cpp and its -x86-64 twin: the prototype's own example, recovered from git history, with the known verdicts checked, each against its own queue. - mutex.cpp: lifting the mutex path from real output. - select-and-lower.cpp: one SPSC and one MPMC queue of the same type through the whole pipeline to the LLVM dialect; only the SPSC one is substituted and the anchor is gone. Verified: 32 of 32 pass. Against dev, the x86-64 and whole-pipeline tests fail (dev segfaults lifting x86-64 output); the host-target queue test and the mutex test pass there, since on AArch64 those paths already worked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CI on Linux failed select-and-lower.cpp: the substitution happened (its remark matched), but the check expected "cir.global external @single", and on Linux the global is "cir.global external dso_local @single". The checks now match only the name and the type. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ZweZeya
force-pushed
the
test/end-to-end-from-cpp
branch
from
October 18, 2026 05:24
328521c to
053bdb3
Compare
4 tasks done
Collaborator
|
Closing as superseded by #10, whose suite already compiles C++ through the whole pipeline ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #7 (
feat/select-queue-impl-pinned). Last of the stack.What this changes
Every test was hand-written IR, which is how the hidden result argument went unnoticed until it was measured by hand. lit now finds the pinned clang (only that one) and provides
%cir_cxx, plus%cir_x86_64_cxxfor x86-64 wherever the host's headers allow it (natively on x86-64, by target on macOS), since the return convention depends on the target.queue-two-queues.cppand-x86-64: the prototype's own example, recovered from git history, known verdicts checked, each against its own queue.mutex.cpp: lifting the mutex path from real output.select-and-lower.cpp: one SPSC and one MPMC queue of one type through the whole pipeline to the LLVM dialect; only the SPSC one is substituted.README's Status table and
docs/audit.mdnow reflect the stack.How it was checked
33 of 33 pass, no warnings. Against
main, the x86-64 and whole-pipeline tests fail (mainsegfaults lifting x86-64 output). The host-target queue test and the mutex test pass there: on AArch64 those paths already worked, so they guard rather than prove a fix. In CI, on x86-64, all of them run natively.Checklist
🤖 Generated with Claude Code