Commit Graph

2014 Commits

Author SHA1 Message Date
Chris Lattner 3448216f32 Testcase for bad constant handling
llvm-svn: 2133
2002-04-07 07:58:25 +00:00
Chris Lattner c0427b9ce9 Hopefully this change will make the makefile work for other people without hacking it.
llvm-svn: 2128
2002-04-07 06:18:40 +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 b0df8fdcb8 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

llvm-svn: 2126
2002-04-07 06:11:22 +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 7babb7cc66 Fix bug in testcase: no implementatino section make it not legal input, so
once the parser is fixed to handle the bug, it broke on the bad input.  :)

llvm-svn: 2123
2002-04-05 23:00:02 +00:00
Chris Lattner c10f379f5a New testcases
llvm-svn: 2122
2002-04-05 22:25:51 +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 f33ce864e1 * Delete getNumAbstractTypeUsers method
* Move addAbstractTypeUser method to Type.cpp

llvm-svn: 2120
2002-04-05 22:21:08 +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 4bc4297b5d Testcase that breaks recursive type processing
llvm-svn: 2117
2002-04-05 19:39:55 +00:00
Chris Lattner f0a88d107f * Allow purify builds to be enabled without hacking the makefile. Now you
just have to run: make ENABLE_PURIFY=1
* Add command to the link line that makes the broken GCC 3.0 compiler work
  without affecting 2.95.3

llvm-svn: 2116
2002-04-05 18:56:58 +00:00
Chris Lattner e2f2f54f0c s/MethodType/FunctionType
llvm-svn: 2115
2002-04-04 22:19:18 +00:00
Chris Lattner e17c1fde83 Remove backwards compatibility code
llvm-svn: 2114
2002-04-04 22:04:45 +00:00
Chris Lattner 57d2ba378b Make build work in release mode
llvm-svn: 2113
2002-04-04 19:35:24 +00:00
Chris Lattner 5b7efb83b1 Don't link in library that cannot be found, this should be removed eventually.
llvm-svn: 2111
2002-04-04 19:27:43 +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 a8bef43fbb PATypeHolder is now not a template
llvm-svn: 2106
2002-04-04 19:24:34 +00:00
Chris Lattner 53659e8676 Add debug support
llvm-svn: 2105
2002-04-04 19:24:11 +00:00
Chris Lattner 30752bd910 * 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

llvm-svn: 2104
2002-04-04 19:23:55 +00:00
Chris Lattner f269b9d236 Lexer doesn't create typehandle gross stuff now, parser does.
llvm-svn: 2103
2002-04-04 19:22:17 +00:00
Chris Lattner 9ba54b2f31 Call nodes are never equivalent
Shadow nodes are never critical.

llvm-svn: 2102
2002-04-04 19:21:51 +00:00
Chris Lattner d6c8dd1473 Add hack to get timing of analysis
llvm-svn: 2101
2002-04-04 19:21:27 +00:00
Chris Lattner d7b6c331ea * Eliminate commented out code
* Do not demand a shadow node when resolving
* Raise arbitrary inline limit

llvm-svn: 2100
2002-04-04 19:21:06 +00:00
Chris Lattner 0e9fa3a509 Deparameterize PATypeHolder
llvm-svn: 2099
2002-04-04 19:20:18 +00:00
Chris Lattner 16381517e3 Add method to get # nodes in the graph
llvm-svn: 2098
2002-04-04 19:20:00 +00:00
Chris Lattner 08a6e84038 Make the release build work
llvm-svn: 2097
2002-04-04 19:19:27 +00:00
Chris Lattner e92d7b4289 Fix the release build
llvm-svn: 2096
2002-04-04 19:18:17 +00:00
Chris Lattner 35ef4a1431 * Add dump() virtual function to AbstractType user to help track down bugs
* PATypeHolder is now a nontemplated class, because it was (almost) only
  ever instantiated with 'Type' as the parameter.

llvm-svn: 2095
2002-04-04 19:18:00 +00:00
Chris Lattner 4f47bb8ae6 Support resolving function arguments/return values to pointers that index
into other objects.

llvm-svn: 2094
2002-04-01 22:20:48 +00:00
Vikram S. Adve 313ca14124 Case numbers were not updated when Sparc.burg.in was changed
to add separate label for bitwise NOT operator.

llvm-svn: 2091
2002-04-01 20:28:48 +00:00
Chris Lattner 8c61bc0859 Move the PromoteMemoryToRegister pass to be run _after_ the raise pointer
references pass, so it is given the chance to do some good!

llvm-svn: 2089
2002-04-01 19:45:11 +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 1ec764b309 Allow scalars that point to multiple nodes when building the scalar map.
llvm-svn: 2087
2002-04-01 01:26:53 +00:00
Chris Lattner cf09a2a2cd Add extra case here to avoid getting spurious output
llvm-svn: 2086
2002-04-01 00:45:33 +00:00
Chris Lattner 7203e9f05a Avoid incorrectly adding null values to the scalar map!
llvm-svn: 2085
2002-04-01 00:45:09 +00:00
Chris Lattner f224b6b511 Critical shadow nodes no do not know their parent explictly.
llvm-svn: 2084
2002-04-01 00:15:30 +00:00
Chris Lattner b4648bb38f Minor cleanups (use dyn_cast instead of testing manually)
Shadow nodes now don't explicitly know their parent.

llvm-svn: 2083
2002-04-01 00:14:41 +00:00
Chris Lattner 6b06aa557e Allow merging of identical call nodes. Make the shadow node pointed to
by the call node noncritical before the call is destroyed.

llvm-svn: 2082
2002-04-01 00:13:56 +00:00
Chris Lattner a7b3b50381 Increase limit for perimeter
llvm-svn: 2081
2002-04-01 00:12:58 +00:00
Chris Lattner 71fc90439b Shadow nodes don't need to know their explicit parent, they just need to
know what type to be.

llvm-svn: 2080
2002-04-01 00:12:36 +00:00
Chris Lattner d63afb418e Unify the destruction code used for node pairs vs normal nodes. This was
causing a problem before because global values with incoming edges didn't
copy the incoming edges to the node they were being merged from, causing
the poolalloc pass to die.

llvm-svn: 2079
2002-03-31 19:57:44 +00:00
Vikram S. Adve 4973f73ad1 1. Fix a leftover bug in generating memory instructions.
2. Fix type used for TmpInstruction holding the return address.

llvm-svn: 2075
2002-03-31 19:07:35 +00:00
Vikram S. Adve 02662bd390 Added function getCallInstIndirectAddrVal() to set call interference
for that value.

llvm-svn: 2074
2002-03-31 19:04:50 +00:00
Vikram S. Adve 07c874547b Minor cleanup in printing constants. I think this included a bug
fix related to putting a read-write variable in a read-only section,
but I'm not sure now.

llvm-svn: 2073
2002-03-31 19:03:58 +00:00
Vikram S. Adve 429621cad0 Add method getCallInstIndirectAddrVal() to add call interference
for this value.

llvm-svn: 2072
2002-03-31 18:58:49 +00:00