refactor(tpv): rowptr[T] 迁移 + D 表定长缓冲改精确分配 + SHA1 前缀判定收敛(D1/D3/D4/D5/D6/D7/C10)

This commit is contained in:
TermiNexus committed 2026-09-12 11:09:35 +08:00
1 parent 7471cc64f9
commit 82eea2719f
66 files changed
+2709 -2604

No files matched your search

+6 -6
View File
@@ -91,7 +91,7 @@ class MatchGenMixin:
node: ast.AST | t.CPtr) -> int:
if node is None:
return 0
pool: memhub.MemBuddy | t.CPtr = trans.Pool
pool: rowptr[memhub.MemBuddy] = trans.Pool
builder: llvmlite.IRBuilder | t.CPtr = trans._cur_builder
func: llvmlite.Function | t.CPtr = trans._cur_func
if builder is None or func is None:
@@ -278,7 +278,7 @@ class MatchGenMixin:
node: ast.Match | t.CPtr,
renum_name: str,
subject_ptr: llvmlite.Value | t.CPtr) -> int:
pool: memhub.MemBuddy | t.CPtr = trans.Pool
pool: rowptr[memhub.MemBuddy] = trans.Pool
builder: llvmlite.IRBuilder | t.CPtr = trans._cur_builder
func: llvmlite.Function | t.CPtr = trans._cur_func
# 局部记录本 renum match 是否有 br 进入 end_bb,收尾时覆盖
@@ -618,7 +618,7 @@ class MatchGenMixin:
renum_ty: llvmlite.LLVMType | t.CPtr,
subject_ptr: llvmlite.Value | t.CPtr,
trans: HT.Translator | t.CPtr,
pool: memhub.MemBuddy | t.CPtr,
pool: rowptr[memhub.MemBuddy],
builder: llvmlite.IRBuilder | t.CPtr):
if pat is None or renum_entry is None or renum_ty is None:
return
@@ -730,7 +730,7 @@ class MatchGenMixin:
"""对齐 lhs/rhs 后生成 icmp eq(指针统一 ptrtoint i64)"""
if lhs is None or rhs is None or builder is None:
return None
pool: memhub.MemBuddy | t.CPtr = trans.Pool
pool: rowptr[memhub.MemBuddy] = trans.Pool
if self.Gen.ExprGenBase.is_ptr_type(lhs.Ty) != 0 \
or self.Gen.ExprGenBase.is_ptr_type(rhs.Ty) != 0:
i64_ty: llvmlite.LLVMType | t.CPtr = llvmlite.Int64(pool)
@@ -771,7 +771,7 @@ class MatchGenMixin:
def _handle_sequence_match(self, trans: HT.Translator | t.CPtr,
node: ast.Match | t.CPtr,
subject_node: ast.AST | t.CPtr) -> int:
pool: memhub.MemBuddy | t.CPtr = trans.Pool
pool: rowptr[memhub.MemBuddy] = trans.Pool
builder: llvmlite.IRBuilder | t.CPtr = trans._cur_builder
func: llvmlite.Function | t.CPtr = trans._cur_func
if builder is None or func is None:
@@ -1105,7 +1105,7 @@ class MatchGenMixin:
def _handle_simple_match(self, trans: HT.Translator | t.CPtr,
node: ast.Match | t.CPtr,
subject_val: llvmlite.Value | t.CPtr) -> int:
pool: memhub.MemBuddy | t.CPtr = trans.Pool
pool: rowptr[memhub.MemBuddy] = trans.Pool
builder: llvmlite.IRBuilder | t.CPtr = trans._cur_builder
func: llvmlite.Function | t.CPtr = trans._cur_func
# 同主路径:局部记录本 simple match 的 br end_bb,收尾覆盖