Tanya Lattner
8a01d7a820
Should be xfailed for llvmgcc4 and NOT *. * means all platforms regardless of what llvmgcc you use.
...
llvm-svn: 31577
2006-11-08 23:25:58 +00:00
Evan Cheng
c9a4cdc9c9
Added indexed store node and patfrag's.
...
llvm-svn: 31576
2006-11-08 23:02:11 +00:00
Evan Cheng
7120b9e9c7
Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD,
...
X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow
multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed
store).
llvm-svn: 31575
2006-11-08 23:01:03 +00:00
Reid Spencer
eacb043c0a
Ensure we don't regress on reading version 6 bytecode.
...
llvm-svn: 31574
2006-11-08 21:28:30 +00:00
Reid Spencer
c4ecf9ff47
Bump the bytecode version number to 7. Implement upgrade of version 6 and
...
version 6 bytecode.
llvm-svn: 31573
2006-11-08 21:27:54 +00:00
Evan Cheng
3b3b786f03
Use movl+xchgl instead of pushl+popl.
...
llvm-svn: 31572
2006-11-08 20:35:37 +00:00
Evan Cheng
6cd0909da7
Match tblegen changes.
...
llvm-svn: 31571
2006-11-08 20:34:28 +00:00
Evan Cheng
d715a2cbfb
Always pass the root node to ComplexPattern isel matching function.
...
llvm-svn: 31570
2006-11-08 20:31:10 +00:00
Evan Cheng
85e54223cd
Match more post-indexed ops.
...
llvm-svn: 31569
2006-11-08 20:27:27 +00:00
Tanya Lattner
fd6e54439a
Should be xfailed for llvm-gcc3.4
...
llvm-svn: 31568
2006-11-08 20:16:05 +00:00
Reid Spencer
b3aa10f933
Document correct opcodes for post 1.9 release.
...
llvm-svn: 31566
2006-11-08 20:07:40 +00:00
Reid Spencer
99b21508e6
Update the instruction opcodes for release 1.9
...
llvm-svn: 31565
2006-11-08 20:06:36 +00:00
Chris Lattner
4f218d56f5
reenable factoring of GEP expressions, being more precise about the
...
case that it bad to do.
llvm-svn: 31563
2006-11-08 19:42:28 +00:00
Chris Lattner
cd62f11227
make this code more efficient by not creating a phi node we are just going to
...
delete in the first place. This also makes it simpler.
llvm-svn: 31562
2006-11-08 19:29:23 +00:00
Jim Laskey
61feeb90f9
Remove redundant <cmath>.
...
llvm-svn: 31561
2006-11-08 19:16:44 +00:00
Chris Lattner
a3acfca920
disable this factoring optzn for GEPs for now, this severely pessimizes some
...
loops.
llvm-svn: 31560
2006-11-08 18:49:31 +00:00
Jim Laskey
7b6fb8048e
Make sure <cmath> comes first
...
llvm-svn: 31559
2006-11-08 18:48:14 +00:00
Jim Laskey
3caa009892
Add backup support for HUGH_VALF.
...
llvm-svn: 31553
2006-11-08 17:19:29 +00:00
Rafael Espindola
708cb60588
initial implementation of addressing mode 2
...
TODO: fix lea_addri
llvm-svn: 31552
2006-11-08 17:07:32 +00:00
Jim Laskey
050747fc8c
Make it work on Darwin.
...
llvm-svn: 31551
2006-11-08 16:38:45 +00:00
John Criswell
8ea2e68493
Include llvm/Support/DataTypes.h to define intptr_t.
...
This fixes the build on OpenBSD and potentially other systems.
llvm-svn: 31550
2006-11-08 15:04:35 +00:00
Jim Laskey
62bbc9ef58
Now can re-enable debug label folding.
...
llvm-svn: 31549
2006-11-08 14:17:45 +00:00
Jim Laskey
ac05d7d084
Wasn't handling case of when machine move labels were undefined.
...
llvm-svn: 31548
2006-11-08 14:16:39 +00:00
Devang Patel
4e12f86a1b
Split FunctionPassManager_New into FunctionPassManager_New and FunctionPassManagerImpl_New.
...
FunctionPassManagerImpl_New implements the pass manager.
FunctionPassManager_New is the public interface.
llvm-svn: 31547
2006-11-08 10:44:40 +00:00
Devang Patel
376fefafb2
Split PassManager_New into PassManager_New and PassManagerImpl_New.
...
PassManagerImpl_New implements the pass manager.
PassManager_New is the public interface.
llvm-svn: 31546
2006-11-08 10:29:57 +00:00
Devang Patel
ca58e3532f
Move BasicBlockPassManager_New, FunctionPassManager_New and
...
ModulePassManager_New class declarations from PassManager.h
to PassManager.cpp
llvm-svn: 31545
2006-11-08 10:05:38 +00:00
Evan Cheng
0303cb9b33
- When performing pre-/post- indexed load/store transformation, do not worry
...
about whether the new base ptr would be live below the load/store. Let two
address pass split it back to non-indexed ops.
- Minor tweaks / fixes.
llvm-svn: 31544
2006-11-08 08:30:28 +00:00
Evan Cheng
6072435756
Fixed a minor bug preventing some pre-indexed load / store transformation.
...
llvm-svn: 31543
2006-11-08 06:56:05 +00:00
Reid Spencer
fdff938a7e
For PR950:
...
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.
llvm-svn: 31542
2006-11-08 06:47:33 +00:00
Reid Spencer
41f6c7cfb2
XFAIL this on Linux until Jim gets Darwin ship shape.
...
llvm-svn: 31541
2006-11-08 06:43:16 +00:00
Chris Lattner
71cd8cf478
now that we handle single mbb loops better, one branch is allowed
...
llvm-svn: 31540
2006-11-08 06:42:42 +00:00
Chris Lattner
6aee6f2a93
regenerate
...
llvm-svn: 31539
2006-11-08 05:58:47 +00:00
Chris Lattner
60f1f194f9
Fix a bug noticed by Emil Mikulic.
...
llvm-svn: 31538
2006-11-08 05:58:11 +00:00
Evan Cheng
d48f7dd250
Fix a obscure post-indexed load / store dag combine bug.
...
llvm-svn: 31537
2006-11-08 02:38:55 +00:00
Chris Lattner
a801fcedd3
Refactor all the addressing mode selection stuff into the isel lowering
...
class, where it can be used for preinc formation.
llvm-svn: 31536
2006-11-08 02:15:41 +00:00
Chris Lattner
6a5a4f85d3
correct the (currently unused) pattern for lwzu.
...
llvm-svn: 31535
2006-11-08 02:13:12 +00:00
Chris Lattner
543572716b
preincrement case we miss. xfail until we catch it
...
llvm-svn: 31534
2006-11-08 01:44:35 +00:00
Devang Patel
d65e9e9fd8
Beautify.
...
llvm-svn: 31533
2006-11-08 01:31:28 +00:00
Reid Spencer
97c5fa4607
Fix the section headings.
...
llvm-svn: 31532
2006-11-08 01:18:52 +00:00
Reid Spencer
59b6b7d9e4
For PR950:
...
Early commit of the documentation for new conversion instructions for
easier review.
llvm-svn: 31531
2006-11-08 01:11:31 +00:00
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
800596d60e
Beautify.
...
Clarify comments.
llvm-svn: 31529
2006-11-08 00:19:31 +00:00
Devang Patel
3c8eb62560
Update new pass managers to use PassManagerAnalysisHelper API.
...
llvm-svn: 31526
2006-11-07 22:56:50 +00:00
Devang Patel
cc85563dd9
Derive new pass managers from PassManagerAnalysisHelper.
...
llvm-svn: 31525
2006-11-07 22:44:55 +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
Chris Lattner
2d7a5d9b5d
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;
}
llvm-svn: 31523
2006-11-07 22:42:29 +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
847adeebb8
New test case.
...
llvm-svn: 31520
2006-11-07 22:18:14 +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