summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* emit signed integer subtractions as 'sub nsw', patch byChris Lattner2010-03-291-0/+5
| | | | | | Anton Yartsev! llvm-svn: 99817
* 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-292-22/+78
| | | | | | 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
* Flip the switch to always get vtables from the VTT when necessary, I've ↵Anders Carlsson2010-03-291-7/+3
| | | | | | verified that clang bootstraps with this. llvm-svn: 99800
* Use the newly added function in the VTT builder.Anders Carlsson2010-03-291-3/+2
| | | | llvm-svn: 99799
* Cleanup, no functionality change.Anders Carlsson2010-03-293-6/+18
| | | | 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
* Fix another thinko, so that flags don't depend on previous bases.Anders Carlsson2010-03-291-5/+7
| | | | llvm-svn: 99791
* When generating base ctors/dtors, we need to lookup virtual bases using the ↵Anders Carlsson2010-03-291-4/+15
| | | | | | vtable. llvm-svn: 99790
* Fix thinko.Anders Carlsson2010-03-291-1/+1
| | | | llvm-svn: 99788
* Use construction vtables when needed. This is currently guarded by ↵Anders Carlsson2010-03-291-5/+29
| | | | | | -fdump-vtable-layouts since it doesn't work 100% yet :) llvm-svn: 99787
* Two bug fixes, we weren't updating the thunk index when creating the vtable ↵Anders Carlsson2010-03-292-0/+9
| | | | | | initializer and we weren't storing the secondary virtual pointer indices. llvm-svn: 99786
* Reapply r99775 with a fix for a silly bug - we were setting the vtable ↵Anders Carlsson2010-03-282-51/+64
| | | | | | pointer for all bases, even those without a vtable pointer :) llvm-svn: 99777
* Looks like I broke self-host again :(.Anders Carlsson2010-03-282-59/+50
| | | | llvm-svn: 99776
* More improvements to setting the vtable pointer. We now no longer set the ↵Anders Carlsson2010-03-282-50/+59
| | | | | | vtable pointer for non-virtual primary bases. We also do a pre-order traversal of the class hierarchy; this is necessary in order to get the right vbase offset offsets in base ctors/dtors. llvm-svn: 99775
* Factor vtable pointer setting code out into a separate function.Anders Carlsson2010-03-282-22/+45
| | | | llvm-svn: 99773
* Give thunks the same linkage as their original methods.Anders Carlsson2010-03-271-8/+1
| | | | llvm-svn: 99729
* When given the magic class __cxxabiv1::__fundamental_type_info, produceRafael Espindola2010-03-273-6/+72
| | | | | | | | the typeinfo for the fundamental types. Fixes PR6685. llvm-svn: 99701
* When mapping restrict to noalias, look for 'restrict' on the parameter variableJohn McCall2010-03-271-2/+6
| | | | | | | instead of the canonical parameter type (which has correctly dropped all such direct qualifiers). Fixes PR6695. llvm-svn: 99688
* Implement new mangling for vectors.Nick Lewycky2010-03-261-2/+7
| | | | llvm-svn: 99616
* Revert r99612 and see if it fixes self-host.Anders Carlsson2010-03-261-7/+0
| | | | llvm-svn: 99614
* Don't initialize virtual pointers for primary bases, they've already been ↵Anders Carlsson2010-03-261-0/+7
| | | | | | initialized. llvm-svn: 99612
* Simplify InitializeVtablePtrs in preparation of making it work with ↵Anders Carlsson2010-03-262-57/+59
| | | | | | construction vtables. llvm-svn: 99609
* Add and implement CodeGenVTables::getSecondaryVirtualPointerIndex (not used ↵Anders Carlsson2010-03-262-11/+68
| | | | | | yet). llvm-svn: 99608
* Use the new vtable layout code for construction vtables.Anders Carlsson2010-03-261-10/+0
| | | | llvm-svn: 99606
* More cleanup.Anders Carlsson2010-03-261-178/+47
| | | | llvm-svn: 99605
* Way more VTT builder cleanup.Anders Carlsson2010-03-263-65/+206
| | | | llvm-svn: 99604
* More VTT builder cleanup.Anders Carlsson2010-03-261-22/+31
| | | | llvm-svn: 99588
* More VTT cleanup.Anders Carlsson2010-03-261-22/+43
| | | | llvm-svn: 99586
* Start cleaning up the VTT builder to make it work more like the VTable builder.Anders Carlsson2010-03-262-52/+67
| | | | llvm-svn: 99581
* Remove some VTT builder arguments that were always zero.Anders Carlsson2010-03-261-20/+13
| | | | llvm-svn: 99576
* Fix a code gen. bug involving generation of getter methodFariborz Jahanian2010-03-251-1/+6
| | | | | | from properties of _Complex type. (radar 7351147). llvm-svn: 99558
* 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
* Remove support for nand atomic builtins. They are inconsistently implemented inDaniel Dunbar2010-03-251-17/+0
| | | | | | | gcc, and the common expectation seems to be that they are unused. If and when someone cares we can add them back with well documented demantics. llvm-svn: 99522
* 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-252-18/+145
| | | | | | 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-253-10/+36
| | | | llvm-svn: 99462
* Shuffle some code around; this will make it easier to use the new layout ↵Anders Carlsson2010-03-253-57/+57
| | | | | | code for address points. llvm-svn: 99461
* When returning from a function that has a reference return type, useDouglas Gregor2010-03-241-1/+2
| | | | | | | | EmitReferenceBindingToExpr() rather than assuming we have an lvalue. This is just the lowest hanging fruit for PR6024, which still requires a bit of work. llvm-svn: 99447
* Change two class forward declarations to struct forward declarations, ↵Douglas Gregor2010-03-241-2/+2
| | | | | | silencing a Clang warning llvm-svn: 99405
* Code gen for multi-dimensional dynamic allocations.Fariborz Jahanian2010-03-241-6/+37
| | | | | | Fixes PR6641. llvm-svn: 99404
* More vtable improvements. We now compute and keep track of all vtable ↵Anders Carlsson2010-03-242-28/+97
| | | | | | 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-244-6/+6
| | | | llvm-svn: 99385
* More vtable work; preparations for moving over to the new vtable layout code ↵Anders Carlsson2010-03-245-20/+48
| | | | | | (finally). llvm-svn: 99381
* Remove old thunks code.Anders Carlsson2010-03-245-339/+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-242-1/+179
| | | | llvm-svn: 99365
OpenPOWER on IntegriCloud