0xMiden / 0xMiden/miden-vm

Simplify structure of basic block nodes

未关闭
#2,109 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
core processor
主要语言
Rust
星标
772
派生
352
平均合并
1 天 12 小时
30 天内合并 PR
93

描述

Once we get rid of the slow processor, we should be able to refactor our basic block nodes to look something like this:
```rust
pub struct BasicBlockNode {
/// operations here would contain Respan operations to mark boundaries of operation batches
ops: Vec,
digest: Word,
}
```
This structure has a number of benefits:

- The fast processor would need just a single loop to iterate over all operations in a basic block.
- We would allocate only a single vector per basic block vs. allocating a vector (plus several arrays) per operation batch.
- Fast (but trusted) serialization/deserialization of the basic block becomes trivial.

I would create a couple of complications though:
- Computing the hash of the node would be a bit more complicated, and this would make the slow (but untrusted) deserialization more difficult.
- Trace generation would require more work because trace builders would need to build the `OpBatch` structs themselves.

Both of these are acceptable tradeoffs in my opinion.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。