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 /// Run the machine scheduler while still in SSA, just before PHI
62 /// elimination.
64 bool EnableTailMerge = true;
65 /// Enable LoopTermFold immediately after LSR.
66 bool EnableLoopTermFold = false;
67 bool MISchedPostRA = false;
68 bool EnableGCEmptyBlocks = false;
69
70 bool DisableLSR = false;
71 bool DisableCGP = false;
78 bool DisableCFIFixup = false;
79 bool PrintAfterISel = false;
80 bool PrintISelInput = false;
81 bool PrintRegUsage = false;
83
86 std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
87 std::string FSProfileFile;
88 std::string FSRemappingFile;
89
91
97};
98
100
101} // namespace llvm
102
103#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 CodeGenData.h:33
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
bool EnableSSAMachineScheduler
Run the machine scheduler while still in SSA, just before PHI elimination.
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