changeset 633:d208fc4291df

merge
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Wed, 01 Oct 2008 23:17:36 +0200
parents df196c8dea26 (diff) 9fcb5f1a4c54 (current diff)
children 0084d2c76b74
files
diffstat 12 files changed, 119 insertions(+), 134 deletions(-) [+]
line wrap: on
line diff
--- a/gen/arrays.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/arrays.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -758,10 +758,10 @@
     CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end(), "tmp");
 
     // set param attrs
-    llvm::PAListPtr palist;
-    palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-    palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-    call->setParamAttrs(palist);
+    llvm::AttrListPtr palist;
+    palist = palist.addAttr(1, llvm::Attribute::ByVal);
+    palist = palist.addAttr(2, llvm::Attribute::ByVal);
+    call->setAttributes(palist);
 
     return call->get();
 }
@@ -1072,7 +1072,7 @@
     gIR->scope() = IRScope(failbb, okbb);
 
     std::vector<LLValue*> args;
-    llvm::PAListPtr palist;
+    llvm::AttrListPtr palist;
 
     // file param
     // FIXME: every array bounds check creates a global for the filename !!!
@@ -1090,7 +1090,7 @@
     DtoStore(c->getOperand(1), ptr);
 
     args.push_back(alloc);
-    palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
+    palist = palist.addAttr(1, llvm::Attribute::ByVal);
 
     // line param
     c = DtoConstUint(loc.linnum);
@@ -1099,7 +1099,7 @@
     // call
     llvm::Function* errorfn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_array_bounds");
     CallOrInvoke* call = gIR->CreateCallOrInvoke(errorfn, args.begin(), args.end());
-    call->setParamAttrs(palist);
+    call->setAttributes(palist);
 
     // the function does not return
     gIR->ir->CreateUnreachable();
--- a/gen/dwarftypes.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/dwarftypes.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -9,7 +9,7 @@
 #include <llvm/BasicBlock.h>
 #include <llvm/Instructions.h>
 #include <llvm/InlineAsm.h>
-#include <llvm/ParameterAttributes.h>
+#include <llvm/Attributes.h>
 #include <llvm/Support/MathExtras.h>
 #include <llvm/Pass.h>
 #include <llvm/PassManager.h>
--- a/gen/functions.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/functions.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -132,7 +132,7 @@
             Logger::println("struct param");
             paramvec.push_back(getPtrToType(at));
             if (!refOrOut)
-                arg->llvmAttrs |= llvm::ParamAttr::ByVal;
+                arg->llvmAttrs |= llvm::Attribute::ByVal;
         }
         else if (isaArray(at)) {
             // static array are passed by reference
@@ -341,10 +341,10 @@
         llidx += 2;
 
     int funcNumArgs = func->getArgumentList().size();
-    std::vector<llvm::ParamAttrsWithIndex> attrs;
+    std::vector<llvm::AttributeWithIndex> attrs;
     int k = 0;
 
-    llvm::ParamAttrsWithIndex PAWI;
+    llvm::AttributeWithIndex PAWI;
 
     // set return value attrs if any
     if (f->retAttrs)
@@ -358,7 +358,7 @@
     if (f->retInPtr)
     {
         PAWI.Index = 1;
-        PAWI.Attrs = llvm::ParamAttr::StructRet;
+        PAWI.Attrs = llvm::Attribute::StructRet;
         attrs.push_back(PAWI);
     }
 
@@ -366,7 +366,7 @@
     if (fdecl->isMain() && Argument::dim(f->parameters) == 0)
     {
         PAWI.Index = llidx;
-        PAWI.Attrs = llvm::ParamAttr::ByVal;
+        PAWI.Attrs = llvm::Attribute::ByVal;
         attrs.push_back(PAWI);
         llidx++;
     }
@@ -384,8 +384,8 @@
             attrs.push_back(PAWI);
     }
 
-    llvm::PAListPtr palist = llvm::PAListPtr::get(attrs.begin(), attrs.end());
-    func->setParamAttrs(palist);
+    llvm::AttrListPtr palist = llvm::AttrListPtr::get(attrs.begin(), attrs.end());
+    func->setAttributes(palist);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
--- a/gen/irstate.h	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/irstate.h	Wed Oct 01 23:17:36 2008 +0200
@@ -88,7 +88,7 @@
 // adjusting these common properties these structs are made
 struct CallOrInvoke
 {
-    virtual void setParamAttrs(const llvm::PAListPtr& Attrs) = 0;
+    virtual void setAttributes(const llvm::AttrListPtr& Attrs) = 0;
     virtual void setCallingConv(unsigned CC) = 0;
     virtual llvm::Instruction* get() = 0;
 };
@@ -98,8 +98,8 @@
     llvm::CallInst* inst;
     CallOrInvoke_Call(llvm::CallInst* call) : inst(call) {}
 
-    virtual void setParamAttrs(const llvm::PAListPtr& Attrs)
-    { inst->setParamAttrs(Attrs); }
+    virtual void setAttributes(const llvm::AttrListPtr& Attrs)
+    { inst->setAttributes(Attrs); }
     virtual void setCallingConv(unsigned CC)
     { inst->setCallingConv(CC); }
     virtual llvm::Instruction* get()
@@ -111,8 +111,8 @@
     llvm::InvokeInst* inst;
     CallOrInvoke_Invoke(llvm::InvokeInst* invoke) : inst(invoke) {}
 
-    virtual void setParamAttrs(const llvm::PAListPtr& Attrs)
-    { inst->setParamAttrs(Attrs); }
+    virtual void setAttributes(const llvm::AttrListPtr& Attrs)
+    { inst->setAttributes(Attrs); }
     virtual void setCallingConv(unsigned CC)
     { inst->setCallingConv(CC); }
     virtual llvm::Instruction* get()
--- a/gen/llvm.h	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/llvm.h	Wed Oct 01 23:17:36 2008 +0200
@@ -10,7 +10,7 @@
 #include "llvm/Function.h"
 #include "llvm/Module.h"
 #include "llvm/Value.h"
-#include "llvm/ParameterAttributes.h"
+#include "llvm/Attributes.h"
 
 #include "llvm/Target/TargetData.h"
 
--- a/gen/llvmhelpers.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/llvmhelpers.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -117,7 +117,7 @@
     llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, fname);
 
     // param attrs
-    llvm::PAListPtr palist;
+    llvm::AttrListPtr palist;
     int idx = 1;
 
     // FIXME: every assert creates a global for the filename !!!
@@ -141,7 +141,7 @@
         {
             args.push_back(msg->getRVal());
         }
-        palist = palist.addAttr(idx++, llvm::ParamAttr::ByVal);
+        palist = palist.addAttr(idx++, llvm::Attribute::ByVal);
     }
 
     // file param
@@ -157,7 +157,7 @@
     DtoStore(c->getOperand(1), ptr);
 
     args.push_back(alloc);
-    palist = palist.addAttr(idx++, llvm::ParamAttr::ByVal);
+    palist = palist.addAttr(idx++, llvm::Attribute::ByVal);
 
 
     // line param
@@ -166,7 +166,7 @@
 
     // call
     CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end());
-    call->setParamAttrs(palist);
+    call->setAttributes(palist);
 
     // after assert is always unreachable
     gIR->ir->CreateUnreachable();
--- a/gen/llvmhelpers.h	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/llvmhelpers.h	Wed Oct 01 23:17:36 2008 +0200
@@ -133,7 +133,7 @@
 const LLFunctionType* DtoExtractFunctionType(const LLType* type);
 
 ///
-void DtoBuildDVarArgList(std::vector<LLValue*>& args, llvm::PAListPtr& palist, TypeFunction* tf, Expressions* arguments, size_t argidx);
+void DtoBuildDVarArgList(std::vector<LLValue*>& args, llvm::AttrListPtr& palist, TypeFunction* tf, Expressions* arguments, size_t argidx);
 
 ///
 DValue* DtoCallFunction(Loc& loc, Type* resulttype, DValue* fnval, Expressions* arguments);
--- a/gen/runtime.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/runtime.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -69,7 +69,7 @@
 
     const llvm::FunctionType* fnty = fn->getFunctionType();
     llvm::Function* resfn = llvm::cast<llvm::Function>(target->getOrInsertFunction(name, fnty));
-    resfn->setParamAttrs(fn->getParamAttrs());
+    resfn->setAttributes(fn->getAttributes());
     return resfn;
 }
 
@@ -201,11 +201,11 @@
         types.push_back(stringTy);
         types.push_back(intTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname3, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, 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, fname3, M)->setAttributes(palist);
     }
 
     // void _d_assert_msg( char[] msg, char[] file, uint line )
@@ -216,10 +216,10 @@
         types.push_back(stringTy);
         types.push_back(intTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidPtrTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     /////////////////////////////////////////////////////////////////////////////////////
@@ -383,11 +383,11 @@
         types.push_back(TY); \
         types.push_back(rt_dg1()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::PAListPtr palist; \
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \
+        llvm::AttrListPtr palist; \
+        palist = palist.addAttr(1, llvm::Attribute::ByVal); \
+        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); \
     }
     STR_APPLY1(stringTy, "_aApplycw1", "_aApplycd1")
     STR_APPLY1(wstringTy, "_aApplywc1", "_aApplywd1")
@@ -403,11 +403,11 @@
         types.push_back(TY); \
         types.push_back(rt_dg2()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::PAListPtr palist; \
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \
+        llvm::AttrListPtr palist; \
+        palist = palist.addAttr(1, llvm::Attribute::ByVal); \
+        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); \
     }
     STR_APPLY2(stringTy, "_aApplycw2", "_aApplycd2")
     STR_APPLY2(wstringTy, "_aApplywc2", "_aApplywd2")
@@ -422,11 +422,11 @@
         types.push_back(TY); \
         types.push_back(rt_dg1()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::PAListPtr palist; \
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \
+        llvm::AttrListPtr palist; \
+        palist = palist.addAttr(1, llvm::Attribute::ByVal); \
+        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); \
     }
     STR_APPLY_R1(stringTy, "_aApplyRcw1", "_aApplyRcd1")
     STR_APPLY_R1(wstringTy, "_aApplyRwc1", "_aApplyRwd1")
@@ -441,11 +441,11 @@
         types.push_back(TY); \
         types.push_back(rt_dg2()); \
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false); \
-        llvm::PAListPtr palist; \
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal); \
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist); \
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist); \
+        llvm::AttrListPtr palist; \
+        palist = palist.addAttr(1, llvm::Attribute::ByVal); \
+        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); \
     }
     STR_APPLY_R2(stringTy, "_aApplyRcw2", "_aApplyRcd2")
     STR_APPLY_R2(wstringTy, "_aApplyRwc2", "_aApplyRwd2")
@@ -533,10 +533,10 @@
         types.push_back(stringTy);
         types.push_back(stringTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist);
+        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);
     }
 
     // wchar[] _adReverseWchar(wchar[] a)
@@ -548,10 +548,10 @@
         types.push_back(wstringTy);
         types.push_back(wstringTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist);
+        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);
     }
 
     // Array _adReverse(Array a, size_t szelem)
@@ -562,9 +562,9 @@
         types.push_back(rt_array(byteTy));
         types.push_back(sizeTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // Array _adDupT(TypeInfo ti, Array a)
@@ -575,9 +575,9 @@
         types.push_back(typeInfoTy);
         types.push_back(rt_array(byteTy));
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(3, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(3, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // int _adEq(Array a1, Array a2, TypeInfo ti)
@@ -590,11 +590,11 @@
         types.push_back(rt_array(byteTy));
         types.push_back(typeInfoTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname2, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        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);
     }
 
     // int _adCmpChar(Array a1, Array a2)
@@ -604,10 +604,10 @@
         types.push_back(rt_array(byteTy));
         types.push_back(rt_array(byteTy));
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // Array _adSort(Array a, TypeInfo ti)
@@ -618,9 +618,9 @@
         types.push_back(rt_array(byteTy));
         types.push_back(typeInfoTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(voidTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     /////////////////////////////////////////////////////////////////////////////////////
@@ -723,9 +723,9 @@
         types.push_back(sizeTy);
         types.push_back(rt_dg1());
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(3, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(3, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // int _aaApply2(AA aa, size_t keysize, dg2_t dg)
@@ -736,9 +736,9 @@
         types.push_back(sizeTy);
         types.push_back(rt_dg1());
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(3, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(3, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     /////////////////////////////////////////////////////////////////////////////////////
@@ -813,10 +813,10 @@
         types.push_back(rt_array(rt_array2(byteTy)));
         types.push_back(stringTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // int _d_switch_ustring(wchar[][] table, wchar[] ca)
@@ -826,10 +826,10 @@
         types.push_back(rt_array(rt_array2(shortTy)));
         types.push_back(wstringTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     // int _d_switch_dstring(dchar[][] table, dchar[] ca)
@@ -839,10 +839,10 @@
         types.push_back(rt_array(rt_array2(intTy)));
         types.push_back(dstringTy);
         const llvm::FunctionType* fty = llvm::FunctionType::get(intTy, types, false);
-        llvm::PAListPtr palist;
-        palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-        palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setParamAttrs(palist);
+        llvm::AttrListPtr palist;
+        palist = palist.addAttr(1, llvm::Attribute::ByVal);
+        palist = palist.addAttr(2, llvm::Attribute::ByVal);
+        llvm::Function::Create(fty, llvm::GlobalValue::ExternalLinkage, fname, M)->setAttributes(palist);
     }
 
     /////////////////////////////////////////////////////////////////////////////////////
--- a/gen/statements.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/statements.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -705,10 +705,10 @@
 
     CallOrInvoke* call = gIR->CreateCallOrInvoke2(fn, table, llval, "tmp");
 
-    llvm::PAListPtr palist;
-    palist = palist.addAttr(1, llvm::ParamAttr::ByVal);
-    palist = palist.addAttr(2, llvm::ParamAttr::ByVal);
-    call->setParamAttrs(palist);
+    llvm::AttrListPtr palist;
+    palist = palist.addAttr(1, llvm::Attribute::ByVal);
+    palist = palist.addAttr(2, llvm::Attribute::ByVal);
+    call->setAttributes(palist);
 
     return call->get();
 }
@@ -1255,7 +1255,7 @@
     llvm::Function* fn = LLVM_D_GetRuntimeFunction(gIR->module, "_d_switch_error");
 
     // param attrs
-    llvm::PAListPtr palist;
+    llvm::AttrListPtr palist;
     int idx = 1;
 
     std::vector<LLValue*> args;
@@ -1276,7 +1276,7 @@
     DtoStore(c->getOperand(1), ptr);
 
     args.push_back(alloc);
-    palist = palist.addAttr(idx++, llvm::ParamAttr::ByVal);
+    palist = palist.addAttr(idx++, llvm::Attribute::ByVal);
 
     // line param
     c = DtoConstUint(loc.linnum);
@@ -1284,7 +1284,7 @@
 
     // call
     CallOrInvoke* call = gIR->CreateCallOrInvoke(fn, args.begin(), args.end());
-    call->setParamAttrs(palist);
+    call->setAttributes(palist);
 
     gIR->ir->CreateUnreachable();
 }
--- a/gen/tocall.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/tocall.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -104,7 +104,7 @@
 
 //////////////////////////////////////////////////////////////////////////////////////////
 
-void DtoBuildDVarArgList(std::vector<LLValue*>& args, llvm::PAListPtr& palist, TypeFunction* tf, Expressions* arguments, size_t argidx)
+void DtoBuildDVarArgList(std::vector<LLValue*>& args, llvm::AttrListPtr& palist, TypeFunction* tf, Expressions* arguments, size_t argidx)
 {
     Logger::println("doing d-style variadic arguments");
 
@@ -235,7 +235,7 @@
     LLFunctionType::param_iterator argiter = argbegin;
 
     // parameter attributes
-    llvm::PAListPtr palist;
+    llvm::AttrListPtr palist;
 
     // return attrs
     if (tf->retAttrs)
@@ -250,7 +250,7 @@
         LLValue* retvar = DtoAlloca(argiter->get()->getContainedType(0), ".rettmp");
         ++argiter;
         args.push_back(retvar);
-        palist = palist.addAttr(1, llvm::ParamAttr::StructRet);
+        palist = palist.addAttr(1, llvm::Attribute::StructRet);
     }
 
     // then comes a context argument...
@@ -364,26 +364,13 @@
     {
         LLFunction* llfunc = llvm::dyn_cast<LLFunction>(dfnval->val);
         if (llfunc && llfunc->isIntrinsic())
-            palist = llvm::Intrinsic::getParamAttrs((llvm::Intrinsic::ID)llfunc->getIntrinsicID());
+            palist = llvm::Intrinsic::getAttributes((llvm::Intrinsic::ID)llfunc->getIntrinsicID());
         else
             call->setCallingConv(callconv);
     }
     else
         call->setCallingConv(callconv);
-    call->setParamAttrs(palist);
+    call->setAttributes(palist);
 
     return new DImValue(resulttype, retllval);
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
--- a/gen/tollvm.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/gen/tollvm.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -44,14 +44,14 @@
         {
         case Tint8:
         case Tint16:
-            return llvm::ParamAttr::SExt;
+            return llvm::Attribute::SExt;
 
         case Tuns8:
         case Tuns16:
-            return llvm::ParamAttr::ZExt;
+            return llvm::Attribute::ZExt;
         }
     }
-    return llvm::ParamAttr::None;
+    return llvm::Attribute::None;
 }
 
 const LLType* DtoType(Type* t)
--- a/ir/irfunction.cpp	Wed Oct 01 21:14:20 2008 +0200
+++ b/ir/irfunction.cpp	Wed Oct 01 23:17:36 2008 +0200
@@ -66,14 +66,12 @@
 
 void IrFunction::setNeverInline()
 {
-    llvm::FunctionNotes cur = func->getNotes();
-    assert(!(cur & llvm::FN_NOTE_AlwaysInline) && "function can't be never- and always-inline at the same time");
-    func->setNotes(cur | llvm::FN_NOTE_NoInline);
+    assert(!func->hasFnAttr(llvm::Attribute::AlwaysInline) && "function can't be never- and always-inline at the same time");
+    func->addFnAttr(llvm::Attribute::NoInline);
 }
 
 void IrFunction::setAlwaysInline()
 {
-    llvm::FunctionNotes cur = func->getNotes();
-    assert(!(cur & llvm::FN_NOTE_NoInline) && "function can't be never- and always-inline at the same time");
-    func->setNotes(cur | llvm::FN_NOTE_AlwaysInline);
+    assert(!func->hasFnAttr(llvm::Attribute::NoInline) && "function can't be never- and always-inline at the same time");
+    func->addFnAttr(llvm::Attribute::AlwaysInline);
 }