about summary refs log tree commit diff
path: root/src/comp/middle
AgeCommit message (Collapse)AuthorLines
2011-05-12rustc: Beginnings of a "shape" module to convert types to shapesPatrick Walton-0/+98
2011-05-12rustc: Make ty::expr_ann() terserPatrick Walton-109/+37
2011-05-12rustc: Pass a node type table around, unused as of yetPatrick Walton-152/+214
2011-05-12Add stats option and lazily emit glue.Graydon Hoare-86/+264
2011-05-12Downcase std modules again, move to :: for module dereferencingMarijn Haverbeke-4250/+4276
This should be a snapshot transition.
2011-05-12Change module dereference syntax from . to ::Marijn Haverbeke-51/+9
This will need to be a snapshot.
2011-05-12Keep resolve data in external hash table, rather than embedded defsMarijn Haverbeke-447/+467
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.)
2011-05-12Ensure ann tags are actually kept around during typecheckingMarijn Haverbeke-198/+212
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.
2011-05-12Provide a more useful message when failing to translate a constMarijn Haverbeke-0/+3
2011-05-11rustc: Represent types as uints. Cuts typechecking down from 14s to 12s.Patrick Walton-148/+143
2011-05-11rustc: Remove a few kludges intended to work around rustboot's lack of ↵Patrick Walton-74/+4
structural comparison from equal_type_structures()
2011-05-11rustc: Remove magic numbers; they aren't a winPatrick Walton-40/+3
2011-05-11rustc: Intern all types. 4s regression.Patrick Walton-17/+1
2011-05-11rustc: Hoist derived type descriptors to the top of the functionPatrick Walton-69/+120
2011-05-11Remove mod indices from the ASTMarijn Haverbeke-54/+138
They are now created by the resolve pass, which is the only pass that needs them, and kept internal to that pass.
2011-05-11Get rid of arm indicesMarijn Haverbeke-12/+23
2011-05-11Get rid of block indicesMarijn Haverbeke-61/+49
2011-05-11Stop depending on block indices in capture.rsMarijn Haverbeke-5/+9
2011-05-11Hash only on def_num when storing def_ids that are localMarijn Haverbeke-13/+14
2011-05-11Use a const for crate-num-zero (ast.local_crate)Marijn Haverbeke-2/+1
2011-05-11Cache external crate lookups in resolve.rsMarijn Haverbeke-6/+28
According to --time-passes, resolution went from 2 to 0 seconds. Not really the bottleneck... but if we want to be crazy fast, just consider this a future bottleneck that was fixed very timely.
2011-05-11Rewrite comp/middle/resolve.rsMarijn Haverbeke-641/+549
* 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)
2011-05-11More alias-ification of trans.Graydon Hoare-279/+285
2011-05-10rustc: Don't interleave allocas with stores when copying arguments to allocasPatrick Walton-11/+7
2011-05-10Begin alias-ifying trans.Graydon Hoare-82/+82
2011-05-10Avoid mangle_name_by_type_only call in tydesc names unless debugging.Graydon Hoare-1/+8
2011-05-10rustc: Lower the size limit on ty_to_short_str() and always call it in favor ↵Patrick Walton-2/+2
of direct calls to metadata.Encode.ty_str() in trans
2011-05-10rustc: Number everything with an annotationPatrick Walton-26/+26
2011-05-10Only name LLVM values / blocks / types when saving temporaries.Graydon Hoare-17/+27
2011-05-10rustc: Cache intermediate results of metadata.Encode.ty_str. Shaves 30% off ↵Patrick Walton-3/+22
translation time.
2011-05-10Switch memcpy to memmove since we're willing to compile x = x and such.Graydon Hoare-18/+17
2011-05-10rustc: Get rid of native Rust glue for all upcalls except the exit task gluePatrick Walton-124/+105
2011-05-10Re-enable use of llvm intrinsics for memcpy, memset. Should have aligned ↵Graydon Hoare-106/+77
stack now.
2011-05-09Fix long lines in fold.rs, typeck.rsBrian Anderson-2/+4
2011-05-09Alias-ify fold and its users, remove another 85kb.Graydon Hoare-351/+371
2011-05-09Alias-ify walk, typeck, metadata. Cuts another 80kb off rustc.Graydon Hoare-150/+153
2011-05-09rustc: Declare upcalls with real signatures; preparation for killing ↵Patrick Walton-0/+25
rust_native_rust_* stubs
2011-05-09rustc: Alias fix part 2 -- Check that the aliasness of function parameters ↵Patrick Walton-10/+11
matches. Add a test case.
2011-05-09Alias-ify a variety of fn signatures in ty. Cuts 180kb off rustc.Graydon Hoare-112/+114
2011-05-09rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton-68/+60
and introduce an "either value or alias" mode
2011-05-08rustc: Stop emitting zero-length arraysPatrick Walton-14/+42
2011-05-07Stop stringifying integers to get integral constants.Graydon Hoare-32/+33
2011-05-06Rename std modules to be camelcasedMarijn Haverbeke-744/+744
(Have fun mergining your stuff with this.)
2011-05-06rustc: For stack local derived tydescs, allocate the root tydesc separately ↵Patrick Walton-24/+36
from the parameter tydescs. This allows SROA, and consequently inlining, to work.
2011-05-06rustc: Factor derived tydesc construction out of get_tydesc()Patrick Walton-43/+44
2011-05-06rustc: Include a representation of the type in question in the symbols ↵Patrick Walton-1/+1
generated for tydescs
2011-05-05rustc: Remove some debugging code from decl_native_fn_and_pair()Patrick Walton-6/+0
2011-05-05rustc: Fix a bunch of argument-passing bugs in decl_native_fn_and_pair()Patrick Walton-54/+82
2011-05-05Consolidating expr_to_str functions.Lindsey Kuper-9/+4
2011-05-05Change the setup so that rust_activate_glue returns to rust_exit_task_glueRafael Ávila de Espíndola-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.