Chris Lattner
9f3077342b
Move code out of header file
...
llvm-svn: 2498
2002-05-06 17:54:27 +00:00
Chris Lattner
181cc32365
Replace all usages of Type::isPointerType with isa<PointerType>
...
llvm-svn: 2486
2002-05-06 16:15:30 +00:00
Chris Lattner
398a86f14e
Implement getPrimitiveSize()
...
don't use isPointerType()
llvm-svn: 2485
2002-05-06 16:14:39 +00:00
Chris Lattner
6670d86b0b
Implement constant propogation of shifts
...
llvm-svn: 2470
2002-05-06 03:00:54 +00:00
Chris Lattner
b2f02e5952
Print functions with curly braces instead of begin/end
...
llvm-svn: 2469
2002-05-06 03:00:40 +00:00
Chris Lattner
4ba780d26e
Implement two iterator remove method
...
llvm-svn: 2467
2002-05-06 02:59:34 +00:00
Chris Lattner
0a144ad555
Implement remainder
...
Fix implementation of Not
llvm-svn: 2464
2002-05-03 21:41:07 +00:00
Chris Lattner
62af86eca8
Fix bug: test/Regression/Transforms/SCCP/2002-05-03-NotOperator.ll
...
by using the ~ operator instead of !
llvm-svn: 2458
2002-05-03 20:09:52 +00:00
Chris Lattner
293e186645
The implementation keyword is no longer neccesary
...
llvm-svn: 2434
2002-05-02 19:11:29 +00:00
Chris Lattner
cb42906835
Fix problem where subpasses would invalidate all analyses outstanding
...
llvm-svn: 2418
2002-04-30 18:50:17 +00:00
Chris Lattner
f3dee03ba9
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
913d18f567
Changes so that iMemory.h doesn't include DerivedTypes.h
...
llvm-svn: 2404
2002-04-29 18:46:50 +00:00
Chris Lattner
d5a847057b
Eliminate duplicate or unneccesary #include's
...
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner
37104aace8
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
e2eb99eb62
Add a new command line option for PassManager using utilities.
...
Now for llc, gccas, analyze, opt, etc you can specify the -time-passes
command line option that outputs a timing summary report that indicates
how long each pass takes to execute.
llvm-svn: 2394
2002-04-29 04:04:29 +00:00
Chris Lattner
1d7f38d15e
Todo has been implemented, remove it
...
llvm-svn: 2387
2002-04-28 21:45:02 +00:00
Chris Lattner
f12cc842b3
Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA
...
llvm-svn: 2386
2002-04-28 21:27:06 +00:00
Chris Lattner
ee2ff5da74
Move FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()
...
llvm-svn: 2384
2002-04-28 21:25:41 +00:00
Chris Lattner
37c8667190
* 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
d0e9bd1ab2
Move include/llvm/PassManager.h to lib/VMCore/PassManagerT.h
...
llvm-svn: 2382
2002-04-28 20:42:50 +00:00
Chris Lattner
ca14237696
Split ConstantVals.h into Constant.h and Constants.h
...
llvm-svn: 2378
2002-04-28 19:55:58 +00:00
Chris Lattner
78dd56fe62
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
...
to the global namespace
llvm-svn: 2370
2002-04-28 16:21:30 +00:00
Chris Lattner
412d277f4a
Remove extra unused argument from CheckFailed method
...
Remove extraneous \n's from assert strings
llvm-svn: 2367
2002-04-28 16:06:24 +00:00
Chris Lattner
9713b840cf
The check to see if an external function was marked internal was not reachable!
...
llvm-svn: 2366
2002-04-28 16:04:26 +00:00
Chris Lattner
a454b5b7c5
Minor changes to allow Modules (which are no longer Values) to work
...
llvm-svn: 2361
2002-04-28 05:14:06 +00:00
Chris Lattner
30ddf7f57f
The contents of the SymTabValue class have been incorporated into the
...
Module and Function classes directly.
llvm-svn: 2356
2002-04-28 04:52:28 +00:00
Chris Lattner
2c8ff6345f
* Incorporate the contents of SymTabValue into Function and Module
...
* Module no longer subclasses Value
llvm-svn: 2355
2002-04-28 04:51:51 +00:00
Chris Lattner
f491044d0f
Module's are no longer values
...
llvm-svn: 2354
2002-04-28 04:51:09 +00:00
Chris Lattner
99b6f5cac4
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
f998685cd9
s/Method/Function
...
llvm-svn: 2336
2002-04-27 07:27:19 +00:00
Chris Lattner
c8e665431b
* 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
b6cbad7be6
Trivial simplification of code
...
llvm-svn: 2325
2002-04-27 02:26:03 +00:00
Chris Lattner
a85386f2de
* Change Constant::getNullConstant to Constant::getNullValue
...
* Remove some unused code
llvm-svn: 2324
2002-04-27 02:25:43 +00:00
Chris Lattner
d46bb6e933
* Abort program on verification errors
...
* Verify that load, store, and GEP instructions indices are correct, because
they _continually_ bite me on this pool allocations stuff
llvm-svn: 2309
2002-04-24 19:12:21 +00:00
Chris Lattner
21ea83bb3e
Add some basic checks of CallInst's.
...
Assert now returns from the current function on error.
llvm-svn: 2308
2002-04-18 22:11:52 +00:00
Chris Lattner
0e851daf53
* Convert the verifier to use an InstVisitor to be better structured
...
* Implement checking that a binary operator's two sides are the same type
* Actually check that an instruction does not have a name if it has a void
return type.
llvm-svn: 2305
2002-04-18 20:37:37 +00:00
Chris Lattner
1ce991d6b9
Move asmwriter/getStrValue cruft into AsmWriter.cpp file.
...
llvm-svn: 2300
2002-04-18 18:53:33 +00:00
Chris Lattner
1e19468e4a
Pull all of the getStrValue implementation cruft out of Constants.cpp and
...
put it into the AsmWriter. This code is kinda gross and could probably be
cleaned up, but not now.
llvm-svn: 2299
2002-04-18 18:53:13 +00:00
Chris Lattner
cc6733b40a
Remove gep::isStructSelector
...
CTor's do not allow names anymore for StoreInst objects
llvm-svn: 2285
2002-04-18 14:44:53 +00:00
Chris Lattner
de9c04cff3
Remove old frivolous uses of getStrValue in a debugging statement
...
llvm-svn: 2270
2002-04-16 21:36:59 +00:00
Chris Lattner
25bf874ff5
Remove unneccesary cast
...
llvm-svn: 2269
2002-04-16 21:36:29 +00:00
Chris Lattner
d84bb63750
Changes to:
...
* Fix bug printing method types (oops when converting previous code)
* Move some of the code from Constant::getStrValue implementations here.
This allows us to do a MUCH MUCH better job printing out complex constant
values (think an array of structure pointers), because we print symbolic
type names instead of structural. The assistance when debugging is immense
Eventually, Constant::getStrValue should be removed (it existed before because
the asmwriter file was not in VMCore), and everyone should go through the
asmwriter that want's equivalent functionality.
llvm-svn: 2268
2002-04-16 21:36:08 +00:00
Chris Lattner
af95e589df
* Fix bug: test/Regression/Verifier/2002-04-13-RetTypes.ll
...
* Check that arguments match the method types of the method they live in
llvm-svn: 2243
2002-04-13 22:48:46 +00:00
Chris Lattner
8a939c9189
Minor bugfix for previous checkin
...
llvm-svn: 2241
2002-04-13 21:11:04 +00:00
Chris Lattner
d816b5374f
* Remove obselete code for unsized arrays
...
* Add new function printTypeAtLeastOneLevel used to...
* Print the symbol table *WITH SYMBOLIC TYPES*. Now we get:
%tree = type { int, %tree*, %tree* }
in the type definition section of the disassembled output instead of
%tree = type { int, \2*, \2* }
the different for the health benchmark and power are simply amazing.
llvm-svn: 2240
2002-04-13 20:53:41 +00:00
Chris Lattner
10b7cb5de9
Add Module::getTypeName
...
llvm-svn: 2237
2002-04-13 18:58:33 +00:00
Chris Lattner
8d48df2ebc
* Clean up code to use isa & dyncast instead of poking directly into instructions
...
* Do not print the allocation size for a non array allocation (this used to work,
but was broken).
llvm-svn: 2235
2002-04-13 18:34:38 +00:00
Chris Lattner
189088e5d6
* Add comment
...
* Do not print a space before the * in a pointer type.
llvm-svn: 2232
2002-04-12 18:21:53 +00:00
Chris Lattner
486302a0e6
Add new check of return value type matching ret instruction values types
...
llvm-svn: 2230
2002-04-12 18:20:49 +00:00
Chris Lattner
6fc8c2374a
Fix pure virtual function called exception!
...
llvm-svn: 2229
2002-04-12 18:19:45 +00:00
Chris Lattner
2e9fa6d101
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
llvm-svn: 2216
2002-04-09 19:48:49 +00:00
Chris Lattner
5f79b333fe
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
Move implementation to Function.cpp
llvm-svn: 2212
2002-04-09 19:39:58 +00:00
Chris Lattner
d255ae24db
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
Move Argument implementation to Function.cpp
llvm-svn: 2211
2002-04-09 19:39:35 +00:00
Chris Lattner
807399ad86
Add a couple of extra casts to avoid extra #include
...
llvm-svn: 2206
2002-04-09 18:37:08 +00:00
Chris Lattner
34ea10c5b4
Add a couple of extra casts to avoid having to add #include
...
llvm-svn: 2205
2002-04-09 18:36:52 +00:00
Chris Lattner
f85684a92d
*blush* somehow this debugging code got checked in...
...
llvm-svn: 2187
2002-04-09 05:10:39 +00:00
Chris Lattner
f739fa8541
s/Method/Function
...
llvm-svn: 2180
2002-04-08 22:03:57 +00:00
Chris Lattner
c0b4c7bc32
* Narrow AsmWriter interface
...
* Implement Value::print methods here instead of WriteToAssembly
llvm-svn: 2179
2002-04-08 22:03:40 +00:00
Chris Lattner
65b529fe6d
ConstantHandling moved into VMCore library
...
llvm-svn: 2165
2002-04-08 20:18:09 +00:00
Chris Lattner
6e6f5be53d
Move include/llvm/ValueHolderImpl.h to lib/VMCore/ValueHolderImpl.h
...
llvm-svn: 2156
2002-04-08 00:15:29 +00:00
Chris Lattner
6915f8fc3c
* 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
3d381bb4d9
Remove some gross code by using the Value::dump method to do debug dumps
...
llvm-svn: 2150
2002-04-07 22:33:13 +00:00
Chris Lattner
e026e92e0e
Remove some gross code by using the VAlue::dump method to do debug dumps
...
llvm-svn: 2149
2002-04-07 22:32:25 +00:00
Chris Lattner
f7e7948f1e
Update comments
...
Implement Value::dump here.
llvm-svn: 2148
2002-04-07 22:31:46 +00:00
Chris Lattner
62b7fd136e
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
34208394d0
Fix Bug: test/Regression/Other/2002-04-07-InfConstant.ll
...
llvm-svn: 2142
2002-04-07 08:42:53 +00:00
Chris Lattner
9a11be8491
Fix bug: test/Regression/Other/2002-04-07-HexFloatConstants.ll
...
llvm-svn: 2141
2002-04-07 08:37:11 +00:00
Chris Lattner
af259a7f91
Implement constant propogation of multiply and divide instructions!!
...
llvm-svn: 2134
2002-04-07 08:10:14 +00:00
Chris Lattner
de5047b174
* Make all of the refineAbstractType functions work identically
...
* Remove ambiguous code that caused problems with understanding how stuff
worked.
* Implement DerivedType::typeIsRefined right. Add a big comment talking
about it.
* The removeUserFromConcrete method already checks to see if the type is
not abstract, so no need to duplicate the test all over this code
This checkin makes all of the type parsing related failures work. All
Assembler Regression tests now pass!
llvm-svn: 2127
2002-04-07 06:14:56 +00:00
Chris Lattner
054ec0ec05
* Reenable apparently neccesary code, that breaks testcases when enabled,
...
but causes MANY FUNDAMENTAL PROBLEMS when not enabled. :(
* Add debugging function
llvm-svn: 2125
2002-04-06 00:21:11 +00:00
Chris Lattner
70aa1c615c
* FIX: test/Regression/Assembler/2002-02-19-TypeParsing.ll
...
That was due to the StructType object not getting called multiple times
to remove itself from the ATU list for an object, because it stopped
getting queried due to this wrong test
* Improve debug output when DEBUG_MERGE_TYPES is on
llvm-svn: 2124
2002-04-05 23:02:46 +00:00
Chris Lattner
078808ab27
* Move DerivedType::addAbstractTypeUser from DerivedType.h
...
* Refactor a bunch of code. Types now only remove one subelement at a time
when they are told that they have changed
* Improve debugging output, add more assertions...
* FIX Bugs:
* test/Regression/Assembler/2002-04-04-PureVirtMethCall.ll
* test/Regression/Assembler/2002-04-04-PureVirtMethCall2.ll
* The change to fix these bugs was the to ValTypeBase::refineAbstractType
method. Basically we #if 0'd out the chunk of code there and make the
table get reorganized EVEN IF the type has the same pointer. Merging
opportunities were being missed!
llvm-svn: 2121
2002-04-05 22:25:26 +00:00
Chris Lattner
8d50d4600e
Clean up debugging code
...
llvm-svn: 2119
2002-04-05 19:53:06 +00:00
Chris Lattner
26b7ba59b8
* Refactor loop in removeAbstractTypeUser to be more clear
...
* Fix a bug in DerivedType::refineAbstractTypeTo that caused
test/Regression/Assembler/2002-04-05-TypeParsing.ll to fail.
The added comment describes the fix
llvm-svn: 2118
2002-04-05 19:44:07 +00:00
Chris Lattner
e2f2f54f0c
s/MethodType/FunctionType
...
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner
57d2ba378b
Make build work in release mode
...
llvm-svn: 2113
2002-04-04 19:35:24 +00:00
Chris Lattner
39dabb96c2
Make the release build work
...
llvm-svn: 2109
2002-04-04 19:26:26 +00:00
Chris Lattner
a9e1535afc
* Add debug support for PATypeHolder
...
* PATypeHolder is now not a template
llvm-svn: 2108
2002-04-04 19:26:02 +00:00
Chris Lattner
1be6266721
Make the release build compile
...
llvm-svn: 2107
2002-04-04 19:24:48 +00:00
Chris Lattner
8cb8e4608c
Add a new replaceWith method useful for replacing instructions
...
llvm-svn: 2088
2002-04-01 17:52:16 +00:00
Chris Lattner
3e6e3e6bce
* s/Method/Function
...
* Implement a check to make sure a function is not internal and external
at the same time
llvm-svn: 2050
2002-03-29 19:06:18 +00:00
Chris Lattner
5c1f41eb97
Add an insert method to VAlueHolder to allow batch insertion
...
llvm-svn: 2038
2002-03-29 05:49:37 +00:00
Chris Lattner
13ae72f175
Add new addTypeName method to Module class
...
llvm-svn: 2037
2002-03-29 04:48:40 +00:00
Chris Lattner
91db58298a
s/Method/Function
...
llvm-svn: 2034
2002-03-29 03:44:36 +00:00
Chris Lattner
a483b0616a
Implement new getFunction and getOrInsertFunction methods
...
llvm-svn: 2033
2002-03-29 03:44:18 +00:00
Chris Lattner
cd8846ff84
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
57698e2c0b
Change references from Method to Function
...
change references from MethodARgument to FunctionArgument
llvm-svn: 1991
2002-03-26 18:01:55 +00:00
Chris Lattner
4e8c4877aa
Rename Method to Function
...
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner
220ef17a9e
Add an assertion that would hopefully catch a problem that was tripping
...
cameron up
llvm-svn: 1944
2002-03-22 18:01:58 +00:00
Chris Lattner
eae5096ebd
* AllocationInst ctor moved here from iMemory.h
...
* AllocationInst now always has an array size operand
llvm-svn: 1939
2002-03-21 22:37:48 +00:00
Chris Lattner
25c8f60b0a
Add an assertion to catch a misuse of replaceAllUsesWith
...
llvm-svn: 1924
2002-03-21 05:38:15 +00:00
Chris Lattner
de421a7993
Make an assertion provide a more helpful error message
...
llvm-svn: 1883
2002-03-17 21:16:01 +00:00
Chris Lattner
fbf5be52c3
Checkin new test for problem anand ran into
...
llvm-svn: 1880
2002-03-15 20:25:09 +00:00
Chris Lattner
7704e9f337
Add a check to ensure that only PHI nodes are self referential. Code
...
input to instruction combination was broken, which caused it to explode.
llvm-svn: 1870
2002-03-14 16:53:48 +00:00
Chris Lattner
9818bab2dc
* 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
b67f732b8c
Expose more entry points to the verifier
...
llvm-svn: 1815
2002-02-26 21:45:33 +00:00
Chris Lattner
4eed0b8390
Fix bug: test/Regression/Other/2002-02-24-InlineBrokePHINodes.ll
...
llvm-svn: 1798
2002-02-25 00:35:07 +00:00
Chris Lattner
43373a6868
Make it compile with GCC 3.0.4
...
llvm-svn: 1786
2002-02-24 23:01:21 +00:00
Chris Lattner
d02f08dec9
Actually implement some checking in the verifier.
...
These specific problems were ones Anand ran into in his work and seem not
uncommon for beginners.
llvm-svn: 1781
2002-02-20 17:55:43 +00:00
Chris Lattner
480fa41d2c
Fix isArrayAllocation() to be correct
...
llvm-svn: 1779
2002-02-19 21:24:17 +00:00
Chris Lattner
83d485b310
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
InstrTypes.h anymore
llvm-svn: 1750
2002-02-12 22:39:50 +00:00
Chris Lattner
60a6591d83
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner
a2b661f764
Remove generic routines to Support/SetOperations.h
...
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
4b361376f0
Switch from MachineCodeForVMInstr model that is built into the VMCore library to an annotation based MAchineCodeForInstruction model
...
Instruction.cpp now has 0 lines of code generation related code in it.
llvm-svn: 1658
2002-02-03 07:52:58 +00:00
Chris Lattner
f2f31bdfb5
Add more debug output
...
llvm-svn: 1627
2002-02-01 04:53:36 +00:00
Chris Lattner
ac3e060c59
* 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
a5e103a2ae
Provide the right AnalysisID for postdominators
...
llvm-svn: 1616
2002-01-31 18:29:24 +00:00
Chris Lattner
cdd09c2c17
Implement new pass framework
...
llvm-svn: 1606
2002-01-31 00:45:31 +00:00
Chris Lattner
ccf571a408
Convert analyses to new pass structure
...
llvm-svn: 1603
2002-01-31 00:42:27 +00:00
Chris Lattner
2eaac39d9e
Fix bug where we didn't initialize and finalize basic block passes
...
llvm-svn: 1599
2002-01-31 00:40:44 +00:00
Chris Lattner
67d256568f
Checkin new pass framework. This one is more useful and automatically
...
creates analysis results for passes that need them. MethodPass's never
have to worry about being invoked on external methods.
llvm-svn: 1594
2002-01-30 23:20:39 +00:00
Chris Lattner
d5851db315
Remove extraneous #includes
...
llvm-svn: 1588
2002-01-26 22:47:32 +00:00
Chris Lattner
36faf3a99c
This checkin fixes the bug described in:
...
test/Regression/Assembler/2002-01-24-BadSymbolTableAssert.ll
llvm-svn: 1583
2002-01-25 03:56:34 +00:00
Chris Lattner
67e5c29ae4
Check in fix for bug: test/Regression/Assembler/ValueRefineAbsType.ll
...
llvm-svn: 1582
2002-01-25 03:45:27 +00:00
Chris Lattner
d013ba96a9
* Expose new command line arg --debug-pass for gccas and llc debugging
...
* Remember to initialize MethodPassBatcher::BBPBatcher instance var in ctor
* Move PassManager::run() from header file
llvm-svn: 1556
2002-01-23 05:49:41 +00:00
Chris Lattner
9c56a28309
Oops, misnamed function, didn't override correctly, drat.
...
llvm-svn: 1528
2002-01-22 03:30:25 +00:00
Chris Lattner
654b5bc77a
Ooops, forgot to implement void PassManager::add(BasicBlockPass *BBP)
...
llvm-svn: 1523
2002-01-22 00:17:48 +00:00
Chris Lattner
ee965abc36
Move stuff out of the Optimizations directories into the appropriate Transforms
...
directories. Eliminate the opt namespace.
llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner
d9f1ab2077
Pull stuff out of opt namespace
...
llvm-svn: 1511
2002-01-21 21:44:38 +00:00
Chris Lattner
26e4f89419
Implementation of the new spiffy pass system
...
llvm-svn: 1508
2002-01-21 07:37:31 +00:00
Chris Lattner
7f74a56e24
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Vikram S. Adve
ecce65a4ba
Eliminate function getIndicesBROKEN().
...
llvm-svn: 1486
2001-12-15 00:37:12 +00:00
Chris Lattner
195b8779dc
* Assert that indices are valid for an indexing instruction.
...
* Add support for indexing into pointers
* Remove support for unsized arrays
llvm-svn: 1472
2001-12-14 16:43:26 +00:00
Chris Lattner
6d6f01a488
Rename ConstPoolVals.cpp to Constants.cpp
...
llvm-svn: 1471
2001-12-14 16:42:30 +00:00
Chris Lattner
44d49e2bb8
Remove unsized array support
...
Add new SequentialType class
llvm-svn: 1470
2001-12-14 16:41:56 +00:00
Chris Lattner
bec9b0b9ef
Make strings SByte* arrays instead of UByte * arrays
...
llvm-svn: 1469
2001-12-14 16:41:18 +00:00
Chris Lattner
3cb3a1f06c
Don't waste as much horizontal space on #uses flag when printing
...
llvm-svn: 1459
2001-12-14 16:29:12 +00:00
Chris Lattner
156344c890
Swap operands now preserves the semantics of the binary operator by changing
...
the opcode of the instruction if possible.
llvm-svn: 1444
2001-12-13 00:43:03 +00:00
Chris Lattner
25450e32c0
Add debugging to make a more useful message if a value gets constructed with a null type
...
llvm-svn: 1443
2001-12-13 00:41:27 +00:00
Chris Lattner
7af2be143d
Do not pessimize users of this function. Fix logic.
...
llvm-svn: 1428
2001-12-06 18:06:37 +00:00
Chris Lattner
2413b160ec
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
3462ae3ad7
Rename ConstPoolVal -> Constant
...
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
fb5ae02e1a
Split the PHINode class out from the iOther.h file into the iPHINode.h file
...
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner
5de2204fe8
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
7a787227d8
Implement internal
...
llvm-svn: 1385
2001-11-26 19:14:56 +00:00
Chris Lattner
841d8b9e50
Implement support for internal methods
...
llvm-svn: 1373
2001-11-26 18:54:16 +00:00
Chris Lattner
a88403bf31
Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.
...
llvm-svn: 1370
2001-11-26 18:52:02 +00:00
Chris Lattner
3b30570f9a
Support Array Indexing
...
llvm-svn: 1348
2001-11-26 17:02:05 +00:00
Chris Lattner
1c5e8f5d58
Implement: isLosslesslyConvertableTo and new CompositeType base class
...
llvm-svn: 1347
2001-11-26 17:01:47 +00:00
Chris Lattner
f87b579b9d
If a name conflict occurs when inserting a value, rename it.
...
llvm-svn: 1346
2001-11-26 17:01:18 +00:00
Chris Lattner
99ed5fb28d
Minor style cleanups
...
llvm-svn: 1287
2001-11-13 04:59:58 +00:00
Vikram S. Adve
b375b89e00
Removed MachineCodeForMethod object and made it an annotation.
...
llvm-svn: 1183
2001-11-08 04:38:58 +00:00
Chris Lattner
3b7199e36c
Add #includes to enable buiding in Release mode
...
llvm-svn: 1174
2001-11-07 13:49:45 +00:00
Chris Lattner
7db7958bd4
Implement CachedWriter class to allow module level printing of various components very quickly
...
llvm-svn: 1168
2001-11-07 04:21:57 +00:00
Chris Lattner
68289f0b89
Add notes
...
llvm-svn: 1163
2001-11-06 22:53:11 +00:00
Chris Lattner
2f2d947f73
Print out the abridged form of the call instruction.
...
llvm-svn: 1159
2001-11-06 21:28:12 +00:00
Chris Lattner
9d3292d327
Give me PHI's space back
...
llvm-svn: 1150
2001-11-06 08:33:46 +00:00
Chris Lattner
29644b3849
Print PHI nodes with zero operands even if they are illegal
...
llvm-svn: 1145
2001-11-06 01:48:45 +00:00
Chris Lattner
34ec31bb74
Remove debugging info
...
llvm-svn: 1093
2001-11-03 03:31:39 +00:00
Chris Lattner
4f1ca018aa
Fix major bugs in type resolution
...
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner
866cbddec8
Dramatically simplify recursive type processing. Fixed a few bugs, a few still remain :(
...
Why does this stuff have to come up NOW?
llvm-svn: 1089
2001-11-02 07:51:31 +00:00
Chris Lattner
f652674162
Implement new simpler constructors for if you don't have a index list
...
llvm-svn: 1081
2001-11-01 05:58:42 +00:00
Chris Lattner
977f0044fc
Implement constant propogation of null pointer values.
...
llvm-svn: 1078
2001-11-01 05:55:13 +00:00
Chris Lattner
34b9518c88
Initial version of GCC cleanup pass: just removes extraneous global symbol table entries for types
...
llvm-svn: 1062
2001-10-31 04:33:19 +00:00
Chris Lattner
ff2a07f4df
Initialize isRecursive. Found by Purify
...
llvm-svn: 1043
2001-10-30 16:39:16 +00:00
Chris Lattner
72f866eda3
Fix blatent bugs in checkin
...
llvm-svn: 1032
2001-10-29 16:40:32 +00:00
Chris Lattner
b86620e9b1
Expose the WriteTypeSymbolic function from the library. Refactor code to make
...
this function explicit. Cause WriteAsOperand to use symbolic types as available.
llvm-svn: 1031
2001-10-29 16:37:48 +00:00
Chris Lattner
7bfee414aa
Be careful to output symbolic type name if possible for a type. This makes
...
debugging the Olden/health benchmark actually possible.
llvm-svn: 1029
2001-10-29 16:05:51 +00:00
Chris Lattner
239a1bdfe1
Remove C string capability from VMCore library. Move to Support
...
llvm-svn: 1021
2001-10-29 13:27:09 +00:00
Vikram S. Adve
eada6b128a
Support printing control characters in standard C/assembly style,
...
if you specify useCSyntax = true. The old style is still the default.
llvm-svn: 1011
2001-10-28 21:48:05 +00:00
Chris Lattner
7dacd514ca
Two things:
...
1. Forward propogate a loaded constant to make debugging slightly less annoying
2. Fix an extremely nasty hard to find bug that really irritated me for the better
part of 6 hours and was causing linking to die and bizarre and mysterious ways.
Things should be much more stable now that this one liner has been fixed. GRR
llvm-svn: 971
2001-10-24 05:12:04 +00:00
Chris Lattner
aeaec1ccb9
Remove unnamed prototypes that are created.
...
llvm-svn: 964
2001-10-23 15:30:18 +00:00
Chris Lattner
98960dce6d
More symbol table bugfixes that are impossible to track down. Goody
...
llvm-svn: 960
2001-10-23 02:32:45 +00:00
Chris Lattner
0557f117dd
Allow unresolved/opaque types to be read and written to bytecode files
...
llvm-svn: 959
2001-10-23 01:53:22 +00:00
Vikram S. Adve
0009da41c6
Delete MachineCodeInfoForMethod object.
...
llvm-svn: 956
2001-10-22 22:32:11 +00:00
Chris Lattner
100884edad
Fix a problem occuring with type unification of symbol table entries
...
llvm-svn: 955
2001-10-22 21:59:46 +00:00
Vikram S. Adve
4e594bebba
Added MachineCodeForMethod object in class Method.
...
llvm-svn: 949
2001-10-22 13:52:47 +00:00
Chris Lattner
fb864a35aa
Fix bug exposed by this testcase:
...
declare int "call_operand" (%rtx_def*, int) ;; Prototype for: call_operand
declare int "restore_operand" (%rtx_def*, int) ;; Prototype for: restore_operand
%rtx_def = type opaque
%rtx_def = type int
implementation
llvm-svn: 934
2001-10-22 04:55:44 +00:00
Chris Lattner
b57ac6f4bd
Fix erroneous assertion failure on the following code:
...
declare int "malloc"(...)
...
%reg112 = call int (...) * %malloc( uint %cast1007 )
llvm-svn: 932
2001-10-21 21:54:51 +00:00
Chris Lattner
b6fe2345f1
Fix shift printing when using a ubyte LHS
...
llvm-svn: 925
2001-10-20 09:33:10 +00:00
Chris Lattner
f96ef663e0
It is valid to have unsigned arrays as constants... the linker may initialize them later
...
llvm-svn: 923
2001-10-20 06:43:05 +00:00
Chris Lattner
162ed4d6cc
Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
...
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
78e11ae816
Oops, didn't handle hex values correctly. :(
...
llvm-svn: 815
2001-10-15 00:05:03 +00:00
Chris Lattner
8f80fe0bfd
* Fix the constpoolarray -> c"" printing routines to escape things properly
...
* Fix slightly broken sharing problems
* Do not escape the literal string passed in
llvm-svn: 814
2001-10-14 23:54:12 +00:00
Vikram S. Adve
34410432da
Added routine to create a char array for a string.
...
Also, print char arrays as strings.
llvm-svn: 799
2001-10-14 23:17:20 +00:00
Chris Lattner
cc17a7af5a
Implement the invoke instruction
...
llvm-svn: 774
2001-10-13 07:01:45 +00:00
Chris Lattner
74a0151acb
* Fix a nefarious bugs: TypesEqual was wrong for varargs methods
...
* MethodType::get now takes a literal isVarArg method argument
* Use new style casts
llvm-svn: 773
2001-10-13 07:01:33 +00:00
Chris Lattner
2ec97a2b9c
Convert a runtime check into an assertion
...
llvm-svn: 772
2001-10-13 06:58:56 +00:00
Chris Lattner
446ad50c30
* Add support for Module specific constants
...
* Add proper support for ConstPoolPointerReference's
llvm-svn: 771
2001-10-13 06:58:40 +00:00
Chris Lattner
3b88b14312
Add new TerminatorInst ctor for invoke
...
llvm-svn: 770
2001-10-13 06:57:47 +00:00
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