Skip to content

chore: debug cross-block deduplication in constant folding#10151

Closed
asterite wants to merge 7 commits into
masterfrom
ab/cross-block-deduplication-debug
Closed

chore: debug cross-block deduplication in constant folding#10151
asterite wants to merge 7 commits into
masterfrom
ab/cross-block-deduplication-debug

Conversation

@asterite

@asterite asterite commented Nov 22, 2024

Copy link
Copy Markdown
Contributor

A branch to debug #9972

Here I'm not applying an optimization to MakeArray to see if that fixes the issue. If so, the issue is with deduplicating these instructions.

@asterite asterite closed this Nov 22, 2024
@asterite asterite deleted the ab/cross-block-deduplication-debug branch November 22, 2024 18:18
@github-actions

Copy link
Copy Markdown
Contributor

Changes to public function bytecode sizes

Generated at commit: b857688ee00f6e4c39ea75be8ad64bcbab2435b0, compared to commit: c6fdf4bda5c9ef32ca355cda9a5a0c7ed3d1a100

🧾 Summary (100% most significant diffs)

Program Bytecode size in bytes (+/-) %
AvmTest::debug_logging +149 ❌ +11.53%
StaticChild::public_dispatch +195 ❌ +9.23%
Child::public_dispatch +252 ❌ +5.28%
FPC::constructor +109 ❌ +4.70%
TokenBridge::constructor +109 ❌ +4.62%
Claim::constructor +109 ❌ +4.44%
Claim::public_dispatch +109 ❌ +3.35%
Auth::get_scheduled_authorized +50 ❌ +2.76%
Auth::get_authorized +50 ❌ +2.61%
Lending::public_dispatch +499 ❌ +1.82%
Uniswap::public_dispatch +392 ❌ +1.69%
FPC::public_dispatch +104 ❌ +1.43%
NFT::mint +36 ❌ +1.27%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 +60 ❌ +0.96%
AvmTest::bulk_testing +148 ❌ +0.64%
AuthRegistry::public_dispatch +36 ❌ +0.45%
Test::public_dispatch -10 ✅ -0.05%
NFT::public_dispatch -14 ✅ -0.06%
TokenBlacklist::public_dispatch -15 ✅ -0.06%
Parent::public_dispatch -5 ✅ -0.06%
CardGame::on_cards_claimed -5 ✅ -0.07%
TokenBridge::public_dispatch -15 ✅ -0.07%
StatefulTest::public_dispatch -5 ✅ -0.08%
TokenBlacklist::shield -5 ✅ -0.09%
StaticParent::public_dispatch -5 ✅ -0.09%
TokenBridge::claim_public -10 ✅ -0.09%
TokenBlacklist::transfer_public -5 ✅ -0.09%
Test::consume_mint_to_public_message -10 ✅ -0.09%
FeeJuice::public_dispatch -5 ✅ -0.09%
TokenBlacklist::burn_public -5 ✅ -0.10%
EasyPrivateVoting::public_dispatch -5 ✅ -0.10%
Uniswap::swap_public -15 ✅ -0.10%
Lending::get_position -5 ✅ -0.10%
Auth::set_authorized_delay -5 ✅ -0.11%
Auth::public_dispatch -10 ✅ -0.11%
Token::transfer_in_public -5 ✅ -0.12%
Token::burn_public -5 ✅ -0.12%
Token::constructor -5 ✅ -0.12%
NFT::constructor -5 ✅ -0.12%
TokenBlacklist::mint_public -5 ✅ -0.12%
Benchmarking::public_dispatch -5 ✅ -0.13%
Test::consume_message_from_arbitrary_sender_public -10 ✅ -0.13%
TokenBlacklist::mint_private -5 ✅ -0.13%
Lending::_borrow -10 ✅ -0.13%
NFT::transfer_in_public -5 ✅ -0.15%
Spam::public_dispatch -5 ✅ -0.15%
PriceFeed::public_dispatch -5 ✅ -0.16%
Lending::init -5 ✅ -0.17%
AuthRegistry::consume -5 ✅ -0.17%
Lending::_withdraw -15 ✅ -0.17%
Token::public_dispatch -55 ✅ -0.17%
Token::mint_to_public -5 ✅ -0.17%
Lending::_repay -10 ✅ -0.18%
TokenBlacklist::get_roles -5 ✅ -0.19%
Lending::deposit_public -5 ✅ -0.19%
Lending::repay_public -5 ✅ -0.20%
TokenBlacklist::_increase_public_balance -5 ✅ -0.20%
Token::_increase_public_balance -5 ✅ -0.20%
NFT::owner_of -5 ✅ -0.21%
Spam::public_spam -5 ✅ -0.21%
Benchmarking::increment_balance -5 ✅ -0.21%
Auth::set_authorized -10 ✅ -0.22%
FeeJuice::check_balance -5 ✅ -0.22%
FeeJuice::_increase_public_balance -5 ✅ -0.22%
Lending::get_asset -5 ✅ -0.23%
TokenBlacklist::constructor -15 ✅ -0.24%
Lending::update_accumulator -14 ✅ -0.24%
EasyPrivateVoting::add_to_tally_public -5 ✅ -0.24%
StaticParent::public_nested_static_call -5 ✅ -0.24%
FPC::pay_refund -5 ✅ -0.24%
TokenBlacklist::update_roles -15 ✅ -0.24%
FPC::prepare_fee -5 ✅ -0.25%
AuthRegistry::is_consumable -5 ✅ -0.26%
AuthRegistry::_set_authorized -5 ✅ -0.26%
AvmTest::add_storage_map -5 ✅ -0.26%
TokenBlacklist::balance_of_public -5 ✅ -0.26%
Token::balance_of_public -5 ✅ -0.26%
Lending::borrow_public -5 ✅ -0.26%
Lending::withdraw_public -5 ✅ -0.26%
AuthRegistry::set_authorized -5 ✅ -0.27%
FeeJuice::balance_of_public -5 ✅ -0.27%
PriceFeed::set_price -5 ✅ -0.28%
NFT::set_minter -5 ✅ -0.28%
Token::set_minter -5 ✅ -0.28%
NFT::is_minter -5 ✅ -0.28%
Token::is_minter -5 ✅ -0.28%
AvmTest::set_storage_map -5 ✅ -0.28%
NFT::_finish_transfer_to_public -5 ✅ -0.28%
Benchmarking::broadcast -5 ✅ -0.28%
PriceFeed::get_price -5 ✅ -0.28%
StatefulTest::increment_public_value -5 ✅ -0.28%
AuthRegistry::is_reject_all -5 ✅ -0.29%
StatefulTest::get_public_value -5 ✅ -0.29%
AvmTest::poseidon2_hash -5 ✅ -0.29%
AvmTest::read_storage_map -5 ✅ -0.29%
AuthRegistry::set_reject_all -5 ✅ -0.29%
StatefulTest::increment_public_value_no_init_check -5 ✅ -0.29%
AvmTest::sha256_hash -13 ✅ -0.33%
Lending::_deposit -10 ✅ -0.39%
AvmTest::public_dispatch -259 ✅ -0.43%
Parent::pub_entry_point_twice -5 ✅ -0.51%
AvmTest::returndata_copy_oracle -10 ✅ -0.55%
Crowdfunding::public_dispatch -26 ✅ -0.56%
Token::_finalize_transfer_to_private_unsafe -55 ✅ -0.82%
Token::finalize_transfer_to_private -55 ✅ -0.83%
CardGame::on_card_played -51 ✅ -0.85%
Token::_finalize_mint_to_private_unsafe -55 ✅ -0.87%
Token::finalize_mint_to_private -55 ✅ -0.88%
Token::complete_refund -50 ✅ -0.91%
NFT::_finalize_transfer_to_private_unsafe -55 ✅ -0.98%
DocsExample::public_dispatch -46 ✅ -0.98%
NFT::finalize_transfer_to_private -55 ✅ -0.98%
CardGame::on_game_joined -51 ✅ -1.00%
CardGame::public_dispatch -166 ✅ -1.02%
CardGame::start_game -74 ✅ -1.03%
Crowdfunding::_publish_donation_receipts -26 ✅ -2.73%

Full diff report 👇
Program Bytecode size in bytes (+/-) %
AvmTest::debug_logging 1,441 (+149) +11.53%
StaticChild::public_dispatch 2,307 (+195) +9.23%
Child::public_dispatch 5,026 (+252) +5.28%
FPC::constructor 2,427 (+109) +4.70%
TokenBridge::constructor 2,466 (+109) +4.62%
Claim::constructor 2,562 (+109) +4.44%
Claim::public_dispatch 3,361 (+109) +3.35%
Auth::get_scheduled_authorized 1,863 (+50) +2.76%
Auth::get_authorized 1,963 (+50) +2.61%
Lending::public_dispatch 27,849 (+499) +1.82%
Uniswap::public_dispatch 23,528 (+392) +1.69%
FPC::public_dispatch 7,362 (+104) +1.43%
NFT::mint 2,881 (+36) +1.27%
Uniswap::_approve_bridge_and_exit_input_asset_to_L1 6,284 (+60) +0.96%
AvmTest::bulk_testing 23,252 (+148) +0.64%
AuthRegistry::public_dispatch 7,979 (+36) +0.45%
Test::public_dispatch 19,137 (-10) -0.05%
NFT::public_dispatch 23,806 (-14) -0.06%
TokenBlacklist::public_dispatch 23,198 (-15) -0.06%
Parent::public_dispatch 7,718 (-5) -0.06%
CardGame::on_cards_claimed 7,298 (-5) -0.07%
TokenBridge::public_dispatch 20,725 (-15) -0.07%
StatefulTest::public_dispatch 6,136 (-5) -0.08%
TokenBlacklist::shield 5,803 (-5) -0.09%
StaticParent::public_dispatch 5,780 (-5) -0.09%
TokenBridge::claim_public 11,372 (-10) -0.09%
TokenBlacklist::transfer_public 5,615 (-5) -0.09%
Test::consume_mint_to_public_message 10,874 (-10) -0.09%
FeeJuice::public_dispatch 5,287 (-5) -0.09%
TokenBlacklist::burn_public 5,235 (-5) -0.10%
EasyPrivateVoting::public_dispatch 5,199 (-5) -0.10%
Uniswap::swap_public 15,255 (-15) -0.10%
Lending::get_position 5,004 (-5) -0.10%
Auth::set_authorized_delay 4,640 (-5) -0.11%
Auth::public_dispatch 8,790 (-10) -0.11%
Token::transfer_in_public 4,225 (-5) -0.12%
Token::burn_public 4,175 (-5) -0.12%
Token::constructor 4,125 (-5) -0.12%
NFT::constructor 4,050 (-5) -0.12%
TokenBlacklist::mint_public 3,996 (-5) -0.12%
Benchmarking::public_dispatch 3,967 (-5) -0.13%
Test::consume_message_from_arbitrary_sender_public 7,921 (-10) -0.13%
TokenBlacklist::mint_private 3,737 (-5) -0.13%
Lending::_borrow 7,407 (-10) -0.13%
NFT::transfer_in_public 3,335 (-5) -0.15%
Spam::public_dispatch 3,244 (-5) -0.15%
PriceFeed::public_dispatch 3,093 (-5) -0.16%
Lending::init 2,953 (-5) -0.17%
AuthRegistry::consume 2,929 (-5) -0.17%
Lending::_withdraw 8,649 (-15) -0.17%
Token::public_dispatch 31,579 (-55) -0.17%
Token::mint_to_public 2,863 (-5) -0.17%
Lending::_repay 5,678 (-10) -0.18%
TokenBlacklist::get_roles 2,682 (-5) -0.19%
Lending::deposit_public 2,607 (-5) -0.19%
Lending::repay_public 2,490 (-5) -0.20%
TokenBlacklist::_increase_public_balance 2,488 (-5) -0.20%
Token::_increase_public_balance 2,488 (-5) -0.20%
NFT::owner_of 2,429 (-5) -0.21%
Spam::public_spam 2,429 (-5) -0.21%
Benchmarking::increment_balance 2,385 (-5) -0.21%
Auth::set_authorized 4,544 (-10) -0.22%
FeeJuice::check_balance 2,222 (-5) -0.22%
FeeJuice::_increase_public_balance 2,219 (-5) -0.22%
Lending::get_asset 2,200 (-5) -0.23%
TokenBlacklist::constructor 6,227 (-15) -0.24%
Lending::update_accumulator 5,750 (-14) -0.24%
EasyPrivateVoting::add_to_tally_public 2,053 (-5) -0.24%
StaticParent::public_nested_static_call 2,050 (-5) -0.24%
FPC::pay_refund 2,045 (-5) -0.24%
TokenBlacklist::update_roles 6,132 (-15) -0.24%
FPC::prepare_fee 1,990 (-5) -0.25%
AuthRegistry::is_consumable 1,908 (-5) -0.26%
AuthRegistry::_set_authorized 1,901 (-5) -0.26%
AvmTest::add_storage_map 1,901 (-5) -0.26%
TokenBlacklist::balance_of_public 1,899 (-5) -0.26%
Token::balance_of_public 1,899 (-5) -0.26%
Lending::borrow_public 1,898 (-5) -0.26%
Lending::withdraw_public 1,898 (-5) -0.26%
AuthRegistry::set_authorized 1,854 (-5) -0.27%
FeeJuice::balance_of_public 1,845 (-5) -0.27%
PriceFeed::set_price 1,805 (-5) -0.28%
NFT::set_minter 1,804 (-5) -0.28%
Token::set_minter 1,804 (-5) -0.28%
NFT::is_minter 1,801 (-5) -0.28%
Token::is_minter 1,801 (-5) -0.28%
AvmTest::set_storage_map 1,799 (-5) -0.28%
NFT::_finish_transfer_to_public 1,786 (-5) -0.28%
Benchmarking::broadcast 1,775 (-5) -0.28%
PriceFeed::get_price 1,753 (-5) -0.28%
StatefulTest::increment_public_value 1,751 (-5) -0.28%
AuthRegistry::is_reject_all 1,747 (-5) -0.29%
StatefulTest::get_public_value 1,737 (-5) -0.29%
AvmTest::poseidon2_hash 1,729 (-5) -0.29%
AvmTest::read_storage_map 1,706 (-5) -0.29%
AuthRegistry::set_reject_all 1,702 (-5) -0.29%
StatefulTest::increment_public_value_no_init_check 1,702 (-5) -0.29%
AvmTest::sha256_hash 3,910 (-13) -0.33%
Lending::_deposit 2,540 (-10) -0.39%
AvmTest::public_dispatch 60,503 (-259) -0.43%
Parent::pub_entry_point_twice 983 (-5) -0.51%
AvmTest::returndata_copy_oracle 1,823 (-10) -0.55%
Crowdfunding::public_dispatch 4,648 (-26) -0.56%
Token::_finalize_transfer_to_private_unsafe 6,631 (-55) -0.82%
Token::finalize_transfer_to_private 6,584 (-55) -0.83%
CardGame::on_card_played 5,949 (-51) -0.85%
Token::_finalize_mint_to_private_unsafe 6,274 (-55) -0.87%
Token::finalize_mint_to_private 6,227 (-55) -0.88%
Token::complete_refund 5,442 (-50) -0.91%
NFT::_finalize_transfer_to_private_unsafe 5,586 (-55) -0.98%
DocsExample::public_dispatch 4,670 (-46) -0.98%
NFT::finalize_transfer_to_private 5,539 (-55) -0.98%
CardGame::on_game_joined 5,035 (-51) -1.00%
CardGame::public_dispatch 16,030 (-166) -1.02%
CardGame::start_game 7,091 (-74) -1.03%
Crowdfunding::_publish_donation_receipts 927 (-26) -2.73%

@github-actions

Copy link
Copy Markdown
Contributor

Changes to circuit sizes

Generated at commit: b857688ee00f6e4c39ea75be8ad64bcbab2435b0, compared to commit: c6fdf4bda5c9ef32ca355cda9a5a0c7ed3d1a100

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_merge +1 ❌ +0.03% +8 ❌ +0.00%
rollup_root +1 ❌ +0.01% +8 ❌ +0.00%
rollup_block_merge +1 ❌ +0.01% +6 ❌ +0.00%
rollup_block_root +1 ❌ +0.02% +8 ❌ +0.00%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_merge 3,420 (+1) +0.03% 1,827,054 (+8) +0.00%
rollup_root 11,994 (+1) +0.01% 1,858,518 (+8) +0.00%
rollup_block_merge 12,010 (+1) +0.01% 1,858,530 (+6) +0.00%
rollup_block_root 4,490 (+1) +0.02% 2,739,660 (+8) +0.00%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants