[llvm] 1398460 - [RISCVGatherScatterLowering] Minor code cleanup [NFC]
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Fri May 12 14:14:13 PDT 2023
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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230512/bc386c0a/attachment.html>
More information about the llvm-commits
mailing list