Simplify this logic of creating a default Features object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103507 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2010-05-11 20:46:04 +00:00
parent 82b07dc499
commit f6d8481ada

View File

@ -370,32 +370,14 @@ void SubtargetFeatures::getDefaultSubtargetFeatures(const std::string &CPU,
const Triple& Triple) {
setCPU(CPU);
const char *Attrs = 0;
switch (Triple.getVendor()) {
case Triple::Apple:
switch (Triple.getArch()) {
case Triple::ppc: // powerpc-apple-*
Attrs = "altivec";
break;
case Triple::ppc64: // powerpc64-apple-*
Attrs = "64bit,altivec";
break;
default:
break;
if (Triple.getVendor() == Triple::Apple) {
if (Triple.getArch() == Triple::ppc) {
// powerpc-apple-*
AddFeature("altivec");
} else if (Triple.getArch() == Triple::ppc64) {
// powerpc64-apple-*
AddFeature("64bit");
AddFeature("altivec");
}
break;
default:
break;
}
if (!Attrs) return;
StringRef SR(Attrs);
while (!SR.empty()) {
std::pair<StringRef, StringRef> Res = SR.split(',');
AddFeature(Res.first);
SR = Res.second;
}
}