summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* zap an extra line that Eli noticed!Chris Lattner2010-03-281-1/+0
| | | | llvm-svn: 99770
* Properly quote the quotes :) during cmdline construction on Windows.Anton Korobeynikov2010-03-281-6/+28
| | | | | | | | | Otherwise, e.g. in the invocation like clang -DFOO=\"bar\" FOO macro got the bar value, not "bar". Patch by Alexander Esilevich! llvm-svn: 99763
* Fix use-of-uninitialized value when RWX memory can't be allocated (PR6701).Torok Edwin2010-03-281-1/+1
| | | | | | | | | | | | | SELinux doesn't allow 'execmem', returning MAP_FAILED and 'Permission denied' for mmap or RWX memory. In this case AllocateRWX was returning a MemoryBlock with uninitialized fields, which sometimes caused crashes. This patch initializes MemoryBlock fields to 0, so that the RWX-failure check works. It doesn't fix the SELinux 'execmem' issues though (the JIT will not work when SELinux is in enforcing mode). llvm-svn: 99762
* improve type checking of SDNode operand count. This rejects all casesChris Lattner2010-03-282-8/+10
| | | | | | | where an incorrect number of operands is provided to an sdnode instead of just a few cases. llvm-svn: 99761
* fix a type contradition: XCoreISD::RETSP has one argument, not zero.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99760
* finally remove the immAllOnesV_bc/immAllZerosV_bc patternsChris Lattner2010-03-283-9/+1
| | | | | | | | | | and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) llvm-svn: 99759
* remove a pattern with no testcase that doesn't appear to be Chris Lattner2010-03-281-2/+0
| | | | | | matchable: it seems like it would always constant fold. llvm-svn: 99758
* fix integer negates to use the proper type for the zero vectors,Chris Lattner2010-03-281-11/+14
| | | | | | | this also depends on the new "bitconvert dropping" behavior just added to tblgen. llvm-svn: 99757
* teach tblgen to allow patterns like (add (i32 (bitconvert (i32 GPR))), 4), Chris Lattner2010-03-282-4/+44
| | | | | | | | | transforming it into (add (i32 GPR), 4). This allows us to write type generic multi patterns and have tblgen automatically drop the bitconvert in the case when the types align. This allows us to fold an extra load in the changed testcase. llvm-svn: 99756
* fix a typo, bitconvert from node to itself isn't valid.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99755
OpenPOWER on IntegriCloud