bjorn3
5b3bc29008
Allow testing a cranelift backend built into rustc itself
...
This avoids building cranelift twice in rust's CI and is a lot easier
than trying to make building of codegen backends work from within a
cargo invocation done by rust's build system.
2023-05-24 17:27:28 +00:00
bjorn3
a684753a68
Merge pull request #1374 from bjorn3/non_rustup_build3
...
Allow building and testing without rustup
2023-05-22 20:58:07 +02:00
bjorn3
24f1569c85
Enable overflow-checks on CI
...
Unlike rustc with cargo debug-assertions = true doesn't imply overflow-checks = true
2023-05-22 18:35:56 +00:00
bjorn3
a555b8ab7e
Add fixme
2023-05-22 17:17:50 +00:00
bjorn3
a2f720d9fe
Allow building and testing without rustup
...
This can be done by installing the nightly specified in
rust-toolchain.toml and then pointing the CARGO, RUSTC and RUSTDOC env
vars to the right executables.
2023-05-22 17:17:05 +00:00
bjorn3
22befab611
Avoid hard-coding rustc path in prepare.rs
2023-05-22 17:17:05 +00:00
bjorn3
b1d8b7186c
Only pass --frozen to cargo when it is passed to y.rs
2023-05-22 17:17:05 +00:00
bjorn3
2155c03500
Inline Compiler::bootstrap_with_triple
2023-05-22 17:10:55 +00:00
bjorn3
de8a4d5d46
Remove all implicit "rustc" from rustc_info.rs
2023-05-22 17:10:55 +00:00
bjorn3
b773282309
Use --sysroot ... instead of --sysroot=...
...
Rust's build system doesn't handle --sysroot=... correctly
2023-05-14 13:00:00 +00:00
bjorn3
521d937116
Pass --cap-lints=allow to tests
2023-05-14 12:53:00 +00:00
bjorn3
a43f08363e
Benchmark clif release builds with ./y.rs bench
2023-05-14 12:19:11 +00:00
bjorn3
88ae8fc9c8
Allow passing more than two commands to benchmark to hyperfine_command
2023-05-14 12:04:55 +00:00
bjorn3
8bf550e616
Merge commit 'ef07e8e60f994ec014d049a95591426fb92ebb79' into sync_cg_clif-2023-04-29
2023-04-29 12:00:43 +00:00
bjorn3
b56d4ab66b
Update portable-simd test
2023-04-25 12:32:24 +00:00
bjorn3
4ece6d0e44
Minor build perf optimization
2023-04-13 13:29:00 +00:00
bjorn3
4435686a48
Fix warnings when building the build system in rust's CI
2023-04-13 13:17:01 +00:00
bjorn3
c0f2b10e15
Skip building crates without tests for regex
...
regex-capi and regex-debug don't have any tests. Nor do they contain any
code that is useful to test with cg_clif.
2023-03-26 14:07:51 +00:00
bjorn3
5b1268d16b
Update portable-simd
...
This avoids building wasm-bindgen-test on non-wasm targets, reducing
test time.
2023-03-26 13:44:21 +00:00
bjorn3
ae0a22cb89
Update regex to fix FreeBSD tests
...
Fixes #1360
2023-03-21 14:52:03 +00:00
bjorn3
7b3bd56ed9
Merge commit 'dec0daa8f6d0a0e1c702f169abb6bf3eee198c67' into sync_cg_clif-2023-03-15
2023-03-15 14:41:48 +00:00
bjorn3
b88e129915
Avoid a duplicate "[TEST] rust-random/rand"
2023-02-26 17:37:29 +00:00
bjorn3
c615e9248a
Run tests for all crates in the regex workspace
2023-02-26 17:35:53 +00:00
bjorn3
b193419ec7
Allow multiple threads and panicking tests when testing regex
...
I guess this was a leftover from very early in the development of
cg_clif. Allowing multiple threads significantly improves performance,
while panicking tests can run now thanks to -Zpanic-abort-tests.
2023-02-26 16:50:08 +00:00
bjorn3
19ed2139a3
Remove no longer necessary code removing "[codegen mono items]" from test output
2023-02-26 14:34:36 +00:00
bjorn3
5e6cde150e
Remove --cap-lint warn from regex test
2023-02-26 14:34:36 +00:00
bjorn3
7a864c8ef5
Update test repo versions
2023-02-26 14:34:28 +00:00
bjorn3
aea3bd6641
Re-enable DataflowConstProp for standard library builds
2023-02-26 13:01:47 +00:00
bjorn3
a45a81a6a2
Patch coretests separately from the standard library source
2023-02-26 12:15:25 +00:00
bjorn3
f79601fbb0
Reduce verbosity of rand testing
2023-02-25 18:01:42 +00:00
bjorn3
26d0d255ce
Reduce verbosity of libcore testing
2023-02-25 17:48:45 +00:00
bjorn3
916a6c17df
Update portable-simd
2023-02-19 17:46:51 +00:00
bjorn3
98ddd69aae
Add wrappers to dist/bin/ too in addition to dist/
...
Rust's build system since recently expects rustc to be in a bin/
directory if it is specified using the rustc option in config.toml.
2023-02-19 15:28:01 +00:00
bjorn3
8ed6baa749
Rustup to rustc 1.69.0-nightly ( 2d14db321
2023-02-15)
2023-02-17 18:42:33 +01:00
bjorn3
9491031f9a
Rustup to rustc 1.69.0-nightly ( 0416b1a6f
2023-02-14)
2023-02-17 18:42:14 +01:00
bjorn3
56951e4f2b
Merge commit '7d53619064ab7045c383644cb445052d2a3d46db' into sync_cg_clif-2023-02-09
2023-02-09 12:38:16 +01:00
bjorn3
761a91ade8
Build CI dist artifacts without debug assertions
...
This significantly improves performance. For example for the
simple-raytracer benchmark it goes from a 13% improvement over LLVM to
39% improvement over LLVM.
2023-02-04 11:31:17 +00:00
bjorn3
efb92a1ae8
Use packed debuginfo for the sysroot on macOS
...
This reduces the sysroot size
2023-02-03 20:02:15 +00:00
bjorn3
79f4cc0822
Run y.rs bench in CI
2023-01-31 18:14:54 +00:00
bjorn3
d1024b6560
Fix y.rs bench
2023-01-31 17:44:29 +00:00
bjorn3
3ba9b13490
Don't download abi-cafe and simple-raytracer in ./y.rs prepare
...
Instead download them on the fly
2023-01-27 18:44:19 +00:00
bjorn3
b67610f98a
Merge commit '598f0909568a51de8a2d1148f55a644fd8dffad0' into sync_cg_clif-2023-01-24
2023-01-24 18:56:42 +01:00
bjorn3
4e87f13054
Fix a couple of TOCTOU occurences
2023-01-19 15:58:40 +00:00
bjorn3
7095783268
Only run abi-cafe on cg_clif's CI
2023-01-16 11:21:37 +00:00
bjorn3
0f4df8fb0e
Eliminate a couple of extra calls
...
This is an additional 17% improvement on ./y.rs compile --sysroot none
Benchmark 1: ./y_before.bin build --sysroot none
Time (mean ± σ): 1.533 s ± 0.022 s [User: 1.411 s, System: 0.471 s]
Range (min … max): 1.517 s … 1.589 s 10 runs
Benchmark 2: ./y_after.bin build --sysroot none
Time (mean ± σ): 1.311 s ± 0.020 s [User: 1.232 s, System: 0.428 s]
Range (min … max): 1.298 s … 1.366 s 10 runs
Summary
'./y_after.bin build --sysroot none' ran
1.17 ± 0.02 times faster than './y_before.bin build --sysroot none'
2023-01-15 15:20:36 +00:00
bjorn3
abcff71bec
Significantly speed up assembling of sysroots
...
By avoiding some redundant rustc calls and stripping debuginfo for
wrappers. ./y.rs build --sysroot none now runs 44% faster.
Benchmark 1: ./y_before.bin build --sysroot none
Time (mean ± σ): 2.200 s ± 0.038 s [User: 2.140 s, System: 0.653 s]
Range (min … max): 2.171 s … 2.303 s 10 runs
Benchmark 2: ./y_after.bin build --sysroot none
Time (mean ± σ): 1.528 s ± 0.020 s [User: 1.388 s, System: 0.490 s]
Range (min … max): 1.508 s … 1.580 s 10 runs
Summary
'./y_after.bin build --sysroot none' ran
1.44 ± 0.03 times faster than './y_before.bin build --sysroot none'
2023-01-15 14:14:13 +00:00
bjorn3
13197322ec
Skip creating sysroot target dir if it will be empty
2023-01-14 18:45:47 +00:00
bjorn3
280dffd82c
Build rtstartup for none sysroot too
...
Even mini_core needs it
2023-01-14 18:41:22 +00:00
bjorn3
fd83b27945
Port llvm sysroot building to SysrootTarget too and dedup some code
2023-01-14 18:25:43 +00:00
bjorn3
0ac4456351
Move rtstartup build to build_clif_sysroot_for_triple
...
Also pass build/rtstartup as sysroot when building the standard library
2023-01-14 17:51:54 +00:00
bjorn3
6f1e1775d3
Introduce SysrootTarget
2023-01-14 17:40:16 +00:00
bjorn3
c950f2265e
Build rtstartup for MinGW from scratch
...
Rather than copying it from an existing sysroot
2023-01-14 17:02:21 +00:00
bjorn3
629eab79c1
Avoid hard-coded rustc when building wrappers
2023-01-14 14:18:11 +00:00
bjorn3
22c5249f68
Don't hard-code rustc path in get_rustc_version and get_default_sysroot
2023-01-14 14:18:11 +00:00
bjorn3
4dbafefe74
Return Compiler from build_sysroot
2023-01-14 14:18:11 +00:00
bjorn3
bbb7a3b9b9
Rename Compiler variables for clarity
2023-01-14 14:18:11 +00:00
bjorn3
fd1e824d88
Minor changes to the TestRunner::new signature
2023-01-14 14:18:11 +00:00
bjorn3
5e452ba616
Set RUSTC and RUSTDOC env vars to invalid values to catch forgetting to set them
2023-01-14 14:18:11 +00:00
bjorn3
a09712e0d2
Use fs::remove_dir_all instead of cargo clean
2023-01-14 14:18:11 +00:00
bjorn3
9bc113fb3c
Minor consistency improvement
2023-01-14 14:18:11 +00:00
bjorn3
bdcbf47df3
Improve readme and build system help message
2023-01-13 16:34:43 +00:00
bjorn3
a3468770e3
Rustfmt
2023-01-13 16:13:26 +00:00
bjorn3
be8f656fac
Pass --frozen to cargo to ensure ./y.rs prepare fetches all deps
2023-01-13 16:13:26 +00:00
bjorn3
957d78c479
Fetch all cargo dependencies in ./y.rs prepare
2023-01-13 15:40:22 +00:00
bjorn3
1a89507d7c
Don't use the diff command in regex test
...
The output is small enough that getting a pretty diff isn't important.
In addition this reduces the amount of commands the build system depends
on.
2023-01-13 15:29:28 +00:00
bjorn3
890c61216a
Set core.autocrlf=false in the build system instead of CI config
2023-01-13 15:29:26 +00:00
bjorn3
9a15db6dd0
Add git_command helper
2023-01-13 15:28:47 +00:00
bjorn3
40745694a0
Add fixme
2023-01-13 14:33:14 +00:00
bjorn3
63fae6a164
Introduce helpers for common test case commands
2023-01-13 14:19:54 +00:00
bjorn3
bb7ab8242a
Remove a lot of redundant rustc arguments for tests
2023-01-13 12:52:29 +00:00
bjorn3
f311ef5a2e
Share cross-compilation code between building and testing
2023-01-13 12:32:20 +00:00
bjorn3
70a1cb9e62
Pass around Compiler instead of target triples
2023-01-13 12:16:11 +00:00
bjorn3
cf22470de7
Disable CG_CLIF_DISPLAY_CG_TIME by default
...
It is a lot of noise without much benefit
2023-01-13 11:42:02 +00:00
bjorn3
dbfbb29717
Move LLVM simple-raytracer build to ./y.rs bench
...
cc #1290
2023-01-13 11:41:40 +00:00
bjorn3
868638393e
Rustfmt
2023-01-11 15:23:15 +00:00
bjorn3
caacef29e6
Retry downloads on network failure
...
Fixes #1280
2023-01-11 14:14:14 +00:00
bjorn3
fb788e375a
Don't install hyperfine in y.rs prepare
...
Missed in #1338
Part of #1290
2023-01-11 13:59:14 +00:00
bjorn3
e14e5c2af1
Don't use hyperfine during testing
...
A new command ./y.rs bench is introduced for benchmarking. This change
allows skipping hyperfine installation in ./y.rs prepare and thus avoids
writing to ~/.cargo/bin.
2023-01-05 18:14:59 +00:00
bjorn3
4c97569a54
Move patched sysroot from build_sysroot/ to download/
2023-01-05 18:14:40 +00:00
bjorn3
14ca1df478
Enable debug assertions on CI
...
Fixes #1314
2022-12-16 11:27:21 +00:00
bjorn3
1ca07b9a44
Fix running simple-raytracer benchmark on Windows
2022-12-15 17:28:48 +00:00
bjorn3
cc3ac006a2
Move many env vars from CI configuration to the build system
2022-12-15 14:16:53 +00:00
bjorn3
0865e5a452
Set RUSTDOCFLAGS again
...
Was accidentally removed in 808cba2
2022-12-15 11:41:06 +00:00
bjorn3
f626185a5b
Update portable-simd to 582239ac3b
2022-12-15 11:09:45 +00:00
bjorn3
808cba2251
Extract Compiler creation from tests.rs
2022-12-15 10:28:53 +00:00
bjorn3
98a276b589
Merge commit '2bb3996244cf1b89878da9e39841e9f6bf061602' into sync_cg_clif-2022-12-14
2022-12-14 19:30:46 +01:00
bjorn3
2bb3996244
Remove unnecessary git init
2022-12-14 15:23:24 +00:00
bjorn3
a45924cc21
Explicitly provide dummy git author name and email
...
This avoids the need to tell git beforehand about your name and email
2022-12-14 15:22:56 +00:00
bjorn3
b8a3c2dd30
Sync from rust fd02567705
2022-12-04 10:26:24 +01:00
Afonso Bordado
e12a882a67
S390X CI Support ( #1304 )
2022-12-04 00:23:01 +01:00
bjorn3
04eaaa043d
Fix crash with TAIT in the call codegen code
...
The new logic is closer to what cg_llvm does.
Fixes #1240
2022-12-02 12:44:14 +00:00
bjorn3
b6ac5a3ceb
Allow specifying where build artifacts should be written to
2022-12-01 19:00:32 +00:00
bjorn3
d7b02c307d
Fix installing hyperfine
2022-12-01 19:00:32 +00:00
bjorn3
82b2d8e418
Introduce Dirs type to avoid hard coding src and dest locations
2022-12-01 19:00:32 +00:00
bjorn3
4529979330
Introduce RelPath
2022-12-01 19:00:32 +00:00
bjorn3
e75dfef4d4
Put all temporary build artifacts in build/
2022-12-01 19:00:32 +00:00
bjorn3
5e97a3951d
Make sure the target dir is always explicitly set when using cargo
2022-12-01 19:00:32 +00:00
bjorn3
9c21990283
Rename target_dir to dist_dir in a couple of places
2022-11-28 15:02:08 +00:00
bjorn3
26d48c9a37
Rename the build/ directory to dist/
...
This will allow putting all temporary build artifacts in build/ in the
future, keeping all the build output artifacts in dist/
2022-11-28 13:01:49 +00:00
bjorn3
cdae9bab58
Introduce CargoProject type and use it where possible
2022-11-27 18:53:00 +00:00