Commit Graph

4661 Commits

Author SHA1 Message Date
Ruchira Sasanka
1bf6d645cd --reg alloc code added
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@587 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
1f3b29fc72 -reg alloc code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@586 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:31:44 +00:00
Ruchira Sasanka
e38bd53361 added register allocation code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@585 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:30:44 +00:00
Ruchira Sasanka
8e6047920d *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@580 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 21:18:34 +00:00
Ruchira Sasanka
94d86e9677 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@579 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 20:31:39 +00:00
Chris Lattner
7163447b9d Add support for loading and storing pointers...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@575 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 20:00:02 +00:00
Chris Lattner
ffe335ace1 Fix a bug that caused a crash if a setcc had zero uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@574 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 18:29:28 +00:00
Chris Lattner
c0c77083ba Add a forward decl, oops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@573 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 17:55:51 +00:00
Chris Lattner
46cbff625e Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 16:56:32 +00:00
Chris Lattner
78a81a24e1 Add a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@571 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 16:08:12 +00:00
Chris Lattner
c7634618ca Break scheduling infrastructure out of TargetMachine.cpp into SchedInfo.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@569 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 15:43:58 +00:00
Chris Lattner
e5bc8b0653 Split Target/Machine.h into three files:
* Machine.h
* InstInfo.h
* SchedInfo.h

TODO: Split out reg info stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@567 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 06:08:03 +00:00
Chris Lattner
b26bcc5087 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 05:34:53 +00:00
Chris Lattner
f6e0e28135 Checkin changes to:
1. Clean up the TargetMachine structure.  No more wierd pointers that have to
   be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument.  The same
   should be done with the instinfo, it just isn't now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@565 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 04:32:55 +00:00
Chris Lattner
c6495eeef6 Move files to new sparc directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@563 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:56:45 +00:00
Chris Lattner
f6374bfd69 Move the sparc target to a new lib/Target directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@562 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:55:11 +00:00
Chris Lattner
20b1ea0c98 Move files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@561 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:47:57 +00:00
Chris Lattner
0e6530ee1b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@559 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:37:52 +00:00
Chris Lattner
0811f76860 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.


NOTE! The BBLiveVar.cpp file dependant on the Sparc backend, and is therefore not generic/portale to other backends.  This needs to be fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@558 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:37:22 +00:00
Chris Lattner
5f6baf78ea More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@553 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-12 16:34:03 +00:00
Chris Lattner
4ddb4c82d7 * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

begin
        seteq int *%x, %y
        ret void
end


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@552 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-12 01:28:49 +00:00
Chris Lattner
d268ad6e2e Eliminate 'BasicNode' from InstrForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@551 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 23:52:11 +00:00
Chris Lattner
c2a2396e17 Eliminate MainTreeNode function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@550 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 23:22:43 +00:00
Chris Lattner
1a4f8ae3c8 Use predicate for Value type test
Use builtin casts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@541 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:09:50 +00:00
Chris Lattner
919758563d Use predicate for Value type test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@540 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:09:28 +00:00
Chris Lattner
2e5309304a I really don't like it when people break the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@510 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 19:41:52 +00:00
Ruchira Sasanka
7cd2ca13c1 Committed for compliation. Not yet final.
--Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@505 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-08 14:22:50 +00:00
Ruchira Sasanka
c7136d2b09 --Ruchira
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@504 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-08 14:10:34 +00:00
Chris Lattner
15dedbc585 Remove unneeded #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@489 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:22:28 +00:00
Chris Lattner
c83e954025 Remove unnecesary #include add dump calls pulled out of .h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@488 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:21:03 +00:00
Chris Lattner
1ff63a1217 * Remove lots of #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@487 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:19:42 +00:00
Chris Lattner
1b40a1bacd Add tags so emacs knows these are C++ files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@483 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:04:20 +00:00
Chris Lattner
feb6059343 A file should always include it's private header file *FIRST* see the
coding guidelines


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@474 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 17:15:18 +00:00
Ruchira Sasanka
f2a6477aee *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@412 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-31 20:59:58 +00:00
Vikram S. Adve
59e3b8220a Makefile for InstrSched/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@403 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:17:22 +00:00
Vikram S. Adve
3b4d062eb3 Remove source list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@402 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:16:59 +00:00
Vikram S. Adve
0e1158f340 Implementation of instruction scheduling for LLVM.
Currently schedules one basic block at a time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@396 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:07:19 +00:00
Vikram S. Adve
37866b3437 Class that encapsulates priority heuristics for instruction scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@395 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:06:49 +00:00
Vikram S. Adve
78ef1392f3 Scheduling DAG for instruction scheduling. Currently for a single basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@394 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:06:02 +00:00
Vikram S. Adve
89df1ae2c3 Moved debug options declaration to header file, and moved
a function to MachineInstr.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@393 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:04:38 +00:00
Vikram S. Adve
8b5f6cc0a4 analyze() now checks to see that we don't analyze the same method twice.
Needs a mechnanism to override this check (e.g., after a transformation).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@391 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 22:36:35 +00:00
Ruchira Sasanka
e27c344b56 LV code on machine instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-20 21:12:49 +00:00
Ruchira Sasanka
9166181257 LV info on machine instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-20 21:11:01 +00:00
Vikram S. Adve
960066ad75 Simplify command line options, and add option for printing
machine instructions without debugging info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:53:25 +00:00
Vikram S. Adve
e4e77f9efc Generate tree nodes for Phi instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@337 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:49:53 +00:00
Vikram S. Adve
76d3520f3e Record machine instructions in the vector for each basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-30 18:48:43 +00:00
Vikram S. Adve
9b0b1ec1ec Eliminate unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:15:45 +00:00
Ruchira Sasanka
b2d11bad7e Changed printValue() to print constant value if the value is a constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-24 18:21:21 +00:00
Ruchira Sasanka
683847fb75 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-24 17:14:13 +00:00
Chris Lattner
1e78f36127 CommandLine library cleanup. No longer use getValue/setValue, instead, just treat the commandline
args as the objects they represent and the "right thing" will happen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 19:27:24 +00:00
Chris Lattner
4bc3daaa3f Eliminated the Unique class in favor of NonCopyable and NonCopyableV
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 18:26:21 +00:00
Chris Lattner
57dbb3ad63 Moved inline/llvm/Tools/* to include/llvm/Support/*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 17:46:59 +00:00
Chris Lattner
75279ccc75 Clean up hash table usage
Remove opaque pointer used for C compatibility which isn't an issue


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 03:50:57 +00:00
Chris Lattner
6c5a32d545 Removal of the redundant CompileContext wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 03:09:03 +00:00
Chris Lattner
8f367bd3c0 Large scale changes to implement new command line argument facility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 02:35:57 +00:00
Chris Lattner
aceb9132b7 Privatize LLCOptions. It had no business being visible to the entire
program.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-22 04:40:02 +00:00
Chris Lattner
68498cefe6 Eliminate lots of unnecessary #includes and forward decls
there are probably more to kill


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 23:24:48 +00:00
Chris Lattner
942d99e4c8 Eliminate many unneccesary #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 22:59:56 +00:00
Chris Lattner
36765b0c3f Remove unneccesary #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@258 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 22:53:35 +00:00
Chris Lattner
7e583cfafe Renamed include/llvm/Codegen to include/llvm/CodeGen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 20:58:30 +00:00
Vikram S. Adve
70bc4b5d1a Instruction selection via pattern matching on instruction trees using BURG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 12:41:50 +00:00