clang  3.7.0
Classes | Typedefs | Enumerations | Functions | Variables
clang::CodeGen Namespace Reference

Classes

class  ABIArgInfo
 
class  RequiredArgs
 
class  CGFunctionInfo
 
class  CodeGenABITypes
 
class  BlockFlags
 
class  BlockFieldFlags
 
class  CGBlockInfo
 CGBlockInfo - Information to generate a block literal. More...
 
class  CGBuilderInserter
 This is an IRBuilder insertion helper that forwards to CodeGenFunction::InsertHelper, which adds necessary metadata to instructions. More...
 
struct  CallArg
 
class  CallArgList
 
class  FunctionArgList
 
class  ReturnValueSlot
 
class  EHScope
 A protected scope for zero-cost EH handling. More...
 
class  EHCatchScope
 
class  EHCleanupScope
 A cleanup scope which generates the cleanup blocks lazily. More...
 
class  EHFilterScope
 
class  EHTerminateScope
 
class  CGCUDARuntime
 
class  CGCXXABI
 Implements C++ ABI-specific code generation functions. More...
 
class  CGDebugInfo
 
class  ApplyDebugLocation
 
struct  LoopAttributes
 Attributes that may be specified on loops. More...
 
class  LoopInfo
 Information used when generating a structured loop. More...
 
class  LoopInfoStack
 A stack of loop information corresponding to loop nesting levels. This stack can be used to prepare attributes which are applied when a loop is emitted. More...
 
class  CGObjCRuntime
 Implements runtime-specific code generation functions. More...
 
class  CGOpenCLRuntime
 
class  CGOpenMPRuntime
 
struct  DebugLocThreadIdTy
 Stores debug location and ThreadID for the function. More...
 
struct  CGBitFieldInfo
 Structure with information about how a bitfield should be accessed. More...
 
class  CGRecordLayout
 
class  RValue
 
class  LValue
 
class  AggValueSlot
 An aggregate value slot. More...
 
class  CodeGenVTables
 
class  CodeGenFunction
 
struct  DominatingLLVMValue
 
struct  DominatingPointer< T, true >
 
struct  DominatingValue< RValue >
 A specialization of DominatingValue for RValue. More...
 
struct  OrderGlobalInits
 
struct  CodeGenTypeCache
 
struct  RREntrypoints
 
struct  ARCEntrypoints
 
class  InstrProfStats
 This class records statistics on instrumentation based profiling. More...
 
class  CodeGenModule
 
class  CodeGenPGO
 Per-function PGO state. More...
 
struct  TBAAPathTag
 
class  CodeGenTBAA
 
class  CodeGenTypes
 
class  CoverageMappingModuleGen
 Organizes the cross-function state that is used while generating code coverage mapping data. More...
 
class  CoverageMappingGen
 Organizes the per-function state that is used while generating code coverage mapping data. More...
 
struct  BranchFixup
 
struct  InvariantValue
 
struct  DominatingValue
 
struct  DominatingPointer
 
struct  DominatingPointer< T, false >
 
struct  DominatingValue< T * >
 
class  EHScopeStack
 
class  SanitizerMetadata
 

Typedefs

typedef CGBuilderInserter
< PreserveNames
CGBuilderInserterTy
 
typedef llvm::IRBuilder
< PreserveNames,
llvm::ConstantFolder,
CGBuilderInserterTy
CGBuilderTy
 
typedef SmallVector
< llvm::AttributeSet, 8 > 
AttributeListType
 
typedef llvm::function_ref
< void(CodeGenFunction &)> 
RegionCodeGenTy
 
typedef llvm::DenseMap
< unsigned, llvm::Value * > 
OpenMPDebugLocMapTy
 Map for SourceLocation and OpenMP runtime library debug locations. More...
 
typedef llvm::DenseMap
< llvm::Function
*, DebugLocThreadIdTy
OpenMPLocThreadIDMapTy
 Map of local debug location, ThreadId and functions. More...
 

Enumerations

enum  BlockByrefFlags {
  BLOCK_BYREF_HAS_COPY_DISPOSE = (1 << 25), BLOCK_BYREF_LAYOUT_MASK = (0xF << 28), BLOCK_BYREF_LAYOUT_EXTENDED = (1 << 28), BLOCK_BYREF_LAYOUT_NON_OBJECT = (2 << 28),
  BLOCK_BYREF_LAYOUT_STRONG = (3 << 28), BLOCK_BYREF_LAYOUT_WEAK = (4 << 28), BLOCK_BYREF_LAYOUT_UNRETAINED = (5 << 28)
}
 
enum  BlockLiteralFlags {
  BLOCK_HAS_COPY_DISPOSE = (1 << 25), BLOCK_HAS_CXX_OBJ = (1 << 26), BLOCK_IS_GLOBAL = (1 << 28), BLOCK_USE_STRET = (1 << 29),
  BLOCK_HAS_SIGNATURE = (1 << 30), BLOCK_HAS_EXTENDED_LAYOUT = (1 << 31)
}
 
enum  BlockFieldFlag_t {
  BLOCK_FIELD_IS_OBJECT = 0x03, BLOCK_FIELD_IS_BLOCK = 0x07, BLOCK_FIELD_IS_BYREF = 0x08, BLOCK_FIELD_IS_WEAK = 0x10,
  BLOCK_FIELD_IS_ARC = 0x40, BLOCK_BYREF_CALLER = 128, BLOCK_BYREF_CURRENT_MAX = 256
}
 
enum  IdentFieldIndex {
  IdentField_Reserved_1, IdentField_Flags, IdentField_Reserved_2, IdentField_Reserved_3,
  IdentField_PSource
}
 
enum  ARCPreciseLifetime_t { ARCImpreciseLifetime, ARCPreciseLifetime }
 Does an ARC strong l-value have precise lifetime? More...
 
enum  TypeEvaluationKind { TEK_Scalar, TEK_Complex, TEK_Aggregate }
 
enum  StructorType { StructorType::Complete, StructorType::Base, StructorType::Deleting }
 
enum  CleanupKind : unsigned {
  EHCleanup = 0x1, NormalCleanup = 0x2, NormalAndEHCleanup = EHCleanup | NormalCleanup, InactiveCleanup = 0x4,
  InactiveEHCleanup = EHCleanup | InactiveCleanup, InactiveNormalCleanup = NormalCleanup | InactiveCleanup, InactiveNormalAndEHCleanup = NormalAndEHCleanup | InactiveCleanup
}
 

Functions

BlockFlags operator| (BlockLiteralFlags l, BlockLiteralFlags r)
 
BlockFieldFlags operator| (BlockFieldFlag_t l, BlockFieldFlag_t r)
 
CGCUDARuntimeCreateNVCUDARuntime (CodeGenModule &CGM)
 Creates an instance of a CUDA runtime class. More...
 
CGCXXABICreateItaniumCXXABI (CodeGenModule &CGM)
 Creates an Itanium-family ABI. More...
 
CGCXXABICreateMicrosoftCXXABI (CodeGenModule &CGM)
 Creates a Microsoft-family ABI. More...
 
CGObjCRuntimeCreateGNUObjCRuntime (CodeGenModule &CGM)
 Creates an instance of an Objective-C runtime class. More...
 
CGObjCRuntimeCreateMacObjCRuntime (CodeGenModule &CGM)
 
CXXCtorType toCXXCtorType (StructorType T)
 
StructorType getFromCtorType (CXXCtorType T)
 
CXXDtorType toCXXDtorType (StructorType T)
 
StructorType getFromDtorType (CXXDtorType T)
 

Variables

class
clang::CodeGen::CGOpenMPRuntime 
ident_t
 
llvm::StructType * IdentTy
 
OpenMPDebugLocMapTy OpenMPDebugLocMap
 
llvm::FunctionType * Kmpc_MicroTy
 The type for a microtask which gets passed to __kmpc_fork_call(). Original representation is: typedef void (kmpc_micro)(kmp_int32 global_tid, kmp_int32 bound_tid,...);. More...
 
OpenMPLocThreadIDMapTy OpenMPLocThreadIDMap
 
llvm::ArrayType * KmpCriticalNameTy
 Type kmp_critical_name, originally defined as typedef kmp_int32 kmp_critical_name[8];. More...
 
llvm::StringMap
< llvm::AssertingVH
< llvm::Constant >
, llvm::BumpPtrAllocator > 
InternalVars
 An ordered map of auto-generated variables to their unique names. It stores variables with the following names: 1) ".gomp_critical_user_" + <critical_section_name> + ".var" for "omp critical" directives; 2) <mangled_name_for_global_var> + ".cache." for cache for threadprivate variables. More...
 
llvm::Type * KmpRoutineEntryPtrTy
 Type typedef kmp_int32 (* kmp_routine_entry_t)(kmp_int32, void *);. More...
 
QualType KmpRoutineEntryPtrQTy
 
*kmp_routine_entry_t routine
 Type typedef struct kmp_task { void * shareds; /**< pointer to block of pointers to shared vars. More...
 
*kmp_int32 part_id
 
*kmp_routine_entry_t destructors
 

Typedef Documentation

typedef SmallVector<llvm::AttributeSet, 8> clang::CodeGen::AttributeListType

Definition at line 43 of file CGCall.h.

Definition at line 47 of file CGBuilder.h.

typedef llvm::IRBuilder<PreserveNames, llvm::ConstantFolder, CGBuilderInserterTy> clang::CodeGen::CGBuilderTy

Definition at line 49 of file CGBuilder.h.

Map for SourceLocation and OpenMP runtime library debug locations.

Definition at line 230 of file CGOpenMPRuntime.h.

typedef llvm::DenseMap<llvm::Function *, DebugLocThreadIdTy> clang::CodeGen::OpenMPLocThreadIDMapTy

Map of local debug location, ThreadId and functions.

Definition at line 243 of file CGOpenMPRuntime.h.

typedef llvm::function_ref<void(CodeGenFunction &)> clang::CodeGen::RegionCodeGenTy

Definition at line 44 of file CGOpenMPRuntime.h.

Enumeration Type Documentation

Does an ARC strong l-value have precise lifetime?

Enumerator
ARCImpreciseLifetime 
ARCPreciseLifetime 

Definition at line 102 of file CGValue.h.

Enumerator
BLOCK_BYREF_HAS_COPY_DISPOSE 
BLOCK_BYREF_LAYOUT_MASK 
BLOCK_BYREF_LAYOUT_EXTENDED 
BLOCK_BYREF_LAYOUT_NON_OBJECT 
BLOCK_BYREF_LAYOUT_STRONG 
BLOCK_BYREF_LAYOUT_WEAK 
BLOCK_BYREF_LAYOUT_UNRETAINED 

Definition at line 50 of file CGBlocks.h.

Enumerator
BLOCK_FIELD_IS_OBJECT 
BLOCK_FIELD_IS_BLOCK 
BLOCK_FIELD_IS_BYREF 
BLOCK_FIELD_IS_WEAK 
BLOCK_FIELD_IS_ARC 
BLOCK_BYREF_CALLER 
BLOCK_BYREF_CURRENT_MAX 

Definition at line 98 of file CGBlocks.h.

Enumerator
BLOCK_HAS_COPY_DISPOSE 
BLOCK_HAS_CXX_OBJ 
BLOCK_IS_GLOBAL 
BLOCK_USE_STRET 
BLOCK_HAS_SIGNATURE 
BLOCK_HAS_EXTENDED_LAYOUT 

Definition at line 60 of file CGBlocks.h.

Enumerator
EHCleanup 

Denotes a cleanup that should run when a scope is exited using exceptional control flow (a throw statement leading to stack unwinding, ).

NormalCleanup 

Denotes a cleanup that should run when a scope is exited using normal control flow (falling off the end of the scope, return, goto, ...).

NormalAndEHCleanup 
InactiveCleanup 
InactiveEHCleanup 
InactiveNormalCleanup 
InactiveNormalAndEHCleanup 

Definition at line 78 of file EHScopeStack.h.

Enumerator
IdentField_Reserved_1 

might be used in Fortran

IdentField_Flags 

OMP_IDENT_xxx flags; OMP_IDENT_KMPC identifies this union member.

IdentField_Reserved_2 

Not really used in Fortran any more.

IdentField_Reserved_3 

Source[4] in Fortran, do not use for C++.

IdentField_PSource 

String describing the source location. The string is composed of semi-colon separated fields which describe the source file, the function and a pair of line numbers that delimit the construct.

Definition at line 214 of file CGOpenMPRuntime.h.

Enumerator
Complete 
Base 
Deleting 

Definition at line 59 of file CodeGenTypes.h.

The kind of evaluation to perform on values of a particular type. Basically, is the code in CGExprScalar, CGExprComplex, or CGExprAgg?

TODO: should vectors maybe be split out into their own thing?

Enumerator
TEK_Scalar 
TEK_Complex 
TEK_Aggregate 

Definition at line 91 of file CodeGenFunction.h.

Function Documentation

CGObjCRuntime * clang::CodeGen::CreateGNUObjCRuntime ( CodeGenModule CGM)

Creates an instance of an Objective-C runtime class.

Definition at line 2834 of file CGObjCGNU.cpp.

References clang::ObjCRuntime::getKind(), clang::CodeGen::CodeGenModule::getLangOpts(), and clang::LangOptions::ObjCRuntime.

CodeGen::CGCXXABI * clang::CodeGen::CreateItaniumCXXABI ( CodeGenModule CGM)
CGObjCRuntime* clang::CodeGen::CreateMacObjCRuntime ( CodeGenModule &  CGM)
CGCXXABI * clang::CodeGen::CreateMicrosoftCXXABI ( CodeGenModule CGM)

Creates a Microsoft-family ABI.

Definition at line 3188 of file CodeGen/MicrosoftCXXABI.cpp.

Referenced by createCXXABI().

CGCUDARuntime * clang::CodeGen::CreateNVCUDARuntime ( CodeGenModule CGM)

Creates an instance of a CUDA runtime class.

Definition at line 315 of file CGCUDANV.cpp.

StructorType clang::CodeGen::getFromCtorType ( CXXCtorType  T)
inline
StructorType clang::CodeGen::getFromDtorType ( CXXDtorType  T)
inline
BlockFlags clang::CodeGen::operator| ( BlockLiteralFlags  l,
BlockLiteralFlags  r 
)
inline

Definition at line 94 of file CGBlocks.h.

BlockFieldFlags clang::CodeGen::operator| ( BlockFieldFlag_t  l,
BlockFieldFlag_t  r 
)
inline

Definition at line 139 of file CGBlocks.h.

CXXCtorType clang::CodeGen::toCXXCtorType ( StructorType  T)
inline
CXXDtorType clang::CodeGen::toCXXDtorType ( StructorType  T)
inline

Variable Documentation

* kmp_routine_entry_t clang::CodeGen::destructors

Definition at line 264 of file CGOpenMPRuntime.h.

class clang::CodeGen::CGOpenMPRuntime clang::CodeGen::ident_t
llvm::StructType* clang::CodeGen::IdentTy

Definition at line 228 of file CGOpenMPRuntime.h.

Referenced by clang::getIdentTyPointerTy().

llvm::StringMap<llvm::AssertingVH<llvm::Constant>, llvm::BumpPtrAllocator> clang::CodeGen::InternalVars

An ordered map of auto-generated variables to their unique names. It stores variables with the following names: 1) ".gomp_critical_user_" + <critical_section_name> + ".var" for "omp critical" directives; 2) <mangled_name_for_global_var> + ".cache." for cache for threadprivate variables.

Definition at line 254 of file CGOpenMPRuntime.h.

Referenced by clang::getOrCreateInternalVariable().

llvm::FunctionType* clang::CodeGen::Kmpc_MicroTy

The type for a microtask which gets passed to __kmpc_fork_call(). Original representation is: typedef void (kmpc_micro)(kmp_int32 global_tid, kmp_int32 bound_tid,...);.

Definition at line 235 of file CGOpenMPRuntime.h.

Referenced by clang::getKmpc_MicroPointerTy().

llvm::ArrayType* clang::CodeGen::KmpCriticalNameTy

Type kmp_critical_name, originally defined as typedef kmp_int32 kmp_critical_name[8];.

Definition at line 247 of file CGOpenMPRuntime.h.

Referenced by clang::createRuntimeFunction(), and clang::getCriticalRegionLock().

QualType clang::CodeGen::KmpRoutineEntryPtrQTy

Definition at line 257 of file CGOpenMPRuntime.h.

Referenced by clang::emitKmpRoutineEntryT().

llvm::Type* clang::CodeGen::KmpRoutineEntryPtrTy

Type typedef kmp_int32 (* kmp_routine_entry_t)(kmp_int32, void *);.

Definition at line 256 of file CGOpenMPRuntime.h.

Referenced by clang::createRuntimeFunction(), and clang::emitKmpRoutineEntryT().

OpenMPDebugLocMapTy clang::CodeGen::OpenMPDebugLocMap

Definition at line 231 of file CGOpenMPRuntime.h.

OpenMPLocThreadIDMapTy clang::CodeGen::OpenMPLocThreadIDMap

Definition at line 244 of file CGOpenMPRuntime.h.

* kmp_int32 clang::CodeGen::part_id

part id for the task

Definition at line 263 of file CGOpenMPRuntime.h.

* kmp_routine_entry_t clang::CodeGen::routine

Type typedef struct kmp_task { void * shareds; /**< pointer to block of pointers to shared vars.

pointer to routine to call for executing task

Definition at line 261 of file CGOpenMPRuntime.h.