Remove unnecessary changes
This commit is contained in:
parent
0a833ba8a1
commit
ffa34ae328
@ -5,12 +5,15 @@ version = "0.0.0"
|
||||
|
||||
[dependencies]
|
||||
core = { path = "./sysroot_src/src/libcore" }
|
||||
compiler_builtins = { version = "0.1", features = ["rustc-dep-of-std"] }
|
||||
compiler_builtins = "0.1"
|
||||
alloc = { path = "./sysroot_src/src/liballoc" }
|
||||
std = { path = "./sysroot_src/src/libstd" }
|
||||
|
||||
alloc_system = { path = "./alloc_system" }
|
||||
|
||||
[patch.crates-io]
|
||||
rustc-std-workspace-core = { path = "./sysroot_src/src/tools/rustc-std-workspace-core" }
|
||||
rustc-std-workspace-alloc = { path = "./rustc-std-workspace-alloc" }
|
||||
compiler_builtins = { path = "./compiler-builtins" }
|
||||
|
||||
[profile.release]
|
||||
debug = true
|
||||
|
@ -4,6 +4,8 @@ cd $(dirname "$0")
|
||||
|
||||
# Cleanup for previous run
|
||||
# v Clean target dir except for build scripts and incremental cache
|
||||
rm -r target/*/{debug,release}/{build,deps,examples,libsysroot*,native} || true
|
||||
rm Cargo.lock 2>/dev/null || true
|
||||
rm -r sysroot 2>/dev/null || true
|
||||
|
||||
# FIXME find a better way to get the target triple
|
||||
|
@ -1 +0,0 @@
|
||||
Subproject commit 36da64f20e96206ac279f700586817c8abe3bdf8
|
@ -1,6 +1,16 @@
|
||||
#![feature(start, box_syntax, core_intrinsics, alloc_error_handler)]
|
||||
#![feature(start, box_syntax, alloc_system, core_intrinsics, alloc_prelude, alloc_error_handler)]
|
||||
#![no_std]
|
||||
|
||||
extern crate alloc;
|
||||
extern crate alloc_system;
|
||||
|
||||
use alloc::prelude::v1::*;
|
||||
|
||||
use alloc_system::System;
|
||||
|
||||
#[global_allocator]
|
||||
static ALLOC: System = System;
|
||||
|
||||
#[link(name = "c")]
|
||||
extern "C" {
|
||||
fn puts(s: *const u8);
|
||||
@ -13,12 +23,19 @@ fn panic_handler(_: &core::panic::PanicInfo) -> ! {
|
||||
}
|
||||
}
|
||||
|
||||
#[alloc_error_handler]
|
||||
fn alloc_error_handler(_: alloc::alloc::Layout) -> ! {
|
||||
unsafe {
|
||||
core::intrinsics::abort();
|
||||
}
|
||||
}
|
||||
|
||||
#[start]
|
||||
fn main(_argc: isize, _argv: *const *const u8) -> isize {
|
||||
extern "C" {
|
||||
fn __rust_u128_mulo(a: u128, b: u128) -> (u128, bool);
|
||||
let world: Box<&str> = box "Hello World!\0";
|
||||
unsafe {
|
||||
puts(*world as *const str as *const u8);
|
||||
}
|
||||
|
||||
assert_eq!(unsafe { __rust_u128_mulo(353985398u128, 932490u128).0 }, 330087843781020u128);
|
||||
0
|
||||
}
|
||||
|
@ -318,14 +318,6 @@ fn neg(self) -> i16 {
|
||||
}
|
||||
}
|
||||
|
||||
impl Neg for i128 {
|
||||
type Output = i128;
|
||||
|
||||
fn neg(self) -> i128 {
|
||||
-self
|
||||
}
|
||||
}
|
||||
|
||||
impl Neg for isize {
|
||||
type Output = isize;
|
||||
|
||||
|
43
test.sh
43
test.sh
@ -4,9 +4,52 @@ source config.sh
|
||||
rm -r target/out || true
|
||||
mkdir -p target/out/clif
|
||||
|
||||
echo "[BUILD] mini_core"
|
||||
$RUSTC example/mini_core.rs --crate-name mini_core --crate-type dylib
|
||||
|
||||
echo "[BUILD] example"
|
||||
$RUSTC example/example.rs --crate-type lib
|
||||
|
||||
echo "[JIT] mini_core_hello_world"
|
||||
SHOULD_RUN=1 JIT_ARGS="abc bcd" $RUSTC --crate-type bin example/mini_core_hello_world.rs --cfg jit
|
||||
|
||||
echo "[AOT] mini_core_hello_world"
|
||||
$RUSTC example/mini_core_hello_world.rs --crate-name mini_core_hello_world --crate-type bin
|
||||
./target/out/mini_core_hello_world abc bcd
|
||||
|
||||
echo "[AOT] arbitrary_self_types_pointers_and_wrappers"
|
||||
$RUSTC example/arbitrary_self_types_pointers_and_wrappers.rs --crate-name arbitrary_self_types_pointers_and_wrappers --crate-type bin
|
||||
./target/out/arbitrary_self_types_pointers_and_wrappers
|
||||
|
||||
echo "[BUILD] sysroot"
|
||||
time ./build_sysroot/build_sysroot.sh
|
||||
|
||||
echo "[BUILD+RUN] alloc_example"
|
||||
$RUSTC example/alloc_example.rs --crate-type bin
|
||||
./target/out/alloc_example
|
||||
|
||||
echo "[BUILD+RUN] std_example"
|
||||
$RUSTC example/std_example.rs --crate-type bin
|
||||
./target/out/std_example
|
||||
|
||||
echo "[BUILD] mod_bench"
|
||||
$RUSTC example/mod_bench.rs --crate-type bin
|
||||
|
||||
# FIXME linker gives multiple definitions error on Linux
|
||||
#echo "[BUILD] sysroot in release mode"
|
||||
#./build_sysroot/build_sysroot.sh --release
|
||||
|
||||
COMPILE_MOD_BENCH_INLINE="$RUSTC example/mod_bench.rs --crate-type bin -Zmir-opt-level=3 -O --crate-name mod_bench_inline"
|
||||
COMPILE_MOD_BENCH_LLVM_0="rustc example/mod_bench.rs --crate-type bin -Copt-level=0 -o target/out/mod_bench_llvm_0 -Cpanic=abort"
|
||||
COMPILE_MOD_BENCH_LLVM_1="rustc example/mod_bench.rs --crate-type bin -Copt-level=1 -o target/out/mod_bench_llvm_1 -Cpanic=abort"
|
||||
COMPILE_MOD_BENCH_LLVM_2="rustc example/mod_bench.rs --crate-type bin -Copt-level=2 -o target/out/mod_bench_llvm_2 -Cpanic=abort"
|
||||
COMPILE_MOD_BENCH_LLVM_3="rustc example/mod_bench.rs --crate-type bin -Copt-level=3 -o target/out/mod_bench_llvm_3 -Cpanic=abort"
|
||||
|
||||
# Use 100 runs, because a single compilations doesn't take more than ~150ms, so it isn't very slow
|
||||
hyperfine --runs 100 "$COMPILE_MOD_BENCH_INLINE" "$COMPILE_MOD_BENCH_LLVM_0" "$COMPILE_MOD_BENCH_LLVM_1" "$COMPILE_MOD_BENCH_LLVM_2" "$COMPILE_MOD_BENCH_LLVM_3"
|
||||
|
||||
echo
|
||||
echo "[Bench] mod_bench"
|
||||
hyperfine ./target/out/mod_bench{,_inline} ./target/out/mod_bench_llvm_*
|
||||
|
||||
cat target/out/log.txt | sort | uniq -c
|
||||
|
Loading…
Reference in New Issue
Block a user