Commit Graph

1419 Commits

Author SHA1 Message Date
Guillaume Gomez
30ee7ba862 Add shl and shr missing casts 2024-07-02 12:23:55 -04:00
Guillaume Gomez
684a69b4e6 Update gcc version to 272d0ccced960394fe6ff2b40b01610208cb4940 2024-07-02 12:23:39 -04:00
Guillaume Gomez
068fe5d10a If the type of a global is not the same, we remove the global and replace it with a new one 2024-07-02 12:23:33 -04:00
Guillaume Gomez
a89f17869c Fix stdarch crate add patch 2024-07-02 12:21:28 -04:00
Guillaume Gomez
621e948721 Fix clippy lint 2024-07-02 12:21:25 -04:00
Guillaume Gomez
fd7979d46d Remove usage of -Zno-parallel-llvm 2024-07-02 12:21:16 -04:00
Guillaume Gomez
7615e04f82 Fix usage of get_size for gcc 12 2024-07-02 12:20:47 -04:00
Guillaume Gomez
9b1211db58 Fix casts 2024-07-02 12:20:42 -04:00
Guillaume Gomez
263166894a Update libgccjit version 2024-07-02 12:20:38 -04:00
Guillaume Gomez
580e5ba456 Format code 2024-07-02 12:20:34 -04:00
Guillaume Gomez
f848dbbda5 Fix non-master build 2024-07-02 12:20:30 -04:00
Guillaume Gomez
8e819fbb5c Fix libcore patch 2024-07-02 12:20:25 -04:00
antoyo
173773e4b4
Merge pull request #534 from antoyo/master
Sync from fork
2024-06-25 09:36:10 -04:00
antoyo
70d36558ee
Merge pull request #17 from zedar/add_support_for_float16_float128
Add support for Float16, Float32, Float64 and Float128
2024-06-25 09:33:02 -04:00
Antoni Boucher
9274c63df3 Change Void to unreachable 2024-06-25 09:00:36 -04:00
Antoni Boucher
73db24970f Add comment about compiler_builtins 2024-06-25 08:59:26 -04:00
Antoni Boucher
16e1ad7327 Fix clippy warnings 2024-06-25 08:10:29 -04:00
Robert Zakrzewski
dabf5faff0 Add support for Float64 2024-06-21 22:10:52 +02:00
bjorn3
994041a40c Remove type_i1 and type_struct from cg_ssa
They are not representable by Cranelift
2024-06-21 19:30:26 +00:00
bjorn3
8a1e58169a Remove check_overflow method from MiscMethods
It can be retrieved from the Session too.
2024-06-21 19:30:26 +00:00
bjorn3
9d25e851ce Remove const_bitcast from ConstMethods 2024-06-21 19:26:07 +00:00
Robert Zakrzewski
2eaac2388d Refactor type_f16|32|128 functions. Common type_kind()
fix
2024-06-21 17:21:46 +02:00
Robert Zakrzewski
55788e4a92 Update libgccjit version with fixed is_same_type_as for vector types 2024-06-21 16:12:05 +02:00
Antoni Boucher
c4e7c04de9 Fix location of check for sized floating-point types 2024-06-21 16:12:05 +02:00
Robert Zakrzewski
0dad11feb9 Do not use target dependent Float32
fix formatting
2024-06-21 16:12:05 +02:00
Robert Zakrzewski
b94cb8c01c Add missing types in the type_kind function
reorder type_kind

reorder type_kind

reorder type_kind

fix

fix

fix

fix
2024-06-21 16:12:05 +02:00
Robert Zakrzewski
fa18a181f7 Temporary downgrade compiler_builtins library. From version 0.1.110 the no-f16-f128 feautes introduced incompatibility 2024-06-21 16:12:05 +02:00
Robert Zakrzewski
a486dbfc17 Upgrade libgccjit.version 2024-06-21 16:12:05 +02:00
Robert Zakrzewski
d0977e3e2a Add support for Float16, Float32, Float64 and Float128
Upgrade libgccjit.version

Limit new Floatxx types to master branch only

apply rustfmt

Make new types available only when requested

Make new types available only when requested

Check if Float16 and Float128 are supported by the target platform

Replace Float with Float32 and Double with Float64 if target dependent type is defined

Add support for Float16|32|64|128 in the builder

Fix cargo fmt errors

Update gccjit wrapper

update hash of ligccjit
2024-06-21 16:12:05 +02:00
Nicholas Nethercote
8c5d84d102 Add blank lines after module-level //! comments.
Most modules have such a blank line, but some don't. Inserting the blank
line makes it clearer that the `//!` comments are describing the entire
module, rather than the `use` declaration(s) that immediately follows.
2024-06-20 09:23:20 +10:00
Oli Scherer
cb1bde07c1 Remove redundant argument from subdiagnostic method 2024-06-18 15:42:11 +00:00
Oli Scherer
527b3575ba Use a dedicated type instead of a reference for the diagnostic context
This paves the way for tracking more state (e.g. error tainting) in the diagnostic context handle
2024-06-18 15:42:11 +00:00
Shashank Trivedi
a63b83eb4e
ui pattern failure tests (#524) 2024-06-10 17:13:44 -04:00
Ralf Jung
d565d3d23d ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
Michael Goulet
b2d39816ba Uplift TypeRelation and Relate 2024-06-01 12:50:58 -04:00
Bennet Bleßmann
eccab8ba39
prevent libgccjit.so download on unsupported os/arch (#529)
prevent libgccjit.so download on unsupported os/arch (#529)


Co-authored-by: Guillaume Gomez <guillaume1.gomez@gmail.com>
2024-06-01 13:29:55 +02:00
antoyo
c2c93ee721
Merge pull request #526 from GuillaumeGomez/readme-format
Improve Readme.md format
2024-05-28 07:55:47 -04:00
Guillaume Gomez
e7eeeb92da Improve Readme.md format 2024-05-28 12:03:35 +02:00
antoyo
02eb434da9
Merge pull request #519 from sadlerap/simd-ptr-provenance
simd: implement pointer provenance intrinsics
2024-05-27 12:48:19 -04:00
Gerson
b13943ed42
adding more env vars (#523) 2024-05-27 12:08:20 -04:00
Guillaume Gomez
a1d293337c Rollup merge of #125345 - durin42:thin-link-bitcode, r=bjorn3
rustc_codegen_llvm: add support for writing summary bitcode

Typical uses of ThinLTO don't have any use for this as a standalone file, but distributed ThinLTO uses this to make the linker phase more efficient. With clang you'd do something like `clang -flto=thin -fthin-link-bitcode=foo.indexing.o -c foo.c` and then get both foo.o (full of bitcode) and foo.indexing.o (just the summary or index part of the bitcode). That's then usable by a two-stage linking process that's more friendly to distributed build systems like bazel, which is why I'm working on this area.

I talked some to `@teresajohnson` about naming in this area, as things seem to be a little confused between various blog posts and build systems. "bitcode index" and "bitcode summary" tend to be a little too ambiguous, and she tends to use "thin link bitcode" and "minimized bitcode" (which matches the descriptions in LLVM). Since the clang option is thin-link-bitcode, I went with that to try and not add a new spelling in the world.

Per `@dtolnay,` you can work around the lack of this by using `lld --thinlto-index-only` to do the indexing on regular .o files of bitcode, but that is a bit wasteful on actions when we already have all the information in rustc and could just write out the matching minimized bitcode. I didn't test that at all in our infrastructure, because by the time I learned that I already had this patch largely written.
2024-05-23 23:39:26 +02:00
Augie Fackler
4a79b06f83 rustc_codegen_gcc: fix changed method signature 2024-05-23 15:23:21 -04:00
Augie Fackler
29fc479a30 rustc_codegen_llvm: add support for writing summary bitcode
Typical uses of ThinLTO don't have any use for this as a standalone
file, but distributed ThinLTO uses this to make the linker phase more
efficient. With clang you'd do something like `clang -flto=thin
-fthin-link-bitcode=foo.indexing.o -c foo.c` and then get both foo.o
(full of bitcode) and foo.indexing.o (just the summary or index part of
the bitcode). That's then usable by a two-stage linking process that's
more friendly to distributed build systems like bazel, which is why I'm
working on this area.

I talked some to @teresajohnson about naming in this area, as things
seem to be a little confused between various blog posts and build
systems. "bitcode index" and "bitcode summary" tend to be a little too
ambiguous, and she tends to use "thin link bitcode" and "minimized
bitcode" (which matches the descriptions in LLVM). Since the clang
option is thin-link-bitcode, I went with that to try and not add a new
spelling in the world.

Per @dtolnay, you can work around the lack of this by using `lld
--thinlto-index-only` to do the indexing on regular .o files of
bitcode, but that is a bit wasteful on actions when we already have all
the information in rustc and could just write out the matching minimized
bitcode. I didn't test that at all in our infrastructure, because by the
time I learned that I already had this patch largely written.
2024-05-22 14:04:22 -04:00
Scott McMurray
cae9e7ec6a Stop using to_hir_binop in codegen 2024-05-22 01:34:26 -07:00
Santiago Pastorino
21f58e4bc4 Rename Unsafe to Safety 2024-05-17 18:33:37 -03:00
bors
06f1ba4f65 Auto merge of #124972 - matthiaskrgr:rollup-3fablim, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #124615 (coverage: Further simplify extraction of mapping info from MIR)
 - #124778 (Fix parse error message for meta items)
 - #124797 (Refactor float `Primitive`s to a separate `Float` type)
 - #124888 (Migrate `run-make/rustdoc-output-path` to rmake)
 - #124957 (Make `Ty::builtin_deref` just return a `Ty`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-10 16:04:26 +00:00
Matthias Krüger
ce11a86648 Rollup merge of #124797 - beetrees:primitive-float, r=davidtwco
Refactor float `Primitive`s to a separate `Float` type

Now there are 4 of them, it makes sense to refactor `F16`, `F32`, `F64` and `F128` out of `Primitive` and into a separate `Float` type (like integers already are). This allows patterns like `F16 | F32 | F64 | F128` to be simplified into `Float(_)`, and is consistent with `ty::FloatTy`.

As a side effect, this PR also makes the `Ty::primitive_size` method work with `f16` and `f128`.

Tracking issue: #116909

`@rustbot` label +F-f16_and_f128
2024-05-10 16:10:46 +02:00
Ralf Jung
7ad734687c codegen: memmove/memset cannot be non-temporal 2024-05-09 18:59:00 +02:00
Andy Sadler
a0b4d735e3
simd: implement pointer provenance intrinsics
This adds support for the simd variants of the pointer provenance
intrinsics, which are `simd_cast_ptr`, `simd_expose_addr`, and
`simd_from_exposed_addr`.

The preconditions for each intrinsic are adapted from rustc_codegen_llvm
to preserve compatibility.  Each of these intrinsics are implemented as
calling the non-simd variant of each intrinsic on each lane.

This is enough to enable the UI test `ui/simd/intrinsic/ptr-cast.rs` to
pass.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
2024-05-08 20:51:21 -05:00
Nicholas Nethercote
6b7db50d89 Simplify use crate::rustc_foo::bar occurrences.
They can just be written as `use rustc_foo::bar`, which is far more
standard. (I didn't even know that a `crate::` prefix was valid.)
2024-05-08 16:57:31 +10:00