clang  3.9.0
Macros | Functions
CodeGenFunction.cpp File Reference
#include "CodeGenFunction.h"
#include "CGBlocks.h"
#include "CGCleanup.h"
#include "CGCUDARuntime.h"
#include "CGCXXABI.h"
#include "CGDebugInfo.h"
#include "CGOpenMPRuntime.h"
#include "CodeGenModule.h"
#include "CodeGenPGO.h"
#include "TargetInfo.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/StmtCXX.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/CodeGen/CGFunctionInfo.h"
#include "clang/Frontend/CodeGenOptions.h"
#include "clang/Sema/SemaDiagnostic.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/IR/Operator.h"
#include "clang/AST/TypeNodes.def"
Include dependency graph for CodeGenFunction.cpp:

Go to the source code of this file.

Macros

#define TYPE(name, parent)
 
#define ABSTRACT_TYPE(name, parent)
 
#define NON_CANONICAL_TYPE(name, parent)   case Type::name:
 
#define DEPENDENT_TYPE(name, parent)   case Type::name:
 
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(name, parent)   case Type::name:
 
#define TYPE(Class, Base)
 
#define ABSTRACT_TYPE(Class, Base)
 
#define NON_CANONICAL_TYPE(Class, Base)
 
#define DEPENDENT_TYPE(Class, Base)   case Type::Class:
 
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base)
 

Functions

static void EmitIfUsed (CodeGenFunction &CGF, llvm::BasicBlock *BB)
 
static void GenOpenCLArgMetadata (const FunctionDecl *FD, llvm::Function *Fn, CodeGenModule &CGM, llvm::LLVMContext &Context, CGBuilderTy &Builder, ASTContext &ASTCtx)
 
static bool endsWithReturn (const Decl *F)
 Determine whether the function F ends with a return stmt. More...
 
static void TryMarkNoThrow (llvm::Function *F)
 Tries to mark the given function nounwind based on the non-existence of any throwing calls within it. More...
 
static void emitNonZeroVLAInit (CodeGenFunction &CGF, QualType baseType, Address dest, Address src, llvm::Value *sizeInChars)
 emitNonZeroVLAInit - Emit the "zero" initialization of a variable-length array whose elements have a non-zero bit-pattern. More...
 
static bool hasRequiredFeatures (const SmallVectorImpl< StringRef > &ReqFeatures, CodeGenModule &CGM, const FunctionDecl *FD, std::string &FirstMissing)
 

Macro Definition Documentation

#define ABSTRACT_TYPE (   name,
  parent 
)
#define ABSTRACT_TYPE (   Class,
  Base 
)
#define DEPENDENT_TYPE (   name,
  parent 
)    case Type::name:
#define DEPENDENT_TYPE (   Class,
  Base 
)    case Type::Class:
#define NON_CANONICAL_TYPE (   name,
  parent 
)    case Type::name:
#define NON_CANONICAL_TYPE (   Class,
  Base 
)
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE (   name,
  parent 
)    case Type::name:
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE (   Class,
  Base 
)
#define TYPE (   name,
  parent 
)
#define TYPE (   Class,
  Base 
)

Function Documentation

static void EmitIfUsed ( CodeGenFunction CGF,
llvm::BasicBlock *  BB 
)
static
static void emitNonZeroVLAInit ( CodeGenFunction CGF,
QualType  baseType,
Address  dest,
Address  src,
llvm::Value sizeInChars 
)
static
static bool endsWithReturn ( const Decl F)
static

Determine whether the function F ends with a return stmt.

Definition at line 638 of file CodeGenFunction.cpp.

References clang::FunctionDecl::getBody().

Referenced by clang::CodeGen::CodeGenFunction::StartFunction().

static void GenOpenCLArgMetadata ( const FunctionDecl FD,
llvm::Function *  Fn,
CodeGenModule CGM,
llvm::LLVMContext &  Context,
CGBuilderTy Builder,
ASTContext ASTCtx 
)
static
static bool hasRequiredFeatures ( const SmallVectorImpl< StringRef > &  ReqFeatures,
CodeGenModule CGM,
const FunctionDecl FD,
std::string &  FirstMissing 
)
static
static void TryMarkNoThrow ( llvm::Function *  F)
static

Tries to mark the given function nounwind based on the non-existence of any throwing calls within it.

We believe this is lightweight enough to do at -O0.

Definition at line 940 of file CodeGenFunction.cpp.

References I.

Referenced by clang::CodeGen::CodeGenFunction::GenerateCode().