Camille GILLOT
bcfe1a4bf2
Remove cur_span hook.
2023-09-11 16:29:42 +00:00
Camille GILLOT
24adf07e5f
Reuse throw_machine_stop_str! macro.
2023-09-11 16:29:41 +00:00
Camille GILLOT
d278ce126c
Return ImmTy in discriminant_for_variant.
2023-09-11 16:29:41 +00:00
Camille GILLOT
1d6a32c920
Interpret Immediate::Uninit as Bottom.
2023-09-11 16:29:41 +00:00
Camille GILLOT
b851e554dd
Support CopyForDeref.
2023-09-11 16:29:41 +00:00
Camille GILLOT
82f0468009
Handle reading statics.
2023-09-11 16:29:41 +00:00
Camille GILLOT
6ad6b4381c
Support non-scalar constants.
2023-09-11 16:29:41 +00:00
Camille GILLOT
f96c6e04cb
Propagate PlaceElem::Index.
2023-09-06 16:09:31 +00:00
Camille GILLOT
fc63543792
Support array length.
2023-09-06 16:05:04 +00:00
Camille GILLOT
22986b72e5
Implement algebraic simplifications.
2023-09-06 15:57:50 +00:00
Camille GILLOT
74a967bcec
Support a few more rvalues.
2023-09-06 15:52:06 +00:00
Camille GILLOT
7ef555d84a
Support non-trivial scalars in ConstProp.
2023-09-05 21:25:41 +00:00
Camille GILLOT
09ce0f6ebc
Remove type from ScalarTy.
2023-09-05 21:25:41 +00:00
Jason Newcomb
f686bd8949
Take &mut Results
in ResultsVisitor
2023-09-02 19:35:51 -04:00
Ralf Jung
ac3bca24b7
interpret: have assert_* intrinsics call the panic machinery instead of a direct abort
2023-08-20 15:52:40 +02:00
Camille GILLOT
b8fed2f21c
Make dataflow const-prop handle_switch_int monotonic.
2023-08-16 18:12:18 +00:00
Camille GILLOT
388f6a6413
Make TerminatorEdge plural.
2023-08-16 18:12:18 +00:00
Camille GILLOT
f19cd3f2e1
Use TerminatorEdge for dataflow-const-prop.
2023-08-16 18:12:18 +00:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
Ralf Jung
dd453a6a99
miri: protect Move() function arguments during the call
2023-07-11 21:59:01 +02:00
Jason Newcomb
eaddc37075
Take MIR dataflow analyses by mutable reference.
2023-05-18 17:46:39 -04:00
Camille GILLOT
add5124dce
Extract handle_set_discriminant.
2023-05-09 17:27:58 +00:00
Camille GILLOT
71138e9933
Make HasTop and HasBottom consts.
2023-05-09 17:27:58 +00:00
Yuki Okushi
4d3ab3da4e
Rollup merge of #110685 - cjgillot:clean-dcp, r=oli-obk
...
Some cleanups to DataflowConstProp
Mostly moving code around and short-circuiting useless cases.
2023-04-25 02:33:30 +09:00
Camille GILLOT
4fe51365d7
Use param_env_reveal_all_normalized in MIR opts.
2023-04-23 10:04:41 +00:00
Camille GILLOT
dd78b997b5
Reduce rightward drift.
2023-04-22 12:30:37 +00:00
Camille GILLOT
dd452ae70e
Simplify logic.
2023-04-22 12:30:36 +00:00
Camille GILLOT
629cdb42d3
Move eval_discriminant.
2023-04-22 12:30:36 +00:00
Camille GILLOT
0e68cbd45d
Remove useless special case.
2023-04-22 12:30:36 +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
Gary Guo
bf6b84b10a
Fix new usage of old api
2023-04-06 09:34:16 +01: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
Oli Scherer
83dec62b26
Add a layout argument to enforce_validity
.
...
This is in preparation of checking the validity only of certain types.
2023-03-21 08:52:31 +00:00
Matthias Krüger
a423fa7b46
Rollup merge of #108208 - cjgillot:flood-enum, r=oli-obk
...
Correctly handle aggregates in DataflowConstProp
The previous implementation from https://github.com/rust-lang/rust/pull/107411 flooded target of an aggregate assignment with `Bottom`, corresponding to the `deinit` that the interpreter does.
As a consequence, when assigning `target = Enum::Variant#i(...)` all the `(target as Variant#j)` were at `Bottom` while they should have been `Top`.
This PR replaces that flooding with `Top`.
Aside, it corrects a second bug where the wrong place would be used to assign to enum variant fields, resulting to nothing happening.
Fixes https://github.com/rust-lang/rust/issues/108166
2023-02-23 06:18:06 +01:00
Camille GILLOT
e34caaf42d
Remove overflow checks from ConstProp.
2023-02-18 21:35:02 +00:00
Camille GILLOT
efb468866e
Use the correct place for enum variants.
2023-02-18 10:11:53 +00:00
Camille GILLOT
7213eaa1c0
Flood aggregate assignments with Top
.
2023-02-18 09:57:13 +00:00
Camille GILLOT
09797a463c
Typo.
2023-02-13 17:01:03 +00:00
Camille GILLOT
df889c9821
Rename assign_idx methods.
2023-02-06 22:05:05 +00:00
Camille GILLOT
c48756cdbf
Limit creation of tracked place directly.
2023-02-06 21:55:05 +00:00
Camille GILLOT
9a6c04f5d0
Handle discriminants in dataflow-const-prop.
2023-02-06 21:51:47 +00:00
Camille GILLOT
b62a9da0c8
Handle aggregates in DataflowConstProp.
2023-02-02 23:09:51 +00:00
Oli Scherer
d9d92ed7da
Move alignment failure error reporting to machine
2022-12-15 16:07:35 +00:00
Oli Scherer
d66824dbc4
Make alignment checks a future incompat lint
2022-12-15 16:07:28 +00:00
Jannis Christopher Köhl
ea23585c91
Disable limits if mir-opt-level >= 4
2022-11-12 20:14:34 +01:00
Jannis Christopher Köhl
d66a00a7b1
Expand upon comment regarding self-assignment
2022-11-12 20:05:52 +01:00
Jannis Christopher Köhl
74d53ab912
Require -Zmir-opt-level >= 3 for now
2022-11-12 15:24:23 +01:00
Jannis Christopher Köhl
b3f648958d
Add comment for guessed constants
2022-11-12 14:07:54 +01:00
Jannis Christopher Köhl
8ecb276735
Simplify creation of map
2022-11-10 19:12:10 +01:00
Jannis Christopher Köhl
9766ee0b20
Fix struct field tracking and add tests for it
2022-11-09 18:21:42 +01:00