summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Make FastISel use the correct argument type when casting GEP indices.Dan Gohman2008-08-261-6/+7
| | | | llvm-svn: 55384
* Don't select binary instructions with illegal types.Dan Gohman2008-08-261-0/+6
| | | | llvm-svn: 55383
* Add support for fast isel of sitofp, and remove some unnecessary and ↵Owen Anderson2008-08-261-4/+28
| | | | | | imprecise legality checks. llvm-svn: 55381
* Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel ↵Owen Anderson2008-08-261-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 Anderson2008-08-261-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 Anderson2008-08-261-5/+43
| | | | llvm-svn: 55373
* Add a RetVT parameter to emitted FastISel methods, so that we will be able ↵Owen Anderson2008-08-251-18/+23
| | | | | | | | to pass the desired return type down. This is not currently used. llvm-svn: 55345
* Unbreak build.Evan Cheng2008-08-251-2/+2
| | | | llvm-svn: 55342
* Expand bitcast support in fast isel to support bitcasts of non-constant ↵Owen Anderson2008-08-251-1/+29
| | | | | | values by emitting reg-reg copies. llvm-svn: 55340
* Add support for fast isel of (integer) immediate materialization pattens, ↵Owen Anderson2008-08-251-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 Gohman2008-08-231-1/+1
| | | | llvm-svn: 55220
* Reapply r55191 and r55192.Dan Gohman2008-08-221-8/+15
| | | | llvm-svn: 55205
* Reverting r55190, r55191, and r55192. They broke the build with this error ↵Bill Wendling2008-08-221-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 Gohman2008-08-221-2/+1
| | | | llvm-svn: 55192
* Support non-fallthrough unconditional branches in FastISel.Dan Gohman2008-08-221-8/+16
| | | | llvm-svn: 55191
* Add FastISel support for PHINodes. Machine PHI nodesDan Gohman2008-08-221-0/+5
| | | | | | | are not yet updated properly, but that's a separate task. llvm-svn: 55187
* Factor out the predicate check code from DAGISelEmitter.cppDan Gohman2008-08-221-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 Gohman2008-08-211-4/+2
| | | | llvm-svn: 55129
* MVT::getMVT uses iPTR for pointer types, while we need the actualDan Gohman2008-08-211-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 Gohman2008-08-211-19/+69
| | | | llvm-svn: 55099
* Type of first GEP operand is always the same as the target pointer type.Evan Cheng2008-08-211-7/+5
| | | | llvm-svn: 55097
* Fix unused variable warnings.Dan Gohman2008-08-201-3/+3
| | | | llvm-svn: 55089
* First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst.Evan Cheng2008-08-201-3/+107
| | | | llvm-svn: 55085
* Simplify the BuildMI calls even more.Dan Gohman2008-08-201-6/+3
| | | | llvm-svn: 55077
* Simplify FastISel's constructor argument list, make the FastISelDan Gohman2008-08-201-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 Gohman2008-08-201-8/+2
| | | | llvm-svn: 55072
* Minor code reorganization.Dan Gohman2008-08-201-3/+3
| | | | llvm-svn: 55071
* Minor whitespace cleanup.Dan Gohman2008-08-201-1/+1
| | | | llvm-svn: 55070
* Fix 80 column violation.Dan Gohman2008-08-201-1/+2
| | | | llvm-svn: 55069
* Fix FastISel to recognize that the last block in the function doesDan Gohman2008-08-201-5/+8
| | | | | | not have a fall-through successor. llvm-svn: 55033
* Fix FastISel to recognize unhandled operands, such as constantsDan Gohman2008-08-201-0/+4
| | | | | | that aren't available as virtual registers (for now). llvm-svn: 55026
* Add FastISel support for floating-point operations.Dan Gohman2008-08-201-6/+13
| | | | llvm-svn: 55021
* Add FastISel support for several more binary operators.Dan Gohman2008-08-201-16/+62
| | | | llvm-svn: 55020
* Support unconditional fall-through branches in FastISel.Dan Gohman2008-08-191-0/+16
| | | | llvm-svn: 55014
* Use the BuildMI overload that sets up a destination registerDan Gohman2008-08-191-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 haveDan Gohman2008-08-191-0/+5
| | | | | | a desired opcode. llvm-svn: 55005
* Make FastISel's constructor protected, and give it a destructor.Dan Gohman2008-08-141-0/+2
| | | | llvm-svn: 54793
* Initial checkin of the new "fast" instruction selection support. SeeDan Gohman2008-08-131-0/+104
the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. llvm-svn: 54751
OpenPOWER on IntegriCloud