Jubilee Young
b895bf4fdc
compiler: Directly use rustc_abi in codegen
2024-11-03 12:30:32 -08:00
Zalathar
4bd84b23a8
Use a type-safe helper to cast &str and &[u8] to *const c_char
2024-10-28 21:31:32 +11:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Nicholas Nethercote
a8d22eb39e
Rename supertraits of CodegenMethods.
...
Supertraits of `BuilderMethods` are all called `XyzBuilderMethods`.
Supertraits of `CodegenMethods` are all called `XyzMethods`. This commit
changes the latter to `XyzCodegenMethods`, for consistency.
2024-09-17 10:24:43 +10:00
Matthias Krüger
110c3df7fd
Rollup merge of #126013 - nnethercote:unreachable_pub, r=Urgau
...
Add `#[warn(unreachable_pub)]` to a bunch of compiler crates
By default `unreachable_pub` identifies things that need not be `pub` and tells you to make them `pub(crate)`. But sometimes those things don't need any kind of visibility. So they way I did these was to remove the visibility entirely for each thing the lint identifies, and then add `pub(crate)` back in everywhere the compiler said it was necessary. (Or occasionally `pub(super)` when context suggested that was appropriate.) Tedious, but results in more `pub` removal.
There are plenty more crates to do but this seems like enough for a first PR.
r? `@compiler-errors`
2024-08-27 00:41:57 +02:00
Nicholas Nethercote
61627438eb
Add warn(unreachable_pub) to rustc_codegen_llvm.
2024-08-16 08:46:57 +10:00
beetrees
fe4fa2f1da
Use the enum2$ Natvis visualiser for repr128 C-style enums
2024-08-13 19:53:21 +01:00
Nicholas Nethercote
84ac80f192
Reformat use declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
Jubilee Young
ce7b069fd8
compiler: Never debug_assert in codegen
...
The gains in performance are not worth the costs in correctness.
This is partly because the gains are zero and the costs are unknown.
2024-07-20 00:16:44 -07:00
Michael Goulet
333458c2cb
Uplift TypeRelation and Relate
2024-06-01 12:50:58 -04:00
beetrees
3769fddba2
Refactor float Primitives to a separate Float type
2024-05-06 14:56:10 +01:00
Nicholas Nethercote
4814fd0a4b
Remove extern crate rustc_macros from numerous crates.
2024-04-29 10:21:54 +10:00
Michael Goulet
b7d67eace7
Require coroutine kind type to be passed to TyCtxt::coroutine_layout
2024-03-24 21:12:49 -04:00
Michael Goulet
847fd88df7
Always use tcx.coroutine_layout over calling optimized_mir directly
2024-03-24 20:06:05 -04:00
Trevor Gross
e3f63d9375
Add f16 and f128 to rustc_type_ir::FloatTy and rustc_abi::Primitive
...
Make changes necessary to support these types in the compiler.
2024-02-28 12:58:32 -05:00
Michael Goulet
fcb42b42d6
Remove movability from TyKind::Coroutine
2023-12-28 16:35:01 +00:00
Matthias Krüger
8479945c08
NFC don't convert types to identical types
2023-12-15 23:56:24 +01:00
David Wood
07931c5a08
codegen_llvm: set DW_AT_accessibility
...
Sets the accessibility of types and fields in DWARF using
`DW_AT_accessibility` attribute.
`DW_AT_accessibility` (public/protected/private) isn't exactly right for
Rust, but neither is `DW_AT_visibility` (local/exported/qualified), and
there's no way to set `DW_AT_visbility` in LLVM's API.
Signed-off-by: David Wood <david@davidtw.co >
2023-12-15 11:36:41 +00:00
Nilstrieb
21a870515b
Fix clippy::needless_borrow in the compiler
...
`x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`.
Then I had to remove a few unnecessary parens and muts that were exposed
now.
2023-11-21 20:13:40 +01:00
Oli Scherer
e96ce20b34
s/generator/coroutine/
2023-10-20 21:14:01 +00:00
Oli Scherer
60956837cf
s/Generator/Coroutine/
2023-10-20 21:10:38 +00:00
Michael Goulet
99969d282b
Use upvar_tys in more places, make it a list
2023-08-01 23:19:31 +00:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
Camille GILLOT
3a1edd8212
Store generator field names in GeneratorLayout.
2023-06-19 16:50:52 +00:00
Camille GILLOT
7d5b2e4926
Make closure_saved_names_of_captured_variables a query.
2023-06-19 16:50:52 +00:00
DonoughLiu
204bfb6a8c
Support 128-bit enum variant in debuginfo codegen
2023-06-10 03:39:24 +08:00
Maybe Waffle
e496fbec92
Split {Idx, IndexVec, IndexSlice} into their own modules
2023-04-24 13:53:35 +00:00
Josh Soref
e09d0d2a29
Spelling - compiler
...
* account
* achieved
* advising
* always
* ambiguous
* analysis
* annotations
* appropriate
* build
* candidates
* cascading
* category
* character
* clarification
* compound
* conceptually
* constituent
* consts
* convenience
* corresponds
* debruijn
* debug
* debugable
* debuggable
* deterministic
* discriminant
* display
* documentation
* doesn't
* ellipsis
* erroneous
* evaluability
* evaluate
* evaluation
* explicitly
* fallible
* fulfill
* getting
* has
* highlighting
* illustrative
* imported
* incompatible
* infringing
* initialized
* into
* intrinsic
* introduced
* javascript
* liveness
* metadata
* monomorphization
* nonexistent
* nontrivial
* obligation
* obligations
* offset
* opaque
* opportunities
* opt-in
* outlive
* overlapping
* paragraph
* parentheses
* poisson
* precisely
* predecessors
* predicates
* preexisting
* propagated
* really
* reentrant
* referent
* responsibility
* rustonomicon
* shortcircuit
* simplifiable
* simplifications
* specify
* stabilized
* structurally
* suggestibility
* translatable
* transmuting
* two
* unclosed
* uninhabited
* visibility
* volatile
* workaround
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2023-04-17 16:09:18 -04:00
Scott McMurray
a2ee7592d6
Use &IndexSlice instead of &IndexVec where possible
...
All the same reasons as for `[T]`: more general, less pointer chasing, and `&mut IndexSlice` emphasizes that it doesn't change *length*.
2023-04-02 17:35:37 -07:00
Scott McMurray
4abb455529
Update ty::VariantDef to use IndexVec<FieldIdx, FieldDef>
...
And while doing the updates for that, also uses `FieldIdx` in `ProjectionKind::Field` and `TypeckResults::field_indices`.
There's more places that could use it (like `rustc_const_eval` and `LayoutS`), but I tried to keep this PR from exploding to *even more* places.
Part 2/? of https://github.com/rust-lang/compiler-team/issues/606
2023-03-30 09:23:40 -07:00
Scott McMurray
5bbaeadc01
Move mir::Field → abi::FieldIdx
...
The first PR for https://github.com/rust-lang/compiler-team/issues/606
This is just the move-and-rename, because it's plenty big-and-bitrotty already. Future PRs will start using `FieldIdx` more broadly, and concomitantly removing `FieldIdx::new`s.
2023-03-28 22:22:37 -07:00
est31
7f4cc178f0
Address the new odd backticks tidy lint in compiler/
2023-03-11 20:40:18 +01:00
Erik Desjardins
009192b01b
abi: add AddressSpace field to Primitive::Pointer
...
...and remove it from `PointeeInfo`, which isn't meant for this.
There are still various places (marked with FIXMEs) that assume all pointers
have the same size and alignment. Fixing this requires parsing non-default
address spaces in the data layout string, which will be done in a followup.
2023-01-22 23:41:39 -05:00
Michael Goulet
b0dcadfc45
Move closure/generator type info methods to TyCtxt
2022-12-07 17:00:33 +00:00
Vadim Petrochenkov
7a5376d23c
Unreserve braced enum variants in value namespace
2022-11-21 22:40:06 +03:00
beetrees
25c1c635e5
Pass 128-bit C-style enum enumerator values to LLVM
2022-10-09 09:33:36 +01:00
Michael Benfield
1a08b96a0b
Change name of "dataful" variant to "untagged"
...
This is in anticipation of a new enum layout, in which the niche
optimization may be applied even when multiple variants have data.
2022-09-07 20:12:45 +00:00
Michael Woerister
b0e3ed6e8d
[debuginfo] Use IndexMap instead of FxHashMap while generating cpp-like generator debuginfo.
2022-08-12 10:53:08 +02:00
Michael Woerister
95d7591478
[debuginfo] Update cpp-like enum decoding docs to account for wrapping tag ranges.
2022-08-12 10:53:08 +02:00
Michael Woerister
171d8a3f57
[debuginfo] Don't mark fields and types as artificial in CPP-like enum debuginfo encoding.
...
LLDB historically has had problems with "artificial" entries and there
is no real benefit to emitting that flag.
2022-08-12 10:53:08 +02:00
Michael Woerister
8433e2a66f
[debuginfo] Remove the notion of a 'fallback variant' from the CPP-like enum debuginfo encoding.
2022-08-12 10:53:08 +02:00
Michael Woerister
063ebfa570
Use enum2<_> instead of enum<_> for Cpp-like debuginfo enum type names.
...
And add more comments about niche tag enum encoding.
2022-08-12 10:53:07 +02:00
Michael Woerister
622da5d834
debuginfo: Change C++-like encoding for enums.
...
The updated encoding should be able to handle niche layouts where
more than one variant has fields.
2022-08-12 10:53:07 +02:00
Ralf Jung
3dad266f40
consistently use VTable over Vtable (matching stable stdlib API RawWakerVTable)
2022-07-20 17:12:07 -04:00
Camille GILLOT
43bb31b954
Allow to create definitions inside the query system.
2022-07-06 22:50:55 +02:00
Matthias Krüger
bbd7ce6904
couple of clippy::perf fixes
2022-04-13 22:18:28 +02:00
Camille GILLOT
443333dc1f
Remove NodeIdHashingMode.
2022-04-12 19:59:32 +02:00
Oli Scherer
d32ce37a17
Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them.
2022-04-05 13:18:21 +00:00
Yuri Astrakhan
a9cc3f6564
Spellchecking compiler code
...
Address some spelling mistakes in strings, private function names, and function params.
2022-03-30 01:42:10 -04:00