//===-- llvm/Target/TargetOptions.h - Target Options ------------*- 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 defines command line option flags that are shared across various // targets. // //===----------------------------------------------------------------------===// #ifndef LLVM_TARGET_TARGETOPTIONS_H #define LLVM_TARGET_TARGETOPTIONS_H #include "llvm/ADT/FloatingPointMode.h" #include "llvm/MC/MCTargetOptions.h" #include <memory> namespace llvm { struct fltSemantics; class MachineFunction; class MemoryBuffer; namespace FloatABI { enum ABIType { … }; } namespace FPOpFusion { enum FPOpFusionMode { … }; } namespace JumpTable { enum JumpTableType { … }; } namespace ThreadModel { enum Model { … }; } enum class BasicBlockSection { … }; enum class EABI { … }; /// Identify a debugger for "tuning" the debug info. /// /// The "debugger tuning" concept allows us to present a more intuitive /// interface that unpacks into different sets of defaults for the various /// individual feature-flag settings, that suit the preferences of the /// various debuggers. However, it's worth remembering that debuggers are /// not the only consumers of debug info, and some variations in DWARF might /// better be treated as target/platform issues. Fundamentally, /// o if the feature is useful (or not) to a particular debugger, regardless /// of the target, that's a tuning decision; /// o if the feature is useful (or not) on a particular platform, regardless /// of the debugger, that's a target decision. /// It's not impossible to see both factors in some specific case. enum class DebuggerKind { … }; /// Enable abort calls when global instruction selection fails to lower/select /// an instruction. enum class GlobalISelAbortMode { … }; /// Indicates when and how the Swift async frame pointer bit should be set. enum class SwiftAsyncFramePointerMode { … }; /// \brief Enumeration value for AMDGPU code object version, which is the /// code object version times 100. enum CodeObjectVersionKind { … }; class TargetOptions { … }; } // End llvm namespace #endif