[llvm] 1398460 - [RISCVGatherScatterLowering] Minor code cleanup [NFC]

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri May 12 16:20:51 PDT 2023


The llvm-mca test failures were caused by [RISCV][llvm-mca] Add mca tests
for riscv lmul instruments
<https://github.com/llvm/llvm-project/commit/1e317c3f819c7b42f8b45383438004193d3344d4>
and
the author already reverted it.

~Craig


On Fri, May 12, 2023 at 2:14 PM Vitaly Buka via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Probably this leak is from the patch.
> https://lab.llvm.org/buildbot/#/builders/5/builds/33651
>
> On Fri, 12 May 2023 at 10:34, Philip Reames via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>>
>> Author: Philip Reames
>> Date: 2023-05-12T10:33:29-07:00
>> New Revision: 13984608992246e42e66c019f09764650d60af63
>>
>> URL:
>> https://github.com/llvm/llvm-project/commit/13984608992246e42e66c019f09764650d60af63
>> DIFF:
>> https://github.com/llvm/llvm-project/commit/13984608992246e42e66c019f09764650d60af63.diff
>>
>> LOG: [RISCVGatherScatterLowering] Minor code cleanup [NFC]
>>
>> Use a switch to avoid repeat tests on the opcode, and factor out some
>> common code out of another switch.  (Not all branches had both common bits,
>> but the one which didn't left the values unchanged and their starting value
>> is the respective operand - so storing it back is a nop.)
>>
>> Added:
>>
>>
>> Modified:
>>     llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
>>
>> Removed:
>>
>>
>>
>>
>> ################################################################################
>> diff  --git a/llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
>> b/llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
>> index e844e1b11271..0174aa547a1b 100644
>> --- a/llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
>> +++ b/llvm/lib/Target/RISCV/RISCVGatherScatterLowering.cpp
>> @@ -225,20 +225,24 @@ bool
>> RISCVGatherScatterLowering::matchStridedRecurrence(Value *Index, Loop *L,
>>    if (!BO)
>>      return false;
>>
>> -  if (BO->getOpcode() != Instruction::Add &&
>> -      BO->getOpcode() != Instruction::Or &&
>> -      BO->getOpcode() != Instruction::Mul &&
>> -      BO->getOpcode() != Instruction::Shl)
>> -    return false;
>> -
>> -  // Only support shift by constant.
>> -  if (BO->getOpcode() == Instruction::Shl &&
>> !isa<Constant>(BO->getOperand(1)))
>> -    return false;
>> -
>> -  // We need to be able to treat Or as Add.
>> -  if (BO->getOpcode() == Instruction::Or &&
>> -      !haveNoCommonBitsSet(BO->getOperand(0), BO->getOperand(1), *DL))
>> +  switch (BO->getOpcode()) {
>> +  default:
>>      return false;
>> +  case Instruction::Or:
>> +    // We need to be able to treat Or as Add.
>> +    if (!haveNoCommonBitsSet(BO->getOperand(0), BO->getOperand(1), *DL))
>> +      return false;
>> +    break;
>> +  case Instruction::Add:
>> +    break;
>> +  case Instruction::Shl:
>> +    // Only support shift by constant.
>> +    if (!isa<Constant>(BO->getOperand(1)))
>> +      return false;
>> +    break;
>> +  case Instruction::Mul:
>> +    break;
>> +  }
>>
>>    // We should have one operand in the loop and one splat.
>>    Value *OtherOp;
>> @@ -291,7 +295,6 @@ bool
>> RISCVGatherScatterLowering::matchStridedRecurrence(Value *Index, Loop *L,
>>        Start = SplatOp;
>>      else
>>        Start = Builder.CreateAdd(Start, SplatOp, "start");
>> -    BasePtr->setIncomingValue(StartBlock, Start);
>>      break;
>>    }
>>    case Instruction::Mul: {
>> @@ -306,8 +309,6 @@ bool
>> RISCVGatherScatterLowering::matchStridedRecurrence(Value *Index, Loop *L,
>>        Stride = SplatOp;
>>      else
>>        Stride = Builder.CreateMul(Stride, SplatOp, "stride");
>> -    Inc->setOperand(StepIndex, Step);
>> -    BasePtr->setIncomingValue(StartBlock, Start);
>>      break;
>>    }
>>    case Instruction::Shl: {
>> @@ -316,12 +317,12 @@ bool
>> RISCVGatherScatterLowering::matchStridedRecurrence(Value *Index, Loop *L,
>>        Start = Builder.CreateShl(Start, SplatOp, "start");
>>      Step = Builder.CreateShl(Step, SplatOp, "step");
>>      Stride = Builder.CreateShl(Stride, SplatOp, "stride");
>> -    Inc->setOperand(StepIndex, Step);
>> -    BasePtr->setIncomingValue(StartBlock, Start);
>>      break;
>>    }
>>    }
>>
>> +  Inc->setOperand(StepIndex, Step);
>> +  BasePtr->setIncomingValue(StartBlock, Start);
>>    return true;
>>  }
>>
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230512/66a1f80b/attachment.html>


More information about the llvm-commits mailing list