15ffd83dbSDimitry Andric //===-- MCTargetOptionsCommandFlags.h --------------------------*- C++ -*-===// 25ffd83dbSDimitry Andric // 35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65ffd83dbSDimitry Andric // 75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 85ffd83dbSDimitry Andric // 95ffd83dbSDimitry Andric // This file contains machine code-specific flags that are shared between 105ffd83dbSDimitry Andric // different command line tools. 115ffd83dbSDimitry Andric // 125ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 135ffd83dbSDimitry Andric 145ffd83dbSDimitry Andric #ifndef LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 155ffd83dbSDimitry Andric #define LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H 165ffd83dbSDimitry Andric 17bdd1243dSDimitry Andric #include <optional> 185ffd83dbSDimitry Andric #include <string> 195ffd83dbSDimitry Andric 205ffd83dbSDimitry Andric namespace llvm { 215ffd83dbSDimitry Andric 225ffd83dbSDimitry Andric class MCTargetOptions; 2381ad6265SDimitry Andric enum class EmitDwarfUnwindType; 245ffd83dbSDimitry Andric 255ffd83dbSDimitry Andric namespace mc { 265ffd83dbSDimitry Andric 275ffd83dbSDimitry Andric bool getRelaxAll(); 28bdd1243dSDimitry Andric std::optional<bool> getExplicitRelaxAll(); 295ffd83dbSDimitry Andric 305ffd83dbSDimitry Andric bool getIncrementalLinkerCompatible(); 315ffd83dbSDimitry Andric 325ffd83dbSDimitry Andric int getDwarfVersion(); 335ffd83dbSDimitry Andric 345ffd83dbSDimitry Andric bool getDwarf64(); 355ffd83dbSDimitry Andric 3681ad6265SDimitry Andric EmitDwarfUnwindType getEmitDwarfUnwind(); 3781ad6265SDimitry Andric 38*06c3fb27SDimitry Andric bool getEmitCompactUnwindNonCanonical(); 39*06c3fb27SDimitry Andric 405ffd83dbSDimitry Andric bool getShowMCInst(); 415ffd83dbSDimitry Andric 425ffd83dbSDimitry Andric bool getFatalWarnings(); 435ffd83dbSDimitry Andric 445ffd83dbSDimitry Andric bool getNoWarn(); 455ffd83dbSDimitry Andric 465ffd83dbSDimitry Andric bool getNoDeprecatedWarn(); 475ffd83dbSDimitry Andric 48fe6060f1SDimitry Andric bool getNoTypeCheck(); 49fe6060f1SDimitry Andric 505ffd83dbSDimitry Andric std::string getABIName(); 515ffd83dbSDimitry Andric 52bdd1243dSDimitry Andric std::string getAsSecureLogFile(); 53bdd1243dSDimitry Andric 545ffd83dbSDimitry Andric /// Create this object with static storage to register mc-related command 555ffd83dbSDimitry Andric /// line options. 565ffd83dbSDimitry Andric struct RegisterMCTargetOptionsFlags { 575ffd83dbSDimitry Andric RegisterMCTargetOptionsFlags(); 585ffd83dbSDimitry Andric }; 595ffd83dbSDimitry Andric 605ffd83dbSDimitry Andric MCTargetOptions InitMCTargetOptionsFromFlags(); 615ffd83dbSDimitry Andric 625ffd83dbSDimitry Andric } // namespace mc 635ffd83dbSDimitry Andric 645ffd83dbSDimitry Andric } // namespace llvm 655ffd83dbSDimitry Andric 665ffd83dbSDimitry Andric #endif 67