Stuart Cook
0bfc49b053
Rollup merge of #131876 - workingjubilee:llvm-c-c-c-comdat, r=Zalathar
...
compiler: Use LLVM's Comdat support
Acting on these long-ago issues:
- https://github.com/rust-lang/rust/issues/46437
- https://github.com/rust-lang/rust/issues/68955
2024-10-20 14:06:03 +11:00
Jubilee Young
492760020e
llvm: Delete LLVMRustSetComdat
2024-10-19 10:46:10 -07:00
Arthur Eubanks
18bbf5f118
clang-format
2024-10-16 21:46:52 +00:00
Arthur Eubanks
6de277c039
rustc_llvm: Fix flattened CLI args
...
Fixes string manipulation errors introduced in #130446 .
2024-10-16 21:26:34 +00:00
Trevor Gross
6f76d6e1a3
Rollup merge of #131552 - durin42:llvm-20-getOrInsertDeclaration, r=cuviper
...
RustWrapper: adapt for rename of Intrinsic::getDeclaration
llvm/llvm-project@fa789dffb1 renamed getDeclaration to getOrInsertDeclaration.
`@rustbot` label: +llvm-main
2024-10-11 16:53:50 -05:00
Augie Fackler
19345d5c6e
RustWrapper: adapt for rename of Intrinsic::getDeclaration
...
llvm/llvm-project@fa789dffb1 renamed
getDeclaration to getOrInsertDeclaration.
@rustbot label: +llvm-main
2024-10-11 12:29:49 -04:00
Zalathar
9357277de7
coverage: Remove code related to LLVM 17
2024-10-11 21:44:36 +11:00
zhuyunxing
911ac56e95
coverage. Disable supporting mcdc on llvm-18
2024-10-08 10:50:18 +08:00
Trevor Gross
eaaa94318b
Unpin cc
and upgrade to the latest version
...
`cc` was previously pinned because version 1.1.106 dropped support for
Visual Studio 12 (2013), and we wanted to decouple that from the rest of
the automated updates. As noted in [2], there is no longer anything
indicating we support VS2013, so it should be okay to unpin it.
`cc` 1.1.22 contains a fix that may help improve the high MSVC CI
failure rate [3], so we also have motivation to update to that point.
[1]: https://github.com/rust-lang/rust/issues/129307
[2]: https://github.com/rust-lang/rust/issues/129307#issuecomment-2383749868
[3]: https://github.com/rust-lang/rust/issues/127883
2024-09-30 13:31:42 -04:00
Aleksei Romanov
afb7eef79a
Pass Module Analysis Manager to Standard Instrumentations
2024-09-25 22:57:32 +03:00
bors
1f9a018fa3
Auto merge of #130446 - durin42:llvm-20-fix-CommandLineArgs, r=workingjubilee
...
rustc_llvm: adapt to flattened CLI args in LLVM
This changed in
llvm/llvm-project@e190d074a0 . I decided to stick with more duplication between the ifdef blocks to make the code easier to read for the next two years before we can plausibly drop LLVM 19.
`@rustbot` label: +llvm-main
try-job: x86_64-msvc
2024-09-22 05:26:41 +00:00
Josh Stone
6fd8a50680
Update the minimum external LLVM to 18
2024-09-18 13:53:31 -07:00
Krasimir Georgiev
3a352884f8
llvm-wrapper: adapt for LLVM API changes, second try
2024-09-18 13:23:42 +00:00
Matthias Krüger
f8090dda64
Rollup merge of #130477 - tmandry:revert-llvm-20-lto, r=tmandry
...
Revert #129749 to fix segfault in LLVM
This reverts commit 8c7a7e346b
, reversing changes made to a00bd75b6c
.
Reported in https://github.com/rust-lang/rust/pull/129749#issuecomment-2354417960 . `@nikic's` theory is that the LLVM API changed in a way that makes it impossible to use concurrently from multiple threads (https://github.com/llvm/llvm-project/pull/106427#issuecomment-2354783802 ). I pinged `@krasimirgg` who was fine with reverting.
r? `@rust-lang/wg-llvm`
2024-09-17 20:45:51 +02:00
Tyler Mandry
472fef6a70
Revert "Rollup merge of #129749 - krasimirgg:llvm-20-lto, r=nikic"
...
This reverts commit 8c7a7e346b
, reversing
changes made to a00bd75b6c
.
2024-09-16 17:11:02 -07:00
Augie Fackler
86d67b7933
PassWrapper: clang-format has spoken
2024-09-16 20:06:50 -04:00
Augie Fackler
ad0ecebf43
rustc_llvm: adapt to flattened CLI args in LLVM
...
This changed in
llvm/llvm-project@e190d074a0 . I decided to
stick with more duplication between the ifdef blocks to make the code
easier to read for the next two years before we can plausibly drop LLVM
19.
@rustbot label: +llvm-main
2024-09-16 19:58:05 -04:00
Augie Fackler
1e68f05109
rustc_llvm: update for llvm/llvm-project@2ae968a0d9
...
Just a simple header move.
@rustbot label: +llvm-main
2024-09-16 19:53:13 -04:00
Chris Denton
7223fd8085
Add system libs when cross compiling for Windows
2024-09-15 12:38:55 +00:00
Boxy
0091b8ab2a
update cfgs
2024-09-05 17:24:01 +01:00
Matthias Krüger
8c7a7e346b
Rollup merge of #129749 - krasimirgg:llvm-20-lto, r=nikic
...
llvm-wrapper: adapt for LLVM API changes
No functional changes intended.
Updates the wrapper for 21eddfac3d
.
````@rustbot```` label: +llvm-main
r? ````@nikic````
2024-08-31 14:46:09 +02:00
Guillaume Gomez
d5c40d03dc
Rollup merge of #128970 - DianQK:lint-llvm-ir, r=nikic
...
Add `-Zlint-llvm-ir`
This flag is similar to `-Zverify-llvm-ir` and allows us to lint the generated IR.
r? compiler
2024-08-29 16:21:47 +02:00
Krasimir Georgiev
9c910e81a4
llvm-wrapper: adapt for LLVM API changes
...
Updates the wrapper for 21eddfac3d
.
2024-08-29 14:08:58 +00:00
DianQK
9589eb95d2
Add -Zlint-llvm-ir
2024-08-29 18:12:31 +08:00
Matthias Krüger
489eb230dd
Rollup merge of #129648 - nnethercote:unreachable_pub-2, r=Urgau
...
More `unreachable_pub`
Add `unreachable_pub` checking to some more compiler crates. A follow-up to #126013 .
r? ``@Urgau``
2024-08-27 18:59:29 +02:00
Matthias Krüger
3299e30abc
Rollup merge of #129635 - compiler-errors:unsafe-blocks, r=spastorino
...
Use unsafe extern blocks throughout the compiler
Making this change in preparation for edition 2024.
r? spastorino
2024-08-27 18:59:28 +02:00
Trevor Gross
9c26ebe32e
Rollup merge of #126985 - Mrmaxmeier:dwarf-embed-source, r=davidtwco
...
Implement `-Z embed-source` (DWARFv5 source code embedding extension)
Implement https://github.com/rust-lang/compiler-team/issues/764 MCP which adds an unstable flag that exposes LLVM's [DWARFv5 source code embedding](https://dwarfstd.org/issues/180201.1.html ) support.
2024-08-27 01:46:49 -05:00
Nicholas Nethercote
22cdd632f1
Add warn(unreachable_pub)
to rustc_llvm
.
2024-08-27 15:28:26 +10:00
Michael Goulet
38e62b9841
Use unsafe extern blocks throughout the compiler
2024-08-26 19:51:05 -04:00
Matthias Krüger
2a7f2da422
Rollup merge of #129290 - tgross35:pin-cc, r=Mark-Simulacrum
...
Pin `cc` to 1.0.105
`cc` 1.0.106 removes support for Visual Studio 12. Pin to 1.0.105 so we don't drop support yet.
Fixes: https://github.com/rust-lang/rust/pull/128722#issuecomment-2297605573
2024-08-24 22:14:13 +02:00
Krasimir Georgiev
b509b4226b
llvm-wrapper: adapt for LLVM 20 API changes
...
No functional changes intended.
Adapts llvm-wrapper for the LLVM commits 0f22d47a7a
and d6d8243dcd
.
2024-08-21 16:27:31 +00:00
Trevor Gross
a5f6c15571
Pin cc
to 1.0.105
...
`cc` 1.0.106 removes support for Visual Studio 12. Pin to 1.0.105 so we
don't drop support yet.
Fixes: https://github.com/rust-lang/rust/pull/128722#issuecomment-2297605573
2024-08-19 22:24:46 -04:00
bors
d2b5aa6552
Auto merge of #128936 - bjorn3:fix_thin_archive_reading, r=jieyouxu
...
Support reading thin archives in ArArchiveBuilder
And switch to using ArArchiveBuilder with the LLVM backend too now that all regressions are fixed.
Fixes https://github.com/rust-lang/rust/issues/107407
Fixes https://github.com/rust-lang/rust/issues/107162
https://github.com/rust-lang/rust/issues/107495 has been fixed in a previous PR already.
2024-08-15 14:13:52 +00:00
bjorn3
901c9daa05
Fix null pointer dereference when a file is not an object file
2024-08-14 19:37:14 +00:00
bjorn3
7c972d75dc
Use toString instead of raw_svector_ostream for error messages
2024-08-14 19:26:00 +00:00
bors
e08b80c0fb
Auto merge of #128371 - andjo403:rangeAttribute, r=nikic
...
Add range attribute to scalar function results and arguments
as LLVM 19 adds the range attribute this starts to use it for better optimization.
hade been interesting to see a perf run with the https://github.com/rust-lang/rust/pull/127513
closes https://github.com/rust-lang/rust/issues/50156
cc https://github.com/rust-lang/rust/issues/49572 shall be fixed but not possible to see as there is asserts that already trigger the optimization.
2024-08-12 10:20:00 +00:00
Andreas Jonson
cfadfabfcd
Add range attribute to scalar function results and arguments
2024-08-11 19:40:44 +02:00
Kyle Huey
6e9afb8dde
Enable zstd for debug compression.
...
Set LLVM_ENABLE_ZSTD alongside LLVM_ENABLE_ZLIB so that --compress-debug-sections=zstd is an option.
Use static linking to avoid a new runtime dependency. Add an llvm.libzstd bootstrap option for LLVM
with zstd. Set it off by default except for the dist builder. Handle llvm-config --system-libs output
that contains static libraries.
2024-08-09 05:55:23 -07:00
Krasimir Georgiev
00bfd702dc
Disable MC/DC tests on LLVM 19
...
Disable the tests and generate an error if MC/DC is used on LLVM 19.
The support will be ported separately, as it is substantially
different on LLVM 19, and there are no plans to support both
versions.
2024-07-30 10:22:48 +02:00
Mrmaxmeier
0b87af9d4f
Add -Z embed-source=yes
to embed source code in DWARF debug info
2024-07-29 12:35:36 +02:00
Nicholas Nethercote
84ac80f192
Reformat use
declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
Matthew Maurer
38931cd227
LLVM: LLVM-20.0 removes MMX types
...
See llvm/llvm-project#98505
2024-07-25 17:58:37 +00:00
Trevor Gross
63f239c89f
Rollup merge of #124033 - bjorn3:ar_archive_writer_0_3_0, r=davidtwco
...
Sync ar_archive_writer to LLVM 18.1.3
From LLVM 15.0.0-rc3. This adds support for COFF archives containing Arm64EC object files and has various fixes for AIX big archive files.
2024-07-16 16:15:13 -05:00
Michael Goulet
28503d69ac
Fix unsafe_op_in_unsafe_fn in compiler
2024-07-16 00:02:44 -04:00
Nikita Popov
8dfd3a455d
Remove LLVMRustDIBuilderInsertDeclareAtEnd return value
...
The return value changed from an Instruction to a DbgRecord in
LLVM 19. As we don't actually use the result, drop the return
value entirely to support both.
2024-07-12 22:15:10 +02:00
Nikita Popov
776b0adaaf
Fix incorrect NDEBUG handling in LLVM bindings
...
We currently compile our LLVM bindings using `-DNDEBUG` if
debuginfo for LLVM is disabled. However, `NDEBUG` doesn't have
any relation to debuginfo, it controls whether assertions are
enabled.
Rename the environment variable to `LLVM_ASSERTIONS` and drive
it using the `llvm_assertions` option. Also drop the explicit
`debug(false)` call, as cc already sets this up using the
cargo `DEBUG` environment variable.
2024-07-12 22:13:56 +02:00
bjorn3
cd3f2f68c0
Fix review comments
2024-07-07 17:08:55 +00:00
bjorn3
72223e205d
Fix building on LLVM 17
2024-07-07 17:08:42 +00:00
bjorn3
58e551433d
Sync ar_archive_writer to LLVM 18.1.3
...
From LLVM 15.0.0-rc3. This adds support for COFF archives containing
Arm64EC object files and has various fixes for AIX big archive files.
2024-07-07 16:56:35 +00:00
Trevor Gross
c15a698f56
Rename the asm-comments
compiler flag to verbose-asm
...
Since this codegen flag now only controls LLVM-generated comments rather than
all assembly comments, make the name more accurate (and also match Clang).
2024-07-02 21:42:01 -04:00