mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
LiveVariableAnalysis.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <memory>
6
#include <unordered_set>
7
8
#include "
mini-llvm/mir/BasicBlock.h
"
9
#include "
mini-llvm/mir/Function.h
"
10
#include "
mini-llvm/mir/Instruction.h
"
11
#include "
mini-llvm/mir/Register.h
"
12
#include "
mini-llvm/opt/mir/FunctionAnalysis.h
"
13
#include "
mini-llvm/utils/Compiler.h
"
14
15
namespace
mini_llvm::mir
{
16
17
class
MINI_LLVM_EXPORT
LiveVariableAnalysis
final :
public
FunctionAnalysis
{
18
public
:
19
LiveVariableAnalysis
();
20
~LiveVariableAnalysis
()
override
;
21
void
runOnFunction
(
const
Function
&F)
override
;
22
std::unordered_set<Register *>
liveIn
(
const
BasicBlock
&B)
const
;
23
std::unordered_set<Register *>
liveOut
(
const
BasicBlock
&B)
const
;
24
std::unordered_set<Register *>
liveIn
(
const
Instruction
&I)
const
;
25
std::unordered_set<Register *>
liveOut
(
const
Instruction
&I)
const
;
26
27
private
:
28
class
Impl;
29
30
std::unique_ptr<Impl> impl_;
31
};
32
33
}
// namespace mini_llvm::mir
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
Register.h
mini_llvm::mir::BasicBlock
Definition
BasicBlock.h:24
mini_llvm::mir::FunctionAnalysis::FunctionAnalysis
FunctionAnalysis()=default
mini_llvm::mir::Function
Definition
Function.h:21
mini_llvm::mir::Instruction
Definition
Instruction.h:21
mini_llvm::mir::LiveVariableAnalysis::runOnFunction
void runOnFunction(const Function &F) override
mini_llvm::mir::LiveVariableAnalysis::~LiveVariableAnalysis
~LiveVariableAnalysis() override
mini_llvm::mir::LiveVariableAnalysis::liveIn
std::unordered_set< Register * > liveIn(const BasicBlock &B) const
mini_llvm::mir::LiveVariableAnalysis::liveIn
std::unordered_set< Register * > liveIn(const Instruction &I) const
mini_llvm::mir::LiveVariableAnalysis::LiveVariableAnalysis
LiveVariableAnalysis()
mini_llvm::mir::LiveVariableAnalysis::liveOut
std::unordered_set< Register * > liveOut(const Instruction &I) const
mini_llvm::mir::LiveVariableAnalysis::liveOut
std::unordered_set< Register * > liveOut(const BasicBlock &B) const
BasicBlock.h
FunctionAnalysis.h
Function.h
Instruction.h
mini_llvm::mir
Definition
BasicBlock.h:22
include
mini-llvm
opt
mir
passes
LiveVariableAnalysis.h
Generated by
1.17.0