[CFLAA] More cleanup for MSVC

Remove more initializer lists, etc.

llvm-svn: 216994
This commit is contained in:
Hal Finkel 2014-09-02 23:29:48 +00:00
parent c0eb15304e
commit ca616acd73
2 changed files with 14 additions and 11 deletions

View File

@ -343,13 +343,13 @@ public:
tryInterproceduralAnalysis(const SmallVectorImpl<Function *> &Fns, tryInterproceduralAnalysis(const SmallVectorImpl<Function *> &Fns,
Value *FuncValue, Value *FuncValue,
const iterator_range<User::op_iterator> &Args) { const iterator_range<User::op_iterator> &Args) {
LLVM_CONSTEXPR unsigned ExpectedMaxArgs = 8; const unsigned ExpectedMaxArgs = 8;
LLVM_CONSTEXPR unsigned MaxSupportedArgs = 50; const unsigned MaxSupportedArgs = 50;
assert(Fns.size() > 0); assert(Fns.size() > 0);
// I put this here to give us an upper bound on time taken by IPA. Is it // I put this here to give us an upper bound on time taken by IPA. Is it
// really (realistically) needed? Keep in mind that we do have an n^2 algo. // really (realistically) needed? Keep in mind that we do have an n^2 algo.
if (std::distance(Args.begin(), Args.end()) > MaxSupportedArgs) if (std::distance(Args.begin(), Args.end()) > (int) MaxSupportedArgs)
return false; return false;
// Exit early if we'll fail anyway // Exit early if we'll fail anyway
@ -400,8 +400,8 @@ public:
} }
} }
if (AddEdge) if (AddEdge)
Output.push_back({FuncValue, ArgVal, EdgeType::Assign, Output.push_back(Edge(FuncValue, ArgVal, EdgeType::Assign,
StratifiedAttrs().flip()}); StratifiedAttrs().flip()));
} }
if (Parameters.size() != Arguments.size()) if (Parameters.size() != Arguments.size())
@ -537,12 +537,15 @@ public:
typedef std::size_t Node; typedef std::size_t Node;
private: private:
LLVM_CONSTEXPR static Node StartNode = Node(0); const static Node StartNode = Node(0);
struct Edge { struct Edge {
EdgeTypeT Weight; EdgeTypeT Weight;
Node Other; Node Other;
Edge(const EdgeTypeT &W, const Node &N)
: Weight(W), Other(N) {}
bool operator==(const Edge &E) const { bool operator==(const Edge &E) const {
return Weight == E.Weight && Other == E.Other; return Weight == E.Weight && Other == E.Other;
} }
@ -620,7 +623,7 @@ public:
// ----- Actual graph-related things ----- // // ----- Actual graph-related things ----- //
WeightedBidirectionalGraph() = default; WeightedBidirectionalGraph() {}
WeightedBidirectionalGraph(WeightedBidirectionalGraph<EdgeTypeT> &&Other) WeightedBidirectionalGraph(WeightedBidirectionalGraph<EdgeTypeT> &&Other)
: NodeImpls(std::move(Other.NodeImpls)) {} : NodeImpls(std::move(Other.NodeImpls)) {}
@ -644,8 +647,8 @@ public:
assert(inbounds(To)); assert(inbounds(To));
auto &FromNode = getNode(From); auto &FromNode = getNode(From);
auto &ToNode = getNode(To); auto &ToNode = getNode(To);
FromNode.Edges.push_back(Edge{Weight, To}); FromNode.Edges.push_back(Edge(Weight, To));
ToNode.Edges.push_back(Edge{ReverseWeight, From}); ToNode.Edges.push_back(Edge(ReverseWeight, From));
} }
EdgeIterable edgesFor(const Node &N) const { EdgeIterable edgesFor(const Node &N) const {

View File

@ -54,8 +54,8 @@ struct StratifiedLink {
// Optional<StratifiedIndex> because Optional<StratifiedIndex> would // Optional<StratifiedIndex> because Optional<StratifiedIndex> would
// eat up a considerable amount of extra memory, after struct // eat up a considerable amount of extra memory, after struct
// padding/alignment is taken into account. // padding/alignment is taken into account.
static LLVM_CONSTEXPR auto SetSentinel = static const auto SetSentinel =
std::numeric_limits<StratifiedIndex>::max(); std::numeric_limits<StratifiedIndex>::max();
// \brief The index for the set "above" current // \brief The index for the set "above" current
StratifiedIndex Above; StratifiedIndex Above;