[llvm] r200083 - Reverting r199886 (Prevent repetitive warnings for unrecognized processors and features)

Sean Silva silvas at purdue.edu
Tue Jan 28 17:52:26 PST 2014


Thanks.

-- Sean Silva


On Sat, Jan 25, 2014 at 11:56 AM, Artyom Skrobov <Artyom.Skrobov at arm.com>wrote:

> Author: askrobov
> Date: Sat Jan 25 10:56:18 2014
> New Revision: 200083
>
> URL: http://llvm.org/viewvc/llvm-project?rev=200083&view=rev
> Log:
> Reverting r199886 (Prevent repetitive warnings for unrecognized processors
> and features)
>
> Removed:
>     llvm/trunk/test/MC/ARM/unrecognized.ll
> Modified:
>     llvm/trunk/include/llvm/MC/SubtargetFeature.h
>     llvm/trunk/lib/MC/MCSubtargetInfo.cpp
>     llvm/trunk/lib/MC/SubtargetFeature.cpp
>
> Modified: llvm/trunk/include/llvm/MC/SubtargetFeature.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/SubtargetFeature.h?rev=200083&r1=200082&r2=200083&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/SubtargetFeature.h (original)
> +++ llvm/trunk/include/llvm/MC/SubtargetFeature.h Sat Jan 25 10:56:18 2014
> @@ -101,12 +101,6 @@ public:
>
>    /// Adds the default features for the specified target triple.
>    void getDefaultSubtargetFeatures(const Triple& Triple);
> -
> -  /// Find KV in array using binary search.
> -  /// T should be either SubtargetFeatureKV or SubtargetInfoKV
> -  template<typename T>
> -  static const T *Find(StringRef Key, const T *Array, size_t Length,
> -                       const char* KeyType);
>  };
>
>  } // End namespace llvm
>
> Modified: llvm/trunk/lib/MC/MCSubtargetInfo.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSubtargetInfo.cpp?rev=200083&r1=200082&r2=200083&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/MC/MCSubtargetInfo.cpp (original)
> +++ llvm/trunk/lib/MC/MCSubtargetInfo.cpp Sat Jan 25 10:56:18 2014
> @@ -96,11 +96,14 @@ MCSubtargetInfo::getSchedModelForCPU(Str
>  #endif
>
>    // Find entry
> -  const SubtargetInfoKV *Found = SubtargetFeatures::Find(CPU,
> ProcSchedModels,
> -                                                         NumProcs,
> "processor");
> -  if (!Found)
> +  const SubtargetInfoKV *Found =
> +    std::lower_bound(ProcSchedModels, ProcSchedModels+NumProcs, CPU);
> +  if (Found == ProcSchedModels+NumProcs || StringRef(Found->Key) != CPU) {
> +    errs() << "'" << CPU
> +           << "' is not a recognized processor for this target"
> +           << " (ignoring processor)\n";
>      return &MCSchedModel::DefaultSchedModel;
> -
> +  }
>    assert(Found->Value && "Missing processor SchedModel value");
>    return (const MCSchedModel *)Found->Value;
>  }
>
> Modified: llvm/trunk/lib/MC/SubtargetFeature.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/SubtargetFeature.cpp?rev=200083&r1=200082&r2=200083&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/MC/SubtargetFeature.cpp (original)
> +++ llvm/trunk/lib/MC/SubtargetFeature.cpp Sat Jan 25 10:56:18 2014
> @@ -11,11 +11,9 @@
>  //
>
>  //===----------------------------------------------------------------------===//
>
> -#include "llvm/ADT/SmallSet.h"
>  #include "llvm/MC/SubtargetFeature.h"
>  #include "llvm/Support/Debug.h"
>  #include "llvm/Support/Format.h"
> -#include "llvm/Support/SourceMgr.h"
>  #include "llvm/Support/raw_ostream.h"
>  #include <algorithm>
>  #include <cassert>
> @@ -120,42 +118,19 @@ void SubtargetFeatures::AddFeature(const
>    }
>  }
>
> -// This needs to be shared between the instantiations of Find<>
> -typedef std::pair<std::string,std::string> KeyWithType;
> -static SmallSet<KeyWithType,10> reportedAsUnrecognized;
> -
>  /// Find KV in array using binary search.
> -template<typename T>
> -const T *SubtargetFeatures::Find(StringRef Key, const T *Array, size_t
> Length,
> -                                 const char* KeyType) {
> +static const SubtargetFeatureKV *Find(StringRef S, const
> SubtargetFeatureKV *A,
> +                                      size_t L) {
>    // Determine the end of the array
> -  const T *Hi = Array + Length;
> +  const SubtargetFeatureKV *Hi = A + L;
>    // Binary search the array
> -  const T *F = std::lower_bound(Array, Hi, Key);
> +  const SubtargetFeatureKV *F = std::lower_bound(A, Hi, S);
>    // If not found then return NULL
> -  if (F == Hi || StringRef(F->Key) != Key) {
> -    // If not yet reported, report now
> -    KeyWithType current(KeyType, Key);
> -    if(!reportedAsUnrecognized.count(current)) {
> -      SmallString<1024> storage;
> -      StringRef message = ("'" + Key +
> -                           "' is not a recognized " + KeyType +
> -                           " for this target (ignoring " + KeyType +
> -                           ")").toStringRef(storage);
> -      SMDiagnostic(StringRef(), SourceMgr::DK_Warning, message)
> -        .print(0, errs());
> -      reportedAsUnrecognized.insert(current);
> -    }
> -    return NULL;
> -  }
> +  if (F == Hi || StringRef(F->Key) != S) return NULL;
>    // Return the found array item
>    return F;
>  }
>
> -// Instantiate with <SubtargetInfoKV> for use in MCSubtargetInfo
> -template const SubtargetInfoKV *SubtargetFeatures::Find<SubtargetInfoKV>
> -  (StringRef Key, const SubtargetInfoKV *Array, size_t Length, const
> char* KeyType);
> -
>  /// getLongestEntryLength - Return the length of the longest entry in the
> table.
>  ///
>  static size_t getLongestEntryLength(const SubtargetFeatureKV *Table,
> @@ -253,7 +228,7 @@ SubtargetFeatures::ToggleFeature(uint64_
>                                   size_t FeatureTableSize) {
>    // Find feature in table.
>    const SubtargetFeatureKV *FeatureEntry =
> -    Find(StripFlag(Feature), FeatureTable, FeatureTableSize, "feature");
> +    Find(StripFlag(Feature), FeatureTable, FeatureTableSize);
>    // If there is a match
>    if (FeatureEntry) {
>      if ((Bits & FeatureEntry->Value) == FeatureEntry->Value) {
> @@ -267,6 +242,10 @@ SubtargetFeatures::ToggleFeature(uint64_
>        // For each feature that this implies, set it.
>        SetImpliedBits(Bits, FeatureEntry, FeatureTable, FeatureTableSize);
>      }
> +  } else {
> +    errs() << "'" << Feature
> +           << "' is not a recognized feature for this target"
> +           << " (ignoring feature)\n";
>    }
>
>    return Bits;
> @@ -301,8 +280,7 @@ uint64_t SubtargetFeatures::getFeatureBi
>
>    // Find CPU entry if CPU name is specified.
>    if (!CPU.empty()) {
> -    const SubtargetFeatureKV *CPUEntry = Find(CPU, CPUTable, CPUTableSize,
> -                                              "processor");
> +    const SubtargetFeatureKV *CPUEntry = Find(CPU, CPUTable,
> CPUTableSize);
>      // If there is a match
>      if (CPUEntry) {
>        // Set base feature bits
> @@ -314,6 +292,10 @@ uint64_t SubtargetFeatures::getFeatureBi
>          if (CPUEntry->Value & FE.Value)
>            SetImpliedBits(Bits, &FE, FeatureTable, FeatureTableSize);
>        }
> +    } else {
> +      errs() << "'" << CPU
> +             << "' is not a recognized processor for this target"
> +             << " (ignoring processor)\n";
>      }
>    }
>
> @@ -327,7 +309,7 @@ uint64_t SubtargetFeatures::getFeatureBi
>
>      // Find feature in table.
>      const SubtargetFeatureKV *FeatureEntry =
> -            Find(StripFlag(Feature), FeatureTable, FeatureTableSize,
> "feature");
> +                       Find(StripFlag(Feature), FeatureTable,
> FeatureTableSize);
>      // If there is a match
>      if (FeatureEntry) {
>        // Enable/disable feature in bits
> @@ -342,6 +324,10 @@ uint64_t SubtargetFeatures::getFeatureBi
>          // For each feature that implies this, clear it.
>          ClearImpliedBits(Bits, FeatureEntry, FeatureTable,
> FeatureTableSize);
>        }
> +    } else {
> +      errs() << "'" << Feature
> +             << "' is not a recognized feature for this target"
> +             << " (ignoring feature)\n";
>      }
>    }
>
>
> Removed: llvm/trunk/test/MC/ARM/unrecognized.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/unrecognized.ll?rev=200082&view=auto
>
> ==============================================================================
> --- llvm/trunk/test/MC/ARM/unrecognized.ll (original)
> +++ llvm/trunk/test/MC/ARM/unrecognized.ll (removed)
> @@ -1,15 +0,0 @@
> -; RUN: llc -mcpu=invalid -o /dev/null %s 2>&1 | FileCheck %s
> --check-prefix=CPU
> -; CPU:     'invalid' is not a recognized processor for this target
> (ignoring processor)
> -; CPU-NOT: 'invalid' is not a recognized processor for this target
> (ignoring processor)
> -
> -; RUN: llc -mattr=+foo,+bar -o /dev/null %s 2>&1 | FileCheck %s
> --check-prefix=FEATURE
> -; FEATURE:      'foo' is not a recognized feature for this target
> (ignoring feature)
> -; FEATURE-NEXT: 'bar' is not a recognized feature for this target
> (ignoring feature)
> -; FEATURE-NOT:  'foo' is not a recognized feature for this target
> (ignoring feature)
> -; FEATURE-NOT:  'bar' is not a recognized feature for this target
> (ignoring feature)
> -
> -define void @foo() {
> -entry:
> -  ret void
> -}
> -
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140128/bdf71a90/attachment.html>


More information about the llvm-commits mailing list