Skip to content

Commit

Permalink
change mem2var variable prefix
Browse files Browse the repository at this point in the history
helps readability -- they are variables, not addresses!
  • Loading branch information
charles-cooper committed Sep 29, 2024
1 parent 97aa938 commit d061341
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions vyper/venom/passes/mem2var.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ def run_pass(self):
self.analyses_cache.invalidate_analysis(DFGAnalysis)
self.analyses_cache.invalidate_analysis(LivenessAnalysis)

def _mk_varname(self, varname: str):
varname = varname.removeprefix("%")
varname = f"var{varname}_{self.var_name_count}"
self.var_name_count += 1
return varname

def _process_alloca_var(self, dfg: DFGAnalysis, var: IRVariable):
"""
Process alloca allocated variable. If it is only used by mstore/mload/return
Expand All @@ -39,8 +45,7 @@ def _process_alloca_var(self, dfg: DFGAnalysis, var: IRVariable):
elif all([inst.opcode == "mstore" for inst in uses]):
return
elif all([inst.opcode in ["mstore", "mload", "return"] for inst in uses]):
var_name = f"addr{var.name}_{self.var_name_count}"
self.var_name_count += 1
var_name = self._mk_varname(var.name)
for inst in uses:
if inst.opcode == "mstore":
inst.opcode = "store"
Expand All @@ -66,8 +71,7 @@ def _process_palloca_var(self, dfg: DFGAnalysis, palloca_inst: IRInstruction, va
if not all(inst.opcode in ["mstore", "mload"] for inst in uses):
return

var_name = f"addr{var.name}_{self.var_name_count}"
self.var_name_count += 1
var_name = self._mk_varname(var.name)

palloca_inst.opcode = "mload"
palloca_inst.operands = [palloca_inst.operands[0]]
Expand Down

0 comments on commit d061341

Please sign in to comment.