summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix a variety of issues were we'd start DebugTimer but Chris Lattner2010-03-291-40/+11
| | | | | | not stop it by using RAII. llvm-svn: 99832
* move code around and improve indentation, no functionality change.Chris Lattner2010-03-291-126/+124
| | | | llvm-svn: 99831
* Exit early from the simple form of Sema::RequireNonAbstractType(), forDouglas Gregor2010-03-291-0/+3
| | | | | | a 2.47% speedup in 403.gcc. llvm-svn: 99830
* When collecting virtual bases it's very important to use the canonical type ↵Anders Carlsson2010-03-292-3/+26
| | | | | | of the base class. Otherwise, we might add the same virtual base class twice if the virtual base is an instantiated template. Fixes PR6251. llvm-svn: 99829
* Remove FIXME comment.Ted Kremenek2010-03-291-1/+0
| | | | llvm-svn: 99828
* Remove a bunch of integer width predicate functions in favor of MathExtras.Benjamin Kramer2010-03-294-139/+11
| | | | | | | Most of these were unused, some of them were wrong and unused (isS16Constant<short>, isS10Constant<short>). llvm-svn: 99827
* some other notes.Chris Lattner2010-03-291-1/+2
| | | | llvm-svn: 99826
* apparently llvm 2.7 now has great armv4 support, fromChris Lattner2010-03-291-0/+3
| | | | | | John Tytgat llvm-svn: 99825
* update the vmkit blurbChris Lattner2010-03-291-4/+14
| | | | llvm-svn: 99824
* Change 'TypeCache' from being an std::map to a llvm::DenseMap. This reduces ↵Ted Kremenek2010-03-292-2/+2
| | | | | | | | codegen time on one .i file from 403.gcc by 0.5%. llvm-svn: 99823
* add support for -MQ flag to quote targets in dependency file,Chris Lattner2010-03-294-7/+80
| | | | | | PR6661, patch by Ori Avtalion! llvm-svn: 99821
* add tceChris Lattner2010-03-291-0/+21
| | | | llvm-svn: 99820
* From Kalle Raiskila:Chris Lattner2010-03-295-14/+175
| | | | | | | | "the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions: -in vararg handling, registers are marked to be live, to not confuse the register scavenger -function prologue and epilogue are not emitted, if the stack size is 16. 16 means it is empty - there is only the register scavenger emergency spill slot, which is not used as there is no stack." llvm-svn: 99819
* add support for zero initialized unions, patch by Tim Northover!Chris Lattner2010-03-292-1/+5
| | | | llvm-svn: 99818
* emit signed integer subtractions as 'sub nsw', patch byChris Lattner2010-03-291-0/+5
| | | | | | Anton Yartsev! llvm-svn: 99817
* Refactor code to push DILocation prcessing into DwarfDebug.cpp from ↵Devang Patel2010-03-296-50/+55
| | | | | | | | AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. llvm-svn: 99816
* add a note.Chris Lattner2010-03-291-0/+3
| | | | llvm-svn: 99815
* Another vtable layout fix, making us match gcc better.Anders Carlsson2010-03-292-2/+39
| | | | llvm-svn: 99812
* Support __attribute__((packed)) (along with other attributes) at theDouglas Gregor2010-03-296-6/+25
| | | | | | end of a struct/class/union in C++, from Justin Bogner! llvm-svn: 99811
* Handle pure virtual member functions.Anders Carlsson2010-03-291-16/+33
| | | | llvm-svn: 99807
* Fix a nasty bug in the virtual base computation which would lead to us ↵Anders Carlsson2010-03-292-49/+49
| | | | | | initializing virtual bases in the wrong order. llvm-svn: 99806
* Be a bit more consistent in using operator->Rafael Espindola2010-03-295-26/+25
| | | | | | | This patch moves some methods from QualType to Type and changes the users to use -> instead of . llvm-svn: 99805
* 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
* More magic.Anders Carlsson2010-03-291-4/+4
| | | | llvm-svn: 99803
* Sprinkle some sed dust over check-ztt to make it work with newer clang asm ↵Anders Carlsson2010-03-291-2/+2
| | | | | | output. (I am not a sed expert so this might be terribly inefficient :) llvm-svn: 99802
* 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
* Switch pattern sorting predicate from stable sort -> sort, itChris Lattner2010-03-291-3/+14
| | | | | | | | | | | | | | | | | | | | | doesn't need to be stable because the patterns are fully ordered. Add a first level sort predicate that orders patterns in this order: 1) scalar integer operations 2) scalar floating point 3) vector int 4) vector float. This is a trivial sort on their top level pattern type so it is nice and transitive. The benefit of doing this is that simple integer operations are much more common than insane vector things and isel was trying to match the big complex vector patterns before the simple ones because the complexity of the vector operations was much higher. Since they can't both match, it is best (for compile time) to try the simple integer ones first. This cuts down the # failed match attempts on real code by quite a bit, for example, this reduces backtracks on crafty (as a random example) from 228285 -> 188369. llvm-svn: 99797
* revert 99795, as mentioned, it is disabled anyway.Chris Lattner2010-03-291-123/+2
| | | | llvm-svn: 99796
* Check in a (disabled) failed attempt to improve the ordering of Chris Lattner2010-03-291-2/+123
| | | | | | | | | patterns within the generated matcher. This works great except that the sort fails because the relation defined isn't transitive. I have a much simpler solution coming next, but want to archive the code. llvm-svn: 99795
* print the complexity of the pattern being matched in theChris Lattner2010-03-294-59/+76
| | | | | | comment in the generated table. llvm-svn: 99794
* 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
* Add NVTBLFrm to represent A8.6.406 VTBL, VTBX Vector Table Lookup Instructions.Johnny Chen2010-03-292-8/+9
| | | | | | | | | | | | | These instructions use byte index in a control vector (M:Vm) to lookup byte values in a table and generate a new vector (D:Vd). The table is specified via a list of vectors, which can be: {Dn} {Dn D<n+1>} {Dn D<n+1> D<n+2>} {Dn D<n+1> D<n+2> D<n+3>} llvm-svn: 99789
* 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
* Make default arguments to getFunctionNoProtoType an all or nothing option ↵Rafael Espindola2010-03-281-2/+5
| | | | | | (as they already are in practise). llvm-svn: 99785
* Drop default arguments no one is using.Rafael Espindola2010-03-281-1/+1
| | | | llvm-svn: 99783
* Revert 99772.Devang Patel2010-03-286-46/+50
| | | | llvm-svn: 99778
* 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
* add a statistic for the # times isel has to backtrack.Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99774
* Factor vtable pointer setting code out into a separate function.Anders Carlsson2010-03-282-22/+45
| | | | llvm-svn: 99773
* Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.Devang Patel2010-03-286-50/+46
| | | | llvm-svn: 99772
OpenPOWER on IntegriCloud