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
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
41 /// Enables AddressSanitizer instrumentation at machine level.
42 bool SanitizeAddress : 1;
45 bool MCNoExecStack : 1;
46 bool MCFatalWarnings : 1;
48 bool MCNoDeprecatedWarn : 1;
49 bool MCSaveTempLabels : 1;
50 bool MCUseDwarfDirectory : 1;
51 bool MCIncrementalLinkerCompatible : 1;
52 bool MCPIECopyRelocations : 1;
53 bool ShowMCEncoding : 1;
57 /// Preserve Comments in Assembly.
58 bool PreserveAsmComments : 1;
63 std::string SplitDwarfFile;
65 /// Additional paths to search for `.include` directives when using the
66 /// integrated assembler.
67 std::vector<std::string> IASSearchPaths;
71 /// getABIName - If this returns a non-empty string this represents the
72 /// textual name of the ABI that we want the backend to use, e.g. o32, or
74 StringRef getABIName() const;
77 } // end namespace llvm
79 #endif // LLVM_MC_MCTARGETOPTIONS_H