Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Avoid an empty-if-body warning in release builds. | Dan Gohman | 2008-08-20 | 1 | -1/+2 | |
| | | | | llvm-svn: 55050 | |||||
* | Fix indentation. | Dan Gohman | 2008-08-20 | 1 | -2/+2 | |
| | | | | llvm-svn: 55049 | |||||
* | 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 a leak in the FastISel code that Chris pointed out. | Dan Gohman | 2008-08-20 | 1 | -0/+8 | |
| | | | | llvm-svn: 55031 | |||||
* | Add support for running SelectionDAG if FastISel fails. This is under | Dan Gohman | 2008-08-20 | 1 | -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 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 | |||||
* | Add code to call FastISel, and a command-line option to enable it. | Dan Gohman | 2008-08-19 | 1 | -1/+32 | |
| | | | | llvm-svn: 55015 | |||||
* | Support unconditional fall-through branches in FastISel. | Dan Gohman | 2008-08-19 | 1 | -0/+16 | |
| | | | | llvm-svn: 55014 | |||||
* | Allow the fast-path spilling code to attempt folding, but still leaving out ↵ | Owen Anderson | 2008-08-19 | 1 | -59/+68 | |
| | | | | | | remat and splitting. llvm-svn: 55012 | |||||
* | 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 | |||||
* | The fast-path still needs to set kill markers and spill/restore points as ↵ | Owen Anderson | 2008-08-19 | 1 | -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 Henriksen | 2008-08-19 | 1 | -1/+0 | |
| | | | | llvm-svn: 54995 | |||||
* | [PR2327] Leverage TargetRegisterInfo to compute frame offsets for GC metadata. | Gordon Henriksen | 2008-08-19 | 1 | -7/+5 | |
| | | | | llvm-svn: 54994 | |||||
* | don't use the result of WriteTypeSymbolic or WriteAsOperand. | Chris Lattner | 2008-08-19 | 2 | -6/+8 | |
| | | | | llvm-svn: 54978 | |||||
* | Make SimpleSpiller respect subregister indices. | Owen Anderson | 2008-08-19 | 1 | -2/+5 | |
| | | | | llvm-svn: 54968 | |||||
* | Add a flag to enable the fast spilling path. | Owen Anderson | 2008-08-19 | 1 | -0/+7 | |
| | | | | llvm-svn: 54958 | |||||
* | Fix a few more bugs: | Owen Anderson | 2008-08-18 | 1 | -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 Anderson | 2008-08-18 | 1 | -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 Anderson | 2008-08-18 | 1 | -0/+9 | |
| | | | | | | sorted by starting index. llvm-svn: 54939 | |||||
* | Simplify the fast-patch interval spilling by using ↵ | Owen Anderson | 2008-08-18 | 1 | -72/+50 | |
| | | | | | | MachineRegisterInfo::reg_iterator. llvm-svn: 54930 | |||||
* | Resurrect some ancient code to add spill ranges without attempting folding, ↵ | Owen Anderson | 2008-08-18 | 1 | -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 was | Bill Wendling | 2008-08-18 | 1 | -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 Henriksen | 2008-08-17 | 2 | -18/+0 | |
| | | | | llvm-svn: 54902 | |||||
* | Drop an unnecessary include. | Gordon Henriksen | 2008-08-17 | 1 | -1/+0 | |
| | | | | llvm-svn: 54901 | |||||
* | Rename some GC classes so that their roll will hopefully be clearer. | Gordon Henriksen | 2008-08-17 | 10 | -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 Henriksen | 2008-08-17 | 2 | -1/+3 | |
| | | | | llvm-svn: 54895 | |||||
* | Fix merge error | Anton Korobeynikov | 2008-08-17 | 3 | -175/+0 | |
| | | | | llvm-svn: 54891 | |||||
* | Move all assembler printing related stuff into new libAsmPrinter | Anton Korobeynikov | 2008-08-17 | 5 | -1/+173 | |
| | | | | llvm-svn: 54885 | |||||
* | Factor out asmprinters from collector interface. | Anton Korobeynikov | 2008-08-17 | 1 | -0/+18 | |
| | | | | llvm-svn: 54884 | |||||
* | Factor GC metadata table assembly generation out of Collector in preparation ↵ | Gordon Henriksen | 2008-08-17 | 10 | -50/+94 | |
| | | | | | | for splitting AsmPrinter into its own library. llvm-svn: 54881 | |||||
* | Factor GC metadata table assembly generation out of Collector in preparation ↵ | Gordon Henriksen | 2008-08-17 | 4 | -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 of | Chris Lattner | 2008-08-17 | 2 | -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 | |||||
* | Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. ↵ | Anton Korobeynikov | 2008-08-16 | 2 | -428/+402 | |
| | | | | | | This makes JIT asmprinter-free. llvm-svn: 54843 | |||||
* | Convert several std::vectors over to SmallVector, and use reserve() as ↵ | Owen Anderson | 2008-08-15 | 1 | -2/+4 | |
| | | | | | | appropriate for cases where std::vector is still used. llvm-svn: 54820 | |||||
* | Use SmallSet instead of std::set to save allocations. | Owen Anderson | 2008-08-14 | 1 | -3/+3 | |
| | | | | llvm-svn: 54810 | |||||
* | Move MachineInstr::getOpcode inline. | Owen Anderson | 2008-08-14 | 1 | -6/+0 | |
| | | | | llvm-svn: 54807 | |||||
* | Convert uses of std::vector in TargetInstrInfo to SmallVector. This change ↵ | Owen Anderson | 2008-08-14 | 4 | -35/+37 | |
| | | | | | | had to be propoagated down into all the targets and up into all clients of this API. llvm-svn: 54802 | |||||
* | Make FastISel's constructor protected, and give it a destructor. | Dan Gohman | 2008-08-14 | 1 | -0/+2 | |
| | | | | llvm-svn: 54793 | |||||
* | Remove more uses of std::set. | Owen Anderson | 2008-08-14 | 1 | -6/+8 | |
| | | | | llvm-svn: 54787 | |||||
* | Improve support for vector casts in LLVM IR and CodeGen. | Dan Gohman | 2008-08-14 | 4 | -88/+221 | |
| | | | | llvm-svn: 54784 | |||||
* | Speed up addRegisterDead by adding more fast checks before performing the ↵ | Owen Anderson | 2008-08-14 | 1 | -1/+3 | |
| | | | | | | | | | expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions. llvm-svn: 54781 | |||||
* | Use empty() instead of begin() == end(). | Dan Gohman | 2008-08-14 | 4 | -5/+5 | |
| | | | | llvm-svn: 54780 | |||||
* | Get rid of a use of std::map. | Owen Anderson | 2008-08-13 | 1 | -2/+2 | |
| | | | | llvm-svn: 54770 | |||||
* | Fix a bogus srem rule - a negative value srem'd by a power-of-2 | Dan Gohman | 2008-08-13 | 1 | -5/+3 | |
| | | | | | | | can have a non-negative result; for example, -16%16 is 0. Also, clarify the related comments. This fixes PR2670. llvm-svn: 54767 | |||||
* | Expunge the last uses of std::map from LiveIntervals. | Owen Anderson | 2008-08-13 | 1 | -13/+13 | |
| | | | | llvm-svn: 54766 | |||||
* | Move r2iMap_ over to DenseMap from std::map. | Owen Anderson | 2008-08-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 54765 | |||||
* | Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with | Dan Gohman | 2008-08-13 | 1 | -11/+9 | |
| | | | | | | | non-constant indices. Only a few of the peephole checks require a constant index. llvm-svn: 54764 |