LLVM 3.3: class Attributes is renamed to Attribute.

Some other renamings took place in "llvm/Attributes.h" but only this causes
compile errors in LDC.
Also uses new location of "llvm/IRBuilder.h".
This commit is contained in:
kai
2012-12-21 17:32:17 +01:00
parent 9d9f827efb
commit 5f37ae30cf
11 changed files with 170 additions and 38 deletions

View File

@@ -124,7 +124,9 @@ struct X86TargetABI : TargetABI
if (fty.arg_this)
{
Logger::println("Putting 'this' in register");
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
fty.arg_this->attrs = llvm::Attribute::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attribute::InReg));
#elif LDC_LLVM_VER == 302
fty.arg_this->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
#else
fty.arg_this->attrs = llvm::Attribute::InReg;
@@ -133,7 +135,9 @@ struct X86TargetABI : TargetABI
else if (fty.arg_nest)
{
Logger::println("Putting context ptr in register");
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
fty.arg_nest->attrs = llvm::Attribute::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attribute::InReg));
#elif LDC_LLVM_VER == 302
fty.arg_nest->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
#else
fty.arg_nest->attrs = llvm::Attribute::InReg;
@@ -144,7 +148,10 @@ struct X86TargetABI : TargetABI
Logger::println("Putting sret ptr in register");
// sret and inreg are incompatible, but the ABI requires the
// sret parameter to be in EAX in this situation...
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
sret->attrs = llvm::Attribute::get(gIR->context(), llvm::AttrBuilder(sret->attrs).addAttribute(llvm::Attribute::InReg)
.removeAttribute(llvm::Attribute::StructRet));
#elif LDC_LLVM_VER == 302
sret->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(sret->attrs).addAttribute(llvm::Attributes::InReg)
.removeAttribute(llvm::Attributes::StructRet));
#else
@@ -167,7 +174,9 @@ struct X86TargetABI : TargetABI
if (last->byref && !last->isByVal())
{
Logger::println("Putting last (byref) parameter in register");
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
last->attrs = llvm::Attribute::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attribute::InReg));
#elif LDC_LLVM_VER == 302
last->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attributes::InReg));
#else
last->attrs |= llvm::Attribute::InReg;
@@ -182,13 +191,17 @@ struct X86TargetABI : TargetABI
last->ltype = compositeToInt.type(last->type, last->ltype);
last->byref = false;
// erase previous attributes
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
last->attrs = llvm::Attribute();
#elif LDC_LLVM_VER == 302
last->attrs = llvm::Attributes();
#else
last->attrs = llvm::Attribute::None;
#endif
}
#if LDC_LLVM_VER >= 302
#if LDC_LLVM_VER >= 303
last->attrs = llvm::Attribute::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attribute::InReg));
#elif LDC_LLVM_VER == 302
last->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attributes::InReg));
#else
last->attrs |= llvm::Attribute::InReg;