aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix lowering to work correctlyChris Lattner2004-06-111-3/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14134 91177308-0d34-0410-b5e6-96231b3b80d8
* I misled Alkis: LLVM should have isnan, not isunordered.Chris Lattner2004-06-111-4/+6
| | | | | | | | | isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the isunordered intrinsic.Alkis Evlogimenos2004-06-111-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14111 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unused variable.Chris Lattner2004-06-051-7/+10
| | | | | | | | Work around for bogus errors: no those static functions don't need to be executed to be initialized! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14040 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops, this was not to go inChris Lattner2004-06-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13958 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to the new TargetMachine interfaceChris Lattner2004-06-022-16/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13957 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to new TargetMachine interfaceChris Lattner2004-06-0211-19/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13956 91177308-0d34-0410-b5e6-96231b3b80d8
* Inline findOptimalStorageSize into it's caller, both of which are sparc specificChris Lattner2004-06-021-12/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13955 91177308-0d34-0410-b5e6-96231b3b80d8
* Finegrainify namespacificationChris Lattner2004-06-022-6/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13948 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a trivial but blatant bugChris Lattner2004-06-021-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13947 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull Interval class out of LiveIntervals.Alkis Evlogimenos2004-05-303-80/+67
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13910 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in head-of-file comment.Brian Gaeke2004-05-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13903 91177308-0d34-0410-b5e6-96231b3b80d8
* Add method to assign stack slot to virtual register without creating aAlkis Evlogimenos2004-05-292-0/+9
| | | | | | | new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13895 91177308-0d34-0410-b5e6-96231b3b80d8
* Add grow() member that grows the maps when the number of virtualAlkis Evlogimenos2004-05-291-2/+6
| | | | | | | registers in the function has changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13893 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove defs vector from live intervals.Alkis Evlogimenos2004-05-292-20/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13892 91177308-0d34-0410-b5e6-96231b3b80d8
* updates to ModuloSchedTanya Lattner2004-05-282-10/+91
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13881 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding scheduling class.Tanya Lattner2004-05-262-0/+246
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13783 91177308-0d34-0410-b5e6-96231b3b80d8
* Updating my cvs versions. THis is still in progress and much will be changed.Tanya Lattner2004-05-264-157/+299
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13782 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved MachineBasicBlock deconstructor to cpp file and removed it from ↵Tanya Lattner2004-05-242-5/+11
| | | | | | LeakDetector to fix memory leak bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13718 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13716 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate an explicit use of the LLVM basic block, using getParent instead,Chris Lattner2004-05-241-1/+1
| | | | | | | which simplifies the code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13707 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed clone to be const.Tanya Lattner2004-05-241-1/+7
| | | | | | | Changed copy constructor to set parent, prev, and next pointers to null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed up my changes to add support for cloning Machine Instructions.Tanya Lattner2004-05-231-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding support to clone MachineInstrTanya Lattner2004-05-231-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
* 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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13517 91177308-0d34-0410-b5e6-96231b3b80d8
* Start NextMBBNumber out at zero.Brian Gaeke2004-05-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13515 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13514 91177308-0d34-0410-b5e6-96231b3b80d8
* 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++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13454 91177308-0d34-0410-b5e6-96231b3b80d8
* 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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13453 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13452 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13444 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the AddPrototypes methodChris Lattner2004-05-091-1/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13432 91177308-0d34-0410-b5e6-96231b3b80d8
* Updating my versions of ModuloScheduling in cvs. Still not complete.Tanya Lattner2004-05-084-303/+860
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13424 91177308-0d34-0410-b5e6-96231b3b80d8
* Add required headerAlkis Evlogimenos2004-05-081-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13417 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unneeded headerAlkis Evlogimenos2004-05-081-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13416 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13377 91177308-0d34-0410-b5e6-96231b3b80d8
* Operate on the Machine CFG instead of on the LLVM CFGChris Lattner2004-05-012-17/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13302 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13301 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13125 91177308-0d34-0410-b5e6-96231b3b80d8
* 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.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13117 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug introduced in previous commit.Alkis Evlogimenos2004-04-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12872 91177308-0d34-0410-b5e6-96231b3b80d8
* Correctly compute spill weightsAlkis Evlogimenos2004-04-121-18/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12869 91177308-0d34-0410-b5e6-96231b3b80d8
* Print def lists a bit more compactlyAlkis Evlogimenos2004-04-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12866 91177308-0d34-0410-b5e6-96231b3b80d8
* Add definition list to each live interval.Alkis Evlogimenos2004-04-092-46/+61
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12791 91177308-0d34-0410-b5e6-96231b3b80d8
* MBB::remove should not modify the iterator passed inChris Lattner2004-03-311-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12572 91177308-0d34-0410-b5e6-96231b3b80d8
* MachineBasicBlock::remove should not modify the iterator passed inChris Lattner2004-03-311-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12571 91177308-0d34-0410-b5e6-96231b3b80d8
* Correctly update LiveVariables when an instruction changesAlkis Evlogimenos2004-03-301-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12561 91177308-0d34-0410-b5e6-96231b3b80d8
* Change how the beginnings and ends of MachineFunctions are printed. GetBrian Gaeke2004-03-291-3/+3
| | | | | | | rid of the funny cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12537 91177308-0d34-0410-b5e6-96231b3b80d8