about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-09-26Construct records and tuples in-placeMarijn Haverbeke-58/+53
Issue #667 Now, {a: {b: 10, c: 20}, d: @30} will simply write the values in the right places, rather than creating intermediary records and then memmoving them. Cuts about a megabyte off the unoptimized compiler size.
2011-09-26Convert more expression types to use DPSMarijn Haverbeke-203/+218
expr_rec, expr_tup, most of the exprs that don't return anything. Make trans_ret almost trivial by using destination adaptors (trans_save_in, trans_by_ref). Issue #667
2011-09-26Add a workaround hack for issue #913Marijn Haverbeke-1/+3
I can't figure out what the real cause of this bug is, but I want to be able to use blocks inside loops again.
2011-09-25Refine notes in kind.rs some more. Add a fixme to ty.rs.Graydon Hoare-16/+41
Kinds are still pretty wobbly. See thread starting at https://mail.mozilla.org/pipermail/rust-dev/2011-September/000807.html
2011-09-26Make return-by-ref function headers pretty-print safelyMarijn Haverbeke-1/+1
Closes #972
2011-09-26Don't call trans_bind_thunk in an unreachable contextMarijn Haverbeke-0/+4
Closes #973
2011-09-26Make 'fail fail;' compile.Marijn Haverbeke-0/+4
Closes #972
2011-09-26Fix bug in mutability-checking passMarijn Haverbeke-10/+13
It wasn't properly handling function arguments.
2011-09-24Handle ~fail. Closes #968Brian Anderson-0/+7
2011-09-24Support non-immediates in trans_uniq::copy_valBrian Anderson-1/+1
Issue #409
2011-09-24Small refactors.Lindsey Kuper-34/+26
Factor out some shared code from the start of process_fwding_mthd and process_bkwding_mthd; get rid of unneeded temp variable.
2011-09-24Reduce and clarify abuse of 'pure' in internerJesse Ruderman-11/+12
2011-09-24Mark some fns as pure so type_is_unique_box doesn't need to be uncheckedJesse Ruderman-12/+10
2011-09-24Tweak the type allocated for unique pointersBrian Anderson-2/+4
Seems to be more correctish... Issue #409
2011-09-24Support non-immediates in unique-box type glueBrian Anderson-2/+4
Issue #409
2011-09-24Vectors containing pinned kinds become pinnedBrian Anderson-17/+16
Otherwise they could be copied
2011-09-24Unique pointers containing pinned kinds become pinnedBrian Anderson-1/+8
Issue #409
2011-09-23Add let destructuring for unique boxesBrian Anderson-0/+5
Issue #409
2011-09-23Add missing case for pat_uniq to syntax::visitBrian Anderson-0/+1
Issue #409
2011-09-23Begin to support pattern matching on unique boxesBrian Anderson-0/+62
Issue #409
2011-09-23Properly mark unreachable alt bodies as unreachableMarijn Haverbeke-0/+2
2011-09-23Make AddIncomingToPhi take single values rather than arraysMarijn Haverbeke-9/+7
2011-09-23Start on a piecemeal conversion to DPSMarijn Haverbeke-126/+177
Issue #667 Wires in a basic framework for destination-passing style, with backwards-compatibility to the old approach, so that expression types can be moved over to it one at a time (by moving them from trans_expr to trans_expr_dps).
2011-09-23Don't return unused values from zero_alloca and trans_stmtMarijn Haverbeke-12/+12
2011-09-23Fix bug where the type of a function's top-level block wasn't fixed upMarijn Haverbeke-1/+1
2011-09-23More steps to arch-specific target libs (#474)Graydon Hoare-1/+1
2011-09-23Properly check types of do-while condition exprMarijn Haverbeke-1/+2
Closes #956
2011-09-23Make sure no dynamic allocas are used before they are allocatedMarijn Haverbeke-36/+29
Closes #965
2011-09-23Use a slightly nicer hack to get zero-length strings in trans_buildMarijn Haverbeke-176/+97
Wrapping calls in str::by_ref(, ...) heap-allocated an empty string every time (and looked really bad).
2011-09-23Better handling of unreachable code in transMarijn Haverbeke-256/+306
The builder functions in trans_build now look at an 'unreachable' flag in the block context and don't generate code (returning undefined placeholder values) when this flag is set. Threading the unreachable flag through context still requires some care, but this seems a more sane approach than re-checking for terminated blocks throughout the compiler. When creating a block, if you use its closest dominator as parent, the flag will be automatically passed through. If you can't do that, because the dominator is a scope block that you're trying to get out of, you'll have to do something like this to explicitly pass on the flag: if bcx.unreachable { Unreachable(next_cx); } Closes #949. Closes #946. Closes #942. Closes #895. Closes #894. Closes #892. Closes #957. Closes #958.
2011-09-23Remove backward-compatible support for 'mutable' before type.Marijn Haverbeke-8/+0
Closes #966
2011-09-22Remove is_stateful flag from tydesc. Closes #136Brian Anderson-2/+2
2011-09-22Fix ty_uniq case in maybe_auto_unboxBrian Anderson-0/+1
Closes #961 Issue #409
2011-09-22Add take glue for unique boxesBrian Anderson-1/+18
Closes #962 Issue #409
2011-09-22Remove nonsensical load and store from trans_uniq::copy_valBrian Anderson-2/+1
Issue #409
2011-09-22Allow vectors to contain unique boxes. Closes #952Brian Anderson-1/+1
Issue #409
2011-09-22rustc: Write raw type parameters instead of linearized type parameters in ↵Patrick Walton-36/+61
object body shapes
2011-09-22Autoderef indexes and fields of unique boxesBrian Anderson-3/+15
Issue #409
2011-09-22Calculate the correct kind for unique boxesBrian Anderson-5/+1
Issue #409
2011-09-22Drop the previous value when copying one unique box local to anotherBrian Anderson-2/+1
Issue #409
2011-09-22Add assignment to unique box localsBrian Anderson-0/+4
Issue #409
2011-09-22Initialize unique box locals from other localsBrian Anderson-6/+20
Issue #409
2011-09-22Convert trans_uniq asserts to preconditionsBrian Anderson-11/+20
Issue #409
2011-09-22Sprinkle some asserts through trans_uniqBrian Anderson-0/+14
2011-09-22Move uniq trans code to trans_uniq moduleBrian Anderson-54/+77
Issue #409
2011-09-22Factor alloc_uniq from trans_uniqBrian Anderson-6/+21
Issue #409
2011-09-22Don't unify unique boxes with different mutabilityBrian Anderson-3/+2
Issue #409
2011-09-22Add support for mutable unique boxesBrian Anderson-1/+1
Issue #409
2011-09-22Convert ty::ty_uniq to contain a mutable typeBrian Anderson-29/+45
Issue #409
2011-09-22Call drop glue on the thing in a unique boxBrian Anderson-5/+16
Issue #409