Commit Graph

326 Commits

Author SHA1 Message Date
Reid Spencer 2df70a7e2f Per code review:\
* Get rid of memory leaks on exception \
* Provide better comments of how the memory handling works

llvm-svn: 17876
2004-11-16 06:41:05 +00:00
Chris Lattner 642f8c5ed4 Use a per-function flag bit to indicate whether or not there is a function
body for the function.

llvm-svn: 17858
2004-11-15 22:38:52 +00:00
Chris Lattner 7d04cdab77 Make *SURE* to null out the pointer before throwing an exception, otherwise
the dtor for the BytecodeReader class will try to free it again!

llvm-svn: 17856
2004-11-15 21:55:33 +00:00
Chris Lattner 36c95e38b0 Cleanups. Null out pointer after freeing it for paranoia
llvm-svn: 17855
2004-11-15 21:55:06 +00:00
Chris Lattner 55d85402f6 Make functions default to having external linkage if they have no
FunctionBlock.

llvm-svn: 17853
2004-11-15 21:43:03 +00:00
Reid Spencer fcf5ef7a4a Changes necessary to enable linking of archives without LLVM symbol tables.
llvm-svn: 17811
2004-11-15 01:20:11 +00:00
Reid Spencer 6456d2f26d Moved to lib/Bytecode/Archive.
llvm-svn: 17800
2004-11-14 22:38:32 +00:00
Reid Spencer 0ce0d938b1 Add wrappers to get defined symbols from bytecode
llvm-svn: 17770
2004-11-14 22:00:48 +00:00
Reid Spencer f01fc688ba Simplify handling of decompression
llvm-svn: 17769
2004-11-14 22:00:09 +00:00
Reid Spencer 0e36b8afb9 Simplify decompression code by using the high level interface to the Compressor
llvm-svn: 17768
2004-11-14 21:59:21 +00:00
Misha Brukman b2e062c9d5 Mark an unmaterialized function as having GhostLinkage
llvm-svn: 17748
2004-11-14 21:02:55 +00:00
John Criswell 623dc9c5c0 Recognize compressed LLVM bytecode files.
This should fix the problem of not being able to link compressed LLVM
bytecode files from LLVM libraries.

llvm-svn: 17648
2004-11-09 19:37:07 +00:00
Reid Spencer 796e531721 * Comments & cleanup per CL code review.
* Accept 'llvc' as signature for compressed bytecode

llvm-svn: 17579
2004-11-07 18:20:55 +00:00
Reid Spencer 899ad356f5 Add comments per CL code review.
llvm-svn: 17578
2004-11-07 18:19:00 +00:00
Reid Spencer 2e49204e0f Add support for compressed bytecode
llvm-svn: 17535
2004-11-06 23:17:23 +00:00
Reid Spencer c686a2b64b Implement the GetBytecodeSymbols interface function to extract just the
externally visible defined symbols from a bytecode file.

llvm-svn: 17503
2004-11-06 08:56:40 +00:00
Reid Spencer 49cc2cf279 Fix library name.
llvm-svn: 17305
2004-10-28 05:32:01 +00:00
Reid Spencer c1c320c335 We won't use automake
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer 6a11a75f31 Initial automake generated Makefile template
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Chris Lattner eba3f46b2f Do not erroneously accept revision 6 bytecode files when the format hasn't
been defined yet!

llvm-svn: 17063
2004-10-16 18:56:02 +00:00
Chris Lattner 770709befe Add support for undef, unreachable, and function flags
llvm-svn: 17054
2004-10-16 18:18:16 +00:00
Chris Lattner 0bc0f1d8de Don't print a bunch of metrics that are meaningless for external functions
llvm-svn: 17017
2004-10-15 19:40:31 +00:00
Chris Lattner 315157df62 Fit to 80 cols
llvm-svn: 16964
2004-10-14 01:49:34 +00:00
Chris Lattner da6a885076 Fit in 80 columns
llvm-svn: 16962
2004-10-14 01:39:18 +00:00
Reid Spencer ace94df71f Update to reflect changes in Makefile rules.
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer b84cbf2725 Initial version of automake Makefile.am file.
llvm-svn: 16885
2004-10-10 20:43:57 +00:00
Misha Brukman 349717934a Fix doxygen comment
llvm-svn: 16542
2004-09-28 16:57:46 +00:00
Chris Lattner d7dc1ecd42 The system ranlib on darwin occasionally adds two extra newlines to the
end of files, breaking the CFE build.  As a gross hack around this,
ignore any trailing garbage on bytecode files.  Thanks to Brian for digging
in and identifying the problem.

llvm-svn: 16525
2004-09-27 16:59:06 +00:00
Reid Spencer 6614946443 Convert code to compile with vc7.1.
Patch contributed by Paolo Invernizzi. Thanks Paolo!

llvm-svn: 16368
2004-09-15 17:06:42 +00:00
Misha Brukman 14756e8e1c Unbreak doxygen, according to Reid.
llvm-svn: 16298
2004-09-12 20:56:38 +00:00
Misha Brukman dbcd4fda49 Fix code spacing/alignment
llvm-svn: 16297
2004-09-12 20:47:33 +00:00
Reid Spencer 14072a3f54 Change interface to use correct typedef so it will always compile.
llvm-svn: 16281
2004-09-11 04:22:58 +00:00
Reid Spencer c90a765368 Print the dependent libraries when dumping bytecode.
llvm-svn: 16275
2004-09-11 04:14:07 +00:00
Alkis Evlogimenos a5c04ee50f Fixes to make LLVM compile with vc7.1.
Patch contributed by Paolo Invernizzi!

llvm-svn: 16152
2004-09-03 18:19:51 +00:00
Reid Spencer 7c16caa336 Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.

llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Reid Spencer 366c457e08 Correctly compute the number of compaction tables.
llvm-svn: 16064
2004-08-27 00:43:51 +00:00
Reid Spencer 79725deeb0 Add a wrapper for extraction of the dependent libraries from a bytecode
file.

llvm-svn: 16037
2004-08-24 22:46:20 +00:00
Reid Spencer f341d29514 Rearrange output a little to make it nicer.
llvm-svn: 16036
2004-08-24 22:45:32 +00:00
Reid Spencer 2807accdc5 Bytecode Analyzer Cleanup:
- Rearrange output order to make more sense
- Make only the function level output count as "detailed"
- Output dump output directly to stream, don't buffer it.
- Fix counting of block sizes
- Implement new handlers for number of types, dependent libs, target triple
- Compute the size of block headers.

llvm-svn: 15985
2004-08-21 20:58:19 +00:00
Reid Spencer 9874c63314 Get rid of an extraneous local variable.
llvm-svn: 15984
2004-08-21 20:53:56 +00:00
Reid Spencer 6639333f20 Two Changes:
- Pass the output stream to the analyzer so it can write its output there
  directly instead of buffering it.
- Don't pass a boolean to ParseBytecode because its not needed any more.

llvm-svn: 15983
2004-08-21 20:52:03 +00:00
Reid Spencer 8631bc3aaa Add boolean file format flags in preparation for version 5 bytecode.
Remove the "processFunctions" boolean from ParseBytecode as it is no
longer needed. This is part of avoiding double reading of functions
when analyzing bytecode.

llvm-svn: 15982
2004-08-21 20:50:49 +00:00
Reid Spencer 191aa30ac1 Bytecode Reader Cleanup:
- provide the correct conversion for ModuleBlockID in read_block (a potential
  bug but not actually exploited because reading module block ids doesn't
  use read_block).
- install support for handleTypeList handler
- install support for handleDependentLibrary handler
- install support for handleTargetTriple handler
- clean up comments, output strings,
- ensure that processing function arguments doesn't SIGSEGV if one of the
  arguments is a null pointer (yeah, it happened .. weird)
- prepare for version 5 bytecode by documenting what will change.

llvm-svn: 15981
2004-08-21 20:49:23 +00:00
Brian Gaeke 0220904e7a Packed types, brought to you by Brad Jones
llvm-svn: 15938
2004-08-20 06:00:58 +00:00
Reid Spencer c3e436427b Bytecode File Format Changes:
- File format version number bumped to 4
- Writer will now align nothing
- Reader now only expects alignment for version 3 or earlier

llvm-svn: 15875
2004-08-17 07:45:14 +00:00
Reid Spencer 24fa5fd29b Turn a use of intptr_t into a reinterpret_cast<uint64_t> instead to get
rid of compilation warnings on some platforms.

llvm-svn: 15512
2004-08-04 22:56:46 +00:00
Chris Lattner bba09b3f7f Make getGlobalTableValue not use getTypeSlot, this speeds up the bc reader
by 5% on eon

llvm-svn: 15452
2004-08-04 00:19:23 +00:00
Chris Lattner cd84396b58 Do not do a linear std::find to reconstruct information we had, but later threw
away.  This speeds up by .bc reader by 30% in a profile build on 252.eon.

llvm-svn: 15450
2004-08-03 23:41:28 +00:00
Chris Lattner 7ef55da237 Simplify code and silence warning
llvm-svn: 15255
2004-07-27 02:34:49 +00:00
Chris Lattner 74635dc879 Fix a serious bug in the double constant reader. In particular, because
(At[3] << 24) is an int type and it is being coerced to uint64_t, it was
getting sign extended, causing us to get FFFFFFFFxxxxxxxx constants all of
the time.

llvm-svn: 15224
2004-07-25 23:15:44 +00:00