Skip to content

[NFC][TableGen] Use ArrayRef instead of const vector reference #145323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions llvm/include/llvm/CodeGen/SelectionDAGISel.h
Original file line number Diff line number Diff line change
Expand Up @@ -435,9 +435,9 @@ class SelectionDAGISel {
/// It runs node predicate number PredNo and returns true if it succeeds or
/// false if it fails. The number is a private implementation detail to the
/// code tblgen produces.
virtual bool CheckNodePredicateWithOperands(
SDValue Op, unsigned PredNo,
const SmallVectorImpl<SDValue> &Operands) const {
virtual bool
CheckNodePredicateWithOperands(SDValue Op, unsigned PredNo,
ArrayRef<SDValue> Operands) const {
llvm_unreachable("Tblgen should generate the implementation of this!");
}

Expand Down
9 changes: 5 additions & 4 deletions llvm/lib/TableGen/StringMatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
//===----------------------------------------------------------------------===//

#include "llvm/TableGen/StringMatcher.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
Expand All @@ -23,14 +23,15 @@
using namespace llvm;

/// FindFirstNonCommonLetter - Find the first character in the keys of the
/// string pairs that is not shared across the whole set of strings. All
/// string pairs that is not shared across the whole set of strings. All
/// strings are assumed to have the same length.
static unsigned
FindFirstNonCommonLetter(ArrayRef<const StringMatcher::StringPair *> Matches) {
assert(!Matches.empty());
for (auto [Idx, Letter] : enumerate(Matches[0]->first)) {
// Check to see if `Letter` is the same across the set.
for (const StringMatcher::StringPair *Match : Matches)
// Check to see if `Letter` is the same across the set. Since the letter is
// from `Matches[0]`, we can skip `Matches[0]` in the loop below.
for (const StringMatcher::StringPair *Match : Matches.drop_front())
if (Match->first[Idx] != Letter)
return Idx;
}
Expand Down
6 changes: 3 additions & 3 deletions llvm/lib/TableGen/StringToOffsetTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ void StringToOffsetTable::EmitStringTableDef(raw_ostream &OS, const Twine &Name,
bool UseChars = !EmitLongStrLiterals && AggregateString.size() > (64 * 1024);
OS << (UseChars ? "{\n" : "\n");

llvm::ListSeparator LineSep(UseChars ? ",\n" : "\n");
llvm::SmallVector<StringRef> Strings(split(AggregateString, '\0'));
ListSeparator LineSep(UseChars ? ",\n" : "\n");
SmallVector<StringRef> Strings(split(AggregateString, '\0'));
// We should always have an empty string at the start, and because these are
// null terminators rather than separators, we'll have one at the end as
// well. Skip the end one.
Expand All @@ -63,7 +63,7 @@ void StringToOffsetTable::EmitStringTableDef(raw_ostream &OS, const Twine &Name,
continue;
}

llvm::ListSeparator CharSep(", ");
ListSeparator CharSep(", ");
for (char C : Str) {
OS << CharSep << "'";
OS.write_escaped(StringRef(&C, 1));
Expand Down
2 changes: 1 addition & 1 deletion llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3187,7 +3187,7 @@ bool TreePattern::InferAllTypes(
return true;
}

const SmallVectorImpl<TreePatternNode *> &InNodes = InIter->second;
ArrayRef<TreePatternNode *> InNodes = InIter->second;

// The input types should be fully resolved by now.
for (TreePatternNode *Node : Nodes) {
Expand Down
10 changes: 5 additions & 5 deletions llvm/utils/TableGen/Common/CodeGenSchedule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1292,8 +1292,8 @@ class PredTransitions {

PredTransitions(CodeGenSchedModels &sm) : SchedModels(sm) {}

bool substituteVariantOperand(const SmallVectorImpl<unsigned> &RWSeq,
bool IsRead, unsigned StartIdx);
bool substituteVariantOperand(ArrayRef<unsigned> RWSeq, bool IsRead,
unsigned StartIdx);

bool substituteVariants(const PredTransition &Trans);

Expand Down Expand Up @@ -1526,8 +1526,8 @@ void PredTransitions::pushVariant(const TransVariant &VInfo, bool IsRead) {
// operand. StartIdx is an index into TransVec where partial results
// starts. RWSeq must be applied to all transitions between StartIdx and the end
// of TransVec.
bool PredTransitions::substituteVariantOperand(
const SmallVectorImpl<unsigned> &RWSeq, bool IsRead, unsigned StartIdx) {
bool PredTransitions::substituteVariantOperand(ArrayRef<unsigned> RWSeq,
bool IsRead, unsigned StartIdx) {
bool Subst = false;
// Visit each original RW within the current sequence.
for (unsigned int RWI : RWSeq) {
Expand Down Expand Up @@ -1591,7 +1591,7 @@ bool PredTransitions::substituteVariants(const PredTransition &Trans) {
}

static void addSequences(CodeGenSchedModels &SchedModels,
const SmallVectorImpl<SmallVector<unsigned, 4>> &Seqs,
ArrayRef<SmallVector<unsigned, 4>> Seqs,
IdxVec &Result, bool IsRead) {
for (const auto &S : Seqs)
if (!S.empty())
Expand Down
2 changes: 1 addition & 1 deletion llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1158,7 +1158,7 @@ void MatcherTableEmitter::EmitPredicateFunctions(raw_ostream &OS) {
EmitNodePredicatesFunction(
NodePredicatesWithOperands,
"CheckNodePredicateWithOperands(SDValue Op, unsigned PredNo, "
"const SmallVectorImpl<SDValue> &Operands) const",
"ArrayRef<SDValue> Operands) const",
OS);

// Emit CompletePattern matchers.
Expand Down
4 changes: 2 additions & 2 deletions llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,8 @@ static void ContractNodes(std::unique_ptr<Matcher> &InputMatcherPtr,
#endif

if (ResultsMatch) {
const SmallVectorImpl<MVT::SimpleValueType> &VTs = EN->getVTList();
const SmallVectorImpl<unsigned> &Operands = EN->getOperandList();
ArrayRef<MVT::SimpleValueType> VTs = EN->getVTList();
ArrayRef<unsigned> Operands = EN->getOperandList();
MatcherPtr->reset(new MorphNodeToMatcher(
EN->getInstruction(), VTs, Operands, EN->hasChain(),
EN->hasInGlue(), EN->hasOutGlue(), EN->hasMemRefs(),
Expand Down