| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Move the point at which FastISel taps into the SelectionDAGISel | Dan Gohman | 2008-08-23 | 14 | -332/+366 | |
| | | | | | | | | | | | | | | | | | | | process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219 | |||||
| * | Avoid creating shift-by-zero SDNodes in the common case of | Dan Gohman | 2008-08-23 | 1 | -9/+10 | |
| | | | | | | | | i8* getelementptr. DAGCombine eliminates these, but this is a fairly common case. llvm-svn: 55214 | |||||
| * | Move SelectionDAG's constructor out of line. | Dan Gohman | 2008-08-23 | 2 | -4/+8 | |
| | | | | | llvm-svn: 55212 | |||||
| * | Add a clear() method to FoldingSet. | Dan Gohman | 2008-08-23 | 2 | -12/+16 | |
| | | | | | llvm-svn: 55210 | |||||
| * | Test all currently supported atomic builtins on x86-{32,64}. | Dale Johannesen | 2008-08-22 | 2 | -0/+1833 | |
| | | | | | | | These just test that they go through the BE. llvm-svn: 55208 | |||||
| * | Comprehensive test of FE handling of __sync builtins. | Dale Johannesen | 2008-08-22 | 1 | -0/+281 | |
| | | | | | llvm-svn: 55206 | |||||
| * | Reapply r55191 and r55192. | Dan Gohman | 2008-08-22 | 3 | -9/+18 | |
| | | | | | llvm-svn: 55205 | |||||
| * | Make option variables static, so they won't cause nameclash | Anton Korobeynikov | 2008-08-22 | 1 | -7/+10 | |
| | | | | | llvm-svn: 55203 | |||||
| * | Reverting r55190, r55191, and r55192. They broke the build with this error ↵ | Bill Wendling | 2008-08-22 | 5 | -34/+26 | |
| | | | | | | | | | | | | | | | | message: {standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 llvm-svn: 55200 | |||||
| * | Fix the InsertBranch call. | Dan Gohman | 2008-08-22 | 1 | -2/+1 | |
| | | | | | llvm-svn: 55192 | |||||
| * | Support non-fallthrough unconditional branches in FastISel. | Dan Gohman | 2008-08-22 | 3 | -9/+19 | |
| | | | | | llvm-svn: 55191 | |||||
| * | Anyext tweaks for x86. When extloading a value to i32 or i64, choose | Dan Gohman | 2008-08-22 | 2 | -17/+16 | |
| | | | | | | | | | instructions that define the full 32 or 64-bit value. When anyexting from i8 to i16 or i32, it's not necessary to zero out the high portion of the register. llvm-svn: 55190 | |||||
| * | Fix typo. | Owen Anderson | 2008-08-22 | 1 | -1/+1 | |
| | | | | | llvm-svn: 55189 | |||||
| * | Add FastISel support for PHINodes. Machine PHI nodes | Dan Gohman | 2008-08-22 | 1 | -0/+5 | |
| | | | | | | | | are not yet updated properly, but that's a separate task. llvm-svn: 55187 | |||||
| * | Implement __sync_synchronize on ppc32. Patch by Gary Benson. | Dale Johannesen | 2008-08-22 | 4 | -3/+26 | |
| | | | | | llvm-svn: 55186 | |||||
| * | Add an empty() member to FoldingSet. | Dan Gohman | 2008-08-22 | 1 | -0/+3 | |
| | | | | | llvm-svn: 55182 | |||||
| * | Fix SmallVector's size calculation so that a size of 0 is | Dan Gohman | 2008-08-22 | 3 | -4/+4 | |
| | | | | | | | | handled correctly, and change a few SmallVector uses to use size 0 to more clearly reflect their intent. llvm-svn: 55181 | |||||
| * | improve support for systems that need unistd.h to get STDOUT_FILENO. | Chris Lattner | 2008-08-22 | 1 | -2/+10 | |
| | | | | | | | Patch contributed by Bjorn Reese! llvm-svn: 55179 | |||||
| * | Also overload for char, since the "char" type depends on the host. | Nicolas Geoffray | 2008-08-22 | 1 | -0/+7 | |
| | | | | | llvm-svn: 55173 | |||||
| * | Overload for both signed and unsigned char. | Owen Anderson | 2008-08-22 | 1 | -1/+8 | |
| | | | | | llvm-svn: 55171 | |||||
| * | consolidate DenseMapInfo implementations, and add one for std::pair. | Chris Lattner | 2008-08-22 | 4 | -38/+42 | |
| | | | | | | | Patch contributed by m-s. llvm-svn: 55167 | |||||
| * | Rewrite ppc code generated for __sync_{bool|val}_compare_and_swap | Dale Johannesen | 2008-08-22 | 3 | -13/+19 | |
| | | | | | | | | so that lwarx and stwcx are always executed the same number of times. This is important for performance, I'm told. llvm-svn: 55163 | |||||
| * | Add a few comments. | Dan Gohman | 2008-08-22 | 1 | -0/+4 | |
| | | | | | llvm-svn: 55157 | |||||
| * | Factor out the predicate check code from DAGISelEmitter.cpp | Dan Gohman | 2008-08-22 | 8 | -54/+111 | |
| | | | | | | | | | | and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. llvm-svn: 55156 | |||||
| * | Remove tabs. | Bill Wendling | 2008-08-22 | 1 | -8/+8 | |
| | | | | | llvm-svn: 55154 | |||||
| * | Testcase for PR2585. | Bill Wendling | 2008-08-21 | 1 | -0/+21 | |
| | | | | | llvm-svn: 55151 | |||||
| * | Temporarily reverting r55137. This was causing the bootstrap to go into an | Bill Wendling | 2008-08-21 | 1 | -7/+3 | |
| | | | | | | | infinite loop. llvm-svn: 55149 | |||||
| * | Fix write() when the string being written is larger than the buffer. This ↵ | Owen Anderson | 2008-08-21 | 1 | -0/+1 | |
| | | | | | | | | | broke various ObjC testcases with very long symbol names. llvm-svn: 55148 | |||||
| * | If part of the mask is "undef", then ignore it as we don't care what goes ↵ | Bill Wendling | 2008-08-21 | 1 | -0/+2 | |
| | | | | | | | into it. llvm-svn: 55147 | |||||
| * | Fix whitespace. No functionality change. | Bill Wendling | 2008-08-21 | 1 | -6/+20 | |
| | | | | | llvm-svn: 55146 | |||||
| * | Add -mattr=sse2 so this test doesn't fail on non-x86 hosts. | Dan Gohman | 2008-08-21 | 1 | -1/+1 | |
| | | | | | llvm-svn: 55145 | |||||
| * | Make x86 and sse2 explicit for non-x86 hosts. | Dale Johannesen | 2008-08-21 | 2 | -2/+2 | |
| | | | | | llvm-svn: 55141 | |||||
| * | Accept NOT of a constant vector of int. | Dale Johannesen | 2008-08-21 | 1 | -2/+4 | |
| | | | | | llvm-svn: 55140 | |||||
| * | Fix a number of byval / memcpy / memset related codegen issues. | Evan Cheng | 2008-08-21 | 7 | -58/+103 | |
| | | | | | | | | 1. x86-64 byval alignment should be max of 8 and alignment of type. Previously the code was not doing what the commit message was saying. 2. Do not use byte repeat move and store operations. These are slow. llvm-svn: 55139 | |||||
| * | Move non-trivial methods out of line to avoid code-size bloat. | Owen Anderson | 2008-08-21 | 2 | -87/+97 | |
| | | | | | llvm-svn: 55138 | |||||
| * | Fix ComputeMaskedBits to handle phis correctly. We need to take the | David Greene | 2008-08-21 | 1 | -3/+7 | |
| | | | | | | | minimum of the known zeros. llvm-svn: 55137 | |||||
| * | Treat floating point ST1 the same as ST0 when lowering for a call result | Mon P Wang | 2008-08-21 | 1 | -1/+2 | |
| | | | | | llvm-svn: 55135 | |||||
| * | Remove unneeded #include. | Owen Anderson | 2008-08-21 | 1 | -1/+0 | |
| | | | | | llvm-svn: 55134 | |||||
| * | Add libcalls for the new rounding opcodes. | Dan Gohman | 2008-08-21 | 3 | -0/+95 | |
| | | | | | llvm-svn: 55133 | |||||
| * | Fix a typo that Dale noticed. | Dan Gohman | 2008-08-21 | 1 | -1/+1 | |
| | | | | | llvm-svn: 55132 | |||||
| * | Add libm-oriented ISD opcodes for rounding operations. | Dan Gohman | 2008-08-21 | 5 | -3/+29 | |
| | | | | | llvm-svn: 55130 | |||||
| * | Have FastISel skip the multiply by 1 for getelementptr on i8*. | Dan Gohman | 2008-08-21 | 1 | -4/+2 | |
| | | | | | llvm-svn: 55129 | |||||
| * | Allow inline asm nodes with empty bodies inside JIT. | Anton Korobeynikov | 2008-08-21 | 1 | -2/+6 | |
| | | | | | | | | This unbreaks explicit reg vars inside JIT, which are implemented in such hacky way :) llvm-svn: 55128 | |||||
| * | Switch from an O(n) method to an O(1) method for changing non-constant | Chris Lattner | 2008-08-21 | 1 | -4/+5 | |
| | | | | | | | operands. llvm-svn: 55127 | |||||
| * | getelementptr doesn't work on x86-64 yet, because it | Dan Gohman | 2008-08-21 | 1 | -1/+0 | |
| | | | | | | | has MOV64ri32 and no plain MOV64ri. llvm-svn: 55126 | |||||
| * | MVT::getMVT uses iPTR for pointer types, while we need the actual | Dan Gohman | 2008-08-21 | 2 | -10/+13 | |
| | | | | | | | | intptr_t type in this case. FastISel can now select simple getelementptr instructions. llvm-svn: 55125 | |||||
| * | Simplify SelectRoot's interface, and factor out some common code | Dan Gohman | 2008-08-21 | 10 | -11/+11 | |
| | | | | | | | from all targets. llvm-svn: 55124 | |||||
| * | Elements in DeadNodeSet are checked for use_empty() before they | Dan Gohman | 2008-08-21 | 1 | -1/+0 | |
| | | | | | | | | are actually deleted, so it's not necessary to remove re-used nodes from the set. llvm-svn: 55123 | |||||
| * | SelectionDAGISel::SelectRootInit does not need to be virtual. | Dan Gohman | 2008-08-21 | 1 | -1/+1 | |
| | | | | | llvm-svn: 55122 | |||||
| * | Make HandleSDNode::getValue return an SDValue instead of | Dan Gohman | 2008-08-21 | 1 | -1/+1 | |
| | | | | | | | the full SDUse, which isn't needed. llvm-svn: 55121 | |||||

