Anders Carlsson
|
b78d093fcc
|
Let the VTT builder pretend that getVtable returns a pointer to the vtable and not to the vtable address point.
llvm-svn: 90672
|
2009-12-05 20:58:49 +00:00 |
|
Anders Carlsson
|
78c2898e02
|
Change getCtorVtable to not return the address point offset, but the global variable.
llvm-svn: 90671
|
2009-12-05 20:42:53 +00:00 |
|
Anders Carlsson
|
21bbc1e705
|
Factor vtable related GlobalVariable creation out into a separate function. Add vtable linkage test.
llvm-svn: 90667
|
2009-12-05 17:04:47 +00:00 |
|
Eli Friedman
|
6c08ce7706
|
Skip actually generating the vtable unless we are defining it. This avoids
the side-effects of generating the methods in the vtable (including PR5676).
llvm-svn: 90635
|
2009-12-05 01:05:03 +00:00 |
|
Benjamin Kramer
|
62ab616666
|
Return bool as a bool instead of a uint64_t.
llvm-svn: 90610
|
2009-12-04 22:45:27 +00:00 |
|
Anders Carlsson
|
bad80eb792
|
Rename 'Class' to 'MostDerivedClass'
llvm-svn: 90573
|
2009-12-04 18:36:22 +00:00 |
|
Anders Carlsson
|
19462d681a
|
Store the vtable components in a SmallVector.
llvm-svn: 90571
|
2009-12-04 16:24:46 +00:00 |
|
Anders Carlsson
|
4e1d75f3ed
|
Use a different ConstantArray::get.
llvm-svn: 90570
|
2009-12-04 16:22:27 +00:00 |
|
Anders Carlsson
|
472404f8a6
|
Move the vtable vector directly into the Vtable builder.
llvm-svn: 90569
|
2009-12-04 16:19:30 +00:00 |
|
Anders Carlsson
|
7bb7076b51
|
Change getIndex to return false if the index wasn't found. Avoids an extra hash lookup.
llvm-svn: 90568
|
2009-12-04 15:49:02 +00:00 |
|
Eli Friedman
|
65d87222b2
|
Minor cleanup; no functionality change.
llvm-svn: 90565
|
2009-12-04 08:52:11 +00:00 |
|
Eli Friedman
|
81fb0d2656
|
Remove unused argument.
llvm-svn: 90563
|
2009-12-04 08:40:51 +00:00 |
|
Eli Friedman
|
c07aebee90
|
Eliminate submethods vector.
llvm-svn: 90562
|
2009-12-04 08:36:58 +00:00 |
|
Eli Friedman
|
3d2e9de337
|
Eliminate the inner loop in VtableBuilder::OverrideMethod.
llvm-svn: 90561
|
2009-12-04 08:34:14 +00:00 |
|
Anders Carlsson
|
f3935b4d4b
|
Make sure that overridden method decls are always canonical.
llvm-svn: 90542
|
2009-12-04 05:51:56 +00:00 |
|
Eli Friedman
|
94bc2dade6
|
Fix regression in vtable improvements.
llvm-svn: 90540
|
2009-12-04 04:30:03 +00:00 |
|
Eli Friedman
|
b05eb963e0
|
Rename method to something easier to search for.
llvm-svn: 90536
|
2009-12-04 03:54:56 +00:00 |
|
Anders Carlsson
|
a93e980fbc
|
More work in preparation of getting rid of the submethods loop.
llvm-svn: 90535
|
2009-12-04 03:52:52 +00:00 |
|
Anders Carlsson
|
f2f31f4371
|
Remove an unused member variable.
llvm-svn: 90534
|
2009-12-04 03:46:21 +00:00 |
|
Anders Carlsson
|
e609636e0d
|
Add a way to get the index of a method. Assert that we have the same index for now.
llvm-svn: 90533
|
2009-12-04 03:41:37 +00:00 |
|
Anders Carlsson
|
b07567c315
|
Add a premature optimization.
llvm-svn: 90532
|
2009-12-04 03:07:26 +00:00 |
|
Anders Carlsson
|
50f147460a
|
Add the method directly to the vtable.
llvm-svn: 90531
|
2009-12-04 03:06:03 +00:00 |
|
Anders Carlsson
|
79bce40365
|
Get rid of the PureVirtualMethods map.
llvm-svn: 90530
|
2009-12-04 02:58:12 +00:00 |
|
Anders Carlsson
|
ddf42c8d80
|
Move handling of pure virtual methods to AppendMethods (and rename it to AppendMethodsToVtable).
llvm-svn: 90529
|
2009-12-04 02:56:03 +00:00 |
|
Anders Carlsson
|
5b3ea9bf1c
|
Move covariant thunk handling to AppendMethods too.
llvm-svn: 90528
|
2009-12-04 02:52:22 +00:00 |
|
Anders Carlsson
|
86809cd8ab
|
Move 'this' pointer adjustment thunks to AppendMethods.
llvm-svn: 90527
|
2009-12-04 02:43:50 +00:00 |
|
Anders Carlsson
|
495634e5ac
|
Factor appending methods to a vtable out into a separate function.
llvm-svn: 90525
|
2009-12-04 02:39:04 +00:00 |
|
Anders Carlsson
|
4c837d258f
|
Get rid of the Thunks struct too.
llvm-svn: 90524
|
2009-12-04 02:26:15 +00:00 |
|
Anders Carlsson
|
c521f952d6
|
Remove the CovariantThunk struct.
llvm-svn: 90523
|
2009-12-04 02:22:02 +00:00 |
|
Anders Carlsson
|
597c776c41
|
Remove the GlobalDecl from the Thunk as well.
llvm-svn: 90522
|
2009-12-04 02:14:12 +00:00 |
|
Anders Carlsson
|
8c889abc1a
|
Remove the GlobalDecl from the CovariantThunk struct, we can just look it up in the Methods table now.
llvm-svn: 90519
|
2009-12-04 02:11:21 +00:00 |
|
Anders Carlsson
|
cdf1898086
|
Start populating the VtableMembers structure.
llvm-svn: 90517
|
2009-12-04 02:08:24 +00:00 |
|
Anders Carlsson
|
a84b6e85f0
|
Add a data structure for efficient storing of vtable methods. Not used yet.
llvm-svn: 90515
|
2009-12-04 02:01:07 +00:00 |
|
Mike Stump
|
cdeb800152
|
Eli, I copied my code from this code... Let's fix the souce of the bad idea!
Thanks.
llvm-svn: 90458
|
2009-12-03 16:55:20 +00:00 |
|
Anders Carlsson
|
c6089fda20
|
Attempt to fix the MSVC build.
llvm-svn: 90427
|
2009-12-03 07:30:40 +00:00 |
|
Mike Stump
|
e2d4a2c3a8
|
Add support for thunking dtors. Oh why does this make my head hurt?
llvm-svn: 90409
|
2009-12-03 03:47:56 +00:00 |
|
Anders Carlsson
|
dabfa3cd8b
|
Revert r90402 for now, virt.cpp is failing.
llvm-svn: 90406
|
2009-12-03 03:28:24 +00:00 |
|
Anders Carlsson
|
e692f7c309
|
Use Eli's ComputeThunkAdjustment for calculating the return adjustment.
llvm-svn: 90402
|
2009-12-03 03:15:31 +00:00 |
|
Anders Carlsson
|
80bc5d5d04
|
Remove the index from the Thunk struct.
llvm-svn: 90400
|
2009-12-03 02:41:55 +00:00 |
|
Anders Carlsson
|
29a1f751b3
|
Change the Thunks map to use the vtable index as the key.
llvm-svn: 90399
|
2009-12-03 02:39:59 +00:00 |
|
Anders Carlsson
|
0e1e7632bc
|
Add the global decl to the Thunk struct.
llvm-svn: 90398
|
2009-12-03 02:36:40 +00:00 |
|
Anders Carlsson
|
9f98f7a9e5
|
Remove unused struct fields.
llvm-svn: 90397
|
2009-12-03 02:34:59 +00:00 |
|
Anders Carlsson
|
657f139abe
|
Delay computing the return adjustments for covariant thunks until when they are added to the vtable.
llvm-svn: 90396
|
2009-12-03 02:32:59 +00:00 |
|
Anders Carlsson
|
2ca285fc5c
|
No need to create the covariant thunk in both places now.
llvm-svn: 90394
|
2009-12-03 02:22:59 +00:00 |
|
Anders Carlsson
|
1157e8fc68
|
Whoops, forgot to save :)
llvm-svn: 90393
|
2009-12-03 02:20:26 +00:00 |
|
Anders Carlsson
|
06c14b6f65
|
Remove the index field from the CovariantThunk structure.
llvm-svn: 90392
|
2009-12-03 02:16:14 +00:00 |
|
Anders Carlsson
|
73295f96c5
|
Change the CovariantThunk map to use the vtable index as its key.
llvm-svn: 90391
|
2009-12-03 02:12:03 +00:00 |
|
Anders Carlsson
|
c38b40a709
|
Store a GlobalDecl in the return adjustment.
llvm-svn: 90387
|
2009-12-03 02:03:29 +00:00 |
|
Anders Carlsson
|
2bd3c0fa34
|
Do not include the 'this' pointer adjustment in the covariant return type. Instead, store it in the (now oddly named) Thunks map.
llvm-svn: 90386
|
2009-12-03 01:58:20 +00:00 |
|
Anders Carlsson
|
ca1bf68cfb
|
Move VtableBuilder::OverrideMethod out of line in preparation of other changes to it. No functionality change.
llvm-svn: 90382
|
2009-12-03 01:54:02 +00:00 |
|