LLVM
24.0.0git
lib
Transforms
Scalar
ScalarOptions.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_TRANSFORMS_SCALAR_SCALAROPTIONS_H
10
#define LLVM_LIB_TRANSFORMS_SCALAR_SCALAROPTIONS_H
11
12
#include "
llvm/Analysis/TargetTransformInfo.h
"
13
#include "
llvm/IR/Function.h
"
14
#include "
llvm/IR/LLVMContext.h
"
15
#include "
llvm/Transforms/Utils/LoopUtils.h
"
16
#include <limits>
17
#include <optional>
18
19
namespace
llvm
{
20
enum class
CRCStrategyKind
{
Disable
,
Auto
,
Table
,
Clmul
};
21
enum class
LoopInterchangeRule
{
22
PerLoopCacheAnalysis
,
23
PerInstrOrderCost
,
24
ForVectorization
,
25
Ignore
26
};
27
enum class
MatrixLayoutTy
{
ColumnMajor
,
RowMajor
};
28
}
// namespace llvm
29
30
#define OPTIONS_STRUCT_DECL
31
#include "ScalarOptions.inc"
32
33
namespace
llvm
{
34
35
class
Loop
;
36
37
inline
const
ScalarOptions &
getScalarOptions
(
const
LLVMContext
&
C
) {
38
return
C
.getLibraryOptions().get<ScalarOptions>();
39
}
40
41
inline
const
ScalarOptions &
getScalarOptions
(
const
Function
&
F
) {
42
return
getScalarOptions
(
F
.getContext());
43
}
44
45
const
ScalarOptions &
getScalarOptions
(
const
Loop
&L);
46
47
}
// namespace llvm
48
49
#endif
// LLVM_LIB_TRANSFORMS_SCALAR_SCALAROPTIONS_H
C
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
Function.h
LLVMContext.h
LoopUtils.h
F
#define F(x, y, z)
Definition
MD5.cpp:54
TargetTransformInfo.h
This pass exposes codegen information to IR-level passes.
llvm::Function
Definition
Function.h:65
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::getScalarOptions
const ScalarOptions & getScalarOptions(const LLVMContext &C)
Definition
ScalarOptions.h:37
llvm::LoopInterchangeRule
LoopInterchangeRule
Definition
ScalarOptions.h:21
llvm::LoopInterchangeRule::ForVectorization
@ ForVectorization
Definition
ScalarOptions.h:24
llvm::LoopInterchangeRule::PerLoopCacheAnalysis
@ PerLoopCacheAnalysis
Definition
ScalarOptions.h:22
llvm::LoopInterchangeRule::PerInstrOrderCost
@ PerInstrOrderCost
Definition
ScalarOptions.h:23
llvm::LoopInterchangeRule::Ignore
@ Ignore
Definition
ScalarOptions.h:25
llvm::CRCStrategyKind
CRCStrategyKind
Definition
ScalarOptions.h:20
llvm::CRCStrategyKind::Table
@ Table
Definition
ScalarOptions.h:20
llvm::CRCStrategyKind::Clmul
@ Clmul
Definition
ScalarOptions.h:20
llvm::IRUnitKind::Loop
@ Loop
Definition
IRUnitRef.h:34
llvm::MatrixLayoutTy
MatrixLayoutTy
Definition
ScalarOptions.h:27
llvm::MatrixLayoutTy::RowMajor
@ RowMajor
Definition
ScalarOptions.h:27
llvm::MatrixLayoutTy::ColumnMajor
@ ColumnMajor
Definition
ScalarOptions.h:27
llvm::ColorMode::Auto
@ Auto
Determine whether to use color based on the command line argument and the raw_ostream.
Definition
WithColor.h:43
llvm::ColorMode::Disable
@ Disable
Disable colors.
Definition
WithColor.h:49
Generated on
for LLVM by
1.14.0