Skip to content

Commit a0418da

Browse files
authored
Merge fbf0638 into f19344c
2 parents f19344c + fbf0638 commit a0418da

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

compiler/noirc_evaluator/src/ssa/opt/mem2reg.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -286,19 +286,19 @@ impl<'f> PerFunctionContext<'f> {
286286
} else {
287287
references.mark_value_used(address, self.inserter.function);
288288

289-
let expression = if let Some(expression) = references.expressions.get(&result) {
290-
expression.clone()
291-
} else {
292-
references.expressions.insert(result, Expression::Other(result));
293-
Expression::Other(result)
294-
};
295-
if let Some(aliases) = references.aliases.get_mut(&expression) {
289+
let expression =
290+
references.expressions.entry(result).or_insert(Expression::Other(result));
291+
// Make sure this load result is marked an alias to itself
292+
if let Some(aliases) = references.aliases.get_mut(expression) {
293+
// If we have an alias set, add to the set
296294
aliases.insert(result);
297295
} else {
296+
// Otherwise, create a new alias set containing just the load result
298297
references
299298
.aliases
300299
.insert(Expression::Other(result), AliasSet::known(result));
301300
}
301+
// Mark that we know a load result is equivalent to the address of a load.
302302
references.set_known_value(result, address);
303303

304304
self.last_loads.insert(address, (instruction, block_id));

0 commit comments

Comments
 (0)