X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FMC%2FSubtargetFeature.cpp;h=2fb91f2125b1bdf1a908876b60a9567f75396c5a;hb=5be77762a3aa434ee877b0a03b98b5c3a7571918;hp=153757994fe5a835f84c6f33b861d4e034639516;hpb=286c4dc355b8be6806081b23c3097485821c7642;p=oota-llvm.git diff --git a/lib/MC/SubtargetFeature.cpp b/lib/MC/SubtargetFeature.cpp index 153757994fe..2fb91f2125b 100644 --- a/lib/MC/SubtargetFeature.cpp +++ b/lib/MC/SubtargetFeature.cpp @@ -119,14 +119,12 @@ void SubtargetFeatures::AddFeature(const StringRef String, } /// Find KV in array using binary search. -template const T *Find(const StringRef S, const T *A, size_t L) { - // Make the lower bound element we're looking for - T KV; - KV.Key = S.data(); +static const SubtargetFeatureKV *Find(StringRef S, const SubtargetFeatureKV *A, + size_t L) { // Determine the end of the array - const T *Hi = A + L; + const SubtargetFeatureKV *Hi = A + L; // Binary search the array - const T *F = std::lower_bound(A, Hi, KV); + const SubtargetFeatureKV *F = std::lower_bound(A, Hi, S); // If not found then return NULL if (F == Hi || StringRef(F->Key) != S) return NULL; // Return the found array item @@ -336,30 +334,6 @@ uint64_t SubtargetFeatures::getFeatureBits(const StringRef CPU, return Bits; } -/// Get scheduling itinerary of a CPU. -const void *SubtargetFeatures::getItinerary(const StringRef CPU, - const SubtargetInfoKV *Table, - size_t TableSize) { - assert(Table && "missing table"); -#ifndef NDEBUG - for (size_t i = 1; i < TableSize; i++) { - assert(strcmp(Table[i - 1].Key, Table[i].Key) < 0 && "Table is not sorted"); - } -#endif - - // Find entry - const SubtargetInfoKV *Entry = Find(CPU, Table, TableSize); - - if (Entry) { - return Entry->Value; - } else { - errs() << "'" << CPU - << "' is not a recognized processor for this target" - << " (ignoring processor)\n"; - return NULL; - } -} - /// print - Print feature string. /// void SubtargetFeatures::print(raw_ostream &OS) const { @@ -376,8 +350,7 @@ void SubtargetFeatures::dump() const { } #endif -/// getDefaultSubtargetFeatures - Return a string listing the features -/// associated with the target triple. +/// Adds the default features for the specified target triple. /// /// FIXME: This is an inelegant way of specifying the features of a /// subtarget. It would be better if we could encode this information