> > > > - assert(Features[i][0] == '+' && "Invalid target feature!"); > > + assert(Feature[0] == '+' && "Invalid target feature!"); > > This assert is kind of pointless now, since we'll have continued in that > case and the following code will DTRT anyway. > > Was fairly pointless to begin with. I'll remove it :)
-eric > > X86SSEEnum Level = llvm::StringSwitch<X86SSEEnum>(Feature) > > - .Case("avx512f", AVX512F) > > - .Case("avx2", AVX2) > > - .Case("avx", AVX) > > - .Case("sse4.2", SSE42) > > - .Case("sse4.1", SSE41) > > - .Case("ssse3", SSSE3) > > - .Case("sse3", SSE3) > > - .Case("sse2", SSE2) > > - .Case("sse", SSE1) > > + .Case("+avx512f", AVX512F) > > + .Case("+avx2", AVX2) > > + .Case("+avx", AVX) > > + .Case("+sse4.2", SSE42) > > + .Case("+sse4.1", SSE41) > > + .Case("+ssse3", SSSE3) > > + .Case("+sse3", SSE3) > > + .Case("+sse2", SSE2) > > + .Case("+sse", SSE1) > > .Default(NoSSE); > > SSELevel = std::max(SSELevel, Level); > > > > MMX3DNowEnum ThreeDNowLevel = > > llvm::StringSwitch<MMX3DNowEnum>(Feature) > > - .Case("3dnowa", AMD3DNowAthlon) > > - .Case("3dnow", AMD3DNow) > > - .Case("mmx", MMX) > > + .Case("+3dnowa", AMD3DNowAthlon) > > + .Case("+3dnow", AMD3DNow) > > + .Case("+mmx", MMX) > > .Default(NoMMX3DNow); > > MMX3DNowLevel = std::max(MMX3DNowLevel, ThreeDNowLevel); > > > > XOPEnum XLevel = llvm::StringSwitch<XOPEnum>(Feature) > > - .Case("xop", XOP) > > - .Case("fma4", FMA4) > > - .Case("sse4a", SSE4A) > > + .Case("+xop", XOP) > > + .Case("+fma4", FMA4) > > + .Case("+sse4a", SSE4A) > > .Default(NoXOP); > > XOPLevel = std::max(XOPLevel, XLevel); > > } > > @@ -5247,12 +5147,12 @@ public: > > FPU = FPUMode; > > CRC = 0; > > Crypto = 0; > > - for (unsigned i = 0, e = Features.size(); i != e; ++i) { > > - if (Features[i] == "+neon") > > + for (const auto &Feature : Features) { > > + if (Feature == "+neon") > > FPU = NeonMode; > > - if (Features[i] == "+crc") > > + if (Feature == "+crc") > > CRC = 1; > > - if (Features[i] == "+crypto") > > + if (Feature == "+crypto") > > Crypto = 1; > > } > > > > @@ -5926,10 +5826,10 @@ public: > > bool handleTargetFeatures(std::vector<std::string> &Features, > > DiagnosticsEngine &Diags) override { > > HasTransactionalExecution = false; > > - for (unsigned i = 0, e = Features.size(); i != e; ++i) { > > - if (Features[i] == "+transactional-execution") > > + for (const auto &Feature : Features) { > > + if (Feature == "+transactional-execution") > > HasTransactionalExecution = true; > > - if (Features[i] == "+vector") > > + else if (Feature == "+vector") > > HasVector = true; > > } > > // If we use the vector ABI, vector types are 64-bit aligned. > > @@ -6477,29 +6377,28 @@ public: > > DspRev = NoDSP; > > HasFP64 = isFP64Default(); > > > > - for (std::vector<std::string>::iterator it = Features.begin(), > > - ie = Features.end(); it != ie; ++it) { > > - if (*it == "+single-float") > > + for (const auto &Feature : Features) { > > + if (Feature == "+single-float") > > IsSingleFloat = true; > > - else if (*it == "+soft-float") > > + else if (Feature == "+soft-float") > > FloatABI = SoftFloat; > > - else if (*it == "+mips16") > > + else if (Feature == "+mips16") > > IsMips16 = true; > > - else if (*it == "+micromips") > > + else if (Feature == "+micromips") > > IsMicromips = true; > > - else if (*it == "+dsp") > > + else if (Feature == "+dsp") > > DspRev = std::max(DspRev, DSP1); > > - else if (*it == "+dspr2") > > + else if (Feature == "+dspr2") > > DspRev = std::max(DspRev, DSP2); > > - else if (*it == "+msa") > > + else if (Feature == "+msa") > > HasMSA = true; > > - else if (*it == "+fp64") > > + else if (Feature == "+fp64") > > HasFP64 = true; > > - else if (*it == "-fp64") > > + else if (Feature == "-fp64") > > HasFP64 = false; > > - else if (*it == "+nan2008") > > + else if (Feature == "+nan2008") > > IsNan2008 = true; > > - else if (*it == "-nan2008") > > + else if (Feature == "-nan2008") > > IsNan2008 = false; > > } > > > > > > > > _______________________________________________ > > cfe-commits mailing list > > cfe-commits@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits