| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | * Add two strlen optimizations: | Reid Spencer | 2005-05-07 | 1 | -23/+56 |
| | | | | | | | | | | | | | 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 | ||||
| * | Don't increment the counter unless the debug flag is set. | Reid Spencer | 2005-05-07 | 1 | -1/+1 |
| | | | | | llvm-svn: 21762 | ||||
| * | Convert shifts to muls to assist reassociation. This implements | Chris Lattner | 2005-05-07 | 1 | -2/+27 |
| | | | | | | | Reassociate/shifttest.ll llvm-svn: 21761 | ||||
| * | test that reassociate can handle shifts | Chris Lattner | 2005-05-07 | 1 | -0/+10 |
| | | | | | llvm-svn: 21760 | ||||
| * | Simplify the code and rearrange it. No major functionality changes here. | Chris Lattner | 2005-05-07 | 1 | -62/+82 |
| | | | | | llvm-svn: 21759 | ||||
| * | Silence VC++ warnings about unsafe mixing of ints and bools with the | operator. | Jeff Cohen | 2005-05-07 | 2 | -3/+3 |
| | | | | | llvm-svn: 21758 | ||||
| * | add note about bit builtins newly supported | Chris Lattner | 2005-05-07 | 1 | -2/+7 |
| | | | | | llvm-svn: 21757 | ||||
| * | new testcase | Chris Lattner | 2005-05-07 | 1 | -0/+17 |
| | | | | | llvm-svn: 21756 | ||||
| * | fix bugs in my previous commit clarify the return type of the bit ops | Chris Lattner | 2005-05-07 | 1 | -9/+14 |
| | | | | | llvm-svn: 21755 | ||||
| * | add a couple of notes | Chris Lattner | 2005-05-06 | 2 | -3/+6 |
| | | | | | llvm-svn: 21754 | ||||
| * | document calling convention extensions | Chris Lattner | 2005-05-06 | 2 | -42/+143 |
| | | | | | llvm-svn: 21753 | ||||
| * | remove some dead (always dynamically false) flags | Chris Lattner | 2005-05-06 | 2 | -36/+1 |
| | | | | | llvm-svn: 21752 | ||||
| * | encode calling conventions for call/invoke instructions. | Chris Lattner | 2005-05-06 | 2 | -14/+80 |
| | | | | | llvm-svn: 21751 | ||||
| * | new testcase | Chris Lattner | 2005-05-06 | 1 | -0/+42 |
| | | | | | llvm-svn: 21750 | ||||
| * | encode function calling convs in the bytecode file. invoke and call are | Chris Lattner | 2005-05-06 | 2 | -1/+16 |
| | | | | | | | still to come. llvm-svn: 21749 | ||||
| * | parse new calling conv specifiers | Chris Lattner | 2005-05-06 | 2 | -43/+65 |
| | | | | | llvm-svn: 21748 | ||||
| * | wrap a longline | Chris Lattner | 2005-05-06 | 1 | -1/+2 |
| | | | | | llvm-svn: 21747 | ||||
| * | add support for explicit calling conventions | Chris Lattner | 2005-05-06 | 3 | -3/+44 |
| | | | | | llvm-svn: 21746 | ||||
| * | Add support for explicit calling conventions | Chris Lattner | 2005-05-06 | 3 | -5/+36 |
| | | | | | llvm-svn: 21745 | ||||
| * | New file | Chris Lattner | 2005-05-06 | 1 | -0/+54 |
| | | | | | llvm-svn: 21744 | ||||
| * | use splice instead of remove/insert for a minor speedup | Chris Lattner | 2005-05-06 | 1 | -4/+6 |
| | | | | | llvm-svn: 21743 | ||||
| * | remove some ugly hacks that are no longer needed since andrew removed the | Chris Lattner | 2005-05-06 | 1 | -14/+6 |
| | | | | | | | varargs munging code llvm-svn: 21742 | ||||
| * | BAD typeo which caused many testsuite failures last night. Note to self, do | Chris Lattner | 2005-05-06 | 1 | -1/+1 |
| | | | | | | | not change code after testing it without retesting! llvm-svn: 21741 | ||||
| * | clean up the CBE output a bit | Chris Lattner | 2005-05-06 | 1 | -13/+15 |
| | | | | | llvm-svn: 21740 | ||||
| * | add tail marker as a comment | Chris Lattner | 2005-05-06 | 1 | -0/+1 |
| | | | | | llvm-svn: 21739 | ||||
| * | Make the stub functions be tail calls | Chris Lattner | 2005-05-06 | 1 | -1/+2 |
| | | | | | llvm-svn: 21738 | ||||
| * | Preserve tail marker | Chris Lattner | 2005-05-06 | 3 | -4/+7 |
| | | | | | llvm-svn: 21737 | ||||
| * | Implement Transforms/Inline/inline-tail.ll | Chris Lattner | 2005-05-06 | 1 | -1/+16 |
| | | | | | llvm-svn: 21736 | ||||
| * | Make sure to not accidentally get a bogus tail marker | Chris Lattner | 2005-05-06 | 1 | -0/+16 |
| | | | | | llvm-svn: 21735 | ||||
| * | preserve the tail marker | Chris Lattner | 2005-05-06 | 3 | -0/+6 |
| | | | | | llvm-svn: 21734 | ||||
| * | add a default arg | Chris Lattner | 2005-05-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 21733 | ||||
| * | Don't forget these are calls | Chris Lattner | 2005-05-06 | 1 | -4/+4 |
| | | | | | llvm-svn: 21730 | ||||
| * | lex tail | Chris Lattner | 2005-05-06 | 1 | -0/+1 |
| | | | | | llvm-svn: 21729 | ||||
| * | test that tail call survives bytecodification | Chris Lattner | 2005-05-06 | 1 | -3/+3 |
| | | | | | llvm-svn: 21728 | ||||
| * | add bytecode reader support for tail calls | Chris Lattner | 2005-05-06 | 2 | -1/+6 |
| | | | | | llvm-svn: 21727 | ||||
| * | Hilight tail | Chris Lattner | 2005-05-06 | 2 | -2/+2 |
| | | | | | llvm-svn: 21726 | ||||
| * | These are legal for tail calls | Chris Lattner | 2005-05-06 | 2 | -1/+5 |
| | | | | | llvm-svn: 21723 | ||||
| * | Add a 'tail' marker for call instructions, patch contributed by | Chris Lattner | 2005-05-06 | 5 | -7/+34 |
| | | | | | | | Alexander Friedman. llvm-svn: 21722 | ||||
| * | Add info on new 'tail' marker | Chris Lattner | 2005-05-06 | 1 | -11/+37 |
| | | | | | llvm-svn: 21721 | ||||
| * | Wrap long lines | Chris Lattner | 2005-05-06 | 1 | -6/+10 |
| | | | | | llvm-svn: 21720 | ||||
| * | DCE intrinsic instructions without side effects. | Chris Lattner | 2005-05-06 | 1 | -1/+20 |
| | | | | | llvm-svn: 21719 | ||||
| * | These intrinsics do not access memory | Chris Lattner | 2005-05-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 21718 | ||||
| * | Teach instcombine propagate zeroness through shl instructions, implementing | Chris Lattner | 2005-05-06 | 1 | -8/+4 |
| | | | | | | | and.ll:test31 llvm-svn: 21717 | ||||
| * | new testcases | Chris Lattner | 2005-05-06 | 1 | -0/+14 |
| | | | | | llvm-svn: 21716 | ||||
| * | Implement shift.ll:test23. If we are shifting right then immediately truncating | Chris Lattner | 2005-05-06 | 1 | -3/+19 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the result, turn signed shift rights into unsigned shift rights if possible. This leads to later simplification and happens *often* in 176.gcc. For example, this testcase: struct xxx { unsigned int code : 8; }; enum codes { A, B, C, D, E, F }; int foo(struct xxx *P) { if ((enum codes)P->code == A) bar(); } used to be compiled to: int %foo(%struct.xxx* %P) { %tmp.1 = getelementptr %struct.xxx* %P, int 0, uint 0 ; <uint*> [#uses=1] %tmp.2 = load uint* %tmp.1 ; <uint> [#uses=1] %tmp.3 = cast uint %tmp.2 to int ; <int> [#uses=1] %tmp.4 = shl int %tmp.3, ubyte 24 ; <int> [#uses=1] %tmp.5 = shr int %tmp.4, ubyte 24 ; <int> [#uses=1] %tmp.6 = cast int %tmp.5 to sbyte ; <sbyte> [#uses=1] %tmp.8 = seteq sbyte %tmp.6, 0 ; <bool> [#uses=1] br bool %tmp.8, label %then, label %UnifiedReturnBlock Now it is compiled to: %tmp.1 = getelementptr %struct.xxx* %P, int 0, uint 0 ; <uint*> [#uses=1] %tmp.2 = load uint* %tmp.1 ; <uint> [#uses=1] %tmp.2 = cast uint %tmp.2 to sbyte ; <sbyte> [#uses=1] %tmp.8 = seteq sbyte %tmp.2, 0 ; <bool> [#uses=1] br bool %tmp.8, label %then, label %UnifiedReturnBlock which is the difference between this: foo: subl $4, %esp movl 8(%esp), %eax movl (%eax), %eax shll $24, %eax sarl $24, %eax testb %al, %al jne .LBBfoo_2 and this: foo: subl $4, %esp movl 8(%esp), %eax movl (%eax), %eax testb %al, %al jne .LBBfoo_2 This occurs 3243 times total in the External tests, 215x in povray, 6x in each f2c'd program, 1451x in 176.gcc, 7x in crafty, 20x in perl, 25x in gap, 3x in m88ksim, 25x in ijpeg. Maybe this will cause a little jump on gcc tommorow :) llvm-svn: 21715 | ||||
| * | new testcase | Chris Lattner | 2005-05-06 | 2 | -0/+14 |
| | | | | | llvm-svn: 21714 | ||||
| * | Implement xor.ll:test22 | Chris Lattner | 2005-05-06 | 1 | -0/+9 |
| | | | | | llvm-svn: 21713 | ||||
| * | implement and.ll:test30 and set.ll:test21 | Chris Lattner | 2005-05-06 | 1 | -18/+60 |
| | | | | | llvm-svn: 21712 | ||||
| * | new testcase for unneeded and | Chris Lattner | 2005-05-06 | 1 | -0/+5 |
| | | | | | llvm-svn: 21711 | ||||
| * | new testcase | Chris Lattner | 2005-05-06 | 1 | -0/+8 |
| | | | | | llvm-svn: 21710 | ||||

