summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
commitb64793999546ed8adebaeebd9d8345d18db8927d (patch)
tree4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
parentAdd support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff)
downloadwireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz
wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h')
-rw-r--r--gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h100
1 files changed, 0 insertions, 100 deletions
diff --git a/gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h b/gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
deleted file mode 100644
index 750721f1b80..00000000000
--- a/gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h
+++ /dev/null
@@ -1,100 +0,0 @@
-//===----- CGOpenCLRuntime.h - Interface to OpenCL Runtimes -----*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This provides an abstract class for OpenCL code generation. Concrete
-// subclasses of this implement code generation for specific OpenCL
-// runtime libraries.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_LIB_CODEGEN_CGOPENCLRUNTIME_H
-#define LLVM_CLANG_LIB_CODEGEN_CGOPENCLRUNTIME_H
-
-#include "clang/AST/Expr.h"
-#include "clang/AST/Type.h"
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/IR/Type.h"
-#include "llvm/IR/Value.h"
-
-namespace clang {
-
-class BlockExpr;
-class Expr;
-class VarDecl;
-
-namespace CodeGen {
-
-class CodeGenFunction;
-class CodeGenModule;
-
-class CGOpenCLRuntime {
-protected:
- CodeGenModule &CGM;
- llvm::Type *PipeROTy;
- llvm::Type *PipeWOTy;
- llvm::PointerType *SamplerTy;
-
- /// Structure for enqueued block information.
- struct EnqueuedBlockInfo {
- llvm::Function *InvokeFunc; /// Block invoke function.
- llvm::Function *Kernel; /// Enqueued block kernel.
- llvm::Value *BlockArg; /// The first argument to enqueued block kernel.
- };
- /// Maps block expression to block information.
- llvm::DenseMap<const Expr *, EnqueuedBlockInfo> EnqueuedBlockMap;
-
- virtual llvm::Type *getPipeType(const PipeType *T, StringRef Name,
- llvm::Type *&PipeTy);
-
-public:
- CGOpenCLRuntime(CodeGenModule &CGM) : CGM(CGM),
- PipeROTy(nullptr), PipeWOTy(nullptr), SamplerTy(nullptr) {}
- virtual ~CGOpenCLRuntime();
-
- /// Emit the IR required for a work-group-local variable declaration, and add
- /// an entry to CGF's LocalDeclMap for D. The base class does this using
- /// CodeGenFunction::EmitStaticVarDecl to emit an internal global for D.
- virtual void EmitWorkGroupLocalVarDecl(CodeGenFunction &CGF,
- const VarDecl &D);
-
- virtual llvm::Type *convertOpenCLSpecificType(const Type *T);
-
- virtual llvm::Type *getPipeType(const PipeType *T);
-
- llvm::PointerType *getSamplerType(const Type *T);
-
- // Returns a value which indicates the size in bytes of the pipe
- // element.
- virtual llvm::Value *getPipeElemSize(const Expr *PipeArg);
-
- // Returns a value which indicates the alignment in bytes of the pipe
- // element.
- virtual llvm::Value *getPipeElemAlign(const Expr *PipeArg);
-
- /// \return __generic void* type.
- llvm::PointerType *getGenericVoidPointerType();
-
- /// \return enqueued block information for enqueued block.
- EnqueuedBlockInfo emitOpenCLEnqueuedBlock(CodeGenFunction &CGF,
- const Expr *E);
-
- /// Record invoke function and block literal emitted during normal
- /// codegen for a block expression. The information is used by
- /// emitOpenCLEnqueuedBlock to emit wrapper kernel.
- ///
- /// \param InvokeF invoke function emitted for the block expression.
- /// \param Block block literal emitted for the block expression.
- void recordBlockInfo(const BlockExpr *E, llvm::Function *InvokeF,
- llvm::Value *Block);
-};
-
-}
-}
-
-#endif