Skip to content

docs: clarify fallthrough BSTART elision - #201

Open
zhoubot wants to merge 1 commit into
mainfrom
codex/v058-bstart-fallthrough-doc
Open

zhoubot wants to merge 1 commit into
mainfrom
codex/v058-bstart-fallthrough-doc

Conversation

@zhoubot

@zhoubot zhoubot commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Document that compiler basic blocks do not each require an architectural BSTART.
  • Allow redundant BSTART.STD FALL / C.BSTART.STD FALL to be omitted on proven unique sequential CFG edges when scalar instructions remain in an active STD or Tile block.
  • Keep scalar control-flow targets, non-fallthrough transfers, block-type changes, explicit/final commit boundaries, CFG merges, indirect edges, and exception edges explicit.
  • Clarify that a Tile block instruction is itself BSTART when it is a control-flow target.
  • Update the Chinese mirror and translation freshness manifest.

This is implementer guidance for the existing PTO v0.58 scalar body-entry contract. It changes no opcode, encoding, PTO lock, or runtime semantics.

Formal evidence: PTO-ISA/pto-spec#273. LLVM implementation: LinxISA/llvm-project#92.

Validation

  • python3 docs/check_documentation.py --root .: PASS
  • bash tools/ci/check_repo_layout.sh: PASS
  • generated 774 SVGs and 744 instruction / 55 group pages: current
  • git diff --check: PASS

Document that compiler basic blocks may remain in an active STD or Tile architectural block, allowing redundant FALL-STD headers to be omitted on proven sequential CFG edges. Keep branch targets, non-fallthrough transfers, block-type changes, and final commit boundaries explicit.
@zhoubot
zhoubot requested a review from a team as a code owner September 12, 2026 08:52
zhoubot added a commit to PTO-ISA/pto-spec that referenced this pull request Sep 12, 2026
## Summary

- Clarify `PTO-REQ-SCALAR-BODY-ENTRY-001` that the first decoded scalar
instruction may enter the body of any active block kind, explicitly
including Tile blocks.
- Preserve the active Tile block kind during scalar body entry.
- Add an executable AVS point with no intervening `C.BSTART.STD`.

This closes documentation/evidence around the behavior already accepted
by issue #191 and ADR-BLOCK-0012. It changes no instruction encoding,
decoder, block state, or execution transition.

## Validation

- `make pr-check`: **10/10 PASS**
- exact focused ASL matrix selected by `scripts/prepare-pr`: **17/17
PASS**
- new Tile-block scalar-body AVS: PASS
- `git diff --check`: PASS

Independent exact-input review remains required before merge, as
reported by `scripts/prepare-pr`.

Downstream implementation:
[LinxISA/llvm-project#92](LinxISA/llvm-project#92).
LinxISA implementer guidance:
[LinxISA/linx-isa#201](LinxISA/linx-isa#201).

Co-authored-by: zhoubot <637081+zhoubot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant