OSDN Git Service

Modify df_iterator to support post-order actions
authorDavid Callahan <dcallahan@fb.com>
Wed, 5 Oct 2016 21:36:16 +0000 (21:36 +0000)
committerDavid Callahan <dcallahan@fb.com>
Wed, 5 Oct 2016 21:36:16 +0000 (21:36 +0000)
commit8be61a8c7e1f0d0c7ac30e1457a36af5a01fcaf7
treec2cb50587ef02f1e416ae6aea50e29fac1f5b72b
parent5ea3570b6a160837d0c1456c2efc7fbe72af7591
Modify df_iterator to support post-order actions

Summary: This makes a change to the state used to maintain visited information for depth first iterator. We know assume a method "completed(...)" which is called after all children of a node have been visited. In all existing cases, this method does nothing so this patch has no functional changes.  It will however allow a client to distinguish back from cross edges in a DFS tree.

Reviewers: nadav, mehdi_amini, dberlin

Subscribers: MatzeB, mzolotukhin, twoh, freik, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283391 91177308-0d34-0410-b5e6-96231b3b80d8
14 files changed:
include/llvm/ADT/DepthFirstIterator.h
include/llvm/Analysis/LoopInfoImpl.h
include/llvm/Analysis/RegionInfo.h
include/llvm/Analysis/RegionIterator.h
include/llvm/CodeGen/MachineRegionInfo.h
include/llvm/IR/Dominators.h
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/LiveVariables.cpp
lib/CodeGen/MachineVerifier.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/CodeGen/UnreachableBlockElim.cpp
lib/Target/X86/X86FloatingPoint.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
unittests/ADT/DepthFirstIteratorTest.cpp