From 60d097807e9d07f8bddac718f4857991b3ae35a6 Mon Sep 17 00:00:00 2001 From: Oleksandr Zarudnyi Date: Thu, 4 Apr 2024 16:55:53 +0800 Subject: [PATCH] Update to LLVM 17 --- .cargo/config.toml | 2 +- Cargo.lock | 30 ++++++++++++------- Cargo.toml | 2 +- LLVM.lock | 2 +- compiler_tester/Cargo.toml | 10 +++---- {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 .../parser/syntax/tree/literal/alignment.rs | 13 ++++---- 15 files changed, 47 insertions(+), 42 deletions(-) rename {fuzz => fuzzer}/.gitignore (100%) rename {fuzz => fuzzer}/Cargo.toml (75%) 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..7130eeea 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -18,7 +18,7 @@ rustflags = [ [env] LLVM_SYS_150_PREFIX = { value = "./target-llvm/target-final/", relative = true, force = false } -RUST_BACKTRACE = { value = "full" } +RUST_BACKTRACE = { value = "0" } RUST_LOG = { value = "vm=trace" } [tools.clippy] diff --git a/Cargo.lock b/Cargo.lock index 7b610881..0463f552 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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#7a7d7f8d1772c558c9dc6543148176700a6d9d51" +source = "git+https://github.com/matter-labs/era-compiler-llvm-context?branch=az-cpr-1307-update-to-llvm-17#649f1e73eb733f3b6c44ddca1997d1b2275d5dc5" 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#6a2861cc6fb7557bee9a2aa29075c950e9020b34" +source = "git+https://github.com/matter-labs/era-compiler-solidity?branch=az-cpr-1307-update-to-llvm-17#2a86379ae0e12da6150a1ddc410bb34d00d5ce27" 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=az-cpr-1307-update-to-llvm-17#acd4b7ad721c033fca7535b007f0308a9027eb1c" dependencies = [ "anyhow", "colored", @@ -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.58", ] [[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", ] @@ -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" 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/LLVM.lock b/LLVM.lock index 9b393bc3..80305ca4 100644 --- a/LLVM.lock +++ b/LLVM.lock @@ -1,2 +1,2 @@ url = "https://github.com/matter-labs/era-compiler-llvm" -branch = "main" +branch = "dev-17" diff --git a/compiler_tester/Cargo.toml b/compiler_tester/Cargo.toml index 10efbdda..0b8973ef 100644 --- a/compiler_tester/Cargo.toml +++ b/compiler_tester/Cargo.toml @@ -43,9 +43,9 @@ zkevm_opcode_defs = { git = "https://github.com/matter-labs/era-zkevm_opcode_def zkevm_tester = { git = "https://github.com/matter-labs/era-zkevm_tester", branch = "v1.4.1" } era-compiler-common = { git = "https://github.com/matter-labs/era-compiler-common", branch = "main" } -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" } -era-compiler-vyper = { git = "https://github.com/matter-labs/era-compiler-vyper", branch = "main" } +era-compiler-llvm-context = { git = "https://github.com/matter-labs/era-compiler-llvm-context", branch = "az-cpr-1307-update-to-llvm-17" } +era-compiler-solidity = { git = "https://github.com/matter-labs/era-compiler-solidity", branch = "az-cpr-1307-update-to-llvm-17" } +era-compiler-vyper = { git = "https://github.com/matter-labs/era-compiler-vyper", branch = "az-cpr-1307-update-to-llvm-17" } # era-compiler-common = { path = "../../era-compiler-common" } # era-compiler-llvm-context = { path = "../../era-compiler-llvm-context" } @@ -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 75% rename from fuzz/Cargo.toml rename to fuzzer/Cargo.toml index c6c457e6..a2bc4adc 100644 --- a/fuzz/Cargo.toml +++ b/fuzzer/Cargo.toml @@ -7,22 +7,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" @@ -36,3 +20,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 = "az-cpr-1307-update-to-llvm-17" } +era-compiler-solidity = { git = "https://github.com/matter-labs/era-compiler-solidity", branch = "az-cpr-1307-update-to-llvm-17" } + +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_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 - } }