Commit Graph

3533 Commits

Author SHA1 Message Date
bjorn3
c1fa3cf6c4 Sync from rust 8c74a5d27c 2023-06-15 17:40:32 +00:00
bjorn3
f2895f3143
Merge pull request #1357 from bjorn3/build_system_rework6
Support testing of cg_clif in rust's CI
2023-06-15 19:37:23 +02:00
bjorn3
e9bd63af3c Ignore -Clink-arg=-import-instr-limit 2023-06-15 17:14:49 +00:00
bors
2445d740f7 Auto merge of #112314 - ferrocene:pa-core-alloc-abort, r=bjorn3
Ignore `core`, `alloc` and `test` tests that require unwinding on `-C panic=abort`

Some of the tests for `core` and `alloc` require unwinding through their use of `catch_unwind`. These tests fail when testing using `-C panic=abort` (in my case through a target without unwinding support, and `-Z panic-abort-tests`), while they should be ignored as they don't indicate a failure.

This PR marks all of these tests with this attribute:

```rust
#[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
```

I'm not aware of a way to test this on rust-lang/rust's CI, as we don't test any target with `-C panic=abort`, but I tested this locally on a Ferrocene target and it does indeed make the test suite pass.
2023-06-13 19:03:27 +00:00
bjorn3
485d7e129f Remove outdated fixme 2023-06-13 16:39:59 +00:00
bjorn3
a691b14aee Allow skipping tests from the commandline 2023-06-13 16:39:59 +00:00
bjorn3
8c1c84d79e Copy Cargo.lock over in ./y.sh prepare
This makes it easier for ./x.py to vendor all dependencies
2023-06-13 16:39:59 +00:00
bjorn3
bcac222013 Lazily patch the standard library 2023-06-13 16:39:59 +00:00
bjorn3
d0ea8bbc5e Only copy library dir for stdlib
When building as part of rust, the sysroot source dir is symlinked to
the main source dir, which contains the build dir to which we are likely
copying.
2023-06-13 16:39:59 +00:00
bjorn3
6b9af8cb36 Disable all incremental compilation for CARGO_BUILD_INCREMENTAL=false 2023-06-13 16:39:59 +00:00
bjorn3
eb3e8bb7d7 Move some profile settings out of the stdlib cargo workspace patch 2023-06-13 16:39:59 +00:00
bjorn3
8ad9e9f861 Ensure everything has a lockfile 2023-06-13 16:39:59 +00:00
bjorn3
d3da972441 Write stdlib workspace Cargo.toml directly in prepare.rs 2023-06-13 16:39:59 +00:00
bjorn3
67f9fe6863 Lazily patch all test projects 2023-06-13 16:39:59 +00:00
bjorn3
3baee66f9b Rework standard library building 2023-06-13 16:39:59 +00:00
bjorn3
54eaa5382c Enable compiler-builtins no-asm feature using --features flag 2023-06-13 16:39:59 +00:00
bjorn3
b9129c0d6b Rename a couple of build dirs for consistency 2023-06-13 16:39:59 +00:00
bjorn3
fc23a8a7e0 Lazily patch coretests 2023-06-13 16:39:59 +00:00
bjorn3
2c38effe28 Don't patch in place in apply_patches
This will make it easier to skip patching if unnecessary in the future
2023-06-13 16:39:59 +00:00
bjorn3
75327f8587 Reuse existing download in y.sh prepare if fresh 2023-06-13 16:39:59 +00:00
bjorn3
0e4139922e Put patched sources in build/ instead of download/ 2023-06-13 16:39:59 +00:00
bjorn3
d0b8896189 Allow building the build system using cargo
Rust's build system only handles cargo, not rustc.
2023-06-13 16:39:59 +00:00
bjorn3
ce3f300e40 Add --download-dir option to specify download dir separate from --out-dir 2023-06-13 16:39:59 +00:00
Pietro Albini
7886be6327 remove patch from cranelift backend to ignore unwinding tests 2023-06-13 15:53:26 +02:00
bjorn3
45781e107c Fix rustc test suite 2023-06-13 12:31:34 +00:00
bjorn3
5d592ea79a Rustup to rustc 1.72.0-nightly (df77afbca 2023-06-12) 2023-06-13 10:45:27 +00:00
bjorn3
c870c67bb2 Sync from rust df77afbcaf 2023-06-13 10:40:16 +00:00
bjorn3
436bed8b7f Rustup to rustc 1.72.0-nightly (e6d4725c7 2023-06-05) 2023-06-06 14:12:03 +00:00
bjorn3
d4d8f1c1ff Sync from rust e6d4725c76 2023-06-06 14:00:40 +00:00
bjorn3
c09ef96878 Implement _mm_shuffle_epi8 2023-06-06 09:34:21 +00:00
bjorn3
e4d0811360 Implement _mm_srli_epi16 and _mm_slli_epi16 2023-06-06 09:34:21 +00:00
bjorn3
f36bb6d529 Make unimplemented trap messages show up in more contexts 2023-06-06 09:34:21 +00:00
bjorn3
11b3fc686c Update object to 0.30.4
Fixes #1377
2023-06-06 08:20:44 +00:00
bjorn3
204c64bda1
Merge pull request #1378 from bjorn3/more_vendor_intrinsics
Implement all vendor intrinsics used by regex on AVX2 systems
2023-06-05 20:42:09 +02:00
bjorn3
8fbd6f521a Skip LLVM sysroot testing for native x86_64-pc-windows-gnu in CI
It is way too slow and cross-compiled x86_64-pc-windows-gnu covers at
least part of the tests.
2023-06-05 17:20:59 +00:00
bjorn3
1797ae5174 Define rust_eh_personality for alloc_example
x86_64-pc-windows-gnu requires it to be defined.
2023-06-05 16:54:37 +00:00
bjorn3
aeac484d18 Run tests with LLVM sysroot in CI 2023-06-05 16:41:03 +00:00
bjorn3
76900705e8 Implement all vendor intrinsics used by regex on AVX2 systems
This allows it to work with --sysroot llvm
2023-06-05 15:33:54 +00:00
Andrew Xie
f8cde5884d Updated cranelift codegen to reflect modified trait signature 2023-06-04 21:54:38 -04:00
Michael Goulet
4ecd45a588 Rollup merge of #112168 - scottmcm:lower-div-rem-unchecked-to-mir, r=oli-obk
Lower `unchecked_div`/`_rem` to MIR's `BinOp::Div`/`Rem`

As described in <https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/enum.BinOp.html#variant.Div>, the ordinary `BinOp`s for these are already UB for division by zero ([or overflow](https://llvm.org/docs/LangRef.html#sdiv-instruction), [demo](https://rust.godbolt.org/z/71e7P7Exh)), as MIR building is responsible for inserting code to panic for those cases regardless of whether the overflow checks are enabled.

So we can lower these in the same arm that lowers `wrapping_add` to MIR `BinOp::Add` and such, as all these cases turn into ordinary `Rvalue::BinaryOp`s.
2023-06-02 16:02:06 -07:00
bjorn3
e369cce377 Rustup to rustc 1.72.0-nightly (d59363ad0 2023-06-01) 2023-06-02 12:51:40 +00:00
bjorn3
b1961baf43 Sync from rust d59363ad0b 2023-06-02 12:44:25 +00:00
Deadbeef
fcd93accb4 Use translatable diagnostics in rustc_const_eval 2023-06-01 14:45:18 +00:00
Scott McMurray
919da2f16c remove unchecked_div/_rem from cg_cranelift 2023-06-01 00:05:55 -07:00
Nilstrieb
04dca8f1b2 Rollup merge of #112060 - lcnr:early-binder, r=jackh726
`EarlyBinder::new` -> `EarlyBinder::bind`

for consistency with `Binder::bind`. it may make sense to also add `EarlyBinder::dummy` in places where we know that no parameters exist, but I left that out of this PR.

r? `@jackh726` `@kylematsuda`
2023-05-30 12:57:40 +02:00
Matthias Krüger
a2a8589a8a Rollup merge of #111827 - AngelicosPhosphoros:add_docs_to_cranelift, r=bjorn3
Add build instructions for cranelift backend as part of Rust repo

All other instructions assume that user works with separate repository than Rust compiler repository. When one follows default instructions, cranelift codegen tries to use different sys-root and compiler internal crates which leads to compiler errors when building it.

I needed to do all this steps while adding new intrinsic to rustc.

r? bjorn3
2023-05-29 21:34:16 +02:00
lcnr
b488625178 EarlyBinder::new -> EarlyBinder::bind 2023-05-29 13:46:10 +02:00
Kyle Matsuda
4e87728772 Replace EarlyBinder(x) with EarlyBinder::new(x) 2023-05-28 10:44:50 -06:00
bjorn3
62e603527d Don't explicitly remove needs-unwind tests
Compiletest now respects panic=abort in the --print cfg output
2023-05-28 11:04:15 +00:00
bjorn3
d91fabd44f Rustup to rustc 1.71.0-nightly (cca7ee581 2023-05-27) 2023-05-28 09:55:04 +00:00