Commit Graph

1114 Commits

Author SHA1 Message Date
antoyo
c6bc7ecd65
Merge pull request #377 from rust-lang/feature/comment-section
Feature/comment section
2023-11-08 18:53:15 -05:00
Antoni Boucher
4dbfa4d698 Set the .comment section 2023-11-08 17:24:04 -05:00
antoyo
551ea4b027
Merge pull request #374 from rust-lang/fix/eh-frame
Do not emit .eh_frame section if using -Cpanic=abort
2023-11-08 17:18:37 -05:00
Antoni Boucher
cc2af1fb41 Do not emit .eh_frame section when using -Cpanic=abort 2023-11-08 09:10:33 -05:00
antoyo
f20f6bbdbc
Merge pull request #368 from rust-lang/fix/vector-error
Fix vector compilation error
2023-11-03 17:56:16 -04:00
Antoni Boucher
9149becf6a Fix vector compilation error 2023-11-03 09:05:31 -04:00
Guillaume Gomez
a13408d824 Remove libc dependency in cg_gcc alloc_system example 2023-11-02 21:03:27 +01:00
Guillaume Gomez
1075b80649 Pass --sysroot option 2023-11-02 21:03:27 +01:00
Guillaume Gomez
a37446bbb7 Fix config.sh script 2023-11-02 21:03:27 +01:00
Guillaume Gomez
34e6386f63 Fix compilation errors in rustc_codegen_gcc examples 2023-11-02 21:03:27 +01:00
Guillaume Gomez
249969c205 Disable master feature by default when building rustc_codegen_gcc 2023-11-02 21:03:27 +01:00
Antoni Boucher
ff57d7007f Merge commit '09ce29d0591a21e1abae22eac4d41ffd32993af8' into subtree-update_cg_gcc_2023-10-25 2023-10-27 16:07:01 -04:00
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
Antoni Boucher
9f4f90b19a Merge commit 'e4fe941b11a55c5005630696e9b6d81c65f7bd04' into subtree-update_cg_gcc_2023-10-25 2023-10-26 17:42:02 -04: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