Chris Lattner
7208616ec0
Implement xor.ll:test22
...
llvm-svn: 21713
2005-05-06 02:07:39 +00:00
Chris Lattner
4c2d3781aa
implement and.ll:test30 and set.ll:test21
...
llvm-svn: 21712
2005-05-06 01:53:19 +00:00
Chris Lattner
8169e16268
new testcase for unneeded and
...
llvm-svn: 21711
2005-05-06 01:52:52 +00:00
Chris Lattner
838dae0991
new testcase
...
llvm-svn: 21710
2005-05-06 01:51:05 +00:00
Chris Lattner
dd1e562ec3
implement or.ll:test20
...
llvm-svn: 21709
2005-05-06 00:58:50 +00:00
Chris Lattner
ce8dd82d66
new testcase
...
llvm-svn: 21708
2005-05-06 00:58:09 +00:00
Misha Brukman
584ed83d4a
* Order #includes alphabetically
...
* Remove commented-out debug printouts
llvm-svn: 21707
2005-05-05 23:45:17 +00:00
Misha Brukman
c0aac8e858
Remove extra blank line
...
llvm-svn: 21706
2005-05-05 23:43:47 +00:00
Misha Brukman
3f670d29dc
* Use consistent spacing for function arguments
...
* Output single-character strings as chars
llvm-svn: 21705
2005-05-05 22:38:21 +00:00
Misha Brukman
291f6b7223
Remove vim settings from source code; people should use llvm/utils/vim/vimrc
...
llvm-svn: 21704
2005-05-05 22:33:09 +00:00
Misha Brukman
08d66b4e10
Convert tabs to spaces
...
llvm-svn: 21703
2005-05-05 22:30:40 +00:00
Chris Lattner
4a454c80db
new testcase for PR541
...
llvm-svn: 21702
2005-05-05 22:23:10 +00:00
Chris Lattner
1243e1c9f1
add support for undef values of opaque type, addressing PR541
...
llvm-svn: 21701
2005-05-05 22:21:19 +00:00
Chris Lattner
7ddaeb448b
Add some extra checks. Opaque types don't have a null marker.
...
llvm-svn: 21700
2005-05-05 20:57:00 +00:00
Chris Lattner
2cc59a8066
new testcase
...
llvm-svn: 21699
2005-05-05 17:57:24 +00:00
Chris Lattner
7876156ba0
When hitting an unsupported intrinsic, actually print it
...
Lower debug info to noops.
llvm-svn: 21698
2005-05-05 17:55:17 +00:00
Andrew Lenharth
2dbbb3ab84
ctpop lowering in legalize
...
llvm-svn: 21697
2005-05-05 15:55:21 +00:00
Chris Lattner
807aa20f67
Fix a bug compimling Ruby, fixing this testcase:
...
LowerSetJmp/2005-05-05-OldUses.ll
llvm-svn: 21696
2005-05-05 15:47:43 +00:00
Chris Lattner
fa58898845
new testcase for a bug Jim found
...
llvm-svn: 21695
2005-05-05 15:47:16 +00:00
Andrew Lenharth
b8e94c3499
fix typo
...
llvm-svn: 21693
2005-05-04 19:25:37 +00:00
Andrew Lenharth
aed06a0e92
Well, add support for ct* for 21264 only.
...
21164 is broken until expand works.
llvm-svn: 21692
2005-05-04 19:12:09 +00:00
Andrew Lenharth
dd426dd04d
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
llvm-svn: 21691
2005-05-04 19:11:05 +00:00
Chris Lattner
809dfac421
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; }
llvm-svn: 21690
2005-05-04 19:10:26 +00:00
Chris Lattner
3538a4f6cc
new testcase
...
llvm-svn: 21689
2005-05-04 19:05:02 +00:00
Reid Spencer
282d057485
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
llvm-svn: 21688
2005-05-04 18:58:28 +00:00
Reid Spencer
f9a4a9681d
Make sure both optimization cases get tested.
...
llvm-svn: 21687
2005-05-04 17:45:10 +00:00
Reid Spencer
190bb26157
Add a test case for the IsDigitOptimization class.
...
llvm-svn: 21686
2005-05-04 17:34:55 +00:00
Andrew Lenharth
702859084b
comment fix
...
llvm-svn: 21685
2005-05-04 15:56:34 +00:00
Andrew Lenharth
dd9d3ac72b
see if the legalize code propery compensates for the additional zeros introduced
...
llvm-svn: 21684
2005-05-04 15:51:07 +00:00
Reid Spencer
e84ee1bcd0
Correct the descriptions of WHILE...END and RROT. Thanks to Lalo Martins
...
for pointing out these errors.
llvm-svn: 21683
2005-05-04 15:43:40 +00:00
Reid Spencer
7063d1aa71
WHILE does not "pop" a value, it "examines" to top of stack. Make this
...
clear in the applicable comment.
llvm-svn: 21682
2005-05-04 15:33:48 +00:00
Andrew Lenharth
6b551024ac
added a use of ctpop to debug stuff with
...
llvm-svn: 21681
2005-05-04 15:20:16 +00:00
Andrew Lenharth
5be6f131e6
fixup argument
...
llvm-svn: 21680
2005-05-04 14:58:31 +00:00
Reid Spencer
1e520fd661
* 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
llvm-svn: 21679
2005-05-04 03:20:21 +00:00
Misha Brukman
23e9f163ad
Minor clean-ups
...
llvm-svn: 21678
2005-05-03 20:30:34 +00:00
Andrew Lenharth
1d463526b4
initial descriptions of count intrinsics
...
llvm-svn: 21677
2005-05-03 18:01:48 +00:00
Andrew Lenharth
5e177826fd
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.
llvm-svn: 21676
2005-05-03 17:19:30 +00:00
Reid Spencer
f436286cf6
Fix this test to succeed even if "strchr" is on a call instruction.
...
llvm-svn: 21675
2005-05-03 17:09:38 +00:00
Reid Spencer
a6bbd18023
Add a test case for SPrintFOptimization.
...
llvm-svn: 21674
2005-05-03 17:08:45 +00:00
Andrew Lenharth
38cc7bacb4
yea yea yea
...
llvm-svn: 21673
2005-05-03 17:00:48 +00:00
Andrew Lenharth
2e18c628c4
note the vararg change, and other stuff
...
llvm-svn: 21672
2005-05-03 16:59:09 +00:00
Andrew Lenharth
bf50ff58ae
pre add count tests
...
llvm-svn: 21671
2005-05-03 16:49:48 +00:00
Chris Lattner
c22333348e
fix a bug in the 1 index GEP handling code
...
llvm-svn: 21670
2005-05-03 16:44:45 +00:00
Reid Spencer
38cabd7265
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
llvm-svn: 21669
2005-05-03 07:23:44 +00:00
Reid Spencer
a064a84067
Add a test case for StrChrOptimizer for -simplify-libcalls
...
llvm-svn: 21668
2005-05-03 06:22:41 +00:00
Misha Brukman
d317d937b2
Clean up and correct llvmc configurations for C and C++
...
llvm-svn: 21667
2005-05-03 06:13:18 +00:00
Misha Brukman
18aa1d6438
std::string(NULL) does not a proper constructor make
...
llvm-svn: 21666
2005-05-03 06:10:51 +00:00
Chris Lattner
8298120f17
add direct support for making GEP instrs with one index
...
llvm-svn: 21665
2005-05-03 05:43:30 +00:00
Misha Brukman
cc42755633
Omit periods at the end of command-line switch explanations for consistency
...
llvm-svn: 21664
2005-05-03 05:36:14 +00:00
Reid Spencer
d18dbcbf4c
A new test case for the LLVMMemSetOptimization.
...
llvm-svn: 21663
2005-05-03 04:00:24 +00:00