diff options
author | Eric Christopher <echristo@gmail.com> | 2015-10-09 18:39:55 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2015-10-09 18:39:55 +0000 |
commit | 8c47b427f9a152e33dbbf0da2fc415207008bb8e (patch) | |
tree | 60a18428ed20f9820402a63fcf307c1868f06960 | |
parent | 2c23a80bbfeaa0e6351fa8c9a717fdbdb942b8d2 (diff) | |
download | bcm5719-llvm-8c47b427f9a152e33dbbf0da2fc415207008bb8e.tar.gz bcm5719-llvm-8c47b427f9a152e33dbbf0da2fc415207008bb8e.zip |
constify the feature vector going into initFeatureMap as it shouldn't
change the set of features.
llvm-svn: 249871
-rw-r--r-- | clang/include/clang/Basic/TargetInfo.h | 2 | ||||
-rw-r--r-- | clang/lib/Basic/TargetInfo.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 54 |
3 files changed, 34 insertions, 28 deletions
diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 638b6790f75..4e395fce322 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -753,7 +753,7 @@ public: /// \return False on error (invalid features). virtual bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU, - std::vector<std::string> &FeatureVec) const; + const std::vector<std::string> &FeatureVec) const; /// \brief Get the ABI currently in use. virtual StringRef getABI() const { return StringRef(); } diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp index 7b52eb0f081..2afcf1673b0 100644 --- a/clang/lib/Basic/TargetInfo.cpp +++ b/clang/lib/Basic/TargetInfo.cpp @@ -312,9 +312,9 @@ void TargetInfo::adjust(const LangOptions &Opts) { } } -bool TargetInfo::initFeatureMap(llvm::StringMap<bool> &Features, - DiagnosticsEngine &Diags, StringRef CPU, - std::vector<std::string> &FeatureVec) const { +bool TargetInfo::initFeatureMap( + llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU, + const std::vector<std::string> &FeatureVec) const { for (const auto &F : FeatureVec) { const char *Name = F.c_str(); // Apply the feature via the target. diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index e733fc5466c..c66df0dc614 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -887,9 +887,10 @@ public: void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override; - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override; + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override; bool handleTargetFeatures(std::vector<std::string> &Features, DiagnosticsEngine &Diags) override; @@ -1253,7 +1254,7 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, // go ahead and error since the customer has expressed a somewhat incompatible // set of options. static bool ppcUserFeaturesCheck(DiagnosticsEngine &Diags, - std::vector<std::string> &FeaturesVec) { + const std::vector<std::string> &FeaturesVec) { if (std::find(FeaturesVec.begin(), FeaturesVec.end(), "-vsx") != FeaturesVec.end()) { @@ -1275,9 +1276,9 @@ static bool ppcUserFeaturesCheck(DiagnosticsEngine &Diags, return true; } -bool PPCTargetInfo::initFeatureMap(llvm::StringMap<bool> &Features, - DiagnosticsEngine &Diags, StringRef CPU, - std::vector<std::string> &FeaturesVec) const { +bool PPCTargetInfo::initFeatureMap( + llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU, + const std::vector<std::string> &FeaturesVec) const { Features["altivec"] = llvm::StringSwitch<bool>(CPU) .Case("7400", true) .Case("g4", true) @@ -2400,9 +2401,10 @@ public: // initFeatureMap which calls this repeatedly. static void setFeatureEnabledImpl(llvm::StringMap<bool> &Features, StringRef Name, bool Enabled); - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override; + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override; bool hasFeature(StringRef Feature) const override; bool handleTargetFeatures(std::vector<std::string> &Features, DiagnosticsEngine &Diags) override; @@ -2530,7 +2532,7 @@ bool X86TargetInfo::setFPMath(StringRef Name) { bool X86TargetInfo::initFeatureMap( llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU, - std::vector<std::string> &FeaturesVec) const { + const std::vector<std::string> &FeaturesVec) const { // FIXME: This *really* should not be here. // X86_64 always has SSE2. if (getTriple().getArch() == llvm::Triple::x86_64) @@ -4427,10 +4429,11 @@ public: } // FIXME: This should be based on Arch attributes, not CPU names. - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override { - + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override { + std::vector<const char*> TargetFeatures; // get default FPU features @@ -5936,9 +5939,10 @@ public: return CPUKnown; } - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override { + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override { if (CPU == "zEC12") Features["transactional-execution"] = true; if (CPU == "z13") { @@ -6305,9 +6309,10 @@ public: .Default(false); } const std::string& getCPU() const { return CPU; } - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override { + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override { if (CPU == "octeon") Features["mips64r2"] = Features["cnmips"] = true; else @@ -6985,9 +6990,10 @@ protected: } private: - bool initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, - StringRef CPU, - std::vector<std::string> &FeaturesVec) const override { + bool + initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, + StringRef CPU, + const std::vector<std::string> &FeaturesVec) const override { if (CPU == "bleeding-edge") Features["simd128"] = true; return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec); |