From 24d7fa2b6ed7956c4d3c5d778c2dd7dac1165e36 Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Wed, 15 Dec 2010 01:22:34 +0000 Subject: [PATCH] Copy-pastos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121829 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvmc/src/Hooks.cpp | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/tools/llvmc/src/Hooks.cpp b/tools/llvmc/src/Hooks.cpp index bcf4a530dcd..5aa250e512b 100644 --- a/tools/llvmc/src/Hooks.cpp +++ b/tools/llvmc/src/Hooks.cpp @@ -10,19 +10,19 @@ namespace hooks { // See http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 inline unsigned NextHighestPowerOf2 (unsigned i) { + --i; i |= i >> 1; i |= i >> 2; i |= i >> 4; i |= i >> 8; i |= i >> 16; - i++; + ++i; return i; } typedef std::vector StrVec; typedef llvm::StringMap ArgMap; - /// AddPlusOrMinus - Convert 'no-foo' to '-foo' and 'foo' to '+foo'. void AddPlusOrMinus (const std::string& Arg, std::string& out) { if (Arg.find("no-") == 0 && Arg[3] != 0) { @@ -78,14 +78,22 @@ std::string ConvertMArchToMAttr(const StrVec& Opts) { std::string mcpu("-mcpu="); bool mattrTouched = false; bool mcpuTouched = false; - bool firstIter = true; for (StrVec::const_iterator B = Opts.begin(), E = Opts.end(); B!=E; ++B) { const std::string& Arg = *B; - if (firstIter) - firstIter = false; - else + // Check if the argument should be forwarded to -mcpu instead of -mattr. + { + ArgMap::const_iterator I = MArchMCpuMap.find(Arg); + + if (I != MArchMCpuMap.end()) { + mcpuTouched = true; + mcpu += I->getValue(); + continue; + } + } + + if (mattrTouched) mattr += ","; // Check if the argument is a special case. @@ -93,23 +101,13 @@ std::string ConvertMArchToMAttr(const StrVec& Opts) { ArgMap::const_iterator I = MArchMap.find(Arg); if (I != MArchMap.end()) { + mattrTouched = true; mattr += '+'; mattr += I->getValue(); continue; } } - // Check if the argument should be forwarded to -mcpu instead of -mattr. - { - ArgMap::const_iterator I = MArchMCpuMap.find(Arg); - - if (I != MArchMCpuMap.end()) { - mcpuTouched = true; - mcpu += I->getValue(); - continue; - } - } - AddPlusOrMinus(Arg, mattr); } -- 2.34.1