LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions
DwarfCompileUnit.cpp File Reference
#include "DwarfCompileUnit.h"
#include "DwarfAccelTable.h"
#include "DwarfDebug.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/DIBuilder.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instructions.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/Target/Mangler.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetRegisterInfo.h"
Include dependency graph for DwarfCompileUnit.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "dwarfdebug"
 

Functions

static bool isShareableAcrossCUs (DIDescriptor D)
 Check whether the DIE for this MDNode can be shared across CUs. More...
 
static bool isTypeSigned (DwarfDebug *DD, DIType Ty, int *SizeInBits)
 isTypeSigned - Return true if the type is signed. More...
 
static bool isUnsignedDIType (DwarfDebug *DD, DIType Ty)
 Return true if type encoding is unsigned. More...
 
static uint64_t getBaseTypeSize (DwarfDebug *DD, DIDerivedType Ty)
 If this type is derived from a base type then return base type size. More...
 
static bool isTypeUnitScoped (DIType Ty, const DwarfDebug *DD)
 
static bool shouldCreateTypeUnit (DICompositeType CTy, const DwarfDebug *DD)
 Return true if the type should be split out into a type unit. More...
 
static const ConstantExprgetMergedGlobalExpr (const Value *V)
 

Macro Definition Documentation

#define DEBUG_TYPE   "dwarfdebug"

Definition at line 14 of file DwarfCompileUnit.cpp.

Function Documentation

static uint64_t getBaseTypeSize ( DwarfDebug DD,
DIDerivedType  Ty 
)
static
static const ConstantExpr* getMergedGlobalExpr ( const Value V)
static
static bool isShareableAcrossCUs ( DIDescriptor  D)
static

Check whether the DIE for this MDNode can be shared across CUs.

Definition at line 102 of file DwarfCompileUnit.cpp.

References llvm::DISubprogram::isDefinition(), llvm::DIDescriptor::isSubprogram(), and llvm::DIDescriptor::isType().

Referenced by llvm::CompileUnit::getDIE(), and llvm::CompileUnit::insertDIE().

static bool isTypeSigned ( DwarfDebug DD,
DIType  Ty,
int *  SizeInBits 
)
static
static bool isTypeUnitScoped ( DIType  Ty,
const DwarfDebug DD 
)
static

Return true if the type is appropriately scoped to be contained inside its own type unit.

Definition at line 1099 of file DwarfCompileUnit.cpp.

References llvm::DIScope::getContext(), llvm::DIType::getContext(), llvm::DIDescriptor::isSubprogram(), and llvm::DwarfDebug::resolve().

Referenced by shouldCreateTypeUnit().

static bool isUnsignedDIType ( DwarfDebug DD,
DIType  Ty 
)
static
static bool shouldCreateTypeUnit ( DICompositeType  CTy,
const DwarfDebug DD 
)
static

Return true if the type should be split out into a type unit.

Definition at line 1111 of file DwarfCompileUnit.cpp.

References llvm::DIDescriptor::getTag(), llvm::DIType::isForwardDecl(), and isTypeUnitScoped().