summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Reserve ECX and EDI instead of EBX and EDI. Since EBX is a calleeAlkis Evlogimenos2003-12-281-8/+8
| | | | | | | | saved register it has a longer free range than ECX (which is defined every time there is a fnuction call) which makes ECX a better register to reserve. llvm-svn: 10635
* Add coalescing to register allocator. A hint is added to each intervalAlkis Evlogimenos2003-12-282-2/+29
| | | | | | | | | | | which denotes the register we would like to be assigned to (virtual or physical). In register allocation, if this hint exists and we can map it to a physical register (it is either a physical register or it is a virtual register that already got assigned to a physical one) we use that register if it is available instead of a random one in the free pool. llvm-svn: 10634
* Add TargetInstrInfo::isMoveInstr() to support coalescing in registerAlkis Evlogimenos2003-12-282-0/+23
| | | | | | allocation. llvm-svn: 10633
* Whoops, don't try to lower non intrinsic callsChris Lattner2003-12-282-0/+2
| | | | llvm-svn: 10632
* implement support for the intrinsic lowering functionalityChris Lattner2003-12-286-36/+78
| | | | llvm-svn: 10629
* Eliminate some code that is not needed now that we have the intrinsic ↵Chris Lattner2003-12-284-58/+30
| | | | | | lowering pass llvm-svn: 10628
* Pass around IntrinsicLowering instances as appropriate.Chris Lattner2003-12-287-50/+74
| | | | | | Reimplement the Interpreters implementation of va_* to be more direct. llvm-svn: 10627
* Use the intrinsic lowering functionalityChris Lattner2003-12-281-15/+44
| | | | llvm-svn: 10626
* Move into the VMCore libraryChris Lattner2003-12-281-1/+1
| | | | llvm-svn: 10623
* Implement the default implementation of the intrinsic lowering classChris Lattner2003-12-281-0/+57
| | | | llvm-svn: 10621
* finegrainify namespacificationChris Lattner2003-12-281-9/+7
| | | | | | minor cleanups llvm-svn: 10619
* Merging constants can cause further room for improvement. Iterate untilChris Lattner2003-12-281-35/+45
| | | | | | we converge llvm-svn: 10618
* Add a noteChris Lattner2003-12-281-0/+5
| | | | llvm-svn: 10617
* Factor code out of LLIChris Lattner2003-12-261-0/+54
| | | | llvm-svn: 10616
* minor cleanupsChris Lattner2003-12-261-7/+6
| | | | llvm-svn: 10612
* No longer run atExit functions from run()Chris Lattner2003-12-263-23/+27
| | | | | | | rename run to runFunction Genericize the runFunction code a little bit, though it still stinks llvm-svn: 10610
* No longer run atExit functions from run()Chris Lattner2003-12-262-10/+6
| | | | | | rename run to runFunction llvm-svn: 10609
* Improve debugging output when choosing a register to spill.Alkis Evlogimenos2003-12-241-8/+3
| | | | llvm-svn: 10604
* Do a separate pass to compute spill weights because doing it inlineAlkis Evlogimenos2003-12-241-10/+27
| | | | | | | | with live intervals was missing registers that were used before they were defined (in the arbitrary order live intervals numbers instructions). llvm-svn: 10603
* Right, fix the problem with invoke instructions, not just call instructionsChris Lattner2003-12-231-1/+1
| | | | llvm-svn: 10599
* Do not delete the type holder until after the call instruction has beenChris Lattner2003-12-231-1/+1
| | | | | | constructed! llvm-svn: 10598
* Minor cleanups, plug a minor memory leakChris Lattner2003-12-232-5/+2
| | | | llvm-svn: 10596
* Change the way free regusters are computed and perform betterAlkis Evlogimenos2003-12-231-130/+77
| | | | | | allocation in the presence of preallocated intervals. llvm-svn: 10595
* rename ClassifyExpression -> ClassifyExprChris Lattner2003-12-234-19/+19
| | | | llvm-svn: 10592
* More minor non-functional changes. This now computes the exit condition, thoughChris Lattner2003-12-231-15/+52
| | | | | | it doesn't do anything with it. llvm-svn: 10590
* Remove extraneous #includeChris Lattner2003-12-232-16/+11
| | | | | | finegrainify namespacification llvm-svn: 10589
* Finegrainify namespacificationChris Lattner2003-12-231-42/+42
| | | | llvm-svn: 10588
* Fix memory corruption bug PR193Chris Lattner2003-12-221-20/+26
| | | | llvm-svn: 10586
* Reverted back to revision 1.11. The previous fix doesn't really fixJohn Criswell2003-12-221-12/+3
| | | | | | anything; it just causes the bug to go dormant. llvm-svn: 10585
* Fix crash when compiling twolf.Alkis Evlogimenos2003-12-221-1/+2
| | | | llvm-svn: 10584
* Don't mind me, I'm just refactoring away. This patch makes room for LFTR, butChris Lattner2003-12-221-90/+130
| | | | | | contains no functionality changes. llvm-svn: 10583
* finegrainify namespacificationChris Lattner2003-12-221-8/+23
| | | | | | Implement indvar analysis of getelementptr and sub expressions llvm-svn: 10582
* Implement IndVarsSimplify/pointer-indvars.ll, transforming pointerChris Lattner2003-12-221-9/+19
| | | | | | arithmetic into "array subscripts" llvm-svn: 10580
* finegrainify namespacificationChris Lattner2003-12-221-3/+13
| | | | | | add new getIntPtrType() method llvm-svn: 10579
* Fix PR194Chris Lattner2003-12-221-56/+85
| | | | llvm-svn: 10573
* Really release memory used by functions. Patch by Chris.Misha Brukman2003-12-221-0/+1
| | | | llvm-svn: 10572
* Remove verifyIntervals() since it doesn't actually work right now.Alkis Evlogimenos2003-12-211-52/+0
| | | | llvm-svn: 10570
* Change weight into a float so that we can take into account theAlkis Evlogimenos2003-12-212-13/+28
| | | | | | | | nesting level when computing it. Right now the allocator uses: w = sum_over_defs_uses( 10 ^ nesting level ); llvm-svn: 10569
* Move FP_REG_KILL closer to the return instruction.Alkis Evlogimenos2003-12-211-1/+2
| | | | llvm-svn: 10567
* Add support for inactive intervals. This effectively reuses registersAlkis Evlogimenos2003-12-212-239/+370
| | | | | | for live ranges that fall into assigned registers' holes. llvm-svn: 10566
* Fix PR#193.John Criswell2003-12-201-3/+12
| | | | | | | | | | Modified ReadArchiveBuffer() so that it dynamically allocates the std::string object used to hold the bytecode object file's name. This is necessary because it is passed by reference to the new Module that is allocated to represent the bytecode object, and previously we were using a std::string that disappeared on function exit. llvm-svn: 10565
* Move FP_REG_KILL closer to the actual branch instruction.Alkis Evlogimenos2003-12-201-2/+5
| | | | llvm-svn: 10563
* Remove floating point killer pass. This is now implemented in theAlkis Evlogimenos2003-12-205-64/+8
| | | | | | | | | | instruction selector by adding a new pseudo-instruction FP_REG_KILL. This instruction implicitly defines all x86 fp registers and is a terminator so that passes which add machine code at the end of basic blocks (like phi elimination) do not add instructions between it and the branch or return instruction. llvm-svn: 10562
* Add a new target-independent machine code freeing passChris Lattner2003-12-201-8/+33
| | | | llvm-svn: 10560
* Finally, _actually delete the machine code_ for a function, after it hasChris Lattner2003-12-202-2/+9
| | | | | | | been emitted. Also, since the FPK pass is causing memory access violations, disable it. llvm-svn: 10559
* This should not be needed anymoreChris Lattner2003-12-201-4/+0
| | | | llvm-svn: 10558
* Fix memory leak in the stackifier, due to the machinebasicblocks not holdingChris Lattner2003-12-201-0/+1
| | | | | | instructions on an ilist llvm-svn: 10556
* Finegrainify namespacificationChris Lattner2003-12-201-21/+20
| | | | | | Minor cleanups to killer pass llvm-svn: 10555
* Hoist some sparc specific code into the sparc targetChris Lattner2003-12-203-6/+53
| | | | llvm-svn: 10554
* * Finegrainify namespacificationChris Lattner2003-12-201-72/+13
| | | | | | | | * Move sparc specific code out of generic code * Eliminate the getOffset() method which made INVALID_FRAME_OFFSET necessary, which made pulling in MAX_INT as a sentinal necessary. llvm-svn: 10553
OpenPOWER on IntegriCloud