Commit Graph

18860 Commits

Author SHA1 Message Date
Chris Lattner
c154cef9a1 wrap long lines, preserve calling conventions when cloning functions and
turning calls into invokes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21797 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-09 01:04:34 +00:00
Chris Lattner
42e3c81c5f 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21796 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 23:58:12 +00:00
Chris Lattner
20fad44ede New testacse for information exposed by the 'tail' call marker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21795 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 23:57:34 +00:00
Chris Lattner
37c121acf4 Verify that varargs functions all have ccc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21792 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 22:27:09 +00:00
Chris Lattner
fb217adf92 Convert non-address taken functions with C calling conventions to fastcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21791 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 22:18:06 +00:00
Chris Lattner
56c418676a If loopextract breaks the program provide output so that we can repro the
problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21790 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:54:56 +00:00
Chris Lattner
6d60924e3d add a testcase for a case we do not handle yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21789 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:47:42 +00:00
Chris Lattner
44b8c7d5d3 Implement Reassociate/mul-neg-add.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21788 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:41:35 +00:00
Chris Lattner
22d06312a9 new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21787 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:41:18 +00:00
Chris Lattner
6f156856ca Bail out earlier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21786 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:33:47 +00:00
Chris Lattner
f33151aff0 Teach reassociate that 0-X === X*-1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21785 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:28:52 +00:00
Chris Lattner
4544d0218a new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21784 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 21:28:33 +00:00
Chris Lattner
9c72319938 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21783 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 20:57:04 +00:00
Chris Lattner
f4946dff71 new testcases for PR557
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21782 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 20:56:02 +00:00
Chris Lattner
c9fd097a01 Add debugging information
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21781 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 20:09:57 +00:00
Chris Lattner
989f6229bc eliminate gotos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21780 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 19:48:43 +00:00
Chris Lattner
1f243e9f43 Wrap long lines. Fix "warning: conflicting types for built-in function 'memset'"
warning from the CBE+GCC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21779 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 19:46:29 +00:00
Chris Lattner
109d34d6ff Improve reassociation handling of inverses, implementing inverses.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21778 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 18:59:37 +00:00
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