Jim Laskey
388c9681ef
D'oh - need to use the rigth kind of store.
...
llvm-svn: 30903
2006-10-12 15:22:24 +00:00
Evan Cheng
68aef84a57
Backing out Chris' last commit. It's breaking llvm-gcc bootstrapping.
...
It's turning:
movl -24(%ebp), %esp
subl $16, %esp
movl -24(%ebp), %ecx
into
movl -24(%ebp), %esp
subl $16, %esp
movl %esp, (%esp)
llvm-svn: 30902
2006-10-12 08:00:47 +00:00
Chris Lattner
fde6859201
fix compilation failure of smg2000
...
llvm-svn: 30900
2006-10-12 03:55:48 +00:00
Chris Lattner
d781da5f26
If we see a load from a stack slot into a physreg, consider it as providing
...
the stack slot. This fixes PR943.
llvm-svn: 30898
2006-10-12 02:34:07 +00:00
Nick Lewycky
686cc9cacc
Replace custom dispatch code with two uses of InstVisitor. Improves
...
compile-time performance.
llvm-svn: 30896
2006-10-12 02:02:44 +00:00
Chris Lattner
502246c4a6
Fold "zero extending vector loads" now that evan added the chain manip stuff.
...
This compiles both tests in X86/vec_ss_load_fold.ll into:
_test1:
movss 4(%esp), %xmm0
subss LCPI1_0, %xmm0
mulss LCPI1_1, %xmm0
minss LCPI1_2, %xmm0
xorps %xmm1, %xmm1
maxss %xmm1, %xmm0
cvttss2si %xmm0, %eax
andl $65535, %eax
ret
instead of:
_test1:
movss LCPI1_0, %xmm0
movss 4(%esp), %xmm1
subss %xmm0, %xmm1
movss LCPI1_1, %xmm0
mulss %xmm0, %xmm1
movss LCPI1_2, %xmm0
minss %xmm0, %xmm1
xorps %xmm0, %xmm0
maxss %xmm0, %xmm1
cvttss2si %xmm1, %eax
andl $65535, %eax
ret
llvm-svn: 30894
2006-10-11 22:09:58 +00:00
Evan Cheng
95140c9c64
ComplexPatterns sse_load_f32 and sse_load_f64 returns in / out chain operands.
...
llvm-svn: 30892
2006-10-11 21:06:01 +00:00
Evan Cheng
ca66f49574
Add properties to ComplexPattern.
...
llvm-svn: 30891
2006-10-11 21:03:53 +00:00
Jim Laskey
eba756c1a7
Alias analysis of TRUNCSTORE.
...
llvm-svn: 30889
2006-10-11 18:55:16 +00:00
Jim Laskey
6efcd15c88
Typo
...
llvm-svn: 30884
2006-10-11 17:52:19 +00:00
Jim Laskey
4791a4ad14
Handle aliasing of loadext.
...
llvm-svn: 30883
2006-10-11 17:47:52 +00:00
Andrew Lenharth
55db991b47
Reduce the amount of state in the lowering code and drop old pattern ISel functions
...
llvm-svn: 30881
2006-10-11 16:24:51 +00:00
Jim Laskey
fd6218f8f5
Fix regression in combiner alias analysis.
...
llvm-svn: 30880
2006-10-11 13:47:09 +00:00
Evan Cheng
9b31a4d4ed
Naming consistency.
...
llvm-svn: 30878
2006-10-11 07:10:22 +00:00
Chris Lattner
b9c1ea6dcc
Use cute tblgen tricks to make zap handling more powerful. Specifically,
...
when the dag combiner simplifies an and mask, notice this and allow those bits
to be missing from the zap mask.
This compiles Alpha/zapnot4.ll into:
sll $16,3,$0
zapnot $0,3,$0
ret $31,($26),1
instead of:
ldah $0,1($31)
lda $0,-8($0)
sll $16,3,$1
and $1,$0,$0
ret $31,($26),1
It would be *really* nice to replace the hunk of code in the
AlphaISelDAGToDAG.cpp file that matches (and (srl (x, C), c2) into
(SRL (ZAPNOTi)) with a similar pattern, but I've spent enough time poking
at alpha. Make andrew will do this.
llvm-svn: 30875
2006-10-11 05:13:56 +00:00
Andrew Lenharth
4b783303e5
Jimptables working again on alpha.
...
As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
llvm-svn: 30873
2006-10-11 04:29:42 +00:00
Chris Lattner
95a8905db2
Remove dead/redundant instructions. These are handled by ZAPNOTi
...
llvm-svn: 30872
2006-10-11 04:12:39 +00:00
Chris Lattner
aa1741fc87
add two helper methods.
...
llvm-svn: 30869
2006-10-11 03:58:02 +00:00
Andrew Lenharth
7a79f1df15
This entry is done. switched to the gcc way of doing things.
...
llvm-svn: 30867
2006-10-11 01:48:03 +00:00
Evan Cheng
d6b419ecb0
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID.
...
llvm-svn: 30866
2006-10-11 01:47:58 +00:00
Chris Lattner
4be8276d27
This has apparently been fixed
...
llvm-svn: 30864
2006-10-11 01:44:46 +00:00
Rafael Espindola
46e7aceb1d
uint <-> double conversion
...
llvm-svn: 30862
2006-10-10 20:38:57 +00:00
Evan Cheng
0d8a340a8f
Also update getNodeLabel for LoadSDNode.
...
llvm-svn: 30861
2006-10-10 20:11:26 +00:00
Evan Cheng
a12747d2b4
SDNode::dump should also print out extension type and VT.
...
llvm-svn: 30860
2006-10-10 20:05:10 +00:00
Rafael Espindola
0112351e9a
add fp sub
...
llvm-svn: 30859
2006-10-10 19:35:01 +00:00
Rafael Espindola
27d68a3c22
add double <-> int conversion
...
llvm-svn: 30858
2006-10-10 18:55:14 +00:00
Chris Lattner
e0734f522f
Fix another bug in extload promotion.
...
llvm-svn: 30857
2006-10-10 18:54:19 +00:00
Rafael Espindola
413aa20bc8
compare doubles
...
llvm-svn: 30856
2006-10-10 16:33:47 +00:00
Rafael Espindola
b0719f1374
initial support for fp compares. Unordered compares not implemented yet
...
llvm-svn: 30854
2006-10-10 12:56:00 +00:00
Evan Cheng
070ae65fa8
Fix a bug introduced by my LOAD/LOADX changes.
...
llvm-svn: 30853
2006-10-10 07:51:21 +00:00
Evan Cheng
b2998e15f2
More isel time load folding checking for nodes that produce flag values.
...
See comment in CanBeFoldedBy() for detailed explanation.
llvm-svn: 30851
2006-10-10 01:46:56 +00:00
Evan Cheng
d1a37cb9dc
Don't go too crazy with these AddComplexity. Try matching shufps with load
...
folding first.
llvm-svn: 30848
2006-10-09 21:42:15 +00:00
Evan Cheng
8f6c6b19e6
Don't convert to MOVLP if using shufps etc. may allow load folding.
...
llvm-svn: 30847
2006-10-09 21:39:25 +00:00
Evan Cheng
d22f3dd3ed
Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.
...
llvm-svn: 30844
2006-10-09 20:57:25 +00:00
Rafael Espindola
bae07b25d6
add float -> double and double -> float conversion
...
llvm-svn: 30835
2006-10-09 17:50:29 +00:00
Reid Spencer
2e9ba7166f
Fix PR886:
...
The result of yyparse() was not being checked. When YYERROR or YYABORT is
called it causes yyparse() to return 1 to indicate the error. The code was
silently ignoring this situation because it previously expected either an
exception or a null ParserResult to indicate an error. The patch corrects
this situation.
llvm-svn: 30834
2006-10-09 17:36:59 +00:00
Chris Lattner
0c057ef048
Fix a bug pointed out by Zhongxing Xu
...
llvm-svn: 30831
2006-10-09 17:28:13 +00:00
Rafael Espindola
f917f096e2
add ADDS and ADCS
...
llvm-svn: 30830
2006-10-09 17:18:28 +00:00
Rafael Espindola
319b5e9c95
expand ISD::SELECT
...
llvm-svn: 30829
2006-10-09 16:28:33 +00:00
Rafael Espindola
fed11f040c
add a note
...
llvm-svn: 30828
2006-10-09 14:18:33 +00:00
Rafael Espindola
aaeadcb6f5
expand ISD::EXTLOAD
...
llvm-svn: 30827
2006-10-09 14:13:40 +00:00
Rafael Espindola
1e16a7e972
most ARM targets are little endian
...
llvm-svn: 30826
2006-10-09 14:12:15 +00:00
Chris Lattner
9f980ec2a1
Implement SROA of unions with mixed pointers/integers in them. This implements
...
PR892 and Transforms/ScalarRepl/union-pointer.ll:test2
llvm-svn: 30825
2006-10-08 23:53:04 +00:00
Chris Lattner
f8afa75cef
Implement Transforms/ScalarRepl/union-pointer.ll:test
...
llvm-svn: 30823
2006-10-08 23:28:04 +00:00
Chris Lattner
b0e0a23959
Eliminate more token factors by taking advantage of transitivity:
...
if TF depends on A and B, and A depends on B, TF just needs to depend on
A. With Jim's alias-analysis stuff enabled, this compiles the testcase in
PR892 into:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %edx, 28(%esp)
movl %eax, 32(%esp)
movl %eax, 24(%esp)
movl %edx, 36(%esp)
movl 52(%esp), %ecx
movl %ecx, 4(%esp)
movl %eax, 8(%esp)
movl %edx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
instead of:
__Z4test3Val:
subl $44, %esp
call L__Z3foov$stub
movl %eax, 24(%esp)
movl %edx, 28(%esp)
movl 24(%esp), %eax
movl %eax, 32(%esp)
movl 28(%esp), %eax
movl %eax, 36(%esp)
movl 32(%esp), %eax
movl 36(%esp), %ecx
movl 52(%esp), %edx
movl %edx, 4(%esp)
movl %eax, 8(%esp)
movl %ecx, 12(%esp)
movl 48(%esp), %eax
movl %eax, (%esp)
call L__Z3bar3ValS_$stub
addl $44, %esp
ret
llvm-svn: 30821
2006-10-08 22:57:01 +00:00
Jim Laskey
9260b2f86e
Combiner alias analysis passes Multisource (release-asserts.)
...
llvm-svn: 30818
2006-10-07 23:37:56 +00:00
Chris Lattner
3cd1d08ac6
completely disable folding of loads into scalar sse instructions and provide
...
a framework for doing it right. This fixes
CodeGen/X86/2006-10-07-ScalarSSEMiscompile.ll.
Once X86DAGToDAGISel::SelectScalarSSELoad is implemented right, this task
will be done.
llvm-svn: 30817
2006-10-07 21:55:32 +00:00
Chris Lattner
a51aea84b8
convert packed FP add/sub/mul/div to use a multiclass.
...
llvm-svn: 30815
2006-10-07 21:17:13 +00:00
Chris Lattner
da75127cea
one multiclass now defines all 8 variants of binary-scalar-sse-fp operations.
...
llvm-svn: 30814
2006-10-07 20:55:57 +00:00
Chris Lattner
8ce6993f53
Switch ADD/MUL/DIV/SUB scalarsse fp ops to a multiclass
...
llvm-svn: 30813
2006-10-07 20:35:44 +00:00