On Wed, Aug 21, 2013 at 10:33 AM, Timur Iskhodzhanov <[email protected]> wrote: > Author: timurrrr > Date: Wed Aug 21 12:33:16 2013 > New Revision: 188909 > > URL: http://llvm.org/viewvc/llvm-project?rev=188909&view=rev > Log: > [CGF] Get rid of passing redundant VTable pointer around in > CodeGenFunction::InitializeVTablePointer[s]
Strangely, this appears to have regressed debug info (probably based on a debug info feature I implemented over the weekend). http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/8031 I don't really know how your change connects to this, but I'll investigate, etc - no action required on your part, just wanted to note it down here in case anyone was looking at the bots, seeing weird debug info, etc. > > Modified: > cfe/trunk/lib/CodeGen/CGClass.cpp > cfe/trunk/lib/CodeGen/CodeGenFunction.h > > Modified: cfe/trunk/lib/CodeGen/CGClass.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGClass.cpp?rev=188909&r1=188908&r2=188909&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CGClass.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGClass.cpp Wed Aug 21 12:33:16 2013 > @@ -1852,7 +1852,6 @@ void > CodeGenFunction::InitializeVTablePointer(BaseSubobject Base, > const CXXRecordDecl *NearestVBase, > CharUnits OffsetFromNearestVBase, > - llvm::Constant *VTable, > const CXXRecordDecl *VTableClass) { > const CXXRecordDecl *RD = Base.getBase(); > > @@ -1875,6 +1874,7 @@ CodeGenFunction::InitializeVTablePointer > // And load the address point from the VTT. > VTableAddressPoint = Builder.CreateLoad(VTT); > } else { > + llvm::Constant *VTable = CGM.getVTables().GetAddrOfVTable(VTableClass); > uint64_t AddressPoint = > > CGM.getVTableContext().getVTableLayout(VTableClass).getAddressPoint(Base); > VTableAddressPoint = > @@ -1919,7 +1919,6 @@ CodeGenFunction::InitializeVTablePointer > const CXXRecordDecl *NearestVBase, > CharUnits OffsetFromNearestVBase, > bool BaseIsNonVirtualPrimaryBase, > - llvm::Constant *VTable, > const CXXRecordDecl *VTableClass, > VisitedVirtualBasesSetTy& VBases) { > // If this base is a non-virtual primary base the address point has already > @@ -1927,7 +1926,7 @@ CodeGenFunction::InitializeVTablePointer > if (!BaseIsNonVirtualPrimaryBase) { > // Initialize the vtable pointer for this base. > InitializeVTablePointer(Base, NearestVBase, OffsetFromNearestVBase, > - VTable, VTableClass); > + VTableClass); > } > > const CXXRecordDecl *RD = Base.getBase(); > @@ -1970,7 +1969,7 @@ CodeGenFunction::InitializeVTablePointer > I->isVirtual() ? BaseDecl : NearestVBase, > BaseOffsetFromNearestVBase, > BaseDeclIsNonVirtualPrimaryBase, > - VTable, VTableClass, VBases); > + VTableClass, VBases); > } > } > > @@ -1979,16 +1978,12 @@ void CodeGenFunction::InitializeVTablePo > if (!RD->isDynamicClass()) > return; > > - // Get the VTable. > - llvm::Constant *VTable = CGM.getVTables().GetAddrOfVTable(RD); > - > // Initialize the vtable pointers for this class and all of its bases. > VisitedVirtualBasesSetTy VBases; > InitializeVTablePointers(BaseSubobject(RD, CharUnits::Zero()), > /*NearestVBase=*/0, > /*OffsetFromNearestVBase=*/CharUnits::Zero(), > - /*BaseIsNonVirtualPrimaryBase=*/false, > - VTable, RD, VBases); > + /*BaseIsNonVirtualPrimaryBase=*/false, RD, > VBases); > } > > llvm::Value *CodeGenFunction::GetVTablePtr(llvm::Value *This, > > Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=188909&r1=188908&r2=188909&view=diff > ============================================================================== > --- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original) > +++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Wed Aug 21 12:33:16 2013 > @@ -1180,7 +1180,6 @@ public: > void InitializeVTablePointer(BaseSubobject Base, > const CXXRecordDecl *NearestVBase, > CharUnits OffsetFromNearestVBase, > - llvm::Constant *VTable, > const CXXRecordDecl *VTableClass); > > typedef llvm::SmallPtrSet<const CXXRecordDecl *, 4> > VisitedVirtualBasesSetTy; > @@ -1188,7 +1187,6 @@ public: > const CXXRecordDecl *NearestVBase, > CharUnits OffsetFromNearestVBase, > bool BaseIsNonVirtualPrimaryBase, > - llvm::Constant *VTable, > const CXXRecordDecl *VTableClass, > VisitedVirtualBasesSetTy& VBases); > > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
