From 68347515223b6ca74b514b7d9c86e696b0f19d57 Mon Sep 17 00:00:00 2001 From: xermicus Date: Tue, 9 Jul 2024 17:57:58 +0200 Subject: [PATCH] support riscv64 target Signed-off-by: xermicus --- crates/builtins/Cargo.toml | 3 ++ crates/builtins/build.rs | 19 ++++++++---- .../builtins/libclang_rt.builtins-riscv32.a | Bin 312572 -> 316226 bytes .../builtins/libclang_rt.builtins-riscv64.a | Bin 0 -> 333516 bytes crates/common/Cargo.toml | 3 ++ crates/common/src/byte_length.rs | 3 ++ crates/integration/codesize.json | 6 ++-- crates/linker/Cargo.toml | 3 ++ crates/linker/src/lib.rs | 14 +++++++-- crates/llvm-context/Cargo.toml | 1 + crates/llvm-context/src/polkavm/const/mod.rs | 3 ++ crates/llvm-context/src/target_machine/mod.rs | 14 ++++++++- .../llvm-context/src/target_machine/target.rs | 12 ++++++++ crates/pallet-contracts-pvm-llapi/Cargo.toml | 3 ++ crates/pallet-contracts-pvm-llapi/build.rs | 28 +++++++++++++++--- 15 files changed, 96 insertions(+), 16 deletions(-) create mode 100644 crates/builtins/libclang_rt.builtins-riscv64.a diff --git a/crates/builtins/Cargo.toml b/crates/builtins/Cargo.toml index c4f1223..d8b3e8b 100644 --- a/crates/builtins/Cargo.toml +++ b/crates/builtins/Cargo.toml @@ -4,6 +4,9 @@ version = "0.1.0" edition = "2021" build = "build.rs" +[features] +riscv-64 = [] + # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] diff --git a/crates/builtins/build.rs b/crates/builtins/build.rs index dabea2e..0030e84 100644 --- a/crates/builtins/build.rs +++ b/crates/builtins/build.rs @@ -1,7 +1,11 @@ use std::{env, fs, io::Read, path::Path, process::Command}; +#[cfg(not(feature = "riscv-64"))] +pub const BUILTINS_ARCHIVE_FILE: &str = "libclang_rt.builtins-riscv32.a"; +#[cfg(feature = "riscv-64")] +pub const BUILTINS_ARCHIVE_FILE: &str = "libclang_rt.builtins-riscv64.a"; + fn main() { - let lib = "libclang_rt.builtins-riscv32.a"; let mut llvm_lib_dir = String::new(); Command::new("llvm-config") @@ -15,19 +19,22 @@ fn main() { let mut lib_path = std::path::PathBuf::from(llvm_lib_dir.trim()) .join("linux") - .join(lib); + .join(BUILTINS_ARCHIVE_FILE); if !lib_path.exists() { - lib_path = std::path::PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()).join(lib); + lib_path = std::path::PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()) + .join(BUILTINS_ARCHIVE_FILE); } - let archive = fs::read(lib_path).expect("clang builtins for riscv32 not found"); + let archive = fs::read(lib_path).expect("clang builtins not found"); let out_dir = env::var_os("OUT_DIR").expect("has OUT_DIR"); - let archive_path = Path::new(&out_dir).join(lib); + let archive_path = Path::new(&out_dir).join(BUILTINS_ARCHIVE_FILE); let len = archive.len(); std::fs::write(archive_path, &archive).expect("can write to OUT_DIR"); let src_path = Path::new(&out_dir).join("compiler_rt.rs"); - let src = format!("pub static COMPILER_RT: &[u8; {len}] = include_bytes!(\"{lib}\");"); + let src = format!( + "pub static COMPILER_RT: &[u8; {len}] = include_bytes!(\"{BUILTINS_ARCHIVE_FILE}\");" + ); fs::write(src_path, src).expect("can write to OUT_DIR"); println!("cargo:rerun-if-changed=build.rs"); diff --git a/crates/builtins/libclang_rt.builtins-riscv32.a b/crates/builtins/libclang_rt.builtins-riscv32.a index e9ee15d4a2165cc13b83890e9da11ae36490ef48..f13a8848deaddcde1ea17246b2fd40f1c47ace03 100644 GIT binary patch delta 88102 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%0A~zrDc!Q*f7g>NP-~rP|SFS|gfSdpNjAi`uK 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 delta 84279 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 Zt&EDp;uX5{OeZ9~2S6sZfft8e`wQ$V(YgQt diff --git a/crates/builtins/libclang_rt.builtins-riscv64.a b/crates/builtins/libclang_rt.builtins-riscv64.a new file mode 100644 index 0000000000000000000000000000000000000000..57a7d97012c8f86435a0b0f7dd676c70f4daf3f7 GIT binary patch literal 333516 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 D*s)1| literal 0 HcmV?d00001 diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index 7634ae4..401ac58 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -12,6 +12,9 @@ description = "Shared constants of the revive compiler" [lib] doctest = false +[features] +riscv-64 = [] + [dependencies] anyhow = { workspace = true } serde = { workspace = true, features = ["derive"] } diff --git a/crates/common/src/byte_length.rs b/crates/common/src/byte_length.rs index 08c3714..e452ca2 100644 --- a/crates/common/src/byte_length.rs +++ b/crates/common/src/byte_length.rs @@ -7,7 +7,10 @@ pub const BYTE_LENGTH_BYTE: usize = 1; pub const BYTE_LENGTH_X32: usize = 4; /// Native stack alignment size in bytes +#[cfg(not(feautre = "riscv-64"))] pub const BYTE_LENGTH_STACK_ALIGN: usize = 4; +#[cfg(feautre = "riscv-64")] +pub const BYTE_LENGTH_STACK_ALIGN: usize = 8; /// The x86_64 word byte-length. pub const BYTE_LENGTH_X64: usize = 8; diff --git a/crates/integration/codesize.json b/crates/integration/codesize.json index bb6ef56..9cedb4e 100644 --- a/crates/integration/codesize.json +++ b/crates/integration/codesize.json @@ -1,10 +1,10 @@ { "Baseline": 934, "Computation": 4360, - "DivisionArithmetics": 39448, - "ERC20": 46624, + "DivisionArithmetics": 39824, + "ERC20": 46471, "Events": 1749, "FibonacciIterative": 2973, "Flipper": 3563, - "SHA1": 32709 + "SHA1": 32543 } \ No newline at end of file diff --git a/crates/linker/Cargo.toml b/crates/linker/Cargo.toml index 2574b2a..9d30aaf 100644 --- a/crates/linker/Cargo.toml +++ b/crates/linker/Cargo.toml @@ -5,6 +5,9 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +riscv-64 = [] + [dependencies] inkwell = { workspace = true } tempfile = { workspace = true } diff --git a/crates/linker/src/lib.rs b/crates/linker/src/lib.rs index 6d1302e..27994fd 100644 --- a/crates/linker/src/lib.rs +++ b/crates/linker/src/lib.rs @@ -8,6 +8,16 @@ SECTIONS { .text : { KEEP(*(.text.polkavm_export)) *(.text .text.*) } }"#; +#[cfg(not(feature = "riscv-64"))] +const BUILTINS_ARCHIVE_FILE: &str = "libclang_rt.builtins-riscv32.a"; +#[cfg(feature = "riscv-64")] +const BUILTINS_ARCHIVE_FILE: &str = "libclang_rt.builtins-riscv64.a"; + +#[cfg(not(feature = "riscv-64"))] +const BUILTINS_LIB_NAME: &str = "clang_rt.builtins-riscv32"; +#[cfg(feature = "riscv-64")] +const BUILTINS_LIB_NAME: &str = "clang_rt.builtins-riscv64"; + fn invoke_lld(cmd_args: &[&str]) -> bool { let c_strings = cmd_args .iter() @@ -32,7 +42,7 @@ pub fn link>(input: T) -> anyhow::Result> { let output_path = dir.path().join("out.so"); let object_path = dir.path().join("out.o"); let linker_script_path = dir.path().join("linker.ld"); - let compiler_rt_path = dir.path().join("libclang_rt.builtins-riscv32.a"); + let compiler_rt_path = dir.path().join(BUILTINS_ARCHIVE_FILE); fs::write(&object_path, input).map_err(|msg| anyhow::anyhow!("{msg} {object_path:?}"))?; @@ -57,7 +67,7 @@ pub fn link>(input: T) -> anyhow::Result> { "--library-path", dir.path().to_str().expect("should be utf8"), "--library", - "clang_rt.builtins-riscv32", + BUILTINS_LIB_NAME, linker_script_path.to_str().expect("should be utf8"), object_path.to_str().expect("should be utf8"), "-o", diff --git a/crates/llvm-context/Cargo.toml b/crates/llvm-context/Cargo.toml index 413dc82..f50c238 100644 --- a/crates/llvm-context/Cargo.toml +++ b/crates/llvm-context/Cargo.toml @@ -14,6 +14,7 @@ doctest = false [features] riscv-zbb = [] +riscv-64 = [] [dependencies] anyhow = { workspace = true } diff --git a/crates/llvm-context/src/polkavm/const/mod.rs b/crates/llvm-context/src/polkavm/const/mod.rs index 9cc454f..1351ab6 100644 --- a/crates/llvm-context/src/polkavm/const/mod.rs +++ b/crates/llvm-context/src/polkavm/const/mod.rs @@ -10,7 +10,10 @@ pub const LLVM_VERSION: semver::Version = semver::Version::new(18, 1, 4); pub const ZKEVM_VERSION: semver::Version = semver::Version::new(1, 3, 2); /// The register width sized type +#[cfg(not(feature = "riscv-64"))] pub static XLEN: usize = revive_common::BIT_LENGTH_X32; +#[cfg(feature = "riscv-64")] +pub static XLEN: usize = revive_common::BIT_LENGTH_X64; /// The heap memory pointer pointer global variable name. pub static GLOBAL_HEAP_MEMORY_POINTER: &str = "memory_pointer"; diff --git a/crates/llvm-context/src/target_machine/mod.rs b/crates/llvm-context/src/target_machine/mod.rs index a877978..ab62569 100644 --- a/crates/llvm-context/src/target_machine/mod.rs +++ b/crates/llvm-context/src/target_machine/mod.rs @@ -20,10 +20,22 @@ pub struct TargetMachine { impl TargetMachine { /// The LLVM target name. + #[cfg(not(feature = "riscv-64"))] pub const VM_TARGET_NAME: &'static str = "riscv32"; + #[cfg(feature = "riscv-64")] + pub const VM_TARGET_NAME: &'static str = "riscv64"; /// The LLVM target triple. + #[cfg(not(feature = "riscv-64"))] pub const VM_TARGET_TRIPLE: &'static str = "riscv32-unknown-unknown-elf"; + #[cfg(feature = "riscv-64")] + pub const VM_TARGET_TRIPLE: &'static str = "riscv64-unknown-unknown-elf"; + + /// The LLVM target cpu + #[cfg(not(feature = "riscv-64"))] + pub const VM_TARGET_CPU: &'static str = "generic-rv32"; + #[cfg(feature = "riscv-64")] + pub const VM_TARGET_CPU: &'static str = "generic-rv64"; /// LLVM target features. #[cfg(feature = "riscv-zbb")] @@ -38,7 +50,7 @@ impl TargetMachine { .ok_or_else(|| anyhow::anyhow!("LLVM target machine `{}` not found", target.name()))? .create_target_machine( &inkwell::targets::TargetTriple::create(target.triple()), - "generic-rv32", + Self::VM_TARGET_CPU, Self::VM_FEATURES, optimizer_settings.level_back_end, inkwell::targets::RelocMode::PIC, diff --git a/crates/llvm-context/src/target_machine/target.rs b/crates/llvm-context/src/target_machine/target.rs index ffb4acf..91a029e 100644 --- a/crates/llvm-context/src/target_machine/target.rs +++ b/crates/llvm-context/src/target_machine/target.rs @@ -13,14 +13,20 @@ impl Target { /// Returns the target name. pub fn name(&self) -> &str { match self { + #[cfg(not(feature = "riscv-64"))] Self::PVM => "riscv32", + #[cfg(feature = "riscv-64")] + Self::PVM => "riscv64", } } /// Returns the target triple. pub fn triple(&self) -> &str { match self { + #[cfg(not(feature = "riscv-64"))] Self::PVM => "riscv32-unknown-unknown-elf", + #[cfg(feature = "riscv-64")] + Self::PVM => "riscv64-unknown-unknown-elf", } } @@ -37,7 +43,10 @@ impl FromStr for Target { fn from_str(string: &str) -> Result { match string { + #[cfg(not(feature = "riscv-64"))] "riscv32" => Ok(Self::PVM), + #[cfg(feature = "riscv-64")] + "riscv64" => Ok(Self::PVM), _ => Err(anyhow::anyhow!( "Unknown target `{}`. Supported targets: {:?}", string, @@ -50,7 +59,10 @@ impl FromStr for Target { impl std::fmt::Display for Target { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { + #[cfg(not(feature = "riscv-64"))] Target::PVM => write!(f, "riscv32"), + #[cfg(feature = "riscv-64")] + Target::PVM => write!(f, "riscv64"), } } } diff --git a/crates/pallet-contracts-pvm-llapi/Cargo.toml b/crates/pallet-contracts-pvm-llapi/Cargo.toml index d80beb7..5b06be3 100644 --- a/crates/pallet-contracts-pvm-llapi/Cargo.toml +++ b/crates/pallet-contracts-pvm-llapi/Cargo.toml @@ -3,6 +3,9 @@ name = "pallet-contracts-pvm-llapi" version = "0.1.0" edition = "2021" +[features] +riscv-64 = [] + [dependencies] anyhow = { workspace = true } inkwell = { workspace = true, features = ["target-riscv", "no-libffi-linking", "llvm18-0"] } \ No newline at end of file diff --git a/crates/pallet-contracts-pvm-llapi/build.rs b/crates/pallet-contracts-pvm-llapi/build.rs index 110e7f0..6a17ac7 100644 --- a/crates/pallet-contracts-pvm-llapi/build.rs +++ b/crates/pallet-contracts-pvm-llapi/build.rs @@ -1,13 +1,33 @@ use std::{env, fs, path::Path, process::Command}; +#[cfg(not(feature = "riscv-64"))] +const TARGET_TRIPLE_FLAG: &str = "-triple=riscv32-unknown-unknown-elf"; +#[cfg(feature = "riscv-64")] +const TARGET_TRIPLE_FLAG: &str = "-triple=riscv64-unknown-unknown-elf"; + +#[cfg(not(feature = "riscv-64"))] +const TARGET_FLAG: &str = "--target=riscv32"; +#[cfg(feature = "riscv-64")] +const TARGET_FLAG: &str = "--target=riscv64"; + +#[cfg(not(feature = "riscv-64"))] +const TARGET_ARCH_FLAG: &str = "-march=rv32em"; +#[cfg(feature = "riscv-64")] +const TARGET_ARCH_FLAG: &str = "-march=rv64em"; + +#[cfg(not(feature = "riscv-64"))] +const TARGET_ABI_FLAG: &str = "-mabi=ilp32e"; +#[cfg(feature = "riscv-64")] +const TARGET_ABI_FLAG: &str = "-mabi=lp64e"; + fn compile(bitcode_path: &str) { let output = Command::new("clang") .args([ - "--target=riscv32", + TARGET_FLAG, "-Xclang", - "-triple=riscv32-unknown-unknown-elf", - "-march=rv32em", - "-mabi=ilp32e", + TARGET_TRIPLE_FLAG, + TARGET_ARCH_FLAG, + TARGET_ABI_FLAG, "-fno-exceptions", "-ffreestanding", "-Wall",