diff options
Diffstat (limited to 'contrib/llvm-project/llvm/include/llvm/Target/CGPassBuilderOption.h')
-rw-r--r-- | contrib/llvm-project/llvm/include/llvm/Target/CGPassBuilderOption.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/include/llvm/Target/CGPassBuilderOption.h b/contrib/llvm-project/llvm/include/llvm/Target/CGPassBuilderOption.h new file mode 100644 index 000000000000..c3a221e01ceb --- /dev/null +++ b/contrib/llvm-project/llvm/include/llvm/Target/CGPassBuilderOption.h @@ -0,0 +1,65 @@ +//===- CGPassBuilderOption.h - Options for pass builder ---------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file declares the CCState and CCValAssign classes, used for lowering +// and implementing calling conventions. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CODEGEN_PASSBUILDER_OPTION_H +#define LLVM_CODEGEN_PASSBUILDER_OPTION_H + +#include "llvm/ADT/Optional.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Target/TargetOptions.h" +#include <vector> + +namespace llvm { +class TargetMachine; + +enum class RunOutliner { TargetDefault, AlwaysOutline, NeverOutline }; +enum class RegAllocType { Default, Basic, Fast, Greedy, PBQP }; +enum class CFLAAType { None, Steensgaard, Andersen, Both }; + +// Not one-on-one but mostly corresponding to commandline options in +// TargetPassConfig.cpp. +struct CGPassBuilderOption { + Optional<bool> OptimizeRegAlloc; + Optional<bool> EnableIPRA; + bool DebugPM = false; + bool DisableVerify = false; + bool EnableImplicitNullChecks = false; + bool EnableBlockPlacementStats = false; + bool MISchedPostRA = false; + bool EarlyLiveIntervals = false; + + bool DisableLSR = false; + bool DisableCGP = false; + bool PrintLSR = false; + bool DisableMergeICmps = false; + bool DisablePartialLibcallInlining = false; + bool DisableConstantHoisting = false; + bool PrintISelInput = false; + bool PrintGCInfo = false; + bool RequiresCodeGenSCCOrder = false; + + RunOutliner EnableMachineOutliner = RunOutliner::TargetDefault; + RegAllocType RegAlloc = RegAllocType::Default; + CFLAAType UseCFLAA = CFLAAType::None; + Optional<GlobalISelAbortMode> EnableGlobalISelAbort; + + Optional<bool> VerifyMachineCode; + Optional<bool> EnableFastISelOption; + Optional<bool> EnableGlobalISelOption; +}; + +CGPassBuilderOption getCGPassBuilderOption(); + +} // namespace llvm + +#endif // LLVM_CODEGEN_PASSBUILDER_OPTION_H |