1 //===- MCTargetOptions.h - MC Target Options --------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_MC_MCTARGETOPTIONS_H
10 #define LLVM_MC_MCTARGETOPTIONS_H
17 enum class ExceptionHandling
{
18 None
, ///< No exception support
19 DwarfCFI
, ///< DWARF-like instruction based exceptions
20 SjLj
, ///< setjmp/longjmp based exceptions
22 WinEH
, ///< Windows Exception Handling
23 Wasm
, ///< WebAssembly Exception Handling
26 enum class DebugCompressionType
{
27 None
, ///< No compression
28 GNU
, ///< zlib-gnu style compression
29 Z
, ///< zlib style complession
34 class MCTargetOptions
{
36 enum AsmInstrumentation
{
37 AsmInstrumentationNone
,
38 AsmInstrumentationAddress
42 bool MCNoExecStack
: 1;
43 bool MCFatalWarnings
: 1;
45 bool MCNoDeprecatedWarn
: 1;
46 bool MCSaveTempLabels
: 1;
47 bool MCUseDwarfDirectory
: 1;
48 bool MCIncrementalLinkerCompatible
: 1;
49 bool MCPIECopyRelocations
: 1;
50 bool ShowMCEncoding
: 1;
54 /// Preserve Comments in Assembly.
55 bool PreserveAsmComments
: 1;
60 std::string SplitDwarfFile
;
62 /// Additional paths to search for `.include` directives when using the
63 /// integrated assembler.
64 std::vector
<std::string
> IASSearchPaths
;
68 /// getABIName - If this returns a non-empty string this represents the
69 /// textual name of the ABI that we want the backend to use, e.g. o32, or
71 StringRef
getABIName() const;
74 } // end namespace llvm
76 #endif // LLVM_MC_MCTARGETOPTIONS_H