Mercurial > projects > ldc
diff gen/statements.cpp @ 173:db9890b3fb64 trunk
[svn r189] moving IR data back into DMD frontend nodes
author | ChristianK |
---|---|
date | Tue, 06 May 2008 07:56:03 +0200 |
parents | a8cd9bc1021a |
children | c44e6a711885 |
line wrap: on
line diff
--- a/gen/statements.cpp Tue May 06 07:26:27 2008 +0200 +++ b/gen/statements.cpp Tue May 06 07:56:03 2008 +0200 @@ -77,11 +77,11 @@ if (p->topfunc()->getReturnType() == llvm::Type::VoidTy) { IrFunction* f = p->func(); assert(f->type->llvmRetInPtr); - assert(gIR->irDsymbol[f->decl].irFunc->retArg); + assert(f->decl->ir.irFunc->retArg); if (global.params.symdebug) DtoDwarfStopPoint(loc.linnum); - DValue* rvar = new DVarValue(f->type->next, gIR->irDsymbol[f->decl].irFunc->retArg, true); + DValue* rvar = new DVarValue(f->type->next, f->decl->ir.irFunc->retArg, true); p->exps.push_back(IRExp(NULL,exp,rvar)); DValue* e = exp->toElem(p); @@ -156,8 +156,8 @@ if (match) { llvm::Value* allocainst = new llvm::AllocaInst(DtoType(match->type), "._tmp_if_var", p->topallocapoint()); - gIR->irDsymbol[match].irLocal = new IrLocal(match); - gIR->irDsymbol[match].irLocal->value = allocainst; + match->ir.irLocal = new IrLocal(match); + match->ir.irLocal->value = allocainst; } DValue* cond_e = condition->toElem(p); @@ -808,9 +808,9 @@ if (key) { //key->llvmValue = keyvar; - assert(!gIR->irDsymbol[key].irLocal); - gIR->irDsymbol[key].irLocal = new IrLocal(key); - gIR->irDsymbol[key].irLocal->value = keyvar; + assert(!key->ir.irLocal); + key->ir.irLocal = new IrLocal(key); + key->ir.irLocal->value = keyvar; } llvm::Value* zerokey = llvm::ConstantInt::get(keytype,0,false); @@ -819,8 +819,8 @@ llvm::Value* valvar = NULL; if (!value->isRef() && !value->isOut()) valvar = new llvm::AllocaInst(valtype, "foreachval", p->topallocapoint()); - assert(!gIR->irDsymbol[value].irLocal); - gIR->irDsymbol[value].irLocal = new IrLocal(value); + assert(!value->ir.irLocal); + value->ir.irLocal = new IrLocal(value); // what to iterate DValue* aggrval = aggr->toElem(p); @@ -916,15 +916,15 @@ llvm::Constant* zero = llvm::ConstantInt::get(keytype,0,false); llvm::Value* loadedKey = p->ir->CreateLoad(keyvar,"tmp"); if (aggrtype->ty == Tsarray) - gIR->irDsymbol[value].irLocal->value = DtoGEP(val,zero,loadedKey,"tmp"); + value->ir.irLocal->value = DtoGEP(val,zero,loadedKey,"tmp"); else if (aggrtype->ty == Tarray) - gIR->irDsymbol[value].irLocal->value = new llvm::GetElementPtrInst(val,loadedKey,"tmp",p->scopebb()); + value->ir.irLocal->value = new llvm::GetElementPtrInst(val,loadedKey,"tmp",p->scopebb()); if (!value->isRef() && !value->isOut()) { DValue* dst = new DVarValue(value->type, valvar, true); - DValue* src = new DVarValue(value->type, gIR->irDsymbol[value].irLocal->value, true); + DValue* src = new DVarValue(value->type, value->ir.irLocal->value, true); DtoAssign(dst, src); - gIR->irDsymbol[value].irLocal->value = valvar; + value->ir.irLocal->value = valvar; } // emit body @@ -1053,7 +1053,7 @@ assert(body); DValue* e = exp->toElem(p); - gIR->irDsymbol[wthis].irLocal->value = e->getRVal(); + wthis->ir.irLocal->value = e->getRVal(); delete e; body->toIR(p);