diff gen/toir.cpp @ 365:bfb9d28f045a trunk

[svn r386] Fixed broken DtoBoolean. Some code cleanup.
author lindquist
date Tue, 15 Jul 2008 00:17:03 +0200
parents 8014dbd24605
children 519adb3128b1
line wrap: on
line diff
--- a/gen/toir.cpp	Mon Jul 14 22:48:03 2008 +0200
+++ b/gen/toir.cpp	Tue Jul 15 00:17:03 2008 +0200
@@ -1610,7 +1610,7 @@
             LLValue* b = r->getRVal();
             Logger::cout() << "type 1: " << *a << '\n';
             Logger::cout() << "type 2: " << *b << '\n';
-            eval = new llvm::ICmpInst(cmpop, a, b, "tmp", p->scopebb());
+            eval = p->ir->CreateICmp(cmpop, a, b, "tmp");
         }
     }
     else if (t->isfloating())
@@ -1646,7 +1646,7 @@
         default:
             assert(0);
         }
-        eval = new llvm::FCmpInst(cmpop, l->getRVal(), r->getRVal(), "tmp", p->scopebb());
+        eval = p->ir->CreateFCmp(cmpop, l->getRVal(), r->getRVal(), "tmp");
     }
     else if (t->ty == Tsarray || t->ty == Tarray)
     {
@@ -1697,7 +1697,7 @@
         if (rv->getType() != lv->getType()) {
             rv = DtoBitCast(rv, lv->getType());
         }
-        eval = new llvm::ICmpInst(cmpop, lv, rv, "tmp", p->scopebb());
+        eval = p->ir->CreateICmp(cmpop, lv, rv, "tmp");
     }
     else if (t->iscomplex())
     {
@@ -1719,7 +1719,7 @@
         default:
             assert(0);
         }
-        eval = new llvm::FCmpInst(cmpop, l->getRVal(), r->getRVal(), "tmp", p->scopebb());
+        eval = p->ir->CreateFCmp(cmpop, l->getRVal(), r->getRVal(), "tmp");
     }
     else if (t->ty == Tsarray || t->ty == Tarray)
     {
@@ -1996,7 +1996,7 @@
 
     LLValue* b = DtoBoolean(u);
 
-    LLConstant* zero = llvm::ConstantInt::get(LLType::Int1Ty, 0, true);
+    LLConstant* zero = DtoConstBool(false);
     b = p->ir->CreateICmpEQ(b,zero);
 
     return new DImValue(type, b);
@@ -2262,8 +2262,9 @@
     }
     else if (t1->isfloating())
     {
-        llvm::FCmpInst::Predicate pred = (op == TOKidentity) ? llvm::FCmpInst::FCMP_OEQ : llvm::FCmpInst::FCMP_ONE;
-        eval = new llvm::FCmpInst(pred, l, r, "tmp", p->scopebb());
+        eval = (op == TOKidentity)
+        ?   p->ir->CreateFCmpOEQ(l,r,"tmp")
+        :   p->ir->CreateFCmpONE(l,r,"tmp");
     }
     else if (t1->ty == Tpointer)
     {
@@ -2273,13 +2274,14 @@
             else
                 r = DtoBitCast(r, l->getType());
         }
-        llvm::ICmpInst::Predicate pred = (op == TOKidentity) ? llvm::ICmpInst::ICMP_EQ : llvm::ICmpInst::ICMP_NE;
-        eval = new llvm::ICmpInst(pred, l, r, "tmp", p->scopebb());
+        eval = (op == TOKidentity)
+        ?   p->ir->CreateICmpEQ(l,r,"tmp")
+        :   p->ir->CreateICmpNE(l,r,"tmp");
     }
     else {
-        llvm::ICmpInst::Predicate pred = (op == TOKidentity) ? llvm::ICmpInst::ICMP_EQ : llvm::ICmpInst::ICMP_NE;
-        //Logger::cout() << "l = " << *l << " r = " << *r << '\n';
-        eval = new llvm::ICmpInst(pred, l, r, "tmp", p->scopebb());
+        eval = (op == TOKidentity)
+        ?   p->ir->CreateICmpEQ(l,r,"tmp")
+        :   p->ir->CreateICmpNE(l,r,"tmp");
     }
     return new DImValue(type, eval);
 }