Fix 80-col and early exit in cost model

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172877 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Renato Golin 2013-01-19 00:42:16 +00:00
parent d32eea9636
commit 065db2347f

View File

@ -289,7 +289,9 @@ ImmutablePass *llvm::createNoTargetTransformInfoPass() {
//======================================= COST TABLES == //======================================= COST TABLES ==
CostTable::CostTable(const CostTableEntry *table, const size_t size, unsigned numTypes) CostTable::CostTable(const CostTableEntry *table,
const size_t size,
unsigned numTypes)
: table(table), size(size), numTypes(numTypes) { : table(table), size(size), numTypes(numTypes) {
assert(table && "missing cost table"); assert(table && "missing cost table");
assert(size > 0 && "empty cost table"); assert(size > 0 && "empty cost table");
@ -297,22 +299,23 @@ CostTable::CostTable(const CostTableEntry *table, const size_t size, unsigned nu
unsigned CostTable::_findCost(int ISD, MVT *Types) const { unsigned CostTable::_findCost(int ISD, MVT *Types) const {
for (unsigned i = 0; i < size; ++i) { for (unsigned i = 0; i < size; ++i) {
if (table[i].ISD == ISD) { if (table[i].ISD != ISD)
bool found = true; continue;
for (unsigned t=0; t<numTypes; t++) { bool found = true;
if (table[i].Types[t] != Types[t]) { for (unsigned t=0; t<numTypes; t++) {
found = false; if (table[i].Types[t] != Types[t]) {
break; found = false;
} break;
} }
if (found)
return table[i].Cost;
} }
if (found)
return table[i].Cost;
} }
return COST_NOT_FOUND; return COST_NOT_FOUND;
} }
UnaryCostTable::UnaryCostTable(const CostTableEntry *table, const size_t size) UnaryCostTable::UnaryCostTable(const CostTableEntry *table,
const size_t size)
: CostTable(table, size, 1) { } : CostTable(table, size, 1) { }
unsigned UnaryCostTable::findCost(int ISD, MVT Type) const { unsigned UnaryCostTable::findCost(int ISD, MVT Type) const {
@ -320,7 +323,8 @@ unsigned UnaryCostTable::findCost(int ISD, MVT Type) const {
return _findCost(ISD, tys); return _findCost(ISD, tys);
} }
BinaryCostTable::BinaryCostTable(const CostTableEntry *table, const size_t size) BinaryCostTable::BinaryCostTable(const CostTableEntry *table,
const size_t size)
: CostTable(table, size, 2) { } : CostTable(table, size, 2) { }
unsigned BinaryCostTable::findCost(int ISD, MVT Type, MVT SrcType) const { unsigned BinaryCostTable::findCost(int ISD, MVT Type, MVT SrcType) const {