Chris Lattner
bf3b57f221
optimize single MBB loops better. In particular, produce:
...
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
jne LBB1_57 #bb207.i
jmp LBB1_64 #cond_next255.i
intead of:
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
je LBB1_64 #cond_next255.i
jmp LBB1_57 #bb207.i
This eliminates a branch per iteration of the loop. This hurted PPC
particularly, because the extra branch meant another dispatch group for each
iteration of the loop.
llvm-svn: 31530
2006-11-08 01:03:21 +00:00
Devang Patel
3c8eb62560
Update new pass managers to use PassManagerAnalysisHelper API.
...
llvm-svn: 31526
2006-11-07 22:56:50 +00:00
Chris Lattner
4967f6ddea
scalarrepl should not split the two elements of the vsiidx array:
...
int func(vFloat v0, vFloat v1) {
int ii;
vSInt32 vsiidx[2];
vsiidx[0] = _mm_cvttps_epi32(v0);
vsiidx[1] = _mm_cvttps_epi32(v1);
ii = ((int *) vsiidx)[4];
return ii;
}
This fixes Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
llvm-svn: 31524
2006-11-07 22:42:47 +00:00
Devang Patel
f68a34908d
Introduce PassManagerAnalysisHelper.
...
llvm-svn: 31522
2006-11-07 22:35:17 +00:00
Devang Patel
c290c8a2c8
Add PassManager_New.
...
llvm-svn: 31521
2006-11-07 22:23:34 +00:00
Evan Cheng
922e191116
Fixed a bug which causes x86 be to incorrectly match
...
shuffle v, undef, <2, ?, 3, ?>
to movhlps
It should match to unpckhps instead.
Added proper matching code for
shuffle v, undef, <2, 3, 2, 3>
llvm-svn: 31519
2006-11-07 22:14:24 +00:00
Devang Patel
05e1a970f3
Add ModulePassManager_New.
...
llvm-svn: 31517
2006-11-07 22:03:15 +00:00
Jim Laskey
21d4d895ca
Accidently reran commit.
...
llvm-svn: 31516
2006-11-07 21:58:55 +00:00
Devang Patel
0c2012ffb3
Add FunctionPassManager_New.
...
llvm-svn: 31515
2006-11-07 21:49:50 +00:00
Jim Laskey
a919ba9abd
Missed a label map, reverting till covered.
...
llvm-svn: 31514
2006-11-07 21:37:31 +00:00
Devang Patel
6e5a113923
Add BasicBlockPassManager_New.
...
llvm-svn: 31513
2006-11-07 21:31:57 +00:00
Jim Laskey
21ce53b94e
Missed a label map, reverting till covered.
...
llvm-svn: 31512
2006-11-07 20:53:05 +00:00
Andrew Lenharth
30b254e48b
Optionally allow comparison operations from affect DSGraphs
...
llvm-svn: 31511
2006-11-07 20:39:05 +00:00
Andrew Lenharth
1ee904e503
Allow loop detection during debug in forwarding nodes, and revert auxcall patch as it make 176.gcc untenable
...
llvm-svn: 31510
2006-11-07 20:36:02 +00:00
Andrew Lenharth
cb902c4942
debug type for DSA TD
...
llvm-svn: 31509
2006-11-07 20:35:11 +00:00
Jim Laskey
6ea4fae838
1. Add a pass to fold debug label instructions so a debug info client can detect
...
empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
llvm-svn: 31507
2006-11-07 19:33:46 +00:00
Chris Lattner
be7033b346
add a note from viterbi
...
llvm-svn: 31506
2006-11-07 18:30:21 +00:00
Chris Lattner
b18177bfab
Enable improved spilling costs by default. This speeds up viterbi on x86
...
by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%.
On PPC, this speeds up fourinarow by 18%, and probably other things as well.
llvm-svn: 31504
2006-11-07 18:04:58 +00:00
Jim Laskey
6a9342166b
Use correct value for float HUGH_VAL.
...
llvm-svn: 31500
2006-11-07 12:25:45 +00:00
Evan Cheng
60c6846d21
Add post-indexed load / store transformations.
...
llvm-svn: 31498
2006-11-07 09:03:05 +00:00
Chris Lattner
01d039cc44
Add a new llcbeta option. This speeds up viterbi from 12.34 to 8.76s on
...
X86. If happy, I'll enable this by default.
llvm-svn: 31493
2006-11-07 07:18:40 +00:00
Reid Spencer
78c84a0328
Unbreak X86/ELF Debugging. Somehow this line got lost in Jim's cleanup.
...
llvm-svn: 31492
2006-11-07 06:36:36 +00:00
Chris Lattner
94c231f453
Fix PR988 and CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll.
...
The low part goes in the first operand of expandop, not the second one.
llvm-svn: 31487
2006-11-07 04:11:44 +00:00
Chris Lattner
d94477f6c9
fix encoding of BLR
...
llvm-svn: 31485
2006-11-07 01:51:50 +00:00
Evan Cheng
f24d15f969
Remove dead code; added a missing null ptr check.
...
llvm-svn: 31478
2006-11-06 21:33:46 +00:00
Chris Lattner
7e885005ba
add a note
...
llvm-svn: 31477
2006-11-06 21:26:49 +00:00
Jim Laskey
235aeef9e1
Tab interferes with uniqueness.
...
NOTE: There doesn't seem to be consistency for whether a leading tab
is present in a section heading.
llvm-svn: 31475
2006-11-06 16:23:59 +00:00
Jim Laskey
f39064c2de
D'oh - reversed logic.
...
llvm-svn: 31474
2006-11-06 13:20:29 +00:00
Evan Cheng
eb99bd736a
Add comment.
...
llvm-svn: 31473
2006-11-06 08:14:30 +00:00
Jeff Cohen
7d6f3db3e2
Unbreak VC++ build.
...
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Reid Spencer
35b927e0d3
Fix a bug in the last patch and convert to && instead of & for logical expr.
...
llvm-svn: 31463
2006-11-05 19:26:37 +00:00
Reid Spencer
6088f8af16
Implement the -enabled-cbe-printf-a feature.
...
llvm-svn: 31462
2006-11-05 17:09:41 +00:00
Nick Lewycky
67bad5adbc
Remove commented line from earlier debugging.
...
llvm-svn: 31460
2006-11-05 14:19:40 +00:00
Evan Cheng
33157700d9
Added pre-indexed store support.
...
llvm-svn: 31459
2006-11-05 09:31:14 +00:00
Evan Cheng
1a1e23eff7
Added getIndexedStore.
...
llvm-svn: 31458
2006-11-05 09:30:09 +00:00
Jim Laskey
01c55a50b1
Live local variables are being dropped because the begin or end labels marking
...
their scope are being deleted. Workaround is to widen scope to full function.
llvm-svn: 31454
2006-11-04 10:48:07 +00:00
Evan Cheng
fd2c5dd806
Changes to use operand constraints to process two-address instructions.
...
llvm-svn: 31453
2006-11-04 09:44:31 +00:00
Chris Lattner
2959789c92
encode BLR predicate info for the JIT
...
llvm-svn: 31450
2006-11-04 05:42:48 +00:00
Chris Lattner
6be726048e
Go through all kinds of trouble to mark 'blr' as having a predicate operand
...
that takes a register and condition code. Print these pieces of BLR the
right way, even though it is currently set to 'always'.
Next up: get the JIT encoding right, then enhance branch folding to produce
predicated blr for simple examples.
llvm-svn: 31449
2006-11-04 05:27:39 +00:00
Evan Cheng
51733ed4a3
Fixed some spiller bugs exposed by the recent two-address code changes. Now
...
there may be other def(s) apart from the use&def two-address operand. We need
to check if the register reuse for a use&def operand may conflicts with another
def. Provide a mean to recover from the conflict if it is detected when the
defs are processed later.
llvm-svn: 31439
2006-11-04 00:21:55 +00:00
Chris Lattner
c8a68d08c3
Describe PPC predicates, which are a pair of CR# and condition.
...
llvm-svn: 31438
2006-11-03 23:53:25 +00:00
Chris Lattner
4905d2c5b4
initial steps to getting the predicate on PPC::BLR right.
...
llvm-svn: 31437
2006-11-03 23:52:18 +00:00
Chris Lattner
4fcc04a32a
remove dead var
...
llvm-svn: 31436
2006-11-03 23:50:15 +00:00
Chris Lattner
9ac6442db6
remove dead/redundant vars
...
llvm-svn: 31435
2006-11-03 23:48:56 +00:00
Chris Lattner
eb7128465d
remove redundant/dead vars
...
llvm-svn: 31434
2006-11-03 23:47:20 +00:00
Chris Lattner
895d199348
remove dead vars
...
llvm-svn: 31433
2006-11-03 23:46:45 +00:00
Andrew Lenharth
0ebb0b03e6
The wrong parameter was being tested to deturmine i32 vs i64
...
llvm-svn: 31431
2006-11-03 22:45:50 +00:00
Chris Lattner
2048373e71
add a note
...
llvm-svn: 31429
2006-11-03 22:27:39 +00:00
Chris Lattner
ea2abe2384
Fix BasicAA/2006-11-03-BasicAAVectorCrash.ll by handling out-of-range
...
vector accesses like we handle out-of-range array accesses.
llvm-svn: 31427
2006-11-03 21:58:48 +00:00
Chris Lattner
bb3ea2a437
this will work better
...
llvm-svn: 31419
2006-11-03 19:15:55 +00:00