Owen Anderson
76e8d46c1b
Remove an unused method.
...
llvm-svn: 37402
2007-06-03 05:58:25 +00:00
Owen Anderson
d7388dc4ce
There's no need to have an Expression class... Value works just as well! This simplifies a lot of code.
...
llvm-svn: 37401
2007-06-03 05:55:58 +00:00
Devang Patel
bdacf6c9c9
Insert new instructions in AliasSet.
...
llvm-svn: 37390
2007-06-01 22:15:31 +00:00
Owen Anderson
fadd9e4a7a
clean() needs to process things in topological order.
...
llvm-svn: 37389
2007-06-01 22:00:37 +00:00
Owen Anderson
da27462cea
Fix Expression comparison, which in turn fixes a value numbering error.
...
llvm-svn: 37386
2007-06-01 17:34:47 +00:00
Owen Anderson
6e39e65e7f
Add a topological sort function.
...
llvm-svn: 37376
2007-05-31 22:44:11 +00:00
Owen Anderson
919ee81e51
Attempt to fix up phi_translate.
...
llvm-svn: 37366
2007-05-31 00:42:15 +00:00
Devang Patel
044601033f
Fix typo.
...
llvm-svn: 37360
2007-05-30 15:29:37 +00:00
Chris Lattner
fd963f9138
Fix Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll and the second
...
half of PR1421, by not decimating structs with holes that are the source and
destination of a memcpy.
llvm-svn: 37358
2007-05-30 06:11:23 +00:00
Owen Anderson
328c980fad
Fix a typo
...
llvm-svn: 37350
2007-05-29 23:34:14 +00:00
Owen Anderson
0f46c29ffd
Re-fix a bug, where I was now being too aggressive.
...
llvm-svn: 37348
2007-05-29 23:26:30 +00:00
Owen Anderson
cfeeaac401
Use proper debugging facilities so other people don't have to look at my commented-out
...
debugging lines.
llvm-svn: 37347
2007-05-29 23:15:21 +00:00
Owen Anderson
1e1d693893
Comment debug code out that I accidentally uncommented last time.
...
llvm-svn: 37346
2007-05-29 22:43:03 +00:00
Owen Anderson
707e37c6a6
Add a place where I missed using the maximal set. Note that using the maximal
...
set this way is _SLOW_. Somewhere down the line, I'll look at speeding it up.
llvm-svn: 37345
2007-05-29 22:35:41 +00:00
Owen Anderson
83bd7bcf6c
Very first part of a GVN-PRE implementation. It currently performs a bunch of analysis, and nothing more. It is also quite slow for the moment. However,
...
it should give a sense of what's going on.
llvm-svn: 37343
2007-05-29 21:53:49 +00:00
Chris Lattner
8d43dc619d
Fix PR1446 by not scalarrepl'ing giant structures.
...
llvm-svn: 37326
2007-05-24 18:43:04 +00:00
Chris Lattner
4cc07421ee
fix a miscompilation when passing a float through varargs
...
llvm-svn: 37297
2007-05-23 01:17:04 +00:00
Chris Lattner
dda5066a5e
Fix Transforms/InstCombine/2007-05-18-CastFoldBug.ll, a bug that devastates
...
objc code due to the way the FE lowers objc message sends.
llvm-svn: 37256
2007-05-19 06:51:32 +00:00
Chris Lattner
a13d75f270
Handle negative strides much more optimally. This compiles X86/lsr-negative-stride.ll
...
into:
_t:
movl 8(%esp), %ecx
movl 4(%esp), %eax
cmpl %ecx, %eax
je LBB1_3 #bb17
LBB1_1: #bb
cmpl %ecx, %eax
jg LBB1_4 #cond_true
LBB1_2: #cond_false
subl %eax, %ecx
cmpl %ecx, %eax
jne LBB1_1 #bb
LBB1_3: #bb17
ret
LBB1_4: #cond_true
subl %ecx, %eax
cmpl %ecx, %eax
jne LBB1_1 #bb
jmp LBB1_3 #bb17
instead of:
_t:
subl $4, %esp
movl %esi, (%esp)
movl 12(%esp), %ecx
movl 8(%esp), %eax
cmpl %ecx, %eax
je LBB1_4 #bb17
LBB1_1: #bb.outer
movl %ecx, %edx
negl %edx
LBB1_2: #bb
cmpl %ecx, %eax
jle LBB1_5 #cond_false
LBB1_3: #cond_true
addl %edx, %eax
cmpl %ecx, %eax
jne LBB1_2 #bb
LBB1_4: #bb17
movl (%esp), %esi
addl $4, %esp
ret
LBB1_5: #cond_false
movl %ecx, %edx
subl %eax, %edx
movl %eax, %esi
addl %esi, %esi
cmpl %ecx, %esi
je LBB1_4 #bb17
LBB1_6: #cond_false.bb.outer_crit_edge
movl %edx, %ecx
jmp LBB1_1 #bb.outer
llvm-svn: 37252
2007-05-19 01:22:21 +00:00
Devang Patel
6e8f1aa332
Fix PR1431
...
Test case at Transformations/SCCP/2007-05-16-InvokeCrash.ll
llvm-svn: 37185
2007-05-17 22:10:15 +00:00
Chris Lattner
dfc6f4a06c
Fix Transforms/InstCombine/2007-05-14-Crash.ll
...
llvm-svn: 37057
2007-05-15 00:16:00 +00:00
Dan Gohman
7616b6f30c
Correct a few comments.
...
llvm-svn: 37034
2007-05-14 14:31:17 +00:00
Chris Lattner
119ece07be
significantly improve debug output of lsr
...
llvm-svn: 36996
2007-05-11 22:40:34 +00:00
Dan Gohman
167379e73a
Fix typos.
...
llvm-svn: 36994
2007-05-11 21:10:54 +00:00
Dan Gohman
2e4ac0dea5
This patch extends the LoopUnroll pass to be able to unroll loops
...
with unknown trip counts. This is left off by default, and a
command-line option enables it. It also begins to separate loop
unrolling into a utility routine; eventually it might be made usable
from other passes.
It currently works by inserting conditional branches between each
unrolled iteration, unless it proves that the trip count is a
multiple of a constant integer > 1, which it currently only does in
the rare case that the trip count expression is a Mul operator with
a ConstantInt operand. Eventually this information might be provided
by other sources, for example by a pass that peels/splits the loop
for this purpose.
llvm-svn: 36990
2007-05-11 20:53:41 +00:00
Chris Lattner
3936efb43b
fix regressions from my previous checking, including
...
Transforms/InstCombine/2006-12-08-ICmp-Combining.ll
llvm-svn: 36989
2007-05-11 16:58:45 +00:00
Chris Lattner
f7adc33cbd
fix Transforms/InstCombine/2007-05-10-icmp-or.ll
...
llvm-svn: 36984
2007-05-11 05:55:56 +00:00
Devang Patel
1f12d0b50c
Fix PR1333
...
Testcases :
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049451.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070507/049452.html
llvm-svn: 36955
2007-05-09 08:24:12 +00:00
Dan Gohman
7459c19c81
Fix various whitespace inconsistencies.
...
llvm-svn: 36936
2007-05-08 15:19:19 +00:00
Dan Gohman
e9789171b0
Correct the comment for ApproximateLoopSize to reflect what it actually does.
...
llvm-svn: 36935
2007-05-08 15:14:19 +00:00
Dale Johannesen
842aef302e
Don't generate branch to entry block.
...
llvm-svn: 36917
2007-05-08 01:01:04 +00:00
Nick Lewycky
c2306ff5b4
Fix typo in comment.
...
llvm-svn: 36873
2007-05-06 13:37:16 +00:00
Chris Lattner
619ffa3881
Fix a bug in my previous patch
...
llvm-svn: 36857
2007-05-06 07:24:03 +00:00
Chris Lattner
26c55e2dda
Implement Transforms/InstCombine/cast_ptr.ll
...
llvm-svn: 36809
2007-05-05 22:41:33 +00:00
Chris Lattner
46b06d19d4
wrap long lines
...
llvm-svn: 36807
2007-05-05 22:32:24 +00:00
Chris Lattner
abff2ede40
Fix Transforms/LoopUnroll/2007-05-05-UnrollMiscomp.ll and PR1385.
...
If we have a LCSSA, only modify the input value if the inval was defined
by an instruction in the loop. If defined by something before the loop,
it is still valid.
llvm-svn: 36784
2007-05-05 18:49:57 +00:00
Chris Lattner
fba294126e
make a temporary for *SI, no functionality change.
...
llvm-svn: 36782
2007-05-05 18:36:36 +00:00
Chris Lattner
750321383f
Fix InstCombine/2007-05-04-Crash.ll and PR1384
...
llvm-svn: 36775
2007-05-05 01:59:31 +00:00
Dan Gohman
a97484da91
Use IntrinsicInst to test for prefetch instructions, which is ever so
...
slightly nicer than using CallInst with an extra check; thanks Chris.
llvm-svn: 36743
2007-05-04 14:59:09 +00:00
Dan Gohman
e4d5ae9fcd
Allow strength reduction to make use of addressing modes for the
...
address operand in a prefetch intrinsic.
llvm-svn: 36713
2007-05-03 23:20:33 +00:00
Devang Patel
cd45427a87
Drop 'const'
...
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel
8ee9065162
Use 'static const char' instead of 'static const int'.
...
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Devang Patel
38a66bc82e
Do not use typeinfo to identify pass in pass manager.
...
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Chris Lattner
5cb586acf5
fix a bug triggered by 403.gcc
...
llvm-svn: 36527
2007-04-28 05:27:36 +00:00
Chris Lattner
13b1e24f41
Fix several latent bugs in EmitGEPOffset that didn't manifest with its
...
previous clients. This fixes MallocBench/gs
llvm-svn: 36525
2007-04-28 04:52:43 +00:00
Chris Lattner
22d3205e80
uhn zap cvs
...
llvm-svn: 36523
2007-04-28 03:50:56 +00:00
Chris Lattner
56ac7ba950
Implement PR1345 and Transforms/InstCombine/bitcast-gep.ll
...
llvm-svn: 36521
2007-04-28 00:57:34 +00:00
Chris Lattner
e0fe3b5c35
refactor some code relating to pointer cast xforms, pulling it out of the codepath
...
for unrelated casts.
llvm-svn: 36511
2007-04-27 17:44:50 +00:00
Zhou Sheng
8c150f133c
Using APInt more efficiently.
...
llvm-svn: 36475
2007-04-26 16:42:07 +00:00
Devang Patel
e5765bd115
Mem2Reg does not need TargetData.
...
llvm-svn: 36444
2007-04-25 18:32:35 +00:00