aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGVtable.cpp
AgeCommit message (Collapse)Author
2010-03-18When dumping vtables, also dump the thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17More work on thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98765 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12More this adjustment simplification.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98333 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Remove OldOffset.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98331 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Remove debug output.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98330 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12Begin simplifying handling of thunks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98329 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Use the new vtable layout code for computing virtual base offset offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98257 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Rename getVirtualBaseOffsetIndex to getVirtualBaseOffsetOffset to reflect ↵Anders Carlsson
what it actually does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98248 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11When possible, use the vbase offset offsets from the most derived class ↵Anders Carlsson
directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98247 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Keep track of, and dump, vbase offset offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98245 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Fix tests.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98242 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11Run the new vtable builder for construction vtables as well now. Note that ↵Anders Carlsson
we still don't use the data it generates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98239 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Fix calculation of whether a member function needs a thunk in construction ↵Anders Carlsson
vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98191 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10We were mistakenly marking morally virtual bases as being uninteresting. Fix ↵Anders Carlsson
this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98180 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Ignore non-interesting bases when emitting construction vtables.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98177 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Don't accidentally mark some functions in construction vtables as unused. ↵Anders Carlsson
Also land the test for a previous checkin, now that it's correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98139 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10When building construction vtables, we need to check if a primary virtual ↵Anders Carlsson
base is actually a primary virtual base in the layout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98131 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Improve vcall offset handling in construction vtables. With this we layout ↵Anders Carlsson
the construction vtables from the ABI examples correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98127 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10Delay codegen of vtables when handling implicit instantiations.Rafael Espindola
This fixes PR6474. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98123 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Fix a bug with base offset merging that Devang noticed.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97641 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02Simplify code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97551 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02Rename BaseOffset to Offset and make it signed in preparation of more ↵Anders Carlsson
construction vtable work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97546 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Remove debug output.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97407 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Handle unused functions in construction vtables correctly.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97406 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28When laying out vtables for virtual bases in construction vtables, we need ↵Anders Carlsson
to check if the vtable is a primary base in the layout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97402 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28More improvements to construction vtables; we know handle vbase offsets ↵Anders Carlsson
correctly (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Pass information about whether a base is virtual or not down to ↵Anders Carlsson
getCtorVtable, we need this information in the vtable builder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97356 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28Add new function.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97353 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Fix to dumpLayout; we want to be able to dump address points even if the ↵Anders Carlsson
vtable doesn't have any methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97350 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Add a simple construction vtable test.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97344 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Start fleshing out construction vtable support.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97342 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Enable the new vtable layout code for vtables that aren't construction ↵Anders Carlsson
vtables. (This doesn't mean that we emit LLVM IR using it yet, it just means that it's running and hopefully not crashing or asserting). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97341 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Move ComputeThisAdjustmentBaseOffset to VtableBuilder.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97340 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Make sure to insert the primary base in the set :)Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97339 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Use the real base offset when calculating vbase offsets.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Figured out why the test was failing, this will hopefully fix it.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97336 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Don't add this adjustments for pure virtual member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97334 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27We want to store method info for unused functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97333 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Finish up the changes to this adjustments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97328 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Stub out more of the 'this' pointer adjustment fixes I've been planning. ↵Anders Carlsson
Start using a set vector for primary bases so they will be ordered. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97326 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Fix another vtable layout bug; we weren't looking hard enough for overriden ↵Anders Carlsson
functions when determining if an overrider will ever be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97306 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Handle vcall offset sharing between destructors.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97304 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Fix a bug where we were generating an unnecessary vtable for a virtual base ↵Anders Carlsson
that's already a primary virtual base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97303 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Sundry fixes to the new vtable builder.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Improve vcall offset handling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97174 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Fux a bug where we were trying to add overriders for non-virtual bases of ↵Anders Carlsson
virtual bases more than once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97173 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Remove dead code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Move the vcall and vbase offset layout code out into its own class.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97107 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-24Get rid of 'this' adjustments from the FinalOverriders class since they can ↵Anders Carlsson
be different for the same overrider in different parts of the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97068 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-24Improve this adjustment pointer calculation.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97067 91177308-0d34-0410-b5e6-96231b3b80d8