aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
Commit message (Collapse)AuthorAgeFilesLines
* Alias-ify walk, typeck, metadata. Cuts another 80kb off rustc.Graydon Hoare2011-05-096-150/+153
|
* rustc: Declare upcalls with real signatures; preparation for killing ↵Patrick Walton2011-05-091-0/+25
| | | | rust_native_rust_* stubs
* rustc: Alias fix part 2 -- Check that the aliasness of function parameters ↵Patrick Walton2011-05-092-10/+11
| | | | matches. Add a test case.
* Alias-ify a variety of fn signatures in ty. Cuts 180kb off rustc.Graydon Hoare2011-05-091-112/+114
|
* rustc: Alias fix part 1 -- Separate out AST modes from typechecker modes, ↵Patrick Walton2011-05-094-68/+60
| | | | 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-069-744/+744
| | | | (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-053-9/+4
|
* 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.
* rustc: Add Rust intrinsic support to the crate metadata reader and writerPatrick Walton2011-05-051-0/+3
|
* rustc: Fix bug in equal_abi that was preventing Rust intrinsics from workingPatrick Walton2011-05-051-0/+6
|
* Enforce in typechecker that preds return a boolTim Chevalier2011-05-051-0/+11
| | | | as well as a test case
* Bring back "pred" syntax for writing predicates for checkTim Chevalier2011-05-052-9/+116
| | | | | | | | | | This commit reinstates the requirement that the predicate in a "check" must be a manifest call to a special kind of function declared with the new "pred" keyword instead of "fn". Preds must have a boolean return type and can only call other preds; they can't have any effects (as enforced by the typechecker). The arguments to a predicate in a check expression must be slot variables or literals.
* Check well-formedness of constraintsTim Chevalier2011-05-051-6/+23
| | | | | | Check that the operand in a constraint is an explicit name, and that the operands are all local variables or literals. Still need to check that the name refers to a pure function.
* Check that the operand in a check is a callTim Chevalier2011-05-052-8/+19
| | | | | | In addition, fix bug in fold that was turning asserts into checks. More typechecking still needs to be done.
* Remove 'deprecated mutable...' from our codeMarijn Haverbeke2011-05-052-12/+12
| | | | This should make compilation a bit less noisy.
* 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).
* Eradicate fold from capture.rsMarijn Haverbeke2011-05-051-59/+54
| | | | The pass now uses walk.
* 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-042-25/+21
| | | | session, and use it.
* Add missing ret statements to check_modBrian Anderson2011-05-041-0/+4
| | | | Un-XFAIL compile-fail export tests
* 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-033-45/+53
| | | | if abbreviation isn't enabled
* rustc: Name type glue properlyPatrick Walton2011-05-031-3/+17
|
* Extract ast.is_exported from the resolve moduleBrian Anderson2011-05-021-18/+1
|
* rustc: Time the Rust translation and LLVM passes separatelyPatrick Walton2011-05-021-3/+3
|
* rustc: Remove the artificial block in ty.rs. Fixes self-hosting. Add a test ↵Patrick Walton2011-05-021-1/+1
| | | | case for this, XFAIL'd.
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-028-381/+370
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-028-370/+381
| | | | 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.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-028-381/+370
| | | | | | | | | | This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
* rustc: Add a "fat tydesc" LLVM type to transPatrick Walton2011-05-021-0/+6
|
* Remove the search direction from resolve's fold environmentBrian Anderson2011-05-011-36/+31
| | | | | It's not actually involved in the fold so it can just be passed between the functions that need it.
* Hide unexported tag variantsBrian Anderson2011-05-011-3/+5
|
* Implement simple module exportBrian Anderson2011-05-011-12/+60
|
* rustc: Run scope cleanups in the implicit block created by log statements. ↵Patrick Walton2011-04-291-14/+18
| | | | Fixes a leak.
* rustc: Emit pure native glue; we don't call it yetPatrick Walton2011-04-291-8/+19
|
* rustc: Start threading a purity flag through upcallsPatrick Walton2011-04-291-20/+26
|
* Temporarily disable dtors; they broke self-hosting.Graydon Hoare2011-04-291-1/+3
|
* rustc: First steps to determine whether tydescs escapePatrick Walton2011-04-291-17/+30
|
* Don't emit metadata unless compiling -shared.Graydon Hoare2011-04-292-5/+8
|
* Implement destructors in rustcMarijn Haverbeke2011-04-291-40/+60
| | | | | | Unlike rustboot, rustc keeps it destructors in vtables. Entry 0 holds either the destructor for the obj or a NULL pointer. The method offsets start at 1.