LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
llvm::DataLayout Class Reference

#include <DataLayout.h>

Inheritance diagram for llvm::DataLayout:
Inheritance graph
[legend]
Collaboration diagram for llvm::DataLayout:
Collaboration graph
[legend]

Public Member Functions

 DataLayout ()
 
 DataLayout (StringRef LayoutDescription)
 Constructs a DataLayout from a specification string. See init(). More...
 
 DataLayout (const Module *M)
 Initialize target data from properties stored in the module. More...
 
 DataLayout (const DataLayout &DL)
 
 ~DataLayout ()
 
bool doFinalization (Module &M)
 
void init (StringRef LayoutDescription)
 
bool isLittleEndian () const
 Layout endianness... More...
 
bool isBigEndian () const
 
std::string getStringRepresentation () const
 
bool isLegalInteger (unsigned Width) const
 
bool isIllegalInteger (unsigned Width) const
 
bool exceedsNaturalStackAlignment (unsigned Align) const
 Returns true if the given alignment exceeds the natural stack alignment. More...
 
bool fitsInLegalInteger (unsigned Width) const
 
unsigned getPointerABIAlignment (unsigned AS=0) const
 
unsigned getPointerPrefAlignment (unsigned AS=0) const
 
unsigned getPointerSize (unsigned AS=0) const
 
unsigned getPointerSizeInBits (unsigned AS=0) const
 
unsigned getPointerTypeSizeInBits (Type *) const
 
unsigned getPointerTypeSize (Type *Ty) const
 
uint64_t getTypeSizeInBits (Type *Ty) const
 
uint64_t getTypeStoreSize (Type *Ty) const
 
uint64_t getTypeStoreSizeInBits (Type *Ty) const
 
uint64_t getTypeAllocSize (Type *Ty) const
 
uint64_t getTypeAllocSizeInBits (Type *Ty) const
 
unsigned getABITypeAlignment (Type *Ty) const
 
unsigned getABIIntegerTypeAlignment (unsigned BitWidth) const
 
unsigned getCallFrameTypeAlignment (Type *Ty) const
 
unsigned getPrefTypeAlignment (Type *Ty) const
 
unsigned getPreferredTypeAlignmentShift (Type *Ty) const
 
IntegerTypegetIntPtrType (LLVMContext &C, unsigned AddressSpace=0) const
 
TypegetIntPtrType (Type *) const
 
TypegetSmallestLegalIntType (LLVMContext &C, unsigned Width=0) const
 
TypegetLargestLegalIntType (LLVMContext &C) const
 
unsigned getLargestLegalIntTypeSize () const
 
uint64_t getIndexedOffset (Type *Ty, ArrayRef< Value * > Indices) const
 
const StructLayoutgetStructLayout (StructType *Ty) const
 
unsigned getPreferredAlignment (const GlobalVariable *GV) const
 
unsigned getPreferredAlignmentLog (const GlobalVariable *GV) const
 
- Public Member Functions inherited from llvm::ImmutablePass
virtual void initializePass ()
 
virtual ImmutablePassgetAsImmutablePass ()
 
bool runOnModule (Module &)
 
 ImmutablePass (char &pid)
 
virtual ~ImmutablePass ()
 
- Public Member Functions inherited from llvm::ModulePass
PasscreatePrinterPass (raw_ostream &O, const std::string &Banner) const
 createPrinterPass - Get a module printer pass. More...
 
virtual void assignPassManager (PMStack &PMS, PassManagerType T)
 
virtual PassManagerType getPotentialPassManagerType () const
 Return what kind of Pass Manager can manage this pass. More...
 
 ModulePass (char &pid)
 
virtual ~ModulePass ()
 
- Public Member Functions inherited from llvm::Pass
 Pass (PassKind K, char &pid)
 
virtual ~Pass ()
 
PassKind getPassKind () const
 
virtual const char * getPassName () const
 
AnalysisID getPassID () const
 getPassID - Return the PassID number that corresponds to this pass. More...
 
virtual bool doInitialization (Module &)
 
virtual void print (raw_ostream &O, const Module *M) const
 
void dump () const
 
virtual void preparePassManager (PMStack &)
 Check if available pass managers are suitable for this pass or not. More...
 
void setResolver (AnalysisResolver *AR)
 
AnalysisResolvergetResolver () const
 
virtual void getAnalysisUsage (AnalysisUsage &) const
 
virtual void releaseMemory ()
 
virtual void * getAdjustedAnalysisPointer (AnalysisID ID)
 
virtual PMDataManagergetAsPMDataManager ()
 
virtual void verifyAnalysis () const
 
virtual void dumpPassStructure (unsigned Offset=0)
 
template<typename AnalysisType >
AnalysisType * getAnalysisIfAvailable () const
 
bool mustPreserveAnalysisID (char &AID) const
 
template<typename AnalysisType >
AnalysisType & getAnalysis () const
 
template<typename AnalysisType >
AnalysisType & getAnalysis (Function &F)
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI) const
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI, Function &F)
 

Static Public Member Functions

template<typename UIntTy >
static UIntTy RoundUpAlignment (UIntTy Val, unsigned Alignment)
 
- Static Public Member Functions inherited from llvm::Pass
static const PassInfolookupPassInfo (const void *TI)
 
static const PassInfolookupPassInfo (StringRef Arg)
 
static PasscreatePass (AnalysisID ID)
 

Static Public Attributes

static char ID = 0
 

Detailed Description

DataLayout - This class holds a parsed version of the target data layout string in a module and provides methods for querying it. The target data layout string is specified by the target - a frontend generating LLVM IR is required to generate the right target data for the target being codegen'd to. If some measure of portability is desired, an empty string may be specified in the module.

Definition at line 98 of file DataLayout.h.

Constructor & Destructor Documentation

DataLayout::DataLayout ( )

Default ctor.

Note
This has to exist, because this is a pass, but it should never be used.

Definition at line 308 of file DataLayout.cpp.

References llvm::report_fatal_error().

llvm::DataLayout::DataLayout ( StringRef  LayoutDescription)
inlineexplicit

Constructs a DataLayout from a specification string. See init().

Definition at line 166 of file DataLayout.h.

References init().

DataLayout::DataLayout ( const Module M)
explicit

Initialize target data from properties stored in the module.

Definition at line 313 of file DataLayout.cpp.

References llvm::Module::getDataLayout(), and init().

llvm::DataLayout::DataLayout ( const DataLayout DL)
inline

Definition at line 174 of file DataLayout.h.

DataLayout::~DataLayout ( )

Definition at line 435 of file DataLayout.cpp.

Member Function Documentation

bool DataLayout::doFinalization ( Module M)
virtual

DataLayout is an immutable pass, but holds state. This allows the pass manager to clear its mutable state.

Reimplemented from llvm::Pass.

Definition at line 439 of file DataLayout.cpp.

bool llvm::DataLayout::exceedsNaturalStackAlignment ( unsigned  Align) const
inline

Returns true if the given alignment exceeds the natural stack alignment.

Definition at line 222 of file DataLayout.h.

Referenced by enforceKnownAlignment(), and getMemcpyLoadsAndStores().

bool llvm::DataLayout::fitsInLegalInteger ( unsigned  Width) const
inline

fitsInLegalInteger - This function returns true if the specified type fits in a native integer type supported by the CPU. For example, if the CPU only supports i32 as a native integer type, then i27 fits in a legal

Definition at line 230 of file DataLayout.h.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by llvm::MemoryDependenceAnalysis::getLoadLoadClobberFullWidthSize().

unsigned DataLayout::getABIIntegerTypeAlignment ( unsigned  BitWidth) const

getABIIntegerTypeAlignment - Return the minimum ABI-required alignment for an integer type of the specified bitwidth.

Definition at line 588 of file DataLayout.cpp.

References llvm::INTEGER_ALIGN.

Referenced by llvm::MachineJumpTableInfo::getEntryAlignment().

unsigned DataLayout::getABITypeAlignment ( Type Ty) const
unsigned DataLayout::getCallFrameTypeAlignment ( Type Ty) const

getCallFrameTypeAlignment - Return the minimum ABI-required alignment for the specified type when it is part of a call frame.

Definition at line 592 of file DataLayout.cpp.

References getABITypeAlignment(), and llvm::STACK_ALIGN.

Referenced by llvm::TargetLoweringBase::getByValTypeAlignment().

uint64_t DataLayout::getIndexedOffset ( Type Ty,
ArrayRef< Value * >  Indices 
) const

getIndexedOffset - return the offset from the beginning of the type for the specified indices. This is used to implement getelementptr.

Definition at line 639 of file DataLayout.cpp.

References llvm::gep_type_begin(), llvm::Type::getContext(), llvm::StructLayout::getElementOffset(), llvm::Type::getInt32Ty(), getStructLayout(), llvm::Intrinsic::getType(), getTypeAllocSize(), llvm::Type::isPointerTy(), and llvm::ArrayRef< T >::size().

Referenced by llvm::CompileUnit::createGlobalVariableDIE(), and SymbolicallyEvaluateGEP().

IntegerType * DataLayout::getIntPtrType ( LLVMContext C,
unsigned  AddressSpace = 0 
) const

getIntPtrType - Return an integer type with size at least as big as that of a pointer in the given address space.

Definition at line 610 of file DataLayout.cpp.

References llvm::IntegerType::get(), and getPointerSizeInBits().

Referenced by llvm::IntrinsicLowering::AddPrototypes(), CastGEPIndices(), CoerceAvailableValueToLoadType(), llvm::ConstantFoldCompareInstOperands(), convertPointerToIntegerType(), convertValue(), llvm::EmitFWrite(), llvm::EmitGEPOffset(), llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::EmitMemCpyChk(), llvm::EmitStrLen(), llvm::EmitStrNCmp(), llvm::EmitStrNLen(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemset(), EvaluateGEPOffsetExpression(), llvm::SimplifyFortifiedLibCalls::fold(), GetConstantInt(), llvm::ScalarEvolution::getEffectiveSCEVType(), llvm::IRBuilderBase::getIntPtrTy(), llvm::SelectionDAG::getMemcpy(), llvm::SelectionDAG::getMemmove(), llvm::SelectionDAG::getMemset(), GetStoreValueForLoad(), InstCombineLoadCast(), isEliminableCastPair(), nvptx::LowerConstant(), lowerConstant(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::ObjectSizeOffsetEvaluator::ObjectSizeOffsetEvaluator(), llvm::ObjectSizeOffsetVisitor::ObjectSizeOffsetVisitor(), PerformHeapAllocSRoA(), ReadDataFromGlobal(), SimplifyBranchOnICmpChain(), stripAndComputeConstantOffsets(), SymbolicallyEvaluateGEP(), TryToOptimizeStoreOfMallocToGlobal(), llvm::InstCombiner::visitAllocaInst(), and llvm::PtrUseVisitor< SliceBuilder >::visitPtr().

Type * DataLayout::getIntPtrType ( Type Ty) const

getIntPtrType - Return an integer (vector of integer) type with size at least as big as that of a pointer of the given pointer (vector of pointer) type.

Definition at line 615 of file DataLayout.cpp.

References llvm::IntegerType::get(), llvm::VectorType::get(), llvm::Type::getContext(), llvm::Type::getScalarType(), getTypeSizeInBits(), and llvm::Type::isPtrOrPtrVectorTy().

Type* llvm::DataLayout::getLargestLegalIntType ( LLVMContext C) const
inline

getLargestLegalIntType - Return the largest legal integer type, or null if none are set.

Definition at line 374 of file DataLayout.h.

References llvm::Type::getIntNTy(), and getLargestLegalIntTypeSize().

unsigned DataLayout::getLargestLegalIntTypeSize ( ) const

getLargestLegalIntType - Return the size of largest legal integer type size, or 0 if none are set.

Definition at line 632 of file DataLayout.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by getLargestLegalIntType().

unsigned llvm::DataLayout::getPointerABIAlignment ( unsigned  AS = 0) const
inline

Layout pointer alignment FIXME: The defaults need to be removed once all of the backends/clients are updated.

Definition at line 240 of file DataLayout.h.

Referenced by llvm::TargetLoweringObjectFileELF::emitPersonalityValue(), and llvm::MachineJumpTableInfo::getEntryAlignment().

unsigned llvm::DataLayout::getPointerPrefAlignment ( unsigned  AS = 0) const
inline

Return target's alignment for stack-based pointers FIXME: The defaults need to be removed once all of the backends/clients are updated.

Definition at line 251 of file DataLayout.h.

Referenced by FindOptimalMemOpLowering(), and getOpenCLAlignment().

unsigned llvm::DataLayout::getPointerSize ( unsigned  AS = 0) const
inline
unsigned llvm::DataLayout::getPointerSizeInBits ( unsigned  AS = 0) const
inline
unsigned llvm::DataLayout::getPointerTypeSize ( Type Ty) const
inline

Definition at line 282 of file DataLayout.h.

References getPointerTypeSizeInBits().

Referenced by llvm::AsmPrinter::EmitGlobalVariable().

unsigned DataLayout::getPointerTypeSizeInBits ( Type Ty) const

Layout pointer size, in bits, based on the type. If this function is called with a pointer type, then the type size of the pointer is returned. If this function is called with a vector of pointers, then the type size of the pointer is returned. This should only be called with a pointer or vector of pointers.

Definition at line 510 of file DataLayout.cpp.

References llvm::Type::getScalarType(), getTypeSizeInBits(), llvm::Type::isPointerTy(), and llvm::Type::isPtrOrPtrVectorTy().

Referenced by llvm::ConstantFoldInstOperands(), getBitWidth(), llvm::getOrEnforceKnownAlignment(), llvm::GetPointerBaseWithConstantOffset(), getPointerTypeSize(), IsConstantOffsetFromGlobal(), and lowerConstant().

unsigned DataLayout::getPreferredAlignment ( const GlobalVariable GV) const
unsigned DataLayout::getPreferredAlignmentLog ( const GlobalVariable GV) const

getPreferredAlignmentLog - Return the preferred alignment of the specified global, returned in log form. This includes an explicitly requested alignment (if the global has one).

Definition at line 703 of file DataLayout.cpp.

References getPreferredAlignment(), and llvm::Log2_32().

Referenced by getGVAlignmentLog2().

unsigned DataLayout::getPreferredTypeAlignmentShift ( Type Ty) const

getPreferredTypeAlignmentShift - Return the preferred alignment for the specified type, returned as log2 of the value (a shift amount).

Definition at line 604 of file DataLayout.cpp.

References getPrefTypeAlignment(), and llvm::Log2_32().

unsigned DataLayout::getPrefTypeAlignment ( Type Ty) const
Type * DataLayout::getSmallestLegalIntType ( LLVMContext C,
unsigned  Width = 0 
) const

getSmallestLegalIntType - Return the smallest integer type with size at least as big as Width bits.

Definition at line 625 of file DataLayout.cpp.

References llvm::Type::getIntNTy(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

std::string DataLayout::getStringRepresentation ( ) const
const StructLayout * DataLayout::getStructLayout ( StructType Ty) const
uint64_t llvm::DataLayout::getTypeAllocSize ( Type Ty) const
inline

getTypeAllocSize - Return the offset in bytes between successive objects of the specified type, including alignment padding. This is the amount that alloca reserves for this type. For example, returns 12 or 16 for x86_fp80, depending on alignment.

Definition at line 326 of file DataLayout.h.

References getABITypeAlignment(), getTypeStoreSize(), and RoundUpAlignment().

Referenced by llvm::GEPOperator::accumulateConstantOffset(), AddFastCallStdCallSuffix(), computeArraySize(), llvm::ComputeValueVTs(), DecomposeGEPExpression(), llvm::AsmPrinter::EmitConstantPool(), llvm::EmitGEPOffset(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantDataSequential(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantLargeInt(), emitGlobalConstantStruct(), emitGlobalConstantVector(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::ExecutionEngine::EmitGlobalVariable(), llvm::SystemZAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitMachineConstantPoolValue(), llvm::ARMAsmPrinter::EmitXXStructor(), EvaluateGEPOffsetExpression(), FoldReinterpretLoadFromConstPtr(), for(), GetConstantPoolSizeInBytes(), getGEPInductionOperand(), getIndexedOffset(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::JIT::getMemoryForGV(), getNaturalGEPRecursively(), getNaturalGEPWithOffset(), GetOffsetFromIndex(), llvm::NVPTXTargetLowering::getPrototype(), llvm::ScalarEvolution::getSizeOfExpr(), llvm::SparcTargetLowering::getSRetArgSize(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), getTypeAllocSizeInBits(), getTypePartition(), llvm::ExecutionEngine::InitializeMemory(), llvm::InlineFunction(), isGEPKnownNonNull(), llvm::HexagonTargetObjectFile::IsGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), llvm::XCoreTargetLowering::isLegalAddressingMode(), isRepeatedByteSequence(), isSafeToEliminateVarargsCast(), isStridedPtr(), llvm::NVPTXTargetLowering::LowerCall(), llvm::SelectionDAGBuilder::LowerCallTo(), nvptx::LowerConstant(), lowerConstant(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), llvm::NVPTXTargetLowering::LowerReturn(), PerformHeapAllocSRoA(), ReadDataFromGlobal(), llvm::FunctionLoweringInfo::set(), SimplifyGEPInst(), SRAGlobal(), stripAggregateTypeWrapping(), SymbolicallyEvaluateGEP(), TryToOptimizeStoreOfMallocToGlobal(), llvm::Interpreter::visitAllocaInst(), llvm::ObjectSizeOffsetVisitor::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), llvm::ObjectSizeOffsetVisitor::visitArgument(), and llvm::ObjectSizeOffsetVisitor::visitGlobalVariable().

uint64_t llvm::DataLayout::getTypeAllocSizeInBits ( Type Ty) const
inline

getTypeAllocSizeInBits - Return the offset in bits between successive objects of the specified type, including alignment padding; always a multiple of 8. This is the amount that alloca reserves for this type. For example, returns 96 or 128 for x86_fp80, depending on alignment.

Definition at line 335 of file DataLayout.h.

References getTypeAllocSize().

Referenced by FoldBitCast(), FoldReinterpretLoadFromConstPtr(), getTypeSizeInBits(), HasPadding(), llvm::NVPTXTargetLowering::LowerCall(), nvptx::LowerConstant(), lowerConstant(), and llvm::NVPTXTargetLowering::LowerReturn().

uint64_t llvm::DataLayout::getTypeSizeInBits ( Type Ty) const
inline

Size examples:

Type SizeInBits StoreSizeInBits AllocSizeInBits[*]


i1 1 8 8 i8 8 8 8 i19 19 24 32 i32 32 32 32 i100 100 104 128 i128 128 128 128 Float 32 32 32 Double 64 64 64 X86_FP80 80 80 96

[*] The alloc size depends on the alignment, and thus on the target. These values are for x86-32 linux. getTypeSizeInBits - Return the number of bits necessary to hold the specified type. For example, returns 36 for i36 and 80 for x86_fp80. The type passed must have a size (Type::isSized() must return true).

Definition at line 459 of file DataLayout.h.

References llvm::Type::ArrayTyID, llvm::Type::DoubleTyID, llvm::Type::FloatTyID, llvm::Type::FP128TyID, llvm::SequentialType::getElementType(), llvm::Type::getIntegerBitWidth(), llvm::ArrayType::getNumElements(), llvm::VectorType::getNumElements(), llvm::Type::getPointerAddressSpace(), getPointerSizeInBits(), llvm::StructLayout::getSizeInBits(), getStructLayout(), getTypeAllocSizeInBits(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, llvm::Type::IntegerTyID, llvm::Type::isSized(), llvm::Type::LabelTyID, llvm_unreachable, llvm::Type::PointerTyID, llvm::Type::PPC_FP128TyID, llvm::Type::StructTyID, llvm::Type::VectorTyID, llvm::Type::X86_FP80TyID, and llvm::Type::X86_MMXTyID.

Referenced by AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingStore(), AnalyzeLoadFromClobberingWrite(), CanCoerceMustAliasedValueToLoad(), canConvertValue(), llvm::FastISel::canFoldAddIntoGEP(), CoerceAvailableValueToLoadType(), llvm::ComputeMaskedBits(), llvm::ComputeNumSignBits(), llvm::ExecutionEngine::getConstantValue(), getIntPtrType(), GetMemInstValueForLoad(), getMemSetPatternValue(), getNaturalGEPRecursively(), getPointerTypeSizeInBits(), getPreferredAlignment(), GetStoreValueForLoad(), llvm::ScalarEvolution::getTypeSizeInBits(), getTypeStoreSize(), HasPadding(), InstCombineLoadCast(), InstCombineStoreToCast(), isIntegerWideningViable(), isSimpleEnoughValueToCommitHelper(), isVectorPromotionViable(), llvm::TargetLowering::ParseConstraints(), SimplifyICmpInst(), stripAggregateTypeWrapping(), SymbolicallyEvaluateBinop(), and SymbolicallyEvaluateGEP().

uint64_t llvm::DataLayout::getTypeStoreSize ( Type Ty) const
inline
uint64_t llvm::DataLayout::getTypeStoreSizeInBits ( Type Ty) const
inline

getTypeStoreSizeInBits - Return the maximum number of bits that may be overwritten by storing the specified type; always a multiple of 8. For example, returns 40 for i36 and 80 for x86_fp80.

Definition at line 318 of file DataLayout.h.

References getTypeStoreSize().

Referenced by isIntegerWideningViable(), and isIntegerWideningViableForSlice().

void DataLayout::init ( StringRef  LayoutDescription)

Parse a data layout string (with fallback to default values). Ensure that the data layout pass is registered.

Definition at line 154 of file DataLayout.cpp.

References llvm::AGGREGATE_ALIGN, llvm::FLOAT_ALIGN, llvm::PassRegistry::getPassRegistry(), llvm::initializeDataLayoutPass(), llvm::INTEGER_ALIGN, and llvm::VECTOR_ALIGN.

Referenced by DataLayout().

bool llvm::DataLayout::isBigEndian ( ) const
inline
bool llvm::DataLayout::isIllegalInteger ( unsigned  Width) const
inline

Definition at line 217 of file DataLayout.h.

References isLegalInteger().

bool llvm::DataLayout::isLegalInteger ( unsigned  Width) const
inline

isLegalInteger - This function returns true if the specified type is known to be a native integer type supported by the CPU. For example, i64 is not native on most 32-bit CPUs and i37 is not native on any known one. This returns false if the integer width is not legal.

The width is specified in bits.

Definition at line 210 of file DataLayout.h.

References llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by llvm::IVUsers::AddUsersImpl(), FindLoopCounter(), isIllegalInteger(), isIntegerWideningViable(), and llvm::InstCombiner::visitPHINode().

bool llvm::DataLayout::isLittleEndian ( ) const
inline
template<typename UIntTy >
static UIntTy llvm::DataLayout::RoundUpAlignment ( UIntTy  Val,
unsigned  Alignment 
)
inlinestatic

RoundUpAlignment - Round the specified value up to the next alignment boundary specified by Alignment. For example, 7 rounded up to an alignment boundary of 4 is 8. 8 rounded up to the alignment boundary of 4 is 8 because it is already aligned.

Definition at line 407 of file DataLayout.h.

Referenced by getTypeAllocSize().

Member Data Documentation

char DataLayout::ID = 0
static

Definition at line 412 of file DataLayout.h.


The documentation for this class was generated from the following files: