summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/VirtRegMap.h
Commit message (Collapse)AuthorAgeFilesLines
...
* More explicit keywords.Dan Gohman2007-08-021-1/+1
| | | | llvm-svn: 40757
* Re-materialize all loads from fixed stack slots.Evan Cheng2007-04-041-4/+4
| | | | llvm-svn: 35660
* First cut trivial re-materialization support.Evan Cheng2007-03-201-5/+41
| | | | llvm-svn: 35208
* rename DenseMap to IndexedMap.Chris Lattner2007-02-011-3/+3
| | | | llvm-svn: 33749
* Added an automatic cast to "std::ostream*" etc. from OStream. We then canBill Wendling2006-12-171-1/+5
| | | | | | | rework the hacks that had us passing OStream in. We pass in std::ostream* instead, check for null, and then dispatch to the correct print() method. llvm-svn: 32636
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-071-2/+2
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* More removal of std::cerr and DEBUG, replacing with DOUT instead.Bill Wendling2006-11-171-0/+2
| | | | llvm-svn: 31806
* Fix a long-standing wart in the code generator: two-address instruction loweringChris Lattner2006-09-051-4/+4
| | | | | | | | | | | | | | | actually *removes* one of the operands, instead of just assigning both operands the same register. This make reasoning about instructions unnecessarily complex, because you need to know if you are before or after register allocation to match up operand #'s with the target description file. Changing this also gets rid of a bunch of hacky code in various places. This patch also includes changes to fold loads into cmp/test instructions in the X86 backend, along with a significant simplification to the X86 spill folding code. llvm-svn: 30108
* Fix a latent bug that my spiller patch last week exposed: we were leavingChris Lattner2006-05-011-4/+3
| | | | | | | | | instructions in the virtregfolded map that were deleted. Because they were deleted, newly allocated instructions could end up at the same address, magically finding themselves in the map. The solution is to remove entries from the map when we delete the instructions. llvm-svn: 28041
* Remove previous patch, which wasn't quite right.Chris Lattner2006-05-011-3/+10
| | | | llvm-svn: 28039
* Local spiller kills a store if the folded restore is turned into a copy.Evan Cheng2006-04-301-2/+2
| | | | | | | | But this is incorrect if the spilled value live range extends beyond the current BB. It is currently controlled by a temporary option -spiller-check-liveout. llvm-svn: 28024
* Remove trailing whitespaceMisha Brukman2005-04-211-1/+1
| | | | llvm-svn: 21420
* When a virtual register is folded into an instruction, keep track of whetherChris Lattner2004-10-011-5/+8
| | | | | | | | it was a use, def, or both. This allows us to be less pessimistic in our analysis of them. In practice, this doesn't make a big difference, but it doesn't hurt either. llvm-svn: 16632
* Document this class a bit :-)Alkis Evlogimenos2004-10-011-0/+34
| | | | llvm-svn: 16626
* Use longer and more explicit names for instance vars (particularly importantChris Lattner2004-09-301-18/+16
| | | | | | | data structures). Fix the print method to send to the right ostream, not always cerr. Delete typedefs that are only used once. llvm-svn: 16606
* Reindent code, improve comments, move huge nested methods out of classes,Chris Lattner2004-09-301-107/+103
| | | | | | prune #includes, add print/dump methods, etc. No functionality changes. llvm-svn: 16604
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Add function to clear all virtual->physical mappings but not assignedAlkis Evlogimenos2004-07-201-0/+5
| | | | | | stack slots. This is in preparation for the iterative linear scan. llvm-svn: 15032
* Add method to assign stack slot to virtual register without creating aAlkis Evlogimenos2004-05-291-0/+1
| | | | | | new one. llvm-svn: 13895
* Add grow() member that grows the maps when the number of virtualAlkis Evlogimenos2004-05-291-2/+6
| | | | | | registers in the function has changed. llvm-svn: 13893
* Add a spiller option to llc. A simple spiller will come soon. When we get ↵Alkis Evlogimenos2004-03-011-1/+8
| | | | | | CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now. llvm-svn: 12062
* Add the long awaited memory operand folding support for linear scanAlkis Evlogimenos2004-03-011-0/+14
| | | | llvm-svn: 12058
* Rename member function to be consistent with the rest.Alkis Evlogimenos2004-02-271-1/+1
| | | | llvm-svn: 11898
* Add DenseMap template and actually use it for for mapping virtual regsAlkis Evlogimenos2004-02-251-17/+13
| | | | | | to objects. llvm-svn: 11840
* Move machine code rewriter and spiller outside the registerAlkis Evlogimenos2004-02-241-0/+2
| | | | | | | | | | | allocator. The implementation is completely rewritten and now employs several optimizations not exercised before. For example for 164.gzip we have 997 loads and 699 stores vs the 1221 loads and 880 stores we have before. llvm-svn: 11798
* Add predicates for checking if a virtual register has a physicalAlkis Evlogimenos2004-02-241-0/+8
| | | | | | register mapping or a stack slot mapping. llvm-svn: 11795
* Make enum private as it is an implementation detail.Alkis Evlogimenos2004-02-231-5/+5
| | | | llvm-svn: 11782
* Remove '4Virt' from member function names as it is obvious.Alkis Evlogimenos2004-02-231-3/+3
| | | | llvm-svn: 11781
* Refactor VirtRegMap out of RegAllocLinearScan as the first part of bugAlkis Evlogimenos2004-02-231-0/+95
251 (providing a generic machine code rewriter/spiller). llvm-svn: 11780
OpenPOWER on IntegriCloud