1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Commit Graph

272 Commits

Author SHA1 Message Date
Ruchira Sasanka
9bc086977b added reg alloc support
llvm-svn: 588
2001-09-15 00:34:31 +00:00
Ruchira Sasanka
e0cf66f325 --reg alloc code added
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
803a63ced2 *** empty log message ***
llvm-svn: 579
2001-09-14 20:31:39 +00:00
Chris Lattner
d6a98c11bc 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

llvm-svn: 572
2001-09-14 16:56:32 +00:00
Chris Lattner
76f3eeaccf Minor reformatting, & protection fixes
llvm-svn: 570
2001-09-14 16:08:06 +00:00
Chris Lattner
e8a8afce05 Split Register specific stuff out from TargetMachine.h to RegInfo.h
Get rid of unneccesary #includes from TargetMachine.h

llvm-svn: 568
2001-09-14 06:20:10 +00:00
Chris Lattner
de29307caa 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
a0a3946882 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
161b4af2f6 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.
3. Sparc.h is now just a factory method.  Eventually this file will dissapear,
   but probably not until we have more than one backend.  :)

llvm-svn: 564
2001-09-14 04:32:38 +00:00
Chris Lattner
3e2a85a0e3 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
Chris Lattner
676ea87be5 Initial instruction tree support for the analysis library
llvm-svn: 555
2001-09-14 01:42:26 +00:00
Chris Lattner
5c7c21efb1 Generic k-way tree support
llvm-svn: 554
2001-09-14 01:42:01 +00:00
Chris Lattner
b6e1cc3118 More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.

llvm-svn: 553
2001-09-12 16:34:03 +00:00
Chris Lattner
6ff8e8edce * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

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

llvm-svn: 552
2001-09-12 01:28:49 +00:00
Chris Lattner
8cbda4e314 Eliminate 'BasicNode' from InstrForest.
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner
70439801a6 Eliminate MainTreeNode function
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner
277c7264f6 Handle subtract in expression classifier
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
553dad9da6 Disable destructors on constants
llvm-svn: 547
2001-09-11 04:27:19 +00:00
Chris Lattner
f38c10222e * Add capability of printing out a global variable
llvm-svn: 534
2001-09-10 20:06:47 +00:00
Chris Lattner
d6023649c7 * Method::getType should return type cast as MethodType, eliminate getMethodType
* Make Type::*Ty not be const types
* Add a new Type.def file to provide info about types
* Add a full complement of casting methods to the Type class

llvm-svn: 533
2001-09-10 20:06:17 +00:00
Chris Lattner
fc53415334 Update assertion to allow extra case
llvm-svn: 532
2001-09-10 20:02:12 +00:00
Chris Lattner
9d1629d688 Implement global variable support
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
9b5fd40742 Remove 3 gross global functions that don't belong here
llvm-svn: 523
2001-09-09 23:00:59 +00:00
Chris Lattner
9985e9db71 Rename contype to subtype
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
3728d62a06 Convert ConstRules to use annotations to clean it up.
llvm-svn: 514
2001-09-09 21:00:23 +00:00
Chris Lattner
2e74f6ba1f Fix build breakage. :(
llvm-svn: 511
2001-09-09 19:52:23 +00:00
Chris Lattner
982bbcfb36 Remove extra #include
llvm-svn: 508
2001-09-09 19:34:25 +00:00
Ruchira Sasanka
3d7313423c *** empty log message ***
llvm-svn: 507
2001-09-08 17:23:06 +00:00
Ruchira Sasanka
5f9e5b6bc7 *** empty log message ***
llvm-svn: 506
2001-09-08 14:32:00 +00:00
Ruchira Sasanka
4f3751ecdd Committed for compliation. Not yet final.
--Ruchira

llvm-svn: 505
2001-09-08 14:22:50 +00:00
Chris Lattner
f828410b63 New file for supporting abstract types
llvm-svn: 502
2001-09-07 23:00:03 +00:00
Chris Lattner
e0ca8ad220 Provide a way to change the incoming value for a phi node
llvm-svn: 495
2001-09-07 22:19:55 +00:00
Chris Lattner
0b0dae7bdb * Remove lots of unnecesary #includes
* Remove extra flyers
* Remove dependence on stringExtras by eliminating printIndent calls

llvm-svn: 486
2001-09-07 21:18:16 +00:00
Chris Lattner
3f36c6fe59 * Remove lots of annoying extra #includes
* Elminate dependecy on stringextras.h by moving dump's into .cpp files
* Kill InOutIterator class because it breaks iterator semantics to work like that
   - Copy ctor on iterator doesn't work.

llvm-svn: 485
2001-09-07 21:07:10 +00:00
Chris Lattner
31e4c8874f * Add tag so emacs knows it's a c++ file
* Remove frivolous flyers

llvm-svn: 484
2001-09-07 21:04:59 +00:00
Chris Lattner
9aac44442d Add tags so emacs knows these are C++ files
llvm-svn: 483
2001-09-07 21:04:20 +00:00
Chris Lattner
5c5ee6b8b4 Remove extra space
llvm-svn: 482
2001-09-07 21:03:14 +00:00
Chris Lattner
2db0f7a35f Remove ReversePostOrderTraversal declaration
llvm-svn: 481
2001-09-07 21:02:50 +00:00
Chris Lattner
a1f1e01665 * Don't predefine ReversePostOrderTraversal because it adds a dependence on vector
* static ctor/dtor is actually a REALLY good idea
* Remove explicit copy ctor and op=

llvm-svn: 480
2001-09-07 21:02:14 +00:00
Chris Lattner
cd69a08c26 NEw file
llvm-svn: 478
2001-09-07 19:29:23 +00:00
Chris Lattner
4272da0927 Follow the golden rule of the coding standards guide: Make the code look
like the rest of the system.

llvm-svn: 476
2001-09-07 17:38:10 +00:00
Chris Lattner
fb273d331f Constant pool is eliminated
llvm-svn: 473
2001-09-07 17:08:28 +00:00
Chris Lattner
dafdd1ce54 Add support for iteration through type graphs
Static constructors destroy genericity

llvm-svn: 472
2001-09-07 17:04:29 +00:00
Chris Lattner
e9a2b44041 * Fixed mapped_iterator to actually work with functors
* Implement mapto function that works like map in a functional programming language

llvm-svn: 439
2001-09-07 16:30:28 +00:00
Chris Lattner
477cbbd351 Constant pools no longer exist
llvm-svn: 438
2001-09-07 16:29:55 +00:00
Chris Lattner
8eeaca2118 Eliminate DoConstantPoolMerging. ConstantPools no longer exist
llvm-svn: 437
2001-09-07 16:29:40 +00:00
Chris Lattner
457dd333a4 You no longer have to delete constants! They are located in a global
constant pool instead of in local ones.

Change bool handling to prevent modification of bool values

llvm-svn: 436
2001-09-07 16:29:18 +00:00
Chris Lattner
9464de6a0f Annotations are now passed around as const objects
llvm-svn: 435
2001-09-07 16:28:25 +00:00
Chris Lattner
3160e29bae Use a deque instead of a vector for greater efficiency writing bytecode
llvm-svn: 434
2001-09-07 16:27:49 +00:00
Chris Lattner
25101c9f38 Clean stuff up.
Types are not named, they are described

llvm-svn: 433
2001-09-07 16:27:25 +00:00
Chris Lattner
63820f443d Simplify SlotCalculator. SlotCalculator is now not a ModuleAnalyzer
llvm-svn: 432
2001-09-07 16:27:05 +00:00
Chris Lattner
75c2b8034b Simplify analyzer
llvm-svn: 431
2001-09-07 16:26:36 +00:00
Chris Lattner
132d1f8efd * Fix long standing problems that would affect inlining. How could this have worked?
* Update to new setName interface

llvm-svn: 430
2001-09-07 16:26:13 +00:00
Chris Lattner
73856b65c7 Add assertion to check for
alloca [int]
for example

llvm-svn: 429
2001-09-07 16:25:42 +00:00
Chris Lattner
080104e2fe * Values are AbstactTypeUsers to support abstract types
* SetName now takes extra parameter to support naming types and constants without handles

llvm-svn: 428
2001-09-07 16:25:23 +00:00
Chris Lattner
1a4da8a9b3 Remove extra whitespace at EOL
llvm-svn: 427
2001-09-07 16:24:35 +00:00
Chris Lattner
d44f5e0a60 * Add support for Opaque & Abstract types.
* Remove silly enum values that are never going to be used
* What used to be a types "name" is now it's "description"
* Add a new iterator to type to allow users to iterate over subtypes

llvm-svn: 426
2001-09-07 16:23:59 +00:00
Chris Lattner
d239f94d88 Support abstract types by keeping on the use list of the abstract type.
llvm-svn: 425
2001-09-07 16:21:36 +00:00
Chris Lattner
4141b13ff6 SymTabValues no longer hold constant pools
llvm-svn: 424
2001-09-07 16:21:04 +00:00
Chris Lattner
51152baa4a SymTabValue no longer includes ValueHolder for Module. Include it ourself
llvm-svn: 423
2001-09-07 16:20:46 +00:00
Chris Lattner
9dccaed65c * Support new setName interface
* Make the iterator a little nicer

llvm-svn: 422
2001-09-07 16:20:18 +00:00
Chris Lattner
7f8ccda329 Support new setName interface
llvm-svn: 421
2001-09-07 16:19:55 +00:00
Chris Lattner
8cae894583 * Add new DerivedType base class that goes between Type and the derived types
* Implement abstract types
* Add new Opaque derived type

llvm-svn: 420
2001-09-07 16:19:29 +00:00
Chris Lattner
1eb6fb36db Implement support for globally unique constants. Constants no longer live
in a module or method local pool, they are global to the llvm system.

llvm-svn: 419
2001-09-07 16:18:19 +00:00
Chris Lattner
28141ac535 Add support for walking type graphs
llvm-svn: 418
2001-09-07 16:17:24 +00:00
Chris Lattner
bfbc1e3d24 Changing setName semantics
llvm-svn: 417
2001-09-07 16:16:57 +00:00
Chris Lattner
0707315524 Make annotations operations const with a mutable annotation list so that
we can annotate Types.  A better solution would be make types nonconst.

llvm-svn: 416
2001-09-07 16:16:35 +00:00
Ruchira Sasanka
dceb09f3d8 *** empty log message ***
llvm-svn: 411
2001-08-31 20:30:42 +00:00
Vikram S. Adve
62a903416c Added function MachineInstr::operandIsDefined(i) and decl for
function PrintMachineInstructions.

llvm-svn: 399
2001-08-28 23:11:46 +00:00
Vikram S. Adve
5947c43319 Extensive additions for supporting instruction scheduling.
llvm-svn: 398
2001-08-28 23:10:41 +00:00
Vikram S. Adve
f9fa4cc579 Added class MachineSchedInfo and several supporting classes
as a machine description for instruction scheduling.

llvm-svn: 397
2001-08-28 23:09:36 +00:00
Vikram S. Adve
ad002e37d5 Implementation of instruction scheduling for LLVM.
Currently schedules one basic block at a time.

llvm-svn: 396
2001-08-28 23:07:19 +00:00
Vikram S. Adve
91d73a52d5 Class that encapsulates priority heuristics for instruction scheduling.
llvm-svn: 395
2001-08-28 23:06:49 +00:00
Vikram S. Adve
23be1e0839 Scheduling DAG for instruction scheduling. Currently for a single basic block.
llvm-svn: 394
2001-08-28 23:06:02 +00:00
Vikram S. Adve
3ac9f99cf5 Simplification transformations to normalize the code for later passes.
llvm-svn: 389
2001-08-28 21:40:27 +00:00
Vikram S. Adve
23d0560303 Use const int instead of #define.
llvm-svn: 388
2001-08-28 21:35:26 +00:00
Vikram S. Adve
c1c65235ef Add copy and assignment operators for POIterator, and
static constructors.

llvm-svn: 387
2001-08-28 21:34:56 +00:00
Chris Lattner
6336546710 Initial checkin of TargetData code
llvm-svn: 384
2001-08-27 16:00:15 +00:00
Chris Lattner
511d1ca915 Use the new TargetData class to factor out some of the shared code
between the static compilers and the interpreter.

llvm-svn: 379
2001-08-27 15:50:12 +00:00
Chris Lattner
85b42a0028 Remove target specific method.
llvm-svn: 378
2001-08-27 15:49:36 +00:00
Chris Lattner
5b2fcfe217 Remove target specific code, move to TargetData.cpp file
llvm-svn: 377
2001-08-27 15:49:16 +00:00
Chris Lattner
9ae4b40717 Extend annotations to pass data pointers around to the functions
llvm-svn: 374
2001-08-27 05:17:47 +00:00
Chris Lattner
d381beea6a Add annotation support
llvm-svn: 366
2001-08-23 17:07:56 +00:00
Chris Lattner
0ecf68a068 Add annotation support to value
llvm-svn: 363
2001-08-23 17:06:21 +00:00
Chris Lattner
2c9c90497a * Add assertions
* Add a nodeVisited method to the DF interator

llvm-svn: 362
2001-08-23 17:05:59 +00:00
Ruchira Sasanka
74f3230149 LV info on machine instructions
llvm-svn: 359
2001-08-20 21:11:01 +00:00
Ruchira Sasanka
8078a494fc Corrected the compilation error by making the ValOperator class a friend of
MachineOperand class - Ruchira

llvm-svn: 358
2001-08-13 16:54:48 +00:00
Vikram S. Adve
bd05af6e92 Can't use ref to stack value!
llvm-svn: 354
2001-08-09 20:14:22 +00:00
Vikram S. Adve
5f9e728807 Needed old conditions as well as new in skipToNextVal()!
llvm-svn: 353
2001-08-09 19:18:33 +00:00
Vikram S. Adve
36a0da1ec3 Bug fix in ValOpIterator: not moving past operand with NULL Value.
llvm-svn: 352
2001-08-08 00:15:42 +00:00
Ruchira Sasanka
a6cea3a426 *** empty log message ***
llvm-svn: 351
2001-08-07 21:01:23 +00:00
Ruchira Sasanka
66e8472995 Added isDef field to MachineOperand class - Ruchira
llvm-svn: 349
2001-08-07 20:14:30 +00:00
Vikram S. Adve
5a4b37da6b Use extra operand for instructions that set a CC register that
was not explicit before.

llvm-svn: 347
2001-08-06 21:05:39 +00:00
Vikram S. Adve
f3b4b570aa Allow numOperands of -1 for variable #operands.
llvm-svn: 341
2001-07-31 21:55:51 +00:00
Vikram S. Adve
46dd49a011 Allow machine instructions with variable numbers of arguments.
This is used only by Phi for now.

llvm-svn: 336
2001-07-31 21:49:28 +00:00
Vikram S. Adve
fc9759c295 Added dummy Phi instruction.
llvm-svn: 335
2001-07-31 21:48:23 +00:00
Vikram S. Adve
5e19e64a94 Added class MachineCodeForBasicBlock.
llvm-svn: 332
2001-07-30 18:49:07 +00:00
Vikram S. Adve
a91d7cb350 Added vector of machine instructions for the basic block.
llvm-svn: 330
2001-07-30 18:47:24 +00:00
Chris Lattner
9554fb6043 Modify var names to make it apparant that the code is really generic
llvm-svn: 320
2001-07-28 17:43:45 +00:00
Vikram S. Adve
34059f45b6 Added function printIndent.
llvm-svn: 317
2001-07-28 04:41:27 +00:00