Chris Lattner
1a82ca80dd
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21777 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 18:54:40 +00:00
Chris Lattner
928128281f
clean up and modernize this pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21776 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 18:45:26 +00:00
Chris Lattner
120347e8d1
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21775 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 17:34:56 +00:00
Chris Lattner
a9c83c73da
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21774 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 17:31:24 +00:00
Jeff Cohen
0939d77452
Update my info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21773 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 01:07:48 +00:00
Chris Lattner
4690010006
Refactor some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21772 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 00:19:31 +00:00
Chris Lattner
cc8a2b98f2
Handle some simple cases where we can see that values get annihilated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21771 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 00:08:33 +00:00
Chris Lattner
f4d4c87985
Fix a miscompilation of crafty by clobbering the "A" variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21770 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 23:49:08 +00:00
Chris Lattner
cbe92e6d4a
Move licm after reassociate, add some cond-propagate passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21769 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 22:45:35 +00:00
Chris Lattner
c0649ac931
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21768 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 21:59:39 +00:00
Reid Spencer
29a5bf5f0f
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21767 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 20:21:04 +00:00
Reid Spencer
789082af03
* 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21766 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 20:15:59 +00:00
Reid Spencer
673c1a9170
Don't increment the counter unless the debug flag is set.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21762 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 04:59:45 +00:00
Chris Lattner
0975ed5f4e
Convert shifts to muls to assist reassociation. This implements
...
Reassociate/shifttest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21761 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 04:24:13 +00:00
Chris Lattner
5cc924ac42
test that reassociate can handle shifts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21760 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 04:23:29 +00:00
Chris Lattner
08b43921e1
Simplify the code and rearrange it. No major functionality changes here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21759 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 04:08:02 +00:00
Jeff Cohen
39cef60259
Silence VC++ warnings about unsafe mixing of ints and bools with the | operator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21758 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 02:44:04 +00:00
Chris Lattner
7939b78170
add note about bit builtins newly supported
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21757 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 02:21:21 +00:00
Chris Lattner
8ccdf7b07a
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21756 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 02:16:08 +00:00
Chris Lattner
cfe6b37b07
fix bugs in my previous commit clarify the return type of the bit ops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21755 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-07 01:46:40 +00:00
Chris Lattner
8cdc5bccc8
add a couple of notes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21754 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 23:08:23 +00:00
Chris Lattner
bad10eebbe
document calling convention extensions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21753 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 22:57:40 +00:00
Chris Lattner
3f6948d686
remove some dead (always dynamically false) flags
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21752 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 22:35:09 +00:00
Chris Lattner
dee199fe82
encode calling conventions for call/invoke instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21751 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 22:34:01 +00:00
Chris Lattner
6dc7e6833b
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21750 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 22:33:44 +00:00
Chris Lattner
479ffebd73
encode function calling convs in the bytecode file. invoke and call are
...
still to come.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21749 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 20:42:57 +00:00
Chris Lattner
a8e8f16714
parse new calling conv specifiers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21748 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 20:27:19 +00:00
Chris Lattner
28caccff30
wrap a longline
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21747 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 20:27:03 +00:00
Chris Lattner
d511898b58
add support for explicit calling conventions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21746 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 20:26:43 +00:00
Chris Lattner
3340ffe854
Add support for explicit calling conventions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21745 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 20:26:26 +00:00
Chris Lattner
a62e52ab18
New file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21744 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 19:59:08 +00:00
Chris Lattner
f924a4c21f
use splice instead of remove/insert for a minor speedup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21743 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 19:58:35 +00:00
Chris Lattner
1f64025d88
remove some ugly hacks that are no longer needed since andrew removed the
...
varargs munging code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21742 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 19:49:51 +00:00
Chris Lattner
3799ed83b4
BAD typeo which caused many testsuite failures last night. Note to self, do
...
not change code after testing it without retesting!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21741 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 17:13:16 +00:00
Chris Lattner
50a8a17e65
clean up the CBE output a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21740 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:58:42 +00:00
Chris Lattner
fe673d9351
add tail marker as a comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21739 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:53:07 +00:00
Chris Lattner
a471e045b7
Make the stub functions be tail calls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21738 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:48:54 +00:00
Chris Lattner
a9e9211bbb
Preserve tail marker
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21737 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:48:21 +00:00
Chris Lattner
1b49141821
Implement Transforms/Inline/inline-tail.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21736 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:47:52 +00:00
Chris Lattner
2f4251bfbe
Make sure to not accidentally get a bogus tail marker
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21735 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:47:37 +00:00
Chris Lattner
1430ef134d
preserve the tail marker
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21734 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:46:58 +00:00
Chris Lattner
cfae2e80c8
add a default arg
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21733 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:22:10 +00:00
Chris Lattner
f6b5c1abce
Don't forget these are calls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21730 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:21:59 +00:00
Chris Lattner
c28ade4266
lex tail
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21729 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:20:33 +00:00
Chris Lattner
d100d4c3e9
test that tail call survives bytecodification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21728 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:18:33 +00:00
Chris Lattner
38287bdfde
add bytecode reader support for tail calls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21727 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:13:34 +00:00
Chris Lattner
653488d166
Hilight tail
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21726 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:07:34 +00:00
Chris Lattner
47968e4dfd
These are legal for tail calls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21723 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 05:59:50 +00:00
Chris Lattner
ddb6db4fa1
Add a 'tail' marker for call instructions, patch contributed by
...
Alexander Friedman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21722 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 05:51:46 +00:00
Chris Lattner
2bff524501
Add info on new 'tail' marker
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21721 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 05:47:36 +00:00