Add getFeatureBits to extract feature bits for a given CPU.
authorEvan Cheng <evan.cheng@apple.com>
Sat, 2 Jul 2011 00:43:44 +0000 (00:43 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Sat, 2 Jul 2011 00:43:44 +0000 (00:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134298 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCSubtargetInfo.h
lib/MC/MCSubtargetInfo.cpp

index d991f427a681c8e7af3c614c242cbe8434652647..d85527122715e67e6019725f5ad2f884f48fa72b 100644 (file)
@@ -54,6 +54,10 @@ public:
   /// getInstrItineraryForCPU - Get scheduling itinerary of a CPU.
   ///
   InstrItineraryData getInstrItineraryForCPU(StringRef CPU) const;
+
+  /// getFeatureBits - Get the feature bits for a CPU (optionally supplemented
+  /// with feature string).
+  uint64_t getFeatureBits(StringRef CPU, StringRef FS) const;
 };
 
 } // End llvm namespace
index c401b7e1de0070c5e331145f1d17d3b682f938b6..1874bf03bd864068034d671d7c28740e23f0ec88 100644 (file)
@@ -42,3 +42,11 @@ MCSubtargetInfo::getInstrItineraryForCPU(StringRef CPU) const {
   return InstrItineraryData(Stages, OperandCycles, ForwardingPathes,
                             (InstrItinerary *)Found->Value);
 }
+
+/// getFeatureBits - Get the feature bits for a CPU (optionally supplemented
+/// with feature string).
+uint64_t MCSubtargetInfo::getFeatureBits(StringRef CPU, StringRef FS) const {
+  SubtargetFeatures Features(FS);
+  return Features.getFeatureBits(CPU, ProcDesc, NumProcs,
+                                 ProcFeatures, NumFeatures);
+}