summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/README.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a memset loop that LoopIdiomRecognize doesn't recognize.Anders Carlsson2011-01-231-0/+8
| | | | llvm-svn: 124082
* add a noteChris Lattner2011-01-181-0/+20
| | | | llvm-svn: 123752
* Update README.txt to remove the DAE enhancement.Anders Carlsson2011-01-161-23/+0
| | | | llvm-svn: 123597
* add some commentaryChris Lattner2011-01-161-1/+14
| | | | llvm-svn: 123572
* Simplify a README.txt entry significantly to expose the core issue.Chandler Carruth2011-01-161-28/+26
| | | | llvm-svn: 123556
* typoChris Lattner2011-01-131-1/+1
| | | | llvm-svn: 123406
* memcpy + metadata = bliss :)Chris Lattner2011-01-131-0/+48
| | | | llvm-svn: 123405
* Teach constant folding to perform conversions from constant floatingChandler Carruth2011-01-111-55/+0
| | | | | | | | point values to their integer representation through the SSE intrinsic calls. This is the last part of a README.txt entry for which I have real world examples. llvm-svn: 123206
* Fix a random missed optimization by making InstCombine more aggressive when ↵Owen Anderson2011-01-111-15/+0
| | | | | | | | determining which bits are demanded by a comparison against a constant. llvm-svn: 123203
* +0.0 vs -0.0 differences can be handled by looking at the user of theChris Lattner2011-01-101-3/+19
| | | | | | operation in some cases. llvm-svn: 123190
* expand on a noteChris Lattner2011-01-101-4/+9
| | | | llvm-svn: 123145
* typoChris Lattner2011-01-091-1/+1
| | | | llvm-svn: 123142
* xref a PR #Chris Lattner2011-01-091-22/+2
| | | | llvm-svn: 123141
* Add a note about the inability to model FP -> int conversions whichChandler Carruth2011-01-091-0/+55
| | | | | | | | perform rounding other than truncation in the IR. Common C code for this turns into really an LLVM intrinsic call that blocks a lot of further optimizations. llvm-svn: 123135
* Add a note about a missed FP optimization.Chandler Carruth2011-01-091-0/+24
| | | | llvm-svn: 123126
* Another missed memset in std::vector initialization.Chandler Carruth2011-01-091-0/+19
| | | | llvm-svn: 123116
* Fix a cut-paste-o so that the sample code is correct for my last note.Chandler Carruth2011-01-091-2/+6
| | | | | | | Also, switch to a more clear 'sink' function with its declaration to avoid any confusion about 'g'. Thanks for the suggestion Frits. llvm-svn: 123113
* Another missed optimization of trivial vector code.Chandler Carruth2011-01-091-0/+33
| | | | llvm-svn: 123112
* Add a note about vector's size-constructor producing dead stores.Chandler Carruth2011-01-091-0/+55
| | | | llvm-svn: 123111
* Add a note about a missed memset optimization from std::fill.Chandler Carruth2011-01-091-0/+30
| | | | llvm-svn: 123103
* Revert 122959, it needs more thought. Add it back to README.txt with ↵Benjamin Kramer2011-01-071-0/+22
| | | | | | additional notes. llvm-svn: 123030
* With Benjamin's recent amazing patches, we should be able to do even better ↵Chris Lattner2011-01-061-0/+13
| | | | | | things :) llvm-svn: 122978
* Add a note from llvmdev, this time with more info.Benjamin Kramer2011-01-061-0/+26
| | | | llvm-svn: 122966
* EarlyCSE does this now (and GVN always did it).Benjamin Kramer2011-01-061-11/+0
| | | | llvm-svn: 122960
* InstCombine: If we call llvm.objectsize on a malloc call we can replace it ↵Benjamin Kramer2011-01-061-23/+0
| | | | | | with the size passed to malloc. llvm-svn: 122959
* add a note about object size from drystone, add a poorly optimized loop from ↵Chris Lattner2011-01-061-0/+79
| | | | | | 179.art. llvm-svn: 122954
* add a trivial instcombine missed in DhrystoneChris Lattner2011-01-061-0/+37
| | | | llvm-svn: 122953
* update a bunch of entries.Chris Lattner2011-01-021-137/+19
| | | | llvm-svn: 122700
* Allow loop-idiom to run on multiple BB loops, but still only scan the loop Chris Lattner2011-01-021-8/+0
| | | | | | | | | | | | | | | | | | header for now for memset/memcpy opportunities. It turns out that loop-rotate is successfully rotating loops, but *DOESN'T MERGE THE BLOCKS*, turning "for loops" into 2 basic block loops that loop-idiom was ignoring. With this fix, we form many *many* more memcpy and memsets than before, including on the "history" loops in the viterbi benchmark, which look like this: for (j=0; j<MAX_history; ++j) { history_new[i][j+1] = history[2*i][j]; } Transforming these loops into memcpy's speeds up the viterbi benchmark from 11.98s to 3.55s on my machine. Woo. llvm-svn: 122685
* a missed __builtin_object_size case.Chris Lattner2011-01-011-0/+17
| | | | llvm-svn: 122676
* various updates.Chris Lattner2011-01-011-31/+29
| | | | llvm-svn: 122675
* Revert commit 122654 at the request of Chris, who reckons that instsimplifyDuncan Sands2011-01-011-0/+11
| | | | | | is the wrong hammer for this nail, and is probably right. llvm-svn: 122661
* Fix a README item by having InstructionSimplify do a mild form of valueDuncan Sands2011-01-011-11/+0
| | | | | | | | | | | numbering, in which it considers (for example) "%a = add i32 %x, %y" and "%b = add i32 %x, %y" to be equal because the operands are equal and the result of the instructions only depends on the values of the operands. This has almost no effect (it removes 4 instructions from gcc-as-one-file), and perhaps slows down compilation: I measured a 0.4% slowdown on the large gcc-as-one-file testcase, but it wasn't statistically significant. llvm-svn: 122654
* add a note from llvmdevChris Lattner2010-12-281-0/+11
| | | | llvm-svn: 122603
* Remove/fix invalid README entries. The well thought out strcpy function ↵Benjamin Kramer2010-12-231-21/+2
| | | | | | doesn't return a pointer to the end of the string. llvm-svn: 122496
* recognize an unsigned add with overflow idiom into uadd.Chris Lattner2010-12-191-20/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This resolves a README entry and technically resolves PR4916, but we still get poor code for the testcase in that PR because GVN isn't CSE'ing uadd with add, filed as PR8817. Previously we got: _test7: ## @test7 addq %rsi, %rdi cmpq %rdi, %rsi movl $42, %eax cmovaq %rsi, %rax ret Now we get: _test7: ## @test7 addq %rsi, %rdi movl $42, %eax cmovbq %rsi, %rax ret llvm-svn: 122182
* add another overflow idiomChris Lattner2010-12-151-0/+8
| | | | llvm-svn: 121854
* add a note about overflow idiom recognition.Chris Lattner2010-12-151-1/+19
| | | | llvm-svn: 121853
* add a shift/imul missed optimizationChris Lattner2010-12-151-0/+45
| | | | llvm-svn: 121850
* add a note about a SPEC hack that gcc mainline does.Chris Lattner2010-12-151-0/+23
| | | | llvm-svn: 121849
* add a noteChris Lattner2010-12-131-0/+36
| | | | llvm-svn: 121656
* Generalize the and-icmp-select instcombine further by allowing selects of ↵Benjamin Kramer2010-12-111-12/+0
| | | | | | | | | | | the form (x & 2^n) ? 2^m+C : C we can offset both arms by C to get the "(x & 2^n) ? 2^m : 0" form, optimize the select to a shift and apply the offset afterwards. llvm-svn: 121609
* The srem -> urem transform is not safe for any divisor that's not a power of ↵Benjamin Kramer2010-11-231-2/+2
| | | | | | | | | | two. E.g. -5 % 5 is 0 with srem and 1 with urem. Also addresses Frits van Bommel's comments. llvm-svn: 120049
* InstCombine: Reduce "X shift (A srem B)" to "X shift (A urem B)" iff B is ↵Benjamin Kramer2010-11-231-10/+2
| | | | | | | | positive. This allows to transform the rem in "1 << ((int)x % 8);" to an and. llvm-svn: 120028
* InstCombine: Implement X - A*-B -> X + A*B.Benjamin Kramer2010-11-221-16/+0
| | | | llvm-svn: 119984
* Implement the "if (X == 6 || X == 4)" -> "if ((X|2) == 6)" optimization.Benjamin Kramer2010-11-221-10/+0
| | | | | | | This currently only catches the most basic case, a two-case switch, but can be extended later. llvm-svn: 119964
* add some random notes.Chris Lattner2010-11-211-2/+33
| | | | llvm-svn: 119925
* optimize:Chris Lattner2010-11-211-8/+0
| | | | | | | | | void a(int x) { if (((1<<x)&8)==0) b(); } into "x != 3", which occurs over 100 times in 403.gcc but in no other program in llvm-test. llvm-svn: 119922
* tail calls on x86 are implemented.Chris Lattner2010-11-211-16/+0
| | | | llvm-svn: 119920
* add a noteChris Lattner2010-11-111-0/+28
| | | | llvm-svn: 118806
OpenPOWER on IntegriCloud