进行了优化,减少了上帝结构体的符号表占用

This commit is contained in:
2026-06-18 22:12:14 +08:00
parent d7b98cc9c5
commit 19f2787db0
32 changed files with 1245 additions and 1083 deletions

View File

@@ -171,7 +171,7 @@ class BaseGenMixin:
return existing
if clean_name in {'typedef', 'CType', 'CVolatile', 'CEnum', 'CUnion', 'CStruct', 'enum', 'REnum', 'renum', 'Void', 'void'}:
return ir.IntType(8)
if hasattr(self, 'SymbolTable') and self.SymbolTable and clean_name in self.SymbolTable:
if hasattr(self, 'SymbolTable') and self.SymbolTable and self.SymbolTable.has(clean_name):
Entry = self.SymbolTable[clean_name]
if Entry.IsTypedef:
resolved_str = self._resolve_typedef(clean_name)
@@ -235,7 +235,7 @@ class BaseGenMixin:
return int(llvm_str[1:])
# 2. 再查 SymbolTable用户定义的 typedef
if hasattr(self, 'SymbolTable') and self.SymbolTable and name in self.SymbolTable:
if hasattr(self, 'SymbolTable') and self.SymbolTable and self.SymbolTable.has(name):
Entry = self.SymbolTable[name]
if Entry.IsTypedef:
if Entry.BaseType: