#ifndef LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIME_H
#define LLVM_CLANG_LIB_CODEGEN_CGOPENMPRUNTIME_H
#include "CGValue.h"
#include "clang/AST/DeclOpenMP.h"
#include "clang/AST/GlobalDecl.h"
#include "clang/AST/Type.h"
#include "clang/Basic/OpenMPKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Frontend/OpenMP/OMPConstants.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/AtomicOrdering.h"
namespace llvm {
class ArrayType;
class Constant;
class FunctionType;
class GlobalVariable;
class Type;
class Value;
class OpenMPIRBuilder;
}
namespace clang {
class Expr;
class OMPDependClause;
class OMPExecutableDirective;
class OMPLoopDirective;
class VarDecl;
class OMPDeclareReductionDecl;
namespace CodeGen {
class Address;
class CodeGenFunction;
class CodeGenModule;
class PrePostActionTy { … };
class RegionCodeGenTy final { … };
struct OMPTaskDataTy final { … };
class ReductionCodeGen { … };
class CGOpenMPRuntime { … };
class CGOpenMPSIMDRuntime final : public CGOpenMPRuntime { … };
}
namespace {
template <typename T> class OMPDoacrossKind { … };
template <> class OMPDoacrossKind<OMPDependClause> { … };
template <> class OMPDoacrossKind<OMPDoacrossClause> { … };
}
}
#endif