From d71128d97df9986e98c3d2b56e5629f5e36e4c45 Mon Sep 17 00:00:00 2001 From: Dawid Jurczak Date: Thu, 14 Jul 2022 17:20:21 +0200 Subject: [PATCH] [NFC][Metadata] Change MDNode::operands()'s return type from op_range to ArrayRef This patch is https://reviews.llvm.org/D129468 follow-up and address one of comment coming from that review: https://reviews.llvm.org/D129468#3643295 Differential Revision: https://reviews.llvm.org/D129565 --- llvm/include/llvm/IR/Metadata.h | 6 ++++-- llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp | 5 +++-- llvm/lib/Linker/IRMover.cpp | 4 +++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/llvm/include/llvm/IR/Metadata.h b/llvm/include/llvm/IR/Metadata.h index ec769ce95160..b90b895f32e8 100644 --- a/llvm/include/llvm/IR/Metadata.h +++ b/llvm/include/llvm/IR/Metadata.h @@ -1287,7 +1287,7 @@ public: return const_cast(this)->mutable_end(); } - op_range operands() const { return op_range(op_begin(), op_end()); } + ArrayRef operands() const { return getHeader().operands(); } const MDOperand &getOperand(unsigned I) const { assert(I < getNumOperands() && "Out of range"); @@ -1345,7 +1345,9 @@ class MDTuple : public MDNode { StorageType Storage, bool ShouldCreate = true); TempMDTuple cloneImpl() const { - return getTemporary(getContext(), SmallVector(operands())); + ArrayRef Operands = operands(); + return getTemporary(getContext(), SmallVector( + Operands.begin(), Operands.end())); } public: diff --git a/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp b/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp index 560f46d39d0d..216027778fab 100644 --- a/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp +++ b/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp @@ -303,7 +303,7 @@ public: /// given offset. Update the offset to be relative to the field type. TBAAStructTypeNode getField(uint64_t &Offset) const { bool NewFormat = isNewFormat(); - const ArrayRef Operands(Node->op_begin(), Node->op_end()); + const ArrayRef Operands = Node->operands(); const unsigned NumOperands = Operands.size(); if (NewFormat) { @@ -811,7 +811,8 @@ MDNode *AAMDNodes::extendToTBAA(MDNode *MD, ssize_t Len) { return nullptr; // Otherwise, create TBAA with the new Len - SmallVector NextNodes(MD->operands()); + ArrayRef MDOperands = MD->operands(); + SmallVector NextNodes(MDOperands.begin(), MDOperands.end()); ConstantInt *PreviousSize = mdconst::extract(NextNodes[3]); // Don't create a new MDNode if it is the same length. diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp index 9e89cce8312e..7ccaba7e1c5c 100644 --- a/llvm/lib/Linker/IRMover.cpp +++ b/llvm/lib/Linker/IRMover.cpp @@ -1362,8 +1362,10 @@ Error IRLinker::linkModuleFlagsMetadata() { "Expected MDTuple when appending module flags"); if (DstValue->isDistinct()) return dyn_cast(DstValue); + ArrayRef DstOperands = DstValue->operands(); MDTuple *New = MDTuple::getDistinct( - DstM.getContext(), SmallVector(DstValue->operands())); + DstM.getContext(), + SmallVector(DstOperands.begin(), DstOperands.end())); Metadata *FlagOps[] = {DstOp->getOperand(0), ID, New}; MDNode *Flag = MDTuple::getDistinct(DstM.getContext(), FlagOps); DstModFlags->setOperand(DstIndex, Flag); -- 2.34.1