mini-llvm
0.1.0
Toggle main menu visibility
Loading...
Searching...
No Matches
AliasAnalysis.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: MIT
2
3
#pragma once
4
5
#include <memory>
6
7
#include "
mini-llvm/ir/Function.h
"
8
#include "
mini-llvm/ir/Value.h
"
9
#include "
mini-llvm/opt/ir/FunctionAnalysis.h
"
10
#include "
mini-llvm/utils/Compiler.h
"
11
12
namespace
mini_llvm::ir
{
13
14
enum class
AliasResult
{
15
kMayAlias
,
16
kMustAlias
,
17
kPartialAlias
,
18
kNoAlias
,
19
};
20
21
class
MINI_LLVM_EXPORT
AliasAnalysis
final :
public
FunctionAnalysis
{
22
public
:
23
AliasAnalysis
();
24
~AliasAnalysis
()
override
;
25
void
runOnFunction
(
const
Function
&F)
override
;
26
AliasResult
alias
(
const
Value
&ptr1,
const
Value
&ptr2)
const
;
27
AliasResult
alias
(
const
Value
&ptr1,
int
size1,
const
Value
&ptr2,
int
size2)
const
;
28
29
private
:
30
class
Impl;
31
32
std::unique_ptr<Impl> impl_;
33
};
34
35
}
// namespace mini_llvm::ir
Compiler.h
MINI_LLVM_EXPORT
#define MINI_LLVM_EXPORT
Definition
Compiler.h:17
Value.h
mini_llvm::ir::AliasAnalysis::alias
AliasResult alias(const Value &ptr1, const Value &ptr2) const
mini_llvm::ir::AliasAnalysis::AliasAnalysis
AliasAnalysis()
mini_llvm::ir::AliasAnalysis::alias
AliasResult alias(const Value &ptr1, int size1, const Value &ptr2, int size2) const
mini_llvm::ir::AliasAnalysis::runOnFunction
void runOnFunction(const Function &F) override
mini_llvm::ir::AliasAnalysis::~AliasAnalysis
~AliasAnalysis() override
mini_llvm::ir::FunctionAnalysis::FunctionAnalysis
FunctionAnalysis()=default
mini_llvm::ir::Function
Definition
Function.h:34
mini_llvm::ir::Value
Definition
Value.h:24
FunctionAnalysis.h
Function.h
mini_llvm::ir
Definition
Argument.h:13
mini_llvm::ir::AliasResult
AliasResult
Definition
AliasAnalysis.h:14
mini_llvm::ir::AliasResult::kPartialAlias
@ kPartialAlias
Definition
AliasAnalysis.h:17
mini_llvm::ir::AliasResult::kMayAlias
@ kMayAlias
Definition
AliasAnalysis.h:15
mini_llvm::ir::AliasResult::kMustAlias
@ kMustAlias
Definition
AliasAnalysis.h:16
mini_llvm::ir::AliasResult::kNoAlias
@ kNoAlias
Definition
AliasAnalysis.h:18
include
mini-llvm
opt
ir
passes
AliasAnalysis.h
Generated by
1.17.0