1//===-- MCTargetOptionsCommandFlags.h --------------------------*- 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// This file contains machine code-specific flags that are shared between 10// different command line tools. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 15#define LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 16 17#include <optional> 18#include <string> 19 20namespace llvm { 21 22class MCTargetOptions; 23enum class EmitDwarfUnwindType; 24 25namespace mc { 26 27bool getRelaxAll(); 28std::optional<bool> getExplicitRelaxAll(); 29 30bool getIncrementalLinkerCompatible(); 31 32int getDwarfVersion(); 33 34bool getDwarf64(); 35 36EmitDwarfUnwindType getEmitDwarfUnwind(); 37 38bool getEmitCompactUnwindNonCanonical(); 39 40bool getShowMCInst(); 41 42bool getFatalWarnings(); 43 44bool getNoWarn(); 45 46bool getNoDeprecatedWarn(); 47 48bool getNoTypeCheck(); 49 50std::string getABIName(); 51 52std::string getAsSecureLogFile(); 53 54/// Create this object with static storage to register mc-related command 55/// line options. 56struct RegisterMCTargetOptionsFlags { 57 RegisterMCTargetOptionsFlags(); 58}; 59 60MCTargetOptions InitMCTargetOptionsFromFlags(); 61 62} // namespace mc 63 64} // namespace llvm 65 66#endif 67