Chris Lattner
2ce303b406
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
5991cf77b2
cleanup the test
...
llvm-svn: 20504
2005-03-06 22:24:45 +00:00
Chris Lattner
1173c52d82
check that we only insert one phi node per loop
...
llvm-svn: 20503
2005-03-06 22:23:31 +00:00
Chris Lattner
392a0bba42
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
45403e5052
implement Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
...
llvm-svn: 20501
2005-03-06 22:06:22 +00:00
Chris Lattner
656a6e37e1
testcase for A[invariant][indvar] where invariant is an instruction.
...
llvm-svn: 20500
2005-03-06 22:06:09 +00:00
Chris Lattner
ab00dc30df
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
97b8cbff7c
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
d3874fad44
minor simplifications of the code.
...
llvm-svn: 20497
2005-03-06 21:58:22 +00:00
Chris Lattner
9cd727c2ee
a regtest
...
llvm-svn: 20496
2005-03-06 21:47:40 +00:00
Chris Lattner
78f166c6ab
new directory
...
llvm-svn: 20495
2005-03-06 21:42:59 +00:00
Chris Lattner
dd3ec92085
trivial simplification
...
llvm-svn: 20494
2005-03-06 21:35:38 +00:00
Chris Lattner
238f6df546
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
1c69aab68b
New testcase for PR532
...
llvm-svn: 20492
2005-03-06 20:56:55 +00:00
Chris Lattner
6aa5f97a05
new helper method
...
llvm-svn: 20491
2005-03-06 20:55:34 +00:00
Chris Lattner
a93419c8df
new testcase reduced from the MultiSource/Applications/d failure last night.
...
llvm-svn: 20490
2005-03-06 19:40:19 +00:00
Chris Lattner
5de9dec0d1
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
96b7bf6244
this method is never called.
...
llvm-svn: 20487
2005-03-06 06:00:24 +00:00
Chris Lattner
897cc8e1ec
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
19d1c03311
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
86fe3a1fdb
rename insertEntry to insert
...
llvm-svn: 20484
2005-03-06 05:55:40 +00:00
Chris Lattner
533805e6da
Merge SymbolTable::removeEntry into SymbolTable::remove, its only caller
...
llvm-svn: 20483
2005-03-06 05:51:09 +00:00
Chris Lattner
7dfb29d5cb
remove this method.
...
llvm-svn: 20482
2005-03-06 05:50:49 +00:00
Chris Lattner
290d881f84
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
aa4138a5da
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
1b032f59e7
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
Chris Lattner
bcd8393d50
InternallyInconsistent is dead!
...
llvm-svn: 20478
2005-03-06 05:22:05 +00:00
Chris Lattner
bad0e7e2d9
Remove some really gross and hard to understand code now that
...
InternallyInconsistent is always false.
llvm-svn: 20477
2005-03-06 05:21:40 +00:00
Chris Lattner
cd56f5a8e4
Simplify some code.
...
llvm-svn: 20476
2005-03-06 05:13:42 +00:00
Chris Lattner
6be3b418e7
remove these dead methods.
...
llvm-svn: 20475
2005-03-06 02:38:24 +00:00
Chris Lattner
eb9a12cbce
remove these methods.
...
llvm-svn: 20474
2005-03-06 02:37:47 +00:00
Chris Lattner
807db03233
These methods are removed.
...
llvm-svn: 20473
2005-03-06 02:37:21 +00:00
Chris Lattner
8a982e10be
simplify and speed up some code
...
llvm-svn: 20472
2005-03-06 02:32:00 +00:00
Chris Lattner
c9b0984666
simplify some code.
...
llvm-svn: 20471
2005-03-06 02:28:23 +00:00
Chris Lattner
8344ba0dac
nuke some dead methods.
...
llvm-svn: 20470
2005-03-06 02:25:02 +00:00
Chris Lattner
ffb3778f87
This fixes PR531, a crash when running the CBE on a bytecode file.
...
The problem is that Function::renameLocalSymbols is iterating through
the symbol table planes, occasionally calling setName to rename a value
(which used to do a symbol table remove/insert pair).
The problem is that if there is only a single value in a particular type
plane that the remove will nuke the symbol table plane, and the insert
will create and insert a new one. This hoses Function::renameLocalSymbols
because it has an iterator to the old plane, under the (very reasonable)
assumption that simply renaming a value won't cause the type plane to
disappear.
This patch fixes the bug by making the rename operation a single atomic
operation, which has a side effect of making the whole thing faster too. :)
llvm-svn: 20469
2005-03-06 02:14:28 +00:00
Chris Lattner
bb28bfdcbf
Add a new method, allow symtab to poke name.
...
llvm-svn: 20468
2005-03-06 02:10:40 +00:00
Jeff Cohen
4abcea3a69
Reformat comments to fix 80 columns.
...
llvm-svn: 20467
2005-03-05 22:45:40 +00:00
Jeff Cohen
be37fa07fd
Reuse induction variables created for strength-reduced GEPs by other similar GEPs.
...
llvm-svn: 20466
2005-03-05 22:40:34 +00:00
Chris Lattner
9d0ac507ba
remove extraneous spaces from argument lists.
...
llvm-svn: 20465
2005-03-05 19:58:40 +00:00
Chris Lattner
cdb9bfc150
remove all of the various setName implementations, consolidating them into
...
Value::setName, which is no longer virtual.
llvm-svn: 20464
2005-03-05 19:51:50 +00:00
Chris Lattner
6d0a24c608
second argument to Value::setName is now gone.
...
llvm-svn: 20463
2005-03-05 19:05:20 +00:00
Chris Lattner
7c832fb0b2
Make sure the two arguments of a setcc instruction point to the same node.
...
llvm-svn: 20462
2005-03-05 19:04:31 +00:00
Chris Lattner
aa72c889a6
zap
...
llvm-svn: 20461
2005-03-05 19:04:07 +00:00
Chris Lattner
f66165674f
2nd arg to setName goes away.
...
llvm-svn: 20460
2005-03-05 19:02:15 +00:00
Chris Lattner
cc77b84fcb
Constants never get names.
...
llvm-svn: 20459
2005-03-05 19:01:59 +00:00
Chris Lattner
ed2fb1cf93
Remove the 2nd argument to Value::setName
...
llvm-svn: 20458
2005-03-05 19:01:49 +00:00
Chris Lattner
f18c871b58
Remove the second argument to Value::setName, it is never needed.
...
llvm-svn: 20457
2005-03-05 18:59:36 +00:00
Chris Lattner
15ac102737
New testcase for PR533
...
llvm-svn: 20456
2005-03-05 18:47:28 +00:00
Chris Lattner
f246ef3e2f
don't break the build on 32-bit hosts.
...
llvm-svn: 20455
2005-03-05 17:47:38 +00:00