about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
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
2011-09-21Remove unused arg from revoke_cleanBrian Anderson-5/+5
2011-09-21Add ability to deref unique boxes. Make unique boxes immediates.Brian Anderson-20/+27
Issue #409
2011-09-21Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. ↵Marijn Haverbeke-1/+1
Closes #935." This reverts commit f19ab1ff3c85973a54cc98e3f98ae240e2d0d816.
2011-09-21rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935.Patrick Walton-1/+1
2011-09-21rustc: Don't try to spill bottom types, since we can't make any assumptions ↵Patrick Walton-0/+5
about the type of the ValueRef
2011-09-21Revert "Implement pattern ranges for all numeric types."Marijn Haverbeke-341/+25
This reverts commit ce0f054f9d56df4e60291fc2e1b89ce979cf374f.
2011-09-21Don't write to retptr when returning nil, pass undef for unused paramsMarijn Haverbeke-15/+18
2011-09-21Add target_triple to session::options. Use host triple by default, accept ↵Graydon Hoare-14/+32
--target on command line.
2011-09-21Revert "rustc: Make bottom types immediates. Add a |log ret| testcase. ↵Marijn Haverbeke-1/+1
Closes #935." This reverts commit e6a84f252ab7a016dd923adbf31e8c86deab1d72.
2011-09-21Implement pattern ranges for all numeric types.Josh Matthews-25/+341
2011-09-20rustc: Make bottom types immediates. Add a |log ret| testcase. Closes #935.Patrick Walton-1/+1
2011-09-20Represent unique creation as a unop in the AST instead of its own exprBrian Anderson-20/+21
Like the box unop. Issue #409
2011-09-20Make creation of unique boxes work againBrian Anderson-3/+12
Issue #409
2011-09-20Parse unique box typesBrian Anderson-0/+11
Issue #409
2011-09-20rustc: Pass actual tydescs to upcall_mallocPatrick Walton-4/+8
2011-09-20rustc: Remove trans_raw_malloc, as it's only called from one placePatrick Walton-17/+10
2011-09-20Move linker invocation from driver::rustc to back::linkBrian Anderson-88/+94
2011-09-20Zero locals that are inited via alt expressions. Closes #945Brian Anderson-0/+1
2011-09-20Remove some obsolete 'copy' operators from transMarijn Haverbeke-12/+12
2011-09-20Properly handle 'put;' in transMarijn Haverbeke-1/+3
Closes #947
2011-09-20Remove some bogus white-space from llvm.rsMarijn Haverbeke-50/+2
2011-09-19Build tuples in two phases to avoid cleaning up partial tuplesBrian Anderson-1/+12