Simplify code by using the right type.

Removes some comditional compiling by replacing unsigned with llvm::Attributes.
This commit is contained in:
kai 2012-07-29 18:18:36 +02:00
parent dbb5a34eda
commit b53544b389
7 changed files with 1 additions and 57 deletions

View file

@ -57,11 +57,8 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
else
{
Type* rt = f->next;
#if LDC_LLVM_VER == 300
unsigned a = 0;
#else
llvm::Attributes a = None;
#endif
// sret return
if (abi->returnInArg(f))
{
@ -77,13 +74,8 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
if (f->isref)
t = t->pointerTo();
#endif
#if LDC_LLVM_VER == 300
if (unsigned se = DtoShouldExtend(t))
a = se;
#else
if (llvm::Attributes atts = DtoShouldExtend(t))
a = atts;
#endif
}
#if DMDV2
fty.ret = new IrFuncTyArg(rt, f->isref, a);
@ -157,11 +149,7 @@ llvm::FunctionType* DtoFunctionType(Type* type, Type* thistype, Type* nesttype,
#endif
Type* argtype = arg->type;
#if LDC_LLVM_VER == 300
unsigned a = 0;
#else
llvm::Attributes a = None;
#endif
// handle lazy args
if (arg->storageClass & STClazy)
@ -424,11 +412,7 @@ static void set_param_attrs(TypeFunction* f, llvm::Function* func, FuncDeclarati
// set attrs on the rest of the arguments
size_t n = Parameter::dim(f->parameters);
#if LDC_LLVM_VER == 300
LLSmallVector<unsigned, 8> attrptr(n, 0);
#else
LLSmallVector<llvm::Attributes, 8> attrptr(n, None);
#endif
for (size_t k = 0; k < n; ++k)
{

View file

@ -277,11 +277,7 @@ void DtoBuildDVarArgList(std::vector<LLValue*>& args,
llvm::AttributeWithIndex Attr;
// specify arguments
args.push_back(DtoLoad(typeinfoarrayparam));
#if LDC_LLVM_VER == 300
if (unsigned atts = tf->fty.arg_arguments->attrs) {
#else
if (llvm::Attributes atts = tf->fty.arg_arguments->attrs) {
#endif
Attr.Index = argidx;
Attr.Attrs = atts;
attrs.push_back(Attr);
@ -289,11 +285,7 @@ void DtoBuildDVarArgList(std::vector<LLValue*>& args,
++argidx;
args.push_back(gIR->ir->CreateBitCast(mem, getPtrToType(LLType::getInt8Ty(gIR->context())), "tmp"));
#if LDC_LLVM_VER == 300
if (unsigned atts = tf->fty.arg_argptr->attrs) {
#else
if (llvm::Attributes atts = tf->fty.arg_argptr->attrs) {
#endif
Attr.Index = argidx;
Attr.Attrs = atts;
attrs.push_back(Attr);
@ -505,13 +497,7 @@ DValue* DtoCallFunction(Loc& loc, Type* resulttype, DValue* fnval, Expressions*
}
size_t n = Parameter::dim(tf->parameters);
#if LDC_LLVM_VER == 300
LLSmallVector<unsigned, 10> attrptr(n, 0);
#else
LLSmallVector<llvm::Attributes, 10> attrptr(n, llvm::Attribute::None);
#endif
std::vector<DValue*> argvals;
if (dfnval && dfnval->func->isArrayOp) {
// slightly different approach for array operators

View file

@ -2,11 +2,7 @@
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/FileSystem.h"
#if LDC_LLVM_VER == 300
#include "llvm/Support/PathV2.h"
#else
#include "llvm/Support/Path.h"
#endif
#include "declaration.h"
#include "module.h"

View file

@ -34,11 +34,7 @@ bool DtoIsPassedByRef(Type* type)
return (t == Tstruct || t == Tsarray);
}
#if LDC_LLVM_VER == 300
unsigned DtoShouldExtend(Type* type)
#else
llvm::Attributes DtoShouldExtend(Type* type)
#endif
{
type = type->toBasetype();
if (type->isintegral())

View file

@ -19,11 +19,7 @@ LLType* DtoTypeNotVoid(Type* t);
bool DtoIsPassedByRef(Type* type);
// should argument be zero or sign extended
#if LDC_LLVM_VER == 300
unsigned DtoShouldExtend(Type* type);
#else
llvm::Attributes DtoShouldExtend(Type* type);
#endif
// tuple helper
// takes a arguments list and makes a struct type out of them

View file

@ -13,11 +13,7 @@
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#if LDC_LLVM_VER == 300
IrFuncTyArg::IrFuncTyArg(Type* t, bool bref, unsigned a) : type(t)
#else
IrFuncTyArg::IrFuncTyArg(Type* t, bool bref, llvm::Attributes a) : type(t)
#endif
{
ltype = t != Type::tvoid && bref ? DtoType(t->pointerTo()) : DtoType(t);
attrs = a;

View file

@ -3,9 +3,7 @@
#include "ir/ir.h"
#include "llvm/ADT/SmallVector.h"
#if LDC_LLVM_VER >= 301
#include "llvm/Attributes.h"
#endif
#include <vector>
@ -30,11 +28,7 @@ struct IrFuncTyArg : IrBase
/** These are the final LLVM attributes used for the function.
* Must be valid for the LLVM Type and byref setting */
#if LDC_LLVM_VER == 300
unsigned attrs;
#else
llvm::Attributes attrs;
#endif
/** 'true' if the final LLVM argument is a LLVM reference type.
* Must be true when the D Type is a value type, but the final
@ -57,11 +51,7 @@ struct IrFuncTyArg : IrBase
* @param byref Initial value for the 'byref' field. If true the initial
* LLVM Type will be of DtoType(type->pointerTo()), instead
* of just DtoType(type) */
#if LDC_LLVM_VER == 300
IrFuncTyArg(Type* t, bool byref, unsigned a = 0);
#else
IrFuncTyArg(Type* t, bool byref, llvm::Attributes a = llvm::Attribute::None);
#endif
};
// represents a function type