Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Ty

509 llvm::DIType CGDebugInfo::CreateType(const ComplexType *Ty) {
512 if (Ty->isComplexIntegerType())
515 uint64_t Size = CGM.getContext().getTypeSize(Ty);
516 uint64_t Align = CGM.getContext().getTypeAlign(Ty);
525 llvm::DIType CGDebugInfo::CreateQualifiedType(QualType Ty, llvm::DIFile Unit) {
527 const Type *T = Qc.strip(Ty);
560 llvm::DIType CGDebugInfo::CreateType(const ObjCObjectPointerType *Ty,
566 if (Ty->isObjCQualifiedIdType())
570 CreatePointerLikeType(llvm::dwarf::DW_TAG_pointer_type, Ty,
571 Ty->getPointeeType(), Unit);
575 llvm::DIType CGDebugInfo::CreateType(const PointerType *Ty,
577 return CreatePointerLikeType(llvm::dwarf::DW_TAG_pointer_type, Ty,
578 Ty->getPointeeType(), Unit);
584 getUniqueTagTypeName(const TagType *Ty, CodeGenModule &CGM,
589 const TagDecl *TD = Ty->getDecl();
600 CGM.getCXXABI().getMangleContext().mangleCXXRTTIName(QualType(Ty, 0), Out);
607 CGDebugInfo::getOrCreateRecordFwdDecl(const RecordType *Ty,
609 const RecordDecl *RD = Ty->getDecl();
627 SmallString<256> FullName = getUniqueTagTypeName(Ty, CGM, TheCU);
630 ReplaceMap.push_back(std::make_pair(Ty, static_cast<llvm::Value *>(RetTy)));
635 const Type *Ty,
647 uint64_t Align = CGM.getContext().getTypeAlign(Ty);
664 llvm::DIType CGDebugInfo::CreateType(const BlockPointerType *Ty,
693 uint64_t Size = CGM.getContext().getTypeSize(Ty);
708 FieldSize = CGM.getContext().getTypeSize(Ty);
709 FieldAlign = CGM.getContext().getTypeAlign(Ty);
726 llvm::DIType CGDebugInfo::CreateType(const TemplateSpecializationType *Ty, llvm::DIFile Unit) {
727 assert(Ty->isTypeAlias());
728 llvm::DIType Src = getOrCreateType(Ty->getAliasedType(), Unit);
732 Ty->getTemplateName().print(OS, CGM.getContext().getPrintingPolicy(), /*qualified*/ false);
735 OS, Ty->getArgs(), Ty->getNumArgs(),
739 cast<TypeAliasTemplateDecl>(Ty->getTemplateName().getAsTemplateDecl())
751 llvm::DIType CGDebugInfo::CreateType(const TypedefType *Ty, llvm::DIFile Unit) {
754 llvm::DIType Src = getOrCreateType(Ty->getDecl()->getUnderlyingType(), Unit);
757 SourceLocation Loc = Ty->getDecl()->getLocation();
760 const TypedefNameDecl *TyDecl = Ty->getDecl();
763 getContextDescriptor(cast<Decl>(Ty->getDecl()->getDeclContext()));
769 llvm::DIType CGDebugInfo::CreateType(const FunctionType *Ty,
774 EltTys.push_back(getOrCreateType(Ty->getReturnType(), Unit));
778 if (isa<FunctionNoProtoType>(Ty))
780 else if (const FunctionProtoType *FPT = dyn_cast<FunctionProtoType>(Ty)) {
1438 QualType Ty = CGM.getContext().getEnumType(ED);
1439 void* TyPtr = Ty.getAsOpaquePtr();
1445 llvm::DIType Res = CreateTypeDefinition(Ty->castAs<EnumType>());
1464 QualType Ty = CGM.getContext().getRecordType(RD);
1465 llvm::DIType T = getTypeOrNull(Ty);
1473 QualType Ty = CGM.getContext().getRecordType(RD);
1474 void* TyPtr = Ty.getAsOpaquePtr();
1480 llvm::DIType Res = CreateTypeDefinition(Ty->castAs<RecordType>());
1529 llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty) {
1530 RecordDecl *RD = Ty->getDecl();
1531 llvm::DICompositeType T(getTypeOrNull(QualType(Ty, 0)));
1535 Ty, getContextDescriptor(cast<Decl>(RD->getDeclContext())));
1539 return CreateTypeDefinition(Ty);
1542 llvm::DIType CGDebugInfo::CreateTypeDefinition(const RecordType *Ty) {
1543 RecordDecl *RD = Ty->getDecl();
1555 llvm::DICompositeType FwdDecl(getOrCreateLimitedType(Ty, DefUnit));
1567 RegionMap[Ty->getDecl()] = llvm::WeakVH(FwdDecl);
1589 RegionMap.erase(Ty->getDecl());
1594 RegionMap[Ty->getDecl()] = llvm::WeakVH(FwdDecl);
1599 llvm::DIType CGDebugInfo::CreateType(const ObjCObjectType *Ty,
1602 return getOrCreateType(Ty->getBaseType(), Unit);
1631 llvm::DIType CGDebugInfo::CreateType(const ObjCInterfaceType *Ty,
1633 ObjCInterfaceDecl *ID = Ty->getDecl();
1649 ObjCInterfaceCache.push_back(ObjCInterfaceCacheEntry(Ty, FwdDecl, Unit));
1654 return CreateTypeDefinition(Ty, Unit);
1657 llvm::DIType CGDebugInfo::CreateTypeDefinition(const ObjCInterfaceType *Ty, llvm::DIFile Unit) {
1658 ObjCInterfaceDecl *ID = Ty->getDecl();
1664 uint64_t Size = CGM.getContext().getTypeSize(Ty);
1665 uint64_t Align = CGM.getContext().getTypeAlign(Ty);
1676 QualType QTy(Ty, 0);
1681 RegionMap[Ty->getDecl()] = llvm::WeakVH(RealDecl);
1805 llvm::DIType CGDebugInfo::CreateType(const VectorType *Ty, llvm::DIFile Unit) {
1806 llvm::DIType ElementTy = getOrCreateType(Ty->getElementType(), Unit);
1807 int64_t Count = Ty->getNumElements();
1816 uint64_t Size = CGM.getContext().getTypeSize(Ty);
1817 uint64_t Align = CGM.getContext().getTypeAlign(Ty);
1822 llvm::DIType CGDebugInfo::CreateType(const ArrayType *Ty,
1828 if (const VariableArrayType *VAT = dyn_cast<VariableArrayType>(Ty)) {
1832 } else if (Ty->isIncompleteArrayType()) {
1834 if (Ty->getElementType()->isIncompleteType())
1837 Align = CGM.getContext().getTypeAlign(Ty->getElementType());
1838 } else if (Ty->isIncompleteType()) {
1843 Size = CGM.getContext().getTypeSize(Ty);
1844 Align = CGM.getContext().getTypeAlign(Ty);
1851 QualType EltTy(Ty, 0);
1852 while ((Ty = dyn_cast<ArrayType>(EltTy))) {
1861 if (const ConstantArrayType *CAT = dyn_cast<ConstantArrayType>(Ty))
1866 EltTy = Ty->getElementType();
1877 llvm::DIType CGDebugInfo::CreateType(const LValueReferenceType *Ty,
1880 Ty, Ty->getPointeeType(), Unit);
1883 llvm::DIType CGDebugInfo::CreateType(const RValueReferenceType *Ty,
1886 Ty, Ty->getPointeeType(), Unit);
1889 llvm::DIType CGDebugInfo::CreateType(const MemberPointerType *Ty,
1891 llvm::DIType ClassType = getOrCreateType(QualType(Ty->getClass(), 0), U);
1892 if (!Ty->getPointeeType()->isFunctionType())
1894 getOrCreateType(Ty->getPointeeType(), U), ClassType);
1897 Ty->getPointeeType()->getAs<FunctionProtoType>();
1899 CGM.getContext().getPointerType(QualType(Ty->getClass(),
1904 llvm::DIType CGDebugInfo::CreateType(const AtomicType *Ty,
1908 return getOrCreateType(Ty->getValueType(), U);
1912 llvm::DIType CGDebugInfo::CreateEnumType(const EnumType *Ty) {
1913 const EnumDecl *ED = Ty->getDecl();
1921 SmallString<256> FullName = getUniqueTagTypeName(Ty, CGM, TheCU);
1934 ReplaceMap.push_back(std::make_pair(Ty, static_cast<llvm::Value *>(RetTy)));
1938 return CreateTypeDefinition(Ty);
1941 llvm::DIType CGDebugInfo::CreateTypeDefinition(const EnumType *Ty) {
1942 const EnumDecl *ED = Ty->getDecl();
1950 SmallString<256> FullName = getUniqueTagTypeName(Ty, CGM, TheCU);
2034 llvm::DIType CGDebugInfo::getTypeOrNull(QualType Ty) {
2037 Ty = UnwrapTypeForDebugInfo(Ty, CGM.getContext());
2039 auto it = TypeCache.find(Ty.getAsOpaquePtr());
2062 llvm::DIType CGDebugInfo::getOrCreateType(QualType Ty, llvm::DIFile Unit) {
2063 if (Ty.isNull())
2067 Ty = UnwrapTypeForDebugInfo(Ty, CGM.getContext());
2069 if (llvm::DIType T = getTypeOrNull(Ty))
2073 llvm::DIType Res = CreateTypeNode(Ty, Unit);
2074 void* TyPtr = Ty.getAsOpaquePtr();
2096 ObjCInterfaceDecl *CGDebugInfo::getObjCInterfaceDecl(QualType Ty) {
2097 switch (Ty->getTypeClass()) {
2099 return getObjCInterfaceDecl(cast<ObjCObjectPointerType>(Ty)
2102 return cast<ObjCInterfaceType>(Ty)->getDecl();
2109 llvm::DIType CGDebugInfo::CreateTypeNode(QualType Ty, llvm::DIFile Unit) {
2111 if (Ty.hasLocalQualifiers())
2112 return CreateQualifiedType(Ty, Unit);
2117 switch (Ty->getTypeClass()) {
2127 return CreateType(cast<VectorType>(Ty), Unit);
2129 return CreateType(cast<ObjCObjectPointerType>(Ty), Unit);
2131 return CreateType(cast<ObjCObjectType>(Ty), Unit);
2133 return CreateType(cast<ObjCInterfaceType>(Ty), Unit);
2135 return CreateType(cast<BuiltinType>(Ty));
2137 Ty));
2139 return CreateType(cast<PointerType>(Ty), Unit);
2144 cast<PointerType>(cast<AdjustedType>(Ty)->getAdjustedType()), Unit);
2146 return CreateType(cast<BlockPointerType>(Ty), Unit);
2148 return CreateType(cast<TypedefType>(Ty), Unit);
2150 return CreateType(cast<RecordType>(Ty));
2152 return CreateEnumType(cast<EnumType>(Ty));
2155 return CreateType(cast<FunctionType>(Ty), Unit);
2159 return CreateType(cast<ArrayType>(Ty), Unit);
2162 return CreateType(cast<LValueReferenceType>(Ty), Unit);
2164 return CreateType(cast<RValueReferenceType>(Ty), Unit);
2167 return CreateType(cast<MemberPointerType>(Ty), Unit);
2170 return CreateType(cast<AtomicType>(Ty), Unit);
2173 return CreateType(cast<TemplateSpecializationType>(Ty), Unit);
2200 llvm::DIType CGDebugInfo::getOrCreateLimitedType(const RecordType *Ty,
2202 QualType QTy(Ty, 0);
2212 llvm::DICompositeType Res = CreateLimitedType(Ty);
2225 llvm::DICompositeType CGDebugInfo::CreateLimitedType(const RecordType *Ty) {
2226 RecordDecl *RD = Ty->getDecl();
2246 return getOrCreateRecordFwdDecl(Ty, RDContext);
2248 uint64_t Size = CGM.getContext().getTypeSize(Ty);
2249 uint64_t Align = CGM.getContext().getTypeAlign(Ty);
2252 SmallString<256> FullName = getUniqueTagTypeName(Ty, CGM, TheCU);
2271 RegionMap[Ty->getDecl()] = llvm::WeakVH(RealDecl);
2272 TypeCache[QualType(Ty, 0).getAsOpaquePtr()] = RealDecl;
2312 llvm::DIType Ty = DBuilder.createMemberType(Unit, Name, Unit, 0,
2316 return Ty;
2723 llvm::DIType Ty;
2726 Ty = EmitTypeForVarWithBlocksAttr(VD, &XOffset);
2728 Ty = getOrCreateType(VD->getType(), Unit);
2732 if (!Ty)
2780 VD->getName(), Unit, Line, Ty,
2822 Name, Unit, Line, Ty,
2845 llvm::DIType Ty) {
2847 if (CachedTy) Ty = CachedTy;
2848 return DBuilder.createObjectPointerType(Ty);
2865 llvm::DIType Ty;
2867 Ty = EmitTypeForVarWithBlocksAttr(VD, &XOffset);
2869 Ty = getOrCreateType(VD->getType(), Unit);
2874 Ty = CreateSelfType(VD->getType(), Ty);
2910 VD->getName(), Unit, Line, Ty, addr);
3198 llvm::DIType Ty = getOrCreateType(VD->getType(), Unit);
3202 Ty = getOrCreateType(QualType(ED->getTypeForDecl(), 0), Unit);
3205 if (Ty.getTag() == llvm::dwarf::DW_TAG_enumeration_type)
3217 DContext, Name, StringRef(), Unit, getLineNumber(VD->getLocation()), Ty,
3310 llvm::DIType Ty(cast<llvm::MDNode>(p.second));
3311 assert(Ty.isForwardDecl());
3318 Ty.replaceAllUsesWith(CGM.getLLVMContext(), RepTy);