about summary refs log tree commit diff
path: root/src/comp/middle/trans_build.rs
AgeCommit message (Collapse)AuthorLines
2012-01-27Move various trans_ modules under a trans:: umbrella moduleMarijn Haverbeke-667/+0
Closes #1304
2012-01-19rustc: Use integer from ctypes consistentlyHaitao Li-4/+4
2012-01-19Use ctypes in native function declarationsHaitao Li-26/+33
2012-01-12Make driver::session::session no longer an objectMarijn Haverbeke-4/+6
Rather, it is now a struct where properties like opts are accessed directly, and the error-reporting methods are part of a static impl (with the same name as the type).
2012-01-10rustc: Remove sret attributes from functionsBrian Anderson-8/+3
Something about the way we're using it is causing incorrect code generation. Closes #1343
2011-12-22Register new snapshots, purge log_err and log_full in favour of log(...).Graydon Hoare-1/+1
2011-12-22Register snapshots and switch logging over to use of log_full or #error / ↵Graydon Hoare-1/+1
#debug.
2011-12-19Long lines.Josh Matthews-1/+2
2011-12-18Remove source line generation craziness. Ensure incorrect subprogram caches ↵Josh Matthews-263/+94
are not conflated. Generate ast_map entries for object members and resource constructors and destructors.
2011-12-18Add argument metadata and aborted return value code.Josh Matthews-0/+8
2011-12-18Fix up local variable support so it actually works.Josh Matthews-1/+1
2011-12-18Fix LLVM assertions when lowering log statements.Josh Matthews-27/+27
2011-12-18Add debug info for local vars, basic fundamental types, and lexical blocks, ↵Josh Matthews-93/+262
along with source line information generation for individual instructions.
2011-12-13Copy first batch of material from libstd to libcore.Graydon Hoare-5/+5
2011-12-06do not stringify AST nodes unless emitting commentsNiko Matsakis-1/+3
2011-11-17remove compile-command from local variable blocksNiko Matsakis-1/+0
2011-11-16fix natives with user-specified link names, remove unused importsNiko Matsakis-1/+1
2011-11-16enable comments in generated asm, llNiko Matsakis-2/+21
2011-11-10Cleanup unused importsHaitao Li-2/+2
2011-11-02convert GEP to i32Niko Matsakis-1/+9
2011-11-02get things checking on ia32Niko Matsakis-3/+3
2011-11-02work on making the size of ints depend on the target archNiko Matsakis-3/+3
2011-11-02work on making the size of ints depend on the target archNiko Matsakis-4/+7
2011-10-28stdlib: Make reinterpret_cast and leak unsafeBrian Anderson-4/+6
2011-10-21avoid extra load for by_mutable_ref parametersNiko Matsakis-1/+2
2011-10-12reimplement some of the unsafe stuff which got lostNiko Matsakis-3/+3
- 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-28/+49
and so forth
2011-09-23Make AddIncomingToPhi take single values rather than arraysMarijn Haverbeke-6/+4
2011-09-23Start on a piecemeal conversion to DPSMarijn Haverbeke-2/+8
Issue #667 Wires in a basic framework for destination-passing style, with backwards-compatibility to the old approach, so that expression types can be moved over to it one at a time (by moving them from trans_expr to trans_expr_dps).
2011-09-23Use a slightly nicer hack to get zero-length strings in trans_buildMarijn Haverbeke-176/+97
Wrapping calls in str::by_ref(, ...) heap-allocated an empty string every time (and looked really bad).
2011-09-23Better handling of unreachable code in transMarijn Haverbeke-85/+182
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-12Merge branch 'unwind'Brian Anderson-0/+38
Conflicts: src/comp/middle/trans.rs src/comp/middle/trans_build.rs src/lib/run_program.rs src/test/compiletest/runtest.rs
2011-09-12Reformat for new mode syntax, step 1Marijn Haverbeke-94/+91
Long lines were fixed in a very crude way, as I'll be following up with another reformat in a bit.
2011-09-11Add landing pads to invokesBrian Anderson-0/+7
Issue #236
2011-09-11Add Rust definitions for new LLVM EH instructionsBrian Anderson-0/+16
Issue #236
2011-09-11Use invoke to call (most) rust functionsBrian Anderson-0/+15
No landing pads yet. Issue #236
2011-09-02Reformat. Issue #855Brian Anderson-291/+226
2011-09-01Rename std::istr to std::str. Issue #855Brian Anderson-81/+81
2011-09-01Remove std::str. Issue #855Brian Anderson-1/+1
2011-08-30Clean up trans_build, factor repeated code into functionMarijn Haverbeke-265/+96
2011-08-27Convert rustc::lib::llvm to istr::sbufs. Issue #855Brian Anderson-93/+244
2011-08-24Use a single builder object throughoutMarijn Haverbeke-99/+265
This seems to be faster than creating separate ones for each block context.
2011-08-24Move to a more lightweight builder systemMarijn Haverbeke-0/+459
You now do bld::Ret(bcx, someval) where you used to say bcx.build.Ret(someval) Two fewer boxes are allocated for each block context, and build calls no longer go through a vtable.