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

Classes

class  ABIArgInfo
 ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to or returned from a function. More...
 
class  RequiredArgs
 A class for recording the number of arguments that a function signature requires. More...
 
class  CGFunctionInfo
 CGFunctionInfo - Class to encapsulate the information about a function definition. More...
 
class  CGCalleeInfo
 CGCalleeInfo - Class to encapsulate the information about a callee to be used during the generation of call/invoke instructions. More...
 
class  CodeGenABITypes
 
class  Address
 An aligned address. More...
 
class  ConstantAddress
 A specialization of Address that requires the address to be an LLVM Constant. More...
 
class  BlockFlags
 
class  BlockFieldFlags
 
class  BlockByrefInfo
 Information about the layout of a __block variable. More...
 
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...
 
class  CGBuilderTy
 
struct  CallArg
 
class  CallArgList
 CallArgList - Type for representing both the value and type of arguments in a call. More...
 
class  FunctionArgList
 FunctionArgList - Type for representing both the decl and type of parameters to a function. More...
 
class  ReturnValueSlot
 ReturnValueSlot - Contains the address where the return value of a function can be stored, and whether the address is volatile or not. More...
 
struct  CatchTypeInfo
 The MS C++ ABI needs a pointer to RTTI data plus some flags to describe the type of a catch handler, so we use this wrapper. More...
 
class  EHScope
 A protected scope for zero-cost EH handling. More...
 
class  EHCatchScope
 A scope which attempts to handle some, possibly all, types of exceptions. More...
 
struct  ExtInfo
 Extra information required for cleanups that have resolved branches through them. More...
 
class  EHFilterScope
 An exceptions scope which filters exceptions thrown through it. More...
 
class  EHTerminateScope
 An exceptions scope which calls std::terminate if any exception reaches it. More...
 
class  EHPadEndScope
 
struct  EHPersonality
 The exceptions personality for a function. More...
 
class  CGCUDARuntime
 
class  CGCXXABI
 Implements C++ ABI-specific code generation functions. More...
 
class  CGDebugInfo
 This class gathers all debug information during compilation and is responsible for emitting to llvm globals or pass directly to the backend. More...
 
class  ApplyDebugLocation
 A scoped helper to set the current debug location to the specified location or preferred location of the specified Expr. More...
 
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. More...
 
class  CGObjCRuntime
 Implements runtime-specific code generation functions. More...
 
class  CGOpenCLRuntime
 
class  CGOpenMPRuntime
 
struct  CGBitFieldInfo
 Structure with information about how a bitfield should be accessed. More...
 
class  CGRecordLayout
 CGRecordLayout - This class handles struct and union layout info while lowering AST types to LLVM types. More...
 
class  RValue
 RValue - This trivial value class is used to represent the result of an expression that is evaluated. More...
 
class  LValue
 LValue - This represents an lvalue references. More...
 
class  AggValueSlot
 An aggregate value slot. More...
 
class  CodeGenVTables
 
class  CodeGenFunction
 CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code. More...
 
struct  DominatingLLVMValue
 Helper class with most of the code for saving a value for a conditional expression cleanup. More...
 
struct  DominatingPointer< T, true >
 A partial specialization of DominatingValue for llvm::Values that might be llvm::Instructions. More...
 
struct  DominatingValue< Address >
 A specialization of DominatingValue for Address. More...
 
struct  DominatingValue< RValue >
 A specialization of DominatingValue for RValue. More...
 
struct  OrderGlobalInits
 
struct  ObjCEntrypoints
 
class  InstrProfStats
 This class records statistics on instrumentation based profiling. More...
 
class  BlockByrefHelpers
 A pair of helper functions for a __block variable. More...
 
class  CodeGenModule
 This class organizes the cross-function state that is used while generating LLVM code. More...
 
class  CodeGenPGO
 Per-function PGO state. More...
 
struct  TBAAPathTag
 
class  CodeGenTBAA
 CodeGenTBAA - This class organizes the cross-module state that is used while lowering AST types to LLVM types. More...
 
struct  CodeGenTypeCache
 This structure provides a set of types that are commonly used during IR emission. More...
 
class  CodeGenTypes
 This class organizes the cross-module state that is used while lowering AST types to LLVM types. More...
 
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
 A branch fixup. More...
 
struct  InvariantValue
 
struct  DominatingValue
 A metaprogramming class for ensuring that a value will dominate an arbitrary position in a function. More...
 
struct  DominatingPointer
 
struct  DominatingPointer< T, false >
 
struct  DominatingValue< T * >
 
class  EHScopeStack
 A stack of scopes which respond to exceptions, including cleanups and catch blocks. More...
 
class  SanitizerMetadata
 

Typedefs

typedef CGBuilderInserter
< PreserveNames
CGBuilderInserterTy
 
typedef llvm::IRBuilder
< PreserveNames,
llvm::ConstantFolder,
CGBuilderInserterTy
CGBuilderBaseTy
 
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  AlignmentSource { AlignmentSource::Decl, AlignmentSource::AttributedType, AlignmentSource::Type }
 The source of the alignment of an l-value; an expression of confidence in the alignment actually matching the estimate. More...
 
enum  TypeEvaluationKind { TEK_Scalar, TEK_Complex, TEK_Aggregate }
 The kind of evaluation to perform on values of a particular type. More...
 
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)
 
struct ExtInfogetExtInfo ()
 
static size_t getSizeForCleanupSize (size_t Size)
 Gets the size required for a lazy cleanup scope with the given cleanup-data requirements. More...
 
size_t getAllocatedSize () const
 
 EHCleanupScope (bool isNormal, bool isEH, bool isActive, unsigned cleanupSize, unsigned fixupDepth, EHScopeStack::stable_iterator enclosingNormal, EHScopeStack::stable_iterator enclosingEH)
 
void Destroy ()
 
 ~EHCleanupScope ()=delete
 
bool isNormalCleanup () const
 
llvm::BasicBlock * getNormalBlock () const
 
void setNormalBlock (llvm::BasicBlock *BB)
 
bool isEHCleanup () const
 
bool isActive () const
 
void setActive (bool A)
 
bool isLifetimeMarker () const
 
void setLifetimeMarker ()
 
bool hasActiveFlag () const
 
Address getActiveFlag () const
 
void setActiveFlag (Address Var)
 
void setTestFlagInNormalCleanup ()
 
bool shouldTestFlagInNormalCleanup () const
 
void setTestFlagInEHCleanup ()
 
bool shouldTestFlagInEHCleanup () const
 
unsigned getFixupDepth () const
 
EHScopeStack::stable_iterator getEnclosingNormalCleanup () const
 
size_t getCleanupSize () const
 
void * getCleanupBuffer ()
 
EHScopeStack::CleanupgetCleanup ()
 
bool hasBranches () const
 True if this cleanup scope has any branch-afters or branch-throughs. More...
 
void addBranchAfter (llvm::ConstantInt *Index, llvm::BasicBlock *Block)
 Add a branch-after to this cleanup scope. More...
 
unsigned getNumBranchAfters () const
 Return the number of unique branch-afters on this scope. More...
 
llvm::BasicBlock * getBranchAfterBlock (unsigned I) const
 
llvm::ConstantInt * getBranchAfterIndex (unsigned I) const
 
bool addBranchThrough (llvm::BasicBlock *Block)
 Add a branch-through to this cleanup scope. More...
 
bool hasBranchThroughs () const
 Determines if this cleanup scope has any branch throughs. More...
 
static bool classof (const EHScope *Scope)
 
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)
 
static AlignmentSource getFieldAlignmentSource (AlignmentSource Source)
 Given that the base address has the given alignment source, what's our confidence in the alignment of the field? More...
 
CXXCtorType toCXXCtorType (StructorType T)
 
StructorType getFromCtorType (CXXCtorType T)
 
CXXDtorType toCXXDtorType (StructorType T)
 
StructorType getFromDtorType (CXXDtorType T)
 

Variables

class LLVM_ALIGNAS(8)
EHCleanupScope
EHScopeStack::stable_iterator 
EnclosingEH
 A cleanup scope which generates the cleanup blocks lazily. More...
 
llvm::BasicBlock * NormalBlock
 The dual entry/exit block along the normal edge. More...
 
llvm::AllocaInst * ActiveFlag
 An optional i1 variable indicating whether this cleanup has been activated yet. More...
 
struct ExtInfoExtInfo
 
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(). 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. More...
 
llvm::TypeKmpRoutineEntryPtrTy
 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
 part id for the task More...
 
*kmp_routine_entry_t destructors
 

Typedef Documentation

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

Definition at line 43 of file CGCall.h.

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

Definition at line 51 of file CGBuilder.h.

Definition at line 48 of file CGBuilder.h.

Map for SourceLocation and OpenMP runtime library debug locations.

Definition at line 249 of file CGOpenMPRuntime.h.

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

Map of local debug location, ThreadId and functions.

Definition at line 262 of file CGOpenMPRuntime.h.

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

Definition at line 45 of file CGOpenMPRuntime.h.

Enumeration Type Documentation

The source of the alignment of an l-value; an expression of confidence in the alignment actually matching the estimate.

Enumerator
Decl 

The l-value was an access to a declared entity or something equivalently strong, like the address of an array allocated by a language runtime.

AttributedType 

The l-value was considered opaque, so the alignment was determined from a type, but that type was an explicitly-aligned typedef.

Type 

The l-value was considered opaque, so the alignment was determined from a type.

Definition at line 125 of file CGValue.h.

Does an ARC strong l-value have precise lifetime?

Enumerator
ARCImpreciseLifetime 
ARCPreciseLifetime 

Definition at line 119 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 232 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 94 of file CodeGenFunction.h.

Function Documentation

void clang::CodeGen::addBranchAfter ( llvm::ConstantInt *  Index,
llvm::BasicBlock *  Block 
)

Add a branch-after to this cleanup scope.

A branch-after is a branch from a point protected by this (normal) cleanup to a point in the normal cleanup scope immediately containing it. For example, for (;;) { A a; break; } contains a branch-after.

Branch-afters each have their own destination out of the cleanup, guaranteed distinct from anything else threaded through it. Therefore branch-afters usually force a switch after the cleanup.

Definition at line 372 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::BranchAfters, clang::CodeGen::ExtInfo::Branches, and getExtInfo().

bool clang::CodeGen::addBranchThrough ( llvm::BasicBlock *  Block)

Add a branch-through to this cleanup scope.

A branch-through is a branch from a scope protected by this (normal) cleanup to an enclosing scope other than the immediately-enclosing normal cleanup scope.

In the following example, the branch through B's scope is a branch-through, while the branch through A's scope is a branch-after: for (;;) { A a; B b; break; }

All branch-throughs have a common destination out of the cleanup, one possibly shared with the fall-through. Therefore branch-throughs usually don't force a switch after the cleanup.

Returns
true if the branch-through was new to this scope

Definition at line 409 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::Branches, and getExtInfo().

static bool clang::CodeGen::classof ( const EHScope *  Scope)
static

Definition at line 419 of file CGCleanup.h.

References clang::CodeGen::EHScope::getKind().

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

Creates an instance of an Objective-C runtime class.

Definition at line 2878 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 3267 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 317 of file CGCUDANV.cpp.

void clang::CodeGen::Destroy ( )

Definition at line 305 of file CGCleanup.h.

References ExtInfo.

Referenced by pushTemporaryCleanup().

clang::CodeGen::EHCleanupScope ( bool  isNormal,
bool  isEH,
bool  isActive,
unsigned  cleanupSize,
unsigned  fixupDepth,
EHScopeStack::stable_iterator  enclosingNormal,
EHScopeStack::stable_iterator  enclosingEH 
)
Address clang::CodeGen::getActiveFlag ( ) const

Definition at line 324 of file CGCleanup.h.

References ActiveFlag, and clang::CharUnits::One().

size_t clang::CodeGen::getAllocatedSize ( ) const

Definition at line 283 of file CGCleanup.h.

References EHCleanupScope().

llvm::BasicBlock* clang::CodeGen::getBranchAfterBlock ( unsigned  I) const

Definition at line 384 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::BranchAfters, getNumBranchAfters(), and I.

llvm::ConstantInt* clang::CodeGen::getBranchAfterIndex ( unsigned  I) const

Definition at line 389 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::BranchAfters, getNumBranchAfters(), and I.

EHScopeStack::Cleanup* clang::CodeGen::getCleanup ( )

Definition at line 354 of file CGCleanup.h.

References getCleanupBuffer().

void* clang::CodeGen::getCleanupBuffer ( )

Definition at line 352 of file CGCleanup.h.

Referenced by getCleanup().

size_t clang::CodeGen::getCleanupSize ( ) const

Definition at line 351 of file CGCleanup.h.

EHScopeStack::stable_iterator clang::CodeGen::getEnclosingNormalCleanup ( ) const

Definition at line 347 of file CGCleanup.h.

const struct ExtInfo & clang::CodeGen::getExtInfo ( )
static AlignmentSource clang::CodeGen::getFieldAlignmentSource ( AlignmentSource  Source)
inlinestatic

Given that the base address has the given alignment source, what's our confidence in the alignment of the field?

Definition at line 143 of file CGValue.h.

References Decl.

Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization().

unsigned clang::CodeGen::getFixupDepth ( ) const

Definition at line 346 of file CGCleanup.h.

StructorType clang::CodeGen::getFromCtorType ( CXXCtorType  T)
inline
StructorType clang::CodeGen::getFromDtorType ( CXXDtorType  T)
inline
llvm::BasicBlock* clang::CodeGen::getNormalBlock ( ) const

Definition at line 312 of file CGCleanup.h.

References NormalBlock.

Referenced by IsUsedAsNormalCleanup().

unsigned clang::CodeGen::getNumBranchAfters ( ) const

Return the number of unique branch-afters on this scope.

Definition at line 380 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::BranchAfters.

Referenced by getBranchAfterBlock(), and getBranchAfterIndex().

static size_t clang::CodeGen::getSizeForCleanupSize ( size_t  Size)
static

Gets the size required for a lazy cleanup scope with the given cleanup-data requirements.

Definition at line 279 of file CGCleanup.h.

References EHCleanupScope().

bool clang::CodeGen::hasActiveFlag ( ) const

Definition at line 323 of file CGCleanup.h.

References ActiveFlag.

bool clang::CodeGen::hasBranches ( ) const

True if this cleanup scope has any branch-afters or branch-throughs.

Definition at line 359 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::Branches.

bool clang::CodeGen::hasBranchThroughs ( ) const

Determines if this cleanup scope has any branch throughs.

Definition at line 414 of file CGCleanup.h.

References clang::CodeGen::ExtInfo::BranchAfters, and clang::CodeGen::ExtInfo::Branches.

bool clang::CodeGen::isActive ( ) const

Definition at line 317 of file CGCleanup.h.

Referenced by EHCleanupScope().

bool clang::CodeGen::isEHCleanup ( ) const

Definition at line 315 of file CGCleanup.h.

Referenced by isNonEHScope().

bool clang::CodeGen::isLifetimeMarker ( ) const

Definition at line 320 of file CGCleanup.h.

bool clang::CodeGen::isNormalCleanup ( ) const

Definition at line 311 of file CGCleanup.h.

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.

void clang::CodeGen::setActive ( bool  A)

Definition at line 318 of file CGCleanup.h.

void clang::CodeGen::setActiveFlag ( Address  Var)
void clang::CodeGen::setLifetimeMarker ( )

Definition at line 321 of file CGCleanup.h.

void clang::CodeGen::setNormalBlock ( llvm::BasicBlock *  BB)

Definition at line 313 of file CGCleanup.h.

References NormalBlock.

void clang::CodeGen::setTestFlagInEHCleanup ( )

Definition at line 339 of file CGCleanup.h.

void clang::CodeGen::setTestFlagInNormalCleanup ( )

Definition at line 332 of file CGCleanup.h.

bool clang::CodeGen::shouldTestFlagInEHCleanup ( ) const

Definition at line 342 of file CGCleanup.h.

bool clang::CodeGen::shouldTestFlagInNormalCleanup ( ) const

Definition at line 335 of file CGCleanup.h.

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

Variable Documentation

llvm::AllocaInst* clang::CodeGen::ActiveFlag

An optional i1 variable indicating whether this cleanup has been activated yet.

Definition at line 250 of file CGCleanup.h.

Referenced by getActiveFlag(), hasActiveFlag(), and setActiveFlag().

* kmp_routine_entry_t clang::CodeGen::destructors

Definition at line 283 of file CGOpenMPRuntime.h.

class LLVM_ALIGNAS ( 8) EHCleanupScope EHScopeStack::stable_iterator clang::CodeGen::EnclosingEH

A cleanup scope which generates the cleanup blocks lazily.

The nearest EH scope enclosing this one.

Definition at line 237 of file CGCleanup.h.

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

Definition at line 247 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 273 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 254 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 266 of file CGOpenMPRuntime.h.

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

QualType clang::CodeGen::KmpRoutineEntryPtrQTy

Definition at line 276 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 275 of file CGOpenMPRuntime.h.

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

llvm::BasicBlock* clang::CodeGen::NormalBlock

The dual entry/exit block along the normal edge.

This is lazily created if needed before the cleanup is popped.

Definition at line 246 of file CGCleanup.h.

Referenced by getNormalBlock(), and setNormalBlock().

OpenMPDebugLocMapTy clang::CodeGen::OpenMPDebugLocMap

Definition at line 250 of file CGOpenMPRuntime.h.

OpenMPLocThreadIDMapTy clang::CodeGen::OpenMPLocThreadIDMap

Definition at line 263 of file CGOpenMPRuntime.h.

* kmp_int32 clang::CodeGen::part_id

part id for the task

Definition at line 282 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 280 of file CGOpenMPRuntime.h.