From 6839147d568ae9b76d5070817700d5deb0c0584a Mon Sep 17 00:00:00 2001 From: Oleksandr Zarudnyi Date: Wed, 17 Apr 2024 22:30:37 +0800 Subject: [PATCH] Update to LLVM 17 (#6) Signed-off-by: Vladimir Radosavljevic Co-authored-by: Anton Baliasnikov --- .cargo/config.toml | 4 +- .github/workflows/benchmarks.yml | 7 +- .github/workflows/tests.yaml | 2 - Cargo.lock | 68 +++++++++++-------- Cargo.toml | 2 +- compiler_tester/Cargo.toml | 4 +- {fuzz => fuzzer}/.gitignore | 0 {fuzz => fuzzer}/Cargo.toml | 30 ++++---- {fuzz => fuzzer}/README.md | 0 {fuzz => fuzzer}/fuzz_contracts/demo/demo.md | 0 {fuzz => fuzzer}/fuzz_contracts/demo/demo.sol | 0 .../optimizer_bug/optimizer_bug.sol | 0 {fuzz => fuzzer}/fuzz_targets/common.rs | 0 {fuzz => fuzzer}/fuzz_targets/demo.rs | 0 .../fuzz_targets/optimizer_bug.rs | 0 solidity | 2 +- .../parser/syntax/tree/literal/alignment.rs | 13 ++-- 17 files changed, 66 insertions(+), 66 deletions(-) rename {fuzz => fuzzer}/.gitignore (100%) rename {fuzz => fuzzer}/Cargo.toml (88%) rename {fuzz => fuzzer}/README.md (100%) rename {fuzz => fuzzer}/fuzz_contracts/demo/demo.md (100%) rename {fuzz => fuzzer}/fuzz_contracts/demo/demo.sol (100%) rename {fuzz => fuzzer}/fuzz_contracts/optimizer_bug/optimizer_bug.sol (100%) rename {fuzz => fuzzer}/fuzz_targets/common.rs (100%) rename {fuzz => fuzzer}/fuzz_targets/demo.rs (100%) rename {fuzz => fuzzer}/fuzz_targets/optimizer_bug.rs (100%) diff --git a/.cargo/config.toml b/.cargo/config.toml index ddcef03f..a3a9d7c1 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -17,8 +17,8 @@ rustflags = [ ] [env] -LLVM_SYS_150_PREFIX = { value = "./target-llvm/target-final/", relative = true, force = false } -RUST_BACKTRACE = { value = "full" } +LLVM_SYS_170_PREFIX = { value = "./target-llvm/target-final/", relative = true, force = false } +RUST_BACKTRACE = { value = "0" } RUST_LOG = { value = "vm=trace" } [tools.clippy] diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 915cb711..dae4224d 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -46,9 +46,9 @@ jobs: - name: Define branches run: | if [ "${{ matrix.type }}" = "candidate" ]; then - echo "COMPILER_TESTER_BRANCH_NAME=${{ github.event.inputs.compiler_tester_candidate_branch || 'main' }}" >> $GITHUB_ENV + echo "COMPILER_TESTER_BRANCH_NAME=${{ github.event.inputs.compiler_tester_candidate_branch || github.head_ref }}" >> $GITHUB_ENV else - echo "COMPILER_TESTER_BRANCH_NAME=${{ github.event.inputs.compiler_tester_reference_branch || 'main' }}" >> $GITHUB_ENV + echo "COMPILER_TESTER_BRANCH_NAME=${{ github.event.inputs.compiler_tester_reference_branch || github.event.repository.default_branch }}" >> $GITHUB_ENV fi - name: Checkout compiler-tester @@ -64,10 +64,7 @@ jobs: debug: ${{ github.event.inputs.llvm_build_type || 'release' }} - name: Benchmark - env: - RUST_BACKTRACE: full run: | - export LLVM_SYS_150_PREFIX="$(pwd)/target-llvm/target-final/" cargo build --verbose --release --bin 'compiler-tester' cargo build --verbose --release --manifest-path /usr/local/cargo/git/checkouts/era-compiler-solidity-*/*/Cargo.toml --target-dir './target-zksolc/' cargo build --verbose --release --manifest-path /usr/local/cargo/git/checkouts/era-compiler-vyper-*/*/Cargo.toml --target-dir './target-zkvyper/' diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 68debc1f..df715cf7 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -28,8 +28,6 @@ jobs: - name: Run tests run: | - export RUST_BACKTRACE='full' - export LLVM_SYS_150_PREFIX="$(pwd)/target-llvm/target-final/" cargo build --verbose --release --bin 'compiler-tester' cargo build --verbose --release --manifest-path /usr/local/cargo/git/checkouts/era-compiler-solidity-*/*/Cargo.toml --target-dir './target-zksolc/' cargo build --verbose --release --manifest-path /usr/local/cargo/git/checkouts/era-compiler-vyper-*/*/Cargo.toml --target-dir './target-zkvyper/' diff --git a/Cargo.lock b/Cargo.lock index 66d268fc..daafe0ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,7 +63,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -501,7 +501,7 @@ dependencies = [ [[package]] name = "era-compiler-llvm-context" version = "1.4.1" -source = "git+https://github.com/matter-labs/era-compiler-llvm-context?branch=main#4ae31ed6286da78869dc76a2ff851590443a81da" +source = "git+https://github.com/matter-labs/era-compiler-llvm-context?branch=main#94d110f5061e8ef9b14db964ed32ee974cceacb2" dependencies = [ "anyhow", "era-compiler-common", @@ -523,7 +523,7 @@ dependencies = [ [[package]] name = "era-compiler-solidity" version = "1.4.1" -source = "git+https://github.com/matter-labs/era-compiler-solidity?branch=main#e6486e75696ad5e1b0c3eba8e6345f4c0943d3a0" +source = "git+https://github.com/matter-labs/era-compiler-solidity?branch=main#fab586681524407644c155dd22e36cd65b9fdee2" dependencies = [ "anyhow", "colored", @@ -552,7 +552,7 @@ dependencies = [ [[package]] name = "era-compiler-vyper" version = "1.4.1" -source = "git+https://github.com/matter-labs/era-compiler-vyper?branch=main#8c58782c8bb18cbd5abaf0c5bf0ce8f79f3d6444" +source = "git+https://github.com/matter-labs/era-compiler-vyper?branch=main#6dfea3cd96a56d220aaf9083e32c3eb411c486b8" dependencies = [ "anyhow", "colored", @@ -758,7 +758,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -1081,8 +1081,8 @@ dependencies = [ [[package]] name = "inkwell" -version = "0.1.0" -source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#98a023834492fe59b4ae97c405f75626437fced0" +version = "0.4.0" +source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-17#c0821d7234b867b79baf29b87a3fb0c751eccad2" dependencies = [ "either", "inkwell_internals", @@ -1091,16 +1091,17 @@ dependencies = [ "once_cell", "parking_lot", "serde", + "thiserror", ] [[package]] name = "inkwell_internals" -version = "0.6.0" -source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-15#98a023834492fe59b4ae97c405f75626437fced0" +version = "0.9.0" +source = "git+https://github.com/matter-labs-forks/inkwell?branch=llvm-17#c0821d7234b867b79baf29b87a3fb0c751eccad2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.59", ] [[package]] @@ -1230,13 +1231,14 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "llvm-sys" -version = "150.0.5" -source = "git+https://github.com/matter-labs-forks/llvm-sys.rs?branch=llvm-15.0#049dba7d1a8154f01c6267e8612504d56e651088" +version = "170.0.1" +source = "git+https://github.com/matter-labs-forks/llvm-sys.rs?branch=llvm-17.0#d165991787fe71259076aeabe25019f2e94c2a4b" dependencies = [ + "anyhow", "cc", "lazy_static", "libc", - "regex", + "regex-lite", "semver", ] @@ -1412,7 +1414,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -1508,7 +1510,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -1598,9 +1600,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -1758,6 +1760,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" + [[package]] name = "regex-syntax" version = "0.8.3" @@ -2007,29 +2015,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", @@ -2232,9 +2240,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.58" +version = "2.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" dependencies = [ "proc-macro2", "quote", @@ -2309,7 +2317,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -2428,7 +2436,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", ] [[package]] @@ -2568,7 +2576,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", "wasm-bindgen-shared", ] @@ -2602,7 +2610,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.59", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.toml index 064aa885..7a574496 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,6 @@ members = [ "solidity_adapter", "coverage_watcher", "benchmark_analyzer", - "fuzz" + "fuzzer" ] resolver = "2" diff --git a/compiler_tester/Cargo.toml b/compiler_tester/Cargo.toml index 10efbdda..d012ac35 100644 --- a/compiler_tester/Cargo.toml +++ b/compiler_tester/Cargo.toml @@ -67,6 +67,6 @@ features = ["blocking"] [dependencies.inkwell] git = "https://github.com/matter-labs-forks/inkwell" -branch = "llvm-15" +branch = "llvm-17" default-features = false -features = ["llvm15-0", "no-libffi-linking", "target-eravm", "target-evm"] +features = ["llvm17-0", "no-libffi-linking", "target-eravm", "target-evm"] diff --git a/fuzz/.gitignore b/fuzzer/.gitignore similarity index 100% rename from fuzz/.gitignore rename to fuzzer/.gitignore diff --git a/fuzz/Cargo.toml b/fuzzer/Cargo.toml similarity index 88% rename from fuzz/Cargo.toml rename to fuzzer/Cargo.toml index c7cb6dd0..3f095ef8 100644 --- a/fuzz/Cargo.toml +++ b/fuzzer/Cargo.toml @@ -8,22 +8,6 @@ edition = "2021" [package.metadata] cargo-fuzz = true -[dependencies] -libfuzzer-sys = "0.4" -era-compiler-llvm-context = { git = "https://github.com/matter-labs/era-compiler-llvm-context", branch = "main" } -era-compiler-solidity = { git = "https://github.com/matter-labs/era-compiler-solidity", branch = "main" } -zkevm-assembly = { git = "https://github.com/matter-labs/era-zkEVM-assembly", branch = "v1.4.1" } -zkevm_tester = { git = "https://github.com/matter-labs/era-zkevm_tester", branch = "v1.4.1" } -anyhow = "1.0" -semver = { version = "1.0", features = ["serde"] } - -[dependencies.compiler-tester] -path = "../compiler_tester" - -[dependencies.solidity-adapter] -path = "../solidity_adapter" - - [[bin]] name = "demo" path = "fuzz_targets/demo.rs" @@ -37,3 +21,17 @@ path = "fuzz_targets/optimizer_bug.rs" test = false doc = false bench = false + +[dependencies] +anyhow = "1.0" +semver = { version = "1.0", features = ["serde"] } +libfuzzer-sys = "0.4" + +zkevm-assembly = { git = "https://github.com/matter-labs/era-zkEVM-assembly", branch = "v1.4.1" } +zkevm_tester = { git = "https://github.com/matter-labs/era-zkevm_tester", branch = "v1.4.1" } + +era-compiler-llvm-context = { git = "https://github.com/matter-labs/era-compiler-llvm-context", branch = "main" } +era-compiler-solidity = { git = "https://github.com/matter-labs/era-compiler-solidity", branch = "main" } + +compiler-tester = { path = "../compiler_tester" } +solidity-adapter = { path = "../solidity_adapter" } diff --git a/fuzz/README.md b/fuzzer/README.md similarity index 100% rename from fuzz/README.md rename to fuzzer/README.md diff --git a/fuzz/fuzz_contracts/demo/demo.md b/fuzzer/fuzz_contracts/demo/demo.md similarity index 100% rename from fuzz/fuzz_contracts/demo/demo.md rename to fuzzer/fuzz_contracts/demo/demo.md diff --git a/fuzz/fuzz_contracts/demo/demo.sol b/fuzzer/fuzz_contracts/demo/demo.sol similarity index 100% rename from fuzz/fuzz_contracts/demo/demo.sol rename to fuzzer/fuzz_contracts/demo/demo.sol diff --git a/fuzz/fuzz_contracts/optimizer_bug/optimizer_bug.sol b/fuzzer/fuzz_contracts/optimizer_bug/optimizer_bug.sol similarity index 100% rename from fuzz/fuzz_contracts/optimizer_bug/optimizer_bug.sol rename to fuzzer/fuzz_contracts/optimizer_bug/optimizer_bug.sol diff --git a/fuzz/fuzz_targets/common.rs b/fuzzer/fuzz_targets/common.rs similarity index 100% rename from fuzz/fuzz_targets/common.rs rename to fuzzer/fuzz_targets/common.rs diff --git a/fuzz/fuzz_targets/demo.rs b/fuzzer/fuzz_targets/demo.rs similarity index 100% rename from fuzz/fuzz_targets/demo.rs rename to fuzzer/fuzz_targets/demo.rs diff --git a/fuzz/fuzz_targets/optimizer_bug.rs b/fuzzer/fuzz_targets/optimizer_bug.rs similarity index 100% rename from fuzz/fuzz_targets/optimizer_bug.rs rename to fuzzer/fuzz_targets/optimizer_bug.rs diff --git a/solidity b/solidity index 6c7e686d..30d78788 160000 --- a/solidity +++ b/solidity @@ -1 +1 @@ -Subproject commit 6c7e686d86c33b3f329a6962728a1f1bed69d67a +Subproject commit 30d78788941b5f891c96fe8a1c7b924c32a1478c diff --git a/solidity_adapter/src/test/function_call/parser/syntax/tree/literal/alignment.rs b/solidity_adapter/src/test/function_call/parser/syntax/tree/literal/alignment.rs index b1a88232..52d9658f 100644 --- a/solidity_adapter/src/test/function_call/parser/syntax/tree/literal/alignment.rs +++ b/solidity_adapter/src/test/function_call/parser/syntax/tree/literal/alignment.rs @@ -15,6 +15,12 @@ pub enum Alignment { Default, } +impl Default for Alignment { + fn default() -> Self { + Self::Default + } +} + impl Alignment { /// /// A shortcut constructor. @@ -29,11 +35,4 @@ impl Alignment { pub fn right() -> Self { Self::Right } - - /// - /// A shortcut constructor. - /// - pub fn default() -> Self { - Self::Default - } }