Anders Carlsson
|
5f9a881e1e
|
Store the address points for constructor vtables directly in the VTT builder, because that's the only time they're needed.
llvm-svn: 93412
|
2010-01-14 02:29:07 +00:00 |
Anders Carlsson
|
2a4adbea96
|
Add a DenseMapInfo specialization for BaseSubobject.
llvm-svn: 93399
|
2010-01-14 01:39:42 +00:00 |
Anders Carlsson
|
20871481d2
|
Add a BaseSubobject class to uniquely identify a base class subobject. Not yet used.
llvm-svn: 93345
|
2010-01-13 20:11:15 +00:00 |
Anders Carlsson
|
93a1884fde
|
Move address points to CGVtableInfo, no functionality change.
llvm-svn: 92420
|
2010-01-02 18:02:32 +00:00 |
Anders Carlsson
|
e36a6b3e44
|
Correctly pass VTT parameters to constructors and destructors. The VTTs aren't yet used in the ctors/dtors, but that will follow.
llvm-svn: 92409
|
2010-01-02 01:01:18 +00:00 |
Eli Friedman
|
31bc3ad275
|
A bunch more thunk fixes from misc testing.
(Yes, I do intend to commit some tests for this.)
llvm-svn: 90818
|
2009-12-07 23:56:34 +00:00 |
Eli Friedman
|
8174f2c23c
|
Work-in-progess rewrite of thunks: move thunk generation outside of vtable
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.
llvm-svn: 90722
|
2009-12-06 22:01:30 +00:00 |
Anders Carlsson
|
fe5f7d916f
|
Set the correct linkage for VTTs as well.
llvm-svn: 90689
|
2009-12-06 01:09:21 +00:00 |
Anders Carlsson
|
232324c5c0
|
More linkage improvements.
llvm-svn: 90687
|
2009-12-06 00:53:22 +00:00 |
Anders Carlsson
|
0911ae8ef2
|
Pass the desired vtable linkage to GenerateVtable directly. Only call MaybeMarkVirtualImplicitMembersReferenced for non-inline functions.
llvm-svn: 90686
|
2009-12-06 00:23:49 +00:00 |
Anders Carlsson
|
7e28c5f2e2
|
Make GenerateVtable a private member function of CGVtableInfo.
llvm-svn: 90684
|
2009-12-06 00:01:05 +00:00 |
Anders Carlsson
|
c8e39ec79f
|
Add a function for getting the vtable address point of a class.
llvm-svn: 90674
|
2009-12-05 21:03:56 +00:00 |
Anders Carlsson
|
b1d3f7c909
|
Have ASTRecordLayout keep track of the key function, in preparation of fixing a synthetic ctor/dtor bug.
llvm-svn: 90168
|
2009-11-30 23:41:22 +00:00 |
Anders Carlsson
|
f942ee0297
|
Don't build the entire vtable when all we want is the index of a virtual method.
llvm-svn: 90017
|
2009-11-27 20:47:55 +00:00 |
Benjamin Kramer
|
334af99964
|
Remove dead forward declaration. Fix struct/class mismatch. Remove trailing whitespace.
llvm-svn: 89947
|
2009-11-26 13:09:03 +00:00 |
Anders Carlsson
|
2f87c4f1a5
|
Add a CovariantThunkAdjustment struct that represents the adjustments needed for a covariant thunk.
llvm-svn: 89933
|
2009-11-26 03:09:37 +00:00 |
Anders Carlsson
|
abe274a8b0
|
Move the mangler into the CodeGen namespace. Change mangleThunk to take a ThunkAdjustment.
llvm-svn: 89930
|
2009-11-26 02:49:32 +00:00 |
Anders Carlsson
|
c778540f9a
|
Add a ThunkAdjustment struct which holds a non-virtual and a virtual adjustment offset. Start using it. General cleanup in Mangle.cpp.
llvm-svn: 89925
|
2009-11-26 02:32:05 +00:00 |
Mike Stump
|
1a139f8fb5
|
Improve instantiation control for rtti data and allow key functions to
instantiate a class. WIP.
llvm-svn: 89289
|
2009-11-19 01:08:19 +00:00 |
Anders Carlsson
|
fb4dda4fed
|
Instead of storing CXXMethodDecls in the vtable builder, store GlobalDecls so we can represent both the complete and deleting destructors. Also, when encountering a destructor decl, emit entries for both the complete and deleting destructors. Mike, please review.
With this change, FileCheck builds and runs the clang test suite without failures!
llvm-svn: 88663
|
2009-11-13 17:08:56 +00:00 |
Mike Stump
|
eac4559790
|
Push ctor vtable construction down further. WIP.
llvm-svn: 86878
|
2009-11-11 20:26:26 +00:00 |
Mike Stump
|
c7b9f5e762
|
More VTT work. We now track offsets and use the ctor vtable builder
interface. WIP.
llvm-svn: 86793
|
2009-11-11 03:08:24 +00:00 |
Mike Stump
|
d846d0825b
|
Add vtable caching to prevent multiple vtables for the same class from
being generated.
Add the most derived vtable pointer to the VTT.
llvm-svn: 86671
|
2009-11-10 07:44:33 +00:00 |
Mike Stump
|
284312176a
|
Refine handling for non-virtual bases in return value adjustments for
covariant thunks. WIP.
llvm-svn: 84046
|
2009-10-13 22:54:56 +00:00 |
Anders Carlsson
|
2bb27f53e0
|
Move the vtable builder to CGVtable.cpp, general cleanup.
llvm-svn: 83798
|
2009-10-11 22:13:54 +00:00 |