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