about summary refs log tree commit diff
path: root/src/comp/lib
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2010-11-24 16:55:45 -0800
committerGraydon Hoare <graydon@mozilla.com>2010-11-24 16:56:01 -0800
commitf809375b163bb108d9193f456f44ca663874380b (patch)
treea69731ced25908781c280ef893c073d534edea9f /src/comp/lib
parent96540ef0bb649f4bd5c90ff2b524e763b3b5db85 (diff)
downloadrust-f809375b163bb108d9193f456f44ca663874380b.tar.gz
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 da48c6b5d4d..0db40e89e81 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),