From: Serge Pavlov Date: Wed, 1 Feb 2023 05:43:43 +0000 (+0700) Subject: Use ArrayRef instead of raw pointers. NFC X-Git-Tag: upstream/17.0.6~18850 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c6795b1d37cee586d9b98dade64432f8f6bd004b;p=platform%2Fupstream%2Fllvm.git Use ArrayRef instead of raw pointers. NFC Change signature of TargetLowering::getRoundingControlRegisters so that it returns ArrayRef, not plain pointer. Differential Revision: https://reviews.llvm.org/D143049 --- diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h b/llvm/include/llvm/CodeGen/TargetLowering.h index 4374f7e..9ad82ab 100644 --- a/llvm/include/llvm/CodeGen/TargetLowering.h +++ b/llvm/include/llvm/CodeGen/TargetLowering.h @@ -4490,8 +4490,8 @@ public: /// Returns a 0 terminated array of rounding control registers that can be /// attached into strict FP call. - virtual const MCPhysReg *getRoundingControlRegisters() const { - return nullptr; + virtual ArrayRef getRoundingControlRegisters() const { + return ArrayRef(); } /// This callback is used to prepare for a volatile or atomic load. diff --git a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp index 5cd5de7..ef8da41 100644 --- a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp @@ -1163,10 +1163,9 @@ EmitMachineNode(SDNode *Node, bool IsClone, bool IsCloned, // Add rounding control registers as implicit def for function call. if (II.isCall() && MF->getFunction().hasFnAttribute(Attribute::StrictFP)) { - const MCPhysReg *RCRegs = TLI->getRoundingControlRegisters(); - if (RCRegs) - for (; *RCRegs; ++RCRegs) - UsedRegs.push_back(*RCRegs); + ArrayRef RCRegs = TLI->getRoundingControlRegisters(); + for (MCPhysReg Reg : RCRegs) + UsedRegs.push_back(Reg); } // Finally mark unused registers as dead. diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp index 72e99b3..fe356cb 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -14946,8 +14946,8 @@ AArch64TargetLowering::getScratchRegisters(CallingConv::ID) const { return ScratchRegs; } -const MCPhysReg *AArch64TargetLowering::getRoundingControlRegisters() const { - static const MCPhysReg RCRegs[] = {AArch64::FPCR, 0}; +ArrayRef AArch64TargetLowering::getRoundingControlRegisters() const { + static const MCPhysReg RCRegs[] = {AArch64::FPCR}; return RCRegs; } diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.h b/llvm/lib/Target/AArch64/AArch64ISelLowering.h index 7544a0c..171c310 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.h +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.h @@ -670,7 +670,7 @@ public: CodeGenOpt::Level OptLevel) const override; const MCPhysReg *getScratchRegisters(CallingConv::ID CC) const override; - const MCPhysReg *getRoundingControlRegisters() const override; + ArrayRef getRoundingControlRegisters() const override; /// Returns false if N is a bit extraction pattern of (X >> C) & Mask. bool isDesirableToCommuteWithShift(const SDNode *N, diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 8311a5a..4150644 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -3097,10 +3097,10 @@ const MCPhysReg *X86TargetLowering::getScratchRegisters(CallingConv::ID) const { return ScratchRegs; } -const MCPhysReg *X86TargetLowering::getRoundingControlRegisters() const { +ArrayRef X86TargetLowering::getRoundingControlRegisters() const { // FIXME: We should def X86::FPCW for x87 as well. But it affects a lot of lit // tests at the moment, which is not what we expected. - static const MCPhysReg RCRegs[] = { X86::MXCSR, 0 }; + static const MCPhysReg RCRegs[] = {X86::MXCSR}; return RCRegs; } diff --git a/llvm/lib/Target/X86/X86ISelLowering.h b/llvm/lib/Target/X86/X86ISelLowering.h index 7f56d8d..c41b5fd 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.h +++ b/llvm/lib/Target/X86/X86ISelLowering.h @@ -1702,7 +1702,7 @@ namespace llvm { LLVMContext &Context) const override; const MCPhysReg *getScratchRegisters(CallingConv::ID CC) const override; - const MCPhysReg *getRoundingControlRegisters() const override; + ArrayRef getRoundingControlRegisters() const override; TargetLoweringBase::AtomicExpansionKind shouldExpandAtomicLoadInIR(LoadInst *LI) const override;