Commit Graph

901 Commits

Author SHA1 Message Date
antoyo
09ce29d059
Merge pull request #375 from GuillaumeGomez/fix-build-scripts
Make build scripts work with rust bootstrap
2023-10-27 16:06:12 -04:00
Guillaume Gomez
eb10fa345e Fix build scripts 2023-10-27 17:53:44 +02:00
antoyo
e4fe941b11
Merge pull request #371 from rust-lang/sync_from_rust_2023_10_25
Sync from rust 2023/10/25
2023-10-26 17:40:15 -04:00
Antoni Boucher
a6984f5961 Fix tests 2023-10-26 08:26:03 -04:00
Antoni Boucher
2a2b3ea48b Remove duplication in CI 2023-10-25 20:43:51 -04:00
Antoni Boucher
c12ac7ea76 Fix warning 2023-10-25 20:42:47 -04:00
Antoni Boucher
9efb4ce8ba Update to nightly-2023-10-25 2023-10-25 20:41:45 -04:00
Antoni Boucher
42e37059a3 Fix rebase 2023-10-25 20:41:39 -04:00
Antoni Boucher
4d66cd8aa8 Merge branch 'master' into sync_from_rust_2023_10_25 2023-10-25 20:39:08 -04:00
antoyo
8329a356fc
Merge pull request #369 from GuillaumeGomez/regen-intrinsics
Regenerate intrinsics mapping
2023-10-25 18:21:34 -04:00
antoyo
d4a74fba1f
Merge pull request #363 from GuillaumeGomez/test-command
Add basics for `test` command in build system
2023-10-25 18:20:42 -04:00
antoyo
47bac1f679
Merge pull request #357 from rust-lang/fix/gcc-12
Fix for the libgccjit 12 CI
2023-10-25 17:55:34 -04:00
Antoni Boucher
783789f831 Build the sysroot and run more tests 2023-10-25 11:19:03 -04:00
Guillaume Gomez
c15ad9e7a5 Regenerate intrinsics mapping 2023-10-25 15:53:31 +02:00
antoyo
3d9c8afc03
Merge pull request #365 from rust-lang/fix/volatile-load
Fix volatile_load
2023-10-24 21:34:17 -04:00
Antoni Boucher
a93d1b73c6 Fix volatile_load 2023-10-24 19:53:59 -04:00
antoyo
46887f2a84
Merge pull request #364 from rust-lang/doc/target-spec
Fix to be able to use a target specification JSON file and document the process
2023-10-24 18:30:01 -04:00
Antoni Boucher
0b6e1332b1 Fix to be able to use a target specification JSON file and document the process 2023-10-24 17:41:44 -04:00
Guillaume Gomez
fcd336b3de Add basics for test command in build system 2023-10-24 17:15:18 +02:00
antoyo
16b3da81f3
Merge pull request #346 from rust-lang/fix/endianness
Fix/endianness
2023-10-21 20:32:09 -04:00
Antoni Boucher
7425c560d3 Add comment 2023-10-21 18:48:03 -04:00
Oli Scherer
a690467938 s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
Oli Scherer
67b28ac34b s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
antoyo
2096606684
Merge pull request #354 from sadlerap/popcount-128-bits
optimize u128/i128 popcounts further
2023-10-19 07:42:50 -04:00
Andy Sadler
81c1f39a86
optimize u128/i128 popcounts further
Don't fall back on breaking apart the popcount operation if 128-bit
integers are natively supported.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2023-10-18 22:10:41 -05:00
antoyo
a9f31ab481
Merge pull request #355 from rust-lang/refactor-ci
Refactor CI
2023-10-18 20:07:45 -04:00
Antoni Boucher
c7679c4831 Revome llvm-14-tools from failures CI 2023-10-18 19:04:47 -04:00
Antoni Boucher
99bc37e075 Refactor CI scripts to have a different file for libgccjit 12 2023-10-18 19:04:27 -04:00
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