about summary refs log tree commit diff
path: root/src/comp/middle/trans_common.rs
AgeCommit message (Collapse)AuthorLines
2011-12-16Get very simple impl method calls to compileMarijn Haverbeke-0/+1
Resolution is still dumb, and no self support yet.
2011-12-16rustc: Implement non-renamed re-export across cratesHaitao Li-0/+1
First patch for issue #1115. Not yet ready for re-exported modules which are renamed when importing them.
2011-12-15massive refactor of how closures workNiko Matsakis-9/+22
2011-12-14refactor trans into trans_closure; restore original closure reprNiko Matsakis-1/+1
2011-12-14insert a field into the closure storing number of ty descsNiko Matsakis-1/+3
2011-12-14pull out the code from iter_structural_ty for handling functions,Niko Matsakis-1/+1
as we will have to do very careful and non-generic things
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-19/+19
2011-12-07Change literal representation to not truncateMarijn Haverbeke-6/+29
Also shuffles around the organization of numeric literals and types, separating by int/uint/float instead of machine-vs-non-machine types. This simplifies some code. Closes #974 Closes #1252
2011-11-29fix bug in shape concerning size of tag variantNiko Matsakis-3/+7
2011-11-23Rollback return-by-referenceMarijn Haverbeke-9/+9
It's proving too inflexible, so I'm ripping out the extra complexity in the hope that regions will, at some point, provide something similar. Closes #918
2011-11-23Remove deep scope traversal in revoke_cleanMarijn Haverbeke-8/+2
It is not needed anymore.
2011-11-18Make trans use last_use info to not actually generate copiesMarijn Haverbeke-5/+11
Issue #925
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-16temp workaround for failure to pass ulonglong successfullyNiko Matsakis-1/+3
2011-11-16correct translation of neg. numbers in 64-bit architecturesNiko Matsakis-15/+9
2011-11-10Cleanup unused importsHaitao Li-20/+6
2011-11-02convert GEP to i32Niko Matsakis-0/+4
2011-11-02get things checking on ia32Niko Matsakis-1/+1
2011-11-02thread the context through so that int can be 64 bits on x86_64Niko Matsakis-22/+29
2011-11-02work on making the size of ints depend on the target archNiko Matsakis-22/+26
2011-11-02work on making the size of ints depend on the target archNiko Matsakis-56/+67
2011-10-21Drop support for iter, put, and for-eachMarijn Haverbeke-10/+1
Closes #1056
2011-10-20Merge ast::proto_shared and ast::proto_closureBrian Anderson-1/+2
Now they are both just proto_shared and proto_shared takes an argument indicating that it is sugared as 'lambda'
2011-10-20Rename ast::proto_fn to ast::proto_sharedBrian Anderson-1/+1
2011-10-20Make fn denote a bare function. Convert fn to fn@ as neededBrian Anderson-2/+2
2011-10-20Fix the problem with check-fast randomly failingBrian Anderson-1/+1
Trans has been assuming that tag node id's are unique across crates and they are not so, depending on which way the wind is blowing, it would choose to use a crate-local tag variant instead of the correct one from std. No test case since I can't come up with a reliable one that compiles in a reasonable amount of time.
2011-10-20Don't rely on main.ll anymoreMarijn Haverbeke-1/+2
I'll remove the actual file after I register a snapshot. Issue #992
2011-10-20Get rid of taskpointer-passing throughout the compilerMarijn Haverbeke-4/+3
Only intrinsics still take a dummy taskptr. We'll have to do some makefile stunts to snapshot a version without taskptrs-in-intrinsics. Issue #466
2011-10-12reimplement some of the unsafe stuff which got lostNiko Matsakis-51/+35
- blocks inherit unsafety - remove the --check-unsafe flag - add unsafe annotations where needed to get things to compile
2011-10-12add unsafe tags into various points in the translation chainsNiko Matsakis-22/+43
and so forth
2011-10-12Add unsafe tags to usage of LLVM funcsNiko Matsakis-5/+7
2011-10-10Make bcx_tcx-style accessors return by referenceMarijn Haverbeke-8/+8
2011-10-10Don't spill immediates in order to drop themMarijn Haverbeke-7/+7
Issue #1012
2011-10-07Stop registering cleanups for types that don't need themMarijn Haverbeke-0/+3
2011-10-07Make it possible to have locals that don't live on the stackMarijn Haverbeke-2/+4
Local values that are not mutated, don't need to be cleaned up, and are immediate, don't need to be spilled. (All immediate args, and non-pointer immediate let locals.)
2011-09-28Eliminate glue.o. Closes #990Brian Anderson-3/+0
2011-09-27Move expr_unary to DPS styleMarijn Haverbeke-0/+7
Issue #667
2011-09-26Construct records and tuples in-placeMarijn Haverbeke-0/+5
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-24Reduce and clarify abuse of 'pure' in internerJesse Ruderman-4/+1
2011-09-23Make sure no dynamic allocas are used before they are allocatedMarijn Haverbeke-7/+1
Closes #965
2011-09-23Better handling of unreachable code in transMarijn Haverbeke-2/+1
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-22rustc: Write raw type parameters instead of linearized type parameters in ↵Patrick Walton-1/+2
object body shapes
2011-09-21Remove unused arg from revoke_cleanBrian Anderson-1/+1
2011-09-21Add ability to deref unique boxes. Make unique boxes immediates.Brian Anderson-6/+0
Issue #409
2011-09-18Stop creating function pairs for static functionsMarijn Haverbeke-4/+2
These are now called directly. When taking their value, a null pointer is added to create a pair.
2011-09-17Add a type_is_tup_like predicate that takes a block ctxt, and make some fns pureTim Chevalier-8/+13
2011-09-16Make move-mode arguments unwind correctly. Closes #939Brian Anderson-4/+4
2011-09-16Add a returns_non_ty_var predicateTim Chevalier-0/+4
which just calls non_ty_var on the return type of t, assuming t is a function type.
2011-09-15Added more predicates in transTim Chevalier-2/+16
Added the non_ty_var predicate (soon to be used) Added a check in get_res_dtor (will be necessary for a future change to type_of_fn) Removed a gratuitous ret
2011-09-14Revert "Try a little harder to avoid creating new landing pads"Brian Anderson-5/+4
This reverts commit b8e31ac46917edcf5922f0b191c5e6c4505830d2. Conflicts: src/comp/middle/trans.rs