1 //===- MCTargetOptions.h - MC Target Options -------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_MC_MCTARGETOPTIONS_H
11 #define LLVM_MC_MCTARGETOPTIONS_H
19 class MCTargetOptions {
21 enum AsmInstrumentation {
22 AsmInstrumentationNone,
23 AsmInstrumentationAddress
26 /// Enables AddressSanitizer instrumentation at machine level.
27 bool SanitizeAddress : 1;
30 bool MCNoExecStack : 1;
31 bool MCFatalWarnings : 1;
33 bool MCSaveTempLabels : 1;
34 bool MCUseDwarfDirectory : 1;
35 bool MCIncrementalLinkerCompatible : 1;
36 bool ShowMCEncoding : 1;
40 /// Preserve Comments in Assembly.
41 bool PreserveAsmComments : 1;
44 /// getABIName - If this returns a non-empty string this represents the
45 /// textual name of the ABI that we want the backend to use, e.g. o32, or
47 StringRef getABIName() const;
52 inline bool operator==(const MCTargetOptions &LHS, const MCTargetOptions &RHS) {
53 #define ARE_EQUAL(X) LHS.X == RHS.X
54 return (ARE_EQUAL(SanitizeAddress) &&
55 ARE_EQUAL(MCRelaxAll) &&
56 ARE_EQUAL(MCNoExecStack) &&
57 ARE_EQUAL(MCFatalWarnings) &&
58 ARE_EQUAL(MCNoWarn) &&
59 ARE_EQUAL(MCSaveTempLabels) &&
60 ARE_EQUAL(MCUseDwarfDirectory) &&
61 ARE_EQUAL(MCIncrementalLinkerCompatible) &&
62 ARE_EQUAL(ShowMCEncoding) &&
63 ARE_EQUAL(ShowMCInst) &&
64 ARE_EQUAL(AsmVerbose) &&
65 ARE_EQUAL(DwarfVersion) &&
70 inline bool operator!=(const MCTargetOptions &LHS, const MCTargetOptions &RHS) {
74 } // end namespace llvm