summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGVtable.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Don't produce a vtable for a class if we have an explicit template ↵Rafael Espindola2010-04-031-2/+7
| | | | | | | | instantiation declaration and no key function. We will produce the vtable at the explicit template instantiation. Fixes PR6748 llvm-svn: 100266
* the big refactoring bits of PR3782.Rafael Espindola2010-03-301-2/+2
| | | | | | | | This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. llvm-svn: 99920
* Don't produce a vtable if we are just instantiating a method and theRafael Espindola2010-03-301-3/+12
| | | | | | | | class has no key function. Fix PR6738. llvm-svn: 99900
* Remove the old vtable layout code.Anders Carlsson2010-03-301-1158/+0
| | | | llvm-svn: 99869
* Remove UseNewVTableCode checks.Anders Carlsson2010-03-301-43/+6
| | | | llvm-svn: 99868
* Flip the switch and use the new vtable layout code for everything. I've ↵Anders Carlsson2010-03-301-1/+1
| | | | | | verified that this passes a self-host but I'll let the bots self host as well before removing the now dead code. llvm-svn: 99861
* Another vtable layout fix, making us match gcc better.Anders Carlsson2010-03-291-2/+9
| | | | llvm-svn: 99812
* Handle pure virtual member functions.Anders Carlsson2010-03-291-16/+33
| | | | llvm-svn: 99807
* More vtable work - it's not possible to use the new vtable code for ↵Anders Carlsson2010-03-291-22/+66
| | | | | | 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
* Only add thunks for the most derived class. This fixes some link errors I ↵Anders Carlsson2010-03-291-2/+3
| | | | | | was seeing in files generated by the vtable tester utility. llvm-svn: 99801
* Cleanup, no functionality change.Anders Carlsson2010-03-291-0/+13
| | | | llvm-svn: 99798
* Add the thunks needed by this vtable.Anders Carlsson2010-03-291-0/+11
| | | | llvm-svn: 99793
* Make sure to sort the vtable thunks by their vtable index :) With this we ↵Anders Carlsson2010-03-291-0/+3
| | | | | | now pass the test from http://www.codesourcery.com/public/cxx-abi/abi-examples.html#vtable-ctor successfully. llvm-svn: 99792
* Two bug fixes, we weren't updating the thunk index when creating the vtable ↵Anders Carlsson2010-03-291-0/+2
| | | | | | initializer and we weren't storing the secondary virtual pointer indices. llvm-svn: 99786
* Give thunks the same linkage as their original methods.Anders Carlsson2010-03-271-8/+1
| | | | llvm-svn: 99729
* Use the new vtable layout code for construction vtables.Anders Carlsson2010-03-261-10/+0
| | | | llvm-svn: 99606
* Way more VTT builder cleanup.Anders Carlsson2010-03-261-33/+6
| | | | llvm-svn: 99604
* Start cleaning up the VTT builder to make it work more like the VTable builder.Anders Carlsson2010-03-261-1/+1
| | | | llvm-svn: 99581
* Don't add address points for virtual primary bases that aren't primary bases ↵Anders Carlsson2010-03-251-13/+25
| | | | | | in the complete class. llvm-svn: 99555
* Use the new vtable layout code for construction vtables.Anders Carlsson2010-03-251-3/+95
| | | | llvm-svn: 99516
* When -fdump-vtable-layouts is specified, construction vtable initializers ↵Anders Carlsson2010-03-251-18/+127
| | | | | | 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
* More address point map shuffling.Anders Carlsson2010-03-251-7/+29
| | | | llvm-svn: 99462
* Shuffle some code around; this will make it easier to use the new layout ↵Anders Carlsson2010-03-251-8/+43
| | | | | | code for address points. llvm-svn: 99461
* More vtable improvements. We now compute and keep track of all vtable ↵Anders Carlsson2010-03-241-24/+78
| | | | | | related information which avoids computing the same vtable layout over and over. llvm-svn: 99403
* Use getNamedGlobal instead of getGlobalVariable. (Fixes self-host).Anders Carlsson2010-03-241-2/+2
| | | | llvm-svn: 99385
* More vtable work; preparations for moving over to the new vtable layout code ↵Anders Carlsson2010-03-241-10/+31
| | | | | | (finally). llvm-svn: 99381
* Remove old thunks code.Anders Carlsson2010-03-241-28/+0
| | | | llvm-svn: 99374
* Flip the switch and use the new vtable layout code for thunks by default. ↵Anders Carlsson2010-03-241-7/+0
| | | | | | Add a thunks.cpp test. llvm-svn: 99367
* Add CodeGenFunction::GenerateThunk and implement it.Anders Carlsson2010-03-241-0/+176
| | | | llvm-svn: 99365
* Minor cleanup.Anders Carlsson2010-03-241-10/+8
| | | | llvm-svn: 99364
* revert 99311. Looks like it broke darwin bootstrap.Rafael Espindola2010-03-231-11/+1
| | | | llvm-svn: 99317
* Avoid producing implicit methods when we have a explicit template instantiationRafael Espindola2010-03-231-1/+11
| | | | | | declaration. llvm-svn: 99311
* More work on thunks - don't assert if there's a variable with the same name ↵Anders Carlsson2010-03-231-1/+33
| | | | | | as the thunk already. llvm-svn: 99303
* More thunks scaffolding.Anders Carlsson2010-03-231-1/+19
| | | | llvm-svn: 99294
* More work on thunks.Anders Carlsson2010-03-231-1/+55
| | | | llvm-svn: 99287
* Move ThunkInfo as well.Anders Carlsson2010-03-231-28/+0
| | | | llvm-svn: 99280
* Move ReturnAdjustment and ThisAdjustment out into CGVtable.hAnders Carlsson2010-03-231-64/+2
| | | | llvm-svn: 99279
* Baby steps towards making thunks be emitted from the new vtable layout code.Anders Carlsson2010-03-231-9/+15
| | | | llvm-svn: 99254
* Some renames.Anders Carlsson2010-03-231-19/+18
| | | | llvm-svn: 99253
* Always emit associated thunks when emitting the function itself. Remove ↵Anders Carlsson2010-03-231-22/+4
| | | | | | getVtableAddressPoint, it's not used. llvm-svn: 99252
* Rename MaybeEmitVtable to EmitVTableRelatedData in preparation for making it ↵Anders Carlsson2010-03-231-1/+1
| | | | | | emit thunks as well. llvm-svn: 99251
* Rename CGVtableInfo to CodeGenVTables in preparation of adding another ↵Anders Carlsson2010-03-231-33/+34
| | | | | | VTableInfo class. llvm-svn: 99250
* More work on thunks; almost there now.Anders Carlsson2010-03-221-9/+34
| | | | llvm-svn: 99199
* Add less than operators to ThisAdjustment, ReturnAdjustment and ThunkInfo. ↵Anders Carlsson2010-03-221-1/+29
| | | | | | Sort the thunks before dumping them. llvm-svn: 99184
* Improve dumping of thunks.Anders Carlsson2010-03-221-3/+16
| | | | llvm-svn: 99181
* We want to add all thunks, not just 'this' adjustment thunks.Anders Carlsson2010-03-221-2/+25
| | | | llvm-svn: 99177
* AddThunk should take a const reference.Anders Carlsson2010-03-211-2/+2
| | | | llvm-svn: 99140
* When dumping vtables, also dump the thunks.Anders Carlsson2010-03-181-9/+66
| | | | llvm-svn: 98799
* More work on thunks.Anders Carlsson2010-03-171-2/+39
| | | | llvm-svn: 98765
* More this adjustment simplification.Anders Carlsson2010-03-121-56/+59
| | | | llvm-svn: 98333
OpenPOWER on IntegriCloud