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
26
27class RegAllocTypeParser : public cl::parser<RegAllocType> {
28public:
30 void initialize() {
33 "Default register allocator");
34 addLiteralOption("pbqp", RegAllocType::PBQP, "PBQP register allocator");
35 addLiteralOption("fast", RegAllocType::Fast, "Fast register allocator");
36 addLiteralOption("basic", RegAllocType::Basic, "Basic register allocator");
38 "Greedy register allocator");
39 }
40};
41
42// Not one-on-one but mostly corresponding to commandline options in
43// TargetPassConfig.cpp.
45 std::optional<bool> OptimizeRegAlloc;
46 std::optional<bool> EnableIPRA;
47 bool DebugPM = false;
48 bool DisableVerify = false;
53 bool EnableSinkAndFold = false;
54 bool EnableTailMerge = true;
55 /// Enable LoopTermFold immediately after LSR.
56 bool EnableLoopTermFold = false;
57 bool MISchedPostRA = false;
58 bool EarlyLiveIntervals = false;
59 bool GCEmptyBlocks = false;
60
61 bool DisableLSR = false;
62 bool DisableCGP = false;
63 bool DisableMergeICmps = false;
70 bool DisableCFIFixup = false;
71 bool PrintAfterISel = false;
72 bool PrintISelInput = false;
74
77 std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
78 std::string FSProfileFile;
79 std::string FSRemappingFile;
80
81 std::optional<bool> VerifyMachineCode;
82 std::optional<bool> EnableFastISelOption;
83 std::optional<bool> EnableGlobalISelOption;
84 std::optional<bool> DebugifyAndStripAll;
85 std::optional<bool> DebugifyCheckAndStripAll;
86};
87
89
90} // namespace llvm
91
92#endif // LLVM_TARGET_CGPASSBUILDEROPTION_H
#define LLVM_ABI
Definition: Compiler.h:213
void addLiteralOption(StringRef Name, const DT &V, StringRef HelpStr)
Add an entry to the mapping table.
Definition: CommandLine.h:872
@ Fast
Attempts to make calls as fast as possible (e.g.
Definition: CallingConv.h:41
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ Default
The result values are uniform if and only if all operands are uniform.
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