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
24class TargetMachine;
25
34
35class RegAllocTypeParser : public cl::parser<RegAllocType> {
36public:
38 void initialize() {
41 "Default register allocator");
42 addLiteralOption("pbqp", RegAllocType::PBQP, "PBQP register allocator");
43 addLiteralOption("fast", RegAllocType::Fast, "Fast register allocator");
44 addLiteralOption("basic", RegAllocType::Basic, "Basic register allocator");
46 "Greedy register allocator");
47 }
48};
49
50// Not one-on-one but mostly corresponding to commandline options in
51// TargetPassConfig.cpp.
54 std::optional<bool> EnableIPRA;
55 bool DebugPM = false;
56 bool DisableVerify = false;
60 bool EnableSinkAndFold = false;
61 bool EnableTailMerge = true;
62 /// Enable LoopTermFold immediately after LSR.
63 bool EnableLoopTermFold = false;
64 bool MISchedPostRA = false;
65 bool EnableGCEmptyBlocks = false;
66
67 bool DisableLSR = false;
68 bool DisableCGP = false;
75 bool DisableCFIFixup = false;
76 bool PrintAfterISel = false;
77 bool PrintISelInput = false;
78 bool PrintRegUsage = false;
80
83 std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
84 std::string FSProfileFile;
85 std::string FSRemappingFile;
86
88
94};
95
97
98} // namespace llvm
99
100#endif // LLVM_TARGET_CGPASSBUILDEROPTION_H
#define LLVM_ABI
Definition Compiler.h:215
Primary interface to the complete machine description for the target machine.
void addLiteralOption(StringRef Name, const DT &V, StringRef HelpStr)
This namespace contains all of the command line option processing machinery.
Definition LLVMContext.h:35
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI CGPassBuilderOption getCGPassBuilderOption(const TargetMachine &TM)
@ 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
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