diff gen/toir.cpp @ 1545:7fcb72d518f6

More factory methods moved to LLVMContext
author Benjamin Kramer <benny.kra@gmail.com>
date Wed, 15 Jul 2009 18:09:41 +0200
parents 61f12f4651b5
children a326f145a57b
line wrap: on
line diff
--- a/gen/toir.cpp	Fri Jul 17 19:23:20 2009 +0200
+++ b/gen/toir.cpp	Wed Jul 15 18:09:41 2009 +0200
@@ -288,11 +288,11 @@
     const LLType* t = DtoType(type);
     if (isaPointer(t)) {
         Logger::println("pointer");
-        LLConstant* i = llvm::ConstantInt::get(DtoSize_t(),(uint64_t)value,false);
+        LLConstant* i = gIR->context().getConstantInt(DtoSize_t(),(uint64_t)value,false);
         return llvm::ConstantExpr::getIntToPtr(i, t);
     }
     assert(llvm::isa<LLIntegerType>(t));
-    LLConstant* c = llvm::ConstantInt::get(t,(uint64_t)value,!type->isunsigned());
+    LLConstant* c = gIR->context().getConstantInt(t,(uint64_t)value,!type->isunsigned());
     assert(c);
     if (Logger::enabled())
         Logger::cout() << "value = " << *c << '\n';
@@ -402,16 +402,16 @@
     if (cty->size() == 1) {
         uint8_t* str = (uint8_t*)string;
         std::string cont((char*)str, len);
-        _init = llvm::ConstantArray::get(cont,true);
+        _init = gIR->context().getConstantArray(cont,true);
     }
     else if (cty->size() == 2) {
         uint16_t* str = (uint16_t*)string;
         std::vector<LLConstant*> vals;
         vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
-            vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
+            vals.push_back(gIR->context().getConstantInt(ct, str[i], false));;
         }
-        vals.push_back(llvm::ConstantInt::get(ct, 0, false));
+        vals.push_back(gIR->context().getConstantInt(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
     else if (cty->size() == 4) {
@@ -419,9 +419,9 @@
         std::vector<LLConstant*> vals;
         vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
-            vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
+            vals.push_back(gIR->context().getConstantInt(ct, str[i], false));;
         }
-        vals.push_back(llvm::ConstantInt::get(ct, 0, false));
+        vals.push_back(gIR->context().getConstantInt(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
     else
@@ -432,12 +432,12 @@
         Logger::cout() << "type: " << *at << "\ninit: " << *_init << '\n';
     llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,at,true,_linkage,_init,".str");
 
-    llvm::ConstantInt* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false);
+    llvm::ConstantInt* zero = gIR->context().getConstantInt(LLType::Int32Ty, 0, false);
     LLConstant* idxs[2] = { zero, zero };
     LLConstant* arrptr = llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2);
 
     if (dtype->ty == Tarray) {
-        LLConstant* clen = llvm::ConstantInt::get(DtoSize_t(),len,false);
+        LLConstant* clen = gIR->context().getConstantInt(DtoSize_t(),len,false);
         return new DImValue(type, DtoConstSlice(clen, arrptr));
     }
     else if (dtype->ty == Tsarray) {
@@ -473,17 +473,17 @@
     if (cty->size() == 1) {
         uint8_t* str = (uint8_t*)string;
         std::string cont((char*)str, len);
-        _init = llvm::ConstantArray::get(cont, nullterm);
+        _init = gIR->context().getConstantArray(cont, nullterm);
     }
     else if (cty->size() == 2) {
         uint16_t* str = (uint16_t*)string;
         std::vector<LLConstant*> vals;
         vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
-            vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
+            vals.push_back(gIR->context().getConstantInt(ct, str[i], false));;
         }
         if (nullterm)
-            vals.push_back(llvm::ConstantInt::get(ct, 0, false));
+            vals.push_back(gIR->context().getConstantInt(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
     else if (cty->size() == 4) {
@@ -491,10 +491,10 @@
         std::vector<LLConstant*> vals;
         vals.reserve(len+1);
         for(size_t i=0; i<len; ++i) {
-            vals.push_back(llvm::ConstantInt::get(ct, str[i], false));;
+            vals.push_back(gIR->context().getConstantInt(ct, str[i], false));;
         }
         if (nullterm)
-            vals.push_back(llvm::ConstantInt::get(ct, 0, false));
+            vals.push_back(gIR->context().getConstantInt(ct, 0, false));
         _init = llvm::ConstantArray::get(at,vals);
     }
     else
@@ -508,7 +508,7 @@
     llvm::GlobalValue::LinkageTypes _linkage = llvm::GlobalValue::InternalLinkage;
     llvm::GlobalVariable* gvar = new llvm::GlobalVariable(*gIR->module,_init->getType(),true,_linkage,_init,".str");
 
-    llvm::ConstantInt* zero = llvm::ConstantInt::get(LLType::Int32Ty, 0, false);
+    llvm::ConstantInt* zero = gIR->context().getConstantInt(LLType::Int32Ty, 0, false);
     LLConstant* idxs[2] = { zero, zero };
     LLConstant* arrptr = llvm::ConstantExpr::getGetElementPtr(gvar,idxs,2);
 
@@ -516,7 +516,7 @@
         return arrptr;
     }
     else if (t->ty == Tarray) {
-        LLConstant* clen = llvm::ConstantInt::get(DtoSize_t(),len,false);
+        LLConstant* clen = gIR->context().getConstantInt(DtoSize_t(),len,false);
         return DtoConstSlice(clen, arrptr);
     }
 
@@ -1525,7 +1525,7 @@
     if (e1type->isintegral())
     {
         assert(e2type->isintegral());
-        LLValue* one = llvm::ConstantInt::get(val->getType(), 1, !e2type->isunsigned());
+        LLValue* one = gIR->context().getConstantInt(val->getType(), 1, !e2type->isunsigned());
         if (op == TOKplusplus) {
             post = llvm::BinaryOperator::CreateAdd(val,one,"tmp",p->scopebb());
         }
@@ -1536,8 +1536,8 @@
     else if (e1type->ty == Tpointer)
     {
         assert(e2type->isintegral());
-        LLConstant* minusone = llvm::ConstantInt::get(DtoSize_t(),(uint64_t)-1,true);
-        LLConstant* plusone = llvm::ConstantInt::get(DtoSize_t(),(uint64_t)1,false);
+        LLConstant* minusone = gIR->context().getConstantInt(DtoSize_t(),(uint64_t)-1,true);
+        LLConstant* plusone = gIR->context().getConstantInt(DtoSize_t(),(uint64_t)1,false);
         LLConstant* whichone = (op == TOKplusplus) ? plusone : minusone;
         post = llvm::GetElementPtrInst::Create(val, whichone, "tmp", p->scopebb());
     }
@@ -2146,7 +2146,7 @@
     DValue* u = e1->toElem(p);
 
     LLValue* value = u->getRVal();
-    LLValue* minusone = llvm::ConstantInt::get(value->getType(), (uint64_t)-1, true);
+    LLValue* minusone = gIR->context().getConstantInt(value->getType(), (uint64_t)-1, true);
     value = llvm::BinaryOperator::Create(llvm::Instruction::Xor, value, minusone, "tmp", p->scopebb());
 
     return new DImValue(type, value);
@@ -2501,7 +2501,7 @@
         constvals[i] = llvm::cast<LLConstant>(values[i]);
 
     // return constant struct
-    return LLConstantStruct::get(constvals, sd->ir.irStruct->packed);
+    return gIR->context().getConstantStruct(constvals, sd->ir.irStruct->packed);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////