mini-llvm 0.1.0
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
14
15namespace mini_llvm::mir {
16
18public:
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
27private:
28 class Impl;
29
30 std::unique_ptr<Impl> impl_;
31};
32
33} // namespace mini_llvm::mir
#define MINI_LLVM_EXPORT
Definition Compiler.h:17
Definition BasicBlock.h:24
Definition Function.h:21
Definition Instruction.h:21
void runOnFunction(const Function &F) override
std::unordered_set< Register * > liveIn(const BasicBlock &B) const
std::unordered_set< Register * > liveIn(const Instruction &I) const
std::unordered_set< Register * > liveOut(const Instruction &I) const
std::unordered_set< Register * > liveOut(const BasicBlock &B) const
Definition BasicBlock.h:22