LLVM
24.0.0git
lib
Analysis
AnalysisOptions.h
Go to the documentation of this file.
1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_LIB_ANALYSIS_ANALYSISOPTIONS_H
10
#define LLVM_LIB_ANALYSIS_ANALYSISOPTIONS_H
11
12
#include "
llvm/IR/Function.h
"
13
#include "
llvm/IR/LLVMContext.h
"
14
#include <optional>
15
16
namespace
llvm
{
17
18
// Forward-declared so that Analysis headers can include this one. Fields of
19
// these types default to the zero enumerator.
20
enum class
IR2VecKind
;
21
enum class
PGOViewCountsType
;
22
23
enum class
OutputCostKind
{
24
RecipThroughput
,
25
Latency
,
26
CodeSize
,
27
SizeAndLatency
,
28
All
,
29
};
30
31
enum class
IntrinsicCostStrategy
{
32
InstructionCost
,
33
IntrinsicCost
,
34
TypeBasedIntrinsicCost
,
35
};
36
37
// Types of dependence test routines.
38
enum class
DependenceTestType
{
39
Default
,
// All tests except BanerjeeMIV
40
All
,
41
StrongSIV
,
42
WeakCrossingSIV
,
43
ExactSIV
,
44
WeakZeroSIV
,
45
ExactRDIV
,
46
GCDMIV
,
47
BanerjeeMIV
,
48
};
49
50
enum class
ForceSummaryHotness
{
None
,
AllNonCritical
,
All
};
51
52
enum class
InlinePriorityMode
:
int
{
Size
,
Cost
,
CostBenefit
,
ML
};
53
54
enum class
StencilMergePolicy
{
Off
,
Auto
,
Force
};
55
56
enum class
SkipMLPolicyCriteria
{
Never
,
IfCallerIsNotCold
};
57
58
}
// namespace llvm
59
60
#define OPTIONS_STRUCT_DECL
61
#include "AnalysisOptions.inc"
62
63
namespace
llvm
{
64
65
class
Loop
;
66
class
Module
;
67
68
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
LLVMContext
&
C
) {
69
return
C
.getLibraryOptions().get<AnalysisOptions>();
70
}
71
72
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
Function
&
F
) {
73
return
getAnalysisOptions
(
F
.getContext());
74
}
75
76
const
AnalysisOptions &
getAnalysisOptions
(
const
Module
&M);
77
const
AnalysisOptions &
getAnalysisOptions
(
const
Loop
&L);
78
79
}
// namespace llvm
80
81
#endif
// LLVM_LIB_ANALYSIS_ANALYSISOPTIONS_H
C
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
Function.h
LLVMContext.h
F
#define F(x, y, z)
Definition
MD5.cpp:54
Module
Machine Check Debug Module
Definition
MachineCheckDebugify.cpp:133
llvm::Function
Definition
Function.h:65
llvm::InstructionCost
Definition
InstructionCost.h:30
llvm::LLVMContext
This is an important class for using LLVM in a threaded context.
Definition
LLVMContext.h:76
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
DefaultTargetInfo.h:21
llvm::Cost
InstructionCost Cost
Definition
FunctionSpecialization.h:103
llvm::Latency
@ Latency
Definition
SIMachineScheduler.h:34
llvm::AllocationType::All
@ All
Definition
ModuleSummaryIndex.h:476
llvm::BoolOrDefault::Default
@ Default
Definition
BoolOrDefault.h:18
llvm::ForceSummaryHotness
ForceSummaryHotness
Definition
AnalysisOptions.h:50
llvm::ForceSummaryHotness::AllNonCritical
@ AllNonCritical
Definition
AnalysisOptions.h:50
llvm::getAnalysisOptions
const AnalysisOptions & getAnalysisOptions(const LLVMContext &C)
Definition
AnalysisOptions.h:68
llvm::InlinePriorityMode
InlinePriorityMode
Definition
AnalysisOptions.h:52
llvm::InlinePriorityMode::CostBenefit
@ CostBenefit
Definition
AnalysisOptions.h:52
llvm::InlinePriorityMode::Size
@ Size
Definition
AnalysisOptions.h:52
llvm::InlinePriorityMode::ML
@ ML
Definition
AnalysisOptions.h:52
llvm::PGOViewCountsType
PGOViewCountsType
Definition
BlockFrequencyInfo.h:35
llvm::IRUnitKind::Loop
@ Loop
Definition
IRUnitRef.h:34
llvm::SwiftAsyncFramePointerMode::Never
@ Never
Never set the bit.
Definition
TargetOptions.h:84
llvm::DependenceTestType
DependenceTestType
Definition
AnalysisOptions.h:38
llvm::DependenceTestType::ExactSIV
@ ExactSIV
Definition
AnalysisOptions.h:43
llvm::DependenceTestType::WeakCrossingSIV
@ WeakCrossingSIV
Definition
AnalysisOptions.h:42
llvm::DependenceTestType::BanerjeeMIV
@ BanerjeeMIV
Definition
AnalysisOptions.h:47
llvm::DependenceTestType::ExactRDIV
@ ExactRDIV
Definition
AnalysisOptions.h:45
llvm::DependenceTestType::GCDMIV
@ GCDMIV
Definition
AnalysisOptions.h:46
llvm::DependenceTestType::StrongSIV
@ StrongSIV
Definition
AnalysisOptions.h:41
llvm::DependenceTestType::WeakZeroSIV
@ WeakZeroSIV
Definition
AnalysisOptions.h:44
llvm::None
@ None
Definition
CodeGenData.h:111
llvm::IR2VecKind
IR2VecKind
IR2Vec computes two kinds of embeddings: Symbolic and Flow-aware.
Definition
IR2Vec.h:70
llvm::StencilMergePolicy
StencilMergePolicy
Definition
AnalysisOptions.h:54
llvm::StencilMergePolicy::Force
@ Force
Definition
AnalysisOptions.h:54
llvm::StencilMergePolicy::Off
@ Off
Definition
AnalysisOptions.h:54
llvm::IntrinsicCostStrategy
IntrinsicCostStrategy
Definition
AnalysisOptions.h:31
llvm::IntrinsicCostStrategy::IntrinsicCost
@ IntrinsicCost
Definition
AnalysisOptions.h:33
llvm::IntrinsicCostStrategy::TypeBasedIntrinsicCost
@ TypeBasedIntrinsicCost
Definition
AnalysisOptions.h:34
llvm::OutputCostKind
OutputCostKind
Definition
AnalysisOptions.h:23
llvm::OutputCostKind::CodeSize
@ CodeSize
Definition
AnalysisOptions.h:26
llvm::OutputCostKind::SizeAndLatency
@ SizeAndLatency
Definition
AnalysisOptions.h:27
llvm::OutputCostKind::RecipThroughput
@ RecipThroughput
Definition
AnalysisOptions.h:24
llvm::SkipMLPolicyCriteria
SkipMLPolicyCriteria
Definition
AnalysisOptions.h:56
llvm::SkipMLPolicyCriteria::IfCallerIsNotCold
@ IfCallerIsNotCold
Definition
AnalysisOptions.h:56
llvm::ColorMode::Auto
@ Auto
Determine whether to use color based on the command line argument and the raw_ostream.
Definition
WithColor.h:43
Generated on
for LLVM by
1.14.0