summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Use raw_ostream throughout the AsmPrinter.Owen Anderson2008-08-219-33/+42
| | | | llvm-svn: 55092
* 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-202-5/+109
| | | | 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-202-14/+18
| | | | | | | | class hold a MachineRegisterInfo member, and make the MachineBasicBlock be passed in to SelectInstructions rather than the FastISel constructor. llvm-svn: 55076
* Dump the instruction that foiled ISel even when -debug is not used.Dan Gohman2008-08-201-1/+3
| | | | llvm-svn: 55075
* Don't hoist instructions that define a physical register.Bill Wendling2008-08-201-1/+8
| | | | llvm-svn: 55074
* 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
* Kill off SimpleBBISel, it's replaced by FastISel.Evan Cheng2008-08-203-78/+1
| | | | llvm-svn: 55067
* Disable DAGCombine's alignment inference in "fast" codegen mode.Dan Gohman2008-08-202-9/+12
| | | | llvm-svn: 55059
* Change the FoldingSetNodeID usage for objects which carryDan Gohman2008-08-202-36/+36
| | | | | | | | alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. llvm-svn: 55058
* Use BitVector instead of std::vector<unsigned char>.Dan Gohman2008-08-201-2/+1
| | | | llvm-svn: 55054
* Avoid an empty-if-body warning in release builds.Dan Gohman2008-08-201-1/+2
| | | | llvm-svn: 55050
* Fix indentation.Dan Gohman2008-08-201-2/+2
| | | | llvm-svn: 55049
* 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 a leak in the FastISel code that Chris pointed out.Dan Gohman2008-08-201-0/+8
| | | | llvm-svn: 55031
* Add support for running SelectionDAG if FastISel fails. This is underDan Gohman2008-08-201-11/+16
| | | | | | | a command-line option, so that the default behavior is an abort, which is useful for exposing code that isn't supported yet. llvm-svn: 55028
* 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
* Add code to call FastISel, and a command-line option to enable it.Dan Gohman2008-08-191-1/+32
| | | | llvm-svn: 55015
* Support unconditional fall-through branches in FastISel.Dan Gohman2008-08-191-0/+16
| | | | llvm-svn: 55014
* Allow the fast-path spilling code to attempt folding, but still leaving out ↵Owen Anderson2008-08-191-59/+68
| | | | | | remat and splitting. llvm-svn: 55012
* 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
* The fast-path still needs to set kill markers and spill/restore points as ↵Owen Anderson2008-08-191-0/+3
| | | | | | | | | appropriate. With this patch, all of MultiSource/Applications and all of SPEC2000/2006 pass with the SimpleSpiller and this fast-path enabled. llvm-svn: 55000
* Delete a dead field.Gordon Henriksen2008-08-191-1/+0
| | | | llvm-svn: 54995
* [PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata.Gordon Henriksen2008-08-191-7/+5
| | | | llvm-svn: 54994
* don't use the result of WriteTypeSymbolic or WriteAsOperand.Chris Lattner2008-08-192-6/+8
| | | | llvm-svn: 54978
* Make SimpleSpiller respect subregister indices.Owen Anderson2008-08-191-2/+5
| | | | llvm-svn: 54968
* Add a flag to enable the fast spilling path.Owen Anderson2008-08-191-0/+7
| | | | llvm-svn: 54958
* Fix a few more bugs:Owen Anderson2008-08-181-3/+8
| | | | | | | 1) Assign stack slots to new temporaries. 2) Don't insert an interval into the return vector more than once. llvm-svn: 54956
* Fix several bugs in the new fast-path:Owen Anderson2008-08-181-16/+16
| | | | | | | | 1) Remove an incorrect assertion. 2) Set the stack slot weight properly. 3) Resize the VirtRegMap when needed. llvm-svn: 54949
* Clients of addIntervalForSpills expect the added intervals to be returned ↵Owen Anderson2008-08-181-0/+9
| | | | | | sorted by starting index. llvm-svn: 54939
* Simplify the fast-patch interval spilling by using ↵Owen Anderson2008-08-181-72/+50
| | | | | | MachineRegisterInfo::reg_iterator. llvm-svn: 54930
* Resurrect some ancient code to add spill ranges without attempting folding, ↵Owen Anderson2008-08-181-0/+105
| | | | | | | | | remat, or splitting. This code has been updated to current APIs in so far as it compiles and, in theory, works, but does not take advantage of recent advancements. For instance, it could be improved by using MachineRegisterInfo::use_iterator. llvm-svn: 54924
* Don't hoist instructions that have implicit uses or defines. Before, it wasBill Wendling2008-08-181-0/+5
| | | | | | hoisting out some "test" and "cmp" instructions. This was obvious badness. llvm-svn: 54908
* Don't require Registry specializations to define random static variables.Gordon Henriksen2008-08-172-18/+0
| | | | llvm-svn: 54902
* Drop an unnecessary include.Gordon Henriksen2008-08-171-1/+0
| | | | llvm-svn: 54901
* Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen2008-08-1710-254/+226
| | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899
* Don't instantiate GC metadata for declarations.Gordon Henriksen2008-08-172-1/+3
| | | | llvm-svn: 54895
* Fix merge errorAnton Korobeynikov2008-08-173-175/+0
| | | | llvm-svn: 54891
* Move all assembler printing related stuff into new libAsmPrinterAnton Korobeynikov2008-08-175-1/+173
| | | | llvm-svn: 54885
* Factor out asmprinters from collector interface.Anton Korobeynikov2008-08-171-0/+18
| | | | llvm-svn: 54884
* Factor GC metadata table assembly generation out of Collector in preparation ↵Gordon Henriksen2008-08-1710-50/+94
| | | | | | for splitting AsmPrinter into its own library. llvm-svn: 54881
* Factor GC metadata table assembly generation out of Collector in preparation ↵Gordon Henriksen2008-08-174-18/+72
| | | | | | for splitting AsmPrinter into its own library. llvm-svn: 54880
* Rework the routines that convert AP[S]Int into a string. Now, instead ofChris Lattner2008-08-172-7/+10
| | | | | | | | | | | | | | | | | returning an std::string by value, it fills in a SmallString/SmallVector passed in. This significantly reduces string thrashing in some cases. More specifically, this: - Adds an operator<< and a print method for APInt that allows you to directly send them to an ostream. - Reimplements APInt::toString to be much simpler and more efficient algorithmically in addition to not thrashing strings quite as much. This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the asmprinter. This also fixes a bug I introduced into the asmwriter in a previous patch w.r.t. alias printing. llvm-svn: 54873
OpenPOWER on IntegriCloud