diff gen/runtime.cpp @ 719:7261ff0f95ff

Implemented first class delegates. closes #101
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 22 Oct 2008 21:50:08 +0200
parents 30b42a283c8e
children 635f91212b78
line wrap: on
line diff
--- a/gen/runtime.cpp	Wed Oct 22 20:00:57 2008 +0200
+++ b/gen/runtime.cpp	Wed Oct 22 21:50:08 2008 +0200
@@ -119,11 +119,7 @@
     types.push_back(rt_ptr(LLType::Int8Ty));
     types.push_back(rt_ptr(LLType::Int8Ty));
     const llvm::FunctionType* fty = llvm::FunctionType::get(LLType::Int32Ty, types, false);
-
-    std::vector<const LLType*> t;
-    t.push_back(rt_ptr(LLType::Int8Ty));
-    t.push_back(rt_ptr(fty));
-    return rt_ptr(llvm::StructType::get(t));
+    return llvm::StructType::get(rt_ptr(LLType::Int8Ty), rt_ptr(fty), 0);
 }
 
 static const LLType* rt_dg2()
@@ -133,11 +129,7 @@
     types.push_back(rt_ptr(LLType::Int8Ty));
     types.push_back(rt_ptr(LLType::Int8Ty));
     const llvm::FunctionType* fty = llvm::FunctionType::get(LLType::Int32Ty, types, false);
-
-    std::vector<const LLType*> t;
-    t.push_back(rt_ptr(LLType::Int8Ty));
-    t.push_back(rt_ptr(fty));
-    return rt_ptr(llvm::StructType::get(t));
+    return llvm::StructType::get(rt_ptr(LLType::Int8Ty), rt_ptr(fty), 0);
 }
 
 static void LLVM_D_BuildRuntimeModule()
@@ -365,10 +357,8 @@
         types.push_back(TY); \
         types.push_back(rt_dg1()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::AttrListPtr palist; \
-        palist = palist.addAttr(2, llvm::Attribute::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); \
     }
     STR_APPLY1(stringTy, "_aApplycw1", "_aApplycd1")
     STR_APPLY1(wstringTy, "_aApplywc1", "_aApplywd1")
@@ -384,10 +374,8 @@
         types.push_back(TY); \
         types.push_back(rt_dg2()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::AttrListPtr palist; \
-        palist = palist.addAttr(2, llvm::Attribute::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); \
     }
     STR_APPLY2(stringTy, "_aApplycw2", "_aApplycd2")
     STR_APPLY2(wstringTy, "_aApplywc2", "_aApplywd2")
@@ -402,10 +390,8 @@
         types.push_back(TY); \
         types.push_back(rt_dg1()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::AttrListPtr palist; \
-        palist = palist.addAttr(2, llvm::Attribute::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); \
     }
     STR_APPLY_R1(stringTy, "_aApplyRcw1", "_aApplyRcd1")
     STR_APPLY_R1(wstringTy, "_aApplyRwc1", "_aApplyRwd1")
@@ -420,10 +406,8 @@
         types.push_back(TY); \
         types.push_back(rt_dg2()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::AttrListPtr palist; \
-        palist = palist.addAttr(2, llvm::Attribute::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setAttributes(palist); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M); \
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M); \
     }
     STR_APPLY_R2(stringTy, "_aApplyRcw2", "_aApplyRcd2")
     STR_APPLY_R2(wstringTy, "_aApplyRwc2", "_aApplyRwd2")
@@ -662,9 +646,7 @@
         types.push_back(sizeTy);
         types.push_back(rt_dg1());
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::AttrListPtr palist;
-        palist = palist.addAttr(3, llvm::Attribute::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
     }
 
     // int _aaApply2(AA aa, size_t keysize, dg2_t dg)
@@ -675,9 +657,7 @@
         types.push_back(sizeTy);
         types.push_back(rt_dg2());
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::AttrListPtr palist;
-        palist = palist.addAttr(3, llvm::Attribute::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M);
     }
 
     /////////////////////////////////////////////////////////////////////////////////////