1 //===- MCTargetOptions.h - MC Target Options --------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_MC_MCTARGETOPTIONS_H
11 #define LLVM_MC_MCTARGETOPTIONS_H
18 enum class ExceptionHandling {
19 None, /// No exception support
20 DwarfCFI, /// DWARF-like instruction based exceptions
21 SjLj, /// setjmp/longjmp based exceptions
23 WinEH, /// Windows Exception Handling
24 Wasm, /// WebAssembly Exception Handling
27 enum class DebugCompressionType {
28 None, /// No compression
29 GNU, /// zlib-gnu style compression
30 Z, /// zlib style complession
35 class MCTargetOptions {
37 enum AsmInstrumentation {
38 AsmInstrumentationNone,
39 AsmInstrumentationAddress
42 /// Enables AddressSanitizer instrumentation at machine level.
43 bool SanitizeAddress : 1;
46 bool MCNoExecStack : 1;
47 bool MCFatalWarnings : 1;
49 bool MCNoDeprecatedWarn : 1;
50 bool MCSaveTempLabels : 1;
51 bool MCUseDwarfDirectory : 1;
52 bool MCIncrementalLinkerCompatible : 1;
53 bool MCPIECopyRelocations : 1;
54 bool ShowMCEncoding : 1;
58 /// Preserve Comments in Assembly.
59 bool PreserveAsmComments : 1;
64 std::string SplitDwarfFile;
66 /// Additional paths to search for `.include` directives when using the
67 /// integrated assembler.
68 std::vector<std::string> IASSearchPaths;
72 /// getABIName - If this returns a non-empty string this represents the
73 /// textual name of the ABI that we want the backend to use, e.g. o32, or
75 StringRef getABIName() const;
78 } // end namespace llvm
80 #endif // LLVM_MC_MCTARGETOPTIONS_H