Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Make FastISel use the correct argument type when casting GEP indices. | Dan Gohman | 2008-08-26 | 1 | -6/+7 | |
| | | | | llvm-svn: 55384 | |||||
* | Don't select binary instructions with illegal types. | Dan Gohman | 2008-08-26 | 1 | -0/+6 | |
| | | | | llvm-svn: 55383 | |||||
* | Add support for fast isel of sitofp, and remove some unnecessary and ↵ | Owen Anderson | 2008-08-26 | 1 | -4/+28 | |
| | | | | | | imprecise legality checks. llvm-svn: 55381 | |||||
* | Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel ↵ | Owen Anderson | 2008-08-26 | 1 | -8/+19 | |
| | | | | | | | | of bitcasts, allowing it to support the full range of conversions people might ask for in a correct manner. llvm-svn: 55378 | |||||
* | Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy ↵ | Owen Anderson | 2008-08-26 | 1 | -5/+5 | |
| | | | | | | | | | requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. llvm-svn: 55375 | |||||
* | Add support for fast isel of non-constant fptosi instructions. | Owen Anderson | 2008-08-26 | 1 | -5/+43 | |
| | | | | llvm-svn: 55373 | |||||
* | Add a RetVT parameter to emitted FastISel methods, so that we will be able ↵ | Owen Anderson | 2008-08-25 | 1 | -18/+23 | |
| | | | | | | | | to pass the desired return type down. This is not currently used. llvm-svn: 55345 | |||||
* | Unbreak build. | Evan Cheng | 2008-08-25 | 1 | -2/+2 | |
| | | | | llvm-svn: 55342 | |||||
* | Expand bitcast support in fast isel to support bitcasts of non-constant ↵ | Owen Anderson | 2008-08-25 | 1 | -1/+29 | |
| | | | | | | values by emitting reg-reg copies. llvm-svn: 55340 | |||||
* | Add support for fast isel of (integer) immediate materialization pattens, ↵ | Owen Anderson | 2008-08-25 | 1 | -2/+29 | |
| | | | | | | | | and use them to support bitcast of constants in fast isel. llvm-svn: 55325 | |||||
* | Make MBBMap a DenseMap instead of a std::map. | Dan Gohman | 2008-08-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 55220 | |||||
* | Reapply r55191 and r55192. | Dan Gohman | 2008-08-22 | 1 | -8/+15 | |
| | | | | llvm-svn: 55205 | |||||
* | Reverting r55190, r55191, and r55192. They broke the build with this error ↵ | Bill Wendling | 2008-08-22 | 1 | -15/+8 | |
| | | | | | | | | | | | | | | | 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 | 1 | -8/+16 | |
| | | | | llvm-svn: 55191 | |||||
* | 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 | |||||
* | Factor out the predicate check code from DAGISelEmitter.cpp | Dan Gohman | 2008-08-22 | 1 | -4/+6 | |
| | | | | | | | | | 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 | |||||
* | Have FastISel skip the multiply by 1 for getelementptr on i8*. | Dan Gohman | 2008-08-21 | 1 | -4/+2 | |
| | | | | llvm-svn: 55129 | |||||
* | MVT::getMVT uses iPTR for pointer types, while we need the actual | Dan Gohman | 2008-08-21 | 1 | -8/+8 | |
| | | | | | | | intptr_t type in this case. FastISel can now select simple getelementptr instructions. llvm-svn: 55125 | |||||
* | Basic fast-isel support for instructions with constant int operands. | Dan Gohman | 2008-08-21 | 1 | -19/+69 | |
| | | | | llvm-svn: 55099 | |||||
* | Type of first GEP operand is always the same as the target pointer type. | Evan Cheng | 2008-08-21 | 1 | -7/+5 | |
| | | | | llvm-svn: 55097 | |||||
* | Fix unused variable warnings. | Dan Gohman | 2008-08-20 | 1 | -3/+3 | |
| | | | | llvm-svn: 55089 | |||||
* | First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst. | Evan Cheng | 2008-08-20 | 1 | -3/+107 | |
| | | | | llvm-svn: 55085 | |||||
* | Simplify the BuildMI calls even more. | Dan Gohman | 2008-08-20 | 1 | -6/+3 | |
| | | | | llvm-svn: 55077 | |||||
* | Simplify FastISel's constructor argument list, make the FastISel | Dan Gohman | 2008-08-20 | 1 | -11/+15 | |
| | | | | | | | | class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. llvm-svn: 55076 | |||||
* | Make more use of the BuildMI API. | Dan Gohman | 2008-08-20 | 1 | -8/+2 | |
| | | | | llvm-svn: 55072 | |||||
* | Minor code reorganization. | Dan Gohman | 2008-08-20 | 1 | -3/+3 | |
| | | | | llvm-svn: 55071 | |||||
* | Minor whitespace cleanup. | Dan Gohman | 2008-08-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 55070 | |||||
* | Fix 80 column violation. | Dan Gohman | 2008-08-20 | 1 | -1/+2 | |
| | | | | llvm-svn: 55069 | |||||
* | Fix FastISel to recognize that the last block in the function does | Dan Gohman | 2008-08-20 | 1 | -5/+8 | |
| | | | | | | not have a fall-through successor. llvm-svn: 55033 | |||||
* | Fix FastISel to recognize unhandled operands, such as constants | Dan Gohman | 2008-08-20 | 1 | -0/+4 | |
| | | | | | | that aren't available as virtual registers (for now). llvm-svn: 55026 | |||||
* | Add FastISel support for floating-point operations. | Dan Gohman | 2008-08-20 | 1 | -6/+13 | |
| | | | | llvm-svn: 55021 | |||||
* | Add FastISel support for several more binary operators. | Dan Gohman | 2008-08-20 | 1 | -16/+62 | |
| | | | | llvm-svn: 55020 | |||||
* | Support unconditional fall-through branches in FastISel. | Dan Gohman | 2008-08-19 | 1 | -0/+16 | |
| | | | | llvm-svn: 55014 | |||||
* | Use the BuildMI overload that sets up a destination register | Dan Gohman | 2008-08-19 | 1 | -6/+3 | |
| | | | | | | instead of the one that doesn't and then adding it manually. llvm-svn: 55006 | |||||
* | Handle the case where target-specific fastisel code doesn't have | Dan Gohman | 2008-08-19 | 1 | -0/+5 | |
| | | | | | | a desired opcode. llvm-svn: 55005 | |||||
* | Make FastISel's constructor protected, and give it a destructor. | Dan Gohman | 2008-08-14 | 1 | -0/+2 | |
| | | | | llvm-svn: 54793 | |||||
* | Initial checkin of the new "fast" instruction selection support. See | Dan Gohman | 2008-08-13 | 1 | -0/+104 | |
the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. llvm-svn: 54751 |