Chris Lattner
665a31270b
Remove operator << to Assembly/Writer.h
...
llvm-svn: 625
2001-09-18 17:03:04 +00:00
Vikram S. Adve
4d86cc2842
Renamed files to match the primary classes they provide.
...
llvm-svn: 620
2001-09-18 13:10:05 +00:00
Vikram S. Adve
0d4a68f8aa
Moved debugging interfaces for class Value to Value.h.
...
llvm-svn: 604
2001-09-18 12:43:15 +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
Vikram S. Adve
f95d8d430f
Make class TargetMachine the common interface to all target-dependent
...
information, including instr, sched, and reg information.
Rename files to match the primary classes they provide.
llvm-svn: 602
2001-09-18 12:38:31 +00:00
Vikram S. Adve
b530c7eaf0
Added debugging support.
...
llvm-svn: 601
2001-09-18 12:23:40 +00:00
Chris Lattner
3779864fcf
Add support for global constants, and for initializers for constants
...
llvm-svn: 598
2001-09-18 04:01:05 +00:00
Ruchira Sasanka
3a3bb0d68c
added a method to get reg num after register allocation
...
llvm-svn: 596
2001-09-15 21:11:48 +00:00
Ruchira Sasanka
c56b9552eb
-modified machine operand class - took regNum out of union to set regNum after
...
retister allocation.
llvm-svn: 594
2001-09-15 20:16:41 +00:00
Ruchira Sasanka
fe0292e68d
-- debug messages dissabled
...
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
b2587588d2
added reg alloc support
...
llvm-svn: 588
2001-09-15 00:34:31 +00:00
Ruchira Sasanka
f60342a231
--reg alloc code added
...
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
dfdab46dc1
*** empty log message ***
...
llvm-svn: 579
2001-09-14 20:31:39 +00:00
Chris Lattner
8d44b99844
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
5452d611d1
Minor reformatting, & protection fixes
...
llvm-svn: 570
2001-09-14 16:08:06 +00:00
Chris Lattner
374e3563c1
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
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
dce33dfa4b
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
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
Chris Lattner
1dd2c3f386
Initial instruction tree support for the analysis library
...
llvm-svn: 555
2001-09-14 01:42:26 +00:00
Chris Lattner
aa8d4c7517
Generic k-way tree support
...
llvm-svn: 554
2001-09-14 01:42:01 +00:00
Chris Lattner
f8459bb199
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
16dd09a7bb
* 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
cc38da77e8
Eliminate 'BasicNode' from InstrForest.
...
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner
706ee8e5ec
Eliminate MainTreeNode function
...
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner
3ce5ac2107
Handle subtract in expression classifier
...
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
22c0bb699f
Disable destructors on constants
...
llvm-svn: 547
2001-09-11 04:27:19 +00:00
Chris Lattner
1dc8b62690
* Add capability of printing out a global variable
...
llvm-svn: 534
2001-09-10 20:06:47 +00:00
Chris Lattner
6d37abd9cb
* 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
61204a9189
Update assertion to allow extra case
...
llvm-svn: 532
2001-09-10 20:02:12 +00:00
Chris Lattner
da9755002f
Implement global variable support
...
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
6aede54032
Remove 3 gross global functions that don't belong here
...
llvm-svn: 523
2001-09-09 23:00:59 +00:00
Chris Lattner
1117548f9e
Rename contype to subtype
...
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
9d0578c92b
Convert ConstRules to use annotations to clean it up.
...
llvm-svn: 514
2001-09-09 21:00:23 +00:00
Chris Lattner
57de997eff
Fix build breakage. :(
...
llvm-svn: 511
2001-09-09 19:52:23 +00:00
Chris Lattner
7e6810c807
Remove extra #include
...
llvm-svn: 508
2001-09-09 19:34:25 +00:00
Ruchira Sasanka
4c8bd00b6c
*** empty log message ***
...
llvm-svn: 507
2001-09-08 17:23:06 +00:00
Ruchira Sasanka
2d98fd0ac5
*** empty log message ***
...
llvm-svn: 506
2001-09-08 14:32:00 +00:00
Ruchira Sasanka
f5788aa837
Committed for compliation. Not yet final.
...
--Ruchira
llvm-svn: 505
2001-09-08 14:22:50 +00:00
Chris Lattner
dab21c54d1
New file for supporting abstract types
...
llvm-svn: 502
2001-09-07 23:00:03 +00:00
Chris Lattner
c6d8db65c8
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
8fb5258faa
* 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
6b9a933694
* 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
313ece8a3e
* 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
feb62c321e
Add tags so emacs knows these are C++ files
...
llvm-svn: 483
2001-09-07 21:04:20 +00:00
Chris Lattner
d2a6069518
Remove extra space
...
llvm-svn: 482
2001-09-07 21:03:14 +00:00
Chris Lattner
aa271e6c35
Remove ReversePostOrderTraversal declaration
...
llvm-svn: 481
2001-09-07 21:02:50 +00:00
Chris Lattner
02e8c974dd
* 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
6f728cf288
NEw file
...
llvm-svn: 478
2001-09-07 19:29:23 +00:00
Chris Lattner
2833dd3fed
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
dbc082f7f7
Constant pool is eliminated
...
llvm-svn: 473
2001-09-07 17:08:28 +00:00
Chris Lattner
330f87d7fe
Add support for iteration through type graphs
...
Static constructors destroy genericity
llvm-svn: 472
2001-09-07 17:04:29 +00:00
Chris Lattner
fd5541a8c8
* 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
a559795e9a
Constant pools no longer exist
...
llvm-svn: 438
2001-09-07 16:29:55 +00:00
Chris Lattner
d996b2d857
Eliminate DoConstantPoolMerging. ConstantPools no longer exist
...
llvm-svn: 437
2001-09-07 16:29:40 +00:00
Chris Lattner
a7f5ed8f26
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
5e89d7c81c
Annotations are now passed around as const objects
...
llvm-svn: 435
2001-09-07 16:28:25 +00:00
Chris Lattner
b68baea2ed
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
6dbd0f2a81
Clean stuff up.
...
Types are not named, they are described
llvm-svn: 433
2001-09-07 16:27:25 +00:00
Chris Lattner
6f0e042959
Simplify SlotCalculator. SlotCalculator is now not a ModuleAnalyzer
...
llvm-svn: 432
2001-09-07 16:27:05 +00:00
Chris Lattner
faa382da48
Simplify analyzer
...
llvm-svn: 431
2001-09-07 16:26:36 +00:00
Chris Lattner
a9a872f142
* 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
71cc25394b
Add assertion to check for
...
alloca [int]
for example
llvm-svn: 429
2001-09-07 16:25:42 +00:00
Chris Lattner
4ce1643c94
* 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
8e0ee42697
Remove extra whitespace at EOL
...
llvm-svn: 427
2001-09-07 16:24:35 +00:00
Chris Lattner
fc51ef84bb
* 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
0f26373be3
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
433a9e8244
SymTabValues no longer hold constant pools
...
llvm-svn: 424
2001-09-07 16:21:04 +00:00
Chris Lattner
b371e06002
SymTabValue no longer includes ValueHolder for Module. Include it ourself
...
llvm-svn: 423
2001-09-07 16:20:46 +00:00
Chris Lattner
4619a296f3
* Support new setName interface
...
* Make the iterator a little nicer
llvm-svn: 422
2001-09-07 16:20:18 +00:00
Chris Lattner
09dcda1769
Support new setName interface
...
llvm-svn: 421
2001-09-07 16:19:55 +00:00
Chris Lattner
fce2dd9caa
* 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
3fc9d2f558
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
52e6fa2031
Add support for walking type graphs
...
llvm-svn: 418
2001-09-07 16:17:24 +00:00
Chris Lattner
8d230bf786
Changing setName semantics
...
llvm-svn: 417
2001-09-07 16:16:57 +00:00
Chris Lattner
0799ddb3a9
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
b7237c88ae
*** empty log message ***
...
llvm-svn: 411
2001-08-31 20:30:42 +00:00
Vikram S. Adve
3497e216d0
Added function MachineInstr::operandIsDefined(i) and decl for
...
function PrintMachineInstructions.
llvm-svn: 399
2001-08-28 23:11:46 +00:00
Vikram S. Adve
23e59b70cd
Extensive additions for supporting instruction scheduling.
...
llvm-svn: 398
2001-08-28 23:10:41 +00:00
Vikram S. Adve
742086f200
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
3148b83485
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
138c3bb667
Class that encapsulates priority heuristics for instruction scheduling.
...
llvm-svn: 395
2001-08-28 23:06:49 +00:00
Vikram S. Adve
754c4dd6ae
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
6b99de80dc
Simplification transformations to normalize the code for later passes.
...
llvm-svn: 389
2001-08-28 21:40:27 +00:00
Vikram S. Adve
7e95d47bdc
Use const int instead of #define.
...
llvm-svn: 388
2001-08-28 21:35:26 +00:00
Vikram S. Adve
586a1d73a9
Add copy and assignment operators for POIterator, and
...
static constructors.
llvm-svn: 387
2001-08-28 21:34:56 +00:00
Chris Lattner
53bbf0783b
Initial checkin of TargetData code
...
llvm-svn: 384
2001-08-27 16:00:15 +00:00
Chris Lattner
eae2201f08
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
1cb56eda7f
Remove target specific method.
...
llvm-svn: 378
2001-08-27 15:49:36 +00:00
Chris Lattner
ab759f00c3
Remove target specific code, move to TargetData.cpp file
...
llvm-svn: 377
2001-08-27 15:49:16 +00:00
Chris Lattner
8aaab6b9c1
Extend annotations to pass data pointers around to the functions
...
llvm-svn: 374
2001-08-27 05:17:47 +00:00
Chris Lattner
3885a2db4f
Add annotation support
...
llvm-svn: 366
2001-08-23 17:07:56 +00:00
Chris Lattner
8e626e419e
Add annotation support to value
...
llvm-svn: 363
2001-08-23 17:06:21 +00:00
Chris Lattner
9f35277950
* Add assertions
...
* Add a nodeVisited method to the DF interator
llvm-svn: 362
2001-08-23 17:05:59 +00:00
Ruchira Sasanka
ec1a5411d7
LV info on machine instructions
...
llvm-svn: 359
2001-08-20 21:11:01 +00:00
Ruchira Sasanka
8c99a32982
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
5715b56e65
Can't use ref to stack value!
...
llvm-svn: 354
2001-08-09 20:14:22 +00:00
Vikram S. Adve
315d2d941e
Needed old conditions as well as new in skipToNextVal()!
...
llvm-svn: 353
2001-08-09 19:18:33 +00:00
Vikram S. Adve
c3fd4c2fc6
Bug fix in ValOpIterator: not moving past operand with NULL Value.
...
llvm-svn: 352
2001-08-08 00:15:42 +00:00
Ruchira Sasanka
c82322c526
*** empty log message ***
...
llvm-svn: 351
2001-08-07 21:01:23 +00:00
Ruchira Sasanka
5303bac986
Added isDef field to MachineOperand class - Ruchira
...
llvm-svn: 349
2001-08-07 20:14:30 +00:00
Vikram S. Adve
13090bd303
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
701a698d43
Allow numOperands of -1 for variable #operands.
...
llvm-svn: 341
2001-07-31 21:55:51 +00:00
Vikram S. Adve
ff7070bbb9
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
5af4076380
Added dummy Phi instruction.
...
llvm-svn: 335
2001-07-31 21:48:23 +00:00
Vikram S. Adve
06c30a0419
Added class MachineCodeForBasicBlock.
...
llvm-svn: 332
2001-07-30 18:49:07 +00:00
Vikram S. Adve
32b5d841ba
Added vector of machine instructions for the basic block.
...
llvm-svn: 330
2001-07-30 18:47:24 +00:00
Chris Lattner
58b3b9a4da
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
222c518e1c
Added function printIndent.
...
llvm-svn: 317
2001-07-28 04:41:27 +00:00
Vikram S. Adve
56324d34f7
Added a pointer hash function object for use in pointer maps.
...
llvm-svn: 316
2001-07-28 04:41:10 +00:00
Vikram S. Adve
0f32957dbb
Make a function const.
...
llvm-svn: 315
2001-07-28 04:40:15 +00:00
Vikram S. Adve
72ffa4357c
Added several SPARC instructions including conditional move and SETHI.
...
Added MachineInstrInfo class and subclass UltraSparcInstrInfo.
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo). Latency fields are to support scheduling.
llvm-svn: 313
2001-07-28 04:26:42 +00:00
Vikram S. Adve
f72a942a3c
Remove redundant and unused functions.
...
llvm-svn: 312
2001-07-28 04:20:33 +00:00
Vikram S. Adve
c429691751
Added MachineInstrInfo class and moved instruction-related members there.
...
Added several fields to MachineInstrDescriptor (and renamed it from
MachineInstrInfo. Latency fields are to support scheduling.
llvm-svn: 308
2001-07-28 04:09:37 +00:00
Vikram S. Adve
bff682dfac
Eliminate separate enum for operand register type.
...
Use union for alternative data for different operand types.
Add iterator over Value* operands in a MachineInstr.
llvm-svn: 307
2001-07-28 04:06:37 +00:00
Chris Lattner
547bda8e18
Add an arg to insertVal to allow us to prevent builtin types from being ignored
...
when they are inserted
llvm-svn: 302
2001-07-26 16:28:18 +00:00
Chris Lattner
90e0d464ba
Add support for extern varargs methods & varargs method calls
...
llvm-svn: 297
2001-07-25 22:47:55 +00:00
Ruchira Sasanka
9f18119edb
*** empty log message ***
...
llvm-svn: 291
2001-07-24 17:14:13 +00:00
Chris Lattner
78a307b170
Eliminated the Unique class in favor of NonCopyable and NonCopyableV
...
llvm-svn: 280
2001-07-23 18:26:21 +00:00
Chris Lattner
e2472bbf6c
Moved inline/llvm/Tools/* to include/llvm/Support/*
...
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner
7c310fa6ac
Fix coding style issues to actually attempt to be somewhat uniform
...
llvm-svn: 277
2001-07-23 05:03:15 +00:00
Chris Lattner
ae066aaf44
Nonpolymorphic class, doesn't need a virtual dtor!
...
llvm-svn: 276
2001-07-23 03:57:05 +00:00
Chris Lattner
44187dbff1
Clean up hash table usage
...
Remove opaque pointer used for C compatibility which isn't an issue
llvm-svn: 275
2001-07-23 03:50:57 +00:00
Chris Lattner
d8f1cc98e8
Removal of the redundant CompileContext wrapper
...
llvm-svn: 274
2001-07-23 03:09:03 +00:00
Chris Lattner
0af2464a78
Large scale changes to implement new command line argument facility
...
llvm-svn: 272
2001-07-23 02:35:57 +00:00
Chris Lattner
1dde6921a3
Add flag for emacs so it realizes it's C++ code
...
llvm-svn: 269
2001-07-22 05:15:16 +00:00
Chris Lattner
9c0f8f24e0
Privatize LLCOptions. It had no business being visible to the entire
...
program.
llvm-svn: 267
2001-07-22 04:40:02 +00:00
Chris Lattner
2c52fe7a52
Move private header into private directory
...
llvm-svn: 266
2001-07-22 03:59:25 +00:00
Chris Lattner
5f4b44652f
Convert from using C style char*'s to strings.
...
Look ma, no strdups
llvm-svn: 265
2001-07-22 03:57:31 +00:00
Chris Lattner
6f55581254
Remove String file some more
...
llvm-svn: 264
2001-07-22 00:46:48 +00:00
Chris Lattner
a05bbb614f
Destroy the StringUtils.h file
...
llvm-svn: 262
2001-07-22 00:18:10 +00:00
Chris Lattner
b299068101
Eliminate lots of unnecessary #includes and forward decls
...
there are probably more to kill
llvm-svn: 261
2001-07-21 23:24:48 +00:00
Chris Lattner
293e80559c
Exterminate nasty Cisms
...
llvm-svn: 257
2001-07-21 22:42:09 +00:00
Chris Lattner
dd511760d9
Renamed include/llvm/Codegen to include/llvm/CodeGen
...
llvm-svn: 253
2001-07-21 20:58:30 +00:00
Chris Lattner
68cf7a4626
More minor reorganizations
...
llvm-svn: 251
2001-07-21 20:08:52 +00:00
Chris Lattner
93547c3231
Remove getTempValuesForMachineCode from the Instruction interface
...
to remove dependency on <vector>
llvm-svn: 250
2001-07-21 20:04:10 +00:00
Chris Lattner
c9f7c061bc
Add support for casting operators
...
llvm-svn: 243
2001-07-21 19:10:33 +00:00
Chris Lattner
2c6f274188
More functionality, renamed API
...
llvm-svn: 241
2001-07-21 19:07:19 +00:00
Chris Lattner
4ee51f4ede
Moved isIntegral to the Type system
...
Renamed equals(char) to equalsInt(char). Made it a const memfunc
llvm-svn: 240
2001-07-21 19:02:43 +00:00
Vikram S. Adve
1f3de470af
General support utilities like a program options class and a StringMap
...
class for mapping strings to arbitrary things.
llvm-svn: 228
2001-07-21 12:40:18 +00:00
Vikram S. Adve
ad5ac0fab4
CompileContext and options class for the llc compiler.
...
llvm-svn: 227
2001-07-21 12:39:30 +00:00
Vikram S. Adve
5c66a797a2
Header files for the target architecture description and for instruction
...
selection, and instances of these for the SPARC.
llvm-svn: 226
2001-07-21 12:39:03 +00:00
Vikram S. Adve
fcb6aefa90
Provide simpler ways to extract the value of an integer constant.
...
llvm-svn: 223
2001-07-20 21:11:07 +00:00
Vikram S. Adve
0452d48c50
Compute and cache information about the storage size and layout
...
of structures. This information is machine-dependent.
llvm-svn: 222
2001-07-20 21:09:17 +00:00
Vikram S. Adve
75cc5a26a2
Provide uniform access to the pointer operand and to the index
...
operands (if any) for different types of MemAccessInst's.
llvm-svn: 221
2001-07-20 21:07:06 +00:00
Vikram S. Adve
3e2394cdad
Added a representation of the machine instructions generated
...
for a VM instruction.
llvm-svn: 220
2001-07-20 21:05:02 +00:00
Chris Lattner
85090922f4
Start of expression analysis support
...
llvm-svn: 219
2001-07-20 19:17:55 +00:00
Chris Lattner
26be0fc32a
Header to raise and lower representation
...
llvm-svn: 218
2001-07-20 19:17:47 +00:00
Chris Lattner
e3d4a4fa44
Add multiply as a supported constant propogation operation
...
Include the LevelChange.h header in AllOpts.h
llvm-svn: 211
2001-07-20 19:14:41 +00:00
Chris Lattner
64a234bc26
New function: WriteAsOperand.
...
llvm-svn: 210
2001-07-20 19:14:01 +00:00
Chris Lattner
85b1f15113
Add new base class ConstPoolInt, useful for dealing with integral constants
...
llvm-svn: 209
2001-07-20 19:13:28 +00:00
Chris Lattner
c9bdc871ca
Add new method, ensureTypeAvailable
...
llvm-svn: 208
2001-07-20 19:13:04 +00:00
Chris Lattner
0d94bacd62
Change is*Type to be a casting convertion operator
...
Add a new isIntegral virtual function
llvm-svn: 207
2001-07-20 19:12:34 +00:00
Chris Lattner
2d4f9e0995
Add an function to BinaryOperator to swap the two operands
...
llvm-svn: 206
2001-07-20 19:09:33 +00:00
Chris Lattner
ad8051b0b3
Add short forms of the get*Type methods.
...
llvm-svn: 205
2001-07-20 19:09:11 +00:00
Chris Lattner
49970039ea
Fixed typo in comment
...
llvm-svn: 201
2001-07-16 16:17:18 +00:00
Chris Lattner
eaed2794d8
Rename 'isMethodExternal' to 'isExternal'
...
llvm-svn: 194
2001-07-15 06:35:24 +00:00
Chris Lattner
2cded30974
Add a function to convert a double to a string
...
llvm-svn: 187
2001-07-15 00:16:38 +00:00
Chris Lattner
08d936465f
Add support to write and read a fixed amount of raw data
...
llvm-svn: 186
2001-07-15 00:16:22 +00:00
Chris Lattner
5446f8a542
* The parent of a constant pool is a SymTabValue, not a value.
...
llvm-svn: 178
2001-07-14 06:08:51 +00:00
Chris Lattner
5a2d2b1f0a
Made the following changes:
...
* ValueHolder became a 3 argument template. This allows for BasicBlock to
use the value holder arg as a typesafe parent pointer.
* SymTabValue no longer inherits from Value
* Method does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Module does not inherit from only SymTabValue. Now it inherits from both
STV & Value.
* Updated the SymTabValue.h file to reference SymTabValue instead of STDef
in several places
* Added isArraySelector & isStructSelector to GetElementPtr instruction
llvm-svn: 177
2001-07-14 06:07:58 +00:00
Chris Lattner
5f904ea839
Made it not inline
...
llvm-svn: 174
2001-07-12 23:35:11 +00:00
Chris Lattner
805c1514e4
Add DebugValue global function
...
llvm-svn: 173
2001-07-12 23:33:53 +00:00
Chris Lattner
875710c4a1
hasSideEffects should be marked virtual
...
stores and free's have sideeffects
llvm-svn: 170
2001-07-09 19:38:26 +00:00
Chris Lattner
006106973f
Fix stupid typo
...
llvm-svn: 168
2001-07-09 16:54:29 +00:00
Chris Lattner
62ecb4a137
Implementation of Store & GetElementPtr
...
llvm-svn: 164
2001-07-08 23:22:50 +00:00
Chris Lattner
d8bebcd517
Implemented shl, shl, & load instructions
...
llvm-svn: 161
2001-07-08 21:10:27 +00:00
Chris Lattner
49c643262e
Moved Cast from being a Unary instruction to being an "Other" instruction
...
llvm-svn: 160
2001-07-08 19:03:27 +00:00
Chris Lattner
b418152221
Add a new "addOperand" method to User.
...
llvm-svn: 158
2001-07-08 18:38:18 +00:00
Chris Lattner
a682182f64
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
87d478287b
Convert BinaryOperand and UnaryOperator to only take instruction types of
...
the appropriate enum
llvm-svn: 153
2001-07-07 20:17:23 +00:00
Chris Lattner
b1ca9cbceb
Broad superficial changes:
...
* Renamed getOpcode to getOpcodeName
* Changed getOpcodeName to return a const char * instead of string
* Added a getOpcode method to replace getInstType
* Changed code to use getOpcode instead of getInstType
llvm-svn: 152
2001-07-07 19:24:15 +00:00
Chris Lattner
48d80e18f9
Devirtualize User::dropAllReferences
...
llvm-svn: 151
2001-07-07 19:00:36 +00:00
Chris Lattner
a999afa182
Remove dtor's that simply call dropAllReferences
...
llvm-svn: 150
2001-07-07 18:42:52 +00:00
Chris Lattner
a073acb22d
Changed the fundemental architecture of Operands for Instructions. Now
...
Operands are maintained as a vector<Use> in the User class, and operator
iterators are provided as before. Getting an operand no longer requires
a virtual function call.
WARNING: getOperand(x) where x >= getNumOperands() will now assert instead
of returning null!
llvm-svn: 149
2001-07-07 08:36:50 +00:00
Chris Lattner
a6c8b30e9d
New file, includes method to merge exit nodes together
...
llvm-svn: 141
2001-07-06 16:57:52 +00:00
Chris Lattner
5afd71b109
* Add a DominatorBase base class to maintain root of Dominator info
...
* Implement post dominator support
llvm-svn: 140
2001-07-06 16:57:21 +00:00
Chris Lattner
719d5b2899
* Added comments
...
* Made iterators inherit from appropriate iterator base class
* Abstracted out graphs from depth first iterator
* Add "Inverse" traversal of CFG
llvm-svn: 139
2001-07-06 16:56:17 +00:00
Chris Lattner
6bf3e9512b
IntervalPartition was changed to inherit from vector<Interval*> instead of
...
contain it so that it would have full iterator access without much work.
llvm-svn: 132
2001-07-03 15:28:08 +00:00
Chris Lattner
f9bd02a89a
Checkin of new Analysis result printing header
...
llvm-svn: 130
2001-07-03 05:37:26 +00:00
Chris Lattner
a2bb73e41f
Remove code for printing out Analysis data structures. It got moved
...
llvm-svn: 128
2001-07-03 05:35:52 +00:00
Chris Lattner
7edbdd4485
Update documentation a bit, correct #include guard
...
llvm-svn: 127
2001-07-03 05:35:23 +00:00
Chris Lattner
6dccb6576c
Enable printing of dominator related information.
...
Theis will eventually be moved!
llvm-svn: 123
2001-07-02 05:45:30 +00:00
Chris Lattner
12393e5c5a
Add new anaysis routines for building dominator related information
...
llvm-svn: 122
2001-07-02 05:45:17 +00:00
Chris Lattner
b44c6a4b47
Addition of 'deleter' function.
...
llvm-svn: 121
2001-07-02 01:09:41 +00:00
Chris Lattner
9dd7120a2a
Add prototypes for ADCE pass
...
llvm-svn: 115
2001-06-30 06:37:16 +00:00
Chris Lattner
b0810f37d3
Rename DoSparseConditionalConstantProp to DoSCCP
...
llvm-svn: 114
2001-06-30 06:37:01 +00:00
Chris Lattner
c10245352c
Add a new pop_back() method
...
llvm-svn: 111
2001-06-30 04:35:21 +00:00
Chris Lattner
6f70fda2f0
The ConstRules class got moved to the opt namespace
...
llvm-svn: 110
2001-06-30 04:35:01 +00:00
Chris Lattner
a6e2316d03
Add a reduceApply method
...
llvm-svn: 109
2001-06-30 04:34:42 +00:00
Chris Lattner
9e497a01f7
Split AllOpts.h into lots of little .h files.
...
llvm-svn: 108
2001-06-30 04:34:07 +00:00
Chris Lattner
96bb2fb5a2
Added prototype for ConstantFoldTerminator
...
llvm-svn: 105
2001-06-29 23:56:00 +00:00
Chris Lattner
17556f82d0
Added new removePredecessor method prototype
...
llvm-svn: 99
2001-06-29 05:21:42 +00:00
Chris Lattner
4cee8d8ffb
Miscellaneous cleanups:
...
* Convert post to pre-increment for for loops
* Use generic programming more
* Use new Value::cast* instructions
* Use new Module, Method, & BasicBlock forwarding methods
* Use new facilities in STLExtras.h
* Use new Instruction::isPHINode() method
llvm-svn: 96
2001-06-27 23:41:11 +00:00
Chris Lattner
7798de1382
* Move stuff around a bit.
...
* Add reduce_apply_bool
llvm-svn: 88
2001-06-27 23:32:12 +00:00
Chris Lattner
4400f659f1
Add instructions to fold unary and binary instructions.
...
llvm-svn: 87
2001-06-27 23:31:34 +00:00
Chris Lattner
780cfa5381
* Use the new reduce_apply_bool template
...
* Expose Constant Pool Merging from ConstantProp.cpp
* Include definitions for SCCP pass
* InstListType is not neccesary anymore
llvm-svn: 86
2001-06-27 23:31:14 +00:00
Chris Lattner
a32c04fcb1
getBasicBlocks() is not needed anymore for reading Method data
...
llvm-svn: 85
2001-06-27 23:30:11 +00:00
Chris Lattner
608fe88627
Added methods to make dealing with switches and branch instructions
...
more tolerable.
llvm-svn: 84
2001-06-27 23:29:41 +00:00
Chris Lattner
c112b3de44
Minor formating changes
...
llvm-svn: 83
2001-06-27 23:29:21 +00:00
Chris Lattner
8c2076b84e
Make a new GenericBinaryInst class, instead of providing lots of silly
...
little classes.
llvm-svn: 82
2001-06-27 23:28:50 +00:00
Chris Lattner
642a3063da
Add a new slew of functions to allow dynamic_cast<> like operation for
...
upcasting Value's to their subclasses.
llvm-svn: 80
2001-06-27 23:27:42 +00:00
Chris Lattner
0972270aaf
Add extra forwarding accessor methods so that getMethodList(), getBasicBlocks()
...
and getInstList() are obsolete... except for when modifying those lists. This
makes code much more succinct and to the point.
llvm-svn: 79
2001-06-27 23:26:41 +00:00
Chris Lattner
7221d33514
* Rename get.*Operator to create seeing that it would have to be qualified
...
with the classname anyways.
* Add an isPHINode() method to Instruction
* Add getUniqueName() to SymbolTable class
* Add an insert method to ValueHolder
llvm-svn: 73
2001-06-25 07:31:05 +00:00
Chris Lattner
554c161f1f
Add a helper function bind_obj
...
llvm-svn: 70
2001-06-25 03:54:32 +00:00
Chris Lattner
3fe4504c28
Big changes. Interval*.h is now more or less finalized. IntervalPartition
...
is recoded to use IntervalIterators. IntervalIterators can now maintain
their own memory or let an external entity do it.
Loop depth is a new user of IntervalPartition for calculating the loop
nesting depth of a basic block
TODO: add IntervalPartition capability to split intervals between the looping
portion and the "tail" portion.
llvm-svn: 69
2001-06-25 03:54:14 +00:00
Chris Lattner
c17f93528b
CFG.h: change the iterator tag
...
Method.h: Add an iterator type.
llvm-svn: 68
2001-06-25 03:52:19 +00:00
Chris Lattner
db1d8bdf34
New files due to the Intervals.h splitup
...
llvm-svn: 65
2001-06-24 04:07:37 +00:00
Chris Lattner
658a50fe1b
IntervalPartition & IntervalIterator classes have been split out into
...
their own .h files
llvm-svn: 61
2001-06-24 04:05:09 +00:00
Chris Lattner
2e2e27a1af
Addition of IntervalIterator. Preparing for rename of Intervals.h to
...
Interval.h, IntervalPartition.h, and IntervalIterator.h
llvm-svn: 59
2001-06-24 03:22:59 +00:00
Chris Lattner
97c3480075
Add comments
...
Interval::HeaderNode is now accessed thorugh an accessor function
llvm-svn: 55
2001-06-22 02:23:27 +00:00
Chris Lattner
dc36e44adc
Add accessor methods to binary/unary operators
...
Add extra helper methods to PHI class
llvm-svn: 54
2001-06-22 02:21:42 +00:00
Chris Lattner
d52706daa8
New header file defined with neeto utilities put in one place
...
llvm-svn: 50
2001-06-21 05:25:51 +00:00
Chris Lattner
e3b1bacb6e
Modified to use the new reduce_apply algorithm
...
llvm-svn: 49
2001-06-21 05:25:33 +00:00
Chris Lattner
570f10ad47
* Added capability to print out an interval
...
llvm-svn: 48
2001-06-21 05:25:09 +00:00
Chris Lattner
d893c3300a
* Added comments
...
* Added prototype for new Interval::isLoop method
* Added destructor to free memory
* Added IntervalPartition::isDegeneratePartition method
* Added IntervalPartition::size() method
llvm-svn: 47
2001-06-21 05:24:46 +00:00
Chris Lattner
5035efaeda
Add capability to build a derived interval graph
...
llvm-svn: 41
2001-06-20 22:44:32 +00:00
Chris Lattner
778702f26c
Factor the predeclarations of the CFG.h functionality into a seperate, new header
...
file: CFGdecls.h
This allows the addition of BasicBlock::(pred|succ)_iterator typedefs.
llvm-svn: 40
2001-06-20 22:44:16 +00:00
Chris Lattner
acbaaf7bf2
Add an optimization stub
...
llvm-svn: 35
2001-06-20 19:26:21 +00:00
Chris Lattner
6cc066490b
New file: Interval analysis support
...
llvm-svn: 34
2001-06-20 19:26:12 +00:00
Chris Lattner
62b7632c3c
Implement support for writing VCG format output
...
llvm-svn: 28
2001-06-13 19:55:13 +00:00
Chris Lattner
78f524c613
Move contents to the cfg namespace.
...
Implement post order and reverse post order iterators
llvm-svn: 27
2001-06-13 19:55:02 +00:00
Chris Lattner
a653daaac2
Updates to support
...
* Changes in PHI node structure
* Fix to Predecessor iterator
llvm-svn: 23
2001-06-11 15:04:06 +00:00
Chris Lattner
5f46e8c9da
Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
...
to the UnaryOperator class (from the Instruction class).
llvm-svn: 21
2001-06-08 21:30:13 +00:00
Chris Lattner
f5d87f9e56
Beautify the source a bit.
...
llvm-svn: 19
2001-06-08 21:07:26 +00:00
Chris Lattner
f2ff0eac5b
Include support for reverse iteration.
...
llvm-svn: 18
2001-06-08 20:52:54 +00:00
Chris Lattner
33455b2a23
Added reverse depth first capability, fixed depth first capability
...
llvm-svn: 16
2001-06-08 00:35:14 +00:00
Chris Lattner
fe59ab9828
Moved iterators to the new CFG.h file.
...
llvm-svn: 14
2001-06-07 21:18:35 +00:00
Chris Lattner
b151cb40ac
New file
...
llvm-svn: 13
2001-06-07 21:18:08 +00:00
Chris Lattner
e358b22776
Fixes for BB iterators, additional methods added for DCE pass
...
llvm-svn: 8
2001-06-07 16:58:36 +00:00
Chris Lattner
2f7c963559
Initial revision
...
llvm-svn: 2
2001-06-06 20:29:01 +00:00