about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-07-07Make moving of temporaries do the right thing, use it to optimizeMarijn Haverbeke-135/+174
This adds support for dropping cleanups for temporary values when they are moved somewhere else. It then adds wraps most copy operations (return, put in data structure, box, etc) in a way that will fall back to a move when it is safe. This saves a lot of taking/dropping, shaving over a megabyte off the stage2/rustc binary size. In some cases, most notably function returns, we could detect that the returned value is a local variable, and can thus be safely moved even though it is not a temporary. This will require putting some more information in lvals. I did not yet handle function arguments, since the logic for passing them looked too convoluted to touch. I'll probably try that in the near future, since it's bound to be a big win.
2011-07-07Improve handling of move and swap by alias checkerMarijn Haverbeke-10/+24
Closes issue #541. Closes issue #591
2011-07-06Allocate rust_ivec buffers out of the kernel poolRob Arnold-6/+26
The duplication of upcalls is due to the fact that the runtime is shared between stage0/rustc and stage1/rustc. Once snapshots are updated, they should be de-duplicated.
2011-07-06Tie the knot for self-calls inside extended objects. Closes #539.Lindsey Kuper-4/+8
2011-07-06Fix a pointer bug.Lindsey Kuper-3/+2
2011-07-06Add span information to create_vtbl and friends.Lindsey Kuper-18/+14
2011-07-06Comments and cleanup.Lindsey Kuper-2/+4
2011-07-06rustc: Make AST tuple types use interior vectorsPatrick Walton-5/+1
2011-07-06rustc: Make AST paths use interior vectorsPatrick Walton-10/+10
2011-07-06rustc: Move middle::tstate::collect_locals over to interior vectorsPatrick Walton-9/+9
2011-07-06rustc: Remove unused or seldom-used imports from ↵Patrick Walton-8/+1
middle::tstate::{bitvectors, ck}
2011-07-06rustc: Remove some unused references to std::vec from tstate::ann and ↵Patrick Walton-6/+1
tstate::auxiliary
2011-07-06rustc: Move middle::tstate::auxiliary and middle::tstate::bitvectors over to ↵Patrick Walton-123/+131
interior vectors
2011-07-06rustc: Move tstate::annotate over to interior vectorsPatrick Walton-12/+12
2011-07-06rustc: Convert bind_params_in_type() to use interior vectorsPatrick Walton-6/+9
2011-07-06rustc: Migrate tag variants to interior vectorsPatrick Walton-32/+30
2011-07-06rustc: Make object methods into interior vectorsPatrick Walton-35/+38
2011-07-06Swap the expected/actual for typechecking fields of updated recordsBrian Anderson-2/+2
In 'rec(a = b with c)', if a exists in c then the expected type for b is the type of c.
2011-07-06rustc: Use an interior vector for ty::count_ty_paramsPatrick Walton-6/+4
2011-07-06rustc: Move the interner over to interior vectorsPatrick Walton-1/+1
2011-07-06rustc: Make the various constraint-related types in middle::ty use interior ↵Patrick Walton-13/+45
vectors
2011-07-06rustc: Make type parameter substitutions interior vectorsPatrick Walton-35/+33
2011-07-06rustc: Change constraints in types to use interior vectorsPatrick Walton-33/+38
2011-07-06rustc: Switch tag type parameters to interior vectorsPatrick Walton-29/+17
2011-07-06rustc: Use interior vectors for tag type parametersPatrick Walton-118/+182
2011-07-06Make "cannot determine a type for this local variable" non-fatalBrian Anderson-3/+6
2011-07-06Make "cannot determine a type for this expression" non-fatal. Closes #621Brian Anderson-17/+37
2011-07-06Refactor the typeck::writeback AST walkBrian Anderson-44/+51
All visitors take a wb_ctxt now instead of some taking a fn_ctxt and some taking an ignore flag.
2011-07-06Remove unused method from typeck::writebackBrian Anderson-3/+0
2011-07-06Limit exports from typeckBrian Anderson-0/+2
2011-07-06Limit exports from typeck::writebackBrian Anderson-0/+3
2011-07-06Simplify AST for expr_anon_obj.Lindsey Kuper-6/+5
2011-07-06Simplify arguments to trans_anon_obj and friends.Lindsey Kuper-21/+13
2011-07-06rustc: Revert the conversion to interior vectors due to heap corruptionPatrick Walton-533/+447
2011-07-06rustc: Make AST paths use interior vectorsPatrick Walton-10/+10
2011-07-06rustc: Move middle::tstate::collect_locals over to interior vectorsPatrick Walton-9/+9
2011-07-06rustc: Remove unused or seldom-used imports from ↵Patrick Walton-8/+1
middle::tstate::{bitvectors, ck}
2011-07-06rustc: Remove some unused references to std::vec from tstate::ann and ↵Patrick Walton-6/+1
tstate::auxiliary
2011-07-06rustc: Move middle::tstate::auxiliary and middle::tstate::bitvectors over to ↵Patrick Walton-123/+131
interior vectors
2011-07-06rustc: Move tstate::annotate over to interior vectorsPatrick Walton-12/+12
2011-07-06rustc: Convert bind_params_in_type() to use interior vectorsPatrick Walton-6/+9
2011-07-06rustc: Migrate tag variants to interior vectorsPatrick Walton-32/+30
2011-07-06rustc: Make object methods into interior vectorsPatrick Walton-35/+38
2011-07-06rustc: Use an interior vector for ty::count_ty_paramsPatrick Walton-6/+4
2011-07-06rustc: Move the interner over to interior vectorsPatrick Walton-1/+1
2011-07-06rustc: Make the various constraint-related types in middle::ty use interior ↵Patrick Walton-13/+45
vectors
2011-07-06rustc: Make type parameter substitutions interior vectorsPatrick Walton-35/+34
2011-07-06rustc: Change constraints in types to use interior vectorsPatrick Walton-33/+38
2011-07-06rustc: Switch tag type parameters to interior vectorsPatrick Walton-29/+17
2011-07-06rustc: Use interior vectors for tag type parametersPatrick Walton-118/+182