clang  3.9.0
Public Member Functions | List of all members
clang::CodeGen::CodeGenTBAA Class Reference

CodeGenTBAA - This class organizes the cross-module state that is used while lowering AST types to LLVM types. More...

#include <CodeGenTBAA.h>

Public Member Functions

 CodeGenTBAA (ASTContext &Ctx, llvm::LLVMContext &VMContext, const CodeGenOptions &CGO, const LangOptions &Features, MangleContext &MContext)
 
 ~CodeGenTBAA ()
 
llvm::MDNode * getTBAAInfo (QualType QTy)
 getTBAAInfo - Get the TBAA MDNode to be used for a dereference of the given type. More...
 
llvm::MDNode * getTBAAInfoForVTablePtr ()
 getTBAAInfoForVTablePtr - Get the TBAA MDNode to be used for a dereference of a vtable pointer. More...
 
llvm::MDNode * getTBAAStructInfo (QualType QTy)
 getTBAAStructInfo - Get the TBAAStruct MDNode to be used for a memcpy of the given type. More...
 
llvm::MDNode * getTBAAStructTypeInfo (QualType QType)
 Get the MDNode in the type DAG for given struct type QType. More...
 
llvm::MDNode * getTBAAStructTagInfo (QualType BaseQType, llvm::MDNode *AccessNode, uint64_t Offset)
 Get the tag MDNode for a given base type, the actual scalar access MDNode and offset into the base type. More...
 
llvm::MDNode * getTBAAScalarTagInfo (llvm::MDNode *AccessNode)
 Get the scalar tag MDNode for a given scalar type. More...
 

Detailed Description

CodeGenTBAA - This class organizes the cross-module state that is used while lowering AST types to LLVM types.

Definition at line 45 of file CodeGenTBAA.h.

Constructor & Destructor Documentation

CodeGenTBAA::CodeGenTBAA ( ASTContext Ctx,
llvm::LLVMContext &  VMContext,
const CodeGenOptions CGO,
const LangOptions Features,
MangleContext MContext 
)

Definition at line 32 of file CodeGenTBAA.cpp.

CodeGenTBAA::~CodeGenTBAA ( )

Definition at line 39 of file CodeGenTBAA.cpp.

Member Function Documentation

llvm::MDNode * CodeGenTBAA::getTBAAInfo ( QualType  QTy)
llvm::MDNode * CodeGenTBAA::getTBAAInfoForVTablePtr ( )

getTBAAInfoForVTablePtr - Get the TBAA MDNode to be used for a dereference of a vtable pointer.

Definition at line 169 of file CodeGenTBAA.cpp.

llvm::MDNode * CodeGenTBAA::getTBAAScalarTagInfo ( llvm::MDNode *  AccessNode)

Get the scalar tag MDNode for a given scalar type.

Definition at line 315 of file CodeGenTBAA.cpp.

Referenced by getTBAAStructTagInfo().

llvm::MDNode * CodeGenTBAA::getTBAAStructInfo ( QualType  QTy)

getTBAAStructInfo - Get the TBAAStruct MDNode to be used for a memcpy of the given type.

Definition at line 216 of file CodeGenTBAA.cpp.

References clang::ASTContext::getCanonicalType(), clang::CanQual< T >::getTypePtr(), and TypeHasMayAlias().

llvm::MDNode * CodeGenTBAA::getTBAAStructTagInfo ( QualType  BaseQType,
llvm::MDNode *  AccessNode,
uint64_t  Offset 
)

Get the tag MDNode for a given base type, the actual scalar access MDNode and offset into the base type.

Return a TBAA tag node for both scalar TBAA and struct-path aware TBAA.

Definition at line 290 of file CodeGenTBAA.cpp.

References clang::ASTContext::getCanonicalType(), getTBAAScalarTagInfo(), getTBAAStructTypeInfo(), clang::CanQual< T >::getTypePtr(), and isTBAAPathStruct().

llvm::MDNode * CodeGenTBAA::getTBAAStructTypeInfo ( QualType  QType)

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