Benjamin Kramer
|
9e2e1c9024
|
Minor include pruning.
llvm-svn: 100007
|
2010-03-31 15:04:05 +00:00 |
|
Anders Carlsson
|
f141dd1b95
|
Remove the old vtable layout code.
llvm-svn: 99869
|
2010-03-30 03:43:47 +00:00 |
|
Anders Carlsson
|
a086edc0e6
|
Remove UseNewVTableCode checks.
llvm-svn: 99868
|
2010-03-30 03:35:35 +00:00 |
|
Anders Carlsson
|
a627ac7ee6
|
More vtable work - it's not possible to use the new vtable code for everything by setting a flag inside CGVtable.cpp. My plan is to run some tests and bootstrap and once that's done flip the bit.
llvm-svn: 99804
|
2010-03-29 03:38:52 +00:00 |
|
Anders Carlsson
|
f6f24c609b
|
Cleanup, no functionality change.
llvm-svn: 99798
|
2010-03-29 02:08:26 +00:00 |
|
Anders Carlsson
|
f1a994ce33
|
Add and implement CodeGenVTables::getSecondaryVirtualPointerIndex (not used yet).
llvm-svn: 99608
|
2010-03-26 04:23:58 +00:00 |
|
Anders Carlsson
|
a208b3997d
|
Way more VTT builder cleanup.
llvm-svn: 99604
|
2010-03-26 03:56:54 +00:00 |
|
Anders Carlsson
|
a4147148ff
|
When -fdump-vtable-layouts is specified, construction vtable initializers will be generated using the new vtable layout code. (The code is still not completely in place but this is a huge step forward).
llvm-svn: 99508
|
2010-03-25 15:26:28 +00:00 |
|
Anders Carlsson
|
d03325c54f
|
More address point map shuffling.
llvm-svn: 99462
|
2010-03-25 00:51:13 +00:00 |
|
Anders Carlsson
|
0534b0201e
|
Shuffle some code around; this will make it easier to use the new layout code for address points.
llvm-svn: 99461
|
2010-03-25 00:35:49 +00:00 |
|
Anders Carlsson
|
e90954de64
|
More vtable improvements. We now compute and keep track of all vtable related information which avoids computing the same vtable layout over and over.
llvm-svn: 99403
|
2010-03-24 16:42:11 +00:00 |
|
Anders Carlsson
|
67fbf9853f
|
Use getNamedGlobal instead of getGlobalVariable. (Fixes self-host).
llvm-svn: 99385
|
2010-03-24 05:32:05 +00:00 |
|
Anders Carlsson
|
b35ea55e2e
|
More vtable work; preparations for moving over to the new vtable layout code (finally).
llvm-svn: 99381
|
2010-03-24 03:57:14 +00:00 |
|
Anders Carlsson
|
95e0223baf
|
Remove old thunks code.
llvm-svn: 99374
|
2010-03-24 00:57:54 +00:00 |
|
Anders Carlsson
|
55e89f877c
|
More work on thunks - don't assert if there's a variable with the same name as the thunk already.
llvm-svn: 99303
|
2010-03-23 18:18:41 +00:00 |
|
Anders Carlsson
|
5c5abad5d9
|
More work on thunks.
llvm-svn: 99287
|
2010-03-23 16:36:50 +00:00 |
|
Anders Carlsson
|
274fc82289
|
Move ThunkInfo as well.
llvm-svn: 99280
|
2010-03-23 15:17:13 +00:00 |
|
Anders Carlsson
|
67fd3a50dc
|
Move ReturnAdjustment and ThisAdjustment out into CGVtable.h
llvm-svn: 99279
|
2010-03-23 15:13:06 +00:00 |
|
Anders Carlsson
|
917229cf75
|
Baby steps towards making thunks be emitted from the new vtable layout code.
llvm-svn: 99254
|
2010-03-23 04:59:02 +00:00 |
|
Anders Carlsson
|
af82f63b47
|
Always emit associated thunks when emitting the function itself. Remove getVtableAddressPoint, it's not used.
llvm-svn: 99252
|
2010-03-23 04:31:31 +00:00 |
|
Anders Carlsson
|
8841024a7c
|
Rename MaybeEmitVtable to EmitVTableRelatedData in preparation for making it emit thunks as well.
llvm-svn: 99251
|
2010-03-23 04:15:00 +00:00 |
|
Anders Carlsson
|
a864caff8c
|
Rename CGVtableInfo to CodeGenVTables in preparation of adding another VTableInfo class.
llvm-svn: 99250
|
2010-03-23 04:11:45 +00:00 |
|
Anders Carlsson
|
4cbe83cccb
|
Rename getVirtualBaseOffsetIndex to getVirtualBaseOffsetOffset to reflect what it actually does.
llvm-svn: 98248
|
2010-03-11 07:15:17 +00:00 |
|
Rafael Espindola
|
e7113ca907
|
Delay codegen of vtables when handling implicit instantiations.
This fixes PR6474.
llvm-svn: 98123
|
2010-03-10 02:19:29 +00:00 |
|
Anders Carlsson
|
62c6c72bab
|
Pass information about whether a base is virtual or not down to getCtorVtable, we need this information in the vtable builder.
llvm-svn: 97356
|
2010-02-28 00:36:23 +00:00 |
|
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 |
|