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

Duncan Sands baldrick at free.fr
Tue Feb 2 04:56:16 PST 2010


Author: baldrick
Date: Tue Feb  2 06:56:16 2010
New Revision: 95087

URL: http://llvm.org/viewvc/llvm-project?rev=95087&view=rev
Log:
Create NUW operations if an unsigned type does not wrap.  This actually never
happens, because TYPE_OVERFLOW_WRAPS only returns false for signed types, but
is more logically correct (and future proof).

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=95087&r1=95086&r2=95087&view=diff

==============================================================================
--- dragonegg/trunk/llvm-convert.cpp (original)
+++ dragonegg/trunk/llvm-convert.cpp Tue Feb  2 06:56:16 2010
@@ -1343,8 +1343,8 @@
     return Builder.CreateFAdd(LHS, RHS);
   if (TYPE_OVERFLOW_WRAPS(type))
     return Builder.CreateAdd(LHS, RHS);
-//  if (TYPE_UNSIGNED(type))
-//    return Builder.CreateNUWAdd(LHS, RHS);
+  if (TYPE_UNSIGNED(type))
+    return Builder.CreateNUWAdd(LHS, RHS);
   return Builder.CreateNSWAdd(LHS, RHS);
 }
 
@@ -1355,8 +1355,8 @@
     return Builder.CreateFMul(LHS, RHS);
   if (TYPE_OVERFLOW_WRAPS(type))
     return Builder.CreateMul(LHS, RHS);
-//  if (TYPE_UNSIGNED(type))
-//    return Builder.CreateNUWMul(LHS, RHS);
+  if (TYPE_UNSIGNED(type))
+    return Builder.CreateNUWMul(LHS, RHS);
   return Builder.CreateNSWMul(LHS, RHS);
 }
 
@@ -1367,8 +1367,8 @@
     return Builder.CreateFSub(LHS, RHS);
   if (TYPE_OVERFLOW_WRAPS(type))
     return Builder.CreateSub(LHS, RHS);
-//  if (TYPE_UNSIGNED(type))
-//    return Builder.CreateNUWSub(LHS, RHS);
+  if (TYPE_UNSIGNED(type))
+    return Builder.CreateNUWSub(LHS, RHS);
   return Builder.CreateNSWSub(LHS, RHS);
 }
 





More information about the llvm-commits mailing list