Skip to content

Commit ddd3d10

Browse files
committed
ASTI: assign ssa-prefix indices per register
1 parent b4c6a9c commit ddd3d10

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

chb/astinterface/ASTInterface.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def __init__(
117117
structsizes=self._typconverter.structsizes)
118118
self._parameter_abi = parameter_abi
119119
self._srcformals: List[ASTIFormalVarInfo] = []
120-
self._ssa_prefix_counters: Dict[str, int] = {"ssa": 0}
120+
self._ssa_prefix_counters: Dict[str, int] = {}
121121
self._ssa_intros: Dict[str, Dict[str, AST.ASTVarInfo]] = {}
122122
self._ssa_values: Dict[str, AST.ASTExpr] = {}
123123
self._ssa_addresses: Dict[str, Set[str]] = {}
@@ -959,7 +959,6 @@ def introduce_ssa_variables(
959959
self._ssa_intros[loc][reg] = vinfo
960960
self._ssa_addresses[vinfo.vname].add(loc)
961961

962-
963962
def introduce_stack_variables(
964963
self,
965964
stackframe: "FnStackFrame",
@@ -1023,9 +1022,11 @@ def mk_ssa_register_varinfo(
10231022
self._ssa_prefix_counters[prefix] += 1
10241023
vname = prefix + "__" + str(ssaid)
10251024
else:
1026-
ssaid = self._ssa_prefix_counters["ssa"]
1027-
self._ssa_prefix_counters["ssa"] += 1
1028-
vname = "ssa_" + name + "_" + str(ssaid)
1025+
ssaprefix = "ssa_" + name
1026+
self._ssa_prefix_counters.setdefault(ssaprefix, 0)
1027+
ssaid = self._ssa_prefix_counters[ssaprefix]
1028+
self._ssa_prefix_counters[ssaprefix] += 1
1029+
vname = ssaprefix + "_" + str(ssaid)
10291030
varinfo = self.add_symbol(vname, vtype=vtype)
10301031
self._ssa_intros.setdefault(iaddr, {})
10311032
self._ssa_intros[iaddr][name] = varinfo

0 commit comments

Comments
 (0)