Chris Lattner
ea2e61b83a
Allow the live interval analysis pass to be a bit more aggressive about
...
numbering values in live ranges for physical registers.
The alpha backend currently generates code that looks like this:
vreg = preg
...
preg = vreg
use preg
...
preg = vreg
use preg
etc. Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.
In the case of the Alpha, this allows this testcase:
void "foo"(int %blah) {
store int 5, int *%MyVar
store int 12, int* %MyVar2
ret void
}
to compile to:
foo:
ldgp $29, 0($27)
ldiq $0,5
stl $0,MyVar
ldiq $0,12
stl $0,MyVar2
ret $31,($26),1
instead of:
foo:
ldgp $29, 0($27)
bis $29,$29,$0
ldiq $1,5
bis $0,$0,$29
stl $1,MyVar
ldiq $1,12
bis $0,$0,$29
stl $1,MyVar2
ret $31,($26),1
This does not seem to have any noticable effect on X86 code.
This fixes PR535.
llvm-svn: 20536
2005-03-09 23:05:19 +00:00
Andrew Lenharth
65ef5bced7
minor correction for Register that isn't used
...
llvm-svn: 20535
2005-03-09 20:48:23 +00:00
Chris Lattner
e0d0c64c8a
constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG
...
This allows the alpha backend to compile:
bool %test(uint %P) {
%c = seteq uint %P, 0
ret bool %c
}
into:
test:
ldgp $29, 0($27)
ZAP $16,240,$0
CMPEQ $0,0,$0
AND $0,1,$0
ret $31,($26),1
instead of:
test:
ldgp $29, 0($27)
ZAP $16,240,$0
ldiq $1,0
ZAP $1,240,$1
CMPEQ $0,$1,$0
AND $0,1,$0
ret $31,($26),1
... and fixes PR534.
llvm-svn: 20534
2005-03-09 18:37:12 +00:00
Chris Lattner
3cf502890c
correct the computation of the isAbstract bit for types.
...
llvm-svn: 20533
2005-03-09 17:34:27 +00:00
Chris Lattner
30ac52c4b4
Fix Regression/Analysis/BasicAA/2005-03-09-BrokenBasicAA.ll, a miscompilation
...
that Alkis found with Java, thanks Alkis!
llvm-svn: 20531
2005-03-09 16:29:52 +00:00
Chris Lattner
0d91a3c867
new testcase for a -basicaa bug that Alkis found with Java.
...
llvm-svn: 20530
2005-03-09 16:29:22 +00:00
Reid Spencer
220e2f8519
Fix a typo in an assertion comment.
...
Patch contributed by Vladimir Merzliakov.
llvm-svn: 20529
2005-03-09 15:19:41 +00:00
Chris Lattner
5c9c611068
Use static_cast and #include Instructions.h
...
llvm-svn: 20528
2005-03-09 05:35:16 +00:00
Chris Lattner
4d755dc735
Export two methods for getting -X and A-B.
...
llvm-svn: 20527
2005-03-09 05:34:41 +00:00
Chris Lattner
43d8ea234d
export two methods
...
llvm-svn: 20526
2005-03-09 05:34:23 +00:00
Chris Lattner
9f3c0326f4
get bugpoint working on ia64, by building .so's with -fpic. :)
...
llvm-svn: 20525
2005-03-09 03:31:02 +00:00
Chris Lattner
496d623600
Fix a crash handling 'undef bool', fixing an llc crash on 186.crafty
...
llvm-svn: 20523
2005-03-08 22:53:09 +00:00
Reid Spencer
b0ca4aa8cd
Patch to make assembly output compatible with mingw compilation (identical
...
to cygwin)
llvm-svn: 20520
2005-03-08 17:02:05 +00:00
Chris Lattner
667186f10f
Make sure to remove all dead type names from the symbol table, not just
...
struct types. This fixes Regression/CodeGen/CBackend/2005-03-08-RecursiveTypeCrash.ll,
a crash on Java output that Alkis reported.
llvm-svn: 20519
2005-03-08 16:19:59 +00:00
Chris Lattner
3883289586
new testcase that crashes the CBE.
...
llvm-svn: 20518
2005-03-08 16:19:02 +00:00
Jeff Cohen
ffe6edba34
Clarify inability to generate assembly, and note that VC++ Express works.
...
llvm-svn: 20516
2005-03-08 03:56:50 +00:00
Misha Brukman
e29de97ab7
Single characters should be printed out as chars, not strings.
...
llvm-svn: 20515
2005-03-08 00:26:08 +00:00
Chris Lattner
9d2e3380d6
Various cleanups and clarifications, thanks to Gabor Greif for contributing this patch!
...
llvm-svn: 20514
2005-03-07 22:13:59 +00:00
Chris Lattner
1b4201e69f
Fix problems compiling with G++ 4.x.x with -pedantic. Thanks to
...
Vladimir Merzliakov for the patch!
llvm-svn: 20513
2005-03-07 20:35:45 +00:00
Chris Lattner
084980cdcd
fix another typo
...
llvm-svn: 20512
2005-03-07 20:31:38 +00:00
Chris Lattner
5f2c1454d4
fix typeo that Gabor Greif noticed!
...
llvm-svn: 20511
2005-03-07 20:30:51 +00:00
Chris Lattner
72c87c7c54
move the reassociation pass after the LICM pass. This speeds up mgrid
...
from 10.27s to 9.57s with the CBE.
llvm-svn: 20508
2005-03-07 03:19:50 +00:00
Chris Lattner
9cc39e2f8b
Fix an apparent ambiguity compiling on PPC
...
llvm-svn: 20507
2005-03-07 02:59:36 +00:00
Chris Lattner
6d6f980ca7
fix a bug where we thought arguments were constants :(
...
llvm-svn: 20506
2005-03-06 22:52:29 +00:00
Chris Lattner
2174b70c68
Fix Regression/Transforms/LoopStrengthReduce/dont_insert_redundant_ops.ll,
...
hopefully not breaking too many other things.
llvm-svn: 20505
2005-03-06 22:36:12 +00:00
Chris Lattner
9471eb53aa
cleanup the test
...
llvm-svn: 20504
2005-03-06 22:24:45 +00:00
Chris Lattner
ad1fa9275b
check that we only insert one phi node per loop
...
llvm-svn: 20503
2005-03-06 22:23:31 +00:00
Chris Lattner
0f34140f90
Add testcase for this:
...
(3) Do not reduce element sizes of small power of two:
char s[10];
for (i)
...s[i] ...
when the indvar is not eliminable.
llvm-svn: 20502
2005-03-06 22:15:24 +00:00
Chris Lattner
a29e319d54
implement Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
...
llvm-svn: 20501
2005-03-06 22:06:22 +00:00
Chris Lattner
983422f2c8
testcase for A[invariant][indvar] where invariant is an instruction.
...
llvm-svn: 20500
2005-03-06 22:06:09 +00:00
Chris Lattner
482fc889e1
add test for this:
...
(1) Allow loop invariant expressions to come before the induction variable (instead of just
constants):
int x;
for (i)
...a[x][i]
llvm-svn: 20499
2005-03-06 22:04:27 +00:00
Chris Lattner
85a611063e
Add test for this:
...
Allow operands after the induction variable (no restrictions):
int x;
for (i)
j = .....
a[i][x][j]
llvm-svn: 20498
2005-03-06 22:01:42 +00:00
Chris Lattner
18fdd1e9f6
minor simplifications of the code.
...
llvm-svn: 20497
2005-03-06 21:58:22 +00:00
Chris Lattner
84be025747
a regtest
...
llvm-svn: 20496
2005-03-06 21:47:40 +00:00
Chris Lattner
de7a8d1e1c
new directory
...
llvm-svn: 20495
2005-03-06 21:42:59 +00:00
Chris Lattner
53c34a2147
trivial simplification
...
llvm-svn: 20494
2005-03-06 21:35:38 +00:00
Chris Lattner
b4e635cfc4
Fix a bug where we could corrupt a parent loop's header info if we unrolled
...
a nested loop. This fixes Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll
and PR532
llvm-svn: 20493
2005-03-06 20:57:32 +00:00
Chris Lattner
7ca2ddfbb8
New testcase for PR532
...
llvm-svn: 20492
2005-03-06 20:56:55 +00:00
Chris Lattner
ef140e77e6
new helper method
...
llvm-svn: 20491
2005-03-06 20:55:34 +00:00
Chris Lattner
cfd1a43bb0
new testcase reduced from the MultiSource/Applications/d failure last night.
...
llvm-svn: 20490
2005-03-06 19:40:19 +00:00
Chris Lattner
3183eeac8f
move some method declarations around to make it clear that users should
...
not call insert(Value *Val), remove(Value* Val), or
changeName(Value *V, const std::string &Name)
llvm-svn: 20488
2005-03-06 06:03:44 +00:00
Chris Lattner
eddc6b4dc2
this method is never called.
...
llvm-svn: 20487
2005-03-06 06:00:24 +00:00
Chris Lattner
5d6a3ae953
cleanup some html
...
remove a statement that is no longer true
remove comment about a dead method.
llvm-svn: 20486
2005-03-06 06:00:13 +00:00
Chris Lattner
0371aef9a2
the only caller of insertEntry is insert, inline it and remove insertEntry
...
llvm-svn: 20485
2005-03-06 05:56:02 +00:00
Chris Lattner
46653269f4
rename insertEntry to insert
...
llvm-svn: 20484
2005-03-06 05:55:40 +00:00
Chris Lattner
b1ac7bc7f3
Merge SymbolTable::removeEntry into SymbolTable::remove, its only caller
...
llvm-svn: 20483
2005-03-06 05:51:09 +00:00
Chris Lattner
e0a963283c
remove this method.
...
llvm-svn: 20482
2005-03-06 05:50:49 +00:00
Chris Lattner
57a7a2d1cf
Delete the really inefficient method: void remove(const Type* Typ);
...
Speed up the symbol stripping code by avoiding a linear search of the
type table.
Get rid of removeEntry(type_iterator), since 'remove' is exactly the same
operation.
llvm-svn: 20481
2005-03-06 05:46:41 +00:00
Chris Lattner
6871e22bce
Delete the really inefficient method: void remove(const Type* Typ);
...
Get rid of removeEntry(type_iterator), since 'remove' is exactly the same
operation.
llvm-svn: 20480
2005-03-06 05:46:00 +00:00
Chris Lattner
0ed850a944
Make this MUCH faster by avoiding a linear search in the symbol table code.
...
llvm-svn: 20479
2005-03-06 05:42:36 +00:00