[NFC][TableGen] Use ArrayRef instead of const vector reference (#145323)
- Use `ArrayRef` instead of `SmallVector` reference in a few places. - Drop redundant `llvm::` in a few places.
This commit is contained in:
@@ -435,9 +435,9 @@ public:
|
||||
/// 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!");
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -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));
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -1292,8 +1292,8 @@ public:
|
||||
|
||||
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);
|
||||
|
||||
@@ -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) {
|
||||
@@ -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())
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user