On Thu, Sep 10, 2015 at 10:13 AM, Adrian Prantl via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: adrian > Date: Thu Sep 10 12:13:31 2015 > New Revision: 247303 > > URL: http://llvm.org/viewvc/llvm-project?rev=247303&view=rev > Log: > Debug Info: Remove an unnecessary debug type visitor. > Thanks to dblaikie for spotting this. > > Modified: > cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > cfe/trunk/test/Modules/ModuleDebugInfo.cpp > > Modified: cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp?rev=247303&r1=247302&r2=247303&view=diff > > ============================================================================== > --- cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp (original) > +++ cfe/trunk/lib/CodeGen/ObjectFilePCHContainerOperations.cpp Thu Sep 10 > 12:13:31 2015 > @@ -70,13 +70,6 @@ class PCHContainerGenerator : public AST > return true; > } > > - bool VisitValueDecl(ValueDecl *D) { > - QualType QualTy = D->getType(); > - if (!QualTy.isNull() && CanRepresent(QualTy.getTypePtr())) > - DI.getOrCreateStandaloneType(QualTy, D->getLocation()); > - return true; > - } > - > bool VisitObjCInterfaceDecl(ObjCInterfaceDecl *D) { > QualType QualTy(D->getTypeForDecl(), 0); > if (!QualTy.isNull() && CanRepresent(QualTy.getTypePtr())) > > Modified: cfe/trunk/test/Modules/ModuleDebugInfo.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/ModuleDebugInfo.cpp?rev=247303&r1=247302&r2=247303&view=diff > > ============================================================================== > --- cfe/trunk/test/Modules/ModuleDebugInfo.cpp (original) > +++ cfe/trunk/test/Modules/ModuleDebugInfo.cpp Thu Sep 10 12:13:31 2015 > @@ -7,10 +7,12 @@ > // RUN: rm -rf %t > // RUN: %clang_cc1 -triple %itanium_abi_triple -x objective-c++ > -std=c++11 -g -fmodules -fmodule-format=obj -fimplicit-module-maps > -DMODULES -fmodules-cache-path=%t %s -I %S/Inputs -I %t -emit-llvm -o %t.ll > -mllvm -debug-only=pchcontainer &>%t-mod.ll > // RUN: cat %t-mod.ll | FileCheck %s > +// RUN: cat %t-mod.ll | FileCheck --check-prefix=CHECK-NEG %s > > // PCH: > // RUN: %clang_cc1 -triple %itanium_abi_triple -x c++ -std=c++11 > -emit-pch -fmodule-format=obj -I %S/Inputs -o %t.pch %S/Inputs/DebugCXX.h > -mllvm -debug-only=pchcontainer &>%t-pch.ll > // RUN: cat %t-pch.ll | FileCheck %s > +// RUN: cat %t-mod.ll | FileCheck --check-prefix=CHECK-NEG %s > > #ifdef MODULES > @import DebugCXX; > @@ -30,12 +32,11 @@ > // CHECK: !DICompositeType(tag: DW_TAG_class_type, > // CHECK-SAME: name: "Template<float, DebugCXX::traits<float> > >" > // CHECK-SAME: identifier: > "_ZTSN8DebugCXX8TemplateIfNS_6traitsIfEEEE") > -// CHECK: !DICompositeType(tag: DW_TAG_class_type, > -// CHECK-SAME: name: "Template<long, DebugCXX::traits<long> >" > -// CHECK-SAME: identifier: > "_ZTSN8DebugCXX8TemplateIlNS_6traitsIlEEEE") > // CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "A<void>" > // CHECK-SAME: identifier: "_ZTSN8DebugCXX1AIJvEEE") > // CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "FloatInstatiation" > // no mangled name here yet. > // CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "B", > // no mangled name here yet. > + > +// CHECK-NEG-NOT: "_ZTSN8DebugCXX8TemplateIlNS_6traitsIlEEEE" > Rather than using a separate check - maybe do the same sort of thing we do for DWARF testing, CHECK-NOT between each DICompositeType, to ensure we only get the types we intended? (including a CHECK-NOT at the end to ensure there aren't any trailing ones) But also: How does the current implementation avoid emitting this type? I thought it visited all the type decls, even those not immediately in the module? (you mentioned that was something that you were planning to address in a future patch) Is that not the case? Is this now sufficient to only emit the decls immediately in this module? > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits