aboutsummaryrefslogtreecommitdiff
path: root/src/comp/lib
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-11-24 16:55:45 -0800
committerGraydon Hoare <[email protected]>2010-11-24 16:56:01 -0800
commitf809375b163bb108d9193f456f44ca663874380b (patch)
treea69731ced25908781c280ef893c073d534edea9f /src/comp/lib
parentmove expr_call translation into helper function. (diff)
downloadrust-f809375b163bb108d9193f456f44ca663874380b.tar.xz
rust-f809375b163bb108d9193f456f44ca663874380b.zip
Sketch out type-directed structural drop and copy, including vector types.
Diffstat (limited to 'src/comp/lib')
-rw-r--r--src/comp/lib/llvm.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/comp/lib/llvm.rs b/src/comp/lib/llvm.rs
index da48c6b5..0db40e89 100644
--- a/src/comp/lib/llvm.rs
+++ b/src/comp/lib/llvm.rs
@@ -1019,6 +1019,16 @@ obj builder(BuilderRef B) {
ret phi;
}
+ fn AddIncomingToPhi(ValueRef phi,
+ vec[ValueRef] vals,
+ vec[BasicBlockRef] bbs) {
+ check (_vec.len[ValueRef](vals) == _vec.len[BasicBlockRef](bbs));
+ llvm.LLVMAddIncoming(phi,
+ _vec.buf[ValueRef](vals),
+ _vec.buf[BasicBlockRef](bbs),
+ _vec.len[ValueRef](vals));
+ }
+
fn Call(ValueRef Fn, vec[ValueRef] Args) -> ValueRef {
ret llvm.LLVMBuildCall(B, Fn,
_vec.buf[ValueRef](Args),