about summary refs log tree commit diff
path: root/src/test/mir-opt/nll
AgeCommit message (Collapse)AuthorLines
2019-04-24Rollup merge of #56278 - eddyb:mir-debuginfo-proof, r=nikomatsakisMazdak Farrokhzad-2/+2
Future-proof MIR for dedicated debuginfo. This is #56231 without the last commit (the one that actually moves to `VarDebuginfo`). Nothing should be broken, but it should no longer depend on debuginfo for anything else. r? @nikomatsakis
2019-04-23rustc_mir: create the `let` and "remainder" scopes in source order.Eduard-Mihai Burtescu-2/+2
2019-04-23Remove unnecessary ignore-tidy-linelengthvarkor-1/+0
2018-12-25Remove licensesMark Rousskov-20/+0
2018-09-18Update mir-opt test suiteRémy Rakic-3/+3
2018-09-10optimize `let x: T = ..` to avoid a temporaryNiko Matsakis-38/+0
For some weird reason this fixes `intrinsic-move-val`. It also affects various test heuristics. I removed one test (`reborrow_basic`) that didn't seem to really be testing anything in particular anymore, compared to all the other tests we've got.
2018-09-06Fix testsWesley Wiser-1/+1
2018-08-27merge `PointIndexMap` and `RegionValueElements`Niko Matsakis-9/+9
2018-07-26patch up mir-opt testsNiko Matsakis-14/+14
2018-07-21delete testsdylan_DPC-110/+0
2018-07-21remove unwanted tests and a reference to it in commentsdylan_DPC-134/+0
2018-07-01update mir-opt testsNiko Matsakis-5/+7
2018-06-27Update MIR opt testsMatthew Jasper-6/+4
2018-05-30rustc: use syntactic (instead of visibility) source info where appropriate.Eduard-Mihai Burtescu-4/+4
2018-05-10"fix" test region-liveness-two-disjoint-usesNiko Matsakis-2/+5
We no longer get two disjoint uses. =)
2018-04-15remove -Znll -- borrowck=mir implies nll nowNiko Matsakis-13/+13
2018-03-23Updated MIR with UserAssertTy in mir-opt tests.David Wood-2/+2
2018-03-08Produce instead of pointersOliver Schneider-1/+1
2018-02-07[ci skip] Generate false edges from loop_blockbobtwinkles-8/+8
As opposed to using weirdness involving pretending the body block is the loop block. This does not pass tests This commit is [ci skip] because I know it doesn't pass tests yet. Somehow this commit introduces nondeterminism into the handling of loops.
2017-12-20convert region-liveness-drop{-,-no-}may-dangle.rs into ui testsNiko Matsakis-102/+0
The "match exact bits of CFG" approach was fragile and uninformative.
2017-12-15more concise debug output when dumping the value of a regionNiko Matsakis-21/+21
2017-12-15impose inputs/ouputs on MIR after the factNiko Matsakis-1/+5
The input/output types found in `UniversalRegions` are not normalized. The old code used to assign them directly into the MIR, which would lead to errors when there was a projection in a argument or return type. This also led to some special cases in the `renumber` code. We now renumber uniformly but then pass the input/output types into the MIR type-checker, which equates them with the types found in MIR. This allows us to normalize at the same time.
2017-12-15thread through an implicit region body of the fn bodyNiko Matsakis-26/+32
2017-12-13refactor region value bitmatrixNiko Matsakis-4/+4
2017-12-07add closure requirement tests, improve debugging outputNiko Matsakis-36/+44
The overall format is now easier to read. Also, There is now graphviz output, as well as a `#[rustc_regions]` annotation that dumps internal state.
2017-12-04constraint_generation: create liveness constraints more thoroughlyNiko Matsakis-4/+4
We now visit just the stuff in the CFG, and we add liveness constraints for all the random types, regions etc that appear within rvalues and statements.
2017-12-04replace constant regions with a post-inference checkNiko Matsakis-2/+2
Rather than declaring some region variables to be constant, and reporting errors when they would have to change, we instead populate each free region X with a minimal set of points (the CFG plus end(X)), and then we let inference do its thing. This may add other `end(Y)` points into X; we can then check after the fact that indeed `X: Y` holds. This requires a bit of "blame" detection to find where the bad constraint came from: we are currently using a pretty dumb algorithm. Good place for later expansion.
2017-12-03add and unignore testsAriel Ben-Yehuda-2/+1
2017-12-03funnel all unwind paths through a single Resume blockAriel Ben-Yehuda-44/+42
This simplifies analysis and borrow-checking because liveness at the resume point can always be simply propagated. Later on, the "dead" Resumes are removed.
2017-11-28tests: update to include move annotations in MIR.Eduard-Mihai Burtescu-4/+4
2017-11-25Disable region-liveness-drop-no-may-dangle.rsKeith Yeung-0/+1
2017-11-17MIR: hide .rodata constants vs by-ref ABI clash in trans.Eduard-Mihai Burtescu-11/+5
2017-11-16fix mir-opt NLL tests -- variable `'_#0r` is now `'static`Niko Matsakis-25/+25
2017-11-09change separator from `.` to `-`Mikhail Modin-2/+2
2017-11-09change MIR dump filenames from `nodeN` to `DefPath`Mikhail Modin-30/+30
2017-11-02add `mir-opt/named-lifetimes-basic.rs`Niko Matsakis-0/+34
This lets us inspect the regions we infer around named arguments.
2017-10-31patch mir-opt reference filesNiko Matsakis-7/+13
2017-10-31change region display to `'_#Nr`, update the `newtype_index!` macroNiko Matsakis-12/+12
The macro now takes a format string. It no longer defaults to using the type name. Didn't seem worth going through contortions to maintain. I also changed most of the debug formats to be `foo[N]` instead of `fooN`.
2017-10-31add basic region subtyping inferenceSantiago Pastorino-0/+49
2017-10-31add reborrow constraintsSantiago Pastorino-0/+39
2017-10-31update the format of liveness debug dumps to be more readableNiko Matsakis-46/+23
2017-10-31add subregion between borrow region and resulting referenceNiko Matsakis-0/+50
2017-10-31preliminary support for may-dangle attribute and drop constraintsNiko Matsakis-0/+50
2017-10-31extend liveness to distinguish "drop" and "non-drop" usesNiko Matsakis-25/+94
2017-10-31introduce liveness constraints into NLL codeNiko Matsakis-0/+55
And do a bunch of gratuitious refactoring that I did not bother to separate into nice commits.
2017-10-31extend liveness to compute intrablock liveness and add unit testsNiko Matsakis-5/+18
2017-10-31factor out `pre_defs` field by going backwardsNiko Matsakis-0/+36
2017-10-31add a test for the subtle case around callsNiko Matsakis-0/+42
2017-10-31execute liveness, write a simple testNiko Matsakis-0/+47