[vmkit-commits] [vmkit] r61607 - /vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Jan 3 05:08:04 PST 2009


Author: geoffray
Date: Sat Jan  3 07:07:59 2009
New Revision: 61607

URL: http://llvm.org/viewvc/llvm-project?rev=61607&view=rev
Log:
Remove null check after calling gcmalloc.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp?rev=61607&r1=61606&r2=61607&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/LowerConstantCalls.cpp Sat Jan  3 07:07:59 2009
@@ -123,9 +123,18 @@
       II++;
 
       if (ICmpInst* Cmp = dyn_cast<ICmpInst>(I)) {
-        if (isVirtual(meth->access)) {
-          if (Cmp->getOperand(1) == module->JavaObjectNullConstant && 
-              Cmp->getOperand(0) == F.arg_begin()) {
+        if (Cmp->getOperand(1) == module->JavaObjectNullConstant) {
+          Value* Arg = Cmp->getOperand(0);
+          if (isVirtual(meth->access) && Arg == F.arg_begin()) {
+            Changed = true;
+            Cmp->replaceAllUsesWith(ConstantInt::getFalse());
+            Cmp->eraseFromParent();
+            break;
+          }
+          
+          CallSite Ca = CallSite::get(Arg);
+          Instruction* CI = Ca.getInstruction();
+          if (CI && Ca.getCalledValue() == module->JavaObjectAllocateFunction) {
             Changed = true;
             Cmp->replaceAllUsesWith(ConstantInt::getFalse());
             Cmp->eraseFromParent();





More information about the vmkit-commits mailing list