Anders Carlsson
|
7eb99a607d
|
Add less than operators to ThisAdjustment, ReturnAdjustment and ThunkInfo. Sort the thunks before dumping them.
llvm-svn: 99184
|
2010-03-22 16:30:44 +00:00 |
|
Anders Carlsson
|
53a47bf901
|
Improve dumping of thunks.
llvm-svn: 99181
|
2010-03-22 16:10:59 +00:00 |
|
Anders Carlsson
|
64decd3586
|
We want to add all thunks, not just 'this' adjustment thunks.
llvm-svn: 99177
|
2010-03-22 15:47:01 +00:00 |
|
Anders Carlsson
|
4b2411e9d2
|
AddThunk should take a const reference.
llvm-svn: 99140
|
2010-03-21 20:27:14 +00:00 |
|
Anders Carlsson
|
18c582d9c8
|
When dumping vtables, also dump the thunks.
llvm-svn: 98799
|
2010-03-18 02:44:19 +00:00 |
|
Anders Carlsson
|
56446146fd
|
More work on thunks.
llvm-svn: 98765
|
2010-03-17 20:06:32 +00:00 |
|
Anders Carlsson
|
5d3b901e48
|
More this adjustment simplification.
llvm-svn: 98333
|
2010-03-12 05:28:07 +00:00 |
|
Anders Carlsson
|
3c289673d6
|
Remove OldOffset.
llvm-svn: 98331
|
2010-03-12 05:02:01 +00:00 |
|
Anders Carlsson
|
2b2b8f1949
|
Remove debug output.
llvm-svn: 98330
|
2010-03-12 04:55:20 +00:00 |
|
Anders Carlsson
|
8a2402989d
|
Begin simplifying handling of thunks.
llvm-svn: 98329
|
2010-03-12 04:54:20 +00:00 |
|
Anders Carlsson
|
dd819c981f
|
Use the new vtable layout code for computing virtual base offset offsets.
llvm-svn: 98257
|
2010-03-11 16:06:20 +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 |
|
Anders Carlsson
|
e4424888e4
|
When possible, use the vbase offset offsets from the most derived class directly.
llvm-svn: 98247
|
2010-03-11 07:00:45 +00:00 |
|
Anders Carlsson
|
7f6b71e222
|
Keep track of, and dump, vbase offset offsets.
llvm-svn: 98245
|
2010-03-11 06:43:12 +00:00 |
|
Anders Carlsson
|
9f28dbc53a
|
Fix tests.
llvm-svn: 98242
|
2010-03-11 06:10:52 +00:00 |
|
Anders Carlsson
|
d5531e2d18
|
Run the new vtable builder for construction vtables as well now. Note that we still don't use the data it generates.
llvm-svn: 98239
|
2010-03-11 05:48:21 +00:00 |
|
Anders Carlsson
|
423406f335
|
Fix calculation of whether a member function needs a thunk in construction vtables.
llvm-svn: 98191
|
2010-03-10 21:25:37 +00:00 |
|
Anders Carlsson
|
115b4756b5
|
We were mistakenly marking morally virtual bases as being uninteresting. Fix this.
llvm-svn: 98180
|
2010-03-10 19:39:11 +00:00 |
|
Anders Carlsson
|
703a08605f
|
Ignore non-interesting bases when emitting construction vtables.
llvm-svn: 98177
|
2010-03-10 19:15:26 +00:00 |
|
Anders Carlsson
|
804cf51dcf
|
Don't accidentally mark some functions in construction vtables as unused. Also land the test for a previous checkin, now that it's correct.
llvm-svn: 98139
|
2010-03-10 06:51:42 +00:00 |
|
Anders Carlsson
|
02b99d6b7c
|
When building construction vtables, we need to check if a primary virtual base is actually a primary virtual base in the layout class.
llvm-svn: 98131
|
2010-03-10 03:02:01 +00:00 |
|
Anders Carlsson
|
ca82a4fdba
|
Improve vcall offset handling in construction vtables. With this we layout the construction vtables from the ABI examples correctly.
llvm-svn: 98127
|
2010-03-10 02:33:41 +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
|
5b0057c05b
|
Fix a bug with base offset merging that Devang noticed.
llvm-svn: 97641
|
2010-03-03 04:58:02 +00:00 |
|
Anders Carlsson
|
93b1b49082
|
Simplify code.
llvm-svn: 97551
|
2010-03-02 05:40:45 +00:00 |
|
Anders Carlsson
|
6f1f002651
|
Rename BaseOffset to Offset and make it signed in preparation of more construction vtable work.
llvm-svn: 97546
|
2010-03-02 03:44:06 +00:00 |
|
Anders Carlsson
|
5b79c31471
|
Remove debug output.
llvm-svn: 97407
|
2010-02-28 18:39:30 +00:00 |
|
Anders Carlsson
|
7162ab947b
|
Handle unused functions in construction vtables correctly.
llvm-svn: 97406
|
2010-02-28 18:37:33 +00:00 |
|
Anders Carlsson
|
8b37bb7c48
|
When laying out vtables for virtual bases in construction vtables, we need to check if the vtable is a primary base in the layout class.
llvm-svn: 97402
|
2010-02-28 18:08:38 +00:00 |
|
Anders Carlsson
|
e3385f566b
|
More improvements to construction vtables; we know handle vbase offsets correctly (I hope).
llvm-svn: 97361
|
2010-02-28 01:43:58 +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
|
31f595f5ef
|
Add new function.
llvm-svn: 97353
|
2010-02-28 00:10:58 +00:00 |
|
Anders Carlsson
|
f98b47d3b9
|
Fix to dumpLayout; we want to be able to dump address points even if the vtable doesn't have any methods.
llvm-svn: 97350
|
2010-02-27 23:58:01 +00:00 |
|
Anders Carlsson
|
c3f92a16f2
|
Add a simple construction vtable test.
llvm-svn: 97344
|
2010-02-27 21:09:00 +00:00 |
|
Anders Carlsson
|
9391375d95
|
Start fleshing out construction vtable support.
llvm-svn: 97342
|
2010-02-27 20:39:05 +00:00 |
|
Anders Carlsson
|
603d7d1910
|
Enable the new vtable layout code for vtables that aren't construction 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).
llvm-svn: 97341
|
2010-02-27 20:02:53 +00:00 |
|
Anders Carlsson
|
9f19aaaa3a
|
Move ComputeThisAdjustmentBaseOffset to VtableBuilder.
llvm-svn: 97340
|
2010-02-27 19:57:44 +00:00 |
|
Anders Carlsson
|
b26c2abac7
|
Make sure to insert the primary base in the set :)
llvm-svn: 97339
|
2010-02-27 19:51:04 +00:00 |
|
Anders Carlsson
|
e02a926a1c
|
Use the real base offset when calculating vbase offsets.
llvm-svn: 97338
|
2010-02-27 19:21:58 +00:00 |
|
Anders Carlsson
|
4d0729a7cc
|
Figured out why the test was failing, this will hopefully fix it.
llvm-svn: 97336
|
2010-02-27 19:00:53 +00:00 |
|
Anders Carlsson
|
2b381bbb5c
|
Don't add this adjustments for pure virtual member functions.
llvm-svn: 97334
|
2010-02-27 18:16:50 +00:00 |
|
Anders Carlsson
|
01d3c7da60
|
We want to store method info for unused functions.
llvm-svn: 97333
|
2010-02-27 18:09:40 +00:00 |
|
Anders Carlsson
|
4068798cbc
|
Finish up the changes to this adjustments.
llvm-svn: 97328
|
2010-02-27 16:52:49 +00:00 |
|
Anders Carlsson
|
d46ed89d79
|
Stub out more of the 'this' pointer adjustment fixes I've been planning. Start using a set vector for primary bases so they will be ordered.
llvm-svn: 97326
|
2010-02-27 16:18:19 +00:00 |
|
Anders Carlsson
|
d2025417ef
|
Fix another vtable layout bug; we weren't looking hard enough for overriden functions when determining if an overrider will ever be used.
llvm-svn: 97306
|
2010-02-27 06:38:03 +00:00 |
|
Anders Carlsson
|
d69b2f93ea
|
Handle vcall offset sharing between destructors.
llvm-svn: 97304
|
2010-02-27 04:12:52 +00:00 |
|
Anders Carlsson
|
b08aaa3e10
|
Fix a bug where we were generating an unnecessary vtable for a virtual base that's already a primary virtual base.
llvm-svn: 97303
|
2010-02-27 04:05:52 +00:00 |
|
John McCall
|
43c6ffbeec
|
Sundry fixes to the new vtable builder.
llvm-svn: 97258
|
2010-02-26 20:22:44 +00:00 |
|
Anders Carlsson
|
9e3b3a3bbe
|
Improve vcall offset handling.
llvm-svn: 97174
|
2010-02-25 22:23:13 +00:00 |
|
Anders Carlsson
|
ed7d0e8be8
|
Fux a bug where we were trying to add overriders for non-virtual bases of virtual bases more than once.
llvm-svn: 97173
|
2010-02-25 22:18:35 +00:00 |
|