1 //===----- CGObjCRuntime.h - Emit LLVM Code from ASTs for a Module --------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This provides an abstract class for Objective-C code generation. Concrete
11 // subclasses of this implement code generation for specific Objective-C
14 //===----------------------------------------------------------------------===//
16 #ifndef CLANG_CODEGEN_OBCJRUNTIME_H
17 #define CLANG_CODEGEN_OBCJRUNTIME_H
20 class LLVMFoldingBuilder;
30 // Implements runtime-specific code generation functions
33 virtual ~CGObjCRuntime();
35 // Generate an Objective-C message send operation
36 virtual llvm::Value *generateMessageSend(llvm::LLVMFoldingBuilder &Builder,
37 const llvm::Type *ReturnTy,
38 llvm::Value *Receiver,
39 llvm::Constant *Selector,
44 CGObjCRuntime *CreateObjCRuntime(llvm::Module &M);