1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
Commit Graph

267 Commits

Author SHA1 Message Date
Dan Gohman
6824bfc554 Don't narrow the load and store in a load+twiddle+store sequence unless
there are clearly no stores between the load and the store. This fixes
this miscompile reported as PR7833.

This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is
safe, but awkward to prove safe. Move it to X86's README.txt.

llvm-svn: 112861
2010-09-02 21:18:42 +00:00
Eli Friedman
6ccafafe61 A couple of small missed optimizations.
llvm-svn: 112411
2010-08-29 05:07:40 +00:00
Eric Christopher
4924d5fb93 Custom lower the memory barrier instructions and add support
for lowering without sse2.  Add a couple of new testcases.

Fixes a few libgomp tests and latent bugs.  Remove a few todos.

llvm-svn: 109078
2010-07-22 02:48:34 +00:00
Eli Friedman
fbfaab45a3 Remove a fixed item, update a couple partially-fixed items.
llvm-svn: 105375
2010-06-03 01:01:48 +00:00
Dan Gohman
0d46f3e9e6 This is now done.
llvm-svn: 97450
2010-03-01 17:43:57 +00:00
Eli Friedman
63e676c905 A few missed optimizations; the last one could have a significant impact on
code with lots of bitfields.

llvm-svn: 95809
2010-02-10 21:26:04 +00:00
Chris Lattner
72a06499b3 this is an SSE-specific issue.
llvm-svn: 93373
2010-01-13 23:29:11 +00:00
Chris Lattner
0aa093dbdf X86 if conversion + tail merging issues from PR6032.
llvm-svn: 93372
2010-01-13 23:28:40 +00:00
Dan Gohman
f5f090c2c5 Remove some README.txt entries which are now implemented.
llvm-svn: 92511
2010-01-04 20:55:05 +00:00
Eli Friedman
50c8e9154f A couple minor README updates.
llvm-svn: 91823
2009-12-21 08:03:16 +00:00
Bill Wendling
cb9a2f20d5 Move and clarify note.
llvm-svn: 85334
2009-10-27 22:48:31 +00:00
Bill Wendling
2aaf2ae6e1 Note corrected.
llvm-svn: 85332
2009-10-27 22:43:24 +00:00
Bill Wendling
3e4dd02a1e Modify note.
llvm-svn: 85331
2009-10-27 22:40:45 +00:00
Bill Wendling
3edf1d3854 Add a note.
llvm-svn: 85329
2009-10-27 22:34:43 +00:00
Evan Cheng
20a1862b23 Add a note.
llvm-svn: 77584
2009-07-30 08:56:19 +00:00
Chris Lattner
7d0212b87d remove a bogus note.
llvm-svn: 74509
2009-06-30 05:22:31 +00:00
Chris Lattner
903e3854e0 add a note
llvm-svn: 74508
2009-06-30 04:20:46 +00:00
Chris Lattner
001e9a5857 another xform that is target-independent (should be done in instcombine).
llvm-svn: 73472
2009-06-16 06:15:56 +00:00
Chris Lattner
b38b0eb4e0 I think instcombine should unconditionally do this xform.
llvm-svn: 73471
2009-06-16 06:11:35 +00:00
Eli Friedman
74e9f6c070 Misc x86 README updates: remove a couple of already-fixed issues,
add a few suggestions from looking at some assembly code.

llvm-svn: 73210
2009-06-11 23:07:04 +00:00
Chris Lattner
636bd70540 add some late optimizations that GCC does. It thinks these are a win
even on Core2, not just AMD processors which was a surprise to me.

llvm-svn: 72396
2009-05-25 20:28:19 +00:00
Chris Lattner
60098b3e93 we should eventually add -march=atom and the new atom movbe instruction.
llvm-svn: 72387
2009-05-25 16:34:44 +00:00
Chris Lattner
26a971c4ec Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))"
related transformations out of target-specific dag combine into the
ARM backend.  These were added by Evan in r37685 with no testcases
and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll).

Add some simple X86-specific (for now) DAG combines that turn things
like cond ? 8 : 0  -> (zext(cond) << 3).  This happens frequently
with the recently added cp constant select optimization, but is a
very general xform.  For example, we now compile the second example
in const-select.ll to:

_test:
        movsd   LCPI2_0, %xmm0
        ucomisd 8(%esp), %xmm0
        seta    %al
        movzbl  %al, %eax
        movl    4(%esp), %ecx
        movsbl  (%ecx,%eax,4), %eax
        ret

instead of:

_test:
        movl    4(%esp), %eax
        leal    4(%eax), %ecx
        movsd   LCPI2_0, %xmm0
        ucomisd 8(%esp), %xmm0
        cmovbe  %eax, %ecx
        movsbl  (%ecx), %eax
        ret

This passes multisource and dejagnu.

llvm-svn: 66779
2009-03-12 06:52:53 +00:00
Dan Gohman
e15d8f03c3 Add more information to the EFLAGS note.
llvm-svn: 66515
2009-03-10 00:26:23 +00:00
Dan Gohman
995c3dd344 Add a note about EFLAGS optimization.
llvm-svn: 66508
2009-03-09 23:47:02 +00:00
Chris Lattner
3342ba06d4 add a note.
llvm-svn: 66360
2009-03-08 03:04:26 +00:00
Chris Lattner
8ace06fdda add a note.
llvm-svn: 66359
2009-03-08 01:54:43 +00:00
Chris Lattner
3b67310686 add a horrible note
llvm-svn: 64719
2009-02-17 01:16:14 +00:00
Dan Gohman
856736a187 MachineLICM now handles these cases.
llvm-svn: 64620
2009-02-15 23:24:52 +00:00
Chris Lattner
a50a554333 add a note.
llvm-svn: 64093
2009-02-08 20:44:19 +00:00
Chris Lattner
00104cf8f8 add a note
llvm-svn: 60632
2008-12-06 22:49:05 +00:00
Eli Friedman
3b8efd50d7 A couple small cleanups, plus a new potential optimization.
llvm-svn: 60286
2008-11-30 07:52:27 +00:00
Evan Cheng
82b17df2b0 Add a README entry.
llvm-svn: 59052
2008-11-11 17:35:52 +00:00
Torok Edwin
e0ecce06a0 move the note to the correct README
llvm-svn: 58104
2008-10-24 19:23:07 +00:00
Dan Gohman
69ac9cc00f This is done.
llvm-svn: 57733
2008-10-17 21:38:40 +00:00
Evan Cheng
65d29b2553 This is done.
llvm-svn: 55348
2008-08-26 01:13:44 +00:00
Nate Begeman
64f8f7f6bb Remove unnecessary readme entry
llvm-svn: 53722
2008-07-17 17:21:14 +00:00
Dan Gohman
9941a2dab3 Add a note about a potential PIC optimization.
llvm-svn: 52663
2008-06-24 00:53:07 +00:00
Chris Lattner
9f4f2444ea add a micro optzn.
llvm-svn: 50681
2008-05-05 23:19:45 +00:00
Chris Lattner
3117d33f74 Add an ugly note.
llvm-svn: 50029
2008-04-21 04:46:30 +00:00
Evan Cheng
3b54c5fa08 New entry.
llvm-svn: 48912
2008-03-28 07:07:06 +00:00
Evan Cheng
14c5714421 Remove duplicated entries.
llvm-svn: 48714
2008-03-23 22:56:07 +00:00
Christopher Lamb
958b0494c3 Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491.
llvm-svn: 48542
2008-03-19 08:30:06 +00:00
Chris Lattner
c60749aa4c Add an issue that is preventing instcombine from doing a simplification.
llvm-svn: 48356
2008-03-14 06:00:19 +00:00
Chris Lattner
b12697f8bb move these to the appropriate file
llvm-svn: 48054
2008-03-08 22:28:45 +00:00
Gabor Greif
92e00c1e50 some more spelling changes
llvm-svn: 47996
2008-03-06 10:51:21 +00:00
Chris Lattner
299977b5ca Evan implemented these.
llvm-svn: 47828
2008-03-02 18:05:14 +00:00
Chris Lattner
33b1f491a0 Add a random not very important note
llvm-svn: 47704
2008-02-28 04:52:59 +00:00
Eli Friedman
912a1d48e1 A few more small things I've run into.
llvm-svn: 47702
2008-02-28 00:21:43 +00:00
Evan Cheng
08f11a37d7 This is done.
llvm-svn: 47688
2008-02-27 20:26:32 +00:00