renew_if
nanofil
A renew whose bounds come from a guard: renew_ifLo, Hi, Rights, Align of [P, G] is exactly a check of P, but where the span test G passed it natively tests only the flags and alignment, and where G failed it runs the full check out of line. The validator accepts it through ir:guard_covers/5, following P's guard chain (ir:guard_chain/3).
Rocq: the op RenewIf; Guard.v's renew_if_not_unchecked and, along runs, run_guard_checked.
Linked from
- Guard.v: renew_if_not_unchecked
- Guard.v: span_test_ok
- NFB guide (Argon): Opcode map (`nfb_form/3`)
- NFB guide (Argon): Safepoints, `free`, and check-reuse evidence
- NFB guide (Argon): `trap(Reason)` vs. `unchecked(Reason)`
- NFB guide (Wonder): 11.2 Function bodies and instruction words
- NFB guide (Wonder): 7.1 What changes
- NFB guide (Wonderful): 8. The checked vocabulary
- Syntax.v: value
- Validate.v: checked_inst_rest
- Validate.v: guard_covers
- Validate.v: renew_source
- evidence
- exact base
- guard
- guard chain
- offset interval
- renew source
- reuse
- span_test
- the formal campaign: Campaign 5: static discharge by certificate
- the formal campaign: The campaigns at a glance
- the guide: 9. Check evidence and the validator: check_reuse.pl, ir.pl
- the guide: Safepoints and GC roots