oota-llvm.git
19 years agoThese intrinsics do not access memory
Chris Lattner [Fri, 6 May 2005 05:21:04 +0000 (05:21 +0000)]
These intrinsics do not access memory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21718 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoTeach instcombine propagate zeroness through shl instructions, implementing
Chris Lattner [Fri, 6 May 2005 04:53:20 +0000 (04:53 +0000)]
Teach instcombine propagate zeroness through shl instructions, implementing
and.ll:test31

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21717 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcases
Chris Lattner [Fri, 6 May 2005 04:52:46 +0000 (04:52 +0000)]
new testcases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21716 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement shift.ll:test23. If we are shifting right then immediately truncating
Chris Lattner [Fri, 6 May 2005 04:18:52 +0000 (04:18 +0000)]
Implement shift.ll:test23.  If we are shifting right then immediately truncating
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 :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21715 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Fri, 6 May 2005 04:11:32 +0000 (04:11 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21714 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement xor.ll:test22
Chris Lattner [Fri, 6 May 2005 02:07:39 +0000 (02:07 +0000)]
Implement xor.ll:test22

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21713 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoimplement and.ll:test30 and set.ll:test21
Chris Lattner [Fri, 6 May 2005 01:53:19 +0000 (01:53 +0000)]
implement and.ll:test30 and set.ll:test21

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21712 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase for unneeded and
Chris Lattner [Fri, 6 May 2005 01:52:52 +0000 (01:52 +0000)]
new testcase for unneeded and

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21711 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Fri, 6 May 2005 01:51:05 +0000 (01:51 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21710 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoimplement or.ll:test20
Chris Lattner [Fri, 6 May 2005 00:58:50 +0000 (00:58 +0000)]
implement or.ll:test20

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21709 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Fri, 6 May 2005 00:58:09 +0000 (00:58 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21708 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Order #includes alphabetically
Misha Brukman [Thu, 5 May 2005 23:45:17 +0000 (23:45 +0000)]
* Order #includes alphabetically
* Remove commented-out debug printouts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21707 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoRemove extra blank line
Misha Brukman [Thu, 5 May 2005 23:43:47 +0000 (23:43 +0000)]
Remove extra blank line

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21706 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Use consistent spacing for function arguments
Misha Brukman [Thu, 5 May 2005 22:38:21 +0000 (22:38 +0000)]
* Use consistent spacing for function arguments
* Output single-character strings as chars

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21705 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoRemove vim settings from source code; people should use llvm/utils/vim/vimrc
Misha Brukman [Thu, 5 May 2005 22:33:09 +0000 (22:33 +0000)]
Remove vim settings from source code; people should use llvm/utils/vim/vimrc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21704 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoConvert tabs to spaces
Misha Brukman [Thu, 5 May 2005 22:30:40 +0000 (22:30 +0000)]
Convert tabs to spaces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21703 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase for PR541
Chris Lattner [Thu, 5 May 2005 22:23:10 +0000 (22:23 +0000)]
new testcase for PR541

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21702 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd support for undef values of opaque type, addressing PR541
Chris Lattner [Thu, 5 May 2005 22:21:19 +0000 (22:21 +0000)]
add support for undef values of opaque type, addressing PR541

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21701 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd some extra checks. Opaque types don't have a null marker.
Chris Lattner [Thu, 5 May 2005 20:57:00 +0000 (20:57 +0000)]
Add some extra checks.  Opaque types don't have a null marker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21700 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Thu, 5 May 2005 17:57:24 +0000 (17:57 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21699 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoWhen hitting an unsupported intrinsic, actually print it
Chris Lattner [Thu, 5 May 2005 17:55:17 +0000 (17:55 +0000)]
When hitting an unsupported intrinsic, actually print it
Lower debug info to noops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21698 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoctpop lowering in legalize
Andrew Lenharth [Thu, 5 May 2005 15:55:21 +0000 (15:55 +0000)]
ctpop lowering in legalize

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21697 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix a bug compimling Ruby, fixing this testcase:
Chris Lattner [Thu, 5 May 2005 15:47:43 +0000 (15:47 +0000)]
Fix a bug compimling Ruby, fixing this testcase:
LowerSetJmp/2005-05-05-OldUses.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21696 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase for a bug Jim found
Chris Lattner [Thu, 5 May 2005 15:47:16 +0000 (15:47 +0000)]
new testcase for a bug Jim found

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21695 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agofix typo
Andrew Lenharth [Wed, 4 May 2005 19:25:37 +0000 (19:25 +0000)]
fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21693 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoWell, add support for ct* for 21264 only.
Andrew Lenharth [Wed, 4 May 2005 19:12:09 +0000 (19:12 +0000)]
Well, add support for ct* for 21264 only.
21164 is broken until expand works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21692 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoMake promoteOp work for CT*
Andrew Lenharth [Wed, 4 May 2005 19:11:05 +0000 (19:11 +0000)]
Make promoteOp work for CT*

Proof?

ubyte %bar(ubyte %x) {
entry:
        %tmp.1 = call ubyte %llvm.ctlz( ubyte %x )
        ret ubyte %tmp.1
}

==>

zapnot $16,1,$0
CTLZ $0,$0
subq $0,56,$0
zapnot $0,1,$0
ret $31,($26),1

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21691 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoInstcombine: cast (X != 0) to int, cast (X == 1) to int -> X iff X has only the...
Chris Lattner [Wed, 4 May 2005 19:10:26 +0000 (19:10 +0000)]
Instcombine: cast (X != 0) to int, cast (X == 1) to int  -> X iff X has only the low bit set.

This implements set.ll:test20.

This triggers 2x on povray, 9x on mesa, 11x on gcc, 2x on crafty, 1x on eon,
6x on perlbmk and 11x on m88ksim.

It allows us to compile these two functions into the same code:

struct s { unsigned int bit : 1; };
unsigned foo(struct s *p) {
  if (p->bit)
    return 1;
  else
    return 0;
}
unsigned bar(struct s *p) { return p->bit; }

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21690 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Wed, 4 May 2005 19:05:02 +0000 (19:05 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21689 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement the IsDigitOptimization for simplifying calls to the isdigit
Reid Spencer [Wed, 4 May 2005 18:58:28 +0000 (18:58 +0000)]
Implement the IsDigitOptimization for simplifying calls to the isdigit
library function:
  isdigit(chr) -> 0 or 1 if chr is constant
  isdigit(chr) -> chr - '0' <= 9 otherwise

Although there are many calls to isdigit in llvm-test, most of them are
compiled away by macros leaving only this:

2 MultiSource/Applications/hexxagon

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21688 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoMake sure both optimization cases get tested.
Reid Spencer [Wed, 4 May 2005 17:45:10 +0000 (17:45 +0000)]
Make sure both optimization cases get tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21687 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a test case for the IsDigitOptimization class.
Reid Spencer [Wed, 4 May 2005 17:34:55 +0000 (17:34 +0000)]
Add a test case for the IsDigitOptimization class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21686 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agocomment fix
Andrew Lenharth [Wed, 4 May 2005 15:56:34 +0000 (15:56 +0000)]
comment fix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21685 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agosee if the legalize code propery compensates for the additional zeros introduced
Andrew Lenharth [Wed, 4 May 2005 15:51:07 +0000 (15:51 +0000)]
see if the legalize code propery compensates for the additional zeros introduced

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21684 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoCorrect the descriptions of WHILE...END and RROT. Thanks to Lalo Martins
Reid Spencer [Wed, 4 May 2005 15:43:40 +0000 (15:43 +0000)]
Correct the descriptions of WHILE...END and RROT. Thanks to Lalo Martins
for pointing out these errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21683 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoWHILE does not "pop" a value, it "examines" to top of stack. Make this
Reid Spencer [Wed, 4 May 2005 15:33:48 +0000 (15:33 +0000)]
WHILE does not "pop" a value, it "examines" to top of stack. Make this
clear in the applicable comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21682 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadded a use of ctpop to debug stuff with
Andrew Lenharth [Wed, 4 May 2005 15:20:16 +0000 (15:20 +0000)]
added a use of ctpop to debug stuff with

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21681 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agofixup argument
Andrew Lenharth [Wed, 4 May 2005 14:58:31 +0000 (14:58 +0000)]
fixup argument

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21680 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Correct the function prototypes for some of the functions to match the
Reid Spencer [Wed, 4 May 2005 03:20:21 +0000 (03:20 +0000)]
* Correct the function prototypes for some of the functions to match the
  actual spec (int -> uint)
* Add the ability to get/cache the strlen function prototype.
* Make sure generated values are appropriately named for debugging purposes
* Add the SPrintFOptimiation for 4 casts of sprintf optimization:
    sprintf(str,cstr) -> llvm.memcpy(str,cstr) (if cstr has no %)
    sprintf(str,"")   -> store sbyte 0, str
    sprintf(str,"%s",src) -> llvm.memcpy(str,src) (if src is constant)
    sprintf(str,"%c",chr) -> store chr, str   ; store sbyte 0, str+1

The sprintf optimization didn't fire as much as I had hoped:

  2 MultiSource/Applications/SPASS
  5 MultiSource/Benchmarks/McCat/18-imp
 22 MultiSource/Benchmarks/Prolangs-C/TimberWolfMC
  1 MultiSource/Benchmarks/Prolangs-C/assembler
  6 MultiSource/Benchmarks/Prolangs-C/unix-smail
  2 MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21679 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoMinor clean-ups
Misha Brukman [Tue, 3 May 2005 20:30:34 +0000 (20:30 +0000)]
Minor clean-ups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21678 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoinitial descriptions of count intrinsics
Andrew Lenharth [Tue, 3 May 2005 18:01:48 +0000 (18:01 +0000)]
initial descriptions of count intrinsics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21677 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement count leading zeros (ctlz), count trailing zeros (cttz), and count
Andrew Lenharth [Tue, 3 May 2005 17:19:30 +0000 (17:19 +0000)]
Implement count leading zeros (ctlz), count trailing zeros (cttz), and count
population (ctpop).  Generic lowering is implemented, however only promotion
is implemented for SelectionDAG at the moment.

More coming soon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix this test to succeed even if "strchr" is on a call instruction.
Reid Spencer [Tue, 3 May 2005 17:09:38 +0000 (17:09 +0000)]
Fix this test to succeed even if "strchr" is on a call instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21675 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a test case for SPrintFOptimization.
Reid Spencer [Tue, 3 May 2005 17:08:45 +0000 (17:08 +0000)]
Add a test case for SPrintFOptimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21674 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoyea yea yea
Andrew Lenharth [Tue, 3 May 2005 17:00:48 +0000 (17:00 +0000)]
yea yea yea

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21673 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonote the vararg change, and other stuff
Andrew Lenharth [Tue, 3 May 2005 16:59:09 +0000 (16:59 +0000)]
note the vararg change, and other stuff

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21672 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agopre add count tests
Andrew Lenharth [Tue, 3 May 2005 16:49:48 +0000 (16:49 +0000)]
pre add count tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21671 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agofix a bug in the 1 index GEP handling code
Chris Lattner [Tue, 3 May 2005 16:44:45 +0000 (16:44 +0000)]
fix a bug in the 1 index GEP handling code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21670 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement optimizations for the strchr and llvm.memset library calls.
Reid Spencer [Tue, 3 May 2005 07:23:44 +0000 (07:23 +0000)]
Implement optimizations for the strchr and llvm.memset library calls.
Neither of these activated as many times as was hoped:

strchr:
9 MultiSource/Applications/siod
1 MultiSource/Applications/d
2 MultiSource/Prolangs-C/archie-client
1 External/SPEC/CINT2000/176.gcc/176.gcc

llvm.memset:
no hits

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21669 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a test case for StrChrOptimizer for -simplify-libcalls
Reid Spencer [Tue, 3 May 2005 06:22:41 +0000 (06:22 +0000)]
Add a test case for StrChrOptimizer for -simplify-libcalls

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21668 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoClean up and correct llvmc configurations for C and C++
Misha Brukman [Tue, 3 May 2005 06:13:18 +0000 (06:13 +0000)]
Clean up and correct llvmc configurations for C and C++

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21667 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agostd::string(NULL) does not a proper constructor make
Misha Brukman [Tue, 3 May 2005 06:10:51 +0000 (06:10 +0000)]
std::string(NULL) does not a proper constructor make

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21666 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd direct support for making GEP instrs with one index
Chris Lattner [Tue, 3 May 2005 05:43:30 +0000 (05:43 +0000)]
add direct support for making GEP instrs with one index

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21665 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoOmit periods at the end of command-line switch explanations for consistency
Misha Brukman [Tue, 3 May 2005 05:36:14 +0000 (05:36 +0000)]
Omit periods at the end of command-line switch explanations for consistency

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21664 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoA new test case for the LLVMMemSetOptimization.
Reid Spencer [Tue, 3 May 2005 04:00:24 +0000 (04:00 +0000)]
A new test case for the LLVMMemSetOptimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21663 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoUse ANSI-approved way of getting the value infinity (otherwise VC++ won't compile it)
Jeff Cohen [Tue, 3 May 2005 03:13:01 +0000 (03:13 +0000)]
Use ANSI-approved way of getting the value infinity (otherwise VC++ won't compile it)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21662 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAvoid garbage output in the statistics display by ensuring that the
Reid Spencer [Tue, 3 May 2005 02:54:54 +0000 (02:54 +0000)]
Avoid garbage output in the statistics display by ensuring that the
strings passed to Statistic's constructor are not destructable. The stats
are printed during static destruction and the SimplifyLibCalls module was
getting destructed before the statistics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21661 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd the StrNCmpOptimization which is similar to strcmp.
Reid Spencer [Tue, 3 May 2005 01:43:45 +0000 (01:43 +0000)]
Add the StrNCmpOptimization which is similar to strcmp.

Unfortunately, this optimization didn't trigger on any llvm-test tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21660 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoCorrect the title and the success criteria: strcmp -> strncmp
Reid Spencer [Tue, 3 May 2005 00:52:19 +0000 (00:52 +0000)]
Correct the title and the success criteria: strcmp -> strncmp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21659 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a new test case for the StrNCmpOptimization.
Reid Spencer [Tue, 3 May 2005 00:50:43 +0000 (00:50 +0000)]
Add a new test case for the StrNCmpOptimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21658 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement the fprintf optimization which converts calls like this:
Reid Spencer [Mon, 2 May 2005 23:59:26 +0000 (23:59 +0000)]
Implement the fprintf optimization which converts calls like this:
  fprintf(F,"hello") -> fwrite("hello",strlen("hello"),1,F)
  fprintf(F,"%s","hello") -> fwrite("hello",strlen("hello"),1,F)
  fprintf(F,"%c",'x') -> fputc('c',F)

This optimization fires severals times in llvm-test:

313 MultiSource/Applications/Burg
302 MultiSource/Benchmarks/Prolangs-C/TimberWolfMC
189 MultiSource/Benchmarks/Prolangs-C/mybison
175 MultiSource/Benchmarks/Prolangs-C/football
130 MultiSource/Benchmarks/Prolangs-C/unix-tbl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21657 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a test case for testing the FPrintFOptimization.
Reid Spencer [Mon, 2 May 2005 23:07:14 +0000 (23:07 +0000)]
Add a test case for testing the FPrintFOptimization.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21656 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agofold fp div by 0 to inf, the way gcc does. This is legal according to the FP spec
Andrew Lenharth [Mon, 2 May 2005 21:25:47 +0000 (21:25 +0000)]
fold fp div by 0 to inf, the way gcc does.  This is legal according to the FP spec

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21655 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoRemove support for 1.0 style varargs
Andrew Lenharth [Mon, 2 May 2005 19:07:27 +0000 (19:07 +0000)]
Remove support for 1.0 style varargs

amusing of course, because we will have to go back to those semantics soon

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21654 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFixed a comment.
John Criswell [Mon, 2 May 2005 14:47:42 +0000 (14:47 +0000)]
Fixed a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21653 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agosupport multiplication by constant negative integers
Duraid Madina [Mon, 2 May 2005 07:27:14 +0000 (07:27 +0000)]
support multiplication by constant negative integers

this constmul code is still buggy though, so beware. mul by 7427 is currently
broken, for example. will fix it when I get a moment :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21652 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd support for bools to SELECT, this fixes Prolangs-C/bison from the
Duraid Madina [Mon, 2 May 2005 06:41:13 +0000 (06:41 +0000)]
add support for bools to SELECT, this fixes Prolangs-C/bison from the
testsuite, however 09-vor is still dead (hopefully for other reasons!)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21651 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoMention that arguments to functions must be first class types.
Reid Spencer [Sun, 1 May 2005 22:22:57 +0000 (22:22 +0000)]
Mention that arguments to functions must be first class types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21650 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd accessor method,
Tanya Lattner [Sun, 1 May 2005 16:22:41 +0000 (16:22 +0000)]
Add accessor method,

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21649 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdding ModuloSched SB.
Tanya Lattner [Sun, 1 May 2005 16:14:34 +0000 (16:14 +0000)]
Adding ModuloSched SB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21648 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement getelementptr.ll:test11
Chris Lattner [Sun, 1 May 2005 04:42:15 +0000 (04:42 +0000)]
Implement getelementptr.ll:test11

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21647 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agonew testcase
Chris Lattner [Sun, 1 May 2005 04:41:57 +0000 (04:41 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21646 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoCheck for volatile loads only once.
Chris Lattner [Sun, 1 May 2005 04:24:53 +0000 (04:24 +0000)]
Check for volatile loads only once.

Implement load.ll:test7

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21645 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd a new testcase
Chris Lattner [Sun, 1 May 2005 04:24:15 +0000 (04:24 +0000)]
add a new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21644 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoSMS for superblocks.
Tanya Lattner [Sun, 1 May 2005 01:27:47 +0000 (01:27 +0000)]
SMS for superblocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21643 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdded extra constructor for superblocks.
Tanya Lattner [Sun, 1 May 2005 01:25:53 +0000 (01:25 +0000)]
Added extra constructor for superblocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21642 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFixed bug in searchPath function for finding nodes between two recurrences.
Tanya Lattner [Sat, 30 Apr 2005 23:07:59 +0000 (23:07 +0000)]
Fixed bug in searchPath function for finding nodes between two recurrences.

Changed dependence analyzer to only use dep distances of 2 or less.
This is experimental.

Changed MSchedGraph to be able to represent more then one BB (first steps).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21641 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoI was sure I had thought about this and there was a reason it should work.
Andrew Lenharth [Sat, 30 Apr 2005 14:19:13 +0000 (14:19 +0000)]
I was sure I had thought about this and there was a reason it should work.
But it is entirely possible I am just crazy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21640 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoDo not use deprecated APIs
Alkis Evlogimenos [Sat, 30 Apr 2005 07:13:31 +0000 (07:13 +0000)]
Do not use deprecated APIs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21639 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix a comment that stated the wrong thing.
Reid Spencer [Sat, 30 Apr 2005 06:45:47 +0000 (06:45 +0000)]
Fix a comment that stated the wrong thing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21638 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoEliminate some random whitespace
Chris Lattner [Sat, 30 Apr 2005 04:44:07 +0000 (04:44 +0000)]
Eliminate some random whitespace

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21637 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoCodegen and legalize sin/cos/llvm.sqrt as FSIN/FCOS/FSQRT calls. This patch
Chris Lattner [Sat, 30 Apr 2005 04:43:14 +0000 (04:43 +0000)]
Codegen and legalize sin/cos/llvm.sqrt as FSIN/FCOS/FSQRT calls.  This patch
was contributed by Morten Ofstad, with some minor tweaks and bug fixes added
by me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21636 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoadd sin/cos tests
Chris Lattner [Sat, 30 Apr 2005 04:41:27 +0000 (04:41 +0000)]
add sin/cos tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21635 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoDoesn't support these nodes
Chris Lattner [Sat, 30 Apr 2005 04:26:56 +0000 (04:26 +0000)]
Doesn't support these nodes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21634 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoThis target doesn't support the FSIN/FCOS/FSQRT nodes yet
Chris Lattner [Sat, 30 Apr 2005 04:26:06 +0000 (04:26 +0000)]
This target doesn't support the FSIN/FCOS/FSQRT nodes yet

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21633 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd support for FSIN/FCOS when unsafe math ops are enabled. Patch contributed by
Chris Lattner [Sat, 30 Apr 2005 04:25:35 +0000 (04:25 +0000)]
Add support for FSIN/FCOS when unsafe math ops are enabled. Patch contributed by
Morten Ofstad!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21632 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd support for llvm.sqrt and sin/cos if unsafe math optimizations are enabled.
Chris Lattner [Sat, 30 Apr 2005 04:12:40 +0000 (04:12 +0000)]
Add support for llvm.sqrt and sin/cos if unsafe math optimizations are enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21631 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoExpose an option allowing unsafe math optimizations. Patch contributed by
Chris Lattner [Sat, 30 Apr 2005 04:09:52 +0000 (04:09 +0000)]
Expose an option allowing unsafe math optimizations.  Patch contributed by
Morten Ofstad!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21630 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoLower llvm.sqrt -> fsqrt/sqrt
Chris Lattner [Sat, 30 Apr 2005 04:07:50 +0000 (04:07 +0000)]
Lower llvm.sqrt -> fsqrt/sqrt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21629 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd a test for llvm.sqrt
Chris Lattner [Sat, 30 Apr 2005 04:07:15 +0000 (04:07 +0000)]
Add a test for llvm.sqrt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21628 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoAdd llvm.sqrt intrinsic, patch contributed by Morten Ofstad
Chris Lattner [Sat, 30 Apr 2005 03:44:07 +0000 (03:44 +0000)]
Add llvm.sqrt intrinsic, patch contributed by Morten Ofstad

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21627 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Don't depend on "guessing" what a FILE* is, just require that the actual
Reid Spencer [Sat, 30 Apr 2005 03:17:54 +0000 (03:17 +0000)]
* Don't depend on "guessing" what a FILE* is, just require that the actual
  type be obtained from a CallInst we're optimizing.
* Make it possible for getConstantStringLength to return the ConstantArray
  that it extracts in case the content is needed by an Optimization.
* Implement the strcmp optimization
* Implement the toascii optimization

This pass is now firing several to many times in the following MultiSource
tests:

Applications/Burg      -   7 (strcat,strcpy)
Applications/siod      -  13 (strcat,strcpy,strlen)
Applications/spiff     - 120 (exit,fputs,strcat,strcpy,strlen)
Applications/treecc    -  66 (exit,fputs,strcat,strcpy)
Applications/kimwitu++ -  34 (strcmp,strcpy,strlen)
Applications/SPASS     - 588 (exit,fputs,strcat,strcpy,strlen)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21626 91177308-0d34-0410-b5e6-96231b3b80d8

19 years ago* Fix signed/unsigned usage problem
Reid Spencer [Sat, 30 Apr 2005 03:06:36 +0000 (03:06 +0000)]
* Fix signed/unsigned usage problem
* Rearrange for readability.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21625 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoA new test case for the ToAsciiOptimizer.
Reid Spencer [Sat, 30 Apr 2005 01:00:52 +0000 (01:00 +0000)]
A new test case for the ToAsciiOptimizer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21624 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoA new test case for the StrCmpOptimization in -simplify-libcalls.
Reid Spencer [Sat, 30 Apr 2005 00:52:04 +0000 (00:52 +0000)]
A new test case for the StrCmpOptimization in -simplify-libcalls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21623 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoThis is StrCpy, NOT StrCat!
Reid Spencer [Fri, 29 Apr 2005 23:02:15 +0000 (23:02 +0000)]
This is StrCpy, NOT StrCat!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21622 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoGet the name of the pass right in the documentation.
Reid Spencer [Fri, 29 Apr 2005 23:01:21 +0000 (23:01 +0000)]
Get the name of the pass right in the documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21621 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoFix the success criteria for the test to make call instructions with "pow"
Reid Spencer [Fri, 29 Apr 2005 10:11:23 +0000 (10:11 +0000)]
Fix the success criteria for the test to make call instructions with "pow"
not just any occurrence of "pow".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21620 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoActually make this pass test something related to fputs.
Reid Spencer [Fri, 29 Apr 2005 10:10:17 +0000 (10:10 +0000)]
Actually make this pass test something related to fputs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21619 91177308-0d34-0410-b5e6-96231b3b80d8

19 years agoImplement the optimizations for "pow" and "fputs" library calls.
Reid Spencer [Fri, 29 Apr 2005 09:39:47 +0000 (09:39 +0000)]
Implement the optimizations for "pow" and "fputs" library calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21618 91177308-0d34-0410-b5e6-96231b3b80d8