Propagate native-root decisions to codegen-unit workers - #8071
Conversation
|
Important Review skippedNo new commits to review since the last review. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe codegen pipeline now captures the producer-selected native-roots backend and passes it through compile planning, LLVM emission, split workers, and fallback paths. Tests validate statepoint rewriting, compact GC-map output, shadow-stack behavior, and updated APIs. ChangesNative-roots codegen propagation
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The change explicitly propagates native-root decisions to codegen-unit workers and is supported by passing focused validation; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant Producer
participant compile_units_to_object
participant Worker
participant optimize_and_emit_module
Producer->>compile_units_to_object: select native_roots
compile_units_to_object->>Worker: pass native_roots
Worker->>optimize_and_emit_module: pass native_roots
optimize_and_emit_module->>Worker: rewrite statepoints and emit GC map
Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
|
|
Independent exact-head audit: APPROVE 11b61e5. The producer-selected native-root decision is carried coherently through text and native unit workers, RS4GC, compile planning, compact-map finishing, and non-split paths. The positive split arm requires a real platform map section plus PGCM payload on both objects before byte equality; the shadow negative proves the producer emits shadow binds and no addrspace(1) root, then requires both text and worker-native artifacts to have no map/payload and to match exactly. Local focused evidence is 4/4 native_emit tests, 2/2 in-process RS4GC tests, 5/5 compile-plan tests, cargo check, fmt, and diff check. CI was not used as correctness evidence. Changelog/closure scope are correct, no version bump, and CodeRabbit completed with zero review threads. |
Summary
Local proof
Exact main base f9475fb, LLVM 22.1.4:
No broad workspace test was used.
Closes #8070.
Refs #7966.
Summary by CodeRabbit