about summary refs log tree commit diff
path: root/src/comp/middle/trans_vec.rs
AgeCommit message (Collapse)AuthorLines
2012-01-27Move various trans_ modules under a trans:: umbrella moduleMarijn Haverbeke-312/+0
Closes #1304
2012-01-23s/block()/fn()/gNiko Matsakis-1/+1
2012-01-21migrate size_of() and related funcs from trans into shapeNiko Matsakis-3/+3
2012-01-18Remove '.' after nullary tags in patternsTim Chevalier-2/+2
Does what it says on the tin. The next commit will remove support for this syntax.
2012-01-13deprecate fn exprs and the fn() type, preferring fn@ and native fnNiko Matsakis-17/+14
2012-01-13Obj system? What obj system?Marijn Haverbeke-2/+2
Removes the obj system from the compiler. Closes #1484
2012-01-06Disallow variable names that shadow tags in scopeTim Chevalier-1/+1
Now, if you have a tag named "foo", a variable declaration like "let foo..." is illegal. This change makes it possible to eliminate the '.' after a nullary tag pattern in an alt (but I'll be doing that in a future commit) -- as now it's always obvious whether a name refers to a tag or a new declared variable. resolve implements this change -- all the other changes are just to get rid of existing code that declares variables that shadow tag names.
2011-12-18Remove source line generation craziness. Ensure incorrect subprogram caches ↵Josh Matthews-2/+0
are not conflated. Generate ast_map entries for object members and resource constructors and destructors.
2011-12-18Fix LLVM assertions when lowering log statements.Josh Matthews-0/+2
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-3/+3
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-10Cleanup unused importsHaitao Li-4/+3
2011-11-03Disallow writing to function arguments againMarijn Haverbeke-7/+6
Remove implicit copying hack. Closes #1118
2011-11-02convert GEP to i32Niko Matsakis-12/+6
2011-11-02thread the context through so that int can be 64 bits on x86_64Niko Matsakis-26/+46
2011-10-20Remove taskptr argument from upcallsMarijn Haverbeke-3/+2
Issue #466
2011-10-10Make vectors and strings immediates againMarijn Haverbeke-54/+42
There's no good reason to force them to be spilled anymore. Some pieces of trans become more elegant this way, and less stack allocs and load/stores are needed. Issue #1021
2011-10-05Make trans_lval lval-onlyMarijn Haverbeke-1/+1
Call trans_temp_lval if you want the old fallback-to-temporary behaviour. Issue #667
2011-10-05Add trans_temp_expr for what used to be trans_expr, rename t_e_dps to trans_exprMarijn Haverbeke-2/+2
Issue #667
2011-10-05Revert "Revert "Get rid of 'overwrite' destination kind""Marijn Haverbeke-18/+4
This reverts commit ce9e0fc94f4a74594e7b342d128b3713b53ef0d7.
2011-10-04Revert "Get rid of 'overwrite' destination kind"Patrick Walton-4/+18
This reverts commit 6e652588bfb3edea298026f56648057677b0fa3f.
2011-10-04Get rid of 'overwrite' destination kindMarijn Haverbeke-18/+4
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-09-29Move closure construction over to DPS styleMarijn Haverbeke-4/+2
Issue #667
2011-09-28Use DPS for assignment and local initializationMarijn Haverbeke-19/+35
Issue #667
2011-09-27Revert "Use DPS for assignment and local initialization"Brian Anderson-35/+19
This reverts commit b1b202d302d1e84886360f9c8f146b9562db5f23.
2011-09-27Use DPS for assignment and local initializationMarijn Haverbeke-19/+35
Issue #667
2011-09-27Move expr_unary to DPS styleMarijn Haverbeke-2/+3
Issue #667
2011-09-27Move expr_binary into trans_expr_dpsMarijn Haverbeke-16/+21
Issue #667
2011-09-27Move expr_lit and expr_vec into trans_expr_dpsMarijn Haverbeke-19/+17
Issue #667
2011-09-27Move more non-value-returning things to trans_expr_dps.Marijn Haverbeke-2/+2
Issue #667
2011-09-23Make AddIncomingToPhi take single values rather than arraysMarijn Haverbeke-2/+2
2011-09-23Better handling of unreachable code in transMarijn Haverbeke-2/+2
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-16Saner approach to lvalues and callable values in transMarijn Haverbeke-1/+1
LValues no longer carry information about generics and objs, instead there's an extended form of lvalue, lval_maybe_callee, only used by call and bind, which holds this info. This makes it possible to take the value of a method and get a working closure, and will (with some more work) allow us to call statically known functions without loading from their pair. Closes #435 Closes #758
2011-09-16Revert "Saner approach to lvalues and callable values in trans"Marijn Haverbeke-1/+1
This reverts commit 66153436c9070386786c8a38cde199b5d3e71289.
2011-09-16Saner approach to lvalues and callable values in transMarijn Haverbeke-1/+1
LValues no longer carry information about generics and objs, instead there's an extended form of lvalue, lval_maybe_callee, only used by call and bind, which holds this info. This makes it possible to take the value of a method and get a working closure, and will (with some more work) allow us to call statically known functions without loading from their pair. Closes #435 Closes #758
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-30/+30
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-09Use a Phi node in trans_vec::iter_vec_rawMarijn Haverbeke-15/+11
Rather than incrementing a spilled pointer
2011-09-08rustc: Make unique pointers no longer immediates.Patrick Walton-34/+42
2011-09-02Rename istr-stuff to str in rustc. Issue #855Brian Anderson-2/+2
2011-09-02Rename ty_istr to ty_str. Issue #855Brian Anderson-2/+2
2011-09-02Reformat. Issue #855Brian Anderson-97/+114
2011-09-02rustc: Zero out unique pointers after we drop themPatrick Walton-0/+1
2011-09-02rustc: Root values spilled via do_spill()Patrick Walton-5/+7
2011-09-02Rename ivecs to vecs in the compilerMarijn Haverbeke-0/+289
2011-08-16Remove partial DPS back-endMarijn Haverbeke-219/+0
It won't be finished on the short term, and it's already bit-rotting fast. We can fetch this from git's autumn annals if we need it.
2011-07-27Reformat for new syntaxMarijn Haverbeke-80/+79
2011-07-26Remove all uses of tuples from the compiler and stdlibMarijn Haverbeke-5/+5
2011-07-21Move a bunch of trans into trans_common, including the context structures.Michael Sullivan-4/+4
Probably more should be moved or split off into other files. My algorithm was something along the lines of: move the contexts and their transitive dependencies along with some functions to work with them. I stopped when I was going to have to start pulling glue generation, which really should go into a trans_glue file.
2011-07-18rustc: Remove obsolete TODOPatrick Walton-1/+0
2011-07-18rustc: Skip null when translating string concatenationPatrick Walton-1/+5