Nilstrieb
f305e18804
Disable jump threading of float equality
...
Jump threading stores values as `u128` (`ScalarInt`) and does its
comparisons for equality as integer comparisons.
This works great for integers. Sadly, not everything is an integer.
Floats famously have wonky equality semantcs, with `NaN!=NaN` and
`0.0 == -0.0`. This does not match our beautiful integer bitpattern
equality and therefore causes things to go horribly wrong.
While jump threading could be extended to support floats by remembering
that they're floats in the value state and handling them properly,
it's signficantly easier to just disable it for now.
2024-07-27 15:11:59 +02:00
Camille GILLOT
76f5bc6a9f
Create mapped places upon seeing them in the body.
2024-07-13 11:54:25 +00:00
Maybe Waffle
484152d562
Support tail calls in mir via TerminatorKind::TailCall
2024-07-07 17:11:04 +02:00
Camille GILLOT
76244d4dbc
Make jump threading state sparse.
2024-07-01 15:41:21 +00:00
Camille GILLOT
dec4e98522
Move entry point to a method.
2024-06-29 10:42:31 +00:00
Camille GILLOT
a175817ea6
Avoid cloning state when possible.
2024-06-29 10:42:31 +00:00
Ralf Jung
e8379c9598
interpret: get rid of 'mir lifetime everywhere
2024-05-27 08:25:57 +02:00
Nicholas Nethercote
d49d4ae192
Remove extern crate rustc_middle
from rustc_mir_transform
.
2024-05-13 08:20:18 +10:00
Matthias Krüger
96be3e7cc8
Rollup merge of #122784 - jswrenn:tag_for_variant, r=compiler-errors
...
Add `tag_for_variant` query
This query allows for sharing code between `rustc_const_eval` and `rustc_transmutability`. It's a precursor to a PR I'm working on to entirely replace the bespoke layout computations in `rustc_transmutability`.
r? `@compiler-errors`
2024-03-22 20:31:29 +01:00
Jack Wrenn
2de9010f66
Add tag_for_variant
query
...
This query allows for sharing code between `rustc_const_eval` and
`rustc_transmutability`.
Also moves `DummyMachine` to `rustc_const_eval`.
2024-03-22 17:01:49 +00:00
Oli Scherer
adda9da604
Avoid various uses of Option<Span>
in favor of using DUMMY_SP
in the few cases that used None
2024-03-18 09:34:08 +00:00
Ralf Jung
48f2f0d725
preserve span when evaluating mir::ConstOperand
2024-03-14 21:55:07 +01:00
Tomasz Miąsko
5f4e4baddb
Skip coroutines in jump threading to avoid query cycles
2024-02-15 00:00:00 +00:00
Camille GILLOT
e132cac3c4
Enable by default.
2024-02-09 21:13:51 +00:00
Camille GILLOT
afaac75ac7
Do not thread through Assert terminator.
2024-01-23 00:00:24 +00:00
Camille GILLOT
e72b2b18c0
Extract process_assign.
2024-01-18 22:53:07 +00:00
Camille GILLOT
b22742e8f3
Extract process_constant.
2024-01-18 22:53:07 +00:00
Camille GILLOT
be9668d398
Use an interpreter in jump threading.
2024-01-18 22:53:07 +00:00
Camille GILLOT
41eb9a49af
Skip threading over no-op SetDiscriminant.
2024-01-07 00:28:20 +00:00
Matthias Krüger
d707461a1a
clippy::complexity fixes
...
filter_map_identity
needless_bool
search_is_some
unit_arg
map_identity
needless_question_mark
derivable_impls
2023-12-12 19:28:13 +01:00
surechen
40ae34194c
remove redundant imports
...
detects redundant imports that can be eliminated.
for #117772 :
In order to facilitate review and modification, split the checking code and
removing redundant imports code into two PR.
2023-12-10 10:56:22 +08: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
Mark Rousskov
917f6540ed
Re-format code with new rustfmt
2023-11-15 21:45:48 -05:00
Camille GILLOT
dd08dd42e5
Expand comment on disappearing edge.
2023-10-21 07:08:53 +00:00
Camille GILLOT
8fb99afb02
Correct loop_headers logic.
2023-10-21 07:08:53 +00:00
Camille GILLOT
54b61d6e1a
Reword TO application comments.
2023-10-21 07:08:53 +00:00
Camille GILLOT
66ec098ea7
Simplify static if handling.
2023-10-21 07:08:53 +00:00
Camille GILLOT
d5b21ef96b
Explicit notation.
2023-10-21 07:08:53 +00:00
Camille GILLOT
98b86fa9e5
Document Condition.
2023-10-21 07:03:23 +00:00
Camille GILLOT
47056248e5
Make polarity an enum.
2023-10-21 07:02:45 +00:00
Camille GILLOT
b5aa1ef9b4
Document mutated_statement.
2023-10-21 07:02:06 +00:00
Camille GILLOT
4abea83663
Improve naming and comments.
2023-10-21 07:01:25 +00:00
Camille GILLOT
df9e5ee038
Handle more terminators.
2023-10-21 07:01:24 +00:00
Camille GILLOT
0d0a536777
Do not thread through loop headers.
2023-10-21 06:59:37 +00:00
Camille GILLOT
751a079413
Implement JumpThreading pass.
2023-10-21 06:58:38 +00:00