Chris Lattner
57a6c135f2
Add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27954 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-23 19:47:09 +00:00
Evan Cheng
9293451e3f
MOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27953 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-23 06:35:19 +00:00
Nate Begeman
9453eea49b
Fix the updating of the machine CFG when a PHI node was in a successor of
...
the jump table's range check block. This re-enables 100% dense jump tables
by default on PPC & x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27952 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-23 06:26:20 +00:00
Jeff Cohen
84bfed087b
Keep Visual Studio informed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27951 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-23 04:37:08 +00:00
Nate Begeman
3700a4d3a2
Code cleanup associated with jump tables, thanks to Chris for noticing
...
these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27950 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 23:52:35 +00:00
Nate Begeman
05f9466cf0
Turn of jump tables for a bit, there are still some issues to work out with
...
updating the machine CFG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27949 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 23:51:56 +00:00
Nate Begeman
a766765358
Optimized stores to the constant pool, while cool, are unnecessary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27948 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 22:31:45 +00:00
Nate Begeman
37efe67645
JumpTable support! What this represents is working asm and jit support for
...
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 18:53:45 +00:00
Evan Cheng
1900c012f5
Don't do all the lowering stuff for 2-wide build_vector's. Also, minor optimization for shuffle of undef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27946 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 08:34:05 +00:00
Evan Cheng
a083af14c8
Fix a performance regression. Use {p}shuf* when there are only two distinct elements in a build_vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27945 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 06:21:46 +00:00
Evan Cheng
ee183471a6
Two more build_vector tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27944 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 06:19:11 +00:00
Chris Lattner
ea4a9c575f
Teach the JIT how to relocate LI, this fixes the JIT on Prolangs-C/TimberWolfMC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27943 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 06:17:56 +00:00
Chris Lattner
776eb6b21e
This no longer needs the JIT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27942 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 05:04:23 +00:00
Chris Lattner
b003d76cb3
Fix JIT support for static ctors, which was apparently completely broken!
...
This allows Prolangs-C++/city and probably a bunch of other stuff to work
well with the new front-end
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27941 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-22 05:02:46 +00:00
Evan Cheng
ba05f728b5
Revamp build_vector lowering to take advantage of movss and movd instructions.
...
movd always clear the top 96 bits and movss does so when it's loading the
value from memory.
The net result is codegen for 4-wide shuffles is much improved. It is near
optimal if one or more elements is a zero. e.g.
__m128i test(int a, int b) {
return _mm_set_epi32(0, 0, b, a);
}
compiles to
_test:
movd 8(%esp), %xmm1
movd 4(%esp), %xmm0
punpckldq %xmm1, %xmm0
ret
compare to gcc:
_test:
subl $12, %esp
movd 20(%esp), %xmm0
movd 16(%esp), %xmm1
punpckldq %xmm0, %xmm1
movq %xmm1, %xmm0
movhps LC0, %xmm0
addl $12, %esp
ret
or icc:
_test:
movd 4(%esp), %xmm0 #5.10
movd 8(%esp), %xmm3 #5.10
xorl %eax, %eax #5.10
movd %eax, %xmm1 #5.10
punpckldq %xmm1, %xmm0 #5.10
movd %eax, %xmm2 #5.10
punpckldq %xmm2, %xmm3 #5.10
punpckldq %xmm3, %xmm0 #5.10
ret #5.10
There are still room for improvement, for example the FP variant of the above example:
__m128 test(float a, float b) {
return _mm_set_ps(0.0, 0.0, b, a);
}
_test:
movss 8(%esp), %xmm1
movss 4(%esp), %xmm0
unpcklps %xmm1, %xmm0
xorps %xmm1, %xmm1
movlhps %xmm1, %xmm0
ret
The xorps and movlhps are unnecessary. This will require post legalizer optimization to handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27939 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 23:03:30 +00:00
Nate Begeman
d9993b0b2d
Fix the comment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27938 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 22:11:27 +00:00
Nate Begeman
6fcbd6961d
Change the PPC JIT to use a Static relocation model
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27937 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 22:04:15 +00:00
Chris Lattner
99d3c276cc
typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27936 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 21:37:40 +00:00
Chris Lattner
6e68a7752b
fix thinko
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27935 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 21:05:22 +00:00
Chris Lattner
3e663a6c16
add some low-prio notes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27934 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 21:03:21 +00:00
Chris Lattner
4a1cd9c61e
The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap
...
miscompares). Switch RISC targets to use the list-td scheduler, which isn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27933 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 17:16:16 +00:00
Evan Cheng
62af9e6cfc
movddup is a SSE3 instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27932 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 16:42:47 +00:00
Chris Lattner
a5d824e90c
Remove a hack required by V9.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27931 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 15:33:35 +00:00
Chris Lattner
ef027f940c
Fix a couple more memory issues
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27930 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 15:32:26 +00:00
Reid Spencer
444b2cf4c3
Remove the extraneous --defined-only option to nm. This is the default and
...
some versions of nm don't recognize it (its a gnu option).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27928 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 05:29:25 +00:00
Evan Cheng
22591417f5
Add && to each RUN: line (except the last one).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27927 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 04:58:23 +00:00
Evan Cheng
714f038e5a
More build_vector tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27926 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 01:22:41 +00:00
Evan Cheng
884df210c7
Check for llc crash.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27925 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 01:21:23 +00:00
Evan Cheng
856c1c93f9
To be replaced with another test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27924 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 01:12:32 +00:00
Evan Cheng
017dcc6e55
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27923 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-21 01:05:10 +00:00
Chris Lattner
fedced7bc3
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27922 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 23:55:59 +00:00
Reid Spencer
44fa691873
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27921 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 23:09:57 +00:00
Jeff Cohen
7b5db0b59e
Keep Visual Studio informed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27920 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 22:19:06 +00:00
Reid Spencer
e198afc3a8
Configure llvm-config in tools, not utils.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27919 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 22:15:30 +00:00
Reid Spencer
ca40bb95b1
Remove the llvm-config directory. Its now in tools.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27918 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 21:16:32 +00:00
Reid Spencer
ca432acc52
llvm-config doesn't live here anymore ==> tools
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27917 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 21:15:41 +00:00
Reid Spencer
7f872bb00d
Okay, llvm-config is good to go now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27916 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 21:14:39 +00:00
Reid Spencer
05dee5064f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27915 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 21:13:58 +00:00
Reid Spencer
563ff1cc92
Don't build llvm-config until issues are resolved.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27914 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 21:00:24 +00:00
Reid Spencer
2e1284d569
Build the llvm-config directory as a tool.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27913 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 20:53:23 +00:00
Chris Lattner
df4f226cdc
Fix Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27912 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 20:48:50 +00:00
Chris Lattner
bcce6c2a0f
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27911 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 20:48:32 +00:00
Reid Spencer
d075dfb0cf
Update the library dependencies for 1.8 with SparcV9 now gone.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27910 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 19:50:53 +00:00
Evan Cheng
a4c3189993
Don't know what I was thinking...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27909 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 19:47:28 +00:00
Chris Lattner
ba2194ae84
Fix the CodeGen/PowerPC/buildvec_canonicalize.ll regression last night.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27908 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 19:01:30 +00:00
Chris Lattner
879acefed5
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27907 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 18:49:28 +00:00
Reid Spencer
118af5f6d6
Remove Burg as a directory to be considered.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27906 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 18:47:13 +00:00
Reid Spencer
572a76fe58
Remove more references to Burg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27905 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 18:46:45 +00:00
Reid Spencer
5d12bf8684
Remove reference to BURG variable. It no longer exists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27904 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 18:44:24 +00:00
Chris Lattner
ab38f5be3a
remove some stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27903 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-20 18:43:59 +00:00