66 lines
2.1 KiB
C
66 lines
2.1 KiB
C
|
//===- 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
|