about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2019-07-25 15:49:38 +0200
committerbjorn3 <bjorn3@users.noreply.github.com>2019-07-26 11:32:04 +0200
commit0a833ba8a1b04281ec06892262ca326d259d1e41 (patch)
treee040e0c74342ff81d114a4a04a5bafa40b7d29f8
parentb46c8bfb7e2803f50cde344bd21e8f9deb59d62d (diff)
downloadrust-0a833ba8a1b04281ec06892262ca326d259d1e41.tar.gz
rust-0a833ba8a1b04281ec06892262ca326d259d1e41.zip
[WIP]
-rw-r--r--build_sysroot/Cargo.toml8
-rwxr-xr-xbuild_sysroot/build_sysroot.sh2
m---------build_sysroot/compiler-builtins0
-rw-r--r--build_sysroot/compiler_builtins/Cargo.toml20
-rw-r--r--build_sysroot/compiler_builtins/lib.rs9
-rw-r--r--example/alloc_example.rs25
-rw-r--r--src/lib.rs2
-rwxr-xr-xtest.sh43
8 files changed, 8 insertions, 101 deletions
diff --git a/build_sysroot/Cargo.toml b/build_sysroot/Cargo.toml
index 532216ba851..af199c757e0 100644
--- a/build_sysroot/Cargo.toml
+++ b/build_sysroot/Cargo.toml
@@ -5,16 +5,12 @@ version = "0.0.0"
 
 [dependencies]
 core = { path = "./sysroot_src/src/libcore" }
-compiler_builtins = "0.1"
-alloc = { path = "./sysroot_src/src/liballoc" }
-std = { path = "./sysroot_src/src/libstd" }
-
-alloc_system = { path = "./alloc_system" }
+compiler_builtins = { version = "0.1", features = ["rustc-dep-of-std"] }
 
 [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" }
+compiler_builtins = { path = "./compiler-builtins" }
 
 [profile.release]
 debug = true
diff --git a/build_sysroot/build_sysroot.sh b/build_sysroot/build_sysroot.sh
index 57752c402c5..ea5e4a169e5 100755
--- a/build_sysroot/build_sysroot.sh
+++ b/build_sysroot/build_sysroot.sh
@@ -4,8 +4,6 @@ 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
diff --git a/build_sysroot/compiler-builtins b/build_sysroot/compiler-builtins
new file mode 160000
+Subproject 36da64f20e96206ac279f700586817c8abe3bdf
diff --git a/build_sysroot/compiler_builtins/Cargo.toml b/build_sysroot/compiler_builtins/Cargo.toml
deleted file mode 100644
index 724a637a201..00000000000
--- a/build_sysroot/compiler_builtins/Cargo.toml
+++ /dev/null
@@ -1,20 +0,0 @@
-[package]
-name = "compiler_builtins"
-# Make sure the `compiler_builtins` from crates.io doesn't take precedence over this
-# replacement by specifying a higher version than the one on crates.io.
-version = "0.1.100"
-authors = ["bjorn3 <bjorn3@users.noreply.github.com>"]
-edition = "2018"
-
-[lib]
-name = "compiler_builtins"
-path = "lib.rs"
-test = false
-doc = false
-
-[dependencies]
-core = { path = "../sysroot_src/src/libcore" }
-
-[features]
-rustc-dep-of-std = []
-c = []
diff --git a/build_sysroot/compiler_builtins/lib.rs b/build_sysroot/compiler_builtins/lib.rs
deleted file mode 100644
index 79a54a3a4b8..00000000000
--- a/build_sysroot/compiler_builtins/lib.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-#![feature(compiler_builtins, staged_api)]
-#![compiler_builtins]
-#![no_std]
-
-#![unstable(
-    feature = "compiler_builtins_lib",
-    reason = "Compiler builtins. Will never become stable.",
-    issue = "0"
-)]
diff --git a/example/alloc_example.rs b/example/alloc_example.rs
index 20a8642cbd1..497f5fbdb2d 100644
--- a/example/alloc_example.rs
+++ b/example/alloc_example.rs
@@ -1,16 +1,6 @@
-#![feature(start, box_syntax, alloc_system, core_intrinsics, alloc_prelude, alloc_error_handler)]
+#![feature(start, box_syntax, core_intrinsics, 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);
@@ -23,19 +13,12 @@ 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 {
-    let world: Box<&str> = box "Hello World!\0";
-    unsafe {
-        puts(*world as *const str as *const u8);
+    extern "C" {
+        fn __rust_u128_mulo(a: u128, b: u128) -> (u128, bool);
     }
 
+    assert_eq!(unsafe { __rust_u128_mulo(353985398u128,  932490u128).0 }, 330087843781020u128);
     0
 }
diff --git a/src/lib.rs b/src/lib.rs
index df53d741a75..8a4e79d544b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -243,6 +243,8 @@ fn build_isa(sess: &Session) -> Box<dyn isa::TargetIsa + 'static> {
         "false"
     }).unwrap();
 
+    flags_builder.set("opt_level", "best").unwrap();
+
     // FIXME enable again when https://github.com/CraneStation/cranelift/issues/664 is fixed
     /*
     use rustc::session::config::OptLevel;
diff --git a/test.sh b/test.sh
index 1dfbf924754..2b8f9ad733b 100755
--- a/test.sh
+++ b/test.sh
@@ -4,52 +4,9 @@ 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