-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #105713 - bjorn3:sync_cg_clif-2022-12-14, r=bjorn3
Sync rustc_codegen_cranelift This time there are a bunch of bugfixes, some new llvm intrinsic implementations and refactorings to the build system in preparation for running cg_clif tests as part of `./x.py test`. r? `@ghost` `@rustbot` label +A-codegen +A-cranelift +T-compiler
- Loading branch information
Showing
54 changed files
with
1,697 additions
and
1,028 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,8 +12,6 @@ task: | |
folder: target | ||
prepare_script: | ||
- . $HOME/.cargo/env | ||
- git config --global user.email "[email protected]" | ||
- git config --global user.name "User" | ||
- ./y.rs prepare | ||
test_script: | ||
- . $HOME/.cargo/env | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,6 +19,7 @@ jobs: | |
- name: Rustfmt | ||
run: | | ||
cargo fmt --check | ||
rustfmt --check build_system/mod.rs | ||
build: | ||
runs-on: ${{ matrix.os }} | ||
|
@@ -28,7 +29,7 @@ jobs: | |
fail-fast: false | ||
matrix: | ||
include: | ||
- os: ubuntu-latest | ||
- os: ubuntu-20.04 # FIXME switch to ubuntu-22.04 once #1303 is fixed | ||
env: | ||
TARGET_TRIPLE: x86_64-unknown-linux-gnu | ||
- os: macos-latest | ||
|
@@ -41,28 +42,32 @@ jobs: | |
- os: ubuntu-latest | ||
env: | ||
TARGET_TRIPLE: aarch64-unknown-linux-gnu | ||
# s390x requires QEMU 6.1 or greater, we could build it from source, but ubuntu 22.04 comes with 6.2 by default | ||
- os: ubuntu-latest | ||
env: | ||
TARGET_TRIPLE: s390x-unknown-linux-gnu | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Cache cargo installed crates | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cargo/bin | ||
key: ${{ runner.os }}-cargo-installed-crates | ||
|
||
- name: Cache cargo registry and index | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
key: ${{ runner.os }}-cargo-registry-and-index-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Cache cargo target dir | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: target | ||
path: build/cg_clif | ||
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain', '**/Cargo.lock') }} | ||
|
||
- name: Install MinGW toolchain and wine | ||
|
@@ -78,11 +83,14 @@ jobs: | |
sudo apt-get update | ||
sudo apt-get install -y gcc-aarch64-linux-gnu qemu-user | ||
- name: Prepare dependencies | ||
- name: Install s390x toolchain and qemu | ||
if: matrix.env.TARGET_TRIPLE == 's390x-unknown-linux-gnu' | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "User" | ||
./y.rs prepare | ||
sudo apt-get update | ||
sudo apt-get install -y gcc-s390x-linux-gnu qemu-user | ||
- name: Prepare dependencies | ||
run: ./y.rs prepare | ||
|
||
- name: Build without unstable features | ||
env: | ||
|
@@ -110,7 +118,7 @@ jobs: | |
./y.rs test | ||
- name: Package prebuilt cg_clif | ||
run: tar cvfJ cg_clif.tar.xz build | ||
run: tar cvfJ cg_clif.tar.xz dist | ||
|
||
- name: Upload prebuilt cg_clif | ||
if: matrix.env.TARGET_TRIPLE != 'x86_64-pc-windows-gnu' | ||
|
@@ -121,7 +129,7 @@ jobs: | |
|
||
- name: Upload prebuilt cg_clif (cross compile) | ||
if: matrix.env.TARGET_TRIPLE == 'x86_64-pc-windows-gnu' | ||
uses: actions/upload-artifact@v2 | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: cg_clif-${{ runner.os }}-cross-x86_64-mingw | ||
path: cg_clif.tar.xz | ||
|
@@ -147,23 +155,23 @@ jobs: | |
- uses: actions/checkout@v3 | ||
|
||
- name: Cache cargo installed crates | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.cargo/bin | ||
key: ${{ runner.os }}-${{ matrix.env.TARGET_TRIPLE }}-cargo-installed-crates | ||
|
||
- name: Cache cargo registry and index | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
key: ${{ runner.os }}-${{ matrix.env.TARGET_TRIPLE }}-cargo-registry-and-index-${{ hashFiles('**/Cargo.lock') }} | ||
|
||
- name: Cache cargo target dir | ||
uses: actions/cache@v2 | ||
uses: actions/cache@v3 | ||
with: | ||
path: target | ||
path: build/cg_clif | ||
key: ${{ runner.os }}-${{ matrix.env.TARGET_TRIPLE }}-cargo-build-target-${{ hashFiles('rust-toolchain', '**/Cargo.lock') }} | ||
|
||
- name: Set MinGW as the default toolchain | ||
|
@@ -172,8 +180,6 @@ jobs: | |
|
||
- name: Prepare dependencies | ||
run: | | ||
git config --global user.email "[email protected]" | ||
git config --global user.name "User" | ||
git config --global core.autocrlf false | ||
rustc y.rs -o y.exe -g | ||
./y.exe prepare | ||
|
@@ -198,24 +204,24 @@ jobs: | |
# Enable extra checks | ||
$Env:CG_CLIF_ENABLE_VERIFIER=1 | ||
# WIP Disable some tests | ||
# This fails due to some weird argument handling by hyperfine, not an actual regression | ||
# more of a build system issue | ||
(Get-Content config.txt) -replace '(bench.simple-raytracer)', '# $1' | Out-File config.txt | ||
# This fails with a different output than expected | ||
# This fails with a different output than expected | ||
(Get-Content config.txt) -replace '(test.regex-shootout-regex-dna)', '# $1' | Out-File config.txt | ||
./y.exe test | ||
- name: Package prebuilt cg_clif | ||
# don't use compression as xzip isn't supported by tar on windows and bzip2 hangs | ||
run: tar cvf cg_clif.tar build | ||
run: tar cvf cg_clif.tar dist | ||
|
||
- name: Upload prebuilt cg_clif | ||
uses: actions/upload-artifact@v2 | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: cg_clif-${{ matrix.env.TARGET_TRIPLE }} | ||
path: cg_clif.tar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.