Skip to content

Commit

Permalink
fix(ssa): Do not use get_value_max_num_bits when we want pure type in…
Browse files Browse the repository at this point in the history
…formation (#4700)

# Description

## Problem\*

No issue as this was found by @jfecher while testing in debug mode where
we get overflow errors after #4691

Resolves
#4699 (comment)

## Summary\*



## Additional Context



## Documentation\*

Check one:
- [ ] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [ ] I have tested the changes locally.
- [ ] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

---------

Co-authored-by: Tom French <tom@tomfren.ch>
  • Loading branch information
vezenovm and TomAFrench committed Apr 3, 2024
1 parent a6c2c9f commit ee1a9f3
Showing 1 changed file with 0 additions and 15 deletions.
15 changes: 0 additions & 15 deletions compiler/noirc_evaluator/src/ssa/ir/instruction/binary.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,21 +171,6 @@ impl Binary {
return SimplifyResult::SimplifiedTo(one);
}

if operand_type.is_unsigned() {
// If we're comparing a variable against a constant value which lies outside of the range of
// values which the variable's type can take, we can assume that the equality will be false.
let constant = lhs.or(rhs);
let non_constant = if lhs.is_some() { self.rhs } else { self.lhs };
if let Some(constant) = constant {
let max_possible_value =
2u128.pow(dfg.get_value_max_num_bits(non_constant)) - 1;
if constant > max_possible_value.into() {
let zero = dfg.make_constant(FieldElement::zero(), Type::bool());
return SimplifyResult::SimplifiedTo(zero);
}
}
}

if operand_type == Type::bool() {
// Simplify forms of `(boolean == true)` into `boolean`
if lhs_is_one {
Expand Down

0 comments on commit ee1a9f3

Please sign in to comment.