LLVM 24.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.
52 std::optional<bool> EnableIPRA;
53 bool DebugPM = false;
54 bool DisableVerify = false;
58 bool EnableSinkAndFold = false;
59 bool EnableTailMerge = true;
60 /// Enable LoopTermFold immediately after LSR.
61 bool EnableLoopTermFold = false;
62 bool MISchedPostRA = false;
63 bool EnableGCEmptyBlocks = false;
64
65 bool DisableLSR = false;
66 bool DisableCGP = false;
73 bool DisableCFIFixup = false;
74 bool PrintAfterISel = false;
75 bool PrintISelInput = false;
76 bool PrintRegUsage = false;
78
81 std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
82 std::string FSProfileFile;
83 std::string FSRemappingFile;
84
86
92};
93
95
96} // namespace llvm
97
98#endif // LLVM_TARGET_CGPASSBUILDEROPTION_H
#define LLVM_ABI
Definition Compiler.h:215
void addLiteralOption(StringRef Name, const DT &V, StringRef HelpStr)
This namespace contains all of the command line option processing machinery.
Definition MCSchedule.h:35
This is an optimization pass for GlobalISel generic memory operations.
@ Greedy
Greedily minimize the cost of assigning register banks.
@ Fast
Assign the register banks as fast as possible (default).
MachineVerifierMode
Specify where the machine verifier runs in the codegen pipeline.
Definition CodeGen.h:263
@ End
Run the machine verifier once, at the end of the pipeline.
Definition CodeGen.h:267
LLVM_ABI CGPassBuilderOption getCGPassBuilderOption()
std::optional< bool > EnableIPRA
cl::boolOrDefault EnableGlobalISelOption
cl::boolOrDefault EnableFastISelOption
bool EnableLoopTermFold
Enable LoopTermFold immediately after LSR.
cl::boolOrDefault EnableRegAllocFastTied
MachineVerifierMode VerifyMachineCode
cl::boolOrDefault DebugifyCheckAndStripAll
std::optional< GlobalISelAbortMode > EnableGlobalISelAbort
cl::boolOrDefault OptimizeRegAlloc
cl::boolOrDefault DebugifyAndStripAll