Chris Lattner
d7a7330e97
* Fix TODO
...
* Support ConstPoolPOinterReferences correctly
* New constPoolPointerNull subclass
* Add classof support for more classes
* Add proper support for ConstPoolPointerReference::getStrValue()
llvm-svn: 769
2001-10-13 06:57:33 +00:00
Chris Lattner
9be166000d
not is a keyword in ansi C++, avoid it
...
llvm-svn: 763
2001-10-13 06:51:26 +00:00
Chris Lattner
862e338b46
* Support writing GlobalVariables with info comments by them
...
* Print out prototypes correctly in cases that we weren't before
* Use new style casts more
* Support printing new invoke instruction
llvm-svn: 759
2001-10-13 06:42:36 +00:00
Chris Lattner
1907f4e8cc
Support pointers to globals happily
...
llvm-svn: 754
2001-10-13 06:35:09 +00:00
Chris Lattner
2503325027
Factor parentness out of Module & GlobalVariable into GlobalValue
...
Implement SymbolTable debug/dump utility
llvm-svn: 710
2001-10-03 19:28:15 +00:00
Chris Lattner
883ad0b352
Rename getNullPointer to getNull
...
Allow sharing of null pointer constants
llvm-svn: 709
2001-10-03 15:39:36 +00:00
Chris Lattner
7fac070215
* Both Method & GlobalVariable now subclass GlobalValue
...
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
60e0dd78b2
First try at a horrible global value reference wrapper
...
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
da55810666
Commit more code over to new cast style
...
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
3856934386
Convert more code to use new style casts
...
Eliminate old style casts from value.h
llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
8f19112923
Add more support for new style casts
...
Convert more code to use them
llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
4b717c0edc
Add support for new style casts
...
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
ba1c1f2fb6
Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
...
the BasicBlock class where they should be. pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.
llvm-svn: 691
2001-10-01 13:19:53 +00:00
Chris Lattner
436248f236
Implement a constant pointer value
...
llvm-svn: 667
2001-09-30 20:14:07 +00:00
Chris Lattner
bb09a10929
Pull iterators out of CFG.h and CFGdecls and put them in Support directory
...
llvm-svn: 664
2001-09-28 22:56:31 +00:00
Chris Lattner
d695305ea3
Make error report a little more useful
...
llvm-svn: 657
2001-09-28 00:06:52 +00:00
Chris Lattner
92c15742ad
Okay, make the member function work.
...
llvm-svn: 643
2001-09-19 14:09:25 +00:00
Chris Lattner
8c3f09e42f
Remove global debug output fns that have been superceded by a member func
...
llvm-svn: 642
2001-09-19 14:08:53 +00:00
Chris Lattner
ac128cd4c6
Fix up code a bit, remove operator<< to Assembly/Writer.h
...
llvm-svn: 628
2001-09-18 17:03:59 +00:00
Vikram S. Adve
13ba19a1a8
Moved DebugValue to Value.cpp.
...
llvm-svn: 606
2001-09-18 12:48:16 +00:00
Vikram S. Adve
df6bbeb59c
Added debugging support.
...
llvm-svn: 605
2001-09-18 12:44:41 +00:00
Chris Lattner
e2c8d43e1d
Remove the unsized array constraint
...
llvm-svn: 599
2001-09-18 04:38:32 +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
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
fe7b461376
Use correct style casts
...
llvm-svn: 545
2001-09-10 20:11:44 +00:00
Chris Lattner
dd009521fe
Use correct style casts
...
Types are not all constant now
llvm-svn: 544
2001-09-10 20:11:28 +00:00
Chris Lattner
adfe0d19d6
Add support for printing globals
...
llvm-svn: 537
2001-09-10 20:08:19 +00:00
Chris Lattner
da9755002f
Implement global variable support
...
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
8b648b4a8b
Remove the definitions of 3 global functions that don't belong in the core
...
llvm-svn: 526
2001-09-09 23:02:07 +00:00
Chris Lattner
1117548f9e
Rename contype to subtype
...
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
9f8c09e760
Rename file to be consistent with header name
...
llvm-svn: 519
2001-09-09 21:59:43 +00:00
Chris Lattner
81eb4c4e5c
Clean up Type class by removing mutable ConstRules member and use annotations insead
...
llvm-svn: 516
2001-09-09 21:02:38 +00:00
Chris Lattner
61607ee880
Clean up ConstRules stuff to use annotations instead of a mutable member in Type
...
llvm-svn: 515
2001-09-09 21:01:20 +00:00
Chris Lattner
1cedcf1c31
Moved functionality into the other constant pool stuff
...
llvm-svn: 477
2001-09-07 18:00:19 +00:00
Chris Lattner
5f3b276293
Cleanup
...
llvm-svn: 467
2001-09-07 16:57:29 +00:00
Chris Lattner
97d79f144c
Support abstract types
...
Remove constant pool support
llvm-svn: 466
2001-09-07 16:57:07 +00:00
Chris Lattner
2bd66ebee9
Support a abstract, opaque, and recursive types
...
Remove lockty, remove fillerty
Make type lookup more efficient
Support shared generic factory code
llvm-svn: 465
2001-09-07 16:56:42 +00:00
Chris Lattner
9e0f1cb3ad
Types and constnats are wierd objects in the symtabs
...
Support abstract types in symtab
llvm-svn: 464
2001-09-07 16:48:17 +00:00
Chris Lattner
f50b723d9c
Modules must have a valid, nonnull type. Make them void
...
llvm-svn: 463
2001-09-07 16:47:42 +00:00
Chris Lattner
5c764a5a9b
Support new setName interface
...
llvm-svn: 462
2001-09-07 16:47:18 +00:00
Chris Lattner
e8dd6ad040
* Support new setname interface
...
* Add assertion for sanity checking
llvm-svn: 461
2001-09-07 16:47:03 +00:00
Chris Lattner
49d855ca31
* Cnstants are now global objects
...
* ConstantPools no longer exist
* Constants are global objects in the LLVM system
* Constants are structurally equilivant if they are pointer equilivant
* Support abstract & opaque types
* Support setName on constants even though they don't track names
* Constnats don't get copy ctors anymore
* ConstPoolVal::equals is no longer useful [use ptr equivalency]
* Support generic factory classes to create and maintain constants
llvm-svn: 460
2001-09-07 16:46:31 +00:00
Chris Lattner
2d189a5981
Support new setName itf
...
llvm-svn: 459
2001-09-07 16:44:17 +00:00
Chris Lattner
bbb229655b
* Support global constants
...
* Eliminate need for constant pool
llvm-svn: 451
2001-09-07 16:40:34 +00:00
Chris Lattner
fee714f7e0
* Assembly writer is not a module analyzer anymore
...
* There is no constant pool anymore
llvm-svn: 447
2001-09-07 16:36:04 +00:00
Chris Lattner
dea211ea67
Remove #include of nonexistant header file
...
llvm-svn: 443
2001-09-07 16:32:10 +00:00
Chris Lattner
1e6912a13f
* Slot calc is now simpler and not based on module analyzer.
...
* Add new SC_DEBUG option to enable debugging of why stuff doesn't work
llvm-svn: 442
2001-09-07 16:31:52 +00:00
Vikram S. Adve
b6970c305f
*** empty log message ***
...
llvm-svn: 390
2001-08-28 22:35:21 +00:00
Chris Lattner
74a5857531
Remove target specific stuff from Type classes
...
llvm-svn: 383
2001-08-27 15:52:13 +00:00
Chris Lattner
21a6f5fe7f
Remove target specific method from MemAccessInst class
...
llvm-svn: 382
2001-08-27 15:51:43 +00:00
Chris Lattner
439465583a
Make sure noone branches to the entry node of the method
...
llvm-svn: 369
2001-08-24 14:56:34 +00:00
Chris Lattner
a0484c8eeb
Handle case where there is no exit node from a flowgraph
...
llvm-svn: 365
2001-08-23 17:07:19 +00:00
Chris Lattner
01a45c6c96
Changed an assertion message
...
llvm-svn: 364
2001-08-23 17:06:38 +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
3f14c66890
Remove some gross stuff
...
llvm-svn: 328
2001-07-28 17:52:53 +00:00
Chris Lattner
e0c6a09883
Allow vararg method types with 0 fixed types
...
llvm-svn: 327
2001-07-28 17:52:35 +00:00
Chris Lattner
e76a335f5b
Make error msg nicer
...
llvm-svn: 326
2001-07-28 17:52:14 +00:00
Chris Lattner
2091efbc0a
* Fix bugs
...
llvm-svn: 322
2001-07-28 17:49:02 +00:00
Chris Lattner
ee998be490
Don't write out constants that do not have a name, they will be inlined.
...
llvm-svn: 305
2001-07-26 16:29:38 +00:00
Chris Lattner
89d4dfbfba
Add an arg to insertVal to allow us to prevent builtin types from being ignored
...
when they are inserted.
Ignore constant values without names. If they are used, they will be inlined.
llvm-svn: 303
2001-07-26 16:28:37 +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
Chris Lattner
e2472bbf6c
Moved inline/llvm/Tools/* to include/llvm/Support/*
...
llvm-svn: 279
2001-07-23 17:46:59 +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
7f95c9e33a
Fix code to be in a consistent style
...
llvm-svn: 252
2001-07-21 20:09:07 +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
7309d66d73
Add new ctor for ConstPoolBool
...
llvm-svn: 246
2001-07-21 19:16:08 +00:00
Chris Lattner
77ba32f4cc
Add new constructor for const pool bool
...
llvm-svn: 245
2001-07-21 19:15:26 +00:00
Chris Lattner
55406840e2
Add support for casts
...
llvm-svn: 244
2001-07-21 19:10:49 +00:00
Vikram S. Adve
6ee77c851e
Utility routines for simpler access to the value of an integer constant.
...
llvm-svn: 236
2001-07-21 12:44:00 +00:00
Vikram S. Adve
aa4c7b56f8
Add isIntegral() method to SignedIntType and UnsignedIntType.
...
llvm-svn: 224
2001-07-21 12:32:48 +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
9655e54d21
Implement ensureTypeAvailable
...
Implement ConstPoolInt class
llvm-svn: 215
2001-07-20 19:16:02 +00:00
Chris Lattner
4f6031f3e7
Add support for constant propogation of multiplies
...
llvm-svn: 214
2001-07-20 19:15:36 +00:00
Chris Lattner
5e5abe3eaa
Factor out WriteAsOperand.
...
llvm-svn: 213
2001-07-20 19:15:21 +00:00
Chris Lattner
a7620d9656
Implement forward/external declarations for methods.
...
llvm-svn: 196
2001-07-15 06:35:59 +00:00
Chris Lattner
d06dd69e73
Add support for assembly printing fp constants
...
llvm-svn: 191
2001-07-15 00:18:39 +00:00
Chris Lattner
f2a738cfe2
* ValueHolder now takes 3 arguments
...
* Added a few methods to ConstantPool
* ConstPoolVal no longer derives from Value
* Method & Module multiply inherit from SymTabValue & Value now
* Added a GetElementPtrInst::isStructSelector() method
llvm-svn: 184
2001-07-14 06:13:19 +00:00
Chris Lattner
32e96bcb54
The parent of a constant pool is a symtabvalue, not a value.
...
llvm-svn: 180
2001-07-14 06:10:33 +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
2e9fee4702
Add DebugValue member.
...
llvm-svn: 175
2001-07-12 23:35:26 +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
1547114cbf
Fixed post dominator frontiers! Yaay!
...
llvm-svn: 157
2001-07-08 05:54:09 +00:00
Chris Lattner
a682182f64
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
1fd1a3a7b4
Removing unnecesary file
...
llvm-svn: 154
2001-07-07 20:54:19 +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
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
32503d5637
Fixed some error messages to be nicer
...
llvm-svn: 147
2001-07-07 08:36:05 +00:00
Chris Lattner
c385bebc89
Implement support for postdominators, except in dom frontiers
...
llvm-svn: 142
2001-07-06 16:58:22 +00:00
Chris Lattner
081aabc330
Checkin of new dominator calculation routines. These will be improved in
...
the future to do post dominators and stuff
llvm-svn: 124
2001-07-02 05:46:38 +00:00
Chris Lattner
d42d492734
Optimizations got their own header files
...
Optimizations now live in the 'opt' namespace
include/llvm/Opt was renamed include/llvm/Optimizations
llvm-svn: 113
2001-06-30 04:36:40 +00:00
Chris Lattner
31cf984332
Implement reduceApply method
...
llvm-svn: 112
2001-06-30 04:35:40 +00:00
Chris Lattner
c10245352c
Add a new pop_back() method
...
llvm-svn: 111
2001-06-30 04:35:21 +00:00
Chris Lattner
2dd58aefa5
Add a check to avoid allowing V->replaceAllUsesWith(V)
...
llvm-svn: 104
2001-06-29 05:25:51 +00:00
Chris Lattner
615d3cf40d
Add implementation of BasicBlock::removePredecessor code that was factored
...
out of DCE.cpp
llvm-svn: 103
2001-06-29 05:25:23 +00:00
Chris Lattner
d77f3c0cbd
Added a note about a new verification the verifier should do
...
Removed a redundant check
llvm-svn: 100
2001-06-29 05:22:12 +00:00