mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
More changes to the Attributes class in LLVM 3.2.
This commit is contained in:
@@ -527,7 +527,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
{
|
||||
Logger::println("Putting 'this' in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_this->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::InReg));
|
||||
fty.arg_this->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
fty.arg_this->attrs = llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -537,7 +537,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
{
|
||||
Logger::println("Putting context ptr in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_nest->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::InReg));
|
||||
fty.arg_nest->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
fty.arg_nest->attrs = llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -549,8 +549,8 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
// sret and inreg are incompatible, but the ABI requires the
|
||||
// sret parameter to be in RDI in this situation...
|
||||
#if LDC_LLVM_VER >= 302
|
||||
sret->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(sret->attrs).addAttribute(llvm::Attributes::InReg)
|
||||
.removeAttribute(llvm::Attributes::StructRet));
|
||||
sret->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(sret->attrs).addAttribute(llvm::Attributes::InReg)
|
||||
.removeAttribute(llvm::Attributes::StructRet));
|
||||
#else
|
||||
sret->attrs = (sret->attrs | llvm::Attribute::InReg)
|
||||
& ~llvm::Attribute::StructRet;
|
||||
@@ -572,7 +572,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
if (xmmcount > 0) {
|
||||
Logger::println("Putting float parameter in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
arg.attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -587,7 +587,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
{
|
||||
Logger::println("Putting byref parameter in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
arg.attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -597,7 +597,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
{
|
||||
Logger::println("Putting pointer parameter in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
arg.attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -607,7 +607,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
{
|
||||
Logger::println("Putting integral parameter in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(arg.attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
arg.attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -621,7 +621,7 @@ void X86_64TargetABI::rewriteFunctionType(TypeFunction* tf) {
|
||||
arg.ltype = compositeToInt.type(arg.type, arg.ltype);
|
||||
arg.byref = false;
|
||||
#if LDC_LLVM_VER >= 302
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::InReg));
|
||||
arg.attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
arg.attrs = llvm::Attribute::InReg;
|
||||
#endif
|
||||
|
||||
@@ -116,7 +116,7 @@ struct X86TargetABI : TargetABI
|
||||
{
|
||||
Logger::println("Putting 'this' in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_this->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::InReg));
|
||||
fty.arg_this->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
fty.arg_this->attrs = llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -125,7 +125,7 @@ struct X86TargetABI : TargetABI
|
||||
{
|
||||
Logger::println("Putting context ptr in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_nest->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::InReg));
|
||||
fty.arg_nest->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
fty.arg_nest->attrs = llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -136,8 +136,8 @@ struct X86TargetABI : TargetABI
|
||||
// sret and inreg are incompatible, but the ABI requires the
|
||||
// sret parameter to be in EAX in this situation...
|
||||
#if LDC_LLVM_VER >= 302
|
||||
sret->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(sret->attrs).addAttribute(llvm::Attributes::InReg)
|
||||
.removeAttribute(llvm::Attributes::StructRet));
|
||||
sret->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(sret->attrs).addAttribute(llvm::Attributes::InReg)
|
||||
.removeAttribute(llvm::Attributes::StructRet));
|
||||
#else
|
||||
sret->attrs = (sret->attrs | llvm::Attribute::InReg)
|
||||
& ~llvm::Attribute::StructRet;
|
||||
@@ -159,7 +159,7 @@ struct X86TargetABI : TargetABI
|
||||
{
|
||||
Logger::println("Putting last (byref) parameter in register");
|
||||
#if LDC_LLVM_VER >= 302
|
||||
last->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(last->attrs).addAttribute(llvm::Attributes::InReg));
|
||||
last->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
last->attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
@@ -180,7 +180,7 @@ struct X86TargetABI : TargetABI
|
||||
#endif
|
||||
}
|
||||
#if LDC_LLVM_VER >= 302
|
||||
last->attrs = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(last->attrs).addAttribute(llvm::Attributes::InReg));
|
||||
last->attrs = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(last->attrs).addAttribute(llvm::Attributes::InReg));
|
||||
#else
|
||||
last->attrs |= llvm::Attribute::InReg;
|
||||
#endif
|
||||
|
||||
@@ -70,7 +70,7 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
|
||||
{
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_sret = new IrFuncTyArg(rt, true, llvm::Attributes::get(gIR->context(),
|
||||
llvm::Attributes::Builder().addAttribute(llvm::Attributes::StructRet)
|
||||
llvm::AttrBuilder().addAttribute(llvm::Attributes::StructRet)
|
||||
.addAttribute(llvm::Attributes::NoAlias)
|
||||
#if !STRUCTTHISREF
|
||||
// In D2 where 'this' in structs is a reference, nocapture
|
||||
@@ -139,8 +139,8 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
|
||||
// _argptr
|
||||
#if LDC_LLVM_VER >= 302
|
||||
fty.arg_argptr = new IrFuncTyArg(Type::tvoid->pointerTo(), false,
|
||||
llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoAlias)
|
||||
.addAttribute(llvm::Attributes::NoCapture)));
|
||||
llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoAlias)
|
||||
.addAttribute(llvm::Attributes::NoCapture)));
|
||||
#else
|
||||
fty.arg_argptr = new IrFuncTyArg(Type::tvoid->pointerTo(), false, NoAlias | NoCapture);
|
||||
#endif
|
||||
@@ -195,7 +195,7 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
|
||||
else if (abi->passByVal(byref ? argtype->pointerTo() : argtype))
|
||||
{
|
||||
#if LDC_LLVM_VER >= 302
|
||||
if (!byref) a = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(a).addAttribute(llvm::Attributes::ByVal));
|
||||
if (!byref) a = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(a).addAttribute(llvm::Attributes::ByVal));
|
||||
#else
|
||||
if (!byref) a |= llvm::Attribute::ByVal;
|
||||
#endif
|
||||
@@ -206,7 +206,7 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
|
||||
else if (!byref)
|
||||
{
|
||||
#if LDC_LLVM_VER >= 302
|
||||
a = llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder(a).addAttributes(DtoShouldExtend(argtype)));
|
||||
a = llvm::Attributes::get(gIR->context(), llvm::AttrBuilder(a).addAttributes(DtoShouldExtend(argtype)));
|
||||
#else
|
||||
a |= DtoShouldExtend(argtype);
|
||||
#endif
|
||||
|
||||
@@ -223,35 +223,35 @@ static void LLVM_D_BuildRuntimeModule()
|
||||
llvm::AttrListPtr
|
||||
NoAttrs,
|
||||
Attr_NoAlias
|
||||
= NoAttrs.addAttr(gIR->context(), 0, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoAlias))),
|
||||
= NoAttrs.addAttr(gIR->context(), 0, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoAlias))),
|
||||
Attr_NoUnwind
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
Attr_ReadOnly
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::ReadOnly))),
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::ReadOnly))),
|
||||
Attr_ReadOnly_NoUnwind
|
||||
= Attr_ReadOnly.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
= Attr_ReadOnly.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
Attr_ReadOnly_1_NoCapture
|
||||
= Attr_ReadOnly.addAttr(gIR->context(), 1, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_ReadOnly.addAttr(gIR->context(), 1, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_ReadOnly_1_3_NoCapture
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_ReadOnly_1_4_NoCapture
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), 4, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), 4, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_ReadOnly_NoUnwind_1_NoCapture
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
= Attr_ReadOnly_1_NoCapture.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoUnwind))),
|
||||
Attr_ReadNone
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::ReadNone))),
|
||||
= NoAttrs.addAttr(gIR->context(), ~0U, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::ReadNone))),
|
||||
Attr_1_NoCapture
|
||||
= NoAttrs.addAttr(gIR->context(), 1, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= NoAttrs.addAttr(gIR->context(), 1, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_NoAlias_1_NoCapture
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 0, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoAlias))),
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 0, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoAlias))),
|
||||
Attr_NoAlias_3_NoCapture
|
||||
= Attr_NoAlias.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_NoAlias.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_1_2_NoCapture
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 2, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 2, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_1_3_NoCapture
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 3, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture))),
|
||||
Attr_1_4_NoCapture
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 4, llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::NoCapture)));
|
||||
= Attr_1_NoCapture.addAttr(gIR->context(), 4, llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::NoCapture)));
|
||||
#else
|
||||
llvm::AttrListPtr
|
||||
NoAttrs,
|
||||
|
||||
@@ -44,7 +44,7 @@ llvm::Attributes DtoShouldExtend(Type* type)
|
||||
case Tint8:
|
||||
case Tint16:
|
||||
#if LDC_LLVM_VER >= 302
|
||||
return llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::SExt));
|
||||
return llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::SExt));
|
||||
#else
|
||||
return llvm::Attribute::SExt;
|
||||
#endif
|
||||
@@ -52,7 +52,7 @@ llvm::Attributes DtoShouldExtend(Type* type)
|
||||
case Tuns8:
|
||||
case Tuns16:
|
||||
#if LDC_LLVM_VER >= 302
|
||||
return llvm::Attributes::get(gIR->context(), llvm::Attributes::Builder().addAttribute(llvm::Attributes::ZExt));
|
||||
return llvm::Attributes::get(gIR->context(), llvm::AttrBuilder().addAttribute(llvm::Attributes::ZExt));
|
||||
#else
|
||||
return llvm::Attribute::ZExt;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user