summary refs log tree commit diff
path: root/src/librustc_mir/build/expr
AgeCommit message (Collapse)AuthorLines
2016-01-07[MIR] Set dest ∀ expr with optional valueSimonas Kazlauskas-6/+25
Assign a default unit value to the destinations of block expressions without trailing expression, return expressions without return value (i.e. `return;`) and conditionals without else clause.
2016-01-06[MIR] Get rid of that nasty unit_ty temporary lvalSimonas Kazlauskas-2/+3
2016-01-06panic/panic_bounds_check to destructure tysSimonas Kazlauskas-1/+1
Not any more beautiful.
2016-01-06Merge Call and DivergingCall diffs into CallKindSimonas Kazlauskas-10/+15
This merges two separate Call terminators and uses a separate CallKind sub-enum instead. A little bit unrelatedly, copying into destination value for a certain kind of invoke, is also implemented here. See the associated comment in code for various details that arise with this implementation.
2016-01-06Remove the Panic block terminatorSimonas Kazlauskas-2/+2
2016-01-06Add Resume Terminator which corresponds to resumeSimonas Kazlauskas-2/+2
Diverge should eventually go away
2016-01-06Generate DivergingCall terminatorSimonas Kazlauskas-10/+19
This simplifies CFG greatly for some cases :)
2016-01-06Split Call into Call and DivergingCallSimonas Kazlauskas-6/+5
DivergingCall is different enough from the regular converging Call to warrant the split. This also inlines CallData struct and creates a new CallTargets enum in order to have a way to differentiate between calls that do not have an associated cleanup block. Note, that this patch still does not produce DivergingCall terminator anywhere. Look for that in the next patches.
2015-12-10MIR: Make Mir take ownership of InlineAsm values.Michael Woerister-1/+1
2015-12-10MIR: Refactor mir::Terminator to use tuples instead of a fixed-size arrays.Michael Woerister-7/+7
2015-11-30Move the core MIR datastructures to librustc.Michael Woerister-11/+11
This is done mostly so that we can refer to MIR types in csearch and other metadata related area.
2015-11-24Remove the GraphExtents, the design of which seems bogus. They carriedNiko Matsakis-2/+2
the right information, but it's hard to maintain in the face of optimizations, and in the form that the analyses probably actually want.
2015-11-12Auto merge of #29616 - nagisa:mir-repeat, r=nikomatsakisbors-2/+2
r? @nikomatsakis I went ahead and replaced repeat count with a `Constant`, because it cannot be non-constant to the best of my knowledge.
2015-11-10use Constant for repetition count in mir::RepeatSimonas Kazlauskas-2/+2
2015-11-05remove excess string allocationSteve Klabnik-1/+1
&format!("...") is the same as "" if we're not doing any interpolation, and doesn't allocate an intermediate String.
2015-11-03Change Call operands to be, well, OperandsNiko Matsakis-2/+2
2015-11-03Convert from using named fields to always using indicesNiko Matsakis-3/+6
2015-11-03Change ShallowDrop to Free, so that it matches what trans will doNiko Matsakis-1/+1
2015-10-07Partially format librustc_mir with rustfmt.Ms2ger-64/+28
This commit contains some of the changes proposed by a rustfmt invocation, chosen based on the fairly non-deterministic metric of how much I liked the change. I expect we will run rustfmt on this crate again later, probably accepting more of its changes. For now, this is already an improvement over the status-quo.
2015-10-06strip out the hair trait and use concrete types insteadNiko Matsakis-31/+33
2015-10-04switch to using constvals for constants, instead of having constantNiko Matsakis-90/+13
trees in MIR
2015-09-24Remove the deprecated box(PLACE) syntax.Eduard Burtescu-1/+1
2015-09-17Remove hir::ExprParenNick Cameron-35/+9
2015-09-06convert TODOs to FIXMEsNiko Matsakis-1/+3
2015-09-06add MIR code (unused thus far)Niko Matsakis-0/+1081