Devang Patel
c195f74dee
Write and read metadata attachments.
...
llvm-svn: 82259
2009-09-18 19:26:43 +00:00
Dan Gohman
6166bac383
Add const qualifiers for isBitcodeWrapper, and add new functions
...
isRawBitcode and isBitcode to allow clients to test whether a given
memory buffer holds a bitcode image.
llvm-svn: 80804
2009-09-02 17:21:29 +00:00
Gabor Greif
cc8681cea3
Clean up the minor mess I caused with removing iterator.h. I shall take care of 80-col violations and the FIXME later. (Thanks goodness that I live in another continent, so the monkeypox did not strike me :-)
...
llvm-svn: 80224
2009-08-27 06:41:46 +00:00
Daniel Dunbar
b98f0e9942
Add StringRef based APIs to BitstreamWriter.
...
llvm-svn: 79904
2009-08-24 09:29:31 +00:00
Chris Lattner
0c7ea3d3cc
remove the last *stream> #include from a public header.
...
llvm-svn: 79892
2009-08-24 04:14:03 +00:00
Chris Lattner
b0478019b4
eliminate the std::ostream forms of the bitcode writing APIs.
...
llvm-svn: 79840
2009-08-23 07:49:08 +00:00
Dan Gohman
6ec8176e22
Rename hasNoUnsignedOverflow and hasNoSignedOverflow to hasNoUnsignedWrap
...
and hasNoSignedWrap, for consistency with the nuw and nsw properties.
llvm-svn: 79539
2009-08-20 17:11:38 +00:00
Benjamin Kramer
9a590500ea
Make LLVMContext and LLVMContextImpl classes instead of structs.
...
llvm-svn: 78690
2009-08-11 17:45:13 +00:00
Owen Anderson
cf2c39dc30
Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h
...
not hideous. Also, fix some MSVC compile errors.
llvm-svn: 78115
2009-08-04 22:41:48 +00:00
Devang Patel
d5b7c64109
Read and write NamedMDNode.
...
llvm-svn: 77517
2009-07-29 22:34:41 +00:00
Dan Gohman
490eb36e1d
Add a new keyword 'inbounds' for use with getelementptr. See the
...
LangRef.html changes for details.
llvm-svn: 77259
2009-07-27 21:53:46 +00:00
Devang Patel
6b2162686a
Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file.
...
llvm-svn: 76834
2009-07-23 01:07:34 +00:00
Devang Patel
5794cb80ad
Introduce MetadataBase, a base class for MDString and MDNode.
...
Derive MDString directly from MetadataBase.
Introduce new bitcode block to hold metadata.
llvm-svn: 76759
2009-07-22 17:43:22 +00:00
Dan Gohman
d2ad3e183b
Assembly and Bitcode support for unsigned/signed overflow flags and
...
exact sdiv flags.
llvm-svn: 76475
2009-07-20 21:19:07 +00:00
Nick Lewycky
d46a7b2d22
Remove the vicmp and vfcmp instructions. Because we never had a release with
...
these instructions, no autoupgrade or backwards compatibility support is
provided.
llvm-svn: 74991
2009-07-08 03:04:38 +00:00
Chris Lattner
2bbbcbca79
fix some type confusion in ReadVBR64: "Piece" should be only 32 bits,
...
not 64, because we read at most 32 bits at a time. OTOH, "Result" must
be 64-bits and insertion into it must be 64-bit clean. Thanks to Ivan
Sorokin for bringing this up.
llvm-svn: 74932
2009-07-07 18:39:49 +00:00
Owen Anderson
4fa7e54329
Make the use of const with respect to LLVMContext sane. Hopefully this is the last time, for the
...
moment, that I will need to make far-reaching changes.
llvm-svn: 74655
2009-07-01 23:13:44 +00:00
Owen Anderson
cf112e59c3
Hold the LLVMContext by reference rather than by pointer.
...
llvm-svn: 74640
2009-07-01 21:22:36 +00:00
Owen Anderson
81b8dabb53
Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
...
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
llvm-svn: 74614
2009-07-01 16:58:40 +00:00
Sebastian Redl
51473d2434
Fix three MSVC 2008 warnings that completely clutter the build output.
...
llvm-svn: 74430
2009-06-29 17:12:06 +00:00
Nick Lewycky
a9de2f1c81
Give embedded metadata its own type instead of relying on EmptyStructTy.
...
llvm-svn: 72610
2009-05-30 05:06:04 +00:00
Chris Lattner
c8838e7b00
give bitstreamreader an API to ignore names for blocks/records,
...
only llvm-bcanalyzer wants this info.
llvm-svn: 70239
2009-04-27 20:04:08 +00:00
Chris Lattner
f84ee5d944
Add two new record types to the blockinfo block:
...
BLOCKNAME and SETRECORDNAME. This allows a bitcode
file to be self describing with pretty names for
records and blocks in addition to numbers. This
enhances llvm-bcanalyzer to use this to print prettily.
llvm-svn: 70165
2009-04-26 22:21:57 +00:00
Chris Lattner
eae2abdfa3
make BitstreamCursor's copyable and assignable.
...
llvm-svn: 70159
2009-04-26 21:07:02 +00:00
Chris Lattner
a43dcba929
Make a major API change to BitstreamReader: split all the reading
...
state out of the BitstreamReader class into a BitstreamCursor class.
Doing this allows the client to have multiple cursors into the same
file, each with potentially different live block stacks and
abbreviation records.
llvm-svn: 70157
2009-04-26 20:59:02 +00:00
Douglas Gregor
8965c485d7
Allow jumping to the end of a bitstream while reading
...
llvm-svn: 69145
2009-04-15 04:53:47 +00:00
Douglas Gregor
1c83e8d3ec
Fix BitstreamReader's GetCurrentBitNo to return the correct bit number, and stop JumpToBit from covering up its mistakes
...
llvm-svn: 68648
2009-04-08 22:26:47 +00:00
Douglas Gregor
936c1fd9eb
Use 8 instead of CHAR_BIT
...
llvm-svn: 68616
2009-04-08 16:57:40 +00:00
Douglas Gregor
e093e2a759
Add BitstreamWriter::GetCurrentBitNo, to report where we are in the output bitstream
...
llvm-svn: 68610
2009-04-08 15:18:21 +00:00
Chris Lattner
ce9fec457b
fix comment to reflect the implementation I ended up settling on.
...
Thanks to Duncan for noticing this
llvm-svn: 68518
2009-04-07 16:30:31 +00:00
Chris Lattner
12dadd5a5e
Add an API for the bitstream reader to read blobs and return
...
them by reference, instead of packing each byte into a
smallvector.
llvm-svn: 68486
2009-04-07 02:56:46 +00:00
Chris Lattner
bd885be4b0
allow clients to look up abbrev id's
...
llvm-svn: 68471
2009-04-06 22:43:46 +00:00
Chris Lattner
c4c57e4369
Add a new EmitRecordWithBlob API that allows a blob to be emitted
...
without converting each byte to a uint64_t to stick in a SmallVector.
llvm-svn: 68469
2009-04-06 22:26:26 +00:00
Chris Lattner
ac7e143979
add a new Blob encoding abbreviation for bitcode files that emits
...
elements in a form that is efficient for the reader to just get a
pointer in memory and start reading. APIs to do efficient reading
and writing are still todo.
llvm-svn: 68465
2009-04-06 21:50:39 +00:00
Chris Lattner
c67eb55ed2
split ReadAbbreviatedLiteral out of ReadAbbreviatedField.
...
llvm-svn: 68463
2009-04-06 21:37:10 +00:00
Chris Lattner
44a17471be
reduce indentation with early-out
...
llvm-svn: 68462
2009-04-06 21:34:58 +00:00
Chris Lattner
5a3ece0cff
simplify code a bit.
...
llvm-svn: 68461
2009-04-06 21:20:01 +00:00
Chris Lattner
07fdd28798
simplify to reduce indentation.
...
llvm-svn: 68460
2009-04-06 21:12:29 +00:00
Chris Lattner
7e2c9be68e
Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.
...
llvm-svn: 68458
2009-04-06 20:54:32 +00:00
Nick Lewycky
eea5412e19
Add support for embedded metadata to LLVM. This introduces two new types of
...
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.
llvm-svn: 68420
2009-04-04 07:22:01 +00:00
Dan Gohman
770f4158e5
Use CHAR_BIT instead of hard-coding 8 in several places where it
...
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
llvm-svn: 68227
2009-04-01 18:45:54 +00:00
Misha Brukman
5cfd666bde
Removed trailing whitespace.
...
llvm-svn: 65199
2009-02-20 23:04:06 +00:00
Nate Begeman
8b548c0a9e
Add suppport for ConstantExprs of shufflevectors whose result type is not equal to the
...
type of the vectors being shuffled.
llvm-svn: 64401
2009-02-12 21:28:33 +00:00
Chris Lattner
7819d9c8be
Add support for writing LLVM IR to a specified BitstreamWriter.
...
Patch by Lukasz Janyst!
llvm-svn: 61251
2008-12-19 18:37:59 +00:00
Daniel Dunbar
287cf9f1f7
Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass.
...
- The old versions are still hanging around, but should be migrated
away from.
llvm-svn: 57989
2008-10-22 17:39:14 +00:00
Zhongxing Xu
b187adcf5a
Fix a calculation error in comments.
...
llvm-svn: 57619
2008-10-16 01:21:44 +00:00
Devang Patel
64dd7a2e89
Large mechanical patch.
...
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622
2008-09-25 21:00:45 +00:00
Dan Gohman
c325e16787
Update the comment to reflect the new name.
...
llvm-svn: 56496
2008-09-23 18:27:53 +00:00
Dan Gohman
54ef20348e
Re-enables the new vector select in the bitcode reader, by modifying the
...
bitcode reader/writer as follows:
- add and use new bitcode FUNC_CODE_INST_VSELECT to handle the llvm
select opcode using either i1 or [N x i1] as the selector.
- retain old BITCODE FUNC_CODE_INST_SELECT in the bitcode reader to
handle select on i1 for backwards compatibility with existing bitcode
files.
- re-enable the vector-select.ll test program.
Also, rename the recently added bitcode opcode FUNC_CODE_INST_VCMP to
FUNC_CODE_INST_CMP2 and make the bitcode writer use it to handle
fcmp/icmp on scalars or vectors. In the bitcode writer, use
FUNC_CODE_INST_CMP for vfcmp/vicmp only. In the bitcode reader, have
FUNC_CODE_INST_CMP handle icmp/fcmp returning bool, for backwards
compatibility with existing bitcode files.
Patch by Preston Gurd!
llvm-svn: 56233
2008-09-16 01:01:33 +00:00
Dan Gohman
3e79d697f3
Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments
...
and, if so, to return a vector of boolean as a result;
Extend the select LLVM IR instruction to allow you to specify a result
type which is a vector of boolean, in which case the result will be an
element-wise selection instead of choosing one vector or the other; and
Update LangRef.html to describe these changes.
This patch was contributed by Preston Gurd!
llvm-svn: 55969
2008-09-09 01:02:47 +00:00