[STLExtras] Add distance() for ranges, pred_size(), and succ_size()
authorVedant Kumar <vsk@apple.com>
Thu, 10 May 2018 23:01:54 +0000 (23:01 +0000)
committerVedant Kumar <vsk@apple.com>
Thu, 10 May 2018 23:01:54 +0000 (23:01 +0000)
commite0b5f86b3083747beaf5d7639333af0109c9e6ef
treef76486dec408880ad53ce624064ccb10f2b9faea
parent4855c5f717fde5207033e97989b20b273298a57b
[STLExtras] Add distance() for ranges, pred_size(), and succ_size()

This commit adds a wrapper for std::distance() which works with ranges.
As it would be a common case to write `distance(predecessors(BB))`, this
also introduces `pred_size()` and `succ_size()` helpers to make that
easier to write.

Differential Revision: https://reviews.llvm.org/D46668

llvm-svn: 332057
24 files changed:
llvm/include/llvm/ADT/STLExtras.h
llvm/include/llvm/IR/CFG.h
llvm/lib/Analysis/BranchProbabilityInfo.cpp
llvm/lib/Analysis/LazyCallGraph.cpp
llvm/lib/Analysis/LoopInfo.cpp
llvm/lib/AsmParser/LLParser.cpp
llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/lib/CodeGen/ImplicitNullChecks.cpp
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/IR/Value.cpp
llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
llvm/lib/Transforms/IPO/PartialInlining.cpp
llvm/lib/Transforms/Scalar/GVNHoist.cpp
llvm/lib/Transforms/Scalar/JumpThreading.cpp
llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
llvm/lib/Transforms/Utils/CloneFunction.cpp
llvm/lib/Transforms/Utils/Local.cpp
llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
llvm/lib/Transforms/Utils/SimplifyCFG.cpp
llvm/lib/Transforms/Vectorize/VPlan.cpp
llvm/unittests/ADT/IteratorTest.cpp
llvm/unittests/IR/BasicBlockTest.cpp