Skip to content

Commit 11d9d9e

Browse files
authored
feat(avm)!: enable optimized poseidon2 rels (#16467)
Updates bb-pilcom to change the generated files. Now the choice of whether to use `generated/poseidon2_perm` or `optimized/poseidon2_perm` can be made via `bb-pilcom` through the use of `feature-flags` (see `README.md`). I could not convince CMake to ignore building `generated/poseidon2_perm` file even if it wasn't included in any other files, so the solution for now was also to **not** generate the `poseidon2_perm` file when using the optimized one. This does mean that the generated folder should be deleted if switching between from generated to optimized to minimise wasted compiling time (this is already supported by the `-y` flag in the cli)
2 parents e717545 + 905e019 commit 11d9d9e

File tree

15 files changed

+118
-3299
lines changed

15 files changed

+118
-3299
lines changed

barretenberg/cpp/src/barretenberg/vm2/constraining/relations/poseidon2.test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "barretenberg/vm2/constraining/testing/check_relation.hpp"
1010
#include "barretenberg/vm2/generated/relations/lookups_poseidon2_hash.hpp"
1111
#include "barretenberg/vm2/generated/relations/poseidon2_hash.hpp"
12-
#include "barretenberg/vm2/generated/relations/poseidon2_perm.hpp"
12+
#include "barretenberg/vm2/optimized/relations/poseidon2_perm.hpp"
1313
#include "barretenberg/vm2/simulation/events/event_emitter.hpp"
1414
#include "barretenberg/vm2/simulation/lib/execution_id_manager.hpp"
1515
#include "barretenberg/vm2/simulation/range_check.hpp"
@@ -38,7 +38,7 @@ using tracegen::TestTraceContainer;
3838
using FF = AvmFlavorSettings::FF;
3939
using C = Column;
4040
using poseidon2_hash = bb::avm2::poseidon2_hash<FF>;
41-
using poseidon2_perm = bb::avm2::poseidon2_perm<FF>;
41+
using poseidon2_perm = bb::avm2::optimized_poseidon2_perm<FF>;
4242
using poseidon2_mem = bb::avm2::poseidon2_mem<FF>;
4343

4444
using simulation::EventEmitter;

barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
#include "relations/nullifier_exists.hpp"
4747
#include "relations/poseidon2_hash.hpp"
4848
#include "relations/poseidon2_mem.hpp"
49-
#include "relations/poseidon2_perm.hpp"
5049
#include "relations/public_data_check.hpp"
5150
#include "relations/public_data_squash.hpp"
5251
#include "relations/range_check.hpp"
@@ -65,6 +64,9 @@
6564
#include "relations/update_check.hpp"
6665
#include "relations/written_public_data_slots_tree_check.hpp"
6766

67+
// Optimized Relations
68+
#include "barretenberg/vm2/optimized/relations/poseidon2_perm.hpp"
69+
6870
// Lookup and permutation relations
6971
#include "relations/lookups_address_derivation.hpp"
7072
#include "relations/lookups_addressing.hpp"
@@ -137,6 +139,9 @@ struct AvmFlavorVariables {
137139
// Need to be templated for recursive verifier
138140
template <typename FF_>
139141
using MainRelations_ = flat_tuple::tuple<
142+
143+
// Optimized Relations
144+
avm2::optimized_poseidon2_perm<FF_>,
140145
// Relations
141146
avm2::address_derivation<FF_>,
142147
avm2::addressing<FF_>,
@@ -180,7 +185,6 @@ struct AvmFlavorVariables {
180185
avm2::nullifier_exists<FF_>,
181186
avm2::poseidon2_hash<FF_>,
182187
avm2::poseidon2_mem<FF_>,
183-
avm2::poseidon2_perm<FF_>,
184188
avm2::public_data_check<FF_>,
185189
avm2::public_data_squash<FF_>,
186190
avm2::range_check<FF_>,

barretenberg/cpp/src/barretenberg/vm2/generated/relations/poseidon2_perm.cpp

Lines changed: 0 additions & 25 deletions
This file was deleted.

barretenberg/cpp/src/barretenberg/vm2/generated/relations/poseidon2_perm.hpp

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)