summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Be gentle to MSVC. C++ is hard, after all.Jakob Stoklund Olesen2010-03-301-2/+3
| | | | llvm-svn: 99855
* MC/Mach-O/x86_64: Support @GOTPCREL on symbols, even for non-PCrel relocations!Daniel Dunbar2010-03-292-20/+62
| | | | llvm-svn: 99853
* Re-add back in the slow way of determining of a clean-up should become aBill Wendling2010-03-291-0/+135
| | | | | | | catch-all. The "dominates" way won't catch all of the selectors which must be changed. llvm-svn: 99850
* Basic implementation of SSEDomainFix pass.Jakob Stoklund Olesen2010-03-293-57/+399
| | | | | | Cross-block inference is primitive and wrong, but the pass is working otherwise. llvm-svn: 99848
* A more general (and simpler!) implementation of r99671. It performs a similarBill Wendling2010-03-291-122/+59
| | | | | | | | | | | transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. llvm-svn: 99846
* Encode start location of debug value, communicated through DBG_VALUE machine ↵Devang Patel2010-03-292-15/+43
| | | | | | instruction, in a variable's DIE. llvm-svn: 99845
* move a function into a more logical place in the fileChris Lattner2010-03-291-22/+21
| | | | llvm-svn: 99842
* remove support for per-time peak memory tracking, thisChris Lattner2010-03-292-39/+4
| | | | | | | isn't used by anyone and is better exposed as a non-per-timer thing. Also, stop including System/Mutex.h in Timer.h llvm-svn: 99841
* Fix PR4975. Avoid referencing empty vector.Evan Cheng2010-03-292-2/+21
| | | | llvm-svn: 99840
* various timer fixes: move operator= out of line,Chris Lattner2010-03-292-47/+27
| | | | | | | | | eliminate the per-timer lock (timers should be externally locked if needed), the info-output-stream can never be dbgs(), so drop the check. Make some stuff private. llvm-svn: 99839
* Make isInt?? and isUint?? template specializations of the generic versions. ThisBenjamin Kramer2010-03-2910-61/+71
| | | | | | | makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. llvm-svn: 99838
* Pool allocate SDDbgValue nodes.Evan Cheng2010-03-293-11/+39
| | | | llvm-svn: 99836
* We'll never match these as instructions, just as intrinsics so removeEric Christopher2010-03-291-16/+10
| | | | | | the SDNodes. llvm-svn: 99835
* s/.../.Chris Lattner2010-03-291-7/+7
| | | | llvm-svn: 99834
* use RAII for ExceptionTimer tooChris Lattner2010-03-291-17/+3
| | | | llvm-svn: 99833
* 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
* 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
* 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
* 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
* 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 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
* Revert 99772.Devang Patel2010-03-286-46/+50
| | | | llvm-svn: 99778
* add a statistic for the # times isel has to backtrack.Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99774
* 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
* fix vnot matching to explicitly specify the type of theChris Lattner2010-03-281-10/+16
| | | | | | | | | input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. llvm-svn: 99754
* fix up vnot matching, eliminating a dead pattern, correcting a couple ofChris Lattner2010-03-281-6/+11
| | | | | | | patterns that would never match because of bitcast, and eliminating use of vnot_conv. llvm-svn: 99753
* add some nounwindsChris Lattner2010-03-281-12/+12
| | | | llvm-svn: 99752
* this takes an insane amount of time to run, disable it for now (PR6727)Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99751
* stop using vnot_convChris Lattner2010-03-281-3/+8
| | | | llvm-svn: 99750
* revert r99743, this is saying that the repmovs instructinos have anChris Lattner2010-03-281-2/+4
| | | | | | *input* of other type, which is the VT. llvm-svn: 99749
OpenPOWER on IntegriCloud