Commit Graph

91 Commits

Author SHA1 Message Date
Chris Lattner
df04f1b80e read a few instructions, fix some bugs. This is enough to be able to round
trip function bodies like this:

define <2 x i64> @foo(<2 x i64> %x, <2 x i64> %y) {
        %tmp4 = bitcast <2 x i64> %y to <8 x i16>               ; <<8 x i16>> [#uses=1]
        %tmp5 = bitcast <2 x i64> %x to <8 x i16>               ; <<8 x i16>> [#uses=1]
        %tmp = add <8 x i16> %tmp5, %tmp4               ; <<8 x i16>> [#uses=1]
        %tmp6 = bitcast <8 x i16> %tmp to <2 x i64>             ; <<2 x i64>> [#uses=1]
        ret <2 x i64> %tmp6
}

llvm-svn: 36640
2007-05-02 04:27:25 +00:00
Chris Lattner
f81f6e154c use the correct code for binop instrs
llvm-svn: 36639
2007-05-02 04:26:36 +00:00
Chris Lattner
699d9b76c1 fix build with non-buggy compilers
llvm-svn: 36621
2007-05-01 07:03:37 +00:00
Chris Lattner
4795aed9ec handle function-level forward references, read binops.
llvm-svn: 36620
2007-05-01 07:01:57 +00:00
Chris Lattner
6528334ab7 implement materializeModule, force deallocation of vector memory when we
are done with them, start implementing ParseFunctionBody

llvm-svn: 36617
2007-05-01 05:52:21 +00:00
Chris Lattner
7544cfb05c The stream to read from is now an ivar
llvm-svn: 36615
2007-05-01 05:01:34 +00:00
Chris Lattner
cfd5b13e25 implement scafolding for lazy deserialization of function bodies
llvm-svn: 36614
2007-05-01 04:59:48 +00:00
Chris Lattner
f7ccdfbcc4 write the symbol table for function bodies
llvm-svn: 36610
2007-05-01 02:14:57 +00:00
Chris Lattner
14cd3180ca encode all of the instructions.
llvm-svn: 36609
2007-05-01 02:13:26 +00:00
Anton Korobeynikov
081d3bdd9f Implement visibility checking during linking. Also implement protected
visibility support for bitcode.

llvm-svn: 36577
2007-04-29 20:56:48 +00:00
Chris Lattner
eee1022086 Switch the bitcode reader interface to take a MemoryBuffer instead of knowing
anything about disk I/O itself.  This greatly simplifies its interface -
eliminating the need for the ReaderWrappers.cpp file.

This adds a new option to llvm-dis (-bitcode) which instructs it to read
the input file as bitcode.  Until/unless the bytecode reader is taught to
read from MemoryBuffer, there is no way to handle stdin reading without it.

I don't plan to switch the bytecode reader over, I'd rather delete it :),
so the option will stay around temporarily.

llvm-svn: 36554
2007-04-29 07:54:31 +00:00
Chris Lattner
5e7db3efcd Fix this to use the right block ID
llvm-svn: 36550
2007-04-29 05:49:09 +00:00
Chris Lattner
ffbd0c541a moved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.
llvm-svn: 36549
2007-04-29 05:31:57 +00:00
Anton Korobeynikov
07528e335c This is not "FIXME" anymore
llvm-svn: 36541
2007-04-28 14:57:59 +00:00
Chris Lattner
a9228a9ef7 start code for writing out instructions. Separate BB#s from normal value
#'s.

llvm-svn: 36472
2007-04-26 05:53:54 +00:00
Chris Lattner
0a07635bdd enumerate BB's separately from other function values.
llvm-svn: 36467
2007-04-26 04:42:16 +00:00
Chris Lattner
c1acf6a1af add support for incorporating and purging functions to the value enumerator
llvm-svn: 36465
2007-04-26 03:50:57 +00:00
Chris Lattner
c6037e4be4 improve a comment
llvm-svn: 36464
2007-04-26 03:32:43 +00:00
Chris Lattner
726ec35588 move some code around, fix a bug in the reader reading globalinits (which
I just introduced), stub out function reading, purge aggregate values from
the value table before reading functions.

llvm-svn: 36463
2007-04-26 03:27:58 +00:00
Chris Lattner
c5a4c7c69a add bitcode alias support
llvm-svn: 36461
2007-04-26 02:46:40 +00:00
Chris Lattner
2d9d9a4bcf ensure that every error return sets a message (and goes through Error, for
easy breakpointing).

Fix bugs reading constantexpr geps.  We now can disassemble kc++ global
initializers.

llvm-svn: 36398
2007-04-24 18:15:21 +00:00
Chris Lattner
107680bd42 fix memory leak
llvm-svn: 36397
2007-04-24 17:22:05 +00:00
Chris Lattner
30fd018c93 implement reading and writing of constant exprs.
llvm-svn: 36394
2007-04-24 07:07:11 +00:00
Chris Lattner
ce97f22311 implement support for reading aggregate constants, including handling forward
constant references, etc.

llvm-svn: 36391
2007-04-24 05:48:56 +00:00
Chris Lattner
77c83b943d add supprot for FP constants, wide integers, and fix the encoding of MININT
llvm-svn: 36390
2007-04-24 04:04:35 +00:00
Chris Lattner
eff23e347b read basic constants: null, undef, integers <= 64bits
llvm-svn: 36389
2007-04-24 03:30:34 +00:00
Chris Lattner
d5749518a1 fix off-by-one computing size for section abbrevs
llvm-svn: 36388
2007-04-24 03:29:47 +00:00
Chris Lattner
67dedcbc58 move check to the right place :)
llvm-svn: 36386
2007-04-24 00:21:45 +00:00
Chris Lattner
e1a864cccf track global inits
llvm-svn: 36385
2007-04-24 00:18:21 +00:00
Chris Lattner
dd8df9ae56 Emit module-level constants.
llvm-svn: 36384
2007-04-24 00:16:04 +00:00
Chris Lattner
5e06e0faf4 Read global symtab
llvm-svn: 36378
2007-04-23 21:26:05 +00:00
Chris Lattner
ed7414171f fix off-by one
llvm-svn: 36377
2007-04-23 21:23:41 +00:00
Chris Lattner
ada7a04469 write out the symtab for globals.
llvm-svn: 36374
2007-04-23 20:35:01 +00:00
Chris Lattner
f384c24a4d implement reading of abbrevs, and writing of abbreviated global varrs.
llvm-svn: 36367
2007-04-23 18:58:34 +00:00
Chris Lattner
5510ac5a56 first part of implementation of abbrevs. The writer isn't fully there yet and the
reader doesn't handle them at all yet.

llvm-svn: 36363
2007-04-23 16:04:05 +00:00
Chris Lattner
7f11318d37 promote LLVMBitCodes to be a public header
llvm-svn: 36358
2007-04-23 01:01:37 +00:00
Jeff Cohen
577e8b8c63 Fix build problem with Gentoo 4.1.1-r3.
llvm-svn: 36348
2007-04-22 18:49:32 +00:00
Chris Lattner
21fd470c8c add llvm ir bitcode definition file
llvm-svn: 36337
2007-04-22 07:03:00 +00:00
Chris Lattner
23910ea720 build the bitcode dir
llvm-svn: 36332
2007-04-22 06:26:05 +00:00
Chris Lattner
b7c184cbc1 Initial support for writing bitcode files. This currently only writes types,
the type symtab, and global/function protos, and is missing the important
size optimization, but it is a place to start.

llvm-svn: 36331
2007-04-22 06:24:45 +00:00
Chris Lattner
54e48ee45c Initial support for reading bitcode files. They currently only read types,
the type symtab, and global/function protos, and are missing the important
size optimization, but it is a place to start.

llvm-svn: 36330
2007-04-22 06:23:29 +00:00