From 1583e99c23af03b085a052ab064a8daf794cf719 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Mon, 3 Mar 2014 10:42:58 +0000 Subject: [C++11] Add two range adaptor views to User: operands and operand_values. The first provides a range view over operand Use objects, and the second provides a range view over the Value*s being used by those operands. The naming is "STL-style" rather than "LLVM-style" because we have historically named iterator methods STL-style, and range methods seem to have far more in common with their iterator counterparts than with "normal" APIs. Feel free to bikeshed on this one if you want, I'm happy to change these around if people feel strongly. I've switched code in SROA and LCG to exercise these mostly to ensure they work correctly -- we don't really have an easy way to unittest this and they're trivial. llvm-svn: 202687 --- llvm/lib/Analysis/LazyCallGraph.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'llvm/lib/Analysis/LazyCallGraph.cpp') diff --git a/llvm/lib/Analysis/LazyCallGraph.cpp b/llvm/lib/Analysis/LazyCallGraph.cpp index 9e0559829de..74eef7b68f6 100644 --- a/llvm/lib/Analysis/LazyCallGraph.cpp +++ b/llvm/lib/Analysis/LazyCallGraph.cpp @@ -40,11 +40,9 @@ static void findCallees( continue; } - for (User::value_op_iterator OI = C->value_op_begin(), - OE = C->value_op_end(); - OI != OE; ++OI) - if (Visited.insert(cast(*OI))) - Worklist.push_back(cast(*OI)); + for (Value *Op : C->operand_values()) + if (Visited.insert(cast(Op))) + Worklist.push_back(cast(Op)); } } @@ -56,10 +54,8 @@ LazyCallGraph::Node::Node(LazyCallGraph &G, Function &F) : G(G), F(F) { for (Function::iterator BBI = F.begin(), BBE = F.end(); BBI != BBE; ++BBI) for (BasicBlock::iterator II = BBI->begin(), IE = BBI->end(); II != IE; ++II) - for (User::value_op_iterator OI = II->value_op_begin(), - OE = II->value_op_end(); - OI != OE; ++OI) - if (Constant *C = dyn_cast(*OI)) + for (Value *Op : II->operand_values()) + if (Constant *C = dyn_cast(Op)) if (Visited.insert(C)) Worklist.push_back(C); -- cgit v1.2.3