[PATCH] D25215: [InstCombine] Transform !range metadata to !nonnull when combining loads
    Hal Finkel via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Oct  3 16:48:24 PDT 2016
    
    
  
hfinkel added inline comments.
> InstCombineLoadStoreAlloca.cpp:386
> +      // If it's a pointer now and the range does not contain 0, make it !nonnull.
> +      if (NewTy->isPointerTy() && N->getNumOperands() == 2) {
> +	unsigned int BitWidth = IC.getDataLayout().getTypeSizeInBits(NewTy);
What is the:
  N->getNumOperands() == 2
supposed to be checking? The range metadata can have any even number of operands; and we already have an assert for this in llvm::getConstantRangeFromMetadata.
> InstCombineLoadStoreAlloca.cpp:387
> +      if (NewTy->isPointerTy() && N->getNumOperands() == 2) {
> +	unsigned int BitWidth = IC.getDataLayout().getTypeSizeInBits(NewTy);
> +	if (!getConstantRangeFromMetadata(*N).contains(APInt(BitWidth, 0))) {
Indentation looks odd here. Tabs?
> PR30597.ll:23
> +  ret i32 42
> +}
> +
This is a nice test case, and I'd keep that, but can you also add a more-direct test case involving the range metadata directly?
Repository:
  rL LLVM
https://reviews.llvm.org/D25215
    
    
More information about the llvm-commits
mailing list