[llvm-commits] [llvm] r71644 - in /llvm/trunk: lib/Transforms/Scalar/SimplifyLibCalls.cpp test/Transforms/SimplifyLibCalls/FFS.ll

Chris Lattner sabre at nondot.org
Tue May 12 23:26:11 PDT 2009


Author: lattner
Date: Wed May 13 01:26:11 2009
New Revision: 71644

URL: http://llvm.org/viewvc/llvm-project?rev=71644&view=rev
Log:
Fix PR4206 - crash in simplify lib calls

Modified:
    llvm/trunk/lib/Transforms/Scalar/SimplifyLibCalls.cpp
    llvm/trunk/test/Transforms/SimplifyLibCalls/FFS.ll

Modified: llvm/trunk/lib/Transforms/Scalar/SimplifyLibCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimplifyLibCalls.cpp?rev=71644&r1=71643&r2=71644&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/SimplifyLibCalls.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/SimplifyLibCalls.cpp Wed May 13 01:26:11 2009
@@ -1116,7 +1116,7 @@
     Value *F = Intrinsic::getDeclaration(Callee->getParent(),
                                          Intrinsic::cttz, &ArgType, 1);
     Value *V = B.CreateCall(F, Op, "cttz");
-    V = B.CreateAdd(V, ConstantInt::get(Type::Int32Ty, 1), "tmp");
+    V = B.CreateAdd(V, ConstantInt::get(V->getType(), 1), "tmp");
     V = B.CreateIntCast(V, Type::Int32Ty, false, "tmp");
     
     Value *Cond = B.CreateICmpNE(Op, Constant::getNullValue(ArgType), "tmp");

Modified: llvm/trunk/test/Transforms/SimplifyLibCalls/FFS.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyLibCalls/FFS.ll?rev=71644&r1=71643&r2=71644&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/SimplifyLibCalls/FFS.ll (original)
+++ llvm/trunk/test/Transforms/SimplifyLibCalls/FFS.ll Wed May 13 01:26:11 2009
@@ -28,3 +28,9 @@
 	ret i32 %rslt5
 }
 
+
+; PR4206
+define i32 @a(i64) nounwind {
+        %2 = call i32 @ffsll(i64 %0)            ; <i32> [#uses=1]
+        ret i32 %2
+}





More information about the llvm-commits mailing list