summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix the prolog epilog code inserter to match the documentation and supportChris Lattner2004-06-101-9/+33
| | | | | | | | targets whose stack grows up. Patch contributed by Vladimir Prus llvm-svn: 14111
* Oops, this was not to go inChris Lattner2004-06-021-1/+1
| | | | llvm-svn: 13958
* Adjust to the new TargetMachine interfaceChris Lattner2004-06-022-16/+16
| | | | llvm-svn: 13957
* Adjust to new TargetMachine interfaceChris Lattner2004-06-0211-19/+18
| | | | llvm-svn: 13956
* Inline findOptimalStorageSize into it's caller, both of which are sparc specificChris Lattner2004-06-021-12/+18
| | | | llvm-svn: 13955
* Finegrainify namespacificationChris Lattner2004-06-022-6/+3
| | | | llvm-svn: 13948
* Fix a trivial but blatant bugChris Lattner2004-06-021-4/+4
| | | | llvm-svn: 13947
* Pull Interval class out of LiveIntervals.Alkis Evlogimenos2004-05-303-80/+67
| | | | llvm-svn: 13910
* When spilling an register, introduce a new temporary for each of itsAlkis Evlogimenos2004-05-303-57/+84
| | | | | | | spills. This allows for more flexibility when allocating registers for spill code. llvm-svn: 13907
* Fix typo in head-of-file comment.Brian Gaeke2004-05-301-1/+1
| | | | llvm-svn: 13903
* Add method to assign stack slot to virtual register without creating aAlkis Evlogimenos2004-05-292-0/+9
| | | | | | 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
* Remove defs vector from live intervals.Alkis Evlogimenos2004-05-292-20/+0
| | | | llvm-svn: 13892
* updates to ModuloSchedTanya Lattner2004-05-282-10/+91
| | | | llvm-svn: 13881
* 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
OpenPOWER on IntegriCloud