summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Allow vector shifts (shl,lshr,ashr) on SPU.Kalle Raiskila2011-03-041-48/+16
| | | | | | | | | There was a previous implementation with patterns that would have matched e.g. shl <v4i32> <i32>, but this is not valid LLVM IR so they never were selected. llvm-svn: 126998
* Allow load from constant on SPU.Kalle Raiskila2011-03-041-1/+6
| | | | | | A 'load <4 x i32>* null' crashes llc before this fix. llvm-svn: 126995
* Fold "icmp pred (srem X, Y), Y" like we do for urem. Handle signed comparisonsNick Lewycky2011-03-041-1/+30
| | | | | | | in the urem case, though not the other way around. This is enough to get #3 from PR9343! llvm-svn: 126991
* Teach instruction simplify to use constant ranges to solve problems of the formNick Lewycky2011-03-041-37/+61
| | | | | | | | | "icmp pred %X, CI" and a number of examples where "%X = binop %Y, CI2". Some of these cases (div and rem) used to make it through opt -O2, but the others are probably now making code elsewhere redundant (probably instcombine). llvm-svn: 126988
* DenseMap<uintptr_t,...> doesn't allow all values as keys.Jakob Stoklund Olesen2011-03-041-0/+2
| | | | | | | Avoid colliding with the sentinels, hopefully unbreaking llvm-gcc-x86_64-linux-selfhost. llvm-svn: 126982
* Minor pre-RA-sched fixes and cleanup.Andrew Trick2011-03-041-7/+15
| | | | | | | | Fix the PendingQueue, then disable it because it's not required for the current schedulers' heuristics. Fix the logic for the unused list-ilp scheduler. llvm-svn: 126981
* Add ArrayRef variant.Devang Patel2011-03-041-0/+3
| | | | llvm-svn: 126978
* Precompute block frequencies, pow() isn't free.Jakob Stoklund Olesen2011-03-043-17/+15
| | | | llvm-svn: 126975
* Use an IndexedMap instead of a DenseMap for the live-out cache.Jakob Stoklund Olesen2011-03-042-48/+47
| | | | | | | This speeds up updateSSA() so it only accounts for 5% of the live range splitting time. llvm-svn: 126972
* PR9377: Handle x86 str with register operand in a way consistent with gas.Eli Friedman2011-03-041-4/+9
| | | | llvm-svn: 126970
* There are times when the landing pad won't have a call to 'eh.selector' inBill Wendling2011-03-031-9/+23
| | | | | | | | | | | | | | it. It's been assumed up til now that it would be in its immediate successor. However, this isn't necessarily the case. It could be in one of its successor's successors. Modify the code to more thoroughly check for an 'eh.selector' call in successors. It only looks at a successor if we get there as a result of an unconditional branch. Testcase ObjC/exceptions-4.m in r126968. llvm-svn: 126969
* PR8053: Fix encoding of S bit in some ARM instructions.Bob Wilson2011-03-031-1/+1
| | | | | | Patch by Zonr Chang! llvm-svn: 126967
* Revert r123908; the code in question is completely untested and wrong.Eli Friedman2011-03-032-28/+0
| | | | llvm-svn: 126964
* Bug#9033: For the ELF assembler output, always quote the section name.Joerg Sonnenberger2011-03-031-2/+16
| | | | llvm-svn: 126963
* Fix typo.Devang Patel2011-03-031-1/+1
| | | | llvm-svn: 126962
* Fix thinko in previous check-in.Devang Patel2011-03-031-1/+3
| | | | | | Add comment. llvm-svn: 126959
* llvm::Function argument count is not a good indicator of how many arugments ↵Devang Patel2011-03-031-1/+4
| | | | | | does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function. llvm-svn: 126957
* Allow a target to choose whether to prefer the scavenger emergency spill slotJim Grosbach2011-03-031-7/+6
| | | | | | be next to the frame pointer or the stack pointer. llvm-svn: 126956
* Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that ↵Jan Sjödin2011-03-034-480/+662
| | | | | | other components can use them. llvm-svn: 126942
* Fix typo in comment.Richard Osborne2011-03-031-1/+1
| | | | llvm-svn: 126941
* Optimize fprintf -> iprintf if there are no floating point argumentsRichard Osborne2011-03-032-8/+29
| | | | | | and siprintf is available on the target. llvm-svn: 126940
* PTX: Fix Emacs renaming a symbolJustin Holewinski2011-03-031-1/+1
| | | | llvm-svn: 126938
* Optimize sprintf -> siprintf if there are no floating point argumentsRichard Osborne2011-03-032-10/+32
| | | | | | and siprintf is available on the target. llvm-svn: 126937
* PTX: Fix a couple of lint violationsJustin Holewinski2011-03-034-4/+8
| | | | llvm-svn: 126936
* Optimize printf -> iprintf if there are no floating point argumentsRichard Osborne2011-03-032-11/+46
| | | | | | | and iprintf is available on the target. Currently iprintf is only marked as being available on the XCore. llvm-svn: 126935
* Use X86_thiscall calling convention for Win64 as well.Tilmann Scheller2011-03-035-8/+1
| | | | llvm-svn: 126934
* PR9352: Always emit a relocation for weak symbols. Not emitting relocationsEli Friedman2011-03-031-0/+19
| | | | | | | | for calls to weak symbols with a definition has the appearance of working with LLVM-generated code because weak symbol definitions are put in their own sections. llvm-svn: 126933
* Add a readme entry for the redundant movw issue for pr9370.Bob Wilson2011-03-031-0/+24
| | | | llvm-svn: 126930
* Renumber slot indexes uniformly instead of spacing according to the number ↵Jakob Stoklund Olesen2011-03-031-15/+1
| | | | | | | | | | of defs. There are probably much larger speedups to be had by renumbering locally instead of looping over the whole function. For now, the greedy register allocator is 25% faster. llvm-svn: 126926
* Represent sentinel slot indexes with a null pointer.Jakob Stoklund Olesen2011-03-031-31/+0
| | | | | | | | This is much faster than using a pointer to a ManagedStatic object accessed with a function call. The greedy register allocator is 5% faster overall just from the SlotIndex default constructor savings. llvm-svn: 126925
* Avoid comparing invalid slot indexes, and assert that it doesn't happen.Jakob Stoklund Olesen2011-03-032-5/+3
| | | | | | | The SlotIndex created by the default construction does not represent a position in the function, and it doesn't make sense to compare it to other indexes. llvm-svn: 126924
* Avoid comparing invalid slot indexes.Jakob Stoklund Olesen2011-03-031-4/+6
| | | | llvm-svn: 126922
* Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the ↵Jakob Stoklund Olesen2011-03-033-50/+42
| | | | | | | | | time. This speeds up the greedy register allocator by 15%. DenseMap is not as fast as one might hope. llvm-svn: 126921
* pr9367: Add missing predicated BLX instructions.Bob Wilson2011-03-032-3/+23
| | | | | | Patch by Jyun-Yan You, with some minor adjustments and a testcase from me. llvm-svn: 126915
* Change the SplitEditor interface to a single instance can be shared for ↵Jakob Stoklund Olesen2011-03-033-41/+51
| | | | | | multiple splits. llvm-svn: 126912
* Only run the updateSSA loop when we have actually seen multiple values.Jakob Stoklund Olesen2011-03-031-3/+23
| | | | | | When only a single value has been seen, new PHIDefs are never needed. llvm-svn: 126911
* Fix PHI handling in LiveIntervals::shrinkToUses().Jakob Stoklund Olesen2011-03-031-1/+1
| | | | | | | | | We need to wait until we meet a PHIDef in its defining block before resurrecting PHIKills in the predecessors. This should unbreak the llvm-gcc-build-x86_64-darwin10-x-mingw32-x-armeabi bot. llvm-svn: 126905
* Avoid exponential blow-up when printing DAGs.Bob Wilson2011-03-021-2/+5
| | | | | | | | | | | | | David Greene changed CannotYetSelect() to print the full DAG including multiple copies of operands reached through different paths in the DAG. Unfortunately this blows up exponentially in some cases. The depth limit of 100 is way too high to prevent this -- I'm seeing a message string of 150MB with a depth of only 40 in one particularly bad case, even though the DAG has less than 200 nodes. Part of the problem is that the printing code is following chain operands, so if you fail to select an operation with a chain, the printer will follow all the chained operations back to the entry node. llvm-svn: 126899
* Turn the Edit member into a pointer so it can change dynamically.Jakob Stoklund Olesen2011-03-022-44/+44
| | | | | | No functional change. llvm-svn: 126898
* Fixes an assertion failure while disassembling ARM rsbs reg/reg form.Kevin Enderby2011-03-021-0/+13
| | | | | | Patch by Ted Kremenek! llvm-svn: 126895
* Transfer simply defined values directly without recomputing liveness and SSA.Jakob Stoklund Olesen2011-03-023-29/+75
| | | | | | | | Values that map to a single new value in a new interval after splitting don't need new PHIDefs, and if the parent value was never rematerialized the live range will be the same. llvm-svn: 126894
* Extract a method. No functional change.Jakob Stoklund Olesen2011-03-022-27/+28
| | | | llvm-svn: 126893
* Fixing a bug when printing fpu text to object file. Patch by Mans Rullgard.Renato Golin2011-03-021-1/+1
| | | | llvm-svn: 126882
* Remove DIFactory. Patch by Devang.Duncan Sands2011-03-021-663/+12
| | | | llvm-svn: 126871
* Can't introduce floating-point immediate constants after legalization.Stuart Hastings2011-03-021-2/+6
| | | | | | Radar 9056407. llvm-svn: 126864
* Add Win64 thiscall calling convention.Tilmann Scheller2011-03-025-0/+14
| | | | llvm-svn: 126862
* [AVX] Fix mask predicates for 256-bit UNPCKLPS/D and implementDavid Greene2011-03-024-24/+78
| | | | | | | | | | missing patterns for them. Add a SIMD test subdirectory to hold tests for SIMD instruction selection correctness and quality. ' llvm-svn: 126845
* ptx: fix lint and compiler warningsChe-Liang Chiou2011-03-023-9/+13
| | | | llvm-svn: 126838
* Add 64-bit addressing to PTX backendChe-Liang Chiou2011-03-029-44/+121
| | | | | | | | | | - Add '64bit' sub-target option. - Select 32-bit/64-bit loads/stores based on '64bit' option. - Fix function parameter order. Patch by Justin Holewinski llvm-svn: 126837
* Add a special streamer to libLTO that just records symbols definitions andRafael Espindola2011-03-022-8/+7
| | | | | | | | | | | uses. The result produced by the streamer is used to give the linker more accurate information and to add to llvm.compiler.used. The second improvement removes the need for the user to add __attribute__((used)) to functions only used in inline asm. The first one lets us build firefox with LTO on Darwin :-) llvm-svn: 126830
OpenPOWER on IntegriCloud