From: Chandler Carruth Date: Thu, 15 Mar 2012 00:50:21 +0000 (+0000) Subject: Don't assume that the arguments are processed in some particular order. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0e33d9fea245d67f71a7f7138c8094a9c809613e;p=oota-llvm.git Don't assume that the arguments are processed in some particular order. This appears to not be the case with dragonegg at least in some contexts. Hopefully will fix the bootstrap assert failure there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152763 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/InlineCost.cpp b/lib/Analysis/InlineCost.cpp index fa683f695e7..37aa729552b 100644 --- a/lib/Analysis/InlineCost.cpp +++ b/lib/Analysis/InlineCost.cpp @@ -434,9 +434,11 @@ void InlineCostAnalyzer::FunctionInfo::countCodeReductionForPointerPair( = PointerArgs.find(OtherArg); if (ArgIt == PointerArgs.end()) continue; - assert(ArgIt->second < ArgIdx); + std::pair ArgPair(ArgIt->second, ArgIdx); + if (ArgIt->second > ArgIdx) + std::swap(ArgPair.first, ArgPair.second); - PointerArgPairWeights[std::make_pair(ArgIt->second, ArgIdx)] + PointerArgPairWeights[ArgPair] += countCodeReductionForConstant(Metrics, I); } } while (!Worklist.empty());