| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | - Clean up formal argument lowering code. Prepare for vector pass by value work. | Evan Cheng | 2006-04-27 | 2 | -215/+237 |
| | | | | | | | - Fixed vararg support. llvm-svn: 27985 | ||||
| * | Fix some nondeterminstic behavior in the mem2reg pass that (in addition to | Chris Lattner | 2006-04-27 | 1 | -20/+38 |
| | | | | | | | | | | | nondeterminism being bad) could cause some trivial missed optimizations (dead phi nodes being left around for later passes to clean up). With this, llvm-gcc4 now bootstraps and correctly compares. I don't know why I never tried to do it before... :) llvm-svn: 27984 | ||||
| * | Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't | Chris Lattner | 2006-04-26 | 1 | -0/+25 |
| | | | | | | | recognize some simple affine IV's. llvm-svn: 27982 | ||||
| * | Fix fastcc failures. | Evan Cheng | 2006-04-26 | 1 | -0/+3 |
| | | | | | llvm-svn: 27980 | ||||
| * | Switching over FORMAL_ARGUMENTS mechanism to lower call arguments. | Evan Cheng | 2006-04-26 | 2 | -80/+177 |
| | | | | | llvm-svn: 27975 | ||||
| * | Don't forget return void. | Evan Cheng | 2006-04-25 | 1 | -0/+3 |
| | | | | | llvm-svn: 27974 | ||||
| * | Keep the stack from on darwin 16-byte aligned. This fixes many JIT | Nate Begeman | 2006-04-25 | 1 | -2/+13 |
| | | | | | | | failres. llvm-svn: 27973 | ||||
| * | Separate LowerOperation() into multiple functions, one per opcode. | Evan Cheng | 2006-04-25 | 2 | -1135/+1213 |
| | | | | | llvm-svn: 27972 | ||||
| * | slightly more useful error message | Andrew Lenharth | 2006-04-25 | 1 | -2/+3 |
| | | | | | llvm-svn: 27971 | ||||
| * | better c99 struct handling | Andrew Lenharth | 2006-04-25 | 1 | -2/+1 |
| | | | | | llvm-svn: 27970 | ||||
| * | Fix a typo. | Evan Cheng | 2006-04-25 | 1 | -1/+1 |
| | | | | | llvm-svn: 27968 | ||||
| * | Fix a warning | Nate Begeman | 2006-04-25 | 1 | -1/+1 |
| | | | | | llvm-svn: 27967 | ||||
| * | No functionality changes, but cleaner code with correct comments. | Nate Begeman | 2006-04-25 | 1 | -34/+40 |
| | | | | | llvm-svn: 27966 | ||||
| * | Explicitly specify result type for def : Pat<> patterns (if it produces a vector | Evan Cheng | 2006-04-25 | 1 | -45/+47 |
| | | | | | | | result). Otherwise tblgen will pick the default (v16i8 for 128-bit vector). llvm-svn: 27965 | ||||
| * | Added X86 SSE2 intrinsics which can be represented as vector_shuffles. This is | Evan Cheng | 2006-04-24 | 1 | -12/+44 |
| | | | | | | | | a temporary workaround for the 2-wide vector_shuffle problem (i.e. its mask would have type v2i32 which is not legal). llvm-svn: 27964 | ||||
| * | Add a new entry. | Evan Cheng | 2006-04-24 | 1 | -0/+32 |
| | | | | | llvm-svn: 27963 | ||||
| * | Special case handling two wide build_vector(0, x). | Evan Cheng | 2006-04-24 | 1 | -4/+4 |
| | | | | | llvm-svn: 27961 | ||||
| * | Some missing movlps, movhps, movlpd, and movhpd patterns. | Evan Cheng | 2006-04-24 | 1 | -6/+14 |
| | | | | | llvm-svn: 27960 | ||||
| * | A little bit more build_vector enhancement for v8i16 cases. | Evan Cheng | 2006-04-24 | 1 | -42/+105 |
| | | | | | llvm-svn: 27959 | ||||
| * | Remove a completed entry. | Evan Cheng | 2006-04-24 | 1 | -55/+0 |
| | | | | | llvm-svn: 27958 | ||||
| * | MakeMIInst() should handle jump table index operands. | Evan Cheng | 2006-04-24 | 1 | -0/+3 |
| | | | | | llvm-svn: 27955 | ||||
| * | Add a note | Chris Lattner | 2006-04-23 | 1 | -0/+7 |
| | | | | | llvm-svn: 27954 | ||||
| * | MOVL shuffle (i.e. movd or movss / movsd from memory) of undef, V2 == V2 | Evan Cheng | 2006-04-23 | 1 | -2/+7 |
| | | | | | llvm-svn: 27953 | ||||
| * | Fix the updating of the machine CFG when a PHI node was in a successor of | Nate Begeman | 2006-04-23 | 1 | -5/+10 |
| | | | | | | | | the jump table's range check block. This re-enables 100% dense jump tables by default on PPC & x86 llvm-svn: 27952 | ||||
| * | Code cleanup associated with jump tables, thanks to Chris for noticing | Nate Begeman | 2006-04-22 | 1 | -0/+8 |
| | | | | | | | these. llvm-svn: 27950 | ||||
| * | Turn of jump tables for a bit, there are still some issues to work out with | Nate Begeman | 2006-04-22 | 1 | -1/+1 |
| | | | | | | | updating the machine CFG. llvm-svn: 27949 | ||||
| * | Optimized stores to the constant pool, while cool, are unnecessary. | Nate Begeman | 2006-04-22 | 1 | -3/+0 |
| | | | | | llvm-svn: 27948 | ||||
| * | JumpTable support! What this represents is working asm and jit support for | Nate Begeman | 2006-04-22 | 30 | -73/+535 |
| | | | | | | | | | 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. llvm-svn: 27947 | ||||
| * | Don't do all the lowering stuff for 2-wide build_vector's. Also, minor ↵ | Evan Cheng | 2006-04-22 | 1 | -2/+5 |
| | | | | | | | optimization for shuffle of undef. llvm-svn: 27946 | ||||
| * | Fix a performance regression. Use {p}shuf* when there are only two distinct ↵ | Evan Cheng | 2006-04-22 | 1 | -13/+17 |
| | | | | | | | elements in a build_vector. llvm-svn: 27945 | ||||
| * | Teach the JIT how to relocate LI, this fixes the JIT on Prolangs-C/TimberWolfMC | Chris Lattner | 2006-04-22 | 1 | -0/+1 |
| | | | | | llvm-svn: 27943 | ||||
| * | Fix JIT support for static ctors, which was apparently completely broken! | Chris Lattner | 2006-04-22 | 1 | -1/+5 |
| | | | | | | | | This allows Prolangs-C++/city and probably a bunch of other stuff to work well with the new front-end llvm-svn: 27941 | ||||
| * | Revamp build_vector lowering to take advantage of movss and movd instructions. | Evan Cheng | 2006-04-21 | 1 | -64/+141 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 27939 | ||||
| * | Fix the comment | Nate Begeman | 2006-04-21 | 1 | -1/+1 |
| | | | | | llvm-svn: 27938 | ||||
| * | Change the PPC JIT to use a Static relocation model | Nate Begeman | 2006-04-21 | 3 | -29/+4 |
| | | | | | llvm-svn: 27937 | ||||
| * | fix thinko | Chris Lattner | 2006-04-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 27935 | ||||
| * | add some low-prio notes | Chris Lattner | 2006-04-21 | 1 | -0/+69 |
| | | | | | llvm-svn: 27934 | ||||
| * | The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap | Chris Lattner | 2006-04-21 | 1 | -2/+5 |
| | | | | | | | miscompares). Switch RISC targets to use the list-td scheduler, which isn't. llvm-svn: 27933 | ||||
| * | Remove a hack required by V9. | Chris Lattner | 2006-04-21 | 1 | -4/+2 |
| | | | | | llvm-svn: 27931 | ||||
| * | Fix a couple more memory issues | Chris Lattner | 2006-04-21 | 1 | -4/+4 |
| | | | | | llvm-svn: 27930 | ||||
| * | Now generating perfect (I think) code for "vector set" with a single non-zero | Evan Cheng | 2006-04-21 | 3 | -104/+174 |
| | | | | | | | | | | | | | | | | | | | | 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 | ||||
| * | Fix a really subtle and obnoxious memory bug that caused issues with an | Chris Lattner | 2006-04-20 | 1 | -11/+11 |
| | | | | | | | | | | 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 | ||||
| * | Fix Transforms/ScalarRepl/2006-04-20-PromoteCrash.ll | Chris Lattner | 2006-04-20 | 1 | -1/+1 |
| | | | | | llvm-svn: 27912 | ||||
| * | Fix the CodeGen/PowerPC/buildvec_canonicalize.ll regression last night. | Chris Lattner | 2006-04-20 | 1 | -1/+1 |
| | | | | | llvm-svn: 27908 | ||||
| * | add a note | Chris Lattner | 2006-04-20 | 1 | -0/+18 |
| | | | | | llvm-svn: 27907 | ||||
| * | remove some v9 specific code | Chris Lattner | 2006-04-20 | 1 | -20/+0 |
| | | | | | llvm-svn: 27900 | ||||
| * | This field no longer exists | Chris Lattner | 2006-04-20 | 1 | -2/+0 |
| | | | | | llvm-svn: 27899 | ||||
| * | Remove this obsolete file | Chris Lattner | 2006-04-20 | 1 | -266/+0 |
| | | | | | llvm-svn: 27895 | ||||
| * | Remove some of the obvious V9-specific cruft | Chris Lattner | 2006-04-20 | 1 | -101/+2 |
| | | | | | llvm-svn: 27893 | ||||
| * | This target is no longer built. The ,v files now live in the reoptimizer. | Chris Lattner | 2006-04-20 | 90 | -32210/+0 |
| | | | | | llvm-svn: 27885 | ||||

