[llvm-commits] [dragonegg] r125278 - /dragonegg/trunk/llvm-convert.cpp

Duncan Sands baldrick at free.fr
Thu Feb 10 02:37:33 PST 2011


Author: baldrick
Date: Thu Feb 10 04:37:32 2011
New Revision: 125278

URL: http://llvm.org/viewvc/llvm-project?rev=125278&view=rev
Log:
Cleanup NUW/NSW handling.

Modified:
    dragonegg/trunk/llvm-convert.cpp

Modified: dragonegg/trunk/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/llvm-convert.cpp?rev=125278&r1=125277&r2=125278&view=diff
==============================================================================
--- dragonegg/trunk/llvm-convert.cpp (original)
+++ dragonegg/trunk/llvm-convert.cpp Thu Feb 10 04:37:32 2011
@@ -1349,11 +1349,7 @@
 Value *TreeToLLVM::CreateAnyAdd(Value *LHS, Value *RHS, tree_node *type) {
   if (FLOAT_TYPE_P(type))
     return Builder.CreateFAdd(LHS, RHS);
-  if (TYPE_OVERFLOW_WRAPS(type))
-    return Builder.CreateAdd(LHS, RHS);
-  if (TYPE_UNSIGNED(type))
-    return Builder.CreateNUWAdd(LHS, RHS);
-  return Builder.CreateNSWAdd(LHS, RHS);
+  return Builder.CreateAdd(LHS, RHS, "", hasNUW(type), hasNSW(type));
 }
 
 /// CreateAnyMul - Multiply two LLVM scalar values with the given GCC type.
@@ -1361,11 +1357,7 @@
 Value *TreeToLLVM::CreateAnyMul(Value *LHS, Value *RHS, tree_node *type) {
   if (FLOAT_TYPE_P(type))
     return Builder.CreateFMul(LHS, RHS);
-  if (TYPE_OVERFLOW_WRAPS(type))
-    return Builder.CreateMul(LHS, RHS);
-  if (TYPE_UNSIGNED(type))
-    return Builder.CreateNUWMul(LHS, RHS);
-  return Builder.CreateNSWMul(LHS, RHS);
+  return Builder.CreateMul(LHS, RHS, "", hasNUW(type), hasNSW(type));
 }
 
 /// CreateAnyNeg - Negate an LLVM scalar value with the given GCC type.  Does
@@ -1373,11 +1365,7 @@
 Value *TreeToLLVM::CreateAnyNeg(Value *V, tree_node *type) {
   if (FLOAT_TYPE_P(type))
     return Builder.CreateFNeg(V);
-  if (TYPE_OVERFLOW_WRAPS(type))
-    return Builder.CreateNeg(V);
-  if (TYPE_UNSIGNED(type))
-    return Builder.CreateNUWNeg(V);
-  return Builder.CreateNSWNeg(V);
+  return Builder.CreateNeg(V, "", hasNUW(type), hasNSW(type));
 }
 
 /// CreateAnySub - Subtract two LLVM scalar values with the given GCC type.
@@ -1385,11 +1373,7 @@
 Value *TreeToLLVM::CreateAnySub(Value *LHS, Value *RHS, tree_node *type) {
   if (FLOAT_TYPE_P(type))
     return Builder.CreateFSub(LHS, RHS);
-  if (TYPE_OVERFLOW_WRAPS(type))
-    return Builder.CreateSub(LHS, RHS);
-  if (TYPE_UNSIGNED(type))
-    return Builder.CreateNUWSub(LHS, RHS);
-  return Builder.CreateNSWSub(LHS, RHS);
+  return Builder.CreateSub(LHS, RHS, "", hasNUW(type), hasNSW(type));
 }
 
 /// CreateTemporary - Create a new alloca instruction of the specified type,
@@ -5356,9 +5340,9 @@
   Value *IndexVal = EmitRegister(Index);
   tree LowerBound = array_ref_low_bound(exp);
   if (!integer_zerop(LowerBound))
-    IndexVal = TYPE_UNSIGNED(TREE_TYPE(Index)) ?
-      Builder.CreateSub(IndexVal, EmitRegister(LowerBound)) :
-      Builder.CreateNSWSub(IndexVal, EmitRegister(LowerBound));
+    IndexVal = Builder.CreateSub(IndexVal, EmitRegister(LowerBound), "",
+                                 hasNUW(TREE_TYPE(Index)),
+                                 hasNSW(TREE_TYPE(Index)));
 
   LValue ArrayAddrLV = EmitLV(Array);
   assert(!ArrayAddrLV.isBitfield() && "Arrays cannot be bitfields!");
@@ -8862,8 +8846,8 @@
   tree LowerBound = array_ref_low_bound(exp);
   if (!integer_zerop(LowerBound))
     IndexVal = TheFolder->CreateSub(IndexVal, Convert(LowerBound),
-                                    /*HasNUW*/hasNUW(TREE_TYPE(Index)),
-                                    /*HasNSW*/hasNSW(TREE_TYPE(Index)));
+                                    hasNUW(TREE_TYPE(Index)),
+                                    hasNSW(TREE_TYPE(Index)));
 
   const Type *IntPtrTy = getTargetData().getIntPtrType(Context);
   IndexVal = TheFolder->CreateIntCast(IndexVal, IntPtrTy,





More information about the llvm-commits mailing list