antoyo
d64662ff3e
Merge pull request #353 from rust-lang/fix/int-types-alignment
...
Fix/int types alignment
2023-10-17 21:30:47 -04:00
Antoni Boucher
9d5e0ba1f5
Fixes including fixing compilation for --no-default-features
2023-10-17 20:55:54 -04:00
Antoni Boucher
e5fa9f8692
Use the correct alignment for integer types
2023-10-17 20:55:54 -04:00
antoyo
fabdc1a273
Merge pull request #348 from sadlerap/optimize-popcount
...
optimize popcount implementation
2023-10-17 20:47:05 -04:00
antoyo
c80fb4aaf0
Merge pull request #326 from GuillaumeGomez/non-null
...
Add support for NonNull function attribute
2023-10-17 17:48:03 -04:00
Andy Sadler
64abf5862f
optimize popcount implementation
...
In the current implementation, the gcc backend of rustc currently emits the
following for a function that implements popcount for a u32 (x86_64 targeting
AVX2, using standard unix calling convention):
popcount:
mov eax, edi
and edi, 1431655765
shr eax
and eax, 1431655765
add edi, eax
mov edx, edi
and edi, 858993459
shr edx, 2
and edx, 858993459
add edx, edi
mov eax, edx
and edx, 252645135
shr eax, 4
and eax, 252645135
add eax, edx
mov edx, eax
and eax, 16711935
shr edx, 8
and edx, 16711935
add edx, eax
movzx eax, dx
shr edx, 16
add eax, edx
ret
Rather than using this implementation, gcc could be told to use Wenger's
algorithm. This would give the same function the following implementation:
popcount:
xor eax, eax
xor edx, edx
popcnt eax, edi
test edi, edi
cmove eax, edx
ret
This patch implements the popcount operation in terms of Wenger's algorithm in
all cases.
Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-10-17 16:20:55 -05:00
Guillaume Gomez
0348a5f17a
Improve code readability
2023-10-17 23:00:23 +02:00
Guillaume Gomez
096f14d374
Add support for NonNull function attribute
2023-10-17 15:03:25 +02:00
antoyo
4dce75f2e7
Merge pull request #352 from rust-lang/update-libgccjit
...
Fix #[inline(always)] attribute and support unsigned comparison for signed integers
2023-10-17 08:41:45 -04:00
Antoni Boucher
e2f32c72a7
Ignore failing test
...
This test only fails with non-native 128-bit integers, but it will also
fail with native 128-bit integers if we copy/paste it so that it's
executed twice. Interestingly, wrapping the test in a loop won't make it
fail.
So, it could be due to stack space or unwinding in release mode.
Also, the test only fails with -O2:
../cargo.sh rustc --bin test-rust -- -O
It doesn't fail with -O3.
2023-10-17 07:57:56 -04:00
Michael Howell
e1cb8187e1
docs: add Rust logo to more compiler crates
...
c6e6ecb1af
added it to some of the
compiler's crates, but avoided adding it to all of them to reduce
bit-rot. This commit adds to more.
2023-10-16 15:38:08 -07:00
Antoni Boucher
e3998b2d46
Handle unsigned comparison for signed integers
2023-10-13 07:50:42 -04:00
Antoni Boucher
100dfced20
Fix #[inline(always)] attribute
2023-10-11 20:55:32 -04:00
Antoni Boucher
9030b70421
Update libgccjit
2023-10-11 19:38:03 -04:00
Antoni Boucher
cf8c391fc1
Add comment
2023-10-10 19:19:38 -04:00
Antoni Boucher
ba103e34c0
Use IntoDynSyncSend
2023-10-09 17:13:35 -04:00
Antoni Boucher
22e6f6caaf
Fix checks
2023-10-09 16:03:05 -04:00
Antoni Boucher
242a482c88
Merge commit '11a0cceab966e5ff1058ddbcab5977e8a1d6d290' into subtree-update_cg_gcc_2023-10-09
2023-10-09 15:53:34 -04:00
antoyo
11a0cceab9
Merge pull request #350 from rust-lang/sync_from_rust_2023_10_08
...
Sync from rust 2023/10/08
2023-10-09 15:34:06 -04:00
Antoni Boucher
a7532daa76
Fix unchecked_ssub, unchecked_smul, and unchecked_umul
2023-10-09 13:16:47 -04:00
Antoni Boucher
a00ea0bf98
Fix unchecked_sadd
2023-10-09 13:03:23 -04:00
Antoni Boucher
70834391ae
Fix UI tests
2023-10-09 11:27:43 -04:00
Antoni Boucher
3fe53587e4
Add missing comma in alloc_system
2023-10-09 11:09:53 -04:00
Antoni Boucher
ad5637468e
Add missing panic_in_cleanup
2023-10-09 11:08:42 -04:00
Antoni Boucher
e7f7fb87dd
Fix tests
2023-10-09 10:55:25 -04:00
Antoni Boucher
bd7e5b9d4e
Fix bitcast with different sizes
2023-10-09 10:38:37 -04:00
Antoni Boucher
237be9e0cb
Update to nightly-2023-10-08
2023-10-08 11:32:07 -04:00
Antoni Boucher
c567e59bad
Merge branch 'master' into sync_from_rust_2023_10_08
2023-10-08 11:31:53 -04:00
antoyo
d484836a6f
Merge pull request #349 from rust-lang/fix/128-bit-ints-operations
...
Fix/128 bit ints operations
2023-10-08 09:29:13 -04:00
Antoni Boucher
b3c10d4a7d
Fix 128-bit non-native integers negation
2023-10-08 08:49:20 -04:00
Antoni Boucher
b3fecae7d7
Fix 128-bit non-native integers comparison
2023-10-07 15:14:54 -04:00
antoyo
c6447be05f
Merge pull request #345 from GuillaumeGomez/build-sysroot
...
Rustify build.sh script
2023-10-05 17:11:26 -04:00
Guillaume Gomez
33e1daa51b
Improve code
2023-10-05 21:10:33 +02:00
Guillaume Gomez
eedf1b6cb4
Migrate build.sh script to rust
2023-10-04 23:21:03 +02:00
bors
91ab7909e1
Auto merge of #102099 - InnovativeInventor:re-cold-land, r=nikic
...
Rebased: Mark drop calls in landing pads cold instead of noinline
I noticed that certain inlining optimizations were missing while staring at some compiled code output. I'd like to see this relanded, so I rebased the PR from `@erikdesjardins` (PR #94823 ).
This PR reapplies https://github.com/rust-lang/rust/pull/92419 , which was reverted in https://github.com/rust-lang/rust/pull/94402 due to https://github.com/rust-lang/rust/issues/94390 .
Fixes https://github.com/rust-lang/rust/issues/46515 , fixes https://github.com/rust-lang/rust/issues/87055 .
Update: fixes #97217 .
2023-10-02 22:02:12 +00:00
Erik Desjardins
7e8c85ba31
Reapply: Mark drop calls in landing pads cold instead of noinline
...
Co-authored-by: Max Fan <git@max.fan>
Co-authored-by: Nikita Popov <npopov@redhat.com>
2023-10-02 10:37:53 +02:00
bors
c7407eff9d
Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrum
...
bootstrap major change detection implementation
The use of `changelog-seen` and `bootstrap/CHANGELOG.md` has not been functional in any way for many years. We often do major/breaking changes but never update the changelog file or the `changelog-seen`. This is an alternative method for tracking major or breaking changes and informing developers when such changes occur.
Example output when bootstrap detects a major change:
![image](https://github.com/rust-lang/rust/assets/39852038/ee802dfa-a02b-488b-a433-f853ce079b8a )
2023-10-02 07:41:52 +00:00
onur-ozkan
b1862af177
implement major change tracking for the bootstrap configuration
...
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-01 16:54:52 +03:00
antoyo
71febd94f4
Merge pull request #344 from GuillaumeGomez/improvements
...
Improve y.sh script (to potentially allow dependencies) and improve `build_system` help message
2023-09-25 17:19:20 -04:00
Guillaume Gomez
6be1f36744
Add help message
2023-09-25 17:17:50 +02:00
Guillaume Gomez
ccf5799782
Use cargo to build the build system binary
2023-09-25 17:04:44 +02:00
antoyo
2e585e85e1
Merge pull request #343 from GuillaumeGomez/add-attribute-doc
...
Add guide to add new attributes support in libgccjit
2023-09-22 18:23:15 -04:00
Oli Scherer
8373b05514
Have a single struct for queries and hook
2023-09-22 16:26:20 +00:00
Guillaume Gomez
a7d8b8eb9f
Add guide to add new attributes support in libgccjit
2023-09-22 16:50:42 +02:00
Oli Scherer
38b9e26a75
Add a way to decouple the implementation and the declaration of a TyCtxt method.
2023-09-22 09:23:15 +00:00
antoyo
e7d1dc33c6
Merge pull request #337 from rust-lang/fix/gep
...
Fix gep on pointers to non-number
2023-09-20 17:57:04 -04:00
Antoni Boucher
be3b1e3321
Fix gep on pointers to non-number
2023-09-20 09:10:24 -04:00
antoyo
6118ee488a
Merge pull request #335 from rust-lang/feature/rdrand64
...
Implement llvm.x86.rdrand.64
2023-09-18 19:18:13 -04:00
Antoni Boucher
5ab4e2b484
Implement llvm.x86.rdrand.64
2023-09-18 18:24:09 -04:00
Ralf Jung
cd519aabd7
fix gcc, cranelift build
2023-09-15 10:43:44 +02:00