Mercurial > projects > ldc
diff gen/arrays.cpp @ 1571:8d086d552909
IntegerType is now contextifed.
Requires llvm >= 78969. resistor says this will be the last context API change :)
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Fri, 14 Aug 2009 00:39:18 +0200 |
parents | 755abafbf25d |
children | 5c0cebff9be8 |
line wrap: on
line diff
--- a/gen/arrays.cpp Thu Aug 06 16:02:14 2009 +0200 +++ b/gen/arrays.cpp Fri Aug 14 00:39:18 2009 +0200 @@ -24,8 +24,8 @@ { assert(arrayTy->nextOf()); const LLType* elemty = DtoType(arrayTy->nextOf()); - if (elemty == LLType::VoidTy) - elemty = LLType::Int8Ty; + if (elemty == LLType::getVoidTy(gIR->context())) + elemty = LLType::getInt8Ty(gIR->context()); return LLStructType::get(gIR->context(), DtoSize_t(), getPtrToType(elemty), NULL); } @@ -44,8 +44,8 @@ Type* tnext = tsa->nextOf(); const LLType* elemty = DtoType(tnext); - if (elemty == LLType::VoidTy) - elemty = LLType::Int8Ty; + if (elemty == LLType::getVoidTy(gIR->context())) + elemty = LLType::getInt8Ty(gIR->context()); return LLArrayType::get(elemty, tsa->dim->toUInteger()); } @@ -112,7 +112,7 @@ switch (arrayelemty->ty) { case Tbool: - val = gIR->ir->CreateZExt(val, LLType::Int8Ty, ".bool"); + val = gIR->ir->CreateZExt(val, LLType::getInt8Ty(gIR->context()), ".bool"); // fall through case Tvoid: @@ -713,10 +713,10 @@ LLSmallVector<LLValue*, 3> args; // get values, reinterpret cast to void[] - lmem = DtoAggrPaint(l->getRVal(), DtoArrayType(LLType::Int8Ty)); + lmem = DtoAggrPaint(l->getRVal(), DtoArrayType(LLType::getInt8Ty(gIR->context()))); args.push_back(lmem); - rmem = DtoAggrPaint(r->getRVal(), DtoArrayType(LLType::Int8Ty)); + rmem = DtoAggrPaint(r->getRVal(), DtoArrayType(LLType::getInt8Ty(gIR->context()))); args.push_back(rmem); // pass array typeinfo ? @@ -1040,8 +1040,8 @@ // runtime check llvm::BasicBlock* oldend = gIR->scopeend(); - llvm::BasicBlock* failbb = llvm::BasicBlock::Create("arrayboundscheckfail", gIR->topfunc(), oldend); - llvm::BasicBlock* okbb = llvm::BasicBlock::Create("arrayboundsok", gIR->topfunc(), oldend); + llvm::BasicBlock* failbb = llvm::BasicBlock::Create(gIR->context(), "arrayboundscheckfail", gIR->topfunc(), oldend); + llvm::BasicBlock* okbb = llvm::BasicBlock::Create(gIR->context(), "arrayboundsok", gIR->topfunc(), oldend); llvm::ICmpInst::Predicate cmpop = isslice ? llvm::ICmpInst::ICMP_ULE : llvm::ICmpInst::ICMP_ULT; LLValue* cond = gIR->ir->CreateICmp(cmpop, index->getRVal(), DtoArrayLen(arr), "boundscheck");