Coverage Report

Created: 2018-07-19 03:59

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/MC/MCTargetOptions.h
Line
Count
Source (jump to first uncovered line)
1
//===- MCTargetOptions.h - MC Target Options --------------------*- C++ -*-===//
2
//
3
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef LLVM_MC_MCTARGETOPTIONS_H
11
#define LLVM_MC_MCTARGETOPTIONS_H
12
13
#include <string>
14
#include <vector>
15
16
namespace llvm {
17
18
enum class ExceptionHandling {
19
  None,     /// No exception support
20
  DwarfCFI, /// DWARF-like instruction based exceptions
21
  SjLj,     /// setjmp/longjmp based exceptions
22
  ARM,      /// ARM EHABI
23
  WinEH,    /// Windows Exception Handling
24
  Wasm,     /// WebAssembly Exception Handling
25
};
26
27
enum class DebugCompressionType {
28
  None, /// No compression
29
  GNU,  /// zlib-gnu style compression
30
  Z,    /// zlib style complession
31
};
32
33
class StringRef;
34
35
0
class MCTargetOptions {
36
public:
37
  enum AsmInstrumentation {
38
    AsmInstrumentationNone,
39
    AsmInstrumentationAddress
40
  };
41
42
  /// Enables AddressSanitizer instrumentation at machine level.
43
  bool SanitizeAddress : 1;
44
45
  bool MCRelaxAll : 1;
46
  bool MCNoExecStack : 1;
47
  bool MCFatalWarnings : 1;
48
  bool MCNoWarn : 1;
49
  bool MCNoDeprecatedWarn : 1;
50
  bool MCSaveTempLabels : 1;
51
  bool MCUseDwarfDirectory : 1;
52
  bool MCIncrementalLinkerCompatible : 1;
53
  bool MCPIECopyRelocations : 1;
54
  bool ShowMCEncoding : 1;
55
  bool ShowMCInst : 1;
56
  bool AsmVerbose : 1;
57
58
  /// Preserve Comments in Assembly.
59
  bool PreserveAsmComments : 1;
60
61
  int DwarfVersion = 0;
62
63
  std::string ABIName;
64
  std::string SplitDwarfFile;
65
66
  /// Additional paths to search for `.include` directives when using the
67
  /// integrated assembler.
68
  std::vector<std::string> IASSearchPaths;
69
70
  MCTargetOptions();
71
72
  /// getABIName - If this returns a non-empty string this represents the
73
  /// textual name of the ABI that we want the backend to use, e.g. o32, or
74
  /// aapcs-linux.
75
  StringRef getABIName() const;
76
};
77
78
} // end namespace llvm
79
80
#endif // LLVM_MC_MCTARGETOPTIONS_H