1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
Commit Graph

429 Commits

Author SHA1 Message Date
Chris Lattner
6285ebca7d 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
c760a6a4f4 Todo has been implemented, remove it
llvm-svn: 2387
2002-04-28 21:45:02 +00:00
Chris Lattner
ec70d92221 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
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
f6c808bc29 Move include/llvm/PassManager.h to lib/VMCore/PassManagerT.h
llvm-svn: 2382
2002-04-28 20:42:50 +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
07fe96ca98 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
0431ac1783 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
600135a049 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
514c7b752e 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
38e114c016 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
602655926c * 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
07da09cd34 Module's are no longer values
llvm-svn: 2354
2002-04-28 04:51:09 +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
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
543ab06854 Trivial simplification of code
llvm-svn: 2325
2002-04-27 02:26:03 +00:00
Chris Lattner
83819833b1 * Change Constant::getNullConstant to Constant::getNullValue
* Remove some unused code

llvm-svn: 2324
2002-04-27 02:25:43 +00:00
Chris Lattner
73791c9610 * 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
bffa0990cf 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
60f426703d * 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
8f81cd7da6 Move asmwriter/getStrValue cruft into AsmWriter.cpp file.
llvm-svn: 2300
2002-04-18 18:53:33 +00:00
Chris Lattner
f1dee31d23 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
e2f1e01fc1 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
f1dd584bbe Remove old frivolous uses of getStrValue in a debugging statement
llvm-svn: 2270
2002-04-16 21:36:59 +00:00
Chris Lattner
c43b279e94 Remove unneccesary cast
llvm-svn: 2269
2002-04-16 21:36:29 +00:00
Chris Lattner
10c22c6970 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
0bc26610af * 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
c0505e8d4e Minor bugfix for previous checkin
llvm-svn: 2241
2002-04-13 21:11:04 +00:00
Chris Lattner
5496a44cc2 * 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
92b32c82bf Add Module::getTypeName
llvm-svn: 2237
2002-04-13 18:58:33 +00:00
Chris Lattner
a4bce481d6 * 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
d1d6edad49 * 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
ed2a2c0c57 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
8584e40a86 Fix pure virtual function called exception!
llvm-svn: 2229
2002-04-12 18:19:45 +00:00
Chris Lattner
5e12c7caf5 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
37a1b36f0a 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
0eb1e7c044 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
bcca3f108e Add a couple of extra casts to avoid extra #include
llvm-svn: 2206
2002-04-09 18:37:08 +00:00
Chris Lattner
b579d93f7f 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
9a2cf06433 *blush* somehow this debugging code got checked in...
llvm-svn: 2187
2002-04-09 05:10:39 +00:00
Chris Lattner
c8166cec07 s/Method/Function
llvm-svn: 2180
2002-04-08 22:03:57 +00:00
Chris Lattner
5046c084ec * Narrow AsmWriter interface
* Implement Value::print methods here instead of WriteToAssembly

llvm-svn: 2179
2002-04-08 22:03:40 +00:00
Chris Lattner
44f14449c4 ConstantHandling moved into VMCore library
llvm-svn: 2165
2002-04-08 20:18:09 +00:00
Chris Lattner
7083f2bcf0 Move include/llvm/ValueHolderImpl.h to lib/VMCore/ValueHolderImpl.h
llvm-svn: 2156
2002-04-08 00:15:29 +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
0b712a046b 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
47f1f0e588 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
c994519230 Update comments
Implement Value::dump here.

llvm-svn: 2148
2002-04-07 22:31:46 +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
96135c924f Fix Bug: test/Regression/Other/2002-04-07-InfConstant.ll
llvm-svn: 2142
2002-04-07 08:42:53 +00:00
Chris Lattner
1c83a4a20c Fix bug: test/Regression/Other/2002-04-07-HexFloatConstants.ll
llvm-svn: 2141
2002-04-07 08:37:11 +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
d81ca8a752 * 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
35c1a4347b * 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
83b6eecc84 * 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
68857bb2bf * 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
3b80438423 Clean up debugging code
llvm-svn: 2119
2002-04-05 19:53:06 +00:00
Chris Lattner
e105f97672 * 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
8afff0c29a s/MethodType/FunctionType
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner
39d7d981ed Make build work in release mode
llvm-svn: 2113
2002-04-04 19:35:24 +00:00
Chris Lattner
ffc9ef8be9 Make the release build work
llvm-svn: 2109
2002-04-04 19:26:26 +00:00
Chris Lattner
87cabdd757 * Add debug support for PATypeHolder
* PATypeHolder is now not a template

llvm-svn: 2108
2002-04-04 19:26:02 +00:00
Chris Lattner
a0a6c8d4a2 Make the release build compile
llvm-svn: 2107
2002-04-04 19:24:48 +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
c7df07c3f8 * 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
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
084601e6f4 s/Method/Function
llvm-svn: 2034
2002-03-29 03:44:36 +00:00
Chris Lattner
c32e9901b1 Implement new getFunction and getOrInsertFunction methods
llvm-svn: 2033
2002-03-29 03:44:18 +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
849c762b02 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
c481e92886 Rename Method to Function
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner
0b9734b293 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
8051e7c953 * 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
ceb4e429a2 Add an assertion to catch a misuse of replaceAllUsesWith
llvm-svn: 1924
2002-03-21 05:38:15 +00:00
Chris Lattner
240209eb5b Make an assertion provide a more helpful error message
llvm-svn: 1883
2002-03-17 21:16:01 +00:00
Chris Lattner
ba358e8e65 Checkin new test for problem anand ran into
llvm-svn: 1880
2002-03-15 20:25:09 +00:00
Chris Lattner
1a4aac1060 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
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
00ef917e01 Expose more entry points to the verifier
llvm-svn: 1815
2002-02-26 21:45:33 +00:00
Chris Lattner
3b0be84157 Fix bug: test/Regression/Other/2002-02-24-InlineBrokePHINodes.ll
llvm-svn: 1798
2002-02-25 00:35:07 +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
75c1ff0221 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
aa07d741cb Fix isArrayAllocation() to be correct
llvm-svn: 1779
2002-02-19 21:24:17 +00:00
Chris Lattner
8e9be000a7 * 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
b0a2c5546b 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
c77877fb46 Remove generic routines to Support/SetOperations.h
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
b6c38e3b50 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
a10c21a9d0 Add more debug output
llvm-svn: 1627
2002-02-01 04:53:36 +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
11aaf58393 Provide the right AnalysisID for postdominators
llvm-svn: 1616
2002-01-31 18:29:24 +00:00
Chris Lattner
8d690f189c Implement new pass framework
llvm-svn: 1606
2002-01-31 00:45:31 +00:00
Chris Lattner
15c05486cc Convert analyses to new pass structure
llvm-svn: 1603
2002-01-31 00:42:27 +00:00
Chris Lattner
85b82a690e 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
3c0dcb01d4 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
2cab187296 Remove extraneous #includes
llvm-svn: 1588
2002-01-26 22:47:32 +00:00
Chris Lattner
d18db4006d 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
1af4d669b3 Check in fix for bug: test/Regression/Assembler/ValueRefineAbsType.ll
llvm-svn: 1582
2002-01-25 03:45:27 +00:00
Chris Lattner
c293ab6ae2 * 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
1728479df5 Oops, misnamed function, didn't override correctly, drat.
llvm-svn: 1528
2002-01-22 03:30:25 +00:00
Chris Lattner
15d533a331 Ooops, forgot to implement void PassManager::add(BasicBlockPass *BBP)
llvm-svn: 1523
2002-01-22 00:17:48 +00:00
Chris Lattner
4454cdc5c0 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
c00c670e5f Pull stuff out of opt namespace
llvm-svn: 1511
2002-01-21 21:44:38 +00:00
Chris Lattner
ebd5417901 Implementation of the new spiffy pass system
llvm-svn: 1508
2002-01-21 07:37:31 +00:00
Chris Lattner
3dc9a2a61f Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Vikram S. Adve
b61dccd269 Eliminate function getIndicesBROKEN().
llvm-svn: 1486
2001-12-15 00:37:12 +00:00
Chris Lattner
8e4844c07b * 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
eb03e839bc Rename ConstPoolVals.cpp to Constants.cpp
llvm-svn: 1471
2001-12-14 16:42:30 +00:00
Chris Lattner
e443a8ff8d Remove unsized array support
Add new SequentialType class

llvm-svn: 1470
2001-12-14 16:41:56 +00:00
Chris Lattner
ba664bbc27 Make strings SByte* arrays instead of UByte * arrays
llvm-svn: 1469
2001-12-14 16:41:18 +00:00
Chris Lattner
2cd50171de 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
9a7dd44f2c 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
9d4207dbaf 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
9421444244 Do not pessimize users of this function. Fix logic.
llvm-svn: 1428
2001-12-06 18:06:37 +00:00
Chris Lattner
c4a5815033 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
f6b7da2bb5 Rename ConstPoolVal -> Constant
Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h

llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
bcf2df7058 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
463cc31132 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
37ad91c9dc Implement internal
llvm-svn: 1385
2001-11-26 19:14:56 +00:00
Chris Lattner
2a1613d3b2 Implement support for internal methods
llvm-svn: 1373
2001-11-26 18:54:16 +00:00
Chris Lattner
aae473d198 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
b19c837bd3 Support Array Indexing
llvm-svn: 1348
2001-11-26 17:02:05 +00:00
Chris Lattner
da7f31493c Implement: isLosslesslyConvertableTo and new CompositeType base class
llvm-svn: 1347
2001-11-26 17:01:47 +00:00
Chris Lattner
1e270e0e2b If a name conflict occurs when inserting a value, rename it.
llvm-svn: 1346
2001-11-26 17:01:18 +00:00
Chris Lattner
8c4520cd1e Minor style cleanups
llvm-svn: 1287
2001-11-13 04:59:58 +00:00
Vikram S. Adve
848709f127 Removed MachineCodeForMethod object and made it an annotation.
llvm-svn: 1183
2001-11-08 04:38:58 +00:00
Chris Lattner
e33afc1d46 Add #includes to enable buiding in Release mode
llvm-svn: 1174
2001-11-07 13:49:45 +00:00
Chris Lattner
3aeffe685c 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
d1cd54e437 Add notes
llvm-svn: 1163
2001-11-06 22:53:11 +00:00
Chris Lattner
69d20ed13e Print out the abridged form of the call instruction.
llvm-svn: 1159
2001-11-06 21:28:12 +00:00
Chris Lattner
a797d17ed7 Give me PHI's space back
llvm-svn: 1150
2001-11-06 08:33:46 +00:00
Chris Lattner
c75cb61a5d Print PHI nodes with zero operands even if they are illegal
llvm-svn: 1145
2001-11-06 01:48:45 +00:00
Chris Lattner
a9bdcbf060 Remove debugging info
llvm-svn: 1093
2001-11-03 03:31:39 +00:00
Chris Lattner
d61e4631f5 Fix major bugs in type resolution
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner
e40fa529cd 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
2e9e90e235 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
1942341fd4 Implement constant propogation of null pointer values.
llvm-svn: 1078
2001-11-01 05:55:13 +00:00
Chris Lattner
a9dacc1925 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
7f8034b73b Initialize isRecursive. Found by Purify
llvm-svn: 1043
2001-10-30 16:39:16 +00:00
Chris Lattner
ee3536a8e6 Fix blatent bugs in checkin
llvm-svn: 1032
2001-10-29 16:40:32 +00:00
Chris Lattner
2c6b9de3ca 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
29a0fa2839 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
2d8ab10610 Remove C string capability from VMCore library. Move to Support
llvm-svn: 1021
2001-10-29 13:27:09 +00:00
Vikram S. Adve
45733991b9 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
896f34ccd0 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
861e84b114 Remove unnamed prototypes that are created.
llvm-svn: 964
2001-10-23 15:30:18 +00:00
Chris Lattner
db06de9f17 More symbol table bugfixes that are impossible to track down. Goody
llvm-svn: 960
2001-10-23 02:32:45 +00:00
Chris Lattner
0553612e11 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
c7301465ef Delete MachineCodeInfoForMethod object.
llvm-svn: 956
2001-10-22 22:32:11 +00:00
Chris Lattner
c1f107a673 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
ce00fe69b0 Added MachineCodeForMethod object in class Method.
llvm-svn: 949
2001-10-22 13:52:47 +00:00
Chris Lattner
3495dd8b2f 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
b9dca5e2e6 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
65647505e2 Fix shift printing when using a ubyte LHS
llvm-svn: 925
2001-10-20 09:33:10 +00:00
Chris Lattner
8c57784273 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
fd1ab08cba Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
c65d902eee Oops, didn't handle hex values correctly. :(
llvm-svn: 815
2001-10-15 00:05:03 +00:00
Chris Lattner
fc567e1535 * 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
b14610286e 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
24d2022f4e Implement the invoke instruction
llvm-svn: 774
2001-10-13 07:01:45 +00:00
Chris Lattner
77672f99ab * 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
5df2c60a5f Convert a runtime check into an assertion
llvm-svn: 772
2001-10-13 06:58:56 +00:00
Chris Lattner
fe9768f73b * 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
28a5ef9c3d Add new TerminatorInst ctor for invoke
llvm-svn: 770
2001-10-13 06:57:47 +00:00
Chris Lattner
9fd302d22b * 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
f29cb6207e not is a keyword in ansi C++, avoid it
llvm-svn: 763
2001-10-13 06:51:26 +00:00
Chris Lattner
ecd7a98aad * 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
a7e5f0bb35 Support pointers to globals happily
llvm-svn: 754
2001-10-13 06:35:09 +00:00
Chris Lattner
ac7f7b4758 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
ee349cd48b Rename getNullPointer to getNull
Allow sharing of null pointer constants

llvm-svn: 709
2001-10-03 15:39:36 +00:00
Chris Lattner
a01eda3091 * 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
af910dda17 First try at a horrible global value reference wrapper
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
08b1dde37e Commit more code over to new cast style
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83 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
4c684cde80 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
43781f1f96 Add support for new style casts
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
345daca305 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
94ef0a1a2c Implement a constant pointer value
llvm-svn: 667
2001-09-30 20:14:07 +00:00
Chris Lattner
9b45b18404 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
02d80cea8c Make error report a little more useful
llvm-svn: 657
2001-09-28 00:06:52 +00:00
Chris Lattner
e77ee72df2 Okay, make the member function work.
llvm-svn: 643
2001-09-19 14:09:25 +00:00
Chris Lattner
9aa7a88f0e 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
86ecc9630a 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
bf084ec2e7 Moved DebugValue to Value.cpp.
llvm-svn: 606
2001-09-18 12:48:16 +00:00
Vikram S. Adve
b0232d85a1 Added debugging support.
llvm-svn: 605
2001-09-18 12:44:41 +00:00
Chris Lattner
e5750a063d Remove the unsized array constraint
llvm-svn: 599
2001-09-18 04:38:32 +00:00
Chris Lattner
ac91b150a7 Add support for global constants, and for initializers for constants
llvm-svn: 598
2001-09-18 04:01:05 +00:00
Chris Lattner
d6a98c11bc Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling

llvm-svn: 572
2001-09-14 16:56:32 +00:00
Chris Lattner
ea511697dd Use correct style casts
llvm-svn: 545
2001-09-10 20:11:44 +00:00
Chris Lattner
c5adfbc219 Use correct style casts
Types are not all constant now

llvm-svn: 544
2001-09-10 20:11:28 +00:00
Chris Lattner
0631fccc21 Add support for printing globals
llvm-svn: 537
2001-09-10 20:08:19 +00:00
Chris Lattner
9d1629d688 Implement global variable support
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
0754f2306a Remove the definitions of 3 global functions that don't belong in the core
llvm-svn: 526
2001-09-09 23:02:07 +00:00
Chris Lattner
9985e9db71 Rename contype to subtype
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
4bb7fcff1b Rename file to be consistent with header name
llvm-svn: 519
2001-09-09 21:59:43 +00:00
Chris Lattner
45768e6fe5 Clean up Type class by removing mutable ConstRules member and use annotations insead
llvm-svn: 516
2001-09-09 21:02:38 +00:00
Chris Lattner
91858f96f2 Clean up ConstRules stuff to use annotations instead of a mutable member in Type
llvm-svn: 515
2001-09-09 21:01:20 +00:00
Chris Lattner
9570fbc913 Moved functionality into the other constant pool stuff
llvm-svn: 477
2001-09-07 18:00:19 +00:00