Wesley Wiser
ec853ba026
[const-prop] Don't const-prop into terminators unless mir-opt-level >= 2
2019-05-19 16:47:03 -04:00
Wesley Wiser
2baab0eaaa
[const-prop] Remove catch all match and add FIXME
2019-05-19 16:47:03 -04:00
Wesley Wiser
3f5c743b53
[const-prop] Support propagating into SwitchInt's discr
Operand
2019-05-19 16:46:51 -04:00
Wesley Wiser
8e99c76089
[const-prop] Support propagating into Assert's cond
Operand
2019-05-19 16:13:08 -04:00
Wesley Wiser
45214edf9e
Run const propagation at O2
2019-05-15 06:07:06 -04:00
Wesley Wiser
317daf77de
Do some simple constant propagation in the ConstProp pass
2019-05-15 06:07:06 -04:00
Eduard-Mihai Burtescu
b92b1a76e1
rustc: use DefKind instead of Def, where possible.
2019-05-03 22:50:09 +03:00
Eduard-Mihai Burtescu
a3fcab36d2
rustc: factor most DefId-containing variants out of Def and into DefKind.
2019-05-03 22:48:27 +03:00
Wesley Wiser
16fe8ccce9
Remove the self.mir
field from ConstPropagator
2019-05-02 07:02:34 -04:00
Mazdak Farrokhzad
12bf981552
Rollup merge of #60428 - wesleywiser:refactor_const_eval, r=oli-obk
...
Refactor `eval_body_using_ecx` so that it doesn't need to query for MIR
This is the first step toward removing the `mir` field of `ConstPropagator` which will eventually allow us to actually const propagate in MIR.
r? @oli-obk
2019-05-02 01:09:28 +02:00
Wesley Wiser
eadf48e796
Refactor eval_body_using_ecx
so that it doesn't need to query for MIR
2019-05-01 08:27:06 -04:00
Mazdak Farrokhzad
ada68c9d19
Rollup merge of #60276 - matthewjasper:cleanup-mir-visitor, r=estebank
...
Cleanup the MIR visitor
* Remove useless `BasicBlock` parameters on methods with `Location`s.
* Prefer `visit_terminator_kind` to `visit_terminator`.
* Remove `Region` from PlaceContexts. `visit_rvalue` should be used when the region is important.
* Remove unused visitor methods.
2019-04-30 03:28:38 +02:00
flip1995
e1da67e69c
Fix lint findings in librustc_mir
2019-04-28 21:19:27 +02:00
Matthew Jasper
22226fa7fb
Remove region from borrow place contexts
2019-04-26 21:35:10 +01:00
Matthew Jasper
0eeab6b9a6
Remove BasicBlock parameter from mir visitor methods
2019-04-26 21:35:10 +01:00
Ralf Jung
dec24471be
add Miri error variant for process exit
2019-04-19 18:48:02 +02:00
Mazdak Farrokhzad
a96e3883c1
Rollup merge of #59514 - tmandry:remove-adt-def-from-projection-elem, r=eddyb
...
Remove adt_def from projections and downcasts in MIR
As part of optimizing generator layouts in MIR, we'd like to allow downcasting generators to variants which do not have a corresponding `def_id`, since they are created by the compiler.
This refactor hopes to allow that, without regressing perf.
r? @eddyb
2019-04-03 04:36:12 +02:00
Tyler Mandry
4122d2221e
Remove adt_def from PlaceTy and make it a struct
2019-04-02 12:02:17 -07:00
kenta7777
3c8caaca7d
renames EvalErrorKind to InterpError
2019-04-02 01:02:18 +09:00
Josh Stone
99f6de759e
Rollup merge of #59430 - kenta7777:rename-evalcontext-to-interpretcx, r=oli-obk
...
Renames `EvalContext` to `InterpretCx`
This PR renames `EvalContext` to `InterpretCx` in `src/librustc_mir`.
This PR is related to #54395 .
2019-03-27 18:15:36 -07:00
Mazdak Farrokhzad
90c2d641eb
Rollup merge of #59232 - saleemjaffer:mir_place_refactor, r=oli-obk
...
Merge `Promoted` and `Static` in `mir::Place`
fixes #53848
2019-03-26 09:05:40 +01:00
kenta7777
630d5a4895
renames EvalContext to InterpretCx.
2019-03-26 13:06:15 +09:00
Esteban Küber
8e043950c8
Swap const evaluation lint spans to point at problem in primary span
2019-03-23 13:05:30 -07:00
Saleem Jaffer
752544b284
adding mir::StaticKind enum for static and promoted
2019-03-23 20:18:52 +05:30
Saleem Jaffer
cf2f1bb072
review fixes
2019-03-21 22:13:09 +05:30
Saleem Jaffer
23c87a1f53
fixed all compilation errors
2019-03-18 15:03:30 +05:30
Saleem Jaffer
a837b8a368
cleaner code as per review
2019-03-18 15:03:30 +05:30
Saleem Jaffer
7fb1c22da1
promoted is still left in 2 places
2019-03-18 15:03:29 +05:30
Oliver Scherer
5cd2806621
Revert the LazyConst
PR
2019-03-16 21:04:10 +01:00
ljedrz
cd06038b54
HirIdification: replace NodeId method calls
2019-03-07 09:22:43 +01:00
bors
c1d2d83ca3
Auto merge of #58754 - ljedrz:I_hate_NodeIds, r=Zoxc
...
Remove NodeId from more HIR nodes
The next iteration of HirIdification (#57578 ).
Removes `NodeId` from:
- [x] `Stmt`
- [x] `Local`
- [x] `Field`
- [x] `AnonConst`
- [x] `TraitItem`
- [x] `ImplItem`
- [x] `TypeBinding`
- [x] `Arg`
- [x] `TraitRef`
- [x] `VisibilityKind`
It will most probably break clippy again; I'd appreciate a **delegate** again if/when it is good to go so I can attach a clippy fix later.
r? @Zoxc
2019-03-01 15:36:13 +00:00
ljedrz
c2e517e0c4
ty: HirIdify some lints
2019-03-01 11:18:49 +01:00
Santiago Pastorino
0f993d5a7a
Put Local, Static and Promoted as one Base variant of Place
2019-03-01 05:02:00 +01:00
csmoe
cf11729787
rename Substs to InternalSubsts
...
Change-Id: I3fa00e999a2ee4eb72db1fdf53a8633b49176a18
2019-02-27 00:39:13 +08:00
bors
ea43c3c688
Auto merge of #58561 - ljedrz:HirIdify_some_nodes, r=Zoxc
...
Remove NodeId from some HIR nodes
The next iteration of https://github.com/rust-lang/rust/pull/57578 .
Removes `NodeId` from:
- [x] `Lifetime`
- [x] `Ty`
- [x] `GenericParam`
- [x] `WhereClause`
- [x] `WhereEqPredicate`
- [x] `MacroDef`
- [x] `Block`
- [x] `Expr`
r? @Zoxc
2019-02-26 06:13:27 +00:00
ljedrz
021a140dcd
hir: remove NodeId from Block
2019-02-24 17:09:26 +01:00
Oliver Scherer
4fdeb2da74
Add eval
prefix to clarify what the function does
2019-02-16 14:56:07 +01:00
Oliver Scherer
235a6b7d06
Expose const -> op functions that don't allow violiting const eval invariants
2019-02-16 12:32:22 +01:00
Ralf Jung
b376ae6671
make bin_op and unary_op APIs consistently work on ImmTy
2019-02-13 10:14:56 +01:00
Ralf Jung
e73f96abe7
make OpTy.op private, and ImmTy.imm public instead
2019-02-13 10:14:56 +01:00
Ralf Jung
2708946787
pass full InstanceDef to run_passes
2019-02-09 12:11:12 +01:00
Taiki Endo
725af30809
librustc_mir => 2018
2019-02-08 06:28:15 +09:00
Oliver Scherer
f6da141b5f
Span fixup
2019-01-22 17:22:30 +01:00
Oliver Scherer
a59eabbc36
Get rid of the fake stack frame
2019-01-22 17:22:29 +01:00
Oliver Scherer
089c4039c6
Pacify tidy
2019-01-01 20:05:02 +01:00
Oliver Scherer
bb9f717a80
const_to_op
is now lazy_const_to_op
2019-01-01 20:05:02 +01:00
Oliver Scherer
b903cb9d60
Move the Unevaluated
constant arm upwards in the type structure
2019-01-01 20:05:02 +01:00
Mark Rousskov
2a663555dd
Remove licenses
2018-12-25 21:08:33 -07:00
Ralf Jung
81a45e2038
miri: allocation is infallible
2018-12-19 14:11:01 +01:00
Alexander Regueiro
ee89c088b0
Various minor/cosmetic improvements to code
2018-12-07 23:53:34 +00:00