summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGVtable.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests.Anders Carlsson2009-12-301-2/+2
| | | | llvm-svn: 92319
* Remove some dead code.Mike Stump2009-12-241-29/+19
| | | | llvm-svn: 92123
* Rename GetAddrOfRTTI to GetAddrOfRTTIDescriptor. Remove the overload that ↵Anders Carlsson2009-12-171-2/+4
| | | | | | takes a CXXRecordDecl since we were just creating a QualType from it anyway. llvm-svn: 91590
* Fix a small bug in ComputeMethodVtableIndices.Eli Friedman2009-12-151-2/+10
| | | | llvm-svn: 91411
* Fix linkage of type info and vtable for classes without linkage.Eli Friedman2009-12-111-1/+1
| | | | llvm-svn: 91152
* Improve linkage of RTTI data structures. Introduce ↵Anders Carlsson2009-12-111-3/+1
| | | | | | CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests). llvm-svn: 91098
* Slight tweak to vtable linkage.Eli Friedman2009-12-081-1/+1
| | | | llvm-svn: 90832
* A bunch more thunk fixes from misc testing.Eli Friedman2009-12-071-28/+30
| | | | | | (Yes, I do intend to commit some tests for this.) llvm-svn: 90818
* It's OK to try to emit a vtable definition more than once. Fixes PR5697.Anders Carlsson2009-12-071-2/+7
| | | | llvm-svn: 90751
* Erm, revert for the moment; I didn't test this as thoroughly as I should haveEli Friedman2009-12-071-3/+3
| | | | | | (although it does pass regression tests). llvm-svn: 90747
* Tweak the formula for non-virtual offsets to something which appears a bitEli Friedman2009-12-071-3/+3
| | | | | | more accurate. llvm-svn: 90746
* Move key functions to a separate map.Anders Carlsson2009-12-071-3/+1
| | | | llvm-svn: 90745
* Be a bit more complete about accumulating SavedThisAdjustments.Eli Friedman2009-12-061-2/+4
| | | | llvm-svn: 90723
* Work-in-progess rewrite of thunks: move thunk generation outside of vtableEli Friedman2009-12-061-8/+66
| | | | | | | generation, and make sure we generate thunks when the function is defined rather than when the vtable is defined. llvm-svn: 90722
* Set the correct linkage for VTTs as well.Anders Carlsson2009-12-061-56/+35
| | | | llvm-svn: 90689
* More linkage improvements.Anders Carlsson2009-12-061-11/+26
| | | | llvm-svn: 90687
* Pass the desired vtable linkage to GenerateVtable directly. Only call ↵Anders Carlsson2009-12-061-19/+7
| | | | | | MaybeMarkVirtualImplicitMembersReferenced for non-inline functions. llvm-svn: 90686
* Make GenerateVtable a private member function of CGVtableInfo.Anders Carlsson2009-12-061-21/+23
| | | | llvm-svn: 90684
* Only emit the vtable definition if the class has a key function and we're ↵Anders Carlsson2009-12-051-32/+22
| | | | | | emitting it, or if the class doesn't have a key function and we are emitting the complete constructor. llvm-svn: 90681
* If a class does not have a key function, its linkage should be weak_odr.Anders Carlsson2009-12-051-2/+2
| | | | llvm-svn: 90680
* Use createGlobalVariable for creating vtable variables too.Anders Carlsson2009-12-051-42/+36
| | | | llvm-svn: 90679
* CodeGenModule::GenerateVtable now returns a pointer directly to the vtable ↵Anders Carlsson2009-12-051-25/+20
| | | | | | and not to the address point. llvm-svn: 90676
* Make sure that hte vtable always has an i8* array type.Anders Carlsson2009-12-051-5/+4
| | | | llvm-svn: 90675
* Add a function for getting the vtable address point of a class.Anders Carlsson2009-12-051-0/+7
| | | | llvm-svn: 90674
* Simplify BuildVTT.Anders Carlsson2009-12-051-11/+10
| | | | llvm-svn: 90673
* Let the VTT builder pretend that getVtable returns a pointer to the vtable ↵Anders Carlsson2009-12-051-4/+4
| | | | | | and not to the vtable address point. llvm-svn: 90672
* Change getCtorVtable to not return the address point offset, but the global ↵Anders Carlsson2009-12-051-2/+10
| | | | | | variable. llvm-svn: 90671
* Factor vtable related GlobalVariable creation out into a separate function. ↵Anders Carlsson2009-12-051-24/+40
| | | | | | Add vtable linkage test. llvm-svn: 90667
* Skip actually generating the vtable unless we are defining it. This avoidsEli Friedman2009-12-051-24/+38
| | | | | | the side-effects of generating the methods in the vtable (including PR5676). llvm-svn: 90635
* Return bool as a bool instead of a uint64_t.Benjamin Kramer2009-12-041-1/+1
| | | | llvm-svn: 90610
* Rename 'Class' to 'MostDerivedClass'Anders Carlsson2009-12-041-8/+13
| | | | llvm-svn: 90573
* Store the vtable components in a SmallVector.Anders Carlsson2009-12-041-2/+3
| | | | llvm-svn: 90571
* Use a different ConstantArray::get.Anders Carlsson2009-12-041-1/+2
| | | | llvm-svn: 90570
* Move the vtable vector directly into the Vtable builder.Anders Carlsson2009-12-041-19/+30
| | | | llvm-svn: 90569
* Change getIndex to return false if the index wasn't found. Avoids an extra ↵Anders Carlsson2009-12-041-11/+12
| | | | | | hash lookup. llvm-svn: 90568
* Minor cleanup; no functionality change.Eli Friedman2009-12-041-9/+3
| | | | llvm-svn: 90565
* Remove unused argument.Eli Friedman2009-12-041-16/+14
| | | | llvm-svn: 90563
* Eliminate submethods vector.Eli Friedman2009-12-041-6/+0
| | | | llvm-svn: 90562
* Eliminate the inner loop in VtableBuilder::OverrideMethod.Eli Friedman2009-12-041-75/+71
| | | | llvm-svn: 90561
* Make sure that overridden method decls are always canonical.Anders Carlsson2009-12-041-2/+2
| | | | llvm-svn: 90542
* Fix regression in vtable improvements.Eli Friedman2009-12-041-2/+2
| | | | llvm-svn: 90540
* Rename method to something easier to search for.Eli Friedman2009-12-041-7/+10
| | | | llvm-svn: 90536
* More work in preparation of getting rid of the submethods loop.Anders Carlsson2009-12-041-4/+6
| | | | llvm-svn: 90535
* Remove an unused member variable.Anders Carlsson2009-12-041-6/+1
| | | | llvm-svn: 90534
* Add a way to get the index of a method. Assert that we have the same index ↵Anders Carlsson2009-12-041-5/+10
| | | | | | for now. llvm-svn: 90533
* Add a premature optimization.Anders Carlsson2009-12-041-0/+3
| | | | llvm-svn: 90532
* Add the method directly to the vtable.Anders Carlsson2009-12-041-6/+11
| | | | llvm-svn: 90531
* Get rid of the PureVirtualMethods map.Anders Carlsson2009-12-041-11/+0
| | | | llvm-svn: 90530
* Move handling of pure virtual methods to AppendMethods (and rename it to ↵Anders Carlsson2009-12-041-14/+6
| | | | | | AppendMethodsToVtable). llvm-svn: 90529
* Move covariant thunk handling to AppendMethods too.Anders Carlsson2009-12-041-43/+30
| | | | llvm-svn: 90528
OpenPOWER on IntegriCloud