majit: harden generic tracing and diagnostics - #1215
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (33)
WalkthroughThe PR adds opt-in JIT audits, bridge identity handling, gate and census diagnostics, allocation profiling, and regression coverage for loop peeling, lowering, translation, and runtime behavior. ChangesJIT audit instrumentation and bridge handling
JIT lowering and loop regression coverage
JIT diagnostics and gate validation
Allocation attribution example
Windows process builtin registration
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant JITTrace
participant BridgeOptimizer
participant RegisterAudit
participant JITStats
JITTrace->>BridgeOptimizer: prepare bridge trace with scoped OpRef records
BridgeOptimizer->>RegisterAudit: record register reads and writes
RegisterAudit->>JITStats: emit audit and census totals
JITStats->>JITStats: merge diagnostics and apply vacuity checks
Possibly related PRs
Poem
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 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 |
🤖 Codex parity reviewStatic analysis of this diff vs the local RPython/PyPy sources (commit cbf5381). Files in the reviewed diff1. Regressions to PyPy parity introduced by this patchNone. 2. Other mismatches introduced by this patchNone. 3. Pre-existing mismatches (already present before this patch)
4. Structural adaptationsNone. |
Summary
Why
The CEL branch accumulated general JIT infrastructure alongside CEL-specific implementation. Landing the reusable pieces independently reduces the remaining CEL patch while giving the shared tracing and diagnostic machinery focused review and test coverage.
Impact
Ordinary debug and release builds contain no opref or register-write audit modules, call sites, TLS access, environment-gate strings, or report strings. Diagnostic binaries opt in with --features jit-audits; the existing environment variables then select an individual audit. Audit TLS remains limited to disposable per-thread diagnostic state and does not own semantic runtime identity or GC roots.
Validation
Summary by CodeRabbit
New Features
Bug Fixes
Documentation