Constify subtarget info properly so that we dont cast away the const in
authorRoman Divacky <rdivacky@freebsd.org>
Wed, 5 Sep 2012 21:43:57 +0000 (21:43 +0000)
committerRoman Divacky <rdivacky@freebsd.org>
Wed, 5 Sep 2012 21:43:57 +0000 (21:43 +0000)
the SubtargetInfoKV tables. Found by gcc48 -Wcast-qual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163251 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCSubtargetInfo.h
include/llvm/MC/SubtargetFeature.h
lib/MC/MCSubtargetInfo.cpp
lib/MC/SubtargetFeature.cpp
utils/TableGen/SubtargetEmitter.cpp

index 31d632de60be2b5d364f135d9507805fa59d303f..6c96f497166cb80bf08ee134cf6b244632828455 100644 (file)
@@ -72,7 +72,7 @@ public:
 
   /// getSchedModelForCPU - Get the machine model of a CPU.
   ///
-  MCSchedModel *getSchedModelForCPU(StringRef CPU) const;
+  const MCSchedModel *getSchedModelForCPU(StringRef CPU) const;
 
   /// getInstrItineraryForCPU - Get scheduling itinerary of a CPU.
   ///
index 507d8827750c1ceb39238145f5af44d7142dc43f..87c5fd3969d53cb44a100a49a208716dd5d7b19b 100644 (file)
@@ -50,7 +50,7 @@ struct SubtargetFeatureKV {
 //
 struct SubtargetInfoKV {
   const char *Key;                      // K-V key string
-  void *Value;                          // K-V pointer value
+  const void *Value;                    // K-V pointer value
 
   // Compare routine for std binary search
   bool operator<(const SubtargetInfoKV &S) const {
@@ -96,8 +96,8 @@ public:
                           size_t FeatureTableSize);
 
   /// Get scheduling itinerary of a CPU.
-  void *getItinerary(const StringRef CPU,
-                     const SubtargetInfoKV *Table, size_t TableSize);
+  const void *getItinerary(const StringRef CPU,
+                           const SubtargetInfoKV *Table, size_t TableSize);
 
   /// Print feature string.
   void print(raw_ostream &OS) const;
index 05c83f760a2dfe52cc5e606066979b20ea965921..cbf853cd8ee8e39e05c7ad61c17c48cd098b6202 100644 (file)
@@ -70,7 +70,7 @@ uint64_t MCSubtargetInfo::ToggleFeature(StringRef FS) {
 }
 
 
-MCSchedModel *
+const MCSchedModel *
 MCSubtargetInfo::getSchedModelForCPU(StringRef CPU) const {
   assert(ProcSchedModel && "Processor machine model not available!");
 
@@ -93,11 +93,11 @@ MCSubtargetInfo::getSchedModelForCPU(StringRef CPU) const {
     return &MCSchedModel::DefaultSchedModel;
   }
   assert(Found->Value && "Missing processor SchedModel value");
-  return (MCSchedModel *)Found->Value;
+  return (const MCSchedModel *)Found->Value;
 }
 
 InstrItineraryData
 MCSubtargetInfo::getInstrItineraryForCPU(StringRef CPU) const {
-  MCSchedModel *SchedModel = getSchedModelForCPU(CPU);
+  const MCSchedModel *SchedModel = getSchedModelForCPU(CPU);
   return InstrItineraryData(SchedModel, Stages, OperandCycles, ForwardingPaths);
 }
index 0a44e7731be39aa0c058ecf52fc649cd2dd4e2f1..f43197b5c28e23a6c8469742b864b41f0aac857e 100644 (file)
@@ -337,9 +337,9 @@ uint64_t SubtargetFeatures::getFeatureBits(const StringRef CPU,
 }
 
 /// Get scheduling itinerary of a CPU.
-void *SubtargetFeatures::getItinerary(const StringRef CPU,
-                                      const SubtargetInfoKV *Table,
-                                      size_t TableSize) {
+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++) {
index 34723439596ef7422834497b761bd1d3db062758..5dfd716d8976a99a68e6e2d50399cba5152b20ee 100644 (file)
@@ -626,7 +626,7 @@ void SubtargetEmitter::EmitProcessorLookup(raw_ostream &OS) {
     // Emit as { "cpu", procinit },
     OS << "  { "
        << "\"" << Name << "\", "
-       << "(void *)&" << ProcModelName;
+       << "(const void *)&" << ProcModelName;
 
     OS << " }";