1 //===- MCTargetOptions.h - MC Target Options --------------------*- C++ -*-===// 2 // 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 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_MC_MCTARGETOPTIONS_H 10 #define LLVM_MC_MCTARGETOPTIONS_H 11 12 #include <string> 13 #include <vector> 14 15 namespace llvm { 16 17 enum class ExceptionHandling { 18 None, ///< No exception support 19 DwarfCFI, ///< DWARF-like instruction based exceptions 20 SjLj, ///< setjmp/longjmp based exceptions 21 ARM, ///< ARM EHABI 22 WinEH, ///< Windows Exception Handling 23 Wasm, ///< WebAssembly Exception Handling 24 }; 25 26 enum class DebugCompressionType { 27 None, ///< No compression 28 GNU, ///< zlib-gnu style compression 29 Z, ///< zlib style complession 30 }; 31 32 class StringRef; 33 34 class MCTargetOptions { 35 public: 36 enum AsmInstrumentation { 37 AsmInstrumentationNone, 38 AsmInstrumentationAddress 39 }; 40 41 bool MCRelaxAll : 1; 42 bool MCNoExecStack : 1; 43 bool MCFatalWarnings : 1; 44 bool MCNoWarn : 1; 45 bool MCNoDeprecatedWarn : 1; 46 bool MCSaveTempLabels : 1; 47 bool MCUseDwarfDirectory : 1; 48 bool MCIncrementalLinkerCompatible : 1; 49 bool ShowMCEncoding : 1; 50 bool ShowMCInst : 1; 51 bool AsmVerbose : 1; 52 53 /// Preserve Comments in Assembly. 54 bool PreserveAsmComments : 1; 55 56 int DwarfVersion = 0; 57 58 std::string ABIName; 59 std::string SplitDwarfFile; 60 61 /// Additional paths to search for `.include` directives when using the 62 /// integrated assembler. 63 std::vector<std::string> IASSearchPaths; 64 65 MCTargetOptions(); 66 67 /// getABIName - If this returns a non-empty string this represents the 68 /// textual name of the ABI that we want the backend to use, e.g. o32, or 69 /// aapcs-linux. 70 StringRef getABIName() const; 71 }; 72 73 } // end namespace llvm 74 75 #endif // LLVM_MC_MCTARGETOPTIONS_H 76