Commit Graph

297 Commits

Author SHA1 Message Date
Chris Lattner
d30efaf56e * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2383 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 20:46:05 +00:00
Chris Lattner
3adc069c8b Move include/llvm/PassManager.h to lib/VMCore/PassManagerT.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2382 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 20:42:50 +00:00
Chris Lattner
31bcdb822f Split ConstantVals.h into Constant.h and Constants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 19:55:58 +00:00
Chris Lattner
1b7f7dc4b4 Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
to the global namespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:21:30 +00:00
Chris Lattner
39dd0246bd Remove extra unused argument from CheckFailed method
Remove extraneous \n's from assert strings


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2367 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:06:24 +00:00
Chris Lattner
794caa1d2c The check to see if an external function was marked internal was not reachable!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2366 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:04:26 +00:00
Chris Lattner
2e9175a085 Minor changes to allow Modules (which are no longer Values) to work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2361 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 05:14:06 +00:00
Chris Lattner
67e08db3b9 The contents of the SymTabValue class have been incorporated into the
Module and Function classes directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2356 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:52:28 +00:00
Chris Lattner
11aa4770fe * Incorporate the contents of SymTabValue into Function and Module
* Module no longer subclasses Value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2355 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:51:51 +00:00
Chris Lattner
5240dac674 Module's are no longer values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2354 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:51:09 +00:00
Chris Lattner
a298d27808 Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not
const BasicBlocks


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2337 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 00:15:57 +00:00
Chris Lattner
483e14ee04 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 07:27:19 +00:00
Chris Lattner
f57b845547 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 06:56:12 +00:00
Chris Lattner
c72114ca72 Trivial simplification of code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2325 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:26:03 +00:00
Chris Lattner
95b876e0b6 * Change Constant::getNullConstant to Constant::getNullValue
* Remove some unused code


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2324 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:25:43 +00:00
Chris Lattner
a00409ea1a * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2309 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-24 19:12:21 +00:00
Chris Lattner
efdd0a2c2e Add some basic checks of CallInst's.
Assert now returns from the current function on error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2308 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 22:11:52 +00:00
Chris Lattner
d231fc3254 * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2305 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 20:37:37 +00:00
Chris Lattner
68d892dc0d Move asmwriter/getStrValue cruft into AsmWriter.cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2300 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:53:33 +00:00
Chris Lattner
66e810be9f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2299 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:53:13 +00:00
Chris Lattner
d59b0af98b Remove gep::isStructSelector
CTor's do not allow names anymore for StoreInst objects


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2285 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 14:44:53 +00:00
Chris Lattner
f759c4e2a7 Remove old frivolous uses of getStrValue in a debugging statement
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2270 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 21:36:59 +00:00
Chris Lattner
a3b63668d4 Remove unneccesary cast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2269 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 21:36:29 +00:00
Chris Lattner
7a716added 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2268 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 21:36:08 +00:00
Chris Lattner
ea24924732 * Fix bug: test/Regression/Verifier/2002-04-13-RetTypes.ll
* Check that arguments match the method types of the method they live in


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2243 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 22:48:46 +00:00
Chris Lattner
ff5c296498 Minor bugfix for previous checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2241 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 21:11:04 +00:00
Chris Lattner
2761e9f076 * 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2240 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 20:53:41 +00:00
Chris Lattner
f33fa6fb57 Add Module::getTypeName
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2237 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:58:33 +00:00
Chris Lattner
94dc1f29cd * 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2235 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 18:34:38 +00:00
Chris Lattner
02b9399bae * Add comment
* Do not print a space before the * in a pointer type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2232 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:21:53 +00:00
Chris Lattner
23f0ce6102 Add new check of return value type matching ret instruction values types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2230 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:20:49 +00:00
Chris Lattner
e7eaf17158 Fix pure virtual function called exception!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2229 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 18:19:45 +00:00
Chris Lattner
73e214244f Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2216 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:48:49 +00:00
Chris Lattner
8a9acc9c72 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Move implementation to Function.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2212 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:39:58 +00:00
Chris Lattner
80dd50b4aa Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Move Argument implementation to Function.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2211 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:39:35 +00:00
Chris Lattner
991bc4eb80 Add a couple of extra casts to avoid extra #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2206 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:37:08 +00:00
Chris Lattner
1413747bb4 Add a couple of extra casts to avoid having to add #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2205 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:36:52 +00:00
Chris Lattner
f60c3fe8c8 *blush* somehow this debugging code got checked in...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2187 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:10:39 +00:00
Chris Lattner
b7653df085 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:03:57 +00:00
Chris Lattner
75cf7cf00d * Narrow AsmWriter interface
* Implement Value::print methods here instead of WriteToAssembly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2179 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:03:40 +00:00
Chris Lattner
968ddc921e ConstantHandling moved into VMCore library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2165 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 20:18:09 +00:00
Chris Lattner
66160427de Minor change to reflect that ConstantHandling is now part of VMCore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2163 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 20:15:12 +00:00
Chris Lattner
1907aba9f4 Move include/llvm/ValueHolderImpl.h to lib/VMCore/ValueHolderImpl.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2156 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 00:15:29 +00:00
Chris Lattner
b579400cd7 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2154 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:49:37 +00:00
Chris Lattner
25d15a7ff7 Remove some gross code by using the Value::dump method to do debug dumps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2150 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:33:13 +00:00
Chris Lattner
650b6e8e6c Remove some gross code by using the VAlue::dump method to do debug dumps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2149 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:32:25 +00:00
Chris Lattner
8da78afce3 Update comments
Implement Value::dump here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2148 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:31:46 +00:00
Chris Lattner
87182ae6ba Eliminate explicit use of Writer library, using debug dump output instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2147 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:31:23 +00:00
Chris Lattner
2fbfdcffd3 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 20:49:59 +00:00
Chris Lattner
f862b6d374 Fix Bug: test/Regression/Other/2002-04-07-InfConstant.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2142 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:42:53 +00:00