chore: replace usage of Directive::Quotient with brillig opcode #1766
chore: replace usage of Directive::Quotient with brillig opcode #1766TomAFrench merged 16 commits intomasterfrom
Directive::Quotient with brillig opcode #1766Conversation
|
For reference, putting the quotient directive here: https://github.com/noir-lang/acvm/blob/7d28f42c71d8434e73dfa69b94257c00ef7b6036/acvm/src/pwg/directives/mod.rs#L48 This uses BigUint, which is not a native type in Brillig. What steps,if any, are we taking to make this work? |
|
Related to #1772 |
We do not use BigUint here, we have the bit size of the inputs and so we simply use brillig integer division. |
crates/noirc_evaluator/src/ssa_refactor/acir_gen/acir_ir/generated_acir.rs
Show resolved
Hide resolved
|
@guipublic what is the status of this PR? |
* master: (50 commits) fix(globals): Accurately filter literals for resolving globals (#2126) feat: Optimize away constant calls to black box functions (#1981) fix: Rename `Option::value` to `Option::_value` (#2127) feat: replace boolean `AND`s with multiplication (#1954) chore: create a `const` to hold the panic message (#2122) feat: Add support for bitshifts by distances known at runtime (#2072) feat: Add additional `BinaryOp` simplifications (#2124) fix: flattening pass no longer overwrites previously mapped condition values (#2117) chore(noirc_driver): Unify crate preparation (#2119) feat!: Support workspaces and package selection on every nargo command (#1992) chore: Make a more clear error for slices passed to std::println (#2113) feat: Implement type aliases (#2112) feat: Add `Option<T>` to noir stdlib (#1781) feat: Format strings for prints (#1952) feat(acir_gen): RecursiveAggregation opcode and updates to black box func call generation (#2097) fix: Mutating a variable no longer mutates its copy (#2057) fix: Implement `.len()` in Acir-Gen (#2077) chore: clippy fixes (#2101) chore: Update `noir-source-resolver` to v1.1.3 (#1912) chore: Document `GeneratedAcir::more_than_eq_comparison` (#2085) ...
TomAFrench
left a comment
There was a problem hiding this comment.
This should be good to go as the relevant ACVM PR is now being used.
Directive::Quotient with brillig opcode
|
@guipublic are we good to merge this? |
Yes |
* master: chore: replace usage of `Directive::Quotient` with brillig opcode (#1766) chore: clippy fix (#2136) feat: Initial work on rewriting closures to regular functions with hi… (#1959) chore: Decouple acir blockid from ssa valueid (#2103) chore: Initialize copy array from previous values in `array_set` (#2106) chore: rename `ssa_refactor` module to `ssa` (#2129) chore: Use `--show-output` flag on execution rather than compilation (#2116) fix(globals): Accurately filter literals for resolving globals (#2126) feat: Optimize away constant calls to black box functions (#1981)
* master: (50 commits) chore: update stale comment on `create_circuit` (#2173) chore: Replace `resolve_path` function with a trait that impls normalize (#2157) chore: clippy fix (#2174) feat!: Allow specifying new package name with `--name` flag (#2144) chore!: remove unused flags on LSP command (#2170) chore: Hide the `show_ssa` and `show_brillig` flags (#2171) chore: bump `clap` to 4.3.19 (#2167) chore: Move the long line of `nargo info` to `long_about` (#2151) chore: Refactor `normalize_path` into an API on FileManager (#2156) fix: Implement slices of structs (#2150) chore: Refreshed ACIR artifacts (#2148) chore: Rebuild ACIR test artifacts (#2147) chore: remove short flags for `--show-ssa` and `--deny-warnings` (#2141) chore: replace usage of `Directive::Quotient` with brillig opcode (#1766) chore: clippy fix (#2136) feat: Initial work on rewriting closures to regular functions with hi… (#1959) chore: Decouple acir blockid from ssa valueid (#2103) chore: Initialize copy array from previous values in `array_set` (#2106) chore: rename `ssa_refactor` module to `ssa` (#2129) chore: Use `--show-output` flag on execution rather than compilation (#2116) ...
Description
Use brillig opcode instead of the quotient directive
Problem*
Resolves
Summary*
Documentation
This PR requires documentation updates when merged.
Additional Context
I will mark the PR as ready once the PRs for inverse directive and truncation removal are merged.
PR Checklist*
cargo fmton default settings.