#ifndef LLVM_ADT_SMALLVECTOR_H
#define LLVM_ADT_SMALLVECTOR_H
-#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/type_traits.h"
#include <algorithm>
namespace llvm {
+template <typename IteratorT> class iterator_range;
+
/// This is all the stuff common to all SmallVectors.
///
/// The template parameter specifies the type which should be used to hold the
#ifndef LLVM_SUPPORT_ARMTARGETPARSER_H
#define LLVM_SUPPORT_ARMTARGETPARSER_H
-#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ARMBuildAttributes.h"
#include <vector>
#include <cstddef>
#include <string>
+
+#if defined(_WIN32)
#include <system_error>
+#endif
// Wrap everything in namespace llvm so that programs can link with llvm and
// their own version of the unicode libraries.
// FIXME: vector is used because that's what clang uses for subtarget feature
// lists, but SmallVector would probably be better
-#include "llvm/ADT/Triple.h"
#include "llvm/Support/RISCVISAInfo.h"
#include <vector>
namespace llvm {
+
class StringRef;
+template <typename T> class SmallVectorImpl;
+class Triple;
// Target specific information in their own namespaces.
// (ARM/AArch64/X86 are declared in ARM/AArch64/X86TargetParser.h)
#include <future>
-#include <atomic>
#include <condition_variable>
#include <functional>
#include <memory>
#define LLVM_SUPPORT_X86TARGETPARSER_H
#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
namespace llvm {
+template <typename T> class SmallVectorImpl;;
class StringRef;
namespace X86 {
#include "llvm/Support/Endian.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <vector>
namespace llvm {
+
+class VersionTuple;
+
namespace yaml {
enum class NodeKind : uint8_t {
//===----------------------------------------------------------------------===//
#include "llvm/Support/BinaryStreamError.h"
-#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
using namespace llvm;
#include "llvm/Support/CrashRecoveryContext.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/ErrorHandling.h"
-#include "llvm/Support/ExitCodes.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Signals.h"
#include "llvm/Support/ThreadLocal.h"
#include <mutex>
#include <setjmp.h>
+#if !defined(_MSC_VER) && !defined(_WIN32)
+#include "llvm/Support/ExitCodes.h"
+#endif
+
using namespace llvm;
namespace {
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
-#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include "llvm/Support/Errc.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MathExtras.h"
-#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/SmallVectorMemoryBuffer.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringSwitch.h"
-#include "llvm/Support/ARMBuildAttributes.h"
+#include "llvm/ADT/Triple.h"
using namespace llvm;
using namespace AMDGPU;
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/Threading.h"
-#include "llvm/Support/raw_ostream.h"
using namespace llvm;
#include "llvm/Support/Format.h"
#include "llvm/Support/LineIterator.h"
#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/VersionTuple.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>