From c3a2e654f1e1c5cf956d0666d9c4c2f60a66f112 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 28 Sep 2011 05:56:05 +0000 Subject: [PATCH] Clean up a bit of the uses of CPU in the TargetInfo classes. This makes it an error if a CPU is provided for a target that doesn't implement logic handling CPU settings, to match the ABI settings. It also removes the CPU parameter from the getDefaultFeatures method. This parameter was always filled in with the same value as setCPU was called with, and at this point every single target implementation that referenced the CPU within this function has needed to store the CPU via setCPU anyways in order to implement other interface points. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140683 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/TargetInfo.h | 12 ++++-------- lib/Basic/Targets.cpp | 17 ++++++----------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h index fbca54d6f1..e5a732a4cc 100644 --- a/include/clang/Basic/TargetInfo.h +++ b/include/clang/Basic/TargetInfo.h @@ -479,11 +479,9 @@ public: /// language options which change the target configuration. virtual void setForcedLangOptions(LangOptions &Opts); - /// getDefaultFeatures - Get the default set of target features for - /// the \args CPU; this should include all legal feature strings on - /// the target. - virtual void getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const { + /// getDefaultFeatures - Get the default set of target features for the CPU; + /// this should include all legal feature strings on the target. + virtual void getDefaultFeatures(llvm::StringMap &Features) const { } /// getABI - Get the ABI in use. @@ -499,10 +497,8 @@ public: /// setCPU - Target the specific CPU. /// /// \return - False on error (invalid CPU name). - // - // FIXME: Remove this. virtual bool setCPU(const std::string &Name) { - return true; + return false; } /// setABI - Use the specific ABI. diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 245d8fd9d7..528f4a75d2 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -1205,8 +1205,7 @@ public: virtual bool setFeatureEnabled(llvm::StringMap &Features, const std::string &Name, bool Enabled) const; - virtual void getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const; + virtual void getDefaultFeatures(llvm::StringMap &Features) const; virtual void HandleTargetFeatures(std::vector &Features); virtual const char* getABI() const { return MMX3DNowLevel == NoMMX3DNow ? "no-mmx" : ""; @@ -1218,8 +1217,7 @@ public: } }; -void X86TargetInfo::getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const { +void X86TargetInfo::getDefaultFeatures(llvm::StringMap &Features) const { // FIXME: This should not be here. Features["3dnow"] = false; Features["3dnowa"] = false; @@ -2131,8 +2129,7 @@ public: return true; } - void getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const { + void getDefaultFeatures(llvm::StringMap &Features) const { if (CPU == "arm1136jf-s" || CPU == "arm1176jzf-s" || CPU == "mpcore") Features["vfp2"] = true; else if (CPU == "cortex-a8" || CPU == "cortex-a9") @@ -2815,8 +2812,7 @@ public: CPU = Name; return true; } - void getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const { + void getDefaultFeatures(llvm::StringMap &Features) const { Features[ABI] = true; Features[CPU] = true; } @@ -3106,8 +3102,7 @@ public: "f32:32:32-f64:64:64-p:32:32:32-v128:32:32"; } - void getDefaultFeatures(const std::string &CPU, - llvm::StringMap &Features) const { + void getDefaultFeatures(llvm::StringMap &Features) const { } virtual void getArchDefines(const LangOptions &Opts, MacroBuilder &Builder) const { @@ -3420,7 +3415,7 @@ TargetInfo *TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags, // Compute the default target features, we need the target to handle this // because features may have dependencies on one another. llvm::StringMap Features; - Target->getDefaultFeatures(Opts.CPU, Features); + Target->getDefaultFeatures(Features); // Apply the user specified deltas. for (std::vector::const_iterator it = Opts.Features.begin(), -- 2.40.0