aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/trans.rs
Commit message (Collapse)AuthorAgeFilesLines
* Use new module namespace syntax.Lindsey Kuper2011-05-131-1/+1
|
* More progress on anonymous objects.Lindsey Kuper2011-05-131-3/+7
| | | | Still segfaulting on the method-overriding.rs test, though.
* rustc: lowercase the link and link::write modulesBrian Anderson2011-05-131-2/+2
|
* Move capture checking into resolve.rsMarijn Haverbeke2011-05-131-3/+0
| | | | | Drops capture.rs. The new algorithm also checks for captures function arguments and obj fields.
* rustc: Flatten recursive vectors in trans::simplify_type(). Prevents an ↵Patrick Walton2011-05-121-0/+3
| | | | infinite loop.
* rustc: Pass a node type table around, unused as of yetPatrick Walton2011-05-121-38/+66
|
* Add stats option and lazily emit glue.Graydon Hoare2011-05-121-86/+264
|
* Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke2011-05-121-1432/+1443
| | | | This should be a snapshot transition.
* Change module dereference syntax from . to ::Marijn Haverbeke2011-05-121-1/+1
| | | | This will need to be a snapshot.
* Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke2011-05-121-104/+102
| | | | | | | | | | | | | One step closer to removing fold and having a single, immutable AST. Resolve still uses fold, because it has to detect and transform expr_field expressions. If we go through on our plan of moving to a different syntax for module dereferencing, the parser can spit out expr_field expressions, and resolve can move to walk. (I am truly sorry for the things I did in typestate_check.rs. I expect we'll want to change that to walk as well in the near future, at which point it should probably pass around a context record, which could hold the def_map.)
* Ensure ann tags are actually kept around during typecheckingMarijn Haverbeke2011-05-121-2/+2
| | | | | | This way, the tag assigned by the parser stays with the node. I realize ann replacing is probably going away real soon, but I needed this now for moving the resolve defs out of the AST.
* Provide a more useful message when failing to translate a constMarijn Haverbeke2011-05-121-0/+3
|
* rustc: Hoist derived type descriptors to the top of the functionPatrick Walton2011-05-111-69/+120
|
* Rewrite comp/middle/resolve.rsMarijn Haverbeke2011-05-111-0/+3
| | | | | | | | | * Cleans up the algorithm * Move first pass to walk (second still folds) * Support part of a type/value namespace split (crate metadata and module indices still need to be taught about this) * Remove a few blatant inefficiencies (import tables being recreated for every lookup, most importantly)
* More alias-ification of trans.Graydon Hoare2011-05-111-279/+285
|
* rustc: Don't interleave allocas with stores when copying arguments to allocasPatrick Walton2011-05-101-11/+7
|
* Begin alias-ifying trans.Graydon Hoare2011-05-101-82/+82
|
* Avoid mangle_name_by_type_only call in tydesc names unless debugging.Graydon Hoare2011-05-101-1/+8
|
* rustc: Lower the size limit on ty_to_short_str() and always call it in favor ↵Patrick Walton2011-05-101-1/+1
| | | | of direct calls to metadata.Encode.ty_str() in trans
* rustc: Number everything with an annotationPatrick Walton2011-05-101-2/+2
|
* Only name LLVM values / blocks / types when saving temporaries.Graydon Hoare2011-05-101-17/+27
|
* rustc: Cache intermediate results of metadata.Encode.ty_str. Shaves 30% off ↵Patrick Walton2011-05-101-0/+4
| | | | translation time.
* Switch memcpy to memmove since we're willing to compile x = x and such.Graydon Hoare2011-05-101-18/+17
|
* rustc: Get rid of native Rust glue for all upcalls except the exit task gluePatrick Walton2011-05-101-124/+105
|
* Re-enable use of llvm intrinsics for memcpy, memset. Should have aligned ↵Graydon Hoare2011-05-101-106/+77
| | | | stack now.
* Alias-ify walk, typeck, metadata. Cuts another 80kb off rustc.Graydon Hoare2011-05-091-9/+9
|
* rustc: Declare upcalls with real signatures; preparation for killing ↵Patrick Walton2011-05-091-0/+25
| | | | rust_native_rust_* stubs
* rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton2011-05-091-21/+19
| | | | and introduce an "either value or alias" mode
* rustc: Stop emitting zero-length arraysPatrick Walton2011-05-081-14/+42
|
* Stop stringifying integers to get integral constants.Graydon Hoare2011-05-071-32/+33
|
* Rename std modules to be camelcasedMarijn Haverbeke2011-05-061-201/+201
| | | | (Have fun mergining your stuff with this.)
* rustc: For stack local derived tydescs, allocate the root tydesc separately ↵Patrick Walton2011-05-061-24/+36
| | | | from the parameter tydescs. This allows SROA, and consequently inlining, to work.
* rustc: Factor derived tydesc construction out of get_tydesc()Patrick Walton2011-05-061-43/+44
|
* rustc: Include a representation of the type in question in the symbols ↵Patrick Walton2011-05-061-1/+1
| | | | generated for tydescs
* rustc: Remove some debugging code from decl_native_fn_and_pair()Patrick Walton2011-05-051-6/+0
|
* rustc: Fix a bunch of argument-passing bugs in decl_native_fn_and_pair()Patrick Walton2011-05-051-54/+82
|
* Consolidating expr_to_str functions.Lindsey Kuper2011-05-051-4/+1
|
* Change the setup so that rust_activate_glue returns to rust_exit_task_glueRafael Ávila de Espíndola2011-05-051-16/+17
| | | | | | | | | | | and rust_exit_task_glue calls the rust main. This is simpler since we only need to setup one frame. It also matches what ld.so does, so gdb is happy and stops a backtrace at rust_exit_task_glue instead of continuing past whatever function happened to be before rust_exit_task_glue is the object file. This is only the rustc changes and should be merged first.
* Return a fresh, unreachable context after ret, break, and contMarijn Haverbeke2011-05-051-2/+2
| | | | | | | | | This ensures we don't get compile errors on unreachable code (see test/run-pass/artificial-block.rs for an example of sane code that wasn't compiling). In the future, we might want to warn about non-trivial code appearing in an unreachable context, and/or avoid generating unreachable code altogether (though I'm sure LLVM will weed it out as well).
* rustc: Add a Link module; move crate writing to it to slim down trans slightlyPatrick Walton2011-05-051-158/+4
|
* Fix and re-enable destructorsMarijn Haverbeke2011-05-051-6/+7
| | | | | | | There was some confusion on whether the destructors took their argument by pointer or direct value. They now take it directly, just like other methods. You no longer get a segfault when a constructor actually does something with its self value.
* Add a structure for passing option flags around the compiler, put it in ↵Graydon Hoare2011-05-041-23/+19
| | | | session, and use it.
* Support new -g flag, only mangle glue names by type when it's passed.Graydon Hoare2011-05-041-8/+16
|
* rustc: Stub support for Rust intrinsicsPatrick Walton2011-05-031-28/+55
|
* rustc: Refactor metadata.Encode.* to not require a type abbreviation table ↵Patrick Walton2011-05-031-7/+3
| | | | if abbreviation isn't enabled
* rustc: Name type glue properlyPatrick Walton2011-05-031-3/+17
|
* rustc: Time the Rust translation and LLVM passes separatelyPatrick Walton2011-05-021-3/+3
|
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-021-34/+38
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-021-38/+34
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* rustc: Allocate tydescs on the stack when it's safe to do so. 60% compile ↵Patrick Walton2011-05-021-12/+33
| | | | speed increase.