mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
[Dominators] Add DomTreeUpdater constructor from DT* and PDT*
Summary: Previously, if a function accepts an optional DT pointer, ``` void Foo (.., DominatorTree * DT = nullptr) { ... if(DT) DomTreeUpdater(*DT, ...).insertEdge(A, B); if(DT){ DomTreeUpdater DTU(*DT, ...); ... // Construct the update vector and applyUpdates } ... if(DT){ DomTreeUpdater DTU(*DT, ...); ... // Construct the update vector and applyUpdates } } ``` After this patch, it can be simplified as ``` void Foo (.., DominatorTree * DT = nullptr) { DomTreeUpdater DTU(DT, ...); ... DTU.insertEdge(A, B); if(DT){ ... // Construct the update vector and applyUpdates } ... if(DT){ ... // Construct the update vector and applyUpdates } } ``` Patch by Chijun Sima <simachijun@gmail.com>. Reviewers: kuhar, brzycki, dmgreen Reviewed By: kuhar Author: NutshellySima Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D48923 llvm-svn: 336294
This commit is contained in:
parent
680e014fa4
commit
d5576313e7
@ -31,11 +31,18 @@ public:
|
||||
explicit DomTreeUpdater(UpdateStrategy Strategy_) : Strategy(Strategy_) {}
|
||||
DomTreeUpdater(DominatorTree &DT_, UpdateStrategy Strategy_)
|
||||
: DT(&DT_), Strategy(Strategy_) {}
|
||||
DomTreeUpdater(DominatorTree *DT_, UpdateStrategy Strategy_)
|
||||
: DT(DT_), Strategy(Strategy_) {}
|
||||
DomTreeUpdater(PostDominatorTree &PDT_, UpdateStrategy Strategy_)
|
||||
: PDT(&PDT_), Strategy(Strategy_) {}
|
||||
DomTreeUpdater(PostDominatorTree *PDT_, UpdateStrategy Strategy_)
|
||||
: PDT(PDT_), Strategy(Strategy_) {}
|
||||
DomTreeUpdater(DominatorTree &DT_, PostDominatorTree &PDT_,
|
||||
UpdateStrategy Strategy_)
|
||||
: DT(&DT_), PDT(&PDT_), Strategy(Strategy_) {}
|
||||
DomTreeUpdater(DominatorTree *DT_, PostDominatorTree *PDT_,
|
||||
UpdateStrategy Strategy_)
|
||||
: DT(DT_), PDT(PDT_), Strategy(Strategy_) {}
|
||||
|
||||
~DomTreeUpdater() { flush(); }
|
||||
|
||||
|
@ -235,7 +235,8 @@ TEST(DomTreeUpdater, LazyUpdateDTBasicOperations) {
|
||||
|
||||
// Make the DTU.
|
||||
DominatorTree DT(*F);
|
||||
DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
PostDominatorTree *PDT = nullptr;
|
||||
DomTreeUpdater DTU(&DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
ASSERT_TRUE(DTU.hasDomTree());
|
||||
ASSERT_FALSE(DTU.hasPostDomTree());
|
||||
ASSERT_EQ(DTU.getUpdateStrategy(), DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
@ -323,7 +324,8 @@ TEST(DomTreeUpdater, LazyUpdateDTInheritedPreds) {
|
||||
|
||||
// Make the DTU.
|
||||
DominatorTree DT(*F);
|
||||
DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
PostDominatorTree *PDT = nullptr;
|
||||
DomTreeUpdater DTU(&DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
ASSERT_TRUE(DTU.hasDomTree());
|
||||
ASSERT_FALSE(DTU.hasPostDomTree());
|
||||
ASSERT_EQ(DTU.getUpdateStrategy(), DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
@ -449,7 +451,7 @@ TEST(DomTreeUpdater, LazyUpdateBasicOperations) {
|
||||
// Make the DTU.
|
||||
DominatorTree DT(*F);
|
||||
PostDominatorTree PDT(*F);
|
||||
DomTreeUpdater DTU(DT, PDT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
DomTreeUpdater DTU(&DT, &PDT, DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
ASSERT_TRUE(DTU.hasDomTree());
|
||||
ASSERT_TRUE(DTU.hasPostDomTree());
|
||||
ASSERT_EQ(DTU.getUpdateStrategy(), DomTreeUpdater::UpdateStrategy::Lazy);
|
||||
|
Loading…
Reference in New Issue
Block a user