diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-06-08 17:08:14 +0100 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-06-08 17:59:05 +0100 |
| commit | 01b77159e30b38613ab700d8bb128b006822c58c (patch) | |
| tree | a375028fbfee5040ee92b372d87dcb1a2640e4fb | |
| parent | 114e712c344fbf8361b97130e78baa2624ff9bca (diff) | |
| download | llvm-01b77159e30b38613ab700d8bb128b006822c58c.zip llvm-01b77159e30b38613ab700d8bb128b006822c58c.tar.gz llvm-01b77159e30b38613ab700d8bb128b006822c58c.tar.bz2 | |
PPCISelLowering.cpp - don't dereference a dyn_cast<>.
dyn_cast<> can return nullptr which we would then dereference - use cast<> which will assert that the type is correct.
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index aefa48d..013ce0c 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -13925,7 +13925,7 @@ static SDValue combineBVZEXTLOAD(SDNode *N, SelectionDAG &DAG) { if (Operand.getOpcode() != ISD::LOAD) return SDValue(); - LoadSDNode *LD = dyn_cast<LoadSDNode>(Operand); + auto *LD = cast<LoadSDNode>(Operand); EVT MemoryType = LD->getMemoryVT(); // This transformation is only valid if the we are loading either a byte, @@ -16571,9 +16571,7 @@ static SDValue combineADDToADDZE(SDNode *N, SelectionDAG &DAG, SDVTList VTs = DAG.getVTList(MVT::i64, MVT::Glue); SDValue Cmp = RHS.getOperand(0); SDValue Z = Cmp.getOperand(0); - auto *Constant = dyn_cast<ConstantSDNode>(Cmp.getOperand(1)); - - assert(Constant && "Constant Should not be a null pointer."); + auto *Constant = cast<ConstantSDNode>(Cmp.getOperand(1)); int64_t NegConstant = 0 - Constant->getSExtValue(); switch(cast<CondCodeSDNode>(Cmp.getOperand(2))->get()) { @@ -17285,8 +17283,7 @@ PPC::AddrMode PPCTargetLowering::SelectOptimalAddrMode(const SDNode *Parent, if (Flags & PPC::MOF_RPlusSImm16) { SDValue Op0 = N.getOperand(0); SDValue Op1 = N.getOperand(1); - ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Op1); - int16_t Imm = CN->getAPIntValue().getZExtValue(); + int16_t Imm = cast<ConstantSDNode>(Op1)->getAPIntValue().getZExtValue(); if (!Align || isAligned(*Align, Imm)) { Disp = DAG.getTargetConstant(Imm, DL, N.getValueType()); Base = Op0; @@ -17312,7 +17309,7 @@ PPC::AddrMode PPCTargetLowering::SelectOptimalAddrMode(const SDNode *Parent, // zero or load-immediate-shifted and the displacement will be // the low 16 bits of the address. else if (Flags & PPC::MOF_AddrIsSImm32) { - ConstantSDNode *CN = dyn_cast<ConstantSDNode>(N); + auto *CN = cast<ConstantSDNode>(N); EVT CNType = CN->getValueType(0); uint64_t CNImm = CN->getZExtValue(); // If this address fits entirely in a 16-bit sext immediate field, codegen |
