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
enum class
OutputCostKind
{
19
RecipThroughput
,
20
Latency
,
21
CodeSize
,
22
SizeAndLatency
,
23
All
,
24
};
25
26
enum class
IntrinsicCostStrategy
{
27
InstructionCost
,
28
IntrinsicCost
,
29
TypeBasedIntrinsicCost
,
30
};
31
32
// Types of dependence test routines.
33
enum class
DependenceTestType
{
34
Default
,
// All tests except BanerjeeMIV
35
All
,
36
StrongSIV
,
37
WeakCrossingSIV
,
38
ExactSIV
,
39
WeakZeroSIV
,
40
ExactRDIV
,
41
GCDMIV
,
42
BanerjeeMIV
,
43
};
44
45
enum class
ForceSummaryHotness
{
None
,
AllNonCritical
,
All
};
46
47
enum class
InlinePriorityMode
:
int
{
Size
,
Cost
,
CostBenefit
,
ML
};
48
49
enum class
StencilMergePolicy
{
Off
,
Auto
,
Force
};
50
51
enum class
SkipMLPolicyCriteria
{
Never
,
IfCallerIsNotCold
};
52
53
}
// namespace llvm
54
55
#define OPTIONS_STRUCT_DECL
56
#include "AnalysisOptions.inc"
57
58
namespace
llvm
{
59
60
class
Loop
;
61
class
Module
;
62
63
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
LLVMContext
&
C
) {
64
return
C
.getLibraryOptions().get<AnalysisOptions>();
65
}
66
67
inline
const
AnalysisOptions &
getAnalysisOptions
(
const
Function
&
F
) {
68
return
getAnalysisOptions
(
F
.getContext());
69
}
70
71
const
AnalysisOptions &
getAnalysisOptions
(
const
Module
&M);
72
const
AnalysisOptions &
getAnalysisOptions
(
const
Loop
&L);
73
74
}
// namespace llvm
75
76
#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:45
llvm::ForceSummaryHotness::AllNonCritical
@ AllNonCritical
Definition
AnalysisOptions.h:45
llvm::getAnalysisOptions
const AnalysisOptions & getAnalysisOptions(const LLVMContext &C)
Definition
AnalysisOptions.h:63
llvm::InlinePriorityMode
InlinePriorityMode
Definition
AnalysisOptions.h:47
llvm::InlinePriorityMode::CostBenefit
@ CostBenefit
Definition
AnalysisOptions.h:47
llvm::InlinePriorityMode::Size
@ Size
Definition
AnalysisOptions.h:47
llvm::InlinePriorityMode::ML
@ ML
Definition
AnalysisOptions.h:47
llvm::IRUnitKind::Loop
@ Loop
Definition
IRUnitRef.h:34
llvm::SwiftAsyncFramePointerMode::Never
@ Never
Never set the bit.
Definition
TargetOptions.h:105
llvm::DependenceTestType
DependenceTestType
Definition
AnalysisOptions.h:33
llvm::DependenceTestType::ExactSIV
@ ExactSIV
Definition
AnalysisOptions.h:38
llvm::DependenceTestType::WeakCrossingSIV
@ WeakCrossingSIV
Definition
AnalysisOptions.h:37
llvm::DependenceTestType::BanerjeeMIV
@ BanerjeeMIV
Definition
AnalysisOptions.h:42
llvm::DependenceTestType::ExactRDIV
@ ExactRDIV
Definition
AnalysisOptions.h:40
llvm::DependenceTestType::GCDMIV
@ GCDMIV
Definition
AnalysisOptions.h:41
llvm::DependenceTestType::StrongSIV
@ StrongSIV
Definition
AnalysisOptions.h:36
llvm::DependenceTestType::WeakZeroSIV
@ WeakZeroSIV
Definition
AnalysisOptions.h:39
llvm::None
@ None
Definition
CodeGenData.h:111
llvm::StencilMergePolicy
StencilMergePolicy
Definition
AnalysisOptions.h:49
llvm::StencilMergePolicy::Force
@ Force
Definition
AnalysisOptions.h:49
llvm::StencilMergePolicy::Off
@ Off
Definition
AnalysisOptions.h:49
llvm::IntrinsicCostStrategy
IntrinsicCostStrategy
Definition
AnalysisOptions.h:26
llvm::IntrinsicCostStrategy::IntrinsicCost
@ IntrinsicCost
Definition
AnalysisOptions.h:28
llvm::IntrinsicCostStrategy::TypeBasedIntrinsicCost
@ TypeBasedIntrinsicCost
Definition
AnalysisOptions.h:29
llvm::OutputCostKind
OutputCostKind
Definition
AnalysisOptions.h:18
llvm::OutputCostKind::CodeSize
@ CodeSize
Definition
AnalysisOptions.h:21
llvm::OutputCostKind::SizeAndLatency
@ SizeAndLatency
Definition
AnalysisOptions.h:22
llvm::OutputCostKind::RecipThroughput
@ RecipThroughput
Definition
AnalysisOptions.h:19
llvm::SkipMLPolicyCriteria
SkipMLPolicyCriteria
Definition
AnalysisOptions.h:51
llvm::SkipMLPolicyCriteria::IfCallerIsNotCold
@ IfCallerIsNotCold
Definition
AnalysisOptions.h:51
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