summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Adding scheduling class.Tanya Lattner2004-05-262-0/+246
| | | | llvm-svn: 13783
* Updating my cvs versions. THis is still in progress and much will be changed.Tanya Lattner2004-05-264-157/+299
| | | | llvm-svn: 13782
* Moved MachineBasicBlock deconstructor to cpp file and removed it from ↵Tanya Lattner2004-05-242-5/+11
| | | | | | LeakDetector to fix memory leak bug. llvm-svn: 13718
* Added MachineFunction parent* to MachineBasicBlock. Customized ilist templateTanya Lattner2004-05-242-14/+34
| | | | | | to set the parent when a MachineBasicBlock is added to a MachineFunction. llvm-svn: 13716
* Eliminate an explicit use of the LLVM basic block, using getParent instead,Chris Lattner2004-05-241-1/+1
| | | | | | which simplifies the code llvm-svn: 13707
* Changed clone to be const.Tanya Lattner2004-05-241-1/+7
| | | | | | Changed copy constructor to set parent, prev, and next pointers to null. llvm-svn: 13706
* Fixed up my changes to add support for cloning Machine Instructions.Tanya Lattner2004-05-231-2/+3
| | | | llvm-svn: 13665
* Adding support to clone MachineInstrTanya Lattner2004-05-231-0/+19
| | | | llvm-svn: 13661
* Fix a really nasty bug from my changes on Monday to PHIElim. These changesChris Lattner2004-05-121-11/+19
| | | | | | | | broke obsequi and a lot of other things. It all boiled down to MBB being overloaded in an inner scope and me confusing it with the one in the outer scope. Ugh! llvm-svn: 13517
* Start NextMBBNumber out at zero.Brian Gaeke2004-05-121-1/+1
| | | | llvm-svn: 13515
* Add non-const MachineBasicBlock::getParent() accessor method.Brian Gaeke2004-05-121-0/+19
| | | | | | | | MBBs start out as #-1. When a MBB is added to a MachineFunction, it gets the next available unique MBB number. If it is removed from a MachineFunction, it goes back to being #-1. llvm-svn: 13514
* Switch this from using an std::map to using a DenseMap. This speeds upChris Lattner2004-05-101-6/+5
| | | | | | phi-elimination from 0.6 to 0.54s on kc++. llvm-svn: 13454
* Use a new VRegPHIUseCount to compute uses of PHI values by other phi valuesChris Lattner2004-05-101-14/+21
| | | | | | | in the basic block being processed. This fixes PhiElimination on kimwitu++ from taking 105s to taking a much more reasonable 0.6s (in a debug build). llvm-svn: 13453
* Now that we use an ilist of machine instructions, iterators are more robustChris Lattner2004-05-101-5/+8
| | | | | | | | | than before. Because this is the case, we can compute the first non-phi instruction once when de-phi'ing a block. This shaves ~4s off of phielimination of _Z7yyparsev in kimwitu++ from 109s -> 105s. There are still much more important gains to come. llvm-svn: 13452
* Patch to fix PR337. Make sure to mark all aliased physical registers as usedChris Lattner2004-05-101-3/+8
| | | | | | | | | | | | | when we see a read of a register. This is important in cases like: AL = ... AH = ... = AX The read of AX must make both the AL and AH defs live until the use. llvm-svn: 13444
* Updating my versions of ModuloScheduling in cvs. Still not complete.Tanya Lattner2004-05-084-303/+860
| | | | llvm-svn: 13424
* Add required headerAlkis Evlogimenos2004-05-081-0/+1
| | | | llvm-svn: 13417
* Remove unneeded headerAlkis Evlogimenos2004-05-081-1/+0
| | | | llvm-svn: 13416
* numeric_limits::infinity() apparently does not work on all systems. As aChris Lattner2004-05-062-7/+5
| | | | | | workaround, use the C HUGE_VAL macro instead. llvm-svn: 13377
* Operate on the Machine CFG instead of on the LLVM CFGChris Lattner2004-05-012-17/+12
| | | | llvm-svn: 13302
* Stop LiveVariables from using BasicBlocks as part of the mapping, insteadChris Lattner2004-05-011-29/+20
| | | | | | | | use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of indirections and mappings. llvm-svn: 13301
* Include SparcV9RegInfo.h instead of TargetRegInfo.h. This serves as a bit ofBrian Gaeke2004-04-231-1/+1
| | | | | | | documentation that this module needs to be made independent of the register file description of the current target. llvm-svn: 13125
* Implement emitWordAt() for the debug emitter and the file printer emitter. (IBrian Gaeke2004-04-231-0/+7
| | | | | | | am not so sure about the file printer emitter, but the debug emitter change should be harmless.) llvm-svn: 13117
* Fix bug introduced in previous commit.Alkis Evlogimenos2004-04-121-1/+1
| | | | llvm-svn: 12872
* Correctly compute spill weightsAlkis Evlogimenos2004-04-121-18/+19
| | | | llvm-svn: 12869
* Print def lists a bit more compactlyAlkis Evlogimenos2004-04-121-1/+1
| | | | llvm-svn: 12866
* Add definition list to each live interval.Alkis Evlogimenos2004-04-092-46/+61
| | | | llvm-svn: 12791
* MBB::remove should not modify the iterator passed inChris Lattner2004-03-311-1/+2
| | | | llvm-svn: 12572
* MachineBasicBlock::remove should not modify the iterator passed inChris Lattner2004-03-311-2/+1
| | | | llvm-svn: 12571
* Correctly update LiveVariables when an instruction changesAlkis Evlogimenos2004-03-301-3/+3
| | | | llvm-svn: 12561
* Change how the beginnings and ends of MachineFunctions are printed. GetBrian Gaeke2004-03-291-3/+3
| | | | | | rid of the funny cast. llvm-svn: 12537
* Make the set of fixed (preallocated) intervals be a fixed superset ofAlkis Evlogimenos2004-03-171-29/+10
| | | | | | | unhandled + handled. So unhandled is now including all fixed intervals and fixed intervals never changes when processing a function. llvm-svn: 12462
* Fix PR294Chris Lattner2004-03-161-1/+2
| | | | llvm-svn: 12425
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-142-11/+12
| | | | | | instruction to make the API more flexible. llvm-svn: 12386
* Spill explicit physical register defs as well.Alkis Evlogimenos2004-03-091-3/+11
| | | | llvm-svn: 12260
* As I wrote in the docs, simple is the default spiller :-)Alkis Evlogimenos2004-03-061-2/+1
| | | | llvm-svn: 12189
* Add simple spiller.Alkis Evlogimenos2004-03-061-9/+72
| | | | llvm-svn: 12188
* Make MachineOperand's value named 'contents'. Make really, really sureBrian Gaeke2004-03-031-6/+6
| | | | | | | it is always completely initialized and copied. Also, fix up many comments and asserts. llvm-svn: 12100
* Add a spiller option to llc. A simple spiller will come soon. When we get ↵Alkis Evlogimenos2004-03-014-46/+74
| | | | | | 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-015-29/+87
| | | | llvm-svn: 12058
* TargetCacheInfo has been removed; its only uses were to propagate a constantBrian Gaeke2004-03-011-2/+1
| | | | | | | | | (16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in the interest of not breaking things any more than they already are, I'm going to leave the constant alone. llvm-svn: 12043
* Adding new Modulo Scheduling graph files.Tanya Lattner2004-03-013-0/+769
| | | | llvm-svn: 12031
* Removing old graph files with new graph files that I wrote. Updated ↵Tanya Lattner2004-03-013-276/+682
| | | | | | ModuloScheduling pass, but still in progress. llvm-svn: 12030
* Add an assertChris Lattner2004-02-291-1/+4
| | | | llvm-svn: 12010
* Add back #include I messed upChris Lattner2004-02-291-0/+1
| | | | llvm-svn: 12009
* Urg, forgot to check this in.Chris Lattner2004-02-291-1/+0
| | | | llvm-svn: 12007
* Move the private MachineInstrAnnot.h into a private directory.Chris Lattner2004-02-291-1/+1
| | | | llvm-svn: 12003
* Remove use of an ugly headerChris Lattner2004-02-291-1/+0
| | | | llvm-svn: 12002
* Move methods out of .h fileChris Lattner2004-02-291-0/+9
| | | | llvm-svn: 12001
* Eliminate the distinction between "real" and "unreal" instructionsChris Lattner2004-02-291-1/+1
| | | | llvm-svn: 11986
OpenPOWER on IntegriCloud