123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- //===- MCTargetOptions.h - MC 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
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_MC_MCTARGETOPTIONS_H
- #define LLVM_MC_MCTARGETOPTIONS_H
- #include "llvm/ADT/ArrayRef.h"
- #include <string>
- #include <vector>
- namespace llvm {
- enum class ExceptionHandling {
- None, ///< No exception support
- DwarfCFI, ///< DWARF-like instruction based exceptions
- SjLj, ///< setjmp/longjmp based exceptions
- ARM, ///< ARM EHABI
- WinEH, ///< Windows Exception Handling
- Wasm, ///< WebAssembly Exception Handling
- AIX, ///< AIX Exception Handling
- };
- enum class DebugCompressionType {
- None, ///< No compression
- GNU, ///< zlib-gnu style compression
- Z, ///< zlib style complession
- };
- class StringRef;
- class MCTargetOptions {
- public:
- enum AsmInstrumentation {
- AsmInstrumentationNone,
- AsmInstrumentationAddress
- };
- bool MCRelaxAll : 1;
- bool MCNoExecStack : 1;
- bool MCFatalWarnings : 1;
- bool MCNoWarn : 1;
- bool MCNoDeprecatedWarn : 1;
- bool MCNoTypeCheck : 1;
- bool MCSaveTempLabels : 1;
- bool MCUseDwarfDirectory : 1;
- bool MCIncrementalLinkerCompatible : 1;
- bool ShowMCEncoding : 1;
- bool ShowMCInst : 1;
- bool AsmVerbose : 1;
- /// Preserve Comments in Assembly.
- bool PreserveAsmComments : 1;
- bool Dwarf64 : 1;
- int DwarfVersion = 0;
- std::string ABIName;
- std::string AssemblyLanguage;
- std::string SplitDwarfFile;
- const char *Argv0 = nullptr;
- ArrayRef<std::string> CommandLineArgs;
- /// Additional paths to search for `.include` directives when using the
- /// integrated assembler.
- std::vector<std::string> IASSearchPaths;
- MCTargetOptions();
- /// getABIName - If this returns a non-empty string this represents the
- /// textual name of the ABI that we want the backend to use, e.g. o32, or
- /// aapcs-linux.
- StringRef getABIName() const;
- /// getAssemblyLanguage - If this returns a non-empty string this represents
- /// the textual name of the assembly language that we will use for this
- /// target, e.g. masm.
- StringRef getAssemblyLanguage() const;
- };
- } // end namespace llvm
- #endif // LLVM_MC_MCTARGETOPTIONS_H
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|