Skip to content

Commit

Permalink
[DAG] FoldConstantVectorArithmetic - remove SDNodeFlags argument
Browse files Browse the repository at this point in the history
Another minor step towards merging FoldConstantVectorArithmetic into FoldConstantArithmetic.

We don't use SDNodeFlags in any constant folding inside DAG, so passing the Flags argument is a waste of time - an alternative would be to wire up FoldConstantArithmetic to take SDNodeFlags just-in-case we someday start using it, but we don't have any way to test it and I'd prefer to avoid dead code.

Differential Revision: https://reviews.llvm.org/D113276
  • Loading branch information
RKSimon committed Nov 5, 2021
1 parent ad61718 commit 9e65062
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 7 deletions.
3 changes: 1 addition & 2 deletions llvm/include/llvm/CodeGen/SelectionDAG.h
Expand Up @@ -1733,8 +1733,7 @@ class SelectionDAG {
ArrayRef<SDValue> Ops);

SDValue FoldConstantVectorArithmetic(unsigned Opcode, const SDLoc &DL, EVT VT,
ArrayRef<SDValue> Ops,
const SDNodeFlags Flags = SDNodeFlags());
ArrayRef<SDValue> Ops);

/// Fold floating-point operations with 2 operands when both operands are
/// constants and/or undefined.
Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Expand Up @@ -22299,8 +22299,8 @@ SDValue DAGCombiner::SimplifyVBinOp(SDNode *N) {
SDNodeFlags Flags = N->getFlags();

// See if we can constant fold the vector operation.
if (SDValue Fold = DAG.FoldConstantVectorArithmetic(
Opcode, SDLoc(LHS), LHS.getValueType(), Ops, N->getFlags()))
if (SDValue Fold = DAG.FoldConstantVectorArithmetic(Opcode, SDLoc(LHS),
LHS.getValueType(), Ops))
return Fold;

// Move unary shuffles with identical masks after a vector binop:
Expand Down
5 changes: 2 additions & 3 deletions llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Expand Up @@ -5401,8 +5401,7 @@ SDValue SelectionDAG::FoldConstantArithmetic(unsigned Opcode, const SDLoc &DL,
// TODO: Merge with FoldConstantArithmetic
SDValue SelectionDAG::FoldConstantVectorArithmetic(unsigned Opcode,
const SDLoc &DL, EVT VT,
ArrayRef<SDValue> Ops,
const SDNodeFlags Flags) {
ArrayRef<SDValue> Ops) {
// If the opcode is a target-specific ISD node, there's nothing we can
// do here and the operand rules may not line up with the below, so
// bail early.
Expand Down Expand Up @@ -5486,7 +5485,7 @@ SDValue SelectionDAG::FoldConstantVectorArithmetic(unsigned Opcode,
}

// Constant fold the scalar operands.
SDValue ScalarResult = getNode(Opcode, DL, SVT, ScalarOps, Flags);
SDValue ScalarResult = getNode(Opcode, DL, SVT, ScalarOps);

// Legalize the (integer) scalar constant if necessary.
if (LegalSVT != SVT)
Expand Down

0 comments on commit 9e65062

Please sign in to comment.