| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Change std::list into a std::vector for IntervalSets. This reduces | Alkis Evlogimenos | 2004-07-21 | 1 | -4/+5 |
| | | | | | | | compile time for 176.gcc from 5.6 secs to 4.7 secs. llvm-svn: 15072 | ||||
| * | Improve file comment. | Alkis Evlogimenos | 2004-07-21 | 1 | -1/+7 |
| | | | | | llvm-svn: 15069 | ||||
| * | Add Iterative scan register allocator. | Alkis Evlogimenos | 2004-07-21 | 2 | -4/+479 |
| | | | | | llvm-svn: 15068 | ||||
| * | Linearscan is no longer experimental. | Alkis Evlogimenos | 2004-07-21 | 1 | -1/+1 |
| | | | | | llvm-svn: 15067 | ||||
| * | Add function to clear all virtual->physical mappings but not assigned | Alkis Evlogimenos | 2004-07-20 | 1 | -0/+5 |
| | | | | | | | stack slots. This is in preparation for the iterative linear scan. llvm-svn: 15032 | ||||
| * | Remove unneeded functor. LiveInterval has a < operator. | Alkis Evlogimenos | 2004-07-20 | 1 | -11/+1 |
| | | | | | llvm-svn: 15031 | ||||
| * | Remove dead code. | Alkis Evlogimenos | 2004-07-19 | 1 | -17/+0 |
| | | | | | llvm-svn: 15011 | ||||
| * | Fix a bug that occurs when the last instruction in a range is dead | Chris Lattner | 2004-07-19 | 1 | -3/+6 |
| | | | | | llvm-svn: 15005 | ||||
| * | When joining intervals, join intervals in deeply nested loops first. This | Chris Lattner | 2004-07-19 | 1 | -4/+34 |
| | | | | | | | | is a simple change, but seems to improve code a little. For example, on 256.bzip2, we went from 75.0s -> 73.33s (2% speedup). llvm-svn: 15004 | ||||
| * | Split joinIntervals into two methods | Chris Lattner | 2004-07-19 | 2 | -84/+89 |
| | | | | | llvm-svn: 15003 | ||||
| * | There is no need to store the MBB along with the MI any more, we can now | Chris Lattner | 2004-07-19 | 3 | -16/+16 |
| | | | | | | | ask instructions for their parent. llvm-svn: 14998 | ||||
| * | Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead) | Chris Lattner | 2004-07-19 | 4 | -9/+10 |
| | | | | | llvm-svn: 14997 | ||||
| * | Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent() | Chris Lattner | 2004-07-19 | 1 | -4/+4 |
| | | | | | llvm-svn: 14996 | ||||
| * | Two changes, both very significant: | Chris Lattner | 2004-07-19 | 1 | -11/+2 |
| | | | | | | | | | | | * vreg <-> vreg joining now works, enable it unconditionally when joining is enabled (which is the default). * Fix a serious pessimization of spill code where we were saying that a spilled DEF operand was live into the subsequent instruction. This allows for substantially better code when spilling starts to happen. llvm-svn: 14993 | ||||
| * | See comments. The live intervals were not coming out of the spiller in sorted | Chris Lattner | 2004-07-19 | 1 | -1/+20 |
| | | | | | | | | | | order, causing the inactive list in the linearscan list to get unsorted, which basically fuxored everything up severely. These seems to fix the joiner, so with more testing I will enable it by default. llvm-svn: 14992 | ||||
| * | Fix assertion to not dereference end! | Chris Lattner | 2004-07-19 | 1 | -2/+2 |
| | | | | | llvm-svn: 14991 | ||||
| * | Add some asserts that the list of intervals returned by addIntervalsForSpills | Chris Lattner | 2004-07-19 | 1 | -6/+30 |
| | | | | | | | | is sorted. This is not the case currently, which is causing no end of problems. llvm-svn: 14990 | ||||
| * | remove the mbbi2mbbMap_, which was just keeping track of mbb order anyway. | Chris Lattner | 2004-07-19 | 1 | -54/+73 |
| | | | | | | | | | | | Heavily refactor handleVirtualRegisterDef, adding comments and making it more efficient. It is also much easier to follow and convince ones self that it is correct :) Add -debug output to the joine, showing the result of joining the intervals. llvm-svn: 14989 | ||||
| * | fill comment to 80 cols | Chris Lattner | 2004-07-19 | 1 | -11/+7 |
| | | | | | | | remove map that is not needed llvm-svn: 14988 | ||||
| * | It looks like physref->virtreg joining is working fine. Enable it by default | Chris Lattner | 2004-07-17 | 1 | -10/+19 |
| | | | | | | | but make virtreg->virtreg joining stay off by default llvm-svn: 14916 | ||||
| * | Fix IA64 compatibility | Chris Lattner | 2004-07-16 | 2 | -2/+2 |
| | | | | | llvm-svn: 14866 | ||||
| * | Use new macro | Chris Lattner | 2004-07-16 | 1 | -1/+1 |
| | | | | | llvm-svn: 14865 | ||||
| * | Fix for PR341 | Chris Lattner | 2004-07-15 | 1 | -2/+2 |
| | | | | | llvm-svn: 14845 | ||||
| * | Add checks to ensure that there are no unreachable blocks in the function | Chris Lattner | 2004-07-09 | 1 | -0/+8 |
| | | | | | llvm-svn: 14725 | ||||
| * | * Doxygenify comments | Misha Brukman | 2004-07-09 | 1 | -104/+96 |
| | | | | | | | | | | | | * Fix spacing, grammar in comment * Make code layout consistent * Wrap code at 80 cols * Delete spurious blank lines No functional changes. llvm-svn: 14721 | ||||
| * | Fix typo. | Alkis Evlogimenos | 2004-07-09 | 1 | -1/+1 |
| | | | | | llvm-svn: 14720 | ||||
| * | Improve code comments. | Alkis Evlogimenos | 2004-07-09 | 1 | -5/+11 |
| | | | | | llvm-svn: 14719 | ||||
| * | Add viewCFG() and viewCFGOnly() APIs. | Alkis Evlogimenos | 2004-07-08 | 1 | -1/+77 |
| | | | | | llvm-svn: 14679 | ||||
| * | Disable coalescing. | Alkis Evlogimenos | 2004-07-07 | 1 | -1/+1 |
| | | | | | llvm-svn: 14655 | ||||
| * | Do not crash when joining two intervals of registers of different | Alkis Evlogimenos | 2004-07-06 | 1 | -1/+10 |
| | | | | | | | | classes: just ignore that move. Thanks to Vladimir Prus who found the bug! llvm-svn: 14644 | ||||
| * | Fix a bug in the unreachable block elim pass. Dropping all references on a | Chris Lattner | 2004-07-06 | 1 | -4/+11 |
| | | | | | | | | | basic block clear()'s all of the operands lists, including phis. This caused removePredecessor to get confused later. Because of this, we just nuke (without prejudice) PHI nodes in unreachable blocks. llvm-svn: 14635 | ||||
| * | Correctly compute the ration of iterations/#intervals. | Alkis Evlogimenos | 2004-07-04 | 1 | -2/+6 |
| | | | | | llvm-svn: 14626 | ||||
| * | Add #include <iostream> since Value.h does not #include it any more. | Reid Spencer | 2004-07-04 | 11 | -0/+16 |
| | | | | | llvm-svn: 14622 | ||||
| * | Add efficiency statistic. | Alkis Evlogimenos | 2004-07-04 | 1 | -1/+7 |
| | | | | | llvm-svn: 14590 | ||||
| * | Revert patches 1.79 and 1.80 which had to do with dead MBB's. Now that they | Chris Lattner | 2004-07-02 | 1 | -6/+4 |
| | | | | | | | don't exist, we don't have to pretend to handle them. llvm-svn: 14567 | ||||
| * | Add a trivially simple pass to delete unreachable blocks from the CFG. This | Chris Lattner | 2004-07-02 | 1 | -0/+68 |
| | | | | | | | | | | | | | | pass is required to paper over problems in the code generator (primarily live variables and its clients) which doesn't really have any well defined semantics for unreachable code. The proper solution to this problem is to have instruction selectors not select blocks that are unreachable. Until we have a instruction selection framework available for use, however, we can't expect all instruction selector writers to do this. Until then, this pass should be used. llvm-svn: 14563 | ||||
| * | Make sure that we destroy the MBB's, with all of their instructions, before | Chris Lattner | 2004-07-01 | 1 | -0/+1 |
| | | | | | | | any other data structures llvm-svn: 14524 | ||||
| * | Now that MachineFunction/MachineBasicBlock keep a mapping of blocks to ID #'s | Chris Lattner | 2004-07-01 | 2 | -21/+1 |
| | | | | | | | use them instead of a local LiveVariables numbering llvm-svn: 14523 | ||||
| * | Change MBB autonumber a bit to get the reverse mapping as well as a forward | Chris Lattner | 2004-07-01 | 1 | -10/+6 |
| | | | | | | | mapping llvm-svn: 14521 | ||||
| * | Instance var no longer exists | Chris Lattner | 2004-07-01 | 1 | -1/+1 |
| | | | | | llvm-svn: 14520 | ||||
| * | Start using MBB numbers directly instead of going through the live variables | Chris Lattner | 2004-07-01 | 3 | -4/+4 |
| | | | | | | | map. llvm-svn: 14518 | ||||
| * | Instead of building a private numbering of MBB's use brg's nifty auto-numbering. | Chris Lattner | 2004-07-01 | 1 | -5/+5 |
| | | | | | | | Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing. llvm-svn: 14517 | ||||
| * | In line with the previous patch, do not assert out if analyzing a dead basic ↵ | Chris Lattner | 2004-06-29 | 1 | -1/+4 |
| | | | | | | | block. llvm-svn: 14475 | ||||
| * | Do not dereference end iterators. It hurts when you do that. | Chris Lattner | 2004-06-29 | 1 | -3/+2 |
| | | | | | llvm-svn: 14474 | ||||
| * | Do not find these ugly sparc-specific objects by using the annotation API on | Chris Lattner | 2004-06-27 | 1 | -21/+7 |
| | | | | | | | | | instructions. Instead, keep a map of instructions -> MCFI objects in the already sparc-specific class MachineFunctionInfo. This will slow down the sparc backend a bit, but it does not penalize the rest of LLVM! llvm-svn: 14438 | ||||
| * | Made a fix so that you can print out MachineInstrs that belong to a ↵ | Tanya Lattner | 2004-06-25 | 6 | -19/+32 |
| | | | | | | | MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. llvm-svn: 14389 | ||||
| * | Convert tabs to spaces. | Misha Brukman | 2004-06-24 | 1 | -45/+44 |
| | | | | | llvm-svn: 14373 | ||||
| * | Making an archive version of the CodeGen library is unnecessary if we just | Misha Brukman | 2004-06-22 | 1 | -1/+0 |
| | | | | | | | move InstructionLowering itself. llvm-svn: 14324 | ||||
| * | Provide archive version of CodeGen library (for those tools that only need | Misha Brukman | 2004-06-22 | 1 | -0/+1 |
| | | | | | | | IntrinsicLowering, for instance). llvm-svn: 14323 | ||||
| * | Rename Interval class to LiveInterval to avoid conflicting with the already | Chris Lattner | 2004-06-21 | 3 | -50/+54 |
| | | | | | | | | | | existing llvm::Interval class. Patch contributed by Vladimir Prus! http://mail.cs.uiuc.edu/pipermail/llvmbugs/2004-June/000710.html llvm-svn: 14281 | ||||

