Commit Graph

127 Commits

Author SHA1 Message Date
Chris Lattner 1a175715d0 Infrastructure for more compact bytecode files and REAL support for versioning
llvm-svn: 5716
2003-03-06 17:55:45 +00:00
Chris Lattner c8f563bed1 s/Method/Function in variable and method names
llvm-svn: 5715
2003-03-06 17:18:14 +00:00
Chris Lattner 3f57f18059 Continue simplifying error handling, s/method/function
llvm-svn: 5714
2003-03-06 17:15:19 +00:00
Chris Lattner 21ae41b31b Cleanup error handling constructs
llvm-svn: 5713
2003-03-06 17:03:28 +00:00
Chris Lattner e373d5a664 Pull common code out
llvm-svn: 5712
2003-03-06 16:50:32 +00:00
Chris Lattner 17f8686900 Use the std namespace explicitly
llvm-svn: 5708
2003-03-06 16:32:25 +00:00
Chris Lattner 5d96597042 Don't keep track of # big vs #small instructions seperately
llvm-svn: 5385
2003-01-21 20:13:49 +00:00
Chris Lattner 98cf1f5d64 - Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs.

llvm-svn: 4779
2002-11-20 18:36:02 +00:00
Chris Lattner 49f4242d2b - Fix a really nasty bug in the bytecode reader that caused it to fail
reading bytecode files with > 255 types in them, but only when optimization
    is enabled.  This was caused by GCC shrinking an enum to a single byte
    instead of a whole word.

llvm-svn: 4266
2002-10-23 00:51:54 +00:00
Chris Lattner 95fcefcb7e Wow, for some reason, when reading bytecode from stdin, we were only reading
4 bytes at a time.  Change this to read blocks of 4k

llvm-svn: 4265
2002-10-22 23:55:24 +00:00
Chris Lattner ca1725d3c8 Clean up code a bit, no functionality changes.
llvm-svn: 4162
2002-10-14 03:34:17 +00:00
Chris Lattner 2862d2ec71 There is no way to guarantee that constants are not forward referenced.
Handle forward referenced constants in a general way.  This fixes bug:
Assembler/2002-10-13-ConstantEncodingProblem.llx and allows the SPEC
197.parser benchmark to be built

llvm-svn: 4161
2002-10-14 03:33:02 +00:00
Chris Lattner 149376dee5 - Change Function's so that their argument list is populated when they are
constructed.  Before, external functions would have an empty argument list,
    now a Function ALWAYS has a populated argument list.

llvm-svn: 4149
2002-10-13 20:57:00 +00:00
Chris Lattner 69ce8674b5 - Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
reflect the fact that it's a range being defined.

llvm-svn: 4147
2002-10-13 19:39:16 +00:00
Chris Lattner bf3a099a62 Updates to work with recent Statistic's changes:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
    * Broke constructor to take two const char * arguments instead of one, so
      that indendation can be taken care of automatically.
    * Sort the list by pass name when printing
    * Make sure to print all statistics as a group, instead of randomly when
      the statistics dtors are called.
    * Updated ProgrammersManual with new semantics.

llvm-svn: 4002
2002-10-01 22:38:41 +00:00
Anand Shukla 8137896962 Changed uchar to unsigned char in function ParseBytecodeBuffer, because seemingly it affects opt in uncertain ways :)
llvm-svn: 3866
2002-09-20 20:57:54 +00:00
Misha Brukman 36698f8670 On the quest of eliminating unnecessary includes.
llvm-svn: 3715
2002-09-14 02:18:57 +00:00
Chris Lattner fc91ee91e8 Change the MallocInst & AllocaInst ctors to take the allocated type, not the
pointer type returned.

llvm-svn: 3711
2002-09-13 22:28:50 +00:00
Chris Lattner dfb3a2cd07 Eliminated the MemAccessInst class, folding contents into GEP class.
llvm-svn: 3487
2002-08-22 23:37:20 +00:00
Chris Lattner cd709cbf53 Load & StoreInst no longer derive from MemAccessInst, so we don't have
to handle indexing anymore

llvm-svn: 3485
2002-08-22 22:49:05 +00:00
Chris Lattner dc23308820 Emit an obnoxious warning message for bytecode that includes load/store
instructions that use indexing.  Convert them transparently into a pair
of instructions.

llvm-svn: 3431
2002-08-21 22:55:27 +00:00
Chris Lattner 243b5751a0 Fix bug: test/Regression/Assembler/2002-08-19-BytecodeReader.llx
llvm-svn: 3384
2002-08-19 16:48:21 +00:00
Chris Lattner 6a33371529 Turn off a debugging optimization that just slows bytecode reading down
llvm-svn: 3377
2002-08-18 00:38:32 +00:00
Chris Lattner c8d952ebba Fix stupid oversight of missing #include.
llvm-svn: 3367
2002-08-17 22:02:41 +00:00
Chris Lattner 51fa0ef925 - Finally nailed: test/Regression/Assembler/2002-08-16-ConstExprInlined.llx
- ParseConstantPool was resolving reference to value using the function
      slot # instead of the global slot #.
  - Bytecode reader changes:
    - Remove the failure<> template from Bytecode Reader
    - Remove extraneous #includes
    - s/method/function/ a bit
    - Eliminate the fwdRefs class that just added abstraction where it was not
      needed, making things more complex.
    - Use a vector instead of a list for function signatures.

llvm-svn: 3366
2002-08-17 22:01:27 +00:00
Chris Lattner 330b7ac76c Remove support for Not ConstantExpr. This simplifies the unary case to only
have to support the cast instruction, so the function is renamed to getCast.

llvm-svn: 3328
2002-08-14 18:24:09 +00:00
Chris Lattner 3cd8c56cbb Cleanup ConstantExpr handling:
* Correctly delete TypeHandles in AsmParser.  In addition to not leaking
   memory, this prevents a bug that could have occurred when a type got
   resolved that the constexpr was using
 * Check for errors in the AsmParser instead of hitting assertion failures
   deep in the code
 * Simplify the interface to the ConstantExpr class, removing unneccesary
   parameters to the ::get* methods.
 * Rename the 'getelementptr' version of ConstantExpr::get to
   ConstantExpr::getGetElementPtr

llvm-svn: 3161
2002-07-30 18:54:25 +00:00
Chris Lattner a13a2dac7e Cleanup ConstantExpr handling:
* Correctly delete TypeHandles in AsmParser.  In addition to not leaking
   memory, this prevents a bug that could have occurred when a type got
   resolved that the constexpr was using
 * Check for errors in the AsmParser instead of hitting assertion failures
   deep in the code
 * Simplify the interface to the ConstantExpr class, removing unneccesary
   parameters to the ::get* methods.
 * Rename the 'getelementptr' version of ConstantExpr::get to
   ConstantExpr::getGetElementPtr

llvm-svn: 3160
2002-07-30 18:54:22 +00:00
Chris Lattner 64eea749de *** empty log message ***
llvm-svn: 3105
2002-07-26 18:40:14 +00:00
Chris Lattner 68c7b71ea6 Break line to fit 80 columns
llvm-svn: 3083
2002-07-25 15:40:04 +00:00
Chris Lattner 36d2c7c39b Register the WriteBytecodePass
llvm-svn: 3033
2002-07-23 19:56:44 +00:00
Chris Lattner a896b08b5c *** empty log message ***
llvm-svn: 3002
2002-07-23 17:52:38 +00:00
Chris Lattner 980ddf5854 ConstExpr::getelementptr now takes a vector of Constants not Values
llvm-svn: 2948
2002-07-18 00:14:27 +00:00
Anand Shukla f7d7871656 added std:: to pair
llvm-svn: 2917
2002-07-16 00:04:57 +00:00
Anand Shukla 09da3b881f added std:: to vector
llvm-svn: 2916
2002-07-16 00:04:15 +00:00
Vikram S. Adve 590bc74ca4 Add support for writing ConstantExpr nodes.
llvm-svn: 2899
2002-07-14 23:08:30 +00:00
Vikram S. Adve c1b6474a60 Write out the plane for types first, since values of primitive types
may be constructed by expressions of other types (and so the
contents of the primitive type planes must come after all types).
Use a helper function outputConstantsInPlane in outputConstants to
do this.

llvm-svn: 2898
2002-07-14 23:07:51 +00:00
Vikram S. Adve 827d91f257 Use a helper function outputConstantsInPlane in outputConstants.
llvm-svn: 2897
2002-07-14 23:05:53 +00:00
Vikram S. Adve a336afd5d9 Add support for reading ConstantExpr nodes.
Add class ConstantFwdRefs to resolve forward references to constants
and to globals. (Hmm... this class could be renamed I guess.)

llvm-svn: 2896
2002-07-14 23:05:09 +00:00
Vikram S. Adve 16bcca5ee4 Add support for reading ConstantExpr nodes.
Add class ConstantFwdRefs to resolve forward references to constants
and to globals (unified old code for globals into this).

llvm-svn: 2895
2002-07-14 23:04:18 +00:00
Chris Lattner 0a30bda280 Convert tabs to spaces
llvm-svn: 2805
2002-06-30 16:04:37 +00:00
Anand Shukla eaa2e7204e changes to make it compatible with 64bit gcc
llvm-svn: 2790
2002-06-25 20:44:04 +00:00
Chris Lattner 7076ff29ed MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2778
2002-06-25 16:13:21 +00:00
Chris Lattner 64802e4db8 Fix constness problem
llvm-svn: 2759
2002-06-05 17:49:40 +00:00
Chris Lattner b469cf8361 Fix constness problems now that the cast operators preserve the constness
of their argument

llvm-svn: 2758
2002-06-05 17:38:28 +00:00
Chris Lattner 181cc32365 Replace all usages of Type::isPointerType with isa<PointerType>
llvm-svn: 2486
2002-05-06 16:15:30 +00:00
Chris Lattner d5a847057b Eliminate duplicate or unneccesary #include's
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner ca14237696 Split ConstantVals.h into Constant.h and Constants.h
llvm-svn: 2378
2002-04-28 19:55:58 +00:00
Chris Lattner 02deb39dd3 Remove unneccesary #include
llvm-svn: 2352
2002-04-28 04:50:19 +00:00
Chris Lattner bc1f09299e Make debugging code not use getStrValue
llvm-svn: 2295
2002-04-18 18:14:56 +00:00