summaryrefslogtreecommitdiff
path: root/basicblock.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2019-03-27 20:37:31 -0400
committerPeter LaFosse <peter@vector35.com>2019-04-05 10:51:35 -0400
commitc66269f43fa42f3d880139a6969944bbc0a461e1 (patch)
tree1130bad12f1707a2f24a62dd888a2394f78e6861 /basicblock.cpp
parenteb5717286f88241843fa5dd2f72fc1dec1d4c0e4 (diff)
add post dominance apis
Diffstat (limited to 'basicblock.cpp')
-rw-r--r--basicblock.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/basicblock.cpp b/basicblock.cpp
index e03180b5..c34a4bb7 100644
--- a/basicblock.cpp
+++ b/basicblock.cpp
@@ -185,10 +185,10 @@ bool BasicBlock::CanExit() const
}
-set<Ref<BasicBlock>> BasicBlock::GetDominators() const
+set<Ref<BasicBlock>> BasicBlock::GetDominators(bool post) const
{
size_t count;
- BNBasicBlock** blocks = BNGetBasicBlockDominators(m_object, &count);
+ BNBasicBlock** blocks = BNGetBasicBlockDominators(m_object, &count, post);
set<Ref<BasicBlock>> result;
for (size_t i = 0; i < count; i++)
@@ -199,10 +199,10 @@ set<Ref<BasicBlock>> BasicBlock::GetDominators() const
}
-set<Ref<BasicBlock>> BasicBlock::GetStrictDominators() const
+set<Ref<BasicBlock>> BasicBlock::GetStrictDominators(bool post) const
{
size_t count;
- BNBasicBlock** blocks = BNGetBasicBlockStrictDominators(m_object, &count);
+ BNBasicBlock** blocks = BNGetBasicBlockStrictDominators(m_object, &count, post);
set<Ref<BasicBlock>> result;
for (size_t i = 0; i < count; i++)
@@ -213,19 +213,19 @@ set<Ref<BasicBlock>> BasicBlock::GetStrictDominators() const
}
-Ref<BasicBlock> BasicBlock::GetImmediateDominator() const
+Ref<BasicBlock> BasicBlock::GetImmediateDominator(bool post) const
{
- BNBasicBlock* result = BNGetBasicBlockImmediateDominator(m_object);
+ BNBasicBlock* result = BNGetBasicBlockImmediateDominator(m_object, post);
if (!result)
return nullptr;
return new BasicBlock(result);
}
-set<Ref<BasicBlock>> BasicBlock::GetDominatorTreeChildren() const
+set<Ref<BasicBlock>> BasicBlock::GetDominatorTreeChildren(bool post) const
{
size_t count;
- BNBasicBlock** blocks = BNGetBasicBlockDominatorTreeChildren(m_object, &count);
+ BNBasicBlock** blocks = BNGetBasicBlockDominatorTreeChildren(m_object, &count, post);
set<Ref<BasicBlock>> result;
for (size_t i = 0; i < count; i++)
@@ -236,10 +236,10 @@ set<Ref<BasicBlock>> BasicBlock::GetDominatorTreeChildren() const
}
-set<Ref<BasicBlock>> BasicBlock::GetDominanceFrontier() const
+set<Ref<BasicBlock>> BasicBlock::GetDominanceFrontier(bool post) const
{
size_t count;
- BNBasicBlock** blocks = BNGetBasicBlockDominanceFrontier(m_object, &count);
+ BNBasicBlock** blocks = BNGetBasicBlockDominanceFrontier(m_object, &count, post);
set<Ref<BasicBlock>> result;
for (size_t i = 0; i < count; i++)