Commit Graph

1410 Commits

Author SHA1 Message Date
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
fd63f25fbd Simplify code
Remove unneccesary getID variant for module's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2353 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:50:54 +00:00
Chris Lattner
09c66f07c0 Remove unneccesary #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2352 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:50:19 +00:00
Chris Lattner
96d0f3011a Module's are no longer Value subclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2351 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:50:00 +00:00
Chris Lattner
3bed5b46ba Fix signed/unsigned comparison warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2350 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:49:43 +00:00
Chris Lattner
d80e973cec Initial checkin of simple&fast SSA based GCSE algorithm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2338 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 00:47:11 +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
f2361c5e5c Changes because the Terminator::getSuccessor function now FAILS if successor
IDX is out of range instead of returning null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2332 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 03:15:45 +00:00
Chris Lattner
35504209a0 Use the cast<> operator in favor of C style casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2331 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 03:14:39 +00:00
Chris Lattner
8e343330a5 * Change Constant::getNullConstant to Constant::getNullValue
* Add support for pool allocating array allocations of varying size


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2329 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:29:32 +00:00
Chris Lattner
ee7eafa054 Add support for tracking array allocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2328 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:28:41 +00:00
Chris Lattner
2aa51be083 Allow the inline limit to be modified on the commandline for debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2327 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:27:48 +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
1a18b7cf80 Change Constant::getNullConstant to Constant::getNullValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2323 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:25:14 +00:00
Chris Lattner
87e873bd3d Simplify code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2322 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:24:17 +00:00
Vikram S. Adve
d23a229c4c Don't record instructions for copying method arguments in the
AddedInstrns sets for the first machine instruction.  It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken.  Instead, use a separate set for the function entry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2318 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:46:28 +00:00
Vikram S. Adve
0bc0516078 Don't pad spills and temp. stack areas for alignment.
Freeze auto vars and spill areas when their sizes are used
for computing other offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2317 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:43:45 +00:00
Vikram S. Adve
31f78c4f6b Major changes to how int and FP arguments are handled. Varargs
function calls were simply wrong; other functions were just not
using all available registers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2316 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:42:21 +00:00
Vikram S. Adve
6d78311fd2 Added functions to compute which register, if any, to use
for a particular argument in a list of arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2315 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:40:24 +00:00
Vikram S. Adve
dbc4fad577 Insert copy operations for FP arguments to a varargs function,
to copy the FP arg. to an integer.  Necessary so that the
register allocator has two different live ranges for the FP value
and the int. argument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2314 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:37:51 +00:00
Vikram S. Adve
a4a943dd5a Implementation of class MachineFrameInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2313 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:35:27 +00:00
Vikram S. Adve
4876209aa6 Don't record instructions for copying method arguments in the
AddedInstrns sets for the first machine instruction.  It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken.  Instead, use a separate set for the function entry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2312 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:34:15 +00:00
Vikram S. Adve
93240fe6b1 Improve printing during dumps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:31:18 +00:00
Vikram S. Adve
03d33bd264 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2310 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:30: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
7b5577b371 Programs that actually free memory were broken
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2307 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 22:11:30 +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
bac27a49b1 Add new api for basic signal handling for tools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2302 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 19:53:53 +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
0154505ab7 Add a fixme so that we don't forget this is broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2298 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:52:03 +00:00
Chris Lattner
4b1de8eb99 * getAsString requires that the input array is string compatible, so
assert it.
* Use WriteAsOperand instead of getStringValue for constants


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2296 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:15:38 +00:00
Chris Lattner
ccc259635a Make debugging code not use getStrValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2295 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:56 +00:00
Chris Lattner
6228106e9f Just use << isntead of forcing getStrValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2294 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:40 +00:00
Chris Lattner
595d2f670a Print argument scalars as ellipses instead of boxes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2293 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:19 +00:00
Chris Lattner
dd841aeb8d Significantly rework InstructionCombining to work better and to be cleaner.
We now use an InstVisitor to delegate to different cases that we are
interested in handling.  We also fix the FIXME's by adding users to the
worklist when appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2292 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 17:39:14 +00:00
Chris Lattner
2a632551a7 Convert SCCP over to use InstVisitor instead of hand crafted switch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2286 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 15:13:15 +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
6428a27ee3 GEP instructions can never be constant propogated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2284 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 14:44:13 +00:00
Chris Lattner
27e3420ce9 Store instructions always return void, so they never get a name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2283 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 14:43:54 +00:00
Chris Lattner
3b87167ac4 Correctly transform dependant arguments, allowing the perimeter bm to work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2282 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 14:43:30 +00:00
Chris Lattner
2012d5e33f Fix a bug printing out %c formated characters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2277 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-17 17:43:01 +00:00
Chris Lattner
ef35ff066c Inline indirect function calls that are only capable of calling one function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2275 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-17 03:42:51 +00:00
Chris Lattner
fe14568a81 Make data structure acurately get ALL edges, even loads of null fields of
nodes that are not shadow nodes

This fixes em3d to be _correct_ if not optimial


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2274 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-17 03:24:59 +00:00
Chris Lattner
4a94a70250 Add casts for documentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2272 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 22:10:52 +00:00
Chris Lattner
169bffe28a * Clean up the code a bit
* Allow structs with negative offsets.  This enables the em3d benchmark to
  be made typesafe.  In this case, the struct had an array as the first
  element, so a negative index was ok (the expr was -8 + 8x)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2271 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 22:10:36 +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
7650b94c75 * Remove the concept of a critical shadow node
* Make the function pointer argument explicit for a call nodes
* Eliminate unreachable global values
* Merge call nodes that are identical


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2266 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 20:39:59 +00:00
Chris Lattner
212be2e569 * Eliminate ArgDSNode's completely, now rely on scalar map
* Fold call nodes that are indistinguishable for each other.  This is a big
  win for external functions like sqrt, which would multiply dramatically
  before.
* Global nodes with no edges to or from them are now eliminated from the graph.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2257 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 03:44:03 +00:00
Chris Lattner
09b9212b6e run an extra pass after a function has been transformed to eliminate
obviously duplicate loads of the pool base.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2255 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 22:42:23 +00:00
Chris Lattner
e4a94f2b0f Only print debug message if DEBUG_RA is on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2254 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 22:41:48 +00:00
Chris Lattner
167b9629e1 Only emit message if DEBUG_RA is on
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2252 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 20:36:15 +00:00
Chris Lattner
8d70cd9607 Eliminate cast of same type instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-15 19:45:29 +00:00
Chris Lattner
649f5dd77a * s/Method/Function
* Fix bug where the character after a % was being discarded


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2248 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:15:24 +00:00
Chris Lattner
3e0e520728 Turn off debug output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2247 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-14 06:14:41 +00:00
Chris Lattner
441d25a9f6 * Allow datasize to be specified on the commandline
* Build new datatypes correctly
* Transform instructions that return null pointers from functions to return
  a null index.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2244 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 23:13:18 +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
ddcbd34f56 * Give alloca's for pool descriptors better names than "pool<n>".
* Fill in the pool descriptor links in the pool descriptors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2239 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 19:52:54 +00:00
Chris Lattner
027a6755f8 * Add names to the symbol table for pool types and modified types
* Handle more complex structure so that power works almost
* Fix bug with pooldestroy call where we passed in the size of the object
  instead of the pool to destroy.  bisort is now pool allocated successfully!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2238 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-13 19:25:57 +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
5146a7ddd4 Implement function rewriting to use offsets instead of pointers in programs.
This now works with treeadd at least, and perhaps other programs as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2233 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-12 20:23:15 +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
f678dc6469 Handle the FP format problem, where outputed FP constants were not precise
enough.  This fixes compilation of the health benchmark.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2228 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-11 21:44:02 +00:00
Chris Lattner
265b083e84 * Add documentation
* Split the CleanGCC pass into two passes, a global pass and an IP pass.
  Before it was just a global pass, but it did illegal things to the
  module, which broke other passes that were being scheduled with it by
  gccld.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2224 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:33:11 +00:00
Chris Lattner
5648b58a19 Print out what the root of the call graph is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2223 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:31:44 +00:00
Chris Lattner
ca180c7ca3 Implement TODO, fixing bug:
test/Regression/Transforms/LevelRaise/2002-04-09-MissedRaise.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2219 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 20:53:36 +00:00
Chris Lattner
e06e9146ee 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@2217 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:59:31 +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
b62fc4a9b1 Eliminate unneccesary extraneous iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2215 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:46:27 +00:00
Chris Lattner
4674804d29 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

Rename some yacc type names to be more concise.  Change jump table to use
a vector instead of a list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2214 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:41:42 +00:00
Chris Lattner
b972f95b15 Update comment to reflect class name change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2213 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:40:40 +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
0ac5429ff0 Add explicit #includes of Function.h to make up for the removed #include
in iOther.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2209 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:08:28 +00:00
Chris Lattner
42a412711c Add #includes to make up for #includes pruned out of header files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2207 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:37:46 +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
184b2fa1b9 Use opaque decl instead of #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2203 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:35:38 +00:00
Chris Lattner
cc5933c47e iUse new form of pop_back to make code more concise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2202 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:02:02 +00:00
Chris Lattner
9bbf99de5f No need to reserve space, erasing does not change the size of the container.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2201 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:01:21 +00:00
Chris Lattner
73c8d7520f Delete NOP instructions as they are eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2199 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 15:05:04 +00:00
Chris Lattner
af50d00829 * Add a file header with some information
* Delete the DelaySlotInfo objects created by the SchedulingManager class.
  These leaked objects were accounting for 3/4 of the memory leaked by the
  backend, so this is a relatively major win.
* Reorganize SchedulingManager::getDelaySlotInfoForInstr so that it has
  better code locality (making it easier to read).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2197 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:45:58 +00:00
Chris Lattner
918c4ecb0c Don't leak all of the Loop objects created...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2196 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:43:19 +00:00
Chris Lattner
1d21f3eb1d * Add a useful file comment
* Move InsertPrologEpilogCode class to PrologEpilogCodeInserter.cpp
   -> Among other things, this eliminates the need for the minstrVec static
      global array.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2195 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:21:26 +00:00
Chris Lattner
6111a87b3a 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2194 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:20:15 +00:00
Chris Lattner
bcd6cc8951 Move the InsertPrologEpilogCode class out of the Sparc.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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2193 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:18:31 +00:00
Chris Lattner
9aa697b82e Include prototype for interface to PrologEpilogCodeInserter.cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2192 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:16:36 +00:00
Chris Lattner
c1ffdb10f3 Use new higher level isFloatingPoint() function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2191 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:16:08 +00:00
Chris Lattner
f3dd05ca03 Clean up the ownership model a bit so that nodes actually get deleted more
frequently. This still leaks edges quite a bit, but it leaks no nodes
(I think).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2190 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:15:33 +00:00
Chris Lattner
fb005fe5c2 * General cleanups
* In calcLiveVarSetsForBB, do not leak a ValueSet every time the function
  is called!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2189 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:14:14 +00:00
Chris Lattner
0b0ffa0800 Convert AddedInstrMapType to contain AddedInstrns by value instead of by
pointer so that they do not all get leaked!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2188 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:13:04 +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
244212a80b GCC3.0 is reported to die without an alloca definition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2186 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 03:37:11 +00:00
Chris Lattner
7884cd17aa Don't leak memory like a seive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2185 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 23:09:07 +00:00
Chris Lattner
69a34cddaf Value cannot be directly instantiated. I think that this code was TRYING to
make a PHI node, although it was badly broken.  This keeps tests passing, so
we'll go with it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2184 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:05:54 +00:00
Chris Lattner
bc55a3140c Remove extranous #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2183 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:05:10 +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
237e6d10f2 s/Method/Function
Remove extraneous #includes of llvm/Assembly/Writer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2178 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:03:00 +00:00
Chris Lattner
4d669b510c s/method/function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2177 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:01:15 +00:00
Chris Lattner
35e309ab01 llvm/Assembly/Writer.h is unneccesary except for extreme output
isLabelType is obsolete


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2176 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:59:36 +00:00
Chris Lattner
c8a79af27d isLabelType is obsolete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2175 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:59:08 +00:00
Chris Lattner
e6d4ec3d5a Play around with #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2174 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:58:53 +00:00
Chris Lattner
ab44871a5d Add #includes that were pruned from already #included files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2173 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:56:50 +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
afca8bbf06 Library bumped up out of Assembly directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2164 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 20:17:06 +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
3c9e93b7e5 Moved assembly writer library into its own top level directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2162 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 19:42:33 +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
94202988a8 Remove asmwriter library from link line, because the useful contents of it
have been incorporated into the vmcore library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2153 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 22:35:30 +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
Chris Lattner
ace9103ebe Fix bug: test/Regression/Other/2002-04-07-HexFloatConstants.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2141 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:37:11 +00:00
Chris Lattner
b55679d427 Add a better comment to explain what is going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2139 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:31:26 +00:00
Chris Lattner
74dbc99777 Remove debugging code accidentally checked in!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2137 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:13:29 +00:00
Chris Lattner
275da86ab0 Add support for hexadecimal FP constants!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2135 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:10:41 +00:00
Chris Lattner
05c05ea9ca Implement constant propogation of multiply and divide instructions!!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2134 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 08:10:14 +00:00
Chris Lattner
417081c6b3 * 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2127 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 06:14:56 +00:00
Chris Lattner
92940ac1c0 Enable better debug output. When debugging the type system, print out the
type tables after reading a bytecode file to make sure they are ok


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2126 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 06:11:22 +00:00
Chris Lattner
339ba45f10 * Reenable apparently neccesary code, that breaks testcases when enabled,
but causes MANY FUNDAMENTAL PROBLEMS when not enabled. :(
* Add debugging function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2125 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-06 00:21:11 +00:00
Chris Lattner
af93dbcc95 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2124 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-05 23:02:46 +00:00
Chris Lattner
3855f2f951 * 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2121 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-05 22:25:26 +00:00
Chris Lattner
cecb520d1c Clean up debugging code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2119 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-05 19:53:06 +00:00
Chris Lattner
3f59b7e933 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2118 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-05 19:44:07 +00:00
Chris Lattner
2aac6bf66a s/MethodType/FunctionType
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2115 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 22:19:18 +00:00
Chris Lattner
a364ad0f9d Make build work in release mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2113 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:35:24 +00:00
Chris Lattner
6a6931e287 Make the release build work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2109 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:26:26 +00:00
Chris Lattner
aa06d2c103 * Add debug support for PATypeHolder
* PATypeHolder is now not a template


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2108 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:26:02 +00:00
Chris Lattner
22c3982cd3 Make the release build compile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2107 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:24:48 +00:00
Chris Lattner
61f64f9b6a PATypeHolder is now not a template
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2106 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:24:34 +00:00
Chris Lattner
b3afb1f076 Add debug support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2105 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:24:11 +00:00
Chris Lattner
8b88b3b5bf * Make PATypeHolder not take a type argument
* Eliminate by inlining the old newTH, newTH, and TypeDone functions
* OPAQUE is now just a token that gets returned by the lexer, not a type
  Parser now creates type, not lexer


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2104 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:23:55 +00:00