Commit Graph

24351 Commits

Author SHA1 Message Date
Evan Cheng e8b5180044 Now generating perfect (I think) code for "vector set" with a single non-zero
scalar value.

e.g.
        _mm_set_epi32(0, a, 0, 0);
==>
	movd 4(%esp), %xmm0
	pshufd $69, %xmm0, %xmm0

        _mm_set_epi8(0, 0, 0, 0, 0, a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
==>
	movzbw 4(%esp), %ax
	movzwl %ax, %eax
	pxor %xmm0, %xmm0
	pinsrw $5, %eax, %xmm0

llvm-svn: 27923
2006-04-21 01:05:10 +00:00
Chris Lattner cc47ab3305 Fix a really subtle and obnoxious memory bug that caused issues with an
llvm-gcc4 boostrap.  Whenever a node is deleted by the dag combiner, it
*must* be returned by the visit function, or the dag combiner will not
know that the node has been processed (and will, e.g., send it to the
target dag combine xforms).

llvm-svn: 27922
2006-04-20 23:55:59 +00:00
Reid Spencer 5e6f97b7c9 Don't require the "dot" program if -flat option is given, and don't produce
any of the fancy graphs or other output. Just produce the flat, makefile
style output on stdout.

llvm-svn: 27921
2006-04-20 23:09:57 +00:00
Jeff Cohen 9c0ba827f7 Keep Visual Studio informed.
llvm-svn: 27920
2006-04-20 22:19:06 +00:00
Reid Spencer aff245875b Configure llvm-config in tools, not utils.
llvm-svn: 27919
2006-04-20 22:15:30 +00:00
Reid Spencer 0a1de79808 Remove the llvm-config directory. Its now in tools.
llvm-svn: 27918
2006-04-20 21:16:32 +00:00
Reid Spencer 6826031c70 llvm-config doesn't live here anymore ==> tools
llvm-svn: 27917
2006-04-20 21:15:41 +00:00
Reid Spencer 2b1041cf13 Okay, llvm-config is good to go now.
llvm-svn: 27916
2006-04-20 21:14:39 +00:00
Reid Spencer 5952201b67 Several Changes To Support Building llvm-config:
1. If Perl is not available, don't run Perl dependent targets.
2. Check in FinalLibDeps.txt for build environments that can't build it
   because there's no Perl processor.
3. Ensure that FinalLibDeps.txt depends on LibDeps.txt so it is
   automatically regenerated.
4. Support objdir != srcdir building.

llvm-svn: 27915
2006-04-20 21:13:58 +00:00
Reid Spencer 62b9b71ff7 Don't build llvm-config until issues are resolved.
llvm-svn: 27914
2006-04-20 21:00:24 +00:00
Reid Spencer 57d891afe1 Build the llvm-config directory as a tool.
llvm-svn: 27913
2006-04-20 20:53:23 +00:00
Chris Lattner dae49df407 Fix Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll
llvm-svn: 27912
2006-04-20 20:48:50 +00:00
Chris Lattner c11f4f4214 new testcase
llvm-svn: 27911
2006-04-20 20:48:32 +00:00
Reid Spencer 8794317843 Update the library dependencies for 1.8 with SparcV9 now gone.
llvm-svn: 27910
2006-04-20 19:50:53 +00:00
Evan Cheng 968db7ffb7 Don't know what I was thinking...
llvm-svn: 27909
2006-04-20 19:47:28 +00:00
Chris Lattner 99d3da9d2c Fix the CodeGen/PowerPC/buildvec_canonicalize.ll regression last night.
llvm-svn: 27908
2006-04-20 19:01:30 +00:00
Chris Lattner d1c3a067ee add a note
llvm-svn: 27907
2006-04-20 18:49:28 +00:00
Reid Spencer 53345be5e2 Remove Burg as a directory to be considered.
llvm-svn: 27906
2006-04-20 18:47:13 +00:00
Reid Spencer a278128a59 Remove more references to Burg.
llvm-svn: 27905
2006-04-20 18:46:45 +00:00
Reid Spencer 355913aa7a Remove reference to BURG variable. It no longer exists.
llvm-svn: 27904
2006-04-20 18:44:24 +00:00
Chris Lattner 32150b90b7 remove some stuff
llvm-svn: 27903
2006-04-20 18:43:59 +00:00
Reid Spencer 9597684ba7 Remove traces of Burg utility now that its gone and not needed.
llvm-svn: 27902
2006-04-20 18:42:24 +00:00
Reid Spencer 06502b6135 Burg not needed any more now that SparcV9 is gone.
llvm-svn: 27901
2006-04-20 18:39:19 +00:00
Chris Lattner 3e5521799c remove some v9 specific code
llvm-svn: 27900
2006-04-20 18:33:11 +00:00
Chris Lattner dcc1f995eb This field no longer exists
llvm-svn: 27899
2006-04-20 18:32:41 +00:00
Chris Lattner 778509c844 Don't fill in fields that no longer exist.
llvm-svn: 27898
2006-04-20 18:32:22 +00:00
Chris Lattner f2a5922fa9 Remove a bunch of dead stuff, shrinkifying TargetInstrDescriptor significantly.
llvm-svn: 27897
2006-04-20 18:32:02 +00:00
Chris Lattner 7d7ed24b96 Remove some obsolete interfaces
llvm-svn: 27896
2006-04-20 18:17:21 +00:00
Chris Lattner 2a875285f7 Remove this obsolete file
llvm-svn: 27895
2006-04-20 18:16:45 +00:00
Chris Lattner 862755b95b Remove some of the obvious v9-specific cruft
llvm-svn: 27894
2006-04-20 18:09:13 +00:00
Chris Lattner a38c3580bd Remove some of the obvious V9-specific cruft
llvm-svn: 27893
2006-04-20 18:08:53 +00:00
Evan Cheng 73b12f2f53 Vector extract element test case.
llvm-svn: 27892
2006-04-20 17:59:30 +00:00
Chris Lattner d5737be0f0 Remove V9 jit support
llvm-svn: 27891
2006-04-20 17:52:00 +00:00
Evan Cheng aecd41384f Vector insert test case.
llvm-svn: 27890
2006-04-20 17:50:10 +00:00
Chris Lattner ec86eace63 allow this dir to get pruned
llvm-svn: 27889
2006-04-20 17:45:33 +00:00
Chris Lattner 1798687dba Remove this target's reg tests
llvm-svn: 27888
2006-04-20 17:44:51 +00:00
Chris Lattner 5197dfadf2 Fails with all sparcs
llvm-svn: 27887
2006-04-20 17:43:41 +00:00
Chris Lattner 7991e85b2e Remove V9
llvm-svn: 27886
2006-04-20 17:42:23 +00:00
Chris Lattner ac61195539 This target is no longer built. The ,v files now live in the reoptimizer.
llvm-svn: 27885
2006-04-20 17:15:44 +00:00
Chris Lattner 53f4499b22 Never link in sparcv9
llvm-svn: 27884
2006-04-20 17:07:46 +00:00
Chris Lattner 8fe3dbceb0 Never build SparcV9
llvm-svn: 27883
2006-04-20 17:01:19 +00:00
Chris Lattner d0a3a32eae remove a dead prototype
llvm-svn: 27882
2006-04-20 15:45:54 +00:00
Andrew Lenharth f89e630b2f Make code match cvs commit message :)
llvm-svn: 27881
2006-04-20 15:41:37 +00:00
Andrew Lenharth 61eae29ad6 If we can convert the return pointer type into an integer that IntPtrType
can be converted to losslessly, we can continue the conversion to a direct call.

llvm-svn: 27880
2006-04-20 14:56:47 +00:00
Andrew Lenharth b950dbea0b can we cast between pointers and IntPtrType
llvm-svn: 27879
2006-04-20 14:54:17 +00:00
Reid Spencer 8923c09997 Add a missing =back to eliminate error.
llvm-svn: 27878
2006-04-20 14:17:47 +00:00
Evan Cheng 3ee104c852 v16i8 splat with 2 punpcklbw and a single pshufd.
llvm-svn: 27877
2006-04-20 09:05:16 +00:00
Evan Cheng f2c5fe9139 Another shuffle test. For 4-wide shuffle, no more than 3 {p}shuf*.
llvm-svn: 27876
2006-04-20 09:01:54 +00:00
Evan Cheng 60f0b8998e - Added support to turn "vector clear elements", e.g. pand V, <-1, -1, 0, -1>
to a vector shuffle.
- VECTOR_SHUFFLE lowering change in preparation for more efficient codegen
of vector shuffle with zero (or any splat) vector.

llvm-svn: 27875
2006-04-20 08:58:49 +00:00
Evan Cheng a320abc494 Turn a VAND into a VECTOR_SHUFFLE is applicable.
DAG combiner can turn a VAND V, <-1, 0, -1, -1>, i.e. vector clear elements,
into a vector shuffle with a zero vector. It only does so when TLI tells it
the xform is profitable.

llvm-svn: 27874
2006-04-20 08:56:16 +00:00