Duraid Madina
64a52fc615
fix and cleanup constmul code a bit, this fixes mediabench/toast and
...
probably a couple of other tests.
llvm-svn: 21814
2005-05-09 13:18:34 +00:00
Chris Lattner
e91ac6383d
tweak test to accept the (good) code emitted by the pattern isel
...
llvm-svn: 21812
2005-05-09 05:54:27 +00:00
Chris Lattner
3094cec3c9
Wrap long lines, remove dead code that is now handled by legalize
...
llvm-svn: 21811
2005-05-09 05:40:26 +00:00
Chris Lattner
5d291fa443
Fix FP -> bool casts
...
llvm-svn: 21810
2005-05-09 05:33:18 +00:00
Chris Lattner
d3bb28d97a
implement and.ll:test33
...
llvm-svn: 21809
2005-05-09 04:58:36 +00:00
Chris Lattner
540a321165
New testcase
...
llvm-svn: 21808
2005-05-09 04:54:18 +00:00
Reid Spencer
5eba8c27f0
Add note to self to complete the testing of all intrinsic functions as
...
specified in the LangRef document.
llvm-svn: 21807
2005-05-09 04:47:32 +00:00
Chris Lattner
a1e633ef7a
Don't use the load/store instruction as the source pointer, use the pointer
...
being stored/loaded through!
llvm-svn: 21806
2005-05-09 04:28:51 +00:00
Chris Lattner
bfbefe0837
memoize all nodes, even null Value* nodes. Do not add two token chain outputs
...
llvm-svn: 21805
2005-05-09 04:14:13 +00:00
Chris Lattner
b85030373d
wrap long lines
...
llvm-svn: 21804
2005-05-09 04:08:33 +00:00
Chris Lattner
6ffae1a3ec
Print SrcValue nodes correctly
...
llvm-svn: 21803
2005-05-09 04:08:27 +00:00
Chris Lattner
65d61d9d44
Fix X86/2005-05-08-FPStackifierPHI.ll: ugly gross hack.
...
llvm-svn: 21801
2005-05-09 03:36:39 +00:00
Chris Lattner
86997483e2
New testcase that crashes the pattern isel
...
llvm-svn: 21800
2005-05-09 03:36:11 +00:00
Chris Lattner
a2edd7e449
Preserve CC's when linking modules
...
llvm-svn: 21799
2005-05-09 01:09:39 +00:00
Chris Lattner
2d9c054f4e
Preserve calling conventions when doing IPO
...
llvm-svn: 21798
2005-05-09 01:05:50 +00:00
Chris Lattner
eff214d7de
wrap long lines, preserve calling conventions when cloning functions and
...
turning calls into invokes
llvm-svn: 21797
2005-05-09 01:04:34 +00:00
Chris Lattner
5a7f1642b7
By definition, 'tail' calls cannot access the stack frame of their caller.
...
Expose this as a simple form of mod/ref information. This implements
BasicAA/tailcall-modref.ll
llvm-svn: 21796
2005-05-08 23:58:12 +00:00
Chris Lattner
d1969cf8c2
New testacse for information exposed by the 'tail' call marker.
...
llvm-svn: 21795
2005-05-08 23:57:34 +00:00
Chris Lattner
fb4a99b117
Verify that varargs functions all have ccc
...
llvm-svn: 21792
2005-05-08 22:27:09 +00:00
Chris Lattner
b57ab2e975
Convert non-address taken functions with C calling conventions to fastcc.
...
llvm-svn: 21791
2005-05-08 22:18:06 +00:00
Chris Lattner
f30a6e0fbc
If loopextract breaks the program provide output so that we can repro the
...
problem.
llvm-svn: 21790
2005-05-08 21:54:56 +00:00
Chris Lattner
e717a9dca2
add a testcase for a case we do not handle yet
...
llvm-svn: 21789
2005-05-08 21:47:42 +00:00
Chris Lattner
d5a353a675
Implement Reassociate/mul-neg-add.ll
...
llvm-svn: 21788
2005-05-08 21:41:35 +00:00
Chris Lattner
5bef0b7bc6
new testcase
...
llvm-svn: 21787
2005-05-08 21:41:18 +00:00
Chris Lattner
f535f6e808
Bail out earlier
...
llvm-svn: 21786
2005-05-08 21:33:47 +00:00
Chris Lattner
39f74def7f
Teach reassociate that 0-X === X*-1
...
llvm-svn: 21785
2005-05-08 21:28:52 +00:00
Chris Lattner
0fb59cec82
new testcase
...
llvm-svn: 21784
2005-05-08 21:28:33 +00:00
Chris Lattner
319ac8f822
Fix PR557 and basictest[34].ll.
...
This makes reassociate realize that loads should be treated as unmovable, and
gives distinct ranks to distinct values defined in the same basic block, allowing
reassociate to do its thing.
llvm-svn: 21783
2005-05-08 20:57:04 +00:00
Chris Lattner
ab1fdcec7d
new testcases for PR557
...
llvm-svn: 21782
2005-05-08 20:56:02 +00:00
Chris Lattner
b5de308c5f
Add debugging information
...
llvm-svn: 21781
2005-05-08 20:09:57 +00:00
Chris Lattner
e74082156b
eliminate gotos
...
llvm-svn: 21780
2005-05-08 19:48:43 +00:00
Chris Lattner
6d85b91b24
Wrap long lines. Fix "warning: conflicting types for built-in function 'memset'"
...
warning from the CBE+GCC.
llvm-svn: 21779
2005-05-08 19:46:29 +00:00
Chris Lattner
a9d5fdd4fd
Improve reassociation handling of inverses, implementing inverses.ll.
...
llvm-svn: 21778
2005-05-08 18:59:37 +00:00
Chris Lattner
d7a835fcba
new testcase
...
llvm-svn: 21777
2005-05-08 18:54:40 +00:00
Chris Lattner
afbdc0b969
clean up and modernize this pass.
...
llvm-svn: 21776
2005-05-08 18:45:26 +00:00
Chris Lattner
7b41539f32
Strength reduce SAR into SHR if there is no way sign bits could be shifted
...
in. This tends to get cases like this:
X = cast ubyte to int
Y = shr int X, ...
Tested by: shift.ll:test24
llvm-svn: 21775
2005-05-08 17:34:56 +00:00
Chris Lattner
5fe4e982b8
new testcase
...
llvm-svn: 21774
2005-05-08 17:31:24 +00:00
Jeff Cohen
913578a3e1
Update my info
...
llvm-svn: 21773
2005-05-08 01:07:48 +00:00
Chris Lattner
c2670a0da6
Refactor some code
...
llvm-svn: 21772
2005-05-08 00:19:31 +00:00
Chris Lattner
cd7caaa866
Handle some simple cases where we can see that values get annihilated.
...
llvm-svn: 21771
2005-05-08 00:08:33 +00:00
Chris Lattner
1e84d885b7
Fix a miscompilation of crafty by clobbering the "A" variable.
...
llvm-svn: 21770
2005-05-07 23:49:08 +00:00
Chris Lattner
ae62d64e6c
Move licm after reassociate, add some cond-propagate passes
...
llvm-svn: 21769
2005-05-07 22:45:35 +00:00
Chris Lattner
5662127ed6
Rewrite the guts of the reassociate pass to be more efficient and logical. Instead
...
of trying to do local reassociation tweaks at each level, only process an expression
tree once (at its root). This does not improve the reassociation pass in any real way.
llvm-svn: 21768
2005-05-07 21:59:39 +00:00
Reid Spencer
bd4efef3eb
* Break tests into individual cases so its easier to see what's going on.
...
* Add four new cases to handle the new optimizations for strlen, dealing
with:
strlen(x) != 0 -> *x != 0
strlen(x) == 0 -> *x == 0
for each of two cases: strlen(x) != 0 and strlen(x) == 0
llvm-svn: 21767
2005-05-07 20:21:04 +00:00
Reid Spencer
b4fdf14d34
* Add two strlen optimizations:
...
strlen(x) != 0 -> *x != 0
strlen(x) == 0 -> *x == 0
* Change nested statistics to use style of other LLVM statistics so that
only the name of the optimization (simplify-libcalls) is used as the
statistic name, and the description indicates which specific all is
optimized. Cuts down on some redundancy and saves a few bytes of space.
* Make note of stpcpy optimization that could be done.
llvm-svn: 21766
2005-05-07 20:15:59 +00:00
Reid Spencer
65d553cd03
Don't increment the counter unless the debug flag is set.
...
llvm-svn: 21762
2005-05-07 04:59:45 +00:00
Chris Lattner
3edf09a5eb
Convert shifts to muls to assist reassociation. This implements
...
Reassociate/shifttest.ll
llvm-svn: 21761
2005-05-07 04:24:13 +00:00
Chris Lattner
e265bf6fe5
test that reassociate can handle shifts
...
llvm-svn: 21760
2005-05-07 04:23:29 +00:00
Chris Lattner
b1ea71fbcd
Simplify the code and rearrange it. No major functionality changes here.
...
llvm-svn: 21759
2005-05-07 04:08:02 +00:00
Jeff Cohen
eafa15885e
Silence VC++ warnings about unsafe mixing of ints and bools with the | operator.
...
llvm-svn: 21758
2005-05-07 02:44:04 +00:00