mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Use ArrayRef<MVT::SimpleValueType> when possible.
Not passing vector references around makes it possible to use SmallVector in most places. llvm-svn: 177235
This commit is contained in:
parent
50046065ba
commit
b984ca6d18
@ -57,7 +57,7 @@ EEVT::TypeSet::TypeSet(MVT::SimpleValueType VT, TreePattern &TP) {
|
||||
}
|
||||
|
||||
|
||||
EEVT::TypeSet::TypeSet(const std::vector<MVT::SimpleValueType> &VTList) {
|
||||
EEVT::TypeSet::TypeSet(ArrayRef<MVT::SimpleValueType> VTList) {
|
||||
assert(!VTList.empty() && "empty list?");
|
||||
TypeVec.append(VTList.begin(), VTList.end());
|
||||
|
||||
@ -76,7 +76,7 @@ bool EEVT::TypeSet::FillWithPossibleTypes(TreePattern &TP,
|
||||
bool (*Pred)(MVT::SimpleValueType),
|
||||
const char *PredicateName) {
|
||||
assert(isCompletelyUnknown());
|
||||
const std::vector<MVT::SimpleValueType> &LegalTypes =
|
||||
ArrayRef<MVT::SimpleValueType> LegalTypes =
|
||||
TP.getDAGPatterns().getTargetInfo().getLegalValueTypes();
|
||||
|
||||
if (TP.hasError())
|
||||
|
@ -59,7 +59,7 @@ namespace EEVT {
|
||||
public:
|
||||
TypeSet() {}
|
||||
TypeSet(MVT::SimpleValueType VT, TreePattern &TP);
|
||||
TypeSet(const std::vector<MVT::SimpleValueType> &VTList);
|
||||
TypeSet(ArrayRef<MVT::SimpleValueType> VTList);
|
||||
|
||||
bool isCompletelyUnknown() const { return TypeVec.empty(); }
|
||||
|
||||
|
@ -261,7 +261,7 @@ namespace llvm {
|
||||
public:
|
||||
unsigned EnumValue;
|
||||
std::string Namespace;
|
||||
std::vector<MVT::SimpleValueType> VTs;
|
||||
SmallVector<MVT::SimpleValueType, 4> VTs;
|
||||
unsigned SpillSize;
|
||||
unsigned SpillAlignment;
|
||||
int CopyCost;
|
||||
@ -274,7 +274,7 @@ namespace llvm {
|
||||
|
||||
const std::string &getName() const { return Name; }
|
||||
std::string getQualifiedName() const;
|
||||
const std::vector<MVT::SimpleValueType> &getValueTypes() const {return VTs;}
|
||||
ArrayRef<MVT::SimpleValueType> getValueTypes() const {return VTs;}
|
||||
unsigned getNumValueTypes() const { return VTs.size(); }
|
||||
|
||||
MVT::SimpleValueType getValueTypeNum(unsigned VTNum) const {
|
||||
|
@ -229,7 +229,7 @@ getRegisterVTs(Record *R) const {
|
||||
for (unsigned i = 0, e = RCs.size(); i != e; ++i) {
|
||||
const CodeGenRegisterClass &RC = *RCs[i];
|
||||
if (RC.contains(Reg)) {
|
||||
const std::vector<MVT::SimpleValueType> &InVTs = RC.getValueTypes();
|
||||
ArrayRef<MVT::SimpleValueType> InVTs = RC.getValueTypes();
|
||||
Result.insert(Result.end(), InVTs.begin(), InVTs.end());
|
||||
}
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ class CodeGenTarget {
|
||||
mutable DenseMap<const Record*, CodeGenInstruction*> Instructions;
|
||||
mutable CodeGenRegBank *RegBank;
|
||||
mutable std::vector<Record*> RegAltNameIndices;
|
||||
mutable std::vector<MVT::SimpleValueType> LegalValueTypes;
|
||||
mutable SmallVector<MVT::SimpleValueType, 8> LegalValueTypes;
|
||||
void ReadRegAltNameIndices() const;
|
||||
void ReadInstructions() const;
|
||||
void ReadLegalValueTypes() const;
|
||||
@ -129,7 +129,7 @@ public:
|
||||
/// specified physical register.
|
||||
std::vector<MVT::SimpleValueType> getRegisterVTs(Record *R) const;
|
||||
|
||||
const std::vector<MVT::SimpleValueType> &getLegalValueTypes() const {
|
||||
ArrayRef<MVT::SimpleValueType> getLegalValueTypes() const {
|
||||
if (LegalValueTypes.empty()) ReadLegalValueTypes();
|
||||
return LegalValueTypes;
|
||||
}
|
||||
@ -137,7 +137,7 @@ public:
|
||||
/// isLegalValueType - Return true if the specified value type is natively
|
||||
/// supported by the target (i.e. there are registers that directly hold it).
|
||||
bool isLegalValueType(MVT::SimpleValueType VT) const {
|
||||
const std::vector<MVT::SimpleValueType> &LegalVTs = getLegalValueTypes();
|
||||
ArrayRef<MVT::SimpleValueType> LegalVTs = getLegalValueTypes();
|
||||
for (unsigned i = 0, e = LegalVTs.size(); i != e; ++i)
|
||||
if (LegalVTs[i] == VT) return true;
|
||||
return false;
|
||||
|
@ -1031,7 +1031,7 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
|
||||
}
|
||||
|
||||
// Build a shared array of value types.
|
||||
SequenceToOffsetTable<std::vector<MVT::SimpleValueType> > VTSeqs;
|
||||
SequenceToOffsetTable<SmallVector<MVT::SimpleValueType, 4> > VTSeqs;
|
||||
for (unsigned rc = 0, e = RegisterClasses.size(); rc != e; ++rc)
|
||||
VTSeqs.add(RegisterClasses[rc]->VTs);
|
||||
VTSeqs.layout();
|
||||
|
Loading…
Reference in New Issue
Block a user