Andrew Lenharth
590091975c
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
2005-05-04 19:12:09 +00:00
Andrew Lenharth
fecf095292
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
2005-05-04 19:11:05 +00:00
Chris Lattner
693787a5ec
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
2005-05-04 19:10:26 +00:00
Chris Lattner
3a9a7701f0
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21689 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-04 19:05:02 +00:00
Reid Spencer
cea6559f60
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
2005-05-04 18:58:28 +00:00
Reid Spencer
3ec93c593c
Make sure both optimization cases get tested.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21687 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-04 17:45:10 +00:00
Reid Spencer
57ff221e24
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
2005-05-04 17:34:55 +00:00
Andrew Lenharth
e8aebf79e1
comment fix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21685 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-04 15:56:34 +00:00
Andrew Lenharth
d3942b4701
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
2005-05-04 15:51:07 +00:00
Reid Spencer
68fb553332
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
2005-05-04 15:43:40 +00:00
Reid Spencer
535c619e2b
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
2005-05-04 15:33:48 +00:00
Andrew Lenharth
1419711ece
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
2005-05-04 15:20:16 +00:00
Andrew Lenharth
7ba1ea545c
fixup argument
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21680 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-04 14:58:31 +00:00
Reid Spencer
58b563ce43
* 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
2005-05-04 03:20:21 +00:00
Misha Brukman
0b861485ec
Minor clean-ups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21678 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 20:30:34 +00:00
Andrew Lenharth
ec370fd3dc
initial descriptions of count intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21677 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 18:01:48 +00:00
Andrew Lenharth
691ef2ba06
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
2005-05-03 17:19:30 +00:00
Reid Spencer
c88e681498
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
2005-05-03 17:09:38 +00:00
Reid Spencer
82be985b99
Add a test case for SPrintFOptimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21674 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 17:08:45 +00:00
Andrew Lenharth
f166ec612e
yea yea yea
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21673 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 17:00:48 +00:00
Andrew Lenharth
30a1f8f234
note the vararg change, and other stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21672 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 16:59:09 +00:00
Andrew Lenharth
279a7b21bb
pre add count tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21671 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 16:49:48 +00:00
Chris Lattner
f818cfe096
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
2005-05-03 16:44:45 +00:00
Reid Spencer
21506ff821
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
2005-05-03 07:23:44 +00:00
Reid Spencer
34efdf8b38
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
2005-05-03 06:22:41 +00:00
Misha Brukman
e7d52b6b5c
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
2005-05-03 06:13:18 +00:00
Misha Brukman
3a98ff8d3a
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
2005-05-03 06:10:51 +00:00
Chris Lattner
38bacf29e8
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
2005-05-03 05:43:30 +00:00
Misha Brukman
4c42937b64
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
2005-05-03 05:36:14 +00:00
Reid Spencer
3b7c6dca78
A new test case for the LLVMMemSetOptimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21663 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 04:00:24 +00:00
Jeff Cohen
a97e8db835
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
2005-05-03 03:13:01 +00:00
Reid Spencer
9974ddab2b
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
2005-05-03 02:54:54 +00:00
Reid Spencer
e6ec8cc8c6
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
2005-05-03 01:43:45 +00:00
Reid Spencer
f31918b84a
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
2005-05-03 00:52:19 +00:00
Reid Spencer
d2db880222
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
2005-05-03 00:50:43 +00:00
Reid Spencer
a1b4390938
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
2005-05-02 23:59:26 +00:00
Reid Spencer
6302abe69f
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
2005-05-02 23:07:14 +00:00
Andrew Lenharth
8b9e3e6511
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
2005-05-02 21:25:47 +00:00
Andrew Lenharth
abc73b3e5d
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
2005-05-02 19:07:27 +00:00
John Criswell
fe3706a12b
Fixed a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21653 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-02 14:47:42 +00:00
Duraid Madina
40c9e6be3e
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
2005-05-02 07:27:14 +00:00
Duraid Madina
4bd708d8a6
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
2005-05-02 06:41:13 +00:00
Reid Spencer
a7e302aadc
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
2005-05-01 22:22:57 +00:00
Tanya Lattner
21d6ff546d
Add accessor method,
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21649 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 16:22:41 +00:00
Tanya Lattner
9d6b6280c7
Adding ModuloSched SB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21648 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 16:14:34 +00:00
Chris Lattner
9fb25db11e
Implement getelementptr.ll:test11
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21647 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 04:42:15 +00:00
Chris Lattner
f05fd0893e
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21646 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 04:41:57 +00:00
Chris Lattner
37366c1ba8
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
2005-05-01 04:24:53 +00:00
Chris Lattner
45c2bdd2f9
add a new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21644 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 04:24:15 +00:00
Tanya Lattner
874abe50ac
SMS for superblocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21643 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 01:27:47 +00:00