refactor(tpv): rowptr[T] 迁移 + D 表定长缓冲改精确分配 + SHA1 前缀判定收敛(D1/D3/D4/D5/D6/D7/C10)
This commit is contained in:
1 parent
7471cc64f9
commit
82eea2719f
66 files changed
+2709
-2604
No files matched your search
@@ -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,收尾覆盖
|
||||
|
||||
Reference in new issue
Block a user