Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync rustc_codegen_gcc 2023/03/04 #108783

Merged
merged 298 commits into from
Mar 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
c5b9a7a
Merge pull request #193 from GuillaumeGomez/ci-parallel
antoyo Jun 29, 2022
9edaf82
Add comment
antoyo Jun 26, 2022
0ba53c8
Split rustc tests in two
GuillaumeGomez Jun 30, 2022
14e0924
Merge pull request #195 from GuillaumeGomez/split-rustc-tests
antoyo Jul 5, 2022
97b7dc2
Update TypeVisitor paths
eggyal Jun 17, 2022
a697703
Add patch to allow testing stdarch
antoyo Jun 10, 2022
1777cdd
Add antoyo in TODOs
antoyo Jun 10, 2022
910ec42
Fixes to make stdarch tests compile
antoyo Jun 19, 2022
4094923
Disable avx512
antoyo Jun 20, 2022
1c4ca28
Support #[target(enable)] function attribute
antoyo Jun 22, 2022
6205f1a
Reenable target flags
antoyo Jun 26, 2022
9db55d2
Fix vector comparison now returning a vector of integers
antoyo Jun 26, 2022
85036a5
Use gccjit from repo
antoyo Jun 30, 2022
16ca66d
Fix build only
antoyo Jun 30, 2022
d19a5ea
Fix all command
antoyo Jun 30, 2022
fea51f3
Fix warnings
antoyo Jun 30, 2022
b14b440
Format
antoyo Jun 30, 2022
5f4777e
Add name in TODO
antoyo Jul 7, 2022
0d687bd
Merge pull request #190 from rust-lang/feature/more-simd
antoyo Jul 7, 2022
50f359c
Split tests to have faster CI
GuillaumeGomez Jul 7, 2022
fe42754
Merge pull request #196 from GuillaumeGomez/faster-ci
antoyo Jul 8, 2022
4587677
Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko
bors Jul 8, 2022
96d103b
Sort ui_tests to ensure they remain coherent across different jobs
GuillaumeGomez Jul 8, 2022
7c9db86
Merge pull request #200 from GuillaumeGomez/sort-find
antoyo Jul 8, 2022
33e8d4c
fix cranelift and gcc backends
RalfJung Jul 5, 2022
28b1111
Add cache for rust repository
GuillaumeGomez Jul 9, 2022
22e4f18
Merge pull request #201 from GuillaumeGomez/cache-rust
antoyo Jul 10, 2022
c98d66c
Keep unstable target features for asm feature checking
Amanieu Jul 11, 2022
6bcab05
Rollup merge of #99155 - Amanieu:unstable-target-features, r=davidtwco
Dylan-DPC Jul 13, 2022
bca7b02
Rename `debugging_opts` to `unstable_opts`
jyn514 Jul 6, 2022
4f118ce
Remove unused StableMap and StableSet types from rustc_data_structures
michaelwoerister Jul 8, 2022
8f29018
add a Vtable kind of symbolic allocations
RalfJung Jul 17, 2022
3f24eb8
consistently use VTable over Vtable (matching stable stdlib API RawWa…
RalfJung Jul 19, 2022
59d223d
slightly cleaner, if more verbose, vtable handling in codegen backends
RalfJung Jul 20, 2022
e5e7395
Auto merge of #99420 - RalfJung:vtable, r=oli-obk
bors Jul 22, 2022
fef3b3e
Enable raw-dylib for binaries
dpaoliello Jul 1, 2022
bfe3c24
Add fine-grained LLVM CFI support to the Rust compiler
rcvalle Apr 1, 2022
5f630f3
Cleanup regarding handling of recursive types
antoyo Jul 23, 2022
a227994
Merge pull request #202 from rust-lang/fix/recursive-types
antoyo Jul 24, 2022
c5528ce
Auto merge of #95548 - rcvalle:rust-cfi-2, r=nagisa
bors Jul 24, 2022
fe5cc38
Auto merge of #98989 - dpaoliello:rawdylibbin, r=michaelwoerister
bors Jul 26, 2022
a3ea31b
Move output argument from ArchiveBuilder::new to .build()
bjorn3 Jul 28, 2022
56f3486
Inline inject_dll_import_lib
bjorn3 Jul 28, 2022
3a8ff61
Introduce an ArchiveBuilderBuilder
bjorn3 Jul 28, 2022
672eec3
Support symbol visibility
antoyo Jul 24, 2022
70c7c06
Merge pull request #203 from rust-lang/feature/visibility
antoyo Aug 4, 2022
deedd28
Fix the mxcsr builtins
antoyo Aug 5, 2022
b4eb2c3
Merge pull request #204 from rust-lang/fix/mxcsr-builtins
antoyo Aug 5, 2022
f21a300
Remove unstable Result::into_ok_or_err
dtolnay Aug 15, 2022
928ef37
Replace most uses of `pointer::offset` with `add` and `sub`
WaffleLapkin Aug 19, 2022
5b1229e
Rollup merge of #100604 - dtolnay:okorerr, r=m-ou-se
JohnTitor Aug 26, 2022
081eb74
Merge branch 'master' into 2022-08-26_sync_from_rust
antoyo Aug 27, 2022
9a6b755
Fix merge conflicts
antoyo Aug 27, 2022
7d01d51
Fix tests
antoyo Aug 27, 2022
eed6603
Fix tests
antoyo Aug 27, 2022
61a7b96
Disable test mir_heavy_promoted
antoyo Aug 27, 2022
b4626b3
Merge pull request #209 from rust-lang/2022-08-26_sync_from_rust
antoyo Aug 27, 2022
4df874f
simd: Implement missing reduction intrinsics
sadlerap Jun 12, 2022
346ae2a
Merge pull request #183 from sadlerap/simd-reduction-intrinsics
antoyo Aug 27, 2022
e82c6a0
Regen intrinsics
GuillaumeGomez Aug 25, 2022
9d6b4a9
Merge pull request #207 from GuillaumeGomez/regen-intrinsics
antoyo Aug 27, 2022
5c2dec0
Add used function attribute from inline asm
antoyo Aug 27, 2022
06b6ec0
Merge pull request #211 from rust-lang/fix/used-function-attribute-in…
antoyo Aug 27, 2022
fc56c54
Remove extra newline in asm
antoyo Aug 27, 2022
866f9c5
Merge pull request #210 from rust-lang/fix/asm-newline
antoyo Aug 28, 2022
45ec5f2
Fix bitcast to a type of a different size
antoyo Aug 29, 2022
2342414
Merge pull request #213 from rust-lang/fix/bitcast-wrong-size
antoyo Aug 29, 2022
1d3ca13
simd: implement simd_fmin/fmax
sadlerap Aug 30, 2022
f623e53
Merge pull request #214 from sadlerap/minmax
antoyo Aug 31, 2022
9560cb1
Add IRC channel in the readme
antoyo Sep 4, 2022
2ecd620
Fix IRC badge
antoyo Sep 4, 2022
d7d820f
simd: impl extract_element for vector types
sadlerap Sep 8, 2022
b0ccfd1
Merge pull request #215 from sadlerap/extract-element
antoyo Sep 10, 2022
3e67109
Fix build of release sysroot in test.sh
antoyo Sep 14, 2022
1724042
Merge pull request #218 from rust-lang/fix/build-release-sysroot
antoyo Sep 14, 2022
d9edc8e
harden ci configuration
pietroalbini Sep 26, 2022
688f742
simd: implement float math intrinsics
sadlerap Sep 16, 2022
8ead881
Merge pull request #219 from sadlerap/float-intrinsics
antoyo Sep 28, 2022
af28dec
Add CI tests with a sysroot compiled in release mode
antoyo Sep 30, 2022
12105bc
Fix pointer comparison
antoyo Sep 30, 2022
ed570f6
Fix gep
antoyo Sep 30, 2022
6b7e16f
Add more debugging options
antoyo Sep 30, 2022
090cde9
Disable libcore tests because some fail
antoyo Oct 1, 2022
908304e
Rewrite inbounds_gep with a loop
antoyo Oct 1, 2022
98f0dc1
Merge pull request #224 from rust-lang/fix/gep-release-mode
antoyo Oct 1, 2022
a0654b3
Implement llvm.prefetch
antoyo Oct 1, 2022
6f1adbd
Merge pull request #226 from rust-lang/feature/llvm-prefetch
antoyo Oct 1, 2022
a28618d
Fix warnings
antoyo Oct 1, 2022
86a3e3b
Merge pull request #227 from rust-lang/fix/warnings
antoyo Oct 2, 2022
436710f
simd: enable simd_as intrinsic
sadlerap Oct 2, 2022
235414e
Merge pull request #228 from sadlerap/simd-as
antoyo Oct 3, 2022
23a1a86
More debug options
antoyo Oct 8, 2022
c573621
Fix some vfmaddsub intrinsics
antoyo Oct 8, 2022
74dac5d
Fix vfmadd
antoyo Oct 8, 2022
44e3ea3
Merge pull request #229 from rust-lang/fix/fmaddsub
antoyo Oct 8, 2022
1fa8b26
Fix vector_select
antoyo Oct 9, 2022
f73dea7
Fix simd_bitmask
antoyo Oct 9, 2022
04fd2d3
Merge pull request #230 from rust-lang/fix/simd_bitmask
antoyo Oct 9, 2022
e5ce7a9
Fix simd_select_bitmask
antoyo Oct 9, 2022
173db39
Fix simd_select
antoyo Oct 9, 2022
e84f9a1
Merge pull request #231 from rust-lang/fix/simd_select_bitmask
antoyo Oct 9, 2022
12bfb01
bump actions for node16
paulcacheux Oct 15, 2022
cd01e8d
remove cargo cache fixups
paulcacheux Oct 15, 2022
7f95363
Merge pull request #233 from paulcacheux/paulcacheux/bump-github-actions
antoyo Oct 15, 2022
94d58b1
remove not applicable rustc patch
paulcacheux Oct 15, 2022
db489d0
remove empty directory
paulcacheux Oct 17, 2022
618553b
Merge pull request #234 from paulcacheux/paulcacheux/remove-rustc-patch
antoyo Oct 17, 2022
25d4828
Improve installation documentation
GuillaumeGomez Oct 17, 2022
b3198c7
Add missing register class conversion for inline asm
GuillaumeGomez Oct 13, 2022
ccfe7d8
Add asm test suite
GuillaumeGomez Oct 14, 2022
d04e66f
Run assembly tests in the CI
GuillaumeGomez Oct 14, 2022
94a4a4c
Convert llvm-arg `--x86-asm-syntax` into GCC arg `-masm`
GuillaumeGomez Oct 14, 2022
549fbe8
Set llvm-filecheck binary path into rustc config
GuillaumeGomez Oct 16, 2022
1b60286
Implement constraits modifiers
GuillaumeGomez Oct 16, 2022
5484c13
Don't override -masm option if set in the command arguments
GuillaumeGomez Oct 18, 2022
f150ab3
Improve code generating inline ASM
GuillaumeGomez Oct 18, 2022
994a669
Make the asm test suite run on its own
GuillaumeGomez Oct 18, 2022
c89e3e9
Update Readme.md
GuillaumeGomez Oct 18, 2022
ea52df4
Fix typo
GuillaumeGomez Oct 19, 2022
cc5c387
Merge pull request #236 from GuillaumeGomez/install-doc
antoyo Oct 19, 2022
78f960b
Disable asm tests in CI
GuillaumeGomez Oct 24, 2022
1a2c8b0
Fix gcc build instructions
GuillaumeGomez Oct 23, 2022
fac8d3a
Merge pull request #238 from GuillaumeGomez/fix-build-instructions
antoyo Oct 24, 2022
bf3ef4c
Revert changes in argument parsing for setting asm syntax
GuillaumeGomez Oct 26, 2022
bfc184c
Merge pull request #232 from GuillaumeGomez/more-inline-asm-register-…
antoyo Oct 26, 2022
15fcca8
Escape { and } in inline asm
antoyo Nov 24, 2022
3c03c8f
Merge pull request #239 from rust-lang/fix/expandloadu
antoyo Nov 24, 2022
76991ba
Fix simd_bitmask
antoyo Nov 24, 2022
83c55fc
Merge pull request #240 from rust-lang/fix/simd_bitmask
antoyo Nov 24, 2022
bbc0c26
Download libgccjit-12-dev package in the CI
antoyo May 13, 2022
69341c4
Fix the argument order for some AVX-512 intrinsics
antoyo Nov 24, 2022
57b50df
Merge pull request #241 from rust-lang/fix/avx-intrinsics
antoyo Nov 25, 2022
8520bc7
Merge pull request #174 from rust-lang/ci/ubuntu-libgccjit-12
antoyo Nov 25, 2022
3791646
Run stdarch tests in the CI
antoyo Oct 1, 2022
054696e
Disable stdarch examples which require unwinding
antoyo Nov 25, 2022
0a54f24
Merge pull request #225 from rust-lang/feature/stdarch-tests
antoyo Nov 25, 2022
889a33a
WIP: Implement unwinding
antoyo Oct 19, 2022
b0cf0e8
WIP
antoyo Nov 20, 2022
71d7e56
Comment
antoyo Jan 3, 2023
7c1d21c
Don't automatically run asm_tests in test.sh
antoyo Jan 3, 2023
a4b74e3
Fix unwinding
antoyo Jan 6, 2023
70659f7
Cleanup
antoyo Jan 8, 2023
af8db75
Support libgccjit12
antoyo Jan 9, 2023
2bf7fb4
Use gccjit from repo
antoyo Jan 9, 2023
f1f136b
Fix tests
antoyo Jan 9, 2023
4b628e5
Fix tests
antoyo Jan 9, 2023
e87b014
Add missing failing tests
antoyo Jan 9, 2023
5f8cdd2
Fix tests
antoyo Jan 9, 2023
ea75295
Fix tests
antoyo Jan 10, 2023
246ba9b
Add missing libgccjit 12 failing tests
antoyo Jan 10, 2023
8e77fbf
Fix LLVM builtin mapping
antoyo Jan 10, 2023
6c5a70d
Merge pull request #244 from rust-lang/feature/unwinding
antoyo Jan 11, 2023
7fa06f6
Avoid a hir access inside get_static
bjorn3 Dec 13, 2022
f6ad065
Merge pull request #243 from bjorn3/no_codegen_hir
antoyo Jan 14, 2023
f5ced68
Adjust failing tests
antoyo Jan 23, 2023
fa6ae3c
Cleanup
antoyo Jan 23, 2023
e6024f3
Merge pull request #246 from rust-lang/cleanup
antoyo Jan 26, 2023
41f5e70
Fix signed integer overflow
antoyo Jan 23, 2023
2dc7dbc
Run rustc's testsuite in release mode
antoyo Jan 26, 2023
8d0ff6b
Merge pull request #249 from rust-lang/fix/signed-integer-overflow
antoyo Jan 26, 2023
0898eab
Implement simd_gather
antoyo Feb 25, 2023
df72765
Implement simd_scatter
antoyo Feb 26, 2023
830a821
Update failures
antoyo Feb 26, 2023
3e61492
Add feature gate
antoyo Feb 26, 2023
edee097
Update failures for libgccjit12
antoyo Feb 26, 2023
16b377e
Remove comment
antoyo Feb 26, 2023
7a22c47
Merge pull request #254 from rust-lang/feature/simd_scatter_gather
antoyo Feb 26, 2023
1fcf437
Add instructions for a working git-subtree
antoyo Feb 28, 2023
32a2e37
Fix instructions for installing git-subtree
antoyo Feb 28, 2023
d01d0d1
Box `CastTarget` within `PassMode`.
nnethercote Aug 25, 2022
a283ded
Change `FnAbi::args` to a boxed slice.
nnethercote Aug 25, 2022
3c2d432
Simplify arg capacity calculations.
nnethercote Aug 26, 2022
8ebade2
Turn `ArgAbi::pad` into a `bool`.
nnethercote Aug 25, 2022
b3f2942
Move `ArgAbi::pad_i32` into `PassMode::Cast`.
nnethercote Aug 25, 2022
a7f6e7e
Implement `ptr_mask` intrinsic in cg gcc
WaffleLapkin May 11, 2022
5eedd54
Fix `ptr_mask` impl in cg gcc
WaffleLapkin May 13, 2022
80b1c8d
interpret: rename relocation → provenance
RalfJung Aug 27, 2022
91cf284
Move the cast_float_to_int fallback code to GCC
cuviper Aug 16, 2022
a50c152
Remove dead broken code from const zst handling in backends
oli-obk Sep 6, 2022
a900ba9
Stabilize bench_black_box
Urgau Sep 24, 2022
c503d97
Add RanlibFailure
ellishg Aug 27, 2022
5a9ec83
Add LinkageConstOrMutType
ellishg Aug 27, 2022
2592bef
Add UnwindingInlineAsm
ellishg Aug 27, 2022
4a861c1
Add LTONotSupported
ellishg Aug 27, 2022
1b5dd4b
Add LayoutSizeOverflow
ellishg Aug 27, 2022
b4a051e
Lint against untranslatable diagnostics in rustc_codegen_gcc
ellishg Aug 27, 2022
c4149da
remove IntoDiagnosticArg impl for Option
ellishg Aug 30, 2022
4718bee
Add wrapper type for ExitCode for use in RanlibFailure
ellishg Sep 1, 2022
f21041d
lint type
ellishg Sep 1, 2022
ef3aaa1
Add monomorphization errors
ellishg Sep 11, 2022
2e46dc2
impl SessionDiagnostic for LayoutError and Spanned<T>
ellishg Sep 12, 2022
9bbb491
rebase and update trait names
ellishg Sep 24, 2022
925b11e
fix lifetime error
ellishg Sep 24, 2022
70aeb9e
remove comment
ellishg Sep 24, 2022
9c67dcf
lint and remove unused diagnostic
ellishg Sep 27, 2022
5c30c25
print <signal> when ranlib failed without an exit code
ellishg Sep 29, 2022
5943166
Remove unused Context assoc type from WriteBackendMethods
bjorn3 Oct 1, 2022
5d5c5f9
Remove several unused methods from MiscMethods
bjorn3 Oct 1, 2022
15b0747
Remove unused target_cpu and tune_cpu methods from ExtraBackendMethods
bjorn3 Oct 1, 2022
d993319
Merge apply_attrs_callsite into call and invoke
bjorn3 Oct 1, 2022
b909493
Remove dynamic_alloca from BuilderMethods
bjorn3 Oct 1, 2022
4310bbd
Remove type argument of array_alloca and rename to byte_array_alloca
bjorn3 Oct 1, 2022
affe23b
Stabilize asm_sym
Amanieu Oct 17, 2022
dbe3df3
Migrate all diagnostics
Noratrieb Oct 22, 2022
4c0a6e6
Support raw-dylib functions being used inside inlined functions
dpaoliello Oct 12, 2022
dd930a3
Rewrite implementation of `#[alloc_error_handler]`
Amanieu Oct 14, 2022
a897864
Add type_array to BaseTypeMethods
Ayush1325 Nov 6, 2022
fb747d0
add is_sized method on Abi and Layout, and use it
RalfJung Nov 13, 2022
5378b46
fix cranelift and gcc
RalfJung Nov 6, 2022
4cbf5e6
Introduce composite debuginfo.
cjgillot Oct 1, 2022
5b9b849
Allow actual AVX512-related feature names in the case of some mislead…
calebzulawski Oct 30, 2022
bf4e1e4
Use `&mut Bx` more.
nnethercote Nov 9, 2022
21af0df
Use custom entry name in gcc
Ayush1325 Nov 15, 2022
6f7a017
Remove more redundant `all`s
ChrisDenton Nov 26, 2022
634a709
Prefer doc comments over `//`-comments in compiler
WaffleLapkin Nov 27, 2022
d1eb38f
Rewrite LLVM's archive writer in Rust
bjorn3 May 28, 2022
43f868b
Move linkage type check to HIR analysis and fix semantics issues.
pcc Nov 24, 2022
7c2db89
Add LLVM KCFI support to the Rust compiler
rcvalle Nov 22, 2022
c2e83dc
Destruct landing_pad return value before passing it to cg_ssa
bjorn3 Dec 3, 2022
888137d
rustc: Remove needless lifetimes
jeremystucki Dec 20, 2022
3a1d324
Add missing anonymous lifetime
jeremystucki Dec 20, 2022
fa874b0
Simplify some iterator combinators
compiler-errors Dec 10, 2022
5dcda26
Change `src/test` to `tests` in source files, fix tidy and tests
albertlarsan68 Jan 5, 2023
7bf0670
abi: add `AddressSpace` field to `Primitive::Pointer`
erikdesjardins Jan 23, 2023
bedaeda
create and use GlobalAlloc::address_space
erikdesjardins Jan 25, 2023
1640cca
session: diagnostic migration lint on more fns
davidtwco Aug 19, 2022
ae429e8
s/eval_usize/eval_target_usize/ for clarity
oli-obk Feb 14, 2023
564ab10
errors: generate typed identifiers in each crate
davidtwco Oct 13, 2022
7696f98
various: translation resources from cg backend
davidtwco Oct 17, 2022
802e902
Remove type-traversal trait aliases
eggyal Feb 22, 2023
78f3a7e
Update toolchain
antoyo Feb 28, 2023
e74f6ff
Fix rebase
antoyo Mar 1, 2023
d8b5a3e
Fix to examples
antoyo Mar 1, 2023
b4f83c6
Fix error
antoyo Mar 2, 2023
74506d3
Regen intrinsics
GuillaumeGomez Mar 2, 2023
8c3c020
Merge pull request #256 from GuillaumeGomez/regen-intrinsics
antoyo Mar 3, 2023
a2f499f
Fix tests
antoyo Mar 4, 2023
901e413
Fix tests
antoyo Mar 4, 2023
6958188
Temporarily disable rust repo cache
antoyo Mar 4, 2023
08c75ae
Fix error in libgccjit12 code path
antoyo Mar 4, 2023
5c35dc0
Fix warnings
antoyo Mar 4, 2023
9d5bc7c
Fix tests
antoyo Mar 4, 2023
42a89bd
Fix tests
antoyo Mar 4, 2023
f83ede0
Fix tests
antoyo Mar 4, 2023
3180da5
Fix tests
antoyo Mar 5, 2023
4b878cc
Fix tests
antoyo Mar 5, 2023
08a6d6e
Merge pull request #255 from rust-lang/sync_from_rust_2023_feb_28_2
antoyo Mar 5, 2023
6bb2af0
Merge commit '08a6d6e16b5efe217123e780398969946266268f' into sync-cg_…
antoyo Mar 5, 2023
fce7053
Update gccjit
antoyo Mar 5, 2023
2c0c25d
Fix for diagnostics
antoyo Mar 5, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 66 additions & 45 deletions compiler/rustc_codegen_gcc/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,36 +4,72 @@ on:
- push
- pull_request

permissions:
contents: read

env:
# Enable backtraces for easier debugging
RUST_BACKTRACE: 1

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

strategy:
fail-fast: false
matrix:
libgccjit_version: ["libgccjit.so", "libgccjit_without_int128.so", "libgccjit12.so"]
libgccjit_version:
- { gcc: "libgccjit.so", extra: "", env_extra: "", artifacts_branch: "master" }
- { gcc: "libgccjit_without_int128.so", extra: "", env_extra: "", artifacts_branch: "master-without-128bit-integers" }
- { gcc: "libgccjit12.so", extra: "--no-default-features", env_extra: "TEST_FLAGS='-Cpanic=abort -Zpanic-abort-tests'", artifacts_branch: "gcc12" }
commands: [
"--mini-tests",
"--std-tests",
# FIXME: re-enable asm tests when GCC can emit in the right syntax.
# "--asm-tests",
"--test-libcore",
"--extended-rand-tests",
"--extended-regex-example-tests",
"--extended-regex-tests",
"--test-successful-rustc --nb-parts 2 --current-part 0",
"--test-successful-rustc --nb-parts 2 --current-part 1",
"--test-failing-rustc",
]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
repository: llvm/llvm-project
path: llvm

- name: Install packages
run: sudo apt-get install ninja-build ripgrep
# `llvm-14-tools` is needed to install the `FileCheck` binary which is used for asm tests.
run: sudo apt-get install ninja-build ripgrep llvm-14-tools

- name: Install libgccjit12
if: matrix.libgccjit_version.gcc == 'libgccjit12.so'
run: sudo apt-get install libgccjit-12-dev

- name: Download artifact
if: matrix.libgccjit_version.gcc != 'libgccjit12.so'
uses: dawidd6/action-download-artifact@v2
with:
workflow: main.yml
name: ${{ matrix.libgccjit_version }}
name: ${{ matrix.libgccjit_version.gcc }}
path: gcc-build
repo: antoyo/gcc
branch: ${{ matrix.libgccjit_version.artifacts_branch }}
event: push
search_artifacts: true # Because, instead, the action only check the last job ran and that won't work since we want multiple artifacts.

- name: Setup path to libgccjit
if: matrix.libgccjit_version.gcc == 'libgccjit12.so'
run: echo /usr/lib/gcc/x86_64-linux-gnu/12 > gcc_path

- name: Setup path to libgccjit
if: matrix.libgccjit_version.gcc != 'libgccjit12.so'
run: |
echo $(readlink -f gcc-build) > gcc_path
# NOTE: the filename is still libgccjit.so even when the artifact name is different.
Expand All @@ -48,49 +84,44 @@ jobs:
- name: Set RUST_COMPILER_RT_ROOT
run: echo "RUST_COMPILER_RT_ROOT="${{ env.workspace }}/llvm/compiler-rt >> $GITHUB_ENV

# https://github.com/actions/cache/issues/133
- name: Fixup owner of ~/.cargo/
# Don't remove the trailing /. It is necessary to follow the symlink.
run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/

- name: Cache cargo installed crates
uses: actions/cache@v1.1.2
uses: actions/cache@v3
with:
path: ~/.cargo/bin
key: cargo-installed-crates2-ubuntu-latest

- name: Cache cargo registry
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry2-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo target dir
uses: actions/cache@v1.1.2
uses: actions/cache@v3
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain') }}

- name: Build
if: matrix.libgccjit_version != 'libgccjit12.so'
run: |
./prepare_build.sh
./build.sh
cargo test
./clean_all.sh
#- name: Cache rust repository
## We only clone the rust repository for rustc tests
#if: ${{ contains(matrix.commands, 'rustc') }}
#uses: actions/cache@v3
#id: cache-rust-repository
#with:
#path: rust
#key: ${{ runner.os }}-packages-${{ hashFiles('rust/.git/HEAD') }}

- name: Build
if: matrix.libgccjit_version == 'libgccjit12.so'
run: |
./prepare_build.sh
./build.sh --no-default-features
cargo test --no-default-features
${{ matrix.libgccjit_version.env_extra }} ./build.sh ${{ matrix.libgccjit_version.extra }}
${{ matrix.libgccjit_version.env_extra }} cargo test ${{ matrix.libgccjit_version.extra }}
./clean_all.sh

- name: Prepare dependencies
Expand All @@ -106,26 +137,16 @@ jobs:
command: build
args: --release

- name: Test
if: matrix.libgccjit_version != 'libgccjit12.so'
run: |
# Enable backtraces for easier debugging
export RUST_BACKTRACE=1

# Reduce amount of benchmark runs as they are slow
export COMPILE_RUNS=2
export RUN_RUNS=2
- name: Add more failing tests for GCC 12
if: ${{ matrix.libgccjit_version.gcc == 'libgccjit12.so' }}
run: cat failing-ui-tests12.txt >> failing-ui-tests.txt

./test.sh --release

- name: Test
if: matrix.libgccjit_version == 'libgccjit12.so'
- name: Run tests
run: |
# Enable backtraces for easier debugging
export RUST_BACKTRACE=1

# Reduce amount of benchmark runs as they are slow
export COMPILE_RUNS=2
export RUN_RUNS=2
${{ matrix.libgccjit_version.env_extra }} ./test.sh --release --clean --build-sysroot ${{ matrix.commands }} ${{ matrix.libgccjit_version.extra }}

./test.sh --release --no-default-features
duplicates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: python tools/check_intrinsics_duplicates.py
111 changes: 111 additions & 0 deletions compiler/rustc_codegen_gcc/.github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: CI with sysroot compiled in release mode

on:
- push
- pull_request

permissions:
contents: read

env:
# Enable backtraces for easier debugging
RUST_BACKTRACE: 1

jobs:
build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
libgccjit_version:
- { gcc: "libgccjit.so", artifacts_branch: "master" }
commands: [
"--test-successful-rustc --nb-parts 2 --current-part 0",
"--test-successful-rustc --nb-parts 2 --current-part 1",
]

steps:
- uses: actions/checkout@v3

- uses: actions/checkout@v3
with:
repository: llvm/llvm-project
path: llvm

- name: Install packages
run: sudo apt-get install ninja-build ripgrep

- name: Download artifact
uses: dawidd6/action-download-artifact@v2
with:
workflow: main.yml
name: ${{ matrix.libgccjit_version.gcc }}
path: gcc-build
repo: antoyo/gcc
branch: ${{ matrix.libgccjit_version.artifacts_branch }}
event: push
search_artifacts: true # Because, instead, the action only check the last job ran and that won't work since we want multiple artifacts.

- name: Setup path to libgccjit
run: |
echo $(readlink -f gcc-build) > gcc_path
# NOTE: the filename is still libgccjit.so even when the artifact name is different.
ln gcc-build/libgccjit.so gcc-build/libgccjit.so.0

- name: Set env
run: |
echo "LIBRARY_PATH=$(cat gcc_path)" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$(cat gcc_path)" >> $GITHUB_ENV
echo "workspace="$GITHUB_WORKSPACE >> $GITHUB_ENV

- name: Set RUST_COMPILER_RT_ROOT
run: echo "RUST_COMPILER_RT_ROOT="${{ env.workspace }}/llvm/compiler-rt >> $GITHUB_ENV

- name: Cache cargo installed crates
uses: actions/cache@v3
with:
path: ~/.cargo/bin
key: cargo-installed-crates2-ubuntu-latest

- name: Cache cargo registry
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry2-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo index
uses: actions/cache@v3
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}

- name: Cache cargo target dir
uses: actions/cache@v3
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('rust-toolchain') }}

- name: Build
run: |
./prepare_build.sh
./build.sh --release --release-sysroot
cargo test
./clean_all.sh

- name: Prepare dependencies
run: |
git config --global user.email "user@example.com"
git config --global user.name "User"
./prepare.sh

# Compile is a separate step, as the actions-rs/cargo action supports error annotations
- name: Compile
uses: actions-rs/cargo@v1.0.3
with:
command: build
args: --release

- name: Run tests
run: |
./test.sh --release --clean --release-sysroot --build-sysroot ${{ matrix.commands }}
Loading