Commit Graph

138 Commits

Author SHA1 Message Date
Chris Lattner 669a74ce8a Make #include "llvm/Analysis/LoopDepth.h" be an internal artifact of how register allocation is implemented.
llvm-svn: 1693
2002-02-04 17:38:48 +00:00
Chris Lattner 83a8434eb2 * Add #includes removed from headers
* ValueSet interface converted from add/remove to insert/erase
* Minor cleanups

llvm-svn: 1689
2002-02-04 16:36:59 +00:00
Chris Lattner f48173a875 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.

llvm-svn: 1681
2002-02-04 15:54:09 +00:00
Chris Lattner 49562d8442 Add #includes neccesary since they were removed from .h files
llvm-svn: 1675
2002-02-04 05:56:09 +00:00
Chris Lattner b0da8b2de1 * 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

llvm-svn: 1672
2002-02-04 05:52:08 +00:00
Chris Lattner 36aa542ef0 Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass
that has a very minimal interface (like it should have).

llvm-svn: 1667
2002-02-04 00:33:08 +00:00
Chris Lattner abafc3bc70 Lots of code cleanups, no functional changes
llvm-svn: 1650
2002-02-03 07:46:34 +00:00
Chris Lattner 6316f38c96 Add a class forward decl
llvm-svn: 1637
2002-02-03 07:13:04 +00:00
Chris Lattner 9fcaf328f6 LoopDepth calculation is now in CFG namespace
llvm-svn: 1601
2002-01-31 00:41:13 +00:00
Chris Lattner 73da1cea60 Oops lost a parenthesis somehow :(
llvm-svn: 1504
2002-01-21 01:33:12 +00:00
Chris Lattner 7f74a56e24 Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Ruchira Sasanka bc28455806 Fixed a bug in spill cost estimation
llvm-svn: 1500
2002-01-08 16:29:23 +00:00
Ruchira Sasanka a42a7e78b6 PhyRegAlloc.cpp: Added temp area resetting before every call
llvm-svn: 1499
2002-01-07 21:09:06 +00:00
Ruchira Sasanka 8c2d8256a9 Added destructors and comments.
Added correct spill candidate selection logic.

llvm-svn: 1493
2002-01-07 19:19:18 +00:00
Ruchira Sasanka f20079dfed Added comments, destructors where necessary.
llvm-svn: 1491
2002-01-07 19:16:26 +00:00
Chris Lattner 2413b160ec Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()

llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner 5de2204fe8 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Ruchira Sasanka 7dfa1650a2 Commented some popTempArg.. since it leads to a bug
llvm-svn: 1326
2001-11-15 22:02:06 +00:00
Ruchira Sasanka 9066899a78 Fixed a bug in setReLRegsUsedByMI
llvm-svn: 1323
2001-11-15 20:23:19 +00:00
Ruchira Sasanka dec9bfd554 Changed some names of methods, added const etc.
llvm-svn: 1322
2001-11-15 20:22:37 +00:00
Ruchira Sasanka a514745a96 fixed setUsedRegAtMI
llvm-svn: 1317
2001-11-15 15:00:53 +00:00
Ruchira Sasanka 7765ca8b25 Added support method for setting interference for pseudo instructions
llvm-svn: 1303
2001-11-14 15:37:13 +00:00
Ruchira Sasanka f1acecccb6 Added interference for args in pseudo instructions
llvm-svn: 1300
2001-11-14 15:33:58 +00:00
Ruchira Sasanka 33c400f6a7 commented out lines printing code after scheduling
llvm-svn: 1295
2001-11-13 23:12:53 +00:00
Ruchira Sasanka 36f13d1c2f Fixed a bug concering LR spilling. Earlier, added spilled code was not inserted
into the instruction stream correctly.

llvm-svn: 1294
2001-11-13 23:09:30 +00:00
Vikram S. Adve dafc8b909e Do the same for allocating spills to get their alignment right too.
llvm-svn: 1285
2001-11-12 23:40:22 +00:00
Vikram S. Adve 6e9422e14c When allocating space on stack for writing a register,
use the size of the register, not the size of the Value type,
to get the right alignment.

llvm-svn: 1284
2001-11-12 23:26:35 +00:00
Ruchira Sasanka d1d5e97431 Changed code to ignore Phi Nodes in PhyRegAlloc
llvm-svn: 1253
2001-11-10 21:21:36 +00:00
Ruchira Sasanka 31305c0d57 Coalesing bug fix - now checks for the same regType instead of the same
regClass since FP class has two reg Types.

llvm-svn: 1236
2001-11-10 00:20:24 +00:00
Ruchira Sasanka d499a26116 No major change
llvm-svn: 1235
2001-11-09 23:49:42 +00:00
Chris Lattner 2b48b9694c Add method decl
llvm-svn: 1217
2001-11-08 20:55:05 +00:00
Ruchira Sasanka dc709780aa corrected insertCode4Spilled ... bug.
llvm-svn: 1212
2001-11-08 19:11:30 +00:00
Ruchira Sasanka 19a5165c29 Uncommented LR spill code insertion
llvm-svn: 1207
2001-11-08 16:43:25 +00:00
Vikram S. Adve bdbb802c2f Added two minor methods.
llvm-svn: 1187
2001-11-08 04:49:52 +00:00
Vikram S. Adve d9f8598104 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1186
2001-11-08 04:48:50 +00:00
Ruchira Sasanka 074d52d60d Fixed bug - added code in pushUnconstrainedIGNodes() to check whether a node
is already pushed to stack by a previous call to the same method.

llvm-svn: 1154
2001-11-06 15:25:38 +00:00
Vikram S. Adve 928833ecea Bug fix: uninitialized variable.
llvm-svn: 1147
2001-11-06 05:11:05 +00:00
Ruchira Sasanka 471babe2d2 Added an assertion since it seems like AdjList returns an errornous size in method
IGNode::pushOnStack().

llvm-svn: 1116
2001-11-03 22:01:09 +00:00
Ruchira Sasanka 51fc1c2d72 Added support for correct spilling of %ccr
llvm-svn: 1112
2001-11-03 20:41:22 +00:00
Ruchira Sasanka ca632ed71a Arranged stack frame - needs furhter organization
llvm-svn: 1108
2001-11-03 17:14:44 +00:00
Ruchira Sasanka b7a397253f Arranged stack frame - needs furhter organization
Moved InsertCallerSaveInstr to the SparcRegInfo.cpp

llvm-svn: 1106
2001-11-03 17:13:27 +00:00
Ruchira Sasanka 9c38dbc249 Added support for spilling
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka 321ed7be93 Added spill code support; moved insertCallerSaving to SparRegInfo since
we need to handle %ccr reg in a special way.

llvm-svn: 990
2001-10-28 18:12:02 +00:00
Ruchira Sasanka 33b0d85f65 added support to move "added instructions" after the delay slot
llvm-svn: 968
2001-10-23 21:38:42 +00:00
Ruchira Sasanka c300c6ba58 Added support to move "added instructions" after the delay slot
llvm-svn: 967
2001-10-23 21:38:00 +00:00
Vikram S. Adve 901da32e64 Use class MachineCodeForMethod to print machine code.
llvm-svn: 948
2001-10-22 13:52:03 +00:00
Ruchira Sasanka 24729a34ce Added support for both call/jmpl instructions
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Ruchira Sasanka 53516cd05b Added code to support unusable Suggested Colors.
llvm-svn: 922
2001-10-19 21:42:06 +00:00
Ruchira Sasanka 01c55ba00c Added code to PhyRegAlloc to mark unusable suggested regs
Added initialization to AdjList to IGNode constructor - major bug fix

llvm-svn: 920
2001-10-19 21:39:31 +00:00
Ruchira Sasanka 6275a04aac Changed Call interference info
llvm-svn: 917
2001-10-19 17:21:59 +00:00
Ruchira Sasanka 09d7a2a496 Corrected call interference bug
llvm-svn: 916
2001-10-19 17:21:03 +00:00
Ruchira Sasanka 6b1d2691c6 no major change
llvm-svn: 914
2001-10-18 23:58:08 +00:00
Ruchira Sasanka 0a2990a7c6 removed some debug messages
llvm-svn: 910
2001-10-18 22:36:26 +00:00
Ruchira Sasanka 7d23a2bee9 changed debugg message printing - no change to useful code
llvm-svn: 850
2001-10-16 16:34:44 +00:00
Ruchira Sasanka 3d878424d2 No major change - commented some debug code
llvm-svn: 849
2001-10-16 01:33:55 +00:00
Ruchira Sasanka 5b8971f418 Added support for caller saving
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner 24872c8838 Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
llvm-svn: 841
2001-10-15 18:30:06 +00:00
Chris Lattner f3f1e452ea Output to cerr rather than cout so that debug info doesn't mess up assembly generation
llvm-svn: 840
2001-10-15 18:15:27 +00:00
Ruchira Sasanka 2a6cc8300d updated suggesting/coloring of call & return args & implicit operands.
Changed added instr to a deque (from a vector)

llvm-svn: 831
2001-10-15 16:26:38 +00:00
Ruchira Sasanka 33535773cb fixed a coalscing bug
llvm-svn: 828
2001-10-15 16:22:44 +00:00
Ruchira Sasanka 7c10e086eb --corrected coalescing test: coalsed only if two are of the same reg class
llvm-svn: 729
2001-10-12 17:48:18 +00:00
Ruchira Sasanka acffb966b9 removing phy regaloc - incorrect file
llvm-svn: 682
2001-09-30 23:52:14 +00:00
Ruchira Sasanka 560b0ad482 added suggesting color support
llvm-svn: 673
2001-09-30 23:19:57 +00:00
Ruchira Sasanka e3b9faddad --added suggesting colors; call/ret arg handling
llvm-svn: 670
2001-09-30 23:11:59 +00:00
Ruchira Sasanka 72727bf358 -- removed debugging messages
llvm-svn: 651
2001-09-19 22:39:58 +00:00
Ruchira Sasanka 213b3621ac -fixed return value bug.
llvm-svn: 650
2001-09-19 22:31:21 +00:00
Chris Lattner da876eff3c Change debug info from #define to command line option
Clean up extra debug info that wasn't guarded

llvm-svn: 647
2001-09-19 16:26:23 +00:00
Chris Lattner d89425bb58 Change debug info from #define to command line option
llvm-svn: 646
2001-09-19 16:26:10 +00:00
Chris Lattner 1bec3bd0a4 * REMOVE extraneous debug info if DEBUG_RA is not set
* Spell PhyRegAlloc right.

llvm-svn: 645
2001-09-19 16:09:04 +00:00
Ruchira Sasanka 219f777bad *** empty log message ***
llvm-svn: 634
2001-09-18 22:57:47 +00:00
Ruchira Sasanka 1f331f258b -- updated printing
llvm-svn: 631
2001-09-18 22:43:57 +00:00
Chris Lattner 1d06a46723 Remove a copy of a bunch of code
llvm-svn: 630
2001-09-18 18:15:40 +00:00
Vikram S. Adve 82d1e14e7f Cast unsigned to int! It was causing a nice little bug.
llvm-svn: 614
2001-09-18 12:57:39 +00:00
Vikram S. Adve 06225084b9 Minor fixes: renamed target machine files; fold sched info into TargetMachine.
llvm-svn: 603
2001-09-18 12:41:43 +00:00
Ruchira Sasanka 8efbd10c86 modified machine code printing
llvm-svn: 595
2001-09-15 21:11:11 +00:00
Ruchira Sasanka 86b2ad4b7c --added methods for printing
llvm-svn: 592
2001-09-15 19:08:41 +00:00
Ruchira Sasanka 6fd9532e54 fixed printing messages
llvm-svn: 590
2001-09-15 19:06:58 +00:00
Ruchira Sasanka fe0292e68d -- debug messages dissabled
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka f60342a231 --reg alloc code added
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka 671428c8a7 -reg alloc code
llvm-svn: 586
2001-09-15 00:31:44 +00:00
Ruchira Sasanka 808568eafc *** empty log message ***
llvm-svn: 580
2001-09-14 21:18:34 +00:00
Chris Lattner 87b3bf630b Split Target/Machine.h into three files:
* Machine.h
* InstInfo.h
* SchedInfo.h

TODO: Split out reg info stuff
llvm-svn: 567
2001-09-14 06:08:03 +00:00
Chris Lattner 22a6a90511 Make a new llvm/Target #include directory.
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files

llvm-svn: 566
2001-09-14 05:34:53 +00:00
Chris Lattner 0a823a062c This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.

llvm-svn: 559
2001-09-14 03:37:52 +00:00
Ruchira Sasanka f5788aa837 Committed for compliation. Not yet final.
--Ruchira

llvm-svn: 505
2001-09-08 14:22:50 +00:00
Ruchira Sasanka e5d0fb8eee --Ruchira
llvm-svn: 504
2001-09-08 14:10:34 +00:00
Chris Lattner feb62c321e Add tags so emacs knows these are C++ files
llvm-svn: 483
2001-09-07 21:04:20 +00:00
Ruchira Sasanka 4d30f4bb6c *** empty log message ***
llvm-svn: 412
2001-08-31 20:59:58 +00:00