Commit Graph

289 Commits

Author SHA1 Message Date
Chris Lattner 8377c02308 Add a note.
llvm-svn: 53535
2008-07-14 00:19:59 +00:00
Nick Lewycky 035fe6f716 Peer through sext/zext when looking for not(cmp).
llvm-svn: 51819
2008-05-31 19:01:33 +00:00
Nick Lewycky 69a51cbd6d Yay us! Every one of these examples turns into icmp/zext/ret.
llvm-svn: 51818
2008-05-31 18:20:26 +00:00
Chris Lattner 1bafa6c886 trip count computation deficiency
llvm-svn: 51222
2008-05-17 15:37:38 +00:00
Nick Lewycky 9fb8908457 Moved from PR1570.
llvm-svn: 48965
2008-03-30 19:07:11 +00:00
Chris Lattner fd5fe2a83d add a note.
llvm-svn: 48583
2008-03-20 04:46:13 +00:00
Chris Lattner af8d3c6699 various rotate fun.
llvm-svn: 48438
2008-03-17 01:47:51 +00:00
Chris Lattner d51372aa96 another random note
llvm-svn: 47831
2008-03-02 19:29:42 +00:00
Chris Lattner 647c6642e7 Move pr717 to here.
llvm-svn: 47803
2008-03-02 02:51:40 +00:00
Chris Lattner 643dce1146 add a note
llvm-svn: 47720
2008-02-28 17:21:27 +00:00
Chris Lattner 765be8874d target-indep codegen memcpy lowering issue.
llvm-svn: 47705
2008-02-28 05:34:27 +00:00
Chris Lattner 6bb6a55f01 upgrade some tests.
llvm-svn: 47280
2008-02-18 18:46:39 +00:00
Nate Begeman 0fddc34485 Add a note
llvm-svn: 47279
2008-02-18 18:39:23 +00:00
Chris Lattner afb514a7b4 clarify a note
llvm-svn: 45914
2008-01-12 18:58:46 +00:00
Chris Lattner 87b0c13104 add some notes.
llvm-svn: 45854
2008-01-11 06:17:47 +00:00
Chris Lattner 1d07b65add add a note
llvm-svn: 45837
2008-01-10 18:25:41 +00:00
Chris Lattner 45e5032b1d add a note
llvm-svn: 45766
2008-01-09 00:17:57 +00:00
Chris Lattner 730d088be1 possible switch lowering improvement.
llvm-svn: 45720
2008-01-07 21:38:14 +00:00
Chris Lattner d7857eafd0 add a note
llvm-svn: 45698
2008-01-07 07:46:23 +00:00
Chris Lattner 4e6cbb2fe2 this is done.
llvm-svn: 45408
2007-12-29 19:38:02 +00:00
Chris Lattner 7cafd92aa9 expand note.
llvm-svn: 45393
2007-12-29 01:05:01 +00:00
Chris Lattner 9d53b611d1 add a note.
llvm-svn: 45388
2007-12-28 22:30:05 +00:00
Chris Lattner 180f0e9044 add a note
llvm-svn: 45377
2007-12-28 04:42:05 +00:00
Christopher Lamb 8b09a464b4 Fold certain additions through selects (and their compares) so as to eliminate subtractions. This code is often produced by the SMAX expansion in SCEV.
This implements test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll

llvm-svn: 45158
2007-12-18 09:34:41 +00:00
Chris Lattner 52a9e40789 add a missed case.
llvm-svn: 45141
2007-12-18 01:19:18 +00:00
Chris Lattner 7c709a5d08 implement a readme entry, compiling the code into:
_foo:
	movl	$12, %eax
	andl	4(%esp), %eax
	movl	_array(%eax), %eax
	ret

instead of:

_foo:
	movl	4(%esp), %eax
	shrl	$2, %eax
	andl	$3, %eax
	movl	_array(,%eax,4), %eax
	ret

As it turns out, this triggers all the time, in a wide variety of
situations, for example, I see diffs like this in various programs:

-       movl    8(%eax), %eax
-       shll    $2, %eax
-       andl    $1020, %eax
-       movl    (%esi,%eax), %eax
+       movzbl  8(%eax), %eax
+       movl    (%esi,%eax,4), %eax


-       shll    $2, %edx
-       andl    $1020, %edx
-       movl    (%edi,%edx), %edx
+       andl    $255, %edx
+       movl    (%edi,%edx,4), %edx

Unfortunately, I also see stuff like this, which can be fixed in the
X86 backend:

-       andl    $85, %ebx
-       addl    _bit_count(,%ebx,4), %ebp
+       shll    $2, %ebx
+       andl    $340, %ebx
+       addl    _bit_count(%ebx), %ebp

llvm-svn: 44656
2007-12-06 07:33:36 +00:00
Chris Lattner 5e224c32f4 add a note
llvm-svn: 44638
2007-12-05 23:05:06 +00:00
Chris Lattner 4d4e9cdb62 add a note
llvm-svn: 42573
2007-10-03 06:10:59 +00:00
Chris Lattner 9958b82733 add a note
llvm-svn: 36811
2007-05-05 22:44:08 +00:00
Chris Lattner 2cca31f77f the mason example is implemented. Move some examples out of llvm/test,
upgrade the syntax of some other examples.

llvm-svn: 36806
2007-05-05 22:29:06 +00:00
Chris Lattner 43cab75914 add a bad case evan though of.
llvm-svn: 35296
2007-03-24 06:01:32 +00:00
Chris Lattner 9b3e2b4ad9 minor updates
llvm-svn: 35143
2007-03-18 22:41:33 +00:00
Nick Lewycky f764441977 This is implemented. We now generate:
entry:
        icmp ugt i32 %x, 4              ; <i1>:0 [#uses=1]
        br i1 %0, label %cond_true, label %cond_false

cond_true:              ; preds = %entry
        %tmp1 = tail call i32 (...)* @bar( i32 12 )             ; <i32> [#uses=0]
        ret void

cond_false:             ; preds = %entry
        switch i32 %x, label %cond_true15 [
                 i32 4, label %cond_true3
                 i32 3, label %cond_true7
                 i32 2, label %cond_true11
                 i32 0, label %cond_false17
        ]

...

llvm-svn: 35142
2007-03-18 14:37:20 +00:00
Reid Spencer 09575bac2e For PR1195:
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.

llvm-svn: 34300
2007-02-15 03:39:18 +00:00
Chris Lattner 09a32e42bd add a note
llvm-svn: 34249
2007-02-13 21:44:43 +00:00
Chris Lattner 89e5813312 add a note: we need whole-function selectiondags :)
llvm-svn: 33252
2007-01-16 06:39:48 +00:00
Reid Spencer 266e42b312 For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.

llvm-svn: 32751
2006-12-23 06:05:41 +00:00
Chris Lattner feeb9c7be5 Evan implemented the machineinstr improvements.
The rot example works if the type is cast to ubyte.

Move sroa examples together and upgrade them to HEAD syntax.

llvm-svn: 32423
2006-12-11 00:44:03 +00:00
Chris Lattner 4d475f6e6e add a note
llvm-svn: 32347
2006-12-08 02:01:32 +00:00
Chris Lattner 0d67dde00a done
llvm-svn: 32013
2006-11-29 07:21:46 +00:00
Chris Lattner 6dc22332bf add a note
llvm-svn: 31719
2006-11-14 01:57:53 +00:00
Nick Lewycky 0df2ada9d4 Cute example from Chris Lattner.
llvm-svn: 31696
2006-11-13 00:23:28 +00:00
Chris Lattner 4e03cb1945 add a note about viterbi
llvm-svn: 31612
2006-11-10 00:23:26 +00:00
Chris Lattner 7e885005ba add a note
llvm-svn: 31477
2006-11-06 21:26:49 +00:00
Chris Lattner 2048373e71 add a note
llvm-svn: 31429
2006-11-03 22:27:39 +00:00
Reid Spencer 7e80b0b31e For PR950:
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.

llvm-svn: 31195
2006-10-26 06:15:43 +00:00
Chris Lattner f054003ba7 new bad case
llvm-svn: 31156
2006-10-24 16:12:47 +00:00
Chris Lattner 3cbd1604f8 add a note about a general improvement to the code generator
llvm-svn: 30642
2006-09-28 06:01:17 +00:00
Chris Lattner f11327daab more notes
llvm-svn: 30598
2006-09-25 17:12:14 +00:00
Chris Lattner b94df039c0 item done
llvm-svn: 30483
2006-09-19 06:19:03 +00:00
Chris Lattner 4a13d3b391 This is closer to what we really want.
llvm-svn: 30451
2006-09-18 04:54:35 +00:00
Chris Lattner f7e3478745 add a note noticed through source inspection
llvm-svn: 30418
2006-09-16 23:57:51 +00:00
Chris Lattner c9dc375d3e add a nate note
llvm-svn: 30399
2006-09-15 20:31:36 +00:00
Chris Lattner ac40a81253 We compile this into:
_swap_16:
        slwi r2, r3, 24
        rlwimi r2, r3, 8, 8, 15
        srwi r3, r2, 16
        blr

now.

llvm-svn: 29864
2006-08-24 23:06:02 +00:00
Chris Lattner fb6bc15d5d Owen implemented this.
llvm-svn: 29863
2006-08-24 23:03:33 +00:00
Chris Lattner a5d4587296 Add a note
llvm-svn: 28572
2006-05-30 21:29:15 +00:00
Chris Lattner 80b0a70911 Add a note
llvm-svn: 28424
2006-05-21 03:57:07 +00:00
Chris Lattner 29d7bded45 Add a note
llvm-svn: 28402
2006-05-19 21:01:38 +00:00
Chris Lattner 240f846495 Move a target-independent note out of the X86 readme.
llvm-svn: 28398
2006-05-19 20:45:08 +00:00
Chris Lattner 4cda95b32f add a note
llvm-svn: 28384
2006-05-18 18:26:13 +00:00
Chris Lattner d1c3a067ee add a note
llvm-svn: 27907
2006-04-20 18:49:28 +00:00
Chris Lattner 7a29cf3c7f New note
llvm-svn: 27337
2006-04-02 01:47:20 +00:00
Chris Lattner 0baebb11bf ADd a note
llvm-svn: 27324
2006-04-01 04:08:29 +00:00
Evan Cheng dc1161cf53 An entry about packed type alignments.
llvm-svn: 27321
2006-03-31 22:35:14 +00:00
Chris Lattner 0affd76182 add a note
llvm-svn: 27076
2006-03-24 19:59:17 +00:00
Chris Lattner e24cf9dfa1 add a note
llvm-svn: 26950
2006-03-22 07:33:46 +00:00
Evan Cheng 0a03f789c2 Remind us of exit value substitution
llvm-svn: 26862
2006-03-19 06:09:23 +00:00
Nate Begeman bb01d4f272 Remove BRTWOWAY*
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.

llvm-svn: 26814
2006-03-17 01:40:33 +00:00
Chris Lattner 5271a1f9b5 add a note
llvm-svn: 26762
2006-03-14 19:31:24 +00:00
Chris Lattner 30402be175 transformation implemented
llvm-svn: 26754
2006-03-14 06:57:34 +00:00
Evan Cheng 60f495100a Update
llvm-svn: 26741
2006-03-13 23:19:10 +00:00
Chris Lattner fe4c7fb7ae remove two implemented items
llvm-svn: 26728
2006-03-13 06:52:22 +00:00
Chris Lattner 4e56b686f1 add an example
llvm-svn: 26709
2006-03-11 20:20:40 +00:00
Chris Lattner 003f633036 add a note
llvm-svn: 26708
2006-03-11 20:17:08 +00:00
Chris Lattner f136299635 add a note
llvm-svn: 26661
2006-03-09 20:13:21 +00:00
Chris Lattner bccb0e07f0 add a note
llvm-svn: 26583
2006-03-07 02:46:26 +00:00
Chris Lattner 5032c32d30 add a note
llvm-svn: 26549
2006-03-05 20:00:08 +00:00
Chris Lattner 8d8b4cf63d Implemented.
llvm-svn: 26536
2006-03-04 23:33:44 +00:00
Chris Lattner c9a318d8fa Add a note
llvm-svn: 26523
2006-03-04 08:44:51 +00:00
Chris Lattner e43e5c0697 add a note
llvm-svn: 26513
2006-03-04 01:19:34 +00:00
Chris Lattner 9067500e2e add a note
llvm-svn: 26472
2006-03-02 22:34:38 +00:00
Chris Lattner 0a08f44704 missed optzn
llvm-svn: 26299
2006-02-21 18:29:44 +00:00
Evan Cheng 76a7775ce1 Remove an entry.
llvm-svn: 26222
2006-02-15 22:14:34 +00:00
Chris Lattner 6afb5587da new test
llvm-svn: 26217
2006-02-15 19:52:06 +00:00
Chris Lattner 8467e5d6af This xform isn't safe
llvm-svn: 26007
2006-02-05 08:26:16 +00:00
Chris Lattner 4b8fcc229f some stuff is done
llvm-svn: 26004
2006-02-05 07:54:37 +00:00
Chris Lattner d079dbb9b0 another case Nate came up with
llvm-svn: 25943
2006-02-03 22:05:41 +00:00
Chris Lattner 277462e20f add a note
llvm-svn: 25942
2006-02-03 21:25:23 +00:00
Chris Lattner d1aaee03ce target independent notes
llvm-svn: 25929
2006-02-03 06:21:43 +00:00