Chris Lattner
85cf7de5b9
* Clean up some comments
...
* Move code out of header file to .cpp files, to make future changes easier
* Add arguments to classes so that they can be automatically inserted into their
parent structure upon creation.
llvm-svn: 3604
2002-09-06 21:31:57 +00:00
Chris Lattner
1de93e0830
* Clean up indentation a bit
...
* Fix broken comments (copy and pasto)
* Remove irrelevant comment
* Add extra argument to function that causes it to get inserted into a module
automatically.
llvm-svn: 3601
2002-09-06 20:47:31 +00:00
Chris Lattner
1cf6da5815
Include stub for correlated expression elimination pass
...
llvm-svn: 3597
2002-09-06 18:39:29 +00:00
Chris Lattner
c8554b6352
- Rename BreakCriticalEdge to the slightly more standard SplitCriticalEdge
...
llvm-svn: 3587
2002-09-06 02:35:11 +00:00
Chris Lattner
66c5dd4050
* Doxygenize API
...
* Add new functions for identifying and breaking critical edges
llvm-svn: 3586
2002-09-06 02:19:25 +00:00
Chris Lattner
d8e9501bf5
- Doxygenize comments
...
- Add new method to dominatorset: properlyDominates
- Add synonmys for operator[] to classes so that pointers to dominator
information can be used more easily.
- Add API's to update dominator information
llvm-svn: 3585
2002-09-06 02:16:27 +00:00
Chris Lattner
205af87264
Make getAnalysisToUpdate<AnalysisType>() public so that transformation APIs
...
can update analysis information.
llvm-svn: 3584
2002-09-06 02:14:47 +00:00
Vikram S. Adve
055207a945
Add new function MachineInstrInfo::CreateZeroExtensionInstructions.
...
llvm-svn: 3582
2002-09-05 18:36:41 +00:00
Chris Lattner
e4bba98678
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
SCVS: ----------------------------------------------------------------------
llvm-svn: 3572
2002-09-03 01:05:48 +00:00
Chris Lattner
9fc380645d
Implement operator== and != for ranges
...
llvm-svn: 3571
2002-09-03 01:05:31 +00:00
Chris Lattner
88a7f572fb
Remove duplicate #include
...
llvm-svn: 3567
2002-09-02 04:04:11 +00:00
Chris Lattner
b7f7350ba6
Add printing support to ConstantRange class
...
llvm-svn: 3566
2002-09-02 00:18:26 +00:00
Chris Lattner
0c4ea48b54
Initial implementation of ConstantRange support
...
llvm-svn: 3564
2002-09-01 23:53:39 +00:00
Chris Lattner
7c0515febe
- Exposed SetCondInst::getInverseCondition & ::getSwappedCondition better
...
- Doxygenized iOperators.h
llvm-svn: 3561
2002-09-01 19:46:36 +00:00
Chris Lattner
0a487fa68e
Convert cwriter to be a pass.
...
llvm-svn: 3557
2002-08-31 00:28:25 +00:00
Chris Lattner
838248b35a
- Eliminate the last traces of the 'analysis' namespace
...
llvm-svn: 3550
2002-08-30 22:53:53 +00:00
Chris Lattner
39d3e99afe
Update comments
...
llvm-svn: 3547
2002-08-30 22:51:21 +00:00
Chris Lattner
168cdaea1a
Fix comments.
...
llvm-svn: 3546
2002-08-30 22:51:08 +00:00
Chris Lattner
bfffa18d20
Merged into ValueNumbering.cpp
...
llvm-svn: 3545
2002-08-30 22:30:51 +00:00
Chris Lattner
47f9a4a06a
Initial implementation of basic value numbering
...
This file will probably go away at some point
llvm-svn: 3542
2002-08-30 20:30:03 +00:00
Chris Lattner
2b8ae06774
Initial version of LoadValueNumbering interface
...
llvm-svn: 3539
2002-08-30 20:27:48 +00:00
Chris Lattner
a9d7ed8985
Initial version of ValueNumbering interface
...
llvm-svn: 3538
2002-08-30 20:27:15 +00:00
Chris Lattner
4253b850c0
- PassInfo class keeps track of AnalysisGroups implemented by the Pass.
...
- Doxygenize comments
llvm-svn: 3532
2002-08-30 20:20:39 +00:00
Chris Lattner
3baff38916
- Pass now has AnalysisImpls class to implement getAnalysis() so that it is
...
correct even when called back by another passes run method.
llvm-svn: 3531
2002-08-30 20:19:49 +00:00
Chris Lattner
5545ec0631
Fix comments
...
llvm-svn: 3523
2002-08-29 20:08:39 +00:00
Chris Lattner
30a25af88c
Make the getAnalyss<> members const. Using them does NOT modify the Pass object.
...
llvm-svn: 3522
2002-08-29 20:07:59 +00:00
Chris Lattner
cc9d7e01c9
Add support for turning an array of characters into a string.
...
llvm-svn: 3509
2002-08-26 17:53:56 +00:00
Anand Shukla
1e105cdb7c
Changed so it gets linked properly
...
llvm-svn: 3508
2002-08-26 16:45:19 +00:00
Chris Lattner
69f833618d
Convert comments to Doxygen style
...
llvm-svn: 3507
2002-08-25 22:54:55 +00:00
Vikram S. Adve
f699596601
Added function GetMemInstArgs and made FoldGetElemChain private.
...
llvm-svn: 3503
2002-08-24 21:03:10 +00:00
Vikram S. Adve
6fe717b03b
Added support for type inquiry in subclasses of InstTreeNode.
...
llvm-svn: 3502
2002-08-24 21:02:42 +00:00
Chris Lattner
cb3870e441
Implement classof for SetCondInst so that instcombine doesn't break on dyn_cast<SetCondInst>
...
llvm-svn: 3493
2002-08-23 18:30:58 +00:00
Chris Lattner
9f18db8156
Eliminated the MemAccessInst class, folding contents into GEP class.
...
llvm-svn: 3488
2002-08-22 23:37:24 +00:00
Chris Lattner
20b85d96e4
Eliminated the MemAccessInst class, folding contents into GEP class.
...
llvm-svn: 3487
2002-08-22 23:37:20 +00:00
Chris Lattner
3fbdcb699a
Load & Store Inst now no longer derive from MemAccessInst
...
llvm-svn: 3486
2002-08-22 22:54:10 +00:00
Chris Lattner
d123fc1e41
Load and Store now no longer derive from MemAccessInst. Indexing a load or
...
store is not possible anymore.
llvm-svn: 3482
2002-08-22 22:47:47 +00:00
Chris Lattner
48278223df
doxygenize comments in header
...
llvm-svn: 3480
2002-08-22 22:46:20 +00:00
Chris Lattner
01ed913adb
Add doxygen comments to AliasAnalysis class
...
llvm-svn: 3475
2002-08-22 21:22:25 +00:00
Chris Lattner
5d3710be84
Fix bug: test/Regression/Assembler/2002-08-22-DominanceProblem.ll
...
llvm-svn: 3473
2002-08-22 20:39:27 +00:00
Chris Lattner
04c9a37306
Checkin new alias analysis infrastructure
...
llvm-svn: 3464
2002-08-22 18:25:20 +00:00
Chris Lattner
2522ebee1b
Remove unneccesary method
...
llvm-svn: 3452
2002-08-22 15:57:37 +00:00
Vikram S. Adve
3567460977
Just some extra comments.
...
llvm-svn: 3446
2002-08-22 03:03:10 +00:00
Vikram S. Adve
dba9c85e36
Add method copyOperands().
...
llvm-svn: 3445
2002-08-22 03:01:44 +00:00
Chris Lattner
78cb7cd03d
Add a class that is useful for hacking around linking problem due to
...
pass implementations not being linked in when they are used if the
implementation is in a .a file.
- Fighting with linking problem due to removing the ::ID elements. Now the
implementation .cpp files for analyses are not being included into gccas
and friends because it is linking to the .a file and there is no explicit
symbol reference to bring in the .o file. The new IncludeFile hack is the
result.
llvm-svn: 3434
2002-08-21 23:48:55 +00:00
Chris Lattner
c4bd846e84
- Split Dominators.h into Dominators.h & PostDominators.h
...
llvm-svn: 3432
2002-08-21 23:43:50 +00:00
Chris Lattner
c5c1d9ad89
- Implement the new AnalysisGroup feature, neccesary for Value#ing and pointer analysis
...
llvm-svn: 3425
2002-08-21 22:16:59 +00:00
Chris Lattner
bf3e8bf210
Add assertion checks to nail bugs early.
...
llvm-svn: 3424
2002-08-21 22:14:28 +00:00
Chris Lattner
48cb6df26f
- Make Pass::lookupPassInfo a public member
...
- Fix Pass::getAnalysis<AnalysisType>() to use dynamic_cast instead of a
static cast to handle the case where the cast from & two classes are not
related via inheritance.
llvm-svn: 3423
2002-08-21 22:13:33 +00:00
Chris Lattner
6c83ee57c1
- Do not expose ::ID from any of the analyses anymore.
...
llvm-svn: 3417
2002-08-21 17:09:49 +00:00
Chris Lattner
b90f78e2b3
- Do not expose ::ID from any of the analyses anymore.
...
llvm-svn: 3416
2002-08-21 17:09:45 +00:00
Chris Lattner
a63cce4e99
- Eliminate the need for analyses to expose an ::ID member.
...
llvm-svn: 3414
2002-08-21 17:08:37 +00:00
Chris Lattner
417aa6666c
Add missing forward decl
...
llvm-svn: 3413
2002-08-21 15:38:45 +00:00
Chris Lattner
edea38063b
Add new SetCondInst::getInverseCondition() method.
...
llvm-svn: 3404
2002-08-20 18:17:09 +00:00
Chris Lattner
8f4f2153e5
- ConstantPointerRefs are now automatically removed from the module table
...
when they are destroyed, which makes Constant::destroyConstant an actually
useful external interface. Expose these methods publicly.
- Implement destroyConstant on ConstPointerNull so that destroyConstant can
be used on any derived type constant safely.
llvm-svn: 3378
2002-08-18 00:39:59 +00:00
Chris Lattner
9f776d426f
Module's do not subclass from Value, so this code caused a segfault.
...
llvm-svn: 3376
2002-08-18 00:37:14 +00:00
Chris Lattner
30c534c3e1
Add Module::dump() method
...
llvm-svn: 3374
2002-08-17 23:32:42 +00:00
Chris Lattner
aac33658b1
Remove the last traces of the NOT instruction
...
llvm-svn: 3346
2002-08-15 16:14:49 +00:00
Vikram S. Adve
227bd369e5
Change opLabel numbers for Not and BNot.
...
Also, these tree nodes are now binary, not unary.
llvm-svn: 3344
2002-08-15 14:20:45 +00:00
Vikram S. Adve
c66b996e40
Added more helper functions for binary instructions emulating
...
unary Neg and Not: isNeg, isNot, getNegArgument, and getNotArgument.
llvm-svn: 3341
2002-08-15 14:15:48 +00:00
Chris Lattner
6a9d88347a
Remove support for Not ConstantExpr. This simplifies the unary case to only
...
have to support the cast instruction, so the function is renamed to getCast.
llvm-svn: 3328
2002-08-14 18:24:09 +00:00
Chris Lattner
d909e03b2e
Remove support for unary operators.
...
llvm-svn: 3326
2002-08-14 18:19:46 +00:00
Chris Lattner
7a018a27b2
Remove reference to GenericUnaryInst class
...
llvm-svn: 3325
2002-08-14 18:18:50 +00:00
Chris Lattner
0e17a44326
Remove support for unary instructions
...
llvm-svn: 3324
2002-08-14 18:18:28 +00:00
Chris Lattner
9a0912fb14
Remove constant propogation support for NOT instruction
...
llvm-svn: 3321
2002-08-14 18:17:07 +00:00
Chris Lattner
1783814b9f
Expose two new static methods from BinaryOperator: createNeg, createNot
...
llvm-svn: 3314
2002-08-14 17:51:29 +00:00
Vikram S. Adve
afb9cae44d
Add method MachineInstr::substituteValue() which substitutes
...
one Value with another one in all operands and implicit references
of the machine instruction.
Also add method MachineOperand::getVRegValueOrNull().
llvm-svn: 3307
2002-08-14 16:54:11 +00:00
Chris Lattner
3e63ddad5b
- Rename ConstantGenericIntegral -> ConstantIntegral
...
- Add new methods to ConstantIntegral: getMaxValue, getMinValue,
getAllOnesValue
llvm-svn: 3298
2002-08-13 17:50:18 +00:00
Chris Lattner
050aa81931
Return const char * const instead of std::string from get register name method
...
llvm-svn: 3294
2002-08-12 21:24:55 +00:00
Chris Lattner
4fbca59155
- Added a new superclass of ConstantBool/ConstantInt: ConstantGenericIntegral
...
- Moved InstCombine: isMaxValue, isMinValue, isAllOnesValue to Constants.h
llvm-svn: 3293
2002-08-12 21:21:21 +00:00
Chris Lattner
3575b5733a
* IntervalPartition no longer derives from vector
...
llvm-svn: 3281
2002-08-09 22:52:06 +00:00
Chris Lattner
9bcfec701d
Do not add an extra vtable to EVERY machineinstr created.
...
llvm-svn: 3280
2002-08-09 21:49:21 +00:00
Chris Lattner
d2d8928f1b
UnaryOperator::create should take a name just like BinaryOperator::create
...
llvm-svn: 3279
2002-08-09 21:39:38 +00:00
Chris Lattner
8a4787495a
* Removed extraneous #includes
...
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3278
2002-08-09 20:08:06 +00:00
Chris Lattner
4d9fadc44a
* Removed extraneous #includes
...
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3277
2002-08-09 20:08:03 +00:00
Chris Lattner
eeb7564269
Change machinecode for instruction to not inherit from vector.
...
llvm-svn: 3274
2002-08-09 20:04:28 +00:00
Chris Lattner
98c71e5666
The second parameter of hash_set is the default, remove it.
...
llvm-svn: 3273
2002-08-09 19:40:42 +00:00
Chris Lattner
a21e315db4
- Cleaned up the interface to AnalysisUsage to take analysis class names
...
instead of ::ID's.
- Pass::getAnalysis<> now no longer takes an optional argument
llvm-svn: 3265
2002-08-08 19:01:30 +00:00
Chris Lattner
50900b8381
- Cleaned up the interface to AnalysisUsage to take analysis class names
...
instead of ::ID's.
- Pass::getAnalysis<> now no longer takes an optional argument
llvm-svn: 3263
2002-08-08 19:01:11 +00:00
Chris Lattner
ef1061e61d
Simplify interface to parsers.
...
llvm-svn: 3255
2002-08-07 18:36:27 +00:00
Vikram S. Adve
34c7fef2d6
Add function GetConstantValueAsUnsignedInt.
...
llvm-svn: 3249
2002-08-04 20:55:59 +00:00
Vikram S. Adve
8159deecc3
Add MemAccessInst::getNumIndices().
...
llvm-svn: 3234
2002-08-03 13:22:36 +00:00
Chris Lattner
fd41c5e71b
Changes to be GCC 3.1 friendly
...
llvm-svn: 3184
2002-07-31 19:31:59 +00:00
Chris Lattner
53d5b3111d
Remove obsolete, confusing, method
...
llvm-svn: 3175
2002-07-31 01:45:02 +00:00
Vikram S. Adve
8491cdb932
Add GlobalDSGraph -- a common graph that holds externally visible nodes.
...
llvm-svn: 3169
2002-07-30 22:02:04 +00:00
Chris Lattner
372599ed03
Add hooks to get information out of concrete pass manager implementations
...
llvm-svn: 3164
2002-07-30 19:49:39 +00:00
Chris Lattner
12b9a2a7e6
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
llvm-svn: 3160
2002-07-30 18:54:22 +00:00
Chris Lattner
c197551e58
* Implement stuff so that code can declare that they only depend on the CFG of
...
a function, not on anything else. This speeds up GCCAS a lot.
llvm-svn: 3156
2002-07-30 16:27:32 +00:00
Chris Lattner
a4fb4b46c2
Implement constant propogation of logical (and, or, xor) expressions.
...
Fixes testcase: test/Regression/Transforms/ConstProp/logicaltest.ll
llvm-svn: 3153
2002-07-30 16:24:25 +00:00
Chris Lattner
4b68cd0c61
Expose instruction selection as a pass instead of a global function
...
llvm-svn: 3145
2002-07-30 03:55:29 +00:00
Chris Lattner
77cd530591
Add rough support for LLC passes
...
llvm-svn: 3144
2002-07-30 03:55:01 +00:00
Chris Lattner
dedfc5ccb3
Implement a new RemoveSuccessor function
...
llvm-svn: 3130
2002-07-29 22:32:06 +00:00
Chris Lattner
ef6729c9ca
* Eliminate the Provided set. All Passes now finally just automatically
...
provide themselves.
llvm-svn: 3125
2002-07-29 21:03:38 +00:00
Chris Lattner
b202b77aab
* Eliminate the Provided set. All Passes now finally just automatically
...
provide themselves.
llvm-svn: 3124
2002-07-29 21:03:33 +00:00
Chris Lattner
27795f655b
* Fix comment descriptions
...
* Remove defaulted argument to ctor that is never used anyway
* Prevent copying and assignment
llvm-svn: 3122
2002-07-29 21:01:19 +00:00
Chris Lattner
ec2780457d
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
llvm-svn: 3116
2002-07-27 01:12:17 +00:00
Chris Lattner
3f47f1065b
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
llvm-svn: 3115
2002-07-27 01:12:15 +00:00
Chris Lattner
b934722f1b
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3112
2002-07-26 21:12:44 +00:00
Chris Lattner
ea9fb2a20a
*** empty log message ***
...
llvm-svn: 3111
2002-07-26 21:11:42 +00:00
Chris Lattner
ac27223c6a
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3110
2002-07-26 21:11:38 +00:00
Chris Lattner
252b65fbdf
Factor PassNameParser out of opt.cpp so that analyze and eventually llc can use it.
...
llvm-svn: 3108
2002-07-26 21:09:10 +00:00
Chris Lattner
e056a17a88
*** empty log message ***
...
llvm-svn: 3107
2002-07-26 19:19:31 +00:00
Chris Lattner
64a9cec8a8
Analysis contructors now no longer take AnalysisID's as their argument,
...
because there is a one-one mapping between classes and analyses.
llvm-svn: 3106
2002-07-26 19:19:16 +00:00
Chris Lattner
27272ee812
Simplify analyses so that there is only one analysis per class
...
llvm-svn: 3104
2002-07-26 18:40:06 +00:00
Chris Lattner
5cc0bef9ed
Remove dead options
...
llvm-svn: 3096
2002-07-25 19:59:38 +00:00
Chris Lattner
fe990ba408
Fix previous checkin
...
llvm-svn: 3093
2002-07-25 17:58:58 +00:00
Chris Lattner
eb574d8777
Add typenames
...
llvm-svn: 3092
2002-07-25 17:55:37 +00:00
Chris Lattner
b57916c8de
*** empty log message ***
...
llvm-svn: 3082
2002-07-25 15:39:09 +00:00
Chris Lattner
236035cb2f
Avoid warning: control reaches end of non-void function
...
llvm-svn: 3081
2002-07-25 15:39:05 +00:00
Chris Lattner
a5f569b7f9
Add support for GCC 3.0.4
...
llvm-svn: 3080
2002-07-25 15:23:20 +00:00
Chris Lattner
0ccf5689e3
*** empty log message ***
...
llvm-svn: 3077
2002-07-25 15:00:45 +00:00
Chris Lattner
0deb85b243
GCC 3.1 changes
...
llvm-svn: 3076
2002-07-25 15:00:43 +00:00
Chris Lattner
85a79c0bf6
GCC 3.1 changes
...
llvm-svn: 3070
2002-07-24 22:34:01 +00:00
Chris Lattner
743688359d
*** empty log message ***
...
llvm-svn: 3067
2002-07-24 22:20:06 +00:00
Chris Lattner
728a8aef9b
GCC 3.1 fixes
...
llvm-svn: 3066
2002-07-24 22:20:00 +00:00
Chris Lattner
5f11498859
*** empty log message ***
...
llvm-svn: 3065
2002-07-24 22:08:53 +00:00
Chris Lattner
e51b20c24c
Changes to build with GCC 3.1
...
llvm-svn: 3064
2002-07-24 22:08:36 +00:00
Chris Lattner
cde92b0c9c
Use the Support/iterator file to abstract out compiler differences
...
llvm-svn: 3063
2002-07-24 22:07:57 +00:00
Chris Lattner
41256bc060
Use the new include/Support/iterator file
...
llvm-svn: 3062
2002-07-24 22:07:42 +00:00
Chris Lattner
ebe969a2cc
Add forward_iterator wrapper
...
llvm-svn: 3061
2002-07-24 22:07:13 +00:00
Chris Lattner
3e01f547cd
Add another GCC2.95->3.1 compatibility header
...
llvm-svn: 3060
2002-07-24 21:38:41 +00:00
Chris Lattner
6ac36eae08
Spiff up the header files
...
llvm-svn: 3059
2002-07-24 21:25:34 +00:00
Chris Lattner
5d262d3846
*** empty log message ***
...
llvm-svn: 3058
2002-07-24 21:21:33 +00:00
Chris Lattner
ad8fc4ba3e
Non-standard hash classes are not in the std:: namespace
...
llvm-svn: 3057
2002-07-24 21:21:33 +00:00
Chris Lattner
9860e64083
*** empty log message ***
...
llvm-svn: 3056
2002-07-24 21:21:32 +00:00
Chris Lattner
b863331102
Move hash_* extension headers from ext/ to Support/ so that we can support
...
GCC 2.95, GCC 3.0.4 and GCC 3.1 all concurrently, without having to delete
headers after a chackou.
llvm-svn: 3055
2002-07-24 21:16:42 +00:00
Chris Lattner
345a8ed1df
Move compatibility headers to Support
...
llvm-svn: 3054
2002-07-24 21:09:54 +00:00
Chris Lattner
1f7accb16b
*** empty log message ***
...
llvm-svn: 3053
2002-07-24 20:44:02 +00:00
Chris Lattner
7b242c7228
Changes to make it GCC 3.1 compatible
...
llvm-svn: 3052
2002-07-24 20:44:01 +00:00
Chris Lattner
74dc1f4d82
Add missing typename's that GCC3.1 is whining about.
...
llvm-svn: 3051
2002-07-24 20:22:09 +00:00
Chris Lattner
0d323f2cdf
Disable the operator= in Value
...
Disable the copy ctor and operator= in Annotation.h
llvm-svn: 3048
2002-07-24 20:01:57 +00:00
Chris Lattner
25fde60989
Remove assert hack now that I'm using the right GDB. :)
...
llvm-svn: 3045
2002-07-24 17:21:36 +00:00
Chris Lattner
722320121c
Move many files into IPO.h
...
llvm-svn: 3042
2002-07-24 17:10:58 +00:00
Chris Lattner
5467246af4
Move contents of these files into IPO.h
...
llvm-svn: 3041
2002-07-24 17:10:24 +00:00
Chris Lattner
6669be024a
* Rename to IPO.h
...
* Add ConstantMerge.h contents
llvm-svn: 3032
2002-07-23 19:56:27 +00:00
Chris Lattner
fe4886e32b
Add a version of the bytecode writer pass that has a default ctor
...
llvm-svn: 3031
2002-07-23 19:56:03 +00:00
Chris Lattner
4b7d671258
Incorporate into IPO.h
...
llvm-svn: 3030
2002-07-23 19:51:10 +00:00
Chris Lattner
60265052c8
Prepare the file to become IPO.h
...
llvm-svn: 3029
2002-07-23 19:48:52 +00:00
Chris Lattner
d8c37e2e73
Merge the contents of ChangeAllocations.h into Scalar.h
...
llvm-svn: 3028
2002-07-23 19:37:38 +00:00
Chris Lattner
1c0863624d
Break part of Pass.h out into PassAnalysisSupport.h
...
Add PassSupport.h which contains code for Pass registration
llvm-svn: 3010
2002-07-23 17:59:55 +00:00
Chris Lattner
aa06815b2b
Allow comparison against null
...
llvm-svn: 3009
2002-07-23 17:59:02 +00:00
Chris Lattner
0caa0614f8
*** empty log message ***
...
llvm-svn: 3008
2002-07-23 17:58:44 +00:00
Chris Lattner
5cf6161e20
Pass creator requires a TargetData member
...
llvm-svn: 3007
2002-07-23 17:58:42 +00:00
Chris Lattner
a9de1268be
Regularize the Print*Passes so they have default ctors.
...
llvm-svn: 3006
2002-07-23 17:58:09 +00:00
Chris Lattner
585a05d786
Initial checkin
...
llvm-svn: 3005
2002-07-23 17:56:53 +00:00
Chris Lattner
64ea4b3a11
Add support for removing an option from a genericparser
...
llvm-svn: 2998
2002-07-23 17:15:09 +00:00
Chris Lattner
5c25ebd6f2
Change to avoid bug in GCC 3.0.4
...
llvm-svn: 2997
2002-07-23 00:44:37 +00:00
Chris Lattner
12672f6b14
initial checkin
...
llvm-svn: 2996
2002-07-23 00:17:55 +00:00
Chris Lattner
fcf29d460d
*** empty log message ***
...
llvm-svn: 2995
2002-07-23 00:17:22 +00:00
Chris Lattner
c9ecbc0fd0
Initial checkin
...
llvm-svn: 2994
2002-07-23 00:17:14 +00:00
Mehwish Nagda
48d84fb234
Moved to Reoptimizer/Mapping directory
...
llvm-svn: 2991
2002-07-22 22:06:56 +00:00
Chris Lattner
435788e8c3
Checkin CommandLine 2.0
...
llvm-svn: 2982
2002-07-22 02:07:59 +00:00
Anand Shukla
206dd8cd4e
changed first arg of parseBytecodeBuffer to unsigned char
...
llvm-svn: 2978
2002-07-21 09:31:59 +00:00
Anand Shukla
830bb08488
changed first arg og parseBytecodeBuffer to uchar
...
llvm-svn: 2977
2002-07-21 09:26:32 +00:00
Chris Lattner
fa81a79403
*** empty log message ***
...
llvm-svn: 2976
2002-07-20 08:20:00 +00:00
Chris Lattner
8e6b64dbe1
Check in the boost type_traits library, because it is now used by the CommandLine library.
...
llvm-svn: 2975
2002-07-20 08:19:52 +00:00
Chris Lattner
251a101494
Rename removeDeadNodes to removeTriviallyDeadNodes
...
Add new removeDeadNodes method
llvm-svn: 2968
2002-07-18 18:18:40 +00:00
Chris Lattner
9d5d6a8f94
Simplify saveOrigFunctionCalls
...
llvm-svn: 2967
2002-07-18 16:23:02 +00:00
Vikram S. Adve
a6647796e3
Add support for a top-down propagation pass.
...
Each DSGraph now keeps a list of pending callers that have not
been inlined into the function represented by that graph.
It also keeps a copy of the original call nodes before the BU pass
eliminates some of them.
llvm-svn: 2965
2002-07-18 16:12:08 +00:00
Chris Lattner
cc73590b11
* s/method/function
...
* BIG CHANGE: The root of the call "graph" is considered to be the external
node, not the "Root". This means that users using graph iterators like
df_begin() will start from the external node.
llvm-svn: 2957
2002-07-18 04:42:35 +00:00
Chris Lattner
5eaf38b681
First cut at implementing bottom up analysis
...
llvm-svn: 2944
2002-07-18 00:11:28 +00:00
Chris Lattner
4ad0749487
Make getelementptr ConstExpr take a vector of constants not values
...
llvm-svn: 2943
2002-07-18 00:11:08 +00:00
Chris Lattner
3abd9700fb
Fix prototype to make function.
...
llvm-svn: 2939
2002-07-17 21:34:20 +00:00
Mehwish Nagda
c2f7ac0eec
*** empty log message ***
...
llvm-svn: 2912
2002-07-15 23:56:27 +00:00
Vikram S. Adve
9c2c68687e
Ensure ConstExpr constants are unique.
...
llvm-svn: 2910
2002-07-15 18:20:50 +00:00
Vikram S. Adve
b54f48c9a7
Create a static version of Instruction::getOpcodeName(opCode) that
...
can be invoked with only an opcode (i.e., without an instruction).
Move all opCode->opCodeName translations there.
llvm-svn: 2892
2002-07-14 22:48:20 +00:00
Vikram S. Adve
79b72a8298
Added subclass ConstantExpr to represent expressions consructed from
...
constants using operators such as cast, getelementptr, add, shl, etc.
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr. This is why isConstantExpr() is needed.
llvm-svn: 2891
2002-07-14 22:47:54 +00:00
Vikram S. Adve
db83123c94
Add a couple of virtual functions to support subclass ConstantExpr.
...
Note that a ConstantExpr can be of any type, so classof() in most
other subclasses (that discriminate by type) have to check that it
is also not a ConstantExpr. This is why isConstantExpr() is needed.
llvm-svn: 2890
2002-07-14 22:46:32 +00:00
Anand Shukla
d2ebe872e1
initial version: for emitfuncs pass
...
llvm-svn: 2886
2002-07-12 20:28:22 +00:00
Chris Lattner
6fbdec3e5a
* Nodes now keep track of any global variables contained within them
...
llvm-svn: 2877
2002-07-11 20:30:18 +00:00
Anand Shukla
3d7a9691cc
added std:: to vector
...
llvm-svn: 2874
2002-07-11 00:16:28 +00:00
Chris Lattner
567a072523
New implementation of data structure analysis
...
This diff is completely meaningless because this is a replacement
implementation.
llvm-svn: 2872
2002-07-10 22:42:17 +00:00
Vikram S. Adve
8967349e85
Bug fix: cast (bool) has higher precedence than %... who knew!
...
llvm-svn: 2864
2002-07-10 21:51:46 +00:00
Vikram S. Adve
36b62ee33a
Add support for marking each operand as a %hh, %hm, %lm or %lo.
...
Represent previous bools and these ones with flags in a single byte
per operand.
llvm-svn: 2863
2002-07-10 21:50:57 +00:00
Vikram S. Adve
cd651d5577
Added a few more methods for creating instructions.
...
llvm-svn: 2862
2002-07-10 21:49:38 +00:00
Vikram S. Adve
47a8810964
Put caller-saving code *before* argument copying code!
...
(This file has a minor change required for this fix.)
llvm-svn: 2854
2002-07-10 21:30:17 +00:00
Vikram S. Adve
4543e3c252
Minor change in comments.
...
llvm-svn: 2853
2002-07-10 21:29:22 +00:00
Chris Lattner
23cfaec9ce
Allow specifying a module for context instead of a slot calculator directly
...
llvm-svn: 2851
2002-07-10 16:48:14 +00:00
Anand Shukla
b9a34f17ff
added std:: to hash_set
...
llvm-svn: 2846
2002-07-09 19:18:16 +00:00
Chris Lattner
bc68100d59
Include header in the compiler-neutral location
...
llvm-svn: 2843
2002-07-09 16:50:24 +00:00
Vikram S. Adve
bfd03d50ce
cpMem<->Reg functions now support CC registers (int and FP) correctly.
...
A scratch register has to be provided when needed to do the copy.
Also, cpMem<->Reg functions now return a vector of machine instructions.
Added several get{Class,Type} functions.
Suggest/Color methods may modify the MachineInstr (and always did),
so don't make that argument const!
llvm-svn: 2824
2002-07-08 22:44:14 +00:00
Vikram S. Adve
bacbe6b240
Interface to class MachineCodeForBasicBlock.
...
Moved here from MachineInstr.h to make it an annotation on BasicBlock.
llvm-svn: 2823
2002-07-08 22:40:34 +00:00
Vikram S. Adve
a110ccca19
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.
...
An (explicit or implicit) operand may now be both a def and a use.
Also add a set of regs used by each instruction.
dump() no longer takes an optional argument, which doesn't work in gdb.
llvm-svn: 2821
2002-07-08 22:38:45 +00:00
Vikram S. Adve
4d696efa99
Added two more helper functions for instruction creation.
...
llvm-svn: 2819
2002-07-08 22:33:45 +00:00
Vikram S. Adve
da5e272403
Moved MachineCodeForBB to be an annotation on BasicBlock.
...
llvm-svn: 2818
2002-07-08 22:31:11 +00:00
Anand Shukla
ffc5389151
Add new << to allow printing modules by reference.
...
llvm-svn: 2814
2002-07-03 16:52:15 +00:00
Chris Lattner
511bea239c
Fix comment
...
llvm-svn: 2803
2002-06-30 15:50:09 +00:00
Anand Shukla
5dbf11fc92
added include<iostream> for cerr
...
llvm-svn: 2800
2002-06-25 22:04:00 +00:00
Chris Lattner
e91a294e94
We must with with GCC 2.95 :(
...
llvm-svn: 2787
2002-06-25 20:33:28 +00:00
Anand Shukla
bddcd163a1
changes to make it compatible with 64bit gcc
...
llvm-svn: 2786
2002-06-25 20:22:25 +00:00
Anand Shukla
8132ad5667
Added setSuccessor() method to terminator instructions
...
llvm-svn: 2784
2002-06-25 20:17:40 +00:00
Chris Lattner
dfd421a7df
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner
cee706572b
*** empty log message ***
...
llvm-svn: 2777
2002-06-25 16:12:52 +00:00
Chris Lattner
fcd8e95495
Allow const bb's to be checked for containment in a loop
...
llvm-svn: 2754
2002-06-03 22:10:48 +00:00
Chris Lattner
7ec0950f3a
Simplify the interface to local dce and constprop
...
llvm-svn: 2750
2002-05-26 20:18:35 +00:00
Chris Lattner
e61bc07952
Convert RegClass::IsColorUsedArr from a dynamically allocated array to
...
a vector. This makes asserting on array bounds easier.
llvm-svn: 2731
2002-05-23 15:50:03 +00:00
Chris Lattner
ddd0665112
Add a new setSuccessor method to terminator instructions
...
llvm-svn: 2730
2002-05-23 15:48:41 +00:00
Chris Lattner
8d9046d031
Implement DataTypes.h in terms of inttypes.h
...
llvm-svn: 2729
2002-05-23 15:48:12 +00:00
Chris Lattner
07732a38b7
Avoid #including CommandLine.h
...
llvm-svn: 2710
2002-05-22 17:06:56 +00:00
Chris Lattner
7f8f0b5863
Implement a new command line option, -debug, which is meant to unify all of
...
the random debugging macros scattered throughout llvm.
The new DEBUG(x) macro should be used instead of special purpose debug macros.
llvm-svn: 2709
2002-05-22 17:06:20 +00:00
Chris Lattner
555163a0ab
Add ability to update existing variables with values read from the command line
...
to certain classes. This is nice because it means that in header files we can
just declare a value, and still have that value be set based on a command-line
argument. The difference is now that the #include of CommandLine.h does not
need to go into the header file as well.
llvm-svn: 2708
2002-05-22 17:03:05 +00:00
Chris Lattner
4b29ff417d
Simplify interface to ConstantFoldTerminator
...
llvm-svn: 2697
2002-05-21 20:04:50 +00:00
Chris Lattner
ae889c277a
Expose CFG simplification pass
...
llvm-svn: 2696
2002-05-21 20:04:15 +00:00
Chris Lattner
e56e490790
Cleanups, rename IsPowerOf2 to isPowerOf2
...
llvm-svn: 2662
2002-05-19 21:19:55 +00:00
Vikram S. Adve
5a71686624
Added log2 for log-base-2 and also modified IsPower2 to use it.
...
llvm-svn: 2653
2002-05-19 15:46:52 +00:00
Vikram S. Adve
45eb62b709
Added parameter IntRegSize for standard general-purpose register size.
...
llvm-svn: 2652
2002-05-19 15:44:07 +00:00
Vikram S. Adve
ee3fd3dda9
New function CreateSignExtensionInstructions.
...
Methods now take MachineCodeForInstruction& as an argument and record
temporary values in it directly, instead of return the temps.
Really simplifies callers.
llvm-svn: 2651
2002-05-19 15:43:31 +00:00
Vikram S. Adve
8261256950
Many functions that returned a single MachineInstr now take a
...
vector of MachineInstr* to return multiple ones.
llvm-svn: 2650
2002-05-19 15:42:21 +00:00
Vikram S. Adve
2552231a8c
Better interface to generating machine instr for common cases
...
(many places still need to be updated to use this interface).
llvm-svn: 2648
2002-05-19 15:40:41 +00:00
Vikram S. Adve
0cc9f53701
MachineInstr now inherits from Annotable.
...
llvm-svn: 2647
2002-05-19 15:39:59 +00:00
Vikram S. Adve
1f8badf623
Annotation class for MachineInstr.
...
llvm-svn: 2643
2002-05-19 15:30:21 +00:00
Vikram S. Adve
a5968c518f
Add integer register size field.
...
Make all sizes and offsets uint64_t instead of uint.
Fixed GetIndexedOffset to handle mixed array and struct indices.
llvm-svn: 2641
2002-05-19 15:28:02 +00:00
Chris Lattner
9d013ca535
Invoke inst has side effects!
...
llvm-svn: 2619
2002-05-14 04:20:25 +00:00
Chris Lattner
2735171cf5
Add method to check to see if two _Instructions_ dominate each other
...
llvm-svn: 2616
2002-05-13 22:03:16 +00:00
Chris Lattner
5a85ea20e5
Add prototype for LICM pass
...
llvm-svn: 2612
2002-05-10 22:44:16 +00:00
Chris Lattner
708b869951
Make sure to call the derived visit versions from the ranged iterator.
...
llvm-svn: 2607
2002-05-10 22:21:05 +00:00
Chris Lattner
ff9f677248
Add explicit abort so optimized build knows that the function does not return
...
llvm-svn: 2605
2002-05-10 18:53:55 +00:00
Chris Lattner
625396c63a
Add an explicit abort so that the optimized build knows the function does
...
not return.
llvm-svn: 2604
2002-05-10 18:53:21 +00:00
Chris Lattner
a9e4b660ff
Initial checkin of Statistic class
...
llvm-svn: 2599
2002-05-10 15:36:56 +00:00
Chris Lattner
ca6c5955f4
remove deprecated getInstType() method
...
llvm-svn: 2595
2002-05-10 13:28:47 +00:00
Chris Lattner
93ba8ba0a9
Add prototype for the PiNodeInserter pass
...
llvm-svn: 2592
2002-05-10 05:40:37 +00:00
Chris Lattner
1212eabe1f
Add expr reassociation pass prototype
...
llvm-svn: 2558
2002-05-08 22:19:01 +00:00
Sumant Kowshik
64cf4b95c9
*** empty log message ***
...
llvm-svn: 2552
2002-05-08 18:09:58 +00:00
Chris Lattner
abf9a50ee5
Spell aggressive right
...
llvm-svn: 2549
2002-05-07 22:12:52 +00:00
Chris Lattner
2573cd6d56
Fix misspelling
...
llvm-svn: 2548
2002-05-07 22:12:36 +00:00
Chris Lattner
5b99f25879
These files are supersumed by include/llvm/Transforms/Scalar.h
...
llvm-svn: 2534
2002-05-07 19:38:42 +00:00
Chris Lattner
bb3896eed3
New header file to replace all of the Scalar/*.h files.
...
llvm-svn: 2533
2002-05-07 19:37:18 +00:00
Chris Lattner
d5b2b2afa5
Checkin headers for Utils library
...
llvm-svn: 2528
2002-05-07 18:52:48 +00:00
Chris Lattner
d365f9465f
Cleanup implementation a bit + comments
...
llvm-svn: 2527
2002-05-07 18:51:44 +00:00
Chris Lattner
186adba046
Update header after moving file
...
llvm-svn: 2522
2002-05-07 18:34:57 +00:00
Chris Lattner
51d7a923f5
Remove long dead file
...
llvm-svn: 2521
2002-05-07 18:20:10 +00:00
Chris Lattner
0b8c2d8b29
Factor code out to the Transform Utils library
...
llvm-svn: 2519
2002-05-07 18:18:00 +00:00
Chris Lattner
bd5095f570
Add support for passes to announce that they only depend on the CFG of a
...
function. This is crude but effective
llvm-svn: 2505
2002-05-06 19:31:16 +00:00
Chris Lattner
7d13e2f392
Move a bunch of code to a .cpp file, don't #include Instruction.h
...
llvm-svn: 2499
2002-05-06 17:54:50 +00:00
Chris Lattner
3bab8f6123
* Add getPrimitiveSize method
...
* Remove isPointerType, isMethodType, etc... methods. Use isa<> instead
* Added specialization of isa for pointer types so that DerivedTypes.h doesn't
have to be #included to use isa<PointerType>(..)
llvm-svn: 2483
2002-05-06 16:12:53 +00:00
Chris Lattner
07c6629280
Void and Label values cannot be acted on directly so they have zero size
...
llvm-svn: 2481
2002-05-06 15:10:15 +00:00
Chris Lattner
d12eac0b1b
Implement constant propogation of shift instructions
...
llvm-svn: 2471
2002-05-06 03:01:37 +00:00
Chris Lattner
2d5135d9bd
Add a range remove method
...
llvm-svn: 2468
2002-05-06 02:59:52 +00:00
Chris Lattner
a0965456d0
Implement remainder
...
llvm-svn: 2463
2002-05-03 21:40:37 +00:00
Chris Lattner
2716e9868c
Make the range insert operation return an iterator, even though the STL
...
range insert doesn't
llvm-svn: 2413
2002-04-29 21:23:30 +00:00
Chris Lattner
5d17e49ad5
Remove unused files: This is the old induction varaible cannonicalization
...
pass built on top of interval analysis
llvm-svn: 2411
2002-04-29 20:18:00 +00:00
Chris Lattner
2a1f5e79c3
Change to allow iMemory.h to avoid including DerivedTypes.h
...
llvm-svn: 2403
2002-04-29 18:46:22 +00:00
Chris Lattner
294b5915d8
Remove analysis namespace
...
llvm-svn: 2399
2002-04-29 18:12:52 +00:00
Chris Lattner
96e0c48175
Eliminate duplicate or unneccesary #include's
...
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner
589debc4ba
Add new optional getPassName() virtual function that a Pass can override
...
to make debugging output a lot nicer.
llvm-svn: 2395
2002-04-29 14:57:45 +00:00
Chris Lattner
694285448c
Stub functions for timing support
...
llvm-svn: 2393
2002-04-29 04:02:50 +00:00
Chris Lattner
74ccd0f755
Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFG
...
llvm-svn: 2385
2002-04-28 21:26:51 +00:00
Chris Lattner
c74c58800a
Move FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()
...
llvm-svn: 2384
2002-04-28 21:25:41 +00:00
Chris Lattner
c64ef6740a
* Add a stub to FunctionPass so that subclasses can declare that they do not
...
modify the CFG. It currently does nothing, but will in the future.
* Changes to make the public PassManager.h be MUCH smaller, and devoid of
implementation details. Now PassManager is just a Pimpl class that wraps
PassManagerT<Module>, but lib/VMCore/Pass.cpp is now the only class that
has to #include PassManagerT.h
llvm-svn: 2383
2002-04-28 20:46:05 +00:00
Chris Lattner
884c3d4899
Use forward decl instead of #include
...
llvm-svn: 2380
2002-04-28 20:40:25 +00:00
Chris Lattner
321a8cf4ba
Split ConstantVals.h into Constant.h and Constants.h
...
llvm-svn: 2378
2002-04-28 19:55:58 +00:00
Chris Lattner
fc52b111ac
Fix two FIXME's
...
llvm-svn: 2377
2002-04-28 19:49:58 +00:00
Chris Lattner
f043c4baac
Remove all contents of the cfg namespace to the global namespace
...
llvm-svn: 2369
2002-04-28 16:19:42 +00:00
Chris Lattner
82ccff25fa
Remove obsolete namespace from example
...
llvm-svn: 2368
2002-04-28 16:18:32 +00:00
Chris Lattner
23e713d49d
Initial checkin of new "Internalize" pass for GCCLD
...
llvm-svn: 2362
2002-04-28 05:43:27 +00:00
Chris Lattner
e87fe3291c
SymTabValue class incorporated into Function and Module classes.
...
llvm-svn: 2359
2002-04-28 04:56:59 +00:00
Chris Lattner
597f27fd29
Include an operator<<, to print modules
...
llvm-svn: 2358
2002-04-28 04:56:28 +00:00
Chris Lattner
67649f6aec
Remove forward def'ns that are already in Value.h
...
Do not support output of Modules directly
llvm-svn: 2349
2002-04-28 04:47:33 +00:00
Chris Lattner
8a53fbd0d0
s/Method/Function
...
llvm-svn: 2348
2002-04-28 04:47:06 +00:00
Chris Lattner
d8cb4cfb30
Module's are no longer Value's.
...
llvm-svn: 2347
2002-04-28 04:46:29 +00:00
Chris Lattner
352dadc1d1
The interesting contents of SymTabValue were incorporated into Function
...
llvm-svn: 2346
2002-04-28 04:46:07 +00:00
Chris Lattner
24a00025ac
* Module's are no longer Value's
...
* Incorporate SymTabValue contents into the Module class
llvm-svn: 2345
2002-04-28 04:45:48 +00:00
Chris Lattner
4f33b2e3ed
Add a forward defn for Module since it's no longer in Value.h
...
llvm-svn: 2344
2002-04-28 04:45:05 +00:00
Chris Lattner
d5d0313e9d
* Incorporate the functionality of SymTabValue into Function
...
* s/Method/Function
llvm-svn: 2343
2002-04-28 04:44:40 +00:00
Chris Lattner
0bd57e6e99
Initial checkin of simple&fast SSA based GCSE algorithm
...
llvm-svn: 2338
2002-04-28 00:47:11 +00:00
Chris Lattner
741453dd60
Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not
...
const BasicBlocks
llvm-svn: 2337
2002-04-28 00:15:57 +00:00
Chris Lattner
2f0ee1833d
s/Method/Function
...
llvm-svn: 2336
2002-04-27 07:27:19 +00:00
Chris Lattner
bc2e4fd4cf
s/Method/Function in classname
...
llvm-svn: 2335
2002-04-27 06:59:56 +00:00
Chris Lattner
048c4eaafe
Remove old file that will never be used
...
llvm-svn: 2334
2002-04-27 06:57:52 +00:00
Chris Lattner
536cf1b13f
* Rename MethodPass class to FunctionPass
...
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
- Method is now const
- It now takes one AnalysisUsage object to fill in instead of 3 vectors
to fill in
- Pass's now specify which other passes they _preserve_ not which ones
they modify (be conservative!)
- A pass can specify that it preserves all analyses (because it never
modifies the underlying program)
* s/Method/Function/g in other random places as well
llvm-svn: 2333
2002-04-27 06:56:12 +00:00
Chris Lattner
16601b03cf
Change the semantics of getSuccessor to FAIL if an out of range successor # is attempted.
...
llvm-svn: 2330
2002-04-27 03:14:12 +00:00
Chris Lattner
ff8530eabd
Support array allocations
...
llvm-svn: 2326
2002-04-27 02:27:11 +00:00
Chris Lattner
c5db0cc189
Rename getNullConstant to getNullValue
...
llvm-svn: 2321
2002-04-27 02:22:42 +00:00
Vikram S. Adve
5c851091e5
Added functions to compute the offset of a given incoming or outgoing
...
argument. These are no longer allocated as they are discovered.
llvm-svn: 2320
2002-04-25 04:48:54 +00:00
Vikram S. Adve
ae709134c9
Optional args are no longer allocated as they are discovered.
...
(This can be improved to avoid making the initial pass over the method.)
Also, ensure automatic vars and reg. spills areas are not extended
if their sizes are used for computing some other offset.
llvm-svn: 2319
2002-04-25 04:47:26 +00:00
Chris Lattner
006a45af20
Changes to make print pass work!
...
llvm-svn: 2306
2002-04-18 22:11:12 +00:00
Chris Lattner
01ad1e2383
New api for signal handling for LLVM tools
...
llvm-svn: 2301
2002-04-18 19:53:34 +00:00
Chris Lattner
bfad09f50d
Remove getStrValue method from Constant implementations. The AssemblyWriter
...
now knows how to write out a constant, not the constants themselves. This is
fixed due to the move of the AsmWriter to the VMcore library.
llvm-svn: 2297
2002-04-18 18:51:39 +00:00
Chris Lattner
3cdb370e13
* Add a comment to the header giving a breif overview of how to return a
...
value from a visit function
* Define a (file local) DELEGATE macro to make the code easier to read/maintain
* Define per-opcode delegation functions so that users can override specific
instances of BinaryOperator for example.
llvm-svn: 2290
2002-04-18 16:16:16 +00:00
Chris Lattner
fea39ddbf3
* Make dtor virtual
...
* Add a new defaulted argument that allows the instruction visitation
visitors to return a non-void value.
llvm-svn: 2289
2002-04-18 15:46:40 +00:00
Chris Lattner
e47ac70405
* StoreInst's shouldn't take names (they are _always_ void type)
...
* Remove two methods that are not used
llvm-svn: 2281
2002-04-18 14:42:27 +00:00
Chris Lattner
6830bf4c34
Make data structure acurately get ALL edges, even loads of null fields of
...
nodes that are not shadow nodes
llvm-svn: 2273
2002-04-17 03:24:47 +00:00
Chris Lattner
407c7385f8
Remove the concept of a critical shadow node
...
llvm-svn: 2265
2002-04-16 20:39:23 +00:00
Chris Lattner
e673eb0d73
* Eliminate ArgDSNode's completely, rely now on Scalar map
...
llvm-svn: 2256
2002-04-16 03:41:22 +00:00
Chris Lattner
bd8fdf2d57
* s/Method/Function
...
* Add/allow callbacks for module,function, & basic block visiting
llvm-svn: 2250
2002-04-15 19:32:36 +00:00
Chris Lattner
65dd63d712
s/Method/Function
...
llvm-svn: 2246
2002-04-14 06:14:15 +00:00
Chris Lattner
92b32c82bf
Add Module::getTypeName
...
llvm-svn: 2237
2002-04-13 18:58:33 +00:00
Chris Lattner
86083cf0be
Split the CleanupGCCOutput pass into two passes, and add real life actual
...
documentation on when they do.
llvm-svn: 2222
2002-04-10 20:31:22 +00:00
Chris Lattner
6bad210fa6
Allow a pass to obtain an analysis result for updating.
...
llvm-svn: 2221
2002-04-10 20:30:44 +00:00
Chris Lattner
4434e03eb6
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
llvm-svn: 2217
2002-04-09 19:59:31 +00:00
Chris Lattner
a21d26e9ea
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
llvm-svn: 2210
2002-04-09 19:36:56 +00:00
Chris Lattner
cdc0946863
Use explicit .get() calls to avoid having to #include Function.h
...
llvm-svn: 2208
2002-04-09 19:07:44 +00:00
Chris Lattner
1b65d5368f
Use .get() explicitly and add a few extra casts to avoid 2 #includes
...
llvm-svn: 2204
2002-04-09 18:36:05 +00:00
Chris Lattner
8d90bff39b
Use opaque decl instead of #include
...
llvm-svn: 2203
2002-04-09 18:35:38 +00:00
Chris Lattner
15d1c69edd
Rewrite MachineCodeForBasicBlock in terms of containment rather than
...
inheritance.
llvm-svn: 2200
2002-04-09 18:00:49 +00:00
Chris Lattner
0448b61465
Free memory when done with it.
...
llvm-svn: 2198
2002-04-09 15:04:37 +00:00
Chris Lattner
0a8a112014
Don't leak all of the Loop objects created...
...
llvm-svn: 2196
2002-04-09 05:43:19 +00:00
Chris Lattner
259b748661
Move the InsertPrologEpilogCode class out of the Sparc.cpp file into the
...
new PrologEpilogCodeInserter.cpp file, and include the bodies of the
GetInstructionsFor(Prolog|Epilog) functions from SparcInstrSelection.cpp
into the class. This eliminates the need for a static global vector of
instructions and a class of errors that is really unneccesary.
llvm-svn: 2194
2002-04-09 05:20:15 +00:00
Chris Lattner
e7a2ce6e4e
Don't leak memory like a seive
...
llvm-svn: 2185
2002-04-08 23:09:07 +00:00
Chris Lattner
c8166cec07
s/Method/Function
...
llvm-svn: 2180
2002-04-08 22:03:57 +00:00
Chris Lattner
6bdd1d2e3f
* Add virtual print methods
...
* s/Method/Function
llvm-svn: 2172
2002-04-08 21:56:02 +00:00
Chris Lattner
16d4d12f80
* Trim #includes
...
* Remove WriteToAssembly functions from interface
* Move operator<< definition to only allow top level operator<< on Value*'s.
Defined in Value.h
This header file is greatly deemphasized by these changes. Now it is only
used if custom printing through WriteTypeSymbolic or WriteAsOperand is needed.
llvm-svn: 2171
2002-04-08 21:55:12 +00:00
Chris Lattner
e84fbd7f37
s/Method/Function
...
Trim #includes
llvm-svn: 2170
2002-04-08 21:52:58 +00:00
Chris Lattner
ada9cc6352
Trim #includes
...
llvm-svn: 2169
2002-04-08 21:52:32 +00:00
Chris Lattner
c49ebac684
* Move casting stuff out to Support/Casting.h
...
* Add top level virtual print function, disallows instantiating Value's
directly.
* Provide operator<< for values here, instead of in Assembly/Writer.h
llvm-svn: 2168
2002-04-08 21:51:32 +00:00
Chris Lattner
cd1e9db9ad
* Fix comment
...
* Add printing support
* add isFloatingPoint method
* Remove isXXXType() methods for non-derived types
llvm-svn: 2167
2002-04-08 21:50:15 +00:00
Chris Lattner
eb2cfb9f3b
Pull casting operators out of Value.h
...
llvm-svn: 2166
2002-04-08 21:43:56 +00:00
Chris Lattner
5bcb2e2b26
Minor change to reflect that ConstantHandling is now part of VMCore
...
llvm-svn: 2163
2002-04-08 20:15:12 +00:00
Chris Lattner
137fa92dce
* Move include/llvm/Analysis/SlotCalculator.h to include/llvm/SlotCalculator.h
...
because the slot calculator is already part of the VMCore library.
* Rename incorporateMethod and purgeMethod to *Function
llvm-svn: 2154
2002-04-07 22:49:37 +00:00
Chris Lattner
1cce117059
VCG output support removed because it was broken and will never be used.
...
llvm-svn: 2146
2002-04-07 22:30:17 +00:00
Chris Lattner
bc15ae64dd
Change references to the Method class to be references to the Function
...
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
llvm-svn: 2144
2002-04-07 20:49:59 +00:00
Chris Lattner
96ac1e9960
Source base has been completely changed over to use Function instead of Method, this file is not obsolete.
...
llvm-svn: 2143
2002-04-07 20:46:56 +00:00
Chris Lattner
9bca7892fc
Add new function utohexstr.
...
llvm-svn: 2140
2002-04-07 08:36:19 +00:00
Chris Lattner
e7b5d159c5
Implement constant propogation of multiply and divide instructions!!
...
llvm-svn: 2134
2002-04-07 08:10:14 +00:00
Chris Lattner
a1dce398bf
* Delete getNumAbstractTypeUsers method
...
* Move addAbstractTypeUser method to Type.cpp
llvm-svn: 2120
2002-04-05 22:21:08 +00:00
Chris Lattner
8afff0c29a
s/MethodType/FunctionType
...
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner
e395bc7d85
Remove backwards compatibility code
...
llvm-svn: 2114
2002-04-04 22:04:45 +00:00
Chris Lattner
0901828113
Deparameterize PATypeHolder
...
llvm-svn: 2099
2002-04-04 19:20:18 +00:00
Chris Lattner
f31c01714f
Add method to get # nodes in the graph
...
llvm-svn: 2098
2002-04-04 19:20:00 +00:00
Chris Lattner
4cf90e67f8
Make the release build work
...
llvm-svn: 2097
2002-04-04 19:19:27 +00:00
Chris Lattner
78cfad6270
Fix the release build
...
llvm-svn: 2096
2002-04-04 19:18:17 +00:00
Chris Lattner
e391cdd3c1
* Add dump() virtual function to AbstractType user to help track down bugs
...
* PATypeHolder is now a nontemplated class, because it was (almost) only
ever instantiated with 'Type' as the parameter.
llvm-svn: 2095
2002-04-04 19:18:00 +00:00
Chris Lattner
0f0829f28d
Add a new replaceWith method useful for replacing instructions
...
llvm-svn: 2088
2002-04-01 17:52:16 +00:00
Chris Lattner
ce662b0ee9
Shadow nodes don't need to know their explicit parent, they just need to
...
know what type to be.
llvm-svn: 2080
2002-04-01 00:12:36 +00:00
Vikram S. Adve
6ac730799c
Add method getCallInstIndirectAddrVal() to add call interference
...
for this value.
llvm-svn: 2072
2002-03-31 18:58:49 +00:00
Vikram S. Adve
c2c33ba3fd
Include temp. values when computing max. size of stack frame!
...
llvm-svn: 2070
2002-03-31 18:57:49 +00:00
Chris Lattner
0a70c8a163
* Allow access to DSNode iterator as DSNode::iterator/begin/end
...
* Add debugging "dump" method to DSNode
* Fix bugs in DSNode iterator
llvm-svn: 2060
2002-03-31 07:11:20 +00:00
Chris Lattner
c3b299b9ba
Initial checkin of file:
...
Define an iterator to operate over data structure outgoing links and
graph implementation so generic graph functions can be used.
llvm-svn: 2057
2002-03-30 09:13:23 +00:00
Chris Lattner
06ffc5b249
Add accessors and a method to get all the outgoing links for ALL nodes
...
llvm-svn: 2055
2002-03-30 09:07:51 +00:00
Chris Lattner
fb50c702c4
Add an accessor
...
llvm-svn: 2054
2002-03-30 04:02:41 +00:00
Chris Lattner
289f7690fe
Add a hook to allow the datastructure to keep naturally up to date, even
...
though it's not entirely fleshed out.
llvm-svn: 2051
2002-03-29 21:23:29 +00:00
Chris Lattner
c8291c9eb1
Add more accessors
...
llvm-svn: 2047
2002-03-29 19:04:19 +00:00
Chris Lattner
4e65b19a54
Checkin new useful routine
...
llvm-svn: 2046
2002-03-29 19:04:08 +00:00
Chris Lattner
4e79dc8099
Rename getCalledMethod to getCalledFunction
...
llvm-svn: 2042
2002-03-29 17:08:01 +00:00
Chris Lattner
01affcf43e
Remove getCalledMethod. Use getCalledFunction instead
...
llvm-svn: 2041
2002-03-29 17:07:34 +00:00
Chris Lattner
18cc6a9277
Add an insert method to VAlueHolder to allow batch insertion
...
llvm-svn: 2038
2002-03-29 05:49:37 +00:00
Chris Lattner
474495e742
Add new addTypeName method to Module class
...
llvm-svn: 2037
2002-03-29 04:48:40 +00:00
Chris Lattner
8c98acc07f
s/Method/Function
...
llvm-svn: 2035
2002-03-29 03:51:11 +00:00
Chris Lattner
084601e6f4
s/Method/Function
...
llvm-svn: 2034
2002-03-29 03:44:36 +00:00
Chris Lattner
ca2c7dbf7c
Expose more information to clients
...
llvm-svn: 2027
2002-03-29 03:35:30 +00:00
Chris Lattner
33ff5dc7e7
Add getOrInsertFunction and getFunction methods to Module. This simplifies
...
some code in the transformations.
llvm-svn: 2026
2002-03-29 03:32:29 +00:00
Chris Lattner
0cc345f1d3
Add #define for MethodType
...
llvm-svn: 2025
2002-03-29 03:32:00 +00:00
Chris Lattner
597198838d
s/Method/Function/
...
llvm-svn: 2024
2002-03-29 03:30:59 +00:00
Chris Lattner
4823b956bc
Rename MethodType to FunctionType, provide a #define
...
llvm-svn: 2023
2002-03-29 03:15:32 +00:00
Chris Lattner
ab9cc61ceb
Remove the reduceApply functions they are obsolete things from the days before
...
we had a reasonable pass system
llvm-svn: 2022
2002-03-28 22:49:49 +00:00
Chris Lattner
cab0ce8244
Implement getEscapingAllocations & getNonEscapingAllocations
...
llvm-svn: 2021
2002-03-28 19:33:00 +00:00
Chris Lattner
2f9f87a984
* Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes
...
to reflect the fact that they actually operate on arbitrary nodes
* Clean up public interface of FunctionDSGraph
* add getEscapingAllocations & getNonEscapingAllocations
llvm-svn: 2019
2002-03-28 19:15:38 +00:00
Chris Lattner
9f9685197c
New file for new pass
...
llvm-svn: 2012
2002-03-28 18:01:22 +00:00
Chris Lattner
4054edc567
* Define some operators on PointerVal and PVS's
...
* Nodes can determine whether they are foldable with another node
* Rename NewDSNode to AllocDSNode
* The Function graph breaks up all of the node types into individual
vectors to alloc fast access when you are looking for a particular type
of node. Simplifies much code.
llvm-svn: 2009
2002-03-28 17:48:41 +00:00
Cameron Buschardt
6ca2f4e859
Rename constructor function
...
llvm-svn: 2006
2002-03-27 23:27:45 +00:00
Chris Lattner
4defbc34ff
* Add a nice utility method to DSNode
...
* Export interface to tell whether an alloc node represent a malloc or alloca
* Add the concept of a "critical" shadow node
llvm-svn: 2000
2002-03-27 19:41:45 +00:00
Chris Lattner
e01e339e93
Allow isa<DSNode>(..)
...
Simplification routines return true on change
llvm-svn: 1996
2002-03-27 00:52:57 +00:00
Chris Lattner
1026adab40
New header file for datastructure analysis
...
llvm-svn: 1993
2002-03-26 22:38:45 +00:00
Chris Lattner
fecabeab3c
Change uses of Method to Function
...
Change uses of methodArgument to FunctionArgument
llvm-svn: 1988
2002-03-26 17:49:55 +00:00
Chris Lattner
5295e0fdcc
Remove unneccesary forward declarations for classes
...
llvm-svn: 1987
2002-03-26 17:49:00 +00:00
Chris Lattner
a874026838
Transform uses of Method into uses of Function.
...
Rename MethodArgument to FunctionArgument
Fix some _really_ out of date comments
llvm-svn: 1986
2002-03-26 17:48:08 +00:00
Chris Lattner
9e84a283e3
Allow clients to use FunctionType as well as MethodType for now
...
llvm-svn: 1985
2002-03-26 17:46:41 +00:00
Vikram S. Adve
9722a4b6e9
Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
...
llvm-svn: 1980
2002-03-24 03:58:02 +00:00
Vikram S. Adve
0a68a60e95
Fix padding when allocating local variables on stack.
...
llvm-svn: 1979
2002-03-24 03:57:38 +00:00
Vikram S. Adve
aaad217cc1
Add methods to support type inquiry. Rename TmpInstruction values.
...
llvm-svn: 1978
2002-03-24 03:56:55 +00:00
Vikram S. Adve
463af87e8c
Change treeRoots data structure to make enumeration deterministic.
...
Also, add a flag to marked nodes that do not need code because they
have been folded into the user (parent in the BURG tree).
llvm-svn: 1963
2002-03-24 03:25:17 +00:00
Vikram S. Adve
1f5e8f93cc
Major overhaul to support arbitrary mixed array and structure indices.
...
Also moved to the Scalar/ directory and renamed to "MultiDim".
llvm-svn: 1961
2002-03-24 03:21:18 +00:00
Chris Lattner
c481e92886
Rename Method to Function
...
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner
6298cccfb9
Remove extranous forward decl
...
llvm-svn: 1956
2002-03-23 22:48:21 +00:00
Chris Lattner
418a519513
Remove unneccesary forward definitions
...
llvm-svn: 1955
2002-03-23 22:48:07 +00:00
Chris Lattner
9bb81deeb2
Add transition header file
...
llvm-svn: 1954
2002-03-23 22:47:43 +00:00
Chris Lattner
6cfb9cf484
Update documentation, rename Method to Function, move typedef to Value.h for now.
...
llvm-svn: 1953
2002-03-23 22:47:28 +00:00
Chris Lattner
e57136e0bf
Change Method to Function
...
llvm-svn: 1952
2002-03-23 22:46:51 +00:00
Chris Lattner
1ff9888023
Add transition typedef to Function
...
llvm-svn: 1951
2002-03-23 21:59:53 +00:00
Vikram S. Adve
d0e5520726
New pass to convert Convert multi-dimensional
...
array references into 1-D references.
llvm-svn: 1950
2002-03-23 20:46:18 +00:00
Vikram S. Adve
cae64b9e24
Moved to Scalar/ directory.
...
llvm-svn: 1949
2002-03-23 20:44:37 +00:00
Chris Lattner
e8057176ec
* Make AllocationInst ctor protected
...
* Move AllocationInst ctor to iMemory.cpp
* AllocationInst's always have one operand, even if it is a uint 1
llvm-svn: 1938
2002-03-21 22:37:01 +00:00
Chris Lattner
7b3dc0948b
Remove a misguided API extension
...
llvm-svn: 1926
2002-03-21 05:46:43 +00:00
Chris Lattner
e3bca2be3b
Allow implementation of all HANDLE_*_INST macros at once by defining HANDLE_INST
...
llvm-svn: 1919
2002-03-19 05:51:18 +00:00
Vikram S. Adve
2587f1aca7
New pass to convert Convert multi-dimensional
...
array references into 1-D references.
llvm-svn: 1918
2002-03-19 02:10:34 +00:00
Vikram S. Adve
aae5fcc0ca
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
llvm-svn: 1917
2002-03-19 00:59:08 +00:00
Chris Lattner
456d7bea78
Initial checkin of InstVisitor class
...
llvm-svn: 1916
2002-03-18 19:07:42 +00:00
Chris Lattner
4af1704877
Add isa,cast,dyncast support for AllocationInst.
...
llvm-svn: 1915
2002-03-18 05:00:51 +00:00
Vikram S. Adve
6ea96e596c
Added function computeOffsetforLocalVar to check how big the
...
offset-from-FP will be before allocating space for a local variable.
llvm-svn: 1900
2002-03-18 03:23:29 +00:00
Vikram S. Adve
abd6592e16
Use vector for machine instructions in GetInstructionsByRule.
...
llvm-svn: 1899
2002-03-18 03:20:46 +00:00
Vikram S. Adve
6e25a66e75
Added machine-independent value for INVALID_MACHINE_OPCODE.
...
Just cosmetic changes otherwise.
llvm-svn: 1898
2002-03-18 03:19:38 +00:00
Vikram S. Adve
4d3248ddc4
Add function getRegClassIDOfType.
...
getRegClassIDOfValue is now just a wrapper around this.
llvm-svn: 1897
2002-03-18 03:18:28 +00:00
Vikram S. Adve
778410c47a
Bug fix in setting CC register.
...
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.
llvm-svn: 1894
2002-03-18 03:10:17 +00:00
Chris Lattner
4f4609a284
Convert the top line of the header from .cpp style to .h style.
...
llvm-svn: 1884
2002-03-17 21:16:22 +00:00
Chris Lattner
889b1e5b00
Fix bug: test/Regression/Other/2002-03-11-ConstPropCrash.ll
...
llvm-svn: 1858
2002-03-11 22:11:07 +00:00
Chris Lattner
b44f81b987
* Add new method localLookup
...
* SymbolTable::remove(Value *N) checks to see if we are internally
inconsistent before looking for a type plane (caused a crash)
* insertEntry now does a local lookup instead of a global lookup, which was
causing an infinite loop in the renamer logic.
* Added assertions to make sure stuff stays happy
* Now the linker correctly links the SPECINT2000 mcf benchmark
llvm-svn: 1840
2002-03-08 20:26:17 +00:00
Chris Lattner
e7204f3c24
Fix typo in comment
...
llvm-svn: 1834
2002-03-08 18:38:08 +00:00
Chris Lattner
0f0ed63279
Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll
...
llvm-svn: 1828
2002-03-06 20:19:35 +00:00
Chris Lattner
5cea52a4d5
Move callgraph printing out of writer.h into callgraph.h
...
llvm-svn: 1824
2002-03-06 17:59:45 +00:00
Chris Lattner
4830f16b6e
Pull Callgraph out of the cfg namespace
...
llvm-svn: 1821
2002-03-06 17:39:28 +00:00
Chris Lattner
962e012ad5
Take CallGraph out of the CFG namespace. It has nothing to do with CFGs
...
llvm-svn: 1820
2002-03-06 17:16:43 +00:00
Chris Lattner
e2383e8592
Change over to use new style pass mechanism, now passes only expose small
...
creation functions in their public header file, unless they can help it.
llvm-svn: 1816
2002-02-26 21:46:54 +00:00
Chris Lattner
3ca03295c4
Expose verifier for method and module, and accept constant structures
...
llvm-svn: 1814
2002-02-26 21:38:48 +00:00
Chris Lattner
1b9b843452
Move ProfilePaths class into ProfilePaths library, only expose a creation function
...
llvm-svn: 1812
2002-02-26 20:04:59 +00:00
Anand Shukla
47588b8119
Initial check in of header file for profile-paths pass
...
llvm-svn: 1801
2002-02-26 18:43:03 +00:00
Chris Lattner
b10862d793
Make it compile with GCC 3.0.4
...
llvm-svn: 1786
2002-02-24 23:01:21 +00:00
Chris Lattner
5ece03aed8
Genericize the ReversePostOrderIterator.
...
llvm-svn: 1785
2002-02-24 21:48:59 +00:00
Chris Lattner
9942a79fcd
Modernize verifier interface
...
llvm-svn: 1780
2002-02-20 17:54:35 +00:00
Chris Lattner
aa07d741cb
Fix isArrayAllocation() to be correct
...
llvm-svn: 1779
2002-02-19 21:24:17 +00:00
Chris Lattner
650f6653a6
Minor cleanups I missed
...
llvm-svn: 1778
2002-02-19 19:36:56 +00:00
Chris Lattner
780a3ae146
These constructors are for internal use only. These should have been
...
protected a long time ago :)
llvm-svn: 1777
2002-02-19 19:22:45 +00:00
Chris Lattner
34bdf4dda4
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
llvm-svn: 1749
2002-02-12 22:35:32 +00:00
Chris Lattner
c88d936415
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
llvm-svn: 1748
2002-02-12 22:35:27 +00:00
Chris Lattner
e0aa81ad1b
Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
llvm-svn: 1747
2002-02-12 22:35:06 +00:00
Chris Lattner
3a1bc64866
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
llvm-svn: 1745
2002-02-12 21:04:35 +00:00
Chris Lattner
a4bf6af614
* Move BasicBlock and Method graph stuff to new "llvm/Support/CFG.h" file
...
* Move Method::inst_* to new "llvm/Support/InstIterator.h" file
* inst_iterator no longer permits resync'ing
llvm-svn: 1744
2002-02-12 21:02:53 +00:00
Chris Lattner
bde317b67d
* Move BasicBlock and Method graph stuff to new "llvm/Support/CFG.h" file
...
* Move Method::inst_* to new "llvm/Support/InstIterator.h" file
* Method.h no longer #includes BasicBlock.h
llvm-svn: 1743
2002-02-12 21:02:38 +00:00
Chris Lattner
326b548cd4
Initial checkin of new memory -> register promotion pass
...
llvm-svn: 1739
2002-02-12 17:16:22 +00:00
Chris Lattner
3b3ee75819
Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.
...
llvm-svn: 1721
2002-02-05 06:52:25 +00:00
Chris Lattner
e282c0b592
Convert operand iterator over to work like an STL iterator
...
llvm-svn: 1720
2002-02-05 06:02:59 +00:00
Chris Lattner
5337fbec40
Minor change: Methods that return ValueSet's that are guaranteed to be valid
...
return references instead of pointers.
llvm-svn: 1719
2002-02-05 04:20:12 +00:00
Chris Lattner
c77877fb46
Remove generic routines to Support/SetOperations.h
...
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
ad196575cc
New Support file for operations on set like objects
...
llvm-svn: 1714
2002-02-05 03:35:10 +00:00
Chris Lattner
6c0cbc3009
Remove empty files
...
llvm-svn: 1713
2002-02-05 02:52:53 +00:00
Chris Lattner
dc3aec7a90
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
...
function in the one .cpp file that uses it. Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
templates that will eventually be moved to Support.
llvm-svn: 1711
2002-02-05 02:51:01 +00:00
Chris Lattner
a8170f0944
* Code Cleanups
...
* Introduce RAV to allow stream I/O instead of using printValue
llvm-svn: 1710
2002-02-05 01:43:49 +00:00
Chris Lattner
80c1109e8e
Remove empty file
...
llvm-svn: 1708
2002-02-05 00:35:59 +00:00
Chris Lattner
1181768743
* Big cleanups.
...
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
llvm-svn: 1705
2002-02-05 00:33:19 +00:00
Chris Lattner
62860d4c3d
Clean up MethodLiveVarInfo
...
llvm-svn: 1703
2002-02-04 20:49:04 +00:00
Chris Lattner
b4e0d0424c
Turn live variable analysis into a real MethodPass.
...
llvm-svn: 1699
2002-02-04 20:00:08 +00:00
Chris Lattner
5726b834cd
Instruction scheduling is a real pass now.
...
llvm-svn: 1698
2002-02-04 19:59:22 +00:00
Chris Lattner
8a76e0e37e
Remove Obsolete LoopDepthCalculator. All users should use LoopInfo directly.
...
llvm-svn: 1697
2002-02-04 17:49:01 +00:00
Chris Lattner
faeb3c85f9
Remvoe big hack that was used by the register allocator
...
llvm-svn: 1692
2002-02-04 17:38:03 +00:00
Chris Lattner
0c04c60975
eliminate the add and remove methods, clients must use insert and erase directly.
...
llvm-svn: 1686
2002-02-04 16:33:18 +00:00
Chris Lattner
140f09f8cc
Remove tons of include pollution
...
Remove frivolous const's
Make use of the -> operator
llvm-svn: 1685
2002-02-04 16:32:40 +00:00
Chris Lattner
c6d2d0f12e
Use generic pointer hashes instead of custom ones.
...
llvm-svn: 1684
2002-02-04 16:31:42 +00:00
Chris Lattner
31261e6fd1
PostOrderIterator really does depend on Method and BasicBlock. Obviously this
...
is a huge fixme.
llvm-svn: 1682
2002-02-04 16:29:55 +00:00
Chris Lattner
8bfb48c8d3
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
4f37a90fda
Eliminate ModuleAnalyzer. It's old code that is not going to be used in the near future
...
llvm-svn: 1679
2002-02-04 06:47:17 +00:00
Chris Lattner
65e91cf86a
* Minor cleanups
...
* Reduce number of #includes
* Delete blank lines at end of files
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* Remove LARGE chunks of "inline" code out to .cpp file
* s/unsigned int/unsigned/
llvm-svn: 1673
2002-02-04 05:55:10 +00:00
Chris Lattner
009faad8e4
* 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
45cdd0fb0c
* Move command line parsing debug stuff to InstrScheduling internal header file
...
SchedPriorities.h
llvm-svn: 1669
2002-02-04 02:44:20 +00:00
Chris Lattner
9a8ff2595a
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
41ef705b10
Revamp compilation to be pass based instead of being monolithic so that
...
backend's can customize compilation as much as they want
llvm-svn: 1661
2002-02-03 23:40:22 +00:00
Chris Lattner
e1289c8b71
Code pulled out of MAchineInstr.(h|cpp)
...
llvm-svn: 1660
2002-02-03 07:54:50 +00:00
Chris Lattner
703fff6f92
Add methods to TargetMachine to:
...
* Output assembly code a method at a time instead of building it all up then emitting it as a whole module
* Release memory contained in various annotations.
llvm-svn: 1641
2002-02-03 07:24:05 +00:00
Chris Lattner
3284ca6af7
* Trim #includes
...
llvm-svn: 1640
2002-02-03 07:20:47 +00:00
Chris Lattner
71af76aa1d
Remove #include
...
move typedefs here
llvm-svn: 1639
2002-02-03 07:17:37 +00:00
Chris Lattner
4fe48ea510
Remove extranous #include
...
llvm-svn: 1638
2002-02-03 07:15:36 +00:00
Chris Lattner
4ea2b76dee
* Prune many #includes
...
* Remove MachineCodeForVMInstr -> MachineCodeForInstruction.h
* Remove MachineCodeForMethod -> MachineCodeForMethod.h
llvm-svn: 1636
2002-02-03 07:11:59 +00:00
Chris Lattner
e2680a01fd
* Remove TMP_INSTRUCTION_OPCODE silliness
...
* Fix TmpInstruction copy ctor to not read uninitialized memory
* Fix TmpInstruction copy ctor to not copy 2 operands if there is only one
* Inline Initialize method into ctors
llvm-svn: 1635
2002-02-03 07:07:16 +00:00
Chris Lattner
c98336111d
Remove extraneous #includes
...
llvm-svn: 1634
2002-02-03 07:03:13 +00:00
Chris Lattner
fcc2cfec1f
* Inline destructor
...
* Remove MachineCodeForVMInstr support (it's now an annotation)
* Remove dropAllReferences override (just use User's)
llvm-svn: 1633
2002-02-03 06:58:15 +00:00
Chris Lattner
bece6a3041
Remove extraneous #include
...
llvm-svn: 1632
2002-02-03 06:27:39 +00:00
Chris Lattner
10c2ca5cd3
Add constructor for addition to opt program
...
llvm-svn: 1626
2002-02-01 04:53:15 +00:00
Chris Lattner
a494a4981d
Free memory when not in use
...
llvm-svn: 1618
2002-01-31 18:32:49 +00:00
Chris Lattner
71e41586ae
* Make debugging output nicer
...
* Implement pass memory freeing after the pass is unused
* Expose PassManager typedef in Pass.h instead of PassManager.h
llvm-svn: 1617
2002-01-31 18:32:27 +00:00
Chris Lattner
0d3eaa9575
Eliminate SimplifyCFG.h file, pull everything into the UnifyMethodExitNodes class
...
llvm-svn: 1613
2002-01-31 01:12:06 +00:00
Chris Lattner
b678885f4c
Remove this file. Folded into UnifyMethodExitNodes pass
...
llvm-svn: 1612
2002-01-31 01:02:32 +00:00
Chris Lattner
5c1e4c976e
Implement LoopDepth calculation in terms of dominators instead of intervals
...
llvm-svn: 1600
2002-01-31 00:41:01 +00:00
Chris Lattner
9d726159c1
Convert xforms over to use new pass structure
...
llvm-svn: 1596
2002-01-30 23:29:35 +00:00