aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGVtable.cpp
AgeCommit message (Collapse)Author
2009-12-04Eliminate submethods vector.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90562 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Eliminate the inner loop in VtableBuilder::OverrideMethod.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Make sure that overridden method decls are always canonical.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90542 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Fix regression in vtable improvements.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Rename method to something easier to search for.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90536 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04More work in preparation of getting rid of the submethods loop.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90535 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Remove an unused member variable.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90534 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Add a way to get the index of a method. Assert that we have the same index ↵Anders Carlsson
for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Add a premature optimization.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90532 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Add the method directly to the vtable.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Get rid of the PureVirtualMethods map.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Move handling of pure virtual methods to AppendMethods (and rename it to ↵Anders Carlsson
AppendMethodsToVtable). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Move covariant thunk handling to AppendMethods too.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90528 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Move 'this' pointer adjustment thunks to AppendMethods.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90527 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Factor appending methods to a vtable out into a separate function.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90525 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Get rid of the Thunks struct too.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90524 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Remove the CovariantThunk struct.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Remove the GlobalDecl from the Thunk as well.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90522 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Remove the GlobalDecl from the CovariantThunk struct, we can just look it up ↵Anders Carlsson
in the Methods table now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Start populating the VtableMembers structure.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04Add a data structure for efficient storing of vtable methods. Not used yet.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90515 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Eli, I copied my code from this code... Let's fix the souce of the bad idea!Mike Stump
Thanks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90458 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Attempt to fix the MSVC build.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90427 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Add support for thunking dtors. Oh why does this make my head hurt?Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90409 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Revert r90402 for now, virt.cpp is failing.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Use Eli's ComputeThunkAdjustment for calculating the return adjustment.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90402 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Remove the index from the Thunk struct.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90400 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Change the Thunks map to use the vtable index as the key.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Add the global decl to the Thunk struct.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90398 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Remove unused struct fields.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Delay computing the return adjustments for covariant thunks until when they ↵Anders Carlsson
are added to the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90396 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03No need to create the covariant thunk in both places now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Whoops, forgot to save :)Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Remove the index field from the CovariantThunk structure.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90392 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Change the CovariantThunk map to use the vtable index as its key.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90391 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Store a GlobalDecl in the return adjustment.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Do not include the 'this' pointer adjustment in the covariant return type. ↵Anders Carlsson
Instead, store it in the (now oddly named) Thunks map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03Move VtableBuilder::OverrideMethod out of line in preparation of other ↵Anders Carlsson
changes to it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-02Turn off for now.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90339 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-02Put the Builder classes into the anonymous namespace.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90335 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-02Change rtti/Rtti to RTTI, as it is an acronym.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Have ASTRecordLayout keep track of the key function, in preparation of ↵Anders Carlsson
fixing a synthetic ctor/dtor bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90168 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Fix an assert.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90149 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-30Minor cleanup (no functionality change).Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90105 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-28Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90044 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-28We always want to create a virtual function pointer entry if the path from ↵Anders Carlsson
the derived return value to the base overridden return value contains a virtual base class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-27Move the vtable builder to an anonymous namespace.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90021 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-27Don't build the entire vtable when all we want is the index of a virtual method.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90017 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Lazily create the __cxa_pure_virtual reference.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89965 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-26Use the new CovariantThunkAdjustment in the vtable builder. Anders Carlsson
Make the pure virtual methods map a set instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89961 91177308-0d34-0410-b5e6-96231b3b80d8