Commit Graph

365 Commits

Author SHA1 Message Date
Chris Lattner
296b7730e3 * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
function in the one .cpp file that uses it.  Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
  templates that will eventually be moved to Support.
* Eliminate some irrelevant const's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1712 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:52:05 +00:00
Chris Lattner
5e5dfa307a * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
function in the one .cpp file that uses it.  Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
  templates that will eventually be moved to Support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1711 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:51:01 +00:00
Chris Lattner
0665a5f1f5 * Code Cleanups
* Introduce RAV to allow stream I/O instead of using printValue


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1710 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 01:43:49 +00:00
Chris Lattner
f39f379f9e Changes neccesary due to the move of BBLiveVar.h to the lib/Analysis/LiveVar directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1709 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:43:37 +00:00
Chris Lattner
4996084acf * Add a #include not indirectly included any more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1707 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:35:14 +00:00
Chris Lattner
ab584111e7 * Give BBLiveVar.cpp a proper file header
* applyFlowFunc DOES NOT NEED TO COPY the huge BB->BBLiveVar Map every time it is invoked!
* Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1706 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:34:50 +00:00
Chris Lattner
0174410fd0 * Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1705 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:33:19 +00:00
Chris Lattner
a51c7a8ef5 Code cleanups, no functional change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1704 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 23:31:16 +00:00
Chris Lattner
bdfd328515 Clean up MethodLiveVarInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1703 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:49:04 +00:00
Chris Lattner
5ff562e2c0 The interface to instruction scheduling is now just a call to get the pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1702 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:03:43 +00:00
Chris Lattner
4d7fc119b8 * RegisterAllocation _uses_ LiveVar analysis, instead of creating it's own copy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1701 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:02:38 +00:00
Chris Lattner
9adb7ad457 * The itf exposed by InstrScheduling is now a single function to create the right pass
* InstructionScheduling is now a real pass
* InstrSched _uses_ LiveVar analysis, instead of creating it's own copy many times
  through a loop.  In this was LiveVarAnalysis is actually even SHARED by Register
  allocation.
* SchedPriorities is now passed the live var information in


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1700 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:02:16 +00:00
Chris Lattner
4fd2dbbf1d Turn live variable analysis into a real MethodPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1699 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:00:08 +00:00
Chris Lattner
14ab1ce020 Switch register allocator over to using LoopInfo directly instead of indirectly through LoopDepthCalculator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1696 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:48:00 +00:00
Chris Lattner
4911c357e1 Make LoopDeptCalculator be an internal artifact of how RegAlloc is implemented,
do not expose it.  Additionally, have it be auto generated by the pass framework
for us.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1695 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:39:42 +00:00
Chris Lattner
3e0f8288e7 Make #include "llvm/Analysis/LoopDepth.h" be an internal artifact of how register allocation is implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1693 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:38:48 +00:00
Chris Lattner
d1b60fbe78 * ValueSet interface converted from add/remove to insert/erase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1690 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:37:09 +00:00
Chris Lattner
30adeb6d07 * Add #includes removed from headers
* ValueSet interface converted from add/remove to insert/erase
* Minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1689 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:36:59 +00:00
Chris Lattner
f35f2fbbc2 Remove dependence on BBLiveVar from InstrScheduling
Minor cleanups


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1688 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:35:45 +00:00
Chris Lattner
1164632c7e * Add #includes that were yanked out of header files
* Convert over to valueset interface that uses insert & erase insead of add and remove
* the -> operator really isn't that hard to use!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1687 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:35:12 +00:00
Chris Lattner
65b1ad9042 Cut down include pollution and number of frivolous consts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1683 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:31:03 +00:00
Chris Lattner
2f9b28e59a Convert RegisterAllocator interface to opaque pass type, so that users do not
need to know _anything_ about RegAlloc to use it.  Well in the end maybe.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1681 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 15:54:09 +00:00
Chris Lattner
59ba109d9d EmitAssembly doesn't need an UltraSparc, it can do with any TargetMachine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1680 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 15:53:23 +00:00
Chris Lattner
699683c585 * Minor cleanups
* Reduce number of #includes
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* SparcInternals.h now no longer #includes RegClass.h or SparcRegClassInfo.h
* Pull inlined functions out of .h file if they are virtual and interfere with dependencies


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1677 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:59:25 +00:00
Chris Lattner
3058761d3d Add code that used to be inline in MachineSchedInfo.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:56:30 +00:00
Chris Lattner
0a8ed9401d Add #includes neccesary since they were removed from .h files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1675 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:56:09 +00:00
Chris Lattner
b99bd2b145 Move instrIsFeasible from InstrScheduling.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1674 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:55:42 +00:00
Chris Lattner
2182c785c2 * Minor cleanups
* Reduce number of #includes, sometimes drastically (LiveRangeInfo.h lost _7_)
* Move instrIsFeasible() from InstrScheduling.h to SchedPriorities.h
* Delete blank lines at end of files


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1672 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:52:08 +00:00
Chris Lattner
9e881eb60d Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1671 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:48:24 +00:00
Chris Lattner
b99169f183 SparcRegInfo does NOT need anything about instruction scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1670 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 02:44:38 +00:00
Chris Lattner
77f66c131d * Move command line parsing debug stuff to InstrScheduling internal header file
SchedPriorities.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1669 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 02:44:20 +00:00
Chris Lattner
6b04e71fc9 Pull all of the scheduling related stuff out of Sparc.cpp into it's own file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1668 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:39:14 +00:00
Chris Lattner
6dd98a6c31 Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass
that has a very minimal interface (like it should have).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1667 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:33:08 +00:00
Chris Lattner
7327d7ee8b Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.
Eventually they will probably get moved again, but at least now they aren't
having to be compiled by 7 different .cpp files...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1666 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 00:04:35 +00:00
Chris Lattner
4387e3128b Convert sparc backend over to use pass based compilation structure.
Try to decouple stuff as much as possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1664 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:42:19 +00:00
Chris Lattner
0feb358654 Convert sparc backend over to use pass based compilation structure.
Convert some stages into passes in preparation for more splitting up.
Try to decouple stuff as much as possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1663 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:41:51 +00:00
Chris Lattner
c19b8b10e5 Convert assembly emission over to a two pass approach.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1662 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 23:41:08 +00:00
Chris Lattner
f2868ce228 Code pulled out of MAchineInstr.(h|cpp)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1660 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:54:50 +00:00
Chris Lattner
ed5171e5e7 Add a file level comment
Remove #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1657 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:52:04 +00:00
Chris Lattner
6edfcc578d Implement new method by method assembly output & memory releasing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1656 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:51:17 +00:00
Chris Lattner
9c461083e1 * Switch to new TmpInstruction model
* Switch to new MachineCodeForInstruction model


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1655 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:50:56 +00:00
Chris Lattner
cb0a1202af * Switch to new TmpInstruction model
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1654 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:49:49 +00:00
Chris Lattner
cf4525bd20 * Swithc to new MachineCodeForInstruction model
* Implement memory freeing for instruction temporaries


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1653 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:49:15 +00:00
Chris Lattner
c019a17137 * prune #includes
* Implement permethod output of machine code to assembly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1652 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:48:06 +00:00
Chris Lattner
884f4b5af0 Add #include that is no longer implicitly included
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1651 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:47:05 +00:00
Chris Lattner
dd1e40b4ce Lots of code cleanups, no functional changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1650 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:46:34 +00:00
Chris Lattner
fb3b1ec982 * Switch over to cleaner TmpInstruction model
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1648 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:39:06 +00:00
Chris Lattner
06cb1b7382 * Straighten out #includes
* Switch to MAchineCodeForInstruction model instead of MachineCodeForVMInstr


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1647 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:33:46 +00:00
Chris Lattner
a8bbb6bced * Swich to annotation model for MachineCodeForInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1646 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:31:41 +00:00
Chris Lattner
de6dbabaee Remove extraneous #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1645 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:30:08 +00:00