792 Commits

Author SHA1 Message Date
Guillaume Gomez
b3916539dd
Set the correct gimple output format 2023-09-07 14:03:56 +02:00
antoyo
e39f3a2484
Merge pull request #327 from GuillaumeGomez/fix-gimple-guide
Fix gimple guide
2023-09-06 17:53:03 -04:00
Guillaume Gomez
7324ee2da8
Add missing compilation 2023-09-06 17:38:50 +02:00
Guillaume Gomez
d214df291c
Fix gimple guide 2023-09-06 15:20:08 +02:00
antoyo
b6ccb55f56
Merge pull request #324 from GuillaumeGomez/no-alias-optimization
Only apply NoAlias attribute if optimization is enabled
2023-08-31 17:55:41 -04:00
Guillaume Gomez
03bcfff8b3 Only apply NoAlias attribute if optimization is enabled 2023-08-31 21:19:36 +02:00
antoyo
4e41a8a632
Merge pull request #278 from rust-lang/feature/lto_2023-05-12
Add support for Link-Time Optimization
2023-08-30 21:15:39 -04:00
Antoni Boucher
62867dc29f LTO implementation 2023-08-30 20:29:24 -04:00
antoyo
2b956f535e
Merge pull request #312 from GuillaumeGomez/fn-param-noalias
Add support for `noalias` function parameters
2023-08-29 18:03:38 -04:00
Guillaume Gomez
c83e5679b3 Don't generate __restrict__ attribute for ByValue arguments 2023-08-29 15:45:48 +02:00
Guillaume Gomez
189dd7022a Update gccjit dependency 2023-08-25 22:39:22 +02:00
Guillaume Gomez
5ac2530d3c Add support for noalias function parameters 2023-08-25 22:39:22 +02:00
antoyo
4ffa4254e1
Merge pull request #319 from GuillaumeGomez/build-system
Rustify prepare.sh command
2023-08-21 17:48:50 -04:00
Guillaume Gomez
08eb006f71 Remove unused Cargo feature 2023-08-21 15:52:05 +02:00
Guillaume Gomez
c682e9ca94 Correctly set path 2023-08-20 00:49:31 +02:00
Guillaume Gomez
18d22d5698 Don't capture output on git commands 2023-08-19 21:10:21 +02:00
Guillaume Gomez
6b588cc007 Rustify prepare.sh command 2023-08-19 21:10:21 +02:00
antoyo
186320aa81
Merge pull request #311 from GuillaumeGomez/regen
Regenerate intrinsics
2023-08-17 17:14:50 -04:00
antoyo
4ad266a668
Merge pull request #318 from GuillaumeGomez/gcc-contribution
Add doc for sending patches to GCC
2023-08-17 17:13:53 -04:00
Guillaume Gomez
4748fdcbab Add doc for sending patches to GCC 2023-08-17 14:29:00 +02:00
antoyo
2b8fe8f38b
Merge pull request #317 from GuillaumeGomez/fix-command
Fix command to run custom rustc
2023-08-16 21:05:37 -04:00
Guillaume Gomez
4cbf1c76ff Fix command to run custom rustc 2023-08-16 13:55:22 +02:00
Guillaume Gomez
d929cf8ef1 Display run commands when using llvm-tblgen 2023-08-16 13:54:10 +02:00
Guillaume Gomez
033dc1f208 Regenerate intrinsics 2023-08-16 13:54:10 +02:00
antoyo
2f11b37c80
Merge pull request #313 from rust-lang/sync_from_rust_2023_08_12
Sync from rust 2023/08/12
2023-08-15 17:58:17 -04:00
Antoni Boucher
53d89e8918 Fix tests 2023-08-15 12:41:35 -04:00
Antoni Boucher
542c82ec37 Fix for libgccjit 12 2023-08-15 11:25:38 -04:00
Antoni Boucher
e3deac5c71 Fix tests 2023-08-15 11:11:57 -04:00
Antoni Boucher
607ec893e7 Merge branch 'master' into sync_from_rust_2023_08_12 2023-08-13 09:59:34 -04:00
Antoni Boucher
43431e4db4 Update to nightly-2023-08-12 2023-08-13 09:37:32 -04:00
Matthias Krüger
8a160d6fcd Rollup merge of #114382 - scottmcm:compare-bytes-intrinsic, r=cjgillot
Add a new `compare_bytes` intrinsic instead of calling `memcmp` directly

As discussed in #113435, this lets the backends be the place that can have the "don't call the function if n == 0" logic, if it's needed for the target.  (I didn't actually *add* those checks, though, since as I understood it we didn't actually need them on known targets?)

Doing this also let me make it `const` (unstable), which I don't think `extern "C" fn memcmp` can be.

cc `@RalfJung` `@Amanieu`
2023-08-07 05:29:12 +02:00
scottmcm
b132a7e6d4 Apply suggestions from code review
Co-authored-by: Ralf Jung <post@ralfj.de>
2023-08-06 15:47:40 -07:00
Scott McMurray
9c8ae2f153 Add a new compare_bytes intrinsic instead of calling memcmp directly 2023-08-06 15:47:40 -07:00
David Tolnay
fe6a4773a1 Generate better function argument names in global_allocator expansion 2023-08-06 07:36:05 -07:00
Matthias Krüger
7ebcd4d5de Rollup merge of #114450 - chenyukang:yukang-fix-114435, r=compiler-errors
Fix ICE failed to get layout for ReferencesError

Fixes #114435

r? `@compiler-errors`
2023-08-04 21:31:57 +02:00
yukang
46062cd68d Fix ICE failed to get layout for ReferencesError 2023-08-05 01:38:14 +08:00
Oli Scherer
de69c67ffa Forbid old-style simd_shuffleN intrinsics 2023-08-03 09:29:00 +00:00
bors
3cde1943af Auto merge of #105545 - erikdesjardins:ptrclean, r=bjorn3
cleanup: remove pointee types

This can't be merged until the oldest LLVM version we support uses opaque pointers, which will be the case after #114148. (Also note `-Cllvm-args="-opaque-pointers=0"` can technically be used in LLVM 15, though I don't think we should support that configuration.)

I initially hoped this would provide some minor perf win, but in https://github.com/rust-lang/rust/pull/105412#issuecomment-1341224450 it had very little impact, so this is only valuable as a cleanup.

As a followup, this will enable #96242 to be resolved.

r? `@ghost`

`@rustbot` label S-blocked
2023-08-01 19:44:17 +00:00
Nicholas Nethercote
e94abcdf3d Use standard Rust capitalization rules for names containing "LTO". 2023-07-31 16:21:02 +10:00
Erik Desjardins
bc4a65d47f cg_ssa: remove pointee types and pointercast/bitcast-of-ptr 2023-07-29 13:18:20 -04:00
Antoni Boucher
52716d237c Add back link to IRC 2023-07-27 19:21:00 -04:00
Antoni Boucher
14964ed2f6 Update the IRC link to the link of the Matrix channel 2023-07-24 13:50:04 -04:00
bors
9e58bacf90 Auto merge of #113877 - JhonnyBillM:reuse-codegen-ssa-monomorphization-errors-in-gcc, r=davidtwco
Reuse `codegen_ssa` monomorphization errors in `codegen_gcc`

Removes monomorphization errors duplication by reusing the ones defined in `codegen_ssa`.

Also updates `expected_simd` errors usage in `codegen_gcc` by assuming we want to treat those parameters as translatable. See 7a888fb56e
2023-07-24 11:29:59 +00:00
antoyo
36b059438d
Merge pull request #307 from GuillaumeGomez/const-attr
Add support for "ffi_const" function attribute
2023-07-22 09:14:48 -04:00
antoyo
6abd12ade0
Merge pull request #308 from GuillaumeGomez/gimple
Add instructions on how to generate GIMPLE format
2023-07-22 08:52:39 -04:00
Guillaume Gomez
cd57c6ea1c Add instructions on how to generate GIMPLE format 2023-07-22 14:49:43 +02:00
Guillaume Gomez
136548d3fe Update gccjit dependency 2023-07-22 14:44:20 +02:00
David Tolnay
e2a847460d Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk"
This reverts commit 557359f92512ca88b62a602ebda291f17a953002, reversing
changes made to 1e6c09a803fd543a98bfbe1624d697a55300a786.
2023-07-21 22:35:57 -07:00
bors
e865542981 Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk
Prototype: Add unstable `-Z reference-niches` option

MCP: rust-lang/compiler-team#641
Relevant RFC: rust-lang/rfcs#3204

This prototype adds a new `-Z reference-niches` option, controlling the range of valid bit-patterns for reference types (`&T` and `&mut T`), thereby enabling new enum niching opportunities. Like `-Z randomize-layout`, this setting is crate-local; as such, references to built-in types (primitives, tuples, ...) are not affected.

The possible settings are (here, `MAX` denotes the all-1 bit-pattern):
| `-Z reference-niches=` | Valid range |
|:---:|:---:|
| `null` (the default) | `1..=MAX` |
| `size` | `1..=(MAX- size)` |
| `align` | `align..=MAX.align_down_to(align)` |
| `size,align` | `align..=(MAX-size).align_down_to(align)` |

------

This is very WIP, and I'm not sure the approach I've taken here is the best one, but stage 1 tests pass locally; I believe this is in a good enough state to unleash this upon unsuspecting 3rd-party code, and see what breaks.
2023-07-21 15:00:36 +00:00
Guillaume Gomez
918332bea2 Add support for "ffi_const" function attribute 2023-07-21 11:23:41 +02:00