mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user