Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===--- LLVM.h - Import various common LLVM datatypes ----------*- 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 forward declares and imports various common LLVM datatypes that
10
// lld wants to use unqualified.
11
//
12
//===----------------------------------------------------------------------===//
13
 
14
#ifndef LLD_COMMON_LLVM_H
15
#define LLD_COMMON_LLVM_H
16
 
17
// This should be the only #include, force #includes of all the others on
18
// clients.
19
#include "llvm/ADT/Hashing.h"
20
#include "llvm/ADT/StringRef.h"
21
#include "llvm/Support/Casting.h"
22
#include <utility>
23
 
24
namespace llvm {
25
// ADT's.
26
class raw_ostream;
27
class Error;
28
class StringRef;
29
class Twine;
30
class MemoryBuffer;
31
class MemoryBufferRef;
32
template <typename T> class ArrayRef;
33
template <typename T> class MutableArrayRef;
34
template <unsigned InternalLen> class SmallString;
35
template <typename T, unsigned N> class SmallVector;
36
template <typename T> class ErrorOr;
37
template <typename T> class Expected;
38
 
39
namespace object {
40
class WasmObjectFile;
41
struct WasmSection;
42
struct WasmSegment;
43
class WasmSymbol;
44
} // namespace object
45
 
46
namespace wasm {
47
struct WasmTag;
48
struct WasmFunction;
49
struct WasmGlobal;
50
struct WasmGlobalType;
51
struct WasmInitExpr;
52
struct WasmLimits;
53
struct WasmRelocation;
54
struct WasmSignature;
55
struct WasmTable;
56
struct WasmTableType;
57
} // namespace wasm
58
} // namespace llvm
59
 
60
namespace lld {
61
llvm::raw_ostream &outs();
62
llvm::raw_ostream &errs();
63
 
64
// Casting operators.
65
using llvm::cast;
66
using llvm::cast_or_null;
67
using llvm::dyn_cast;
68
using llvm::dyn_cast_or_null;
69
using llvm::isa;
70
 
71
// ADT's.
72
using llvm::ArrayRef;
73
using llvm::MutableArrayRef;
74
using llvm::Error;
75
using llvm::ErrorOr;
76
using llvm::Expected;
77
using llvm::MemoryBuffer;
78
using llvm::MemoryBufferRef;
79
using llvm::raw_ostream;
80
using llvm::SmallString;
81
using llvm::SmallVector;
82
using llvm::StringRef;
83
using llvm::Twine;
84
 
85
using llvm::object::WasmObjectFile;
86
using llvm::object::WasmSection;
87
using llvm::object::WasmSegment;
88
using llvm::object::WasmSymbol;
89
using llvm::wasm::WasmFunction;
90
using llvm::wasm::WasmGlobal;
91
using llvm::wasm::WasmGlobalType;
92
using llvm::wasm::WasmInitExpr;
93
using llvm::wasm::WasmLimits;
94
using llvm::wasm::WasmRelocation;
95
using llvm::wasm::WasmSignature;
96
using llvm::wasm::WasmTable;
97
using llvm::wasm::WasmTableType;
98
using llvm::wasm::WasmTag;
99
} // end namespace lld.
100
 
101
namespace std {
102
template <> struct hash<llvm::StringRef> {
103
public:
104
  size_t operator()(const llvm::StringRef &s) const {
105
    return llvm::hash_value(s);
106
  }
107
};
108
} // namespace std
109
 
110
#endif