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 <cstdint>
15
#include <optional>
16
17
namespace
llvm
{
18
19
namespace
dxbc::SourceInfo::Contents
{
20
enum class
CompressionType
: uint16_t;
21
}
// namespace dxbc::SourceInfo::Contents
22
23
// Forward-declared so that Analysis headers can include this one. Fields of
24
// these types default to the zero enumerator.
25
enum class
GVDAGType
;
26
enum class
IR2VecKind
;
27
enum class
InlinerFunctionImportStatsOpts
;
28
enum class
PGOViewCountsType
;
29
30
enum class
OutputCostKind
{
31
RecipThroughput
,
32
Latency
,
33
CodeSize
,
34
SizeAndLatency
,
35
All
,
36
};
37
38
enum class
IntrinsicCostStrategy
{
39
InstructionCost
,
40
IntrinsicCost
,
41
TypeBasedIntrinsicCost
,
42
};
43
44
enum class
CtxProfPrintMode
{
Everything
,
YAML
};
45
46
// Types of dependence test routines.
47
enum class
DependenceTestType
{
48
Default
,
// All tests except BanerjeeMIV
49
All
,
50
StrongSIV
,
51
WeakCrossingSIV
,
52
ExactSIV
,
53
WeakZeroSIV
,
54
ExactRDIV
,
55
GCDMIV
,
56
BanerjeeMIV
,
57
};
58
59
enum class
ForceSummaryHotness
{
None
,
AllNonCritical
,
All
};
60
61
enum class
InlinePriorityMode
:
int
{
Size
,
Cost
,
CostBenefit
,
ML
};
62
63
enum class
StencilMergePolicy
{
Off
,
Auto
,
Force
};
64
65
enum class
SkipMLPolicyCriteria
{
Never
,
IfCallerIsNotCold
};
66
67
}
// namespace llvm
68
69
#define OPTIONS_STRUCT_DECL
70
#include "AnalysisOptions.inc"
71
72
namespace
llvm
{
73
74
class
Loop
;
75
class
Module
;
76
77
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
LLVMContext
&
C
) {
78
return
C
.getLibraryOptions().get<AnalysisOptions>();
79
}
80
81
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
Function
&
F
) {
82
return
getAnalysisOptions
(
F
.getContext());
83
}
84
85
const
AnalysisOptions &
getAnalysisOptions
(
const
Module
&M);
86
const
AnalysisOptions &
getAnalysisOptions
(
const
Loop
&L);
87
88
}
// namespace llvm
89
90
#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::dxbc::SourceInfo::Contents
Definition
DXContainer.h:944
llvm::dxbc::SourceInfo::Contents::CompressionType
CompressionType
Definition
DXContainer.h:947
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:59
llvm::ForceSummaryHotness::AllNonCritical
@ AllNonCritical
Definition
AnalysisOptions.h:59
llvm::getAnalysisOptions
const AnalysisOptions & getAnalysisOptions(const LLVMContext &C)
Definition
AnalysisOptions.h:77
llvm::InlinePriorityMode
InlinePriorityMode
Definition
AnalysisOptions.h:61
llvm::InlinePriorityMode::CostBenefit
@ CostBenefit
Definition
AnalysisOptions.h:61
llvm::InlinePriorityMode::Size
@ Size
Definition
AnalysisOptions.h:61
llvm::InlinePriorityMode::ML
@ ML
Definition
AnalysisOptions.h:61
llvm::PGOViewCountsType
PGOViewCountsType
Definition
BlockFrequencyInfo.h:36
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:47
llvm::DependenceTestType::ExactSIV
@ ExactSIV
Definition
AnalysisOptions.h:52
llvm::DependenceTestType::WeakCrossingSIV
@ WeakCrossingSIV
Definition
AnalysisOptions.h:51
llvm::DependenceTestType::BanerjeeMIV
@ BanerjeeMIV
Definition
AnalysisOptions.h:56
llvm::DependenceTestType::ExactRDIV
@ ExactRDIV
Definition
AnalysisOptions.h:54
llvm::DependenceTestType::GCDMIV
@ GCDMIV
Definition
AnalysisOptions.h:55
llvm::DependenceTestType::StrongSIV
@ StrongSIV
Definition
AnalysisOptions.h:50
llvm::DependenceTestType::WeakZeroSIV
@ WeakZeroSIV
Definition
AnalysisOptions.h:53
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::CtxProfPrintMode
CtxProfPrintMode
Definition
AnalysisOptions.h:44
llvm::CtxProfPrintMode::Everything
@ Everything
Definition
AnalysisOptions.h:44
llvm::CtxProfPrintMode::YAML
@ YAML
Definition
AnalysisOptions.h:44
llvm::StencilMergePolicy
StencilMergePolicy
Definition
AnalysisOptions.h:63
llvm::StencilMergePolicy::Force
@ Force
Definition
AnalysisOptions.h:63
llvm::StencilMergePolicy::Off
@ Off
Definition
AnalysisOptions.h:63
llvm::IntrinsicCostStrategy
IntrinsicCostStrategy
Definition
AnalysisOptions.h:38
llvm::IntrinsicCostStrategy::IntrinsicCost
@ IntrinsicCost
Definition
AnalysisOptions.h:40
llvm::IntrinsicCostStrategy::TypeBasedIntrinsicCost
@ TypeBasedIntrinsicCost
Definition
AnalysisOptions.h:41
llvm::InlinerFunctionImportStatsOpts
InlinerFunctionImportStatsOpts
Definition
ImportedFunctionsInliningStatistics.h:105
llvm::OutputCostKind
OutputCostKind
Definition
AnalysisOptions.h:30
llvm::OutputCostKind::CodeSize
@ CodeSize
Definition
AnalysisOptions.h:33
llvm::OutputCostKind::SizeAndLatency
@ SizeAndLatency
Definition
AnalysisOptions.h:34
llvm::OutputCostKind::RecipThroughput
@ RecipThroughput
Definition
AnalysisOptions.h:31
llvm::SkipMLPolicyCriteria
SkipMLPolicyCriteria
Definition
AnalysisOptions.h:65
llvm::SkipMLPolicyCriteria::IfCallerIsNotCold
@ IfCallerIsNotCold
Definition
AnalysisOptions.h:65
llvm::GVDAGType
GVDAGType
Definition
BlockFrequencyInfo.h:35
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