suppress warnings about unused things

Signed-off-by: xermicus <cyrill@parity.io>
This commit is contained in:
xermicus
2024-03-12 18:16:12 +01:00
parent d12fa073fd
commit 6d058a42ed
15 changed files with 69 additions and 97 deletions
Generated
+19 -17
View File
@@ -57,9 +57,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.80"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
[[package]]
name = "ark-ff"
@@ -297,9 +297,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
[[package]]
name = "cc"
version = "1.0.89"
version = "1.0.90"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723"
checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
[[package]]
name = "cfg-if"
@@ -330,9 +330,9 @@ dependencies = [
[[package]]
name = "const-hex"
version = "1.11.2"
version = "1.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b37dae8c8ded08d5ec72caa1b4204a5344047cd4a2c7387e3d150020abfbc1c9"
checksum = "5ba00838774b4ab0233e355d26710fbfc8327a05c017f6dc4873f876d1f79f78"
dependencies = [
"cfg-if",
"cpufeatures",
@@ -792,6 +792,7 @@ dependencies = [
[[package]]
name = "inkwell"
version = "0.4.0"
source = "git+https://github.com/TheDan64/inkwell.git#69c5a3fcc3e8b997c36e20021c52adcff664d746"
dependencies = [
"either",
"inkwell_internals",
@@ -805,6 +806,7 @@ dependencies = [
[[package]]
name = "inkwell_internals"
version = "0.9.0"
source = "git+https://github.com/TheDan64/inkwell.git#69c5a3fcc3e8b997c36e20021c52adcff664d746"
dependencies = [
"proc-macro2",
"quote",
@@ -1110,7 +1112,7 @@ dependencies = [
[[package]]
name = "polkavm"
version = "0.9.3"
source = "git+https://github.com/koute/polkavm.git#658b2a612e966c5dde0860e7d95d57ffe87a0fdf"
source = "git+https://github.com/koute/polkavm.git#e278c34af27cf2c32fc44bcbfe2b17333312eb02"
dependencies = [
"libc",
"log",
@@ -1122,7 +1124,7 @@ dependencies = [
[[package]]
name = "polkavm-assembler"
version = "0.9.0"
source = "git+https://github.com/koute/polkavm.git#658b2a612e966c5dde0860e7d95d57ffe87a0fdf"
source = "git+https://github.com/koute/polkavm.git#e278c34af27cf2c32fc44bcbfe2b17333312eb02"
dependencies = [
"log",
]
@@ -1130,7 +1132,7 @@ dependencies = [
[[package]]
name = "polkavm-common"
version = "0.9.0"
source = "git+https://github.com/koute/polkavm.git#658b2a612e966c5dde0860e7d95d57ffe87a0fdf"
source = "git+https://github.com/koute/polkavm.git#e278c34af27cf2c32fc44bcbfe2b17333312eb02"
dependencies = [
"log",
]
@@ -1138,7 +1140,7 @@ dependencies = [
[[package]]
name = "polkavm-linker"
version = "0.9.2"
source = "git+https://github.com/koute/polkavm.git#658b2a612e966c5dde0860e7d95d57ffe87a0fdf"
source = "git+https://github.com/koute/polkavm.git#e278c34af27cf2c32fc44bcbfe2b17333312eb02"
dependencies = [
"gimli",
"hashbrown 0.14.3",
@@ -1152,7 +1154,7 @@ dependencies = [
[[package]]
name = "polkavm-linux-raw"
version = "0.9.0"
source = "git+https://github.com/koute/polkavm.git#658b2a612e966c5dde0860e7d95d57ffe87a0fdf"
source = "git+https://github.com/koute/polkavm.git#e278c34af27cf2c32fc44bcbfe2b17333312eb02"
[[package]]
name = "ppv-lite86"
@@ -1209,9 +1211,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.78"
version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
dependencies = [
"unicode-ident",
]
@@ -1799,18 +1801,18 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.57"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.57"
version = "1.0.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
dependencies = [
"proc-macro2",
"quote",
+6 -2
View File
@@ -8,8 +8,6 @@ petgraph = "0.6"
cc = "1.0"
libc = "0.2"
tempfile = "3.8"
#inkwell = { version = "0.4.0", default-features = false, features = ["llvm16-0", "no-libffi-linking", "target-riscv"] }
inkwell = { path = "../inkwell", default-features = false, features = ["serde", "llvm16-0", "no-libffi-linking", "target-riscv"] }
anyhow = "1.0"
semver = { version = "1.0", features = [ "serde" ] }
itertools = "0.12"
@@ -33,3 +31,9 @@ polkavm-linker = { git = "https://github.com/koute/polkavm.git" }
polkavm = { git = "https://github.com/koute/polkavm.git" }
parity-scale-codec = "3.6"
alloy-primitives = "0.6"
[workspace.dependencies.inkwell]
git = "https://github.com/TheDan64/inkwell.git"
commit = "69c5a3f"
default-features = false
features = ["serde", "llvm16-0", "no-libffi-linking", "target-riscv"]
+7 -5
View File
@@ -4,14 +4,16 @@ YUL and EVM bytecode recompiler to LLVM, targetting RISC-V on PolkaVM.
Code bases of [frontend](https://github.com/matter-labs/era-compiler-solidity) and [code generator](https://github.com/matter-labs/era-compiler-llvm-context) are forked adapted from ZKSync `zksolc`.
Primary goal of this codebase currently is to allow for benchmarks comparing runtime performance against ink!, solang and EVM interpreters.
# Status
Currently, primary goal of this codebase is to allow for benchmarks comparing performance against ink! and solang artifacts as well as EVM interpreters.
# TODO
The project is in a very early PoC phase; at this stage don't expect the produced code to be working nor to be correct for anything more than a basic flipper contract yet.
The project is in a very early PoC phase. Don't yet expect the produced code to be working nor to be correct for anything more than a basic flipper contract at the current stage.
- [ ] Efficient implementations of byte swaps, memset, memmove and the like
- [ ] Use drink! for integration tests once we have 64bit support in PolkaVM
- [ ] Use `drink` for integration tests once we have 64bit support in PolkaVM
- [ ] Exercice `schlau` and possibly `smart-bench` benchmark cases
- [ ] Tests currently rely on the binary being in $PATH, which is very annoying and requires `cargo install` all the times
- [ ] Define how to do deployments
@@ -25,8 +27,8 @@ The project is in a very early PoC phase; at this stage don't expect the produce
- [ ] Debug information
- [ ] Look for and implement further optimizations
- [ ] Differential testing against EVM
- [ ] Switch to LLVM 18 which has RV{32,64}E upstream
- [ ] Minimize scope of "stdlib", favorably implement it in high level language instead of LLVM IR.
- [ ] Switch to LLVM 18 which has `RV{32,64}E` targets upstream
- [ ] Minimize scope of "stdlib"
- [ ] Document differences from EVM
- [ ] Audit for bugs and correctness
- [ ] Rebranding
+7 -1
View File
@@ -11,4 +11,10 @@ build = "build.rs"
libc = { workspace = true }
[build-dependencies]
cc = { workspace = true }
cc = { workspace = true }
[target.aarch64-apple-darwin]
rustflags = [
"-C", "link-arg=-undefined",
"-C", "link-arg=dynamic_lookup",
]
+1
View File
@@ -3,6 +3,7 @@ name = "era-compiler-llvm-context"
version = "1.4.1"
authors = [
"Oleksandr Zarudnyi <a.zarudnyy@matterlabs.dev>",
"Cyrill Leutwiler <cyrill@parity.io>",
]
license = "MIT OR Apache-2.0"
edition = "2021"
@@ -3,13 +3,10 @@
//!
use inkwell::types::BasicType;
use inkwell::values::BasicValue;
use crate::eravm::context::address_space::AddressSpace;
use crate::eravm::context::function::declaration::Declaration as FunctionDeclaration;
use crate::eravm::context::function::llvm_runtime::LLVMRuntime;
use crate::eravm::context::function::Function;
use crate::eravm::context::pointer::Pointer;
use crate::eravm::context::Context;
use crate::eravm::Dependency;
use crate::eravm::WriteLLVM;
@@ -27,6 +24,7 @@ pub struct DefaultCall {
name: String,
}
#[allow(unused)]
impl DefaultCall {
/// The gas argument index.
pub const ARGUMENT_INDEX_GAS: usize = 0;
@@ -3,7 +3,6 @@
//!
use inkwell::types::BasicType;
use inkwell::values::BasicValue;
use crate::eravm::context::address_space::AddressSpace;
use crate::eravm::context::function::Function;
@@ -121,7 +120,7 @@ where
let value_join_block = context.append_basic_block("deployer_call_value_join_block");
context.set_basic_block(context.current_function().borrow().entry_block());
let abi_data = crate::eravm::utils::abi_data(
let _abi_data = crate::eravm::utils::abi_data(
context,
input_offset,
input_length,
@@ -17,7 +17,7 @@ pub fn create_context(
let module = llvm.create_module("test");
let optimizer = Optimizer::new(optimizer_settings);
Context::<DummyDependency>::new(&llvm, module, optimizer, None, true, None)
Context::<DummyDependency>::new(llvm, module, optimizer, None, true, None)
}
#[test]
+4 -33
View File
@@ -2,10 +2,6 @@
//! Translates the cryptographic operations.
//!
use inkwell::values::BasicValue;
use crate::eravm::context::address_space::AddressSpace;
use crate::eravm::context::function::Function as EraVMFunction;
use crate::eravm::context::Context;
use crate::eravm::Dependency;
@@ -13,37 +9,12 @@ use crate::eravm::Dependency;
/// Translates the `sha3` instruction.
///
pub fn sha3<'ctx, D>(
context: &mut Context<'ctx, D>,
offset: inkwell::values::IntValue<'ctx>,
length: inkwell::values::IntValue<'ctx>,
_context: &mut Context<'ctx, D>,
_offset: inkwell::values::IntValue<'ctx>,
_length: inkwell::values::IntValue<'ctx>,
) -> anyhow::Result<inkwell::values::BasicValueEnum<'ctx>>
where
D: Dependency + Clone,
{
Ok(offset.into())
/*
let offset_pointer = context.builder().build_int_to_ptr(
offset,
context.byte_type().ptr_type(AddressSpace::Heap.into()),
"sha3_offset_pointer",
)?;
Ok(context
.build_invoke(
context.llvm_runtime().sha3,
&[
offset_pointer.as_basic_value_enum(),
length.as_basic_value_enum(),
context
.bool_const(
context
.get_function(EraVMFunction::ZKSYNC_NEAR_CALL_ABI_EXCEPTION_HANDLER)
.is_some(),
)
.as_basic_value_enum(),
],
"sha3_call",
)
.expect("Always exists"))
*/
todo!()
}
+4 -7
View File
@@ -2,9 +2,6 @@
//! Translates a log or event call.
//!
use inkwell::values::BasicValue;
use crate::eravm::context::address_space::AddressSpace;
use crate::eravm::context::Context;
use crate::eravm::Dependency;
@@ -18,10 +15,10 @@ use crate::eravm::Dependency;
/// accept two at once.
///
pub fn log<'ctx, D>(
context: &mut Context<'ctx, D>,
input_offset: inkwell::values::IntValue<'ctx>,
input_length: inkwell::values::IntValue<'ctx>,
topics: Vec<inkwell::values::IntValue<'ctx>>,
_context: &mut Context<'ctx, D>,
_input_offset: inkwell::values::IntValue<'ctx>,
_input_length: inkwell::values::IntValue<'ctx>,
_topics: Vec<inkwell::values::IntValue<'ctx>>,
) -> anyhow::Result<()>
where
D: Dependency + Clone,
@@ -64,15 +64,6 @@ impl TargetMachine {
///
pub fn set_target_data(&self, module: &inkwell::module::Module) {
module.set_triple(&self.target_machine.get_triple());
let data_layout = self
.target_machine
.get_target_data()
.get_data_layout()
.as_str()
.to_str()
.expect("datalayout sting should be valid")
.to_owned();
module.set_data_layout(&self.target_machine.get_target_data().get_data_layout());
}
+1
View File
@@ -3,6 +3,7 @@ name = "revive-solidity"
version = "1.4.0"
authors = [
"Oleksandr Zarudnyi <a.zarudnyy@matterlabs.dev>",
"Cyrill Leutwiler <cyrill@parity.io>",
]
license = "MIT OR Apache-2.0"
edition = "2021"
@@ -1041,13 +1041,13 @@ where
InstructionName::CALL => {
let mut arguments = self.pop_arguments_llvm(context);
let gas = arguments.remove(0).into_int_value();
let address = arguments.remove(0).into_int_value();
let value = arguments.remove(0).into_int_value();
let input_offset = arguments.remove(0).into_int_value();
let input_size = arguments.remove(0).into_int_value();
let output_offset = arguments.remove(0).into_int_value();
let output_size = arguments.remove(0).into_int_value();
let _gas = arguments.remove(0).into_int_value();
let _address = arguments.remove(0).into_int_value();
let _value = arguments.remove(0).into_int_value();
let _input_offset = arguments.remove(0).into_int_value();
let _input_size = arguments.remove(0).into_int_value();
let _output_offset = arguments.remove(0).into_int_value();
let _output_size = arguments.remove(0).into_int_value();
todo!()
/*
@@ -748,15 +748,15 @@ impl FunctionCall {
Name::Call => {
let arguments = self.pop_arguments::<D, 7>(context)?;
let gas = arguments[0].value.into_int_value();
let address = arguments[1].value.into_int_value();
let value = arguments[2].value.into_int_value();
let input_offset = arguments[3].value.into_int_value();
let input_size = arguments[4].value.into_int_value();
let output_offset = arguments[5].value.into_int_value();
let output_size = arguments[6].value.into_int_value();
let _gas = arguments[0].value.into_int_value();
let _address = arguments[1].value.into_int_value();
let _value = arguments[2].value.into_int_value();
let _input_offset = arguments[3].value.into_int_value();
let _input_size = arguments[4].value.into_int_value();
let _output_offset = arguments[5].value.into_int_value();
let _output_size = arguments[6].value.into_int_value();
let simulation_address: Vec<Option<num::BigUint>> = arguments
let _simulation_address: Vec<Option<num::BigUint>> = arguments
.into_iter()
.map(|mut argument| argument.constant.take())
.collect();
@@ -218,7 +218,7 @@ where
);
}
let arguments = call.pop_arguments_llvm::<D, ARGUMENTS_COUNT>(context)?;
let _arguments = call.pop_arguments_llvm::<D, ARGUMENTS_COUNT>(context)?;
todo!()
//era_compiler_llvm_context::eravm_call::raw_far(
// context,
@@ -255,7 +255,7 @@ where
)
.map(Some)
}
identifier @ "system_call" => {
_identifier @ "system_call" => {
unimplemented!()
}
identifier @ "system_call_byref" => {