about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-10-05Add trans_temp_expr for what used to be trans_expr, rename t_e_dps to trans_exprMarijn Haverbeke-68/+65
Issue #667
2011-10-05Lose the by_ref destination styleMarijn Haverbeke-33/+25
It's not needed. Issue #667
2011-10-05Revert "Revert "Reorganize translation of expr_field""Marijn Haverbeke-56/+54
This reverts commit 11e407aaa917dbd646f80aaff2457942481877c8.
2011-10-05Revert "Revert "Get rid of 'overwrite' destination kind""Marijn Haverbeke-102/+62
This reverts commit ce9e0fc94f4a74594e7b342d128b3713b53ef0d7.
2011-10-05Revert "Revert "Move trans_call to destination_passing style""Marijn Haverbeke-56/+57
This reverts commit 276dfc6133f3c7d3b40778789f72379800f62176.
2011-10-04rustc: Allow calling native functions on the C stack that take generic ↵Patrick Walton-6/+20
arguments. They get turned into i8 pointers.
2011-10-04Revert "Move trans_call to destination_passing style"Patrick Walton-57/+56
This reverts commit 6e56ec0066b3cc8d18365370f0b856670dc748bd.
2011-10-04Revert "Get rid of 'overwrite' destination kind"Patrick Walton-62/+102
This reverts commit 6e652588bfb3edea298026f56648057677b0fa3f.
2011-10-04Revert "Reorganize translation of expr_field"Patrick Walton-54/+56
This reverts commit 007ec666ad4a529682c35936d85ac81f7979f1b6.
2011-10-04Reorganize translation of expr_fieldMarijn Haverbeke-56/+54
Issue #667
2011-10-04Get rid of 'overwrite' destination kindMarijn Haverbeke-102/+62
It wasn't safe (computing the rval might invalidate the lval addr), and needlessly complicating things (code was already building up intermediary results to work around other unsafeties). Issue #667
2011-10-04Move trans_call to destination_passing styleMarijn Haverbeke-56/+57
Issue #667 The retptr passed to a function will now often be the actual destination of the returned value (as in `{field1: func1()}`).
2011-10-03rustc: Implement C stack stdcallPatrick Walton-1/+9
2011-09-30rustc: Stub a --stack-growth option; it's behind a flag for now because it ↵Patrick Walton-3/+11
requires patches to LLVM.
2011-09-30rustc: Remove some debug codePatrick Walton-2/+0
2011-09-30trans: Use inttoptr as appropriate when casting return values of C stack ↵Patrick Walton-1/+9
functions
2011-09-29rustc: Remove some debug codePatrick Walton-2/+0
2011-09-29rustc: Make the generic C stack function signature include a usable return valuePatrick Walton-1/+1
2011-09-29rustc: Translate calls on the C stackPatrick Walton-26/+98
2011-09-29rustc: Generate types in trans for the C-stack native ABIPatrick Walton-2/+21
2011-09-29Don't build up results for ignored expressions.Marijn Haverbeke-1/+1
Issue #667
2011-09-29Fail with an informative error when trying to bind a methodMarijn Haverbeke-11/+11
Issue #435
2011-09-29Move last remaining expression types out of trans_exprMarijn Haverbeke-79/+58
Issue #667
2011-09-29Move expr_cast and expr_copy to DPS styleMarijn Haverbeke-18/+12
Issue #667
2011-09-29Move closure construction over to DPS styleMarijn Haverbeke-148/+159
Issue #667
2011-09-29Reduce move ops to a construct-in-place when possibleMarijn Haverbeke-20/+35
2011-09-28Eliminate glue.o. Closes #990Brian Anderson-34/+0
2011-09-28Don't allow vectors of pinned kindsBrian Anderson-0/+10
Vectors of pinned kinds can't be safe because most interesting uses of vector perform copies
2011-09-28rustc: Add a new "C stack cdecl" native ABIPatrick Walton-0/+3
2011-09-28Revert "Revert "Implement pattern ranges for all numeric types.""Brian Anderson-23/+155
This reverts commit a034f87146e60e1db2327c6f6807c47406a1bb0b. Conflicts: src/comp/middle/check_alt.rs src/comp/middle/trans_alt.rs src/comp/syntax/ast.rs src/comp/syntax/ast_util.rs src/comp/syntax/fold.rs src/comp/syntax/print/pprust.rs Conflicts: src/comp/middle/trans_alt.rs
2011-09-28rustc: Switch to cdecl for all calls. This is needed to make stack growth ↵Patrick Walton-35/+24
efficient, as I need to use eax and ecx in the function prologue and can't afford to stomp on incoming arguments.
2011-09-28Remove a few kludges that worked around issue #913Marijn Haverbeke-7/+2
2011-09-28Don't descend into functions from relax_precond_blockMarijn Haverbeke-11/+7
Closes #913
2011-09-28Get rid of might_not_init kludge in init_local.Marijn Haverbeke-43/+3
Initializing something is now safe wrt to cleanups (so the cleanup for the local is only registered after the initialization.)
2011-09-28Wait with registering cleanups for locals until after the init code ranMarijn Haverbeke-5/+4
Fixes a double-cleanup that was breaking unwind-tup.rs under valgrind.
2011-09-28Use DPS for assignment and local initializationMarijn Haverbeke-51/+56
Issue #667
2011-09-27Make it again possible to initialize resource locals via assignmentBrian Anderson-6/+10
Some special cases allow both 'let a <- my_resource(x)' and 'let a = my_resource(x)' to work as expected despite ostensibly being copies and moves.
2011-09-27Prevent copies of resources into various thingsBrian Anderson-0/+67
2011-09-27Add more comments about kind checking on local move initializersBrian Anderson-1/+3
2011-09-27Don't ever raise unique kinds of pinned kinds to shared (again)Brian Anderson-22/+12
So *resource, ~resource, [resource] are all pinned. This is counter to the design of the kind system, but this way is a much clearer path to type safety. Once we've established a good baseline with lots of tests, then we can try to make raising pinned kinds work.
2011-09-27Revert "Use DPS for assignment and local initialization"Brian Anderson-56/+51
This reverts commit b1b202d302d1e84886360f9c8f146b9562db5f23.
2011-09-27Fix lurking bug in matching of nilMarijn Haverbeke-6/+6
Which was somehow made visible by the DPS changes.
2011-09-27Use DPS for assignment and local initializationMarijn Haverbeke-51/+56
Issue #667
2011-09-27Safeguard against self-assignment for unique typesMarijn Haverbeke-4/+6
2011-09-27Move expr_unary to DPS styleMarijn Haverbeke-96/+90
Issue #667
2011-09-27Make trans_rec and trans_tup understand overwrite destsMarijn Haverbeke-45/+54
Issue #667
2011-09-27Move expr_binary into trans_expr_dpsMarijn Haverbeke-123/+115
Issue #667
2011-09-27Move expr_lit and expr_vec into trans_expr_dpsMarijn Haverbeke-32/+54
Issue #667
2011-09-27Move more non-value-returning things to trans_expr_dps.Marijn Haverbeke-87/+90
Issue #667
2011-09-26Enforce copy restrictions on let initializersBrian Anderson-1/+21