diff options
| author | 2020-08-03 15:06:44 +0000 | |
|---|---|---|
| committer | 2020-08-03 15:06:44 +0000 | |
| commit | b64793999546ed8adebaeebd9d8345d18db8927d (patch) | |
| tree | 4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h | |
| parent | Add support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff) | |
| download | wireguard-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.h | 100 |
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 |
