mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
DominatorTreeAnalysis.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <memory>
6
#include <string>
7
#include <vector>
8
9
#include "
mini-llvm/ir/Function.h
"
10
#include "
mini-llvm/ir/Instruction.h
"
11
#include "
mini-llvm/opt/ir/FunctionAnalysis.h
"
12
#include "
mini-llvm/utils/Compiler.h
"
13
14
namespace
mini_llvm::ir
{
15
16
struct
DTNode
{
17
const
BasicBlock
*
block
;
18
const
DTNode
*
parent
;
19
std::vector<const DTNode *>
children
;
20
};
21
22
MINI_LLVM_EXPORT
std::string
toDot
(
const
DTNode
*root);
23
24
class
MINI_LLVM_EXPORT
DominatorTreeAnalysis
final :
public
FunctionAnalysis
{
25
public
:
26
DominatorTreeAnalysis
();
27
~DominatorTreeAnalysis
()
override
;
28
void
runOnFunction
(
const
Function
&F)
override
;
29
const
DTNode
*
node
(
const
BasicBlock
&v)
const
;
30
bool
dominates
(
const
BasicBlock
&u,
const
BasicBlock
&v)
const
;
31
bool
dominates
(
const
Instruction
&u,
const
Instruction
&v)
const
;
32
33
private
:
34
class
Impl;
35
36
std::unique_ptr<Impl> impl_;
37
};
38
39
}
// namespace mini_llvm::ir
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
mini_llvm::ir::BasicBlock
Definition
BasicBlock.h:28
mini_llvm::ir::DominatorTreeAnalysis::dominates
bool dominates(const BasicBlock &u, const BasicBlock &v) const
mini_llvm::ir::DominatorTreeAnalysis::DominatorTreeAnalysis
DominatorTreeAnalysis()
mini_llvm::ir::DominatorTreeAnalysis::runOnFunction
void runOnFunction(const Function &F) override
mini_llvm::ir::DominatorTreeAnalysis::dominates
bool dominates(const Instruction &u, const Instruction &v) const
mini_llvm::ir::DominatorTreeAnalysis::node
const DTNode * node(const BasicBlock &v) const
mini_llvm::ir::DominatorTreeAnalysis::~DominatorTreeAnalysis
~DominatorTreeAnalysis() override
mini_llvm::ir::FunctionAnalysis::FunctionAnalysis
FunctionAnalysis()=default
mini_llvm::ir::Function
Definition
Function.h:34
mini_llvm::ir::Instruction
Definition
Instruction.h:22
FunctionAnalysis.h
Function.h
Instruction.h
mini_llvm::ir
Definition
Argument.h:13
mini_llvm::ir::toDot
MINI_LLVM_EXPORT std::string toDot(const Function &F)
mini_llvm::ir::DTNode
Definition
DominatorTreeAnalysis.h:16
mini_llvm::ir::DTNode::block
const BasicBlock * block
Definition
DominatorTreeAnalysis.h:17
mini_llvm::ir::DTNode::parent
const DTNode * parent
Definition
DominatorTreeAnalysis.h:18
mini_llvm::ir::DTNode::children
std::vector< const DTNode * > children
Definition
DominatorTreeAnalysis.h:19
include
mini-llvm
opt
ir
passes
DominatorTreeAnalysis.h
Generated by
1.17.0