[llvm-commits] [poolalloc] r75469 - /poolalloc/trunk/lib/DSA/Local.cpp

Nick Lewycky nicholas at mxc.ca
Mon Jul 13 22:11:31 PDT 2009


John Criswell wrote:
> Author: criswell
> Date: Mon Jul 13 10:48:58 2009
> New Revision: 75469
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=75469&view=rev
> Log:
> Fixed last commit.  I'm not sure if there exists a way to generate a "zero"
> value for any type, but in this case, we know that we're checking integers.
> Therefore, use the isZero() method of ConstantInt to check that all the
> integer operands of a GEP are zeros.

GEP->hasAllZeroIndices() ?

> Modified:
>     poolalloc/trunk/lib/DSA/Local.cpp
> 
> Modified: poolalloc/trunk/lib/DSA/Local.cpp
> URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Local.cpp?rev=75469&r1=75468&r2=75469&view=diff
> 
> ==============================================================================
> --- poolalloc/trunk/lib/DSA/Local.cpp (original)
> +++ poolalloc/trunk/lib/DSA/Local.cpp Mon Jul 13 10:48:58 2009
> @@ -373,12 +373,14 @@
>    // As a special case, if all of the index operands of GEP are constant zeros,
>    // handle this just like we handle casts (ie, don't do much).
>    bool AllZeros = true;
> -  for (unsigned i = 1, e = GEP.getNumOperands(); i != e; ++i)
> -    if (GEP.getOperand(i) !=
> -           ConstantAggregateZero::get(GEP.getOperand(i)->getType())) {
> -      AllZeros = false;
> -      break;
> -    }
> +  for (unsigned i = 1, e = GEP.getNumOperands(); i != e; ++i) {
> +    if (ConstantInt * CI = dyn_cast<ConstantInt>(GEP.getOperand(i)))
> +      if (CI->isZero()) {
> +        continue;
> +      }
> +    AllZeros = false;
> +    break;
> +  }
>  
>    // If all of the indices are zero, the result points to the operand without
>    // applying the type.
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 




More information about the llvm-commits mailing list