On 09/15/2011 01:13 PM, Justin Holewinski wrote: > Author: jholewinski > Date: Thu Sep 15 07:13:38 2011 > New Revision: 139789 > > URL: http://llvm.org/viewvc/llvm-project?rev=139789&view=rev > Log: > PTX: Define target options Hey Justin,
this is nice, but you might shorten the code slightly. > Modified: > cfe/trunk/lib/Basic/Targets.cpp > > Modified: cfe/trunk/lib/Basic/Targets.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=139789&r1=139788&r2=139789&view=diff > ============================================================================== > --- cfe/trunk/lib/Basic/Targets.cpp (original) > +++ cfe/trunk/lib/Basic/Targets.cpp Thu Sep 15 07:13:38 2011 > @@ -916,6 +916,10 @@ > // FIXME: implement > return "typedef char* __builtin_va_list;"; > } > + > + virtual bool setFeatureEnabled(llvm::StringMap<bool> &Features, > + const std::string&Name, > + bool Enabled) const; > }; > > const Builtin::Info PTXTargetInfo::BuiltinInfo[] = { > @@ -935,6 +939,91 @@ > NumNames = llvm::array_lengthof(GCCRegNames); > } > > + bool PTXTargetInfo::setFeatureEnabled(llvm::StringMap<bool> &Features, > + const std::string&Name, > + bool Enabled) const { > + if (Enabled) { > + if (Name == "double") > + Features["double"] = true; > + else if (Name == "no-fma") > + Features["no-fma"] = true; > + else if (Name == "compute10") > + Features["compute10"] = true; > + else if (Name == "compute11") > + Features["compute11"] = true; > + else if (Name == "compute12") > + Features["compute12"] = true; > + else if (Name == "compute13") > + Features["compute13"] = true; > + else if (Name == "compute20") > + Features["compute20"] = true; > + else if (Name == "ptx20") > + Features["ptx20"] = true; > + else if (Name == "ptx21") > + Features["ptx21"] = true; > + else if (Name == "ptx22") > + Features["ptx22"] = true; > + else if (Name == "ptx23") > + Features["ptx23"] = true; > + else if (Name == "sm10") > + Features["sm10"] = true; > + else if (Name == "sm11") > + Features["sm11"] = true; > + else if (Name == "sm12") > + Features["sm12"] = true; > + else if (Name == "sm13") > + Features["sm13"] = true; > + else if (Name == "sm20") > + Features["sm20"] = true; > + else if (Name == "sm21") > + Features["sm21"] = true; > + else if (Name == "sm22") > + Features["sm22"] = true; > + else if (Name == "sm23") > + Features["sm23"] = true; > + } else { > + if (Name == "double") > + Features["double"] = false; > + else if (Name == "no-fma") > + Features["no-fma"] = false; > + else if (Name == "compute10") > + Features["compute10"] = false; > + else if (Name == "compute11") > + Features["compute11"] = false; > + else if (Name == "compute12") > + Features["compute12"] = false; > + else if (Name == "compute13") > + Features["compute13"] = false; > + else if (Name == "compute20") > + Features["compute20"] = false; > + else if (Name == "ptx20") > + Features["ptx20"] = false; > + else if (Name == "ptx21") > + Features["ptx21"] = false; > + else if (Name == "ptx22") > + Features["ptx22"] = false; > + else if (Name == "ptx23") > + Features["ptx23"] = false; > + else if (Name == "sm10") > + Features["sm10"] = false; > + else if (Name == "sm11") > + Features["sm11"] = false; > + else if (Name == "sm12") > + Features["sm12"] = false; > + else if (Name == "sm13") > + Features["sm13"] = false; > + else if (Name == "sm20") > + Features["sm20"] = false; > + else if (Name == "sm21") > + Features["sm21"] = false; > + else if (Name == "sm22") > + Features["sm22"] = false; > + else if (Name == "sm23") > + Features["sm23"] = false; > + } Does the following code achieve the same? std::set<std::string> AvailableFeatures; AvailableFeatures.add("double"); AvailableFeatures.add("no-fma"); AvailableFeatures.add("compute10"); [...] if (AvailableFeatures.count(Name)) Features[Name] = Enabled; You may want to move the AvailableFeatures initialization in the constructure. Cheers Tobi _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
