LLVM 22.0.0git
CGPassBuilderOption.h
Go to the documentation of this file.
1//===- CGPassBuilderOption.h - Options for pass builder ---------*- C++ -*-===//
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// This file declares the CCState and CCValAssign classes, used for lowering
10// and implementing calling conventions.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TARGET_CGPASSBUILDEROPTION_H
15#define LLVM_TARGET_CGPASSBUILDEROPTION_H
16
20#include <optional>
21
22namespace llvm {
23
32
33class RegAllocTypeParser : public cl::parser<RegAllocType> {
34public:
36 void initialize() {
39 "Default register allocator");
40 addLiteralOption("pbqp", RegAllocType::PBQP, "PBQP register allocator");
41 addLiteralOption("fast", RegAllocType::Fast, "Fast register allocator");
42 addLiteralOption("basic", RegAllocType::Basic, "Basic register allocator");
44 "Greedy register allocator");
45 }
46};
47
48// Not one-on-one but mostly corresponding to commandline options in
49// TargetPassConfig.cpp.
51 std::optional<bool> OptimizeRegAlloc;
52 std::optional<bool> EnableIPRA;
53 bool DebugPM = false;
54 bool DisableVerify = false;
59 bool EnableSinkAndFold = false;
60 bool EnableTailMerge = true;
61 /// Enable LoopTermFold immediately after LSR.
62 bool EnableLoopTermFold = false;
63 bool MISchedPostRA = false;
64 bool EarlyLiveIntervals = false;
65 bool GCEmptyBlocks = false;
66
67 bool DisableLSR = false;
68 bool DisableCGP = false;
69 bool DisableMergeICmps = false;
76 bool DisableCFIFixup = false;
77 bool PrintAfterISel = false;
78 bool PrintISelInput = false;
80
83 std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
84 std::string FSProfileFile;
85 std::string FSRemappingFile;
86
87 std::optional<bool> VerifyMachineCode;
88 std::optional<bool> EnableFastISelOption;
89 std::optional<bool> EnableGlobalISelOption;
90 std::optional<bool> DebugifyAndStripAll;
91 std::optional<bool> DebugifyCheckAndStripAll;
92};
93
95
96} // namespace llvm
97
98#endif // LLVM_TARGET_CGPASSBUILDEROPTION_H
#define LLVM_ABI
Definition Compiler.h:213
void addLiteralOption(StringRef Name, const DT &V, StringRef HelpStr)
@ Fast
Attempts to make calls as fast as possible (e.g.
Definition CallingConv.h:41
This namespace contains all of the command line option processing machinery.
Definition CommandLine.h:53
This is an optimization pass for GlobalISel generic memory operations.
@ Default
The result values are uniform if and only if all operands are uniform.
Definition Uniformity.h:20
LLVM_ABI CGPassBuilderOption getCGPassBuilderOption()
std::optional< bool > EnableGlobalISelOption
std::optional< bool > EnableIPRA
std::optional< bool > OptimizeRegAlloc
std::optional< bool > VerifyMachineCode
std::optional< bool > DebugifyCheckAndStripAll
std::optional< bool > DebugifyAndStripAll
bool EnableLoopTermFold
Enable LoopTermFold immediately after LSR.
std::optional< bool > EnableFastISelOption
std::optional< GlobalISelAbortMode > EnableGlobalISelAbort