aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Bitcode
AgeCommit message (Collapse)Author
2009-07-22Introduce MetadataBase, a base class for MDString and MDNode.Devang Patel
Derive MDString directly from MetadataBase. Introduce new bitcode block to hold metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20Assembly and Bitcode support for unsigned/signed overflow flags andDan Gohman
exact sdiv flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76475 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Remove the vicmp and vfcmp instructions. Because we never had a release withNick Lewycky
these instructions, no autoupgrade or backwards compatibility support is provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07fix some type confusion in ReadVBR64: "Piece" should be only 32 bits,Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74932 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Make the use of const with respect to LLVMContext sane. Hopefully this is ↵Owen Anderson
the last time, for the moment, that I will need to make far-reaching changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74655 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Hold the LLVMContext by reference rather than by pointer.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29Fix three MSVC 2008 warnings that completely clutter the build output.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30Give embedded metadata its own type instead of relying on EmptyStructTy.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-27give bitstreamreader an API to ignore names for blocks/records,Chris Lattner
only llvm-bcanalyzer wants this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70239 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26Add two new record types to the blockinfo block:Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70165 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26make BitstreamCursor's copyable and assignable.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70159 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-26Make a major API change to BitstreamReader: split all the readingChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70157 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15Allow jumping to the end of a bitstream while readingDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69145 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Fix BitstreamReader's GetCurrentBitNo to return the correct bit number, and ↵Douglas Gregor
stop JumpToBit from covering up its mistakes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68648 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Use 8 instead of CHAR_BITDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-08Add BitstreamWriter::GetCurrentBitNo, to report where we are in the output ↵Douglas Gregor
bitstream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07fix comment to reflect the implementation I ended up settling on.Chris Lattner
Thanks to Duncan for noticing this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-07Add an API for the bitstream reader to read blobs and returnChris Lattner
them by reference, instead of packing each byte into a smallvector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06allow clients to look up abbrev id'sChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06Add a new EmitRecordWithBlob API that allows a blob to be emitted Chris Lattner
without converting each byte to a uint64_t to stick in a SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68469 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06add a new Blob encoding abbreviation for bitcode files that emitsChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68465 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06split ReadAbbreviatedLiteral out of ReadAbbreviatedField.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68463 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06reduce indentation with early-outChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68462 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06simplify code a bit.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68461 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06simplify to reduce indentation.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68460 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-06Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68458 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-04Add support for embedded metadata to LLVM. This introduces two new types ofNick Lewycky
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-01Use CHAR_BIT instead of hard-coding 8 in several places where itDan Gohman
is appropriate. This helps visually differentiate host-oriented calculations from target-oriented calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68227 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20Removed trailing whitespace.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65199 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12Add suppport for ConstantExprs of shufflevectors whose result type is not ↵Nate Begeman
equal to the type of the vectors being shuffled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64401 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-19Add support for writing LLVM IR to a specified BitstreamWriter.Chris Lattner
Patch by Lukasz Janyst! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61251 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-22Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass.Daniel Dunbar
- The old versions are still hanging around, but should be migrated away from. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-16Fix a calculation error in comments.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57619 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-25 Large mechanical patch.Devang Patel
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-23Update the comment to reflect the new name.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56496 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-16Re-enables the new vector select in the bitcode reader, by modifying theDan Gohman
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56233 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09Extend the vcmp/fcmp LLVM IR instructions to take vectors as argumentsDan Gohman
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55969 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-17Rename some GC classes so that their roll will hopefully be clearer.Gordon Henriksen
In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54899 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-28Fold the useful features of alist and alist_node into ilist, andDan Gohman
a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23Enable first-class aggregates support.Dan Gohman
Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-21InsertValue and ExtractValue constant expressions are alwaysDan Gohman
folded. Remove code that handled the case where they aren't folded, and remove bitcode reader/writer support for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53887 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09Add a little wrapper header that is put around bc files when emittingChris Lattner
bc files for modules with a target triple that indicates they are for darwin. The reader unconditionally handles this, and the writer could turn this on for more targets if we care. This change has two benefits for darwin: 1) it allows us to encode the cpu type of the file in an easy to read place that doesn't require decoding the bc file. 2) it works around a bug (IMO) in darwin's AR where it is incapable of handling files that are not a multiple of 8 bytes long. BC files are only guaranteed to be multiples of 4 bytes long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53275 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29For PR1338: rename include/llvm/ADT/ilist and friends to end with ".h"Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51687 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-23Make structs and arrays first-class types, and add assemblyDan Gohman
and bitcode support for the extractvalue and insertvalue instructions and constant expressions. Note that this does not yet include CodeGen support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51468 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-05Fix more -Wshorten-64-to-32 warnings.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-01Initialize a local variable.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50527 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-25Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07Added support for Create() calls that take an argument besides theSam Bishop
deserializer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-03Add member template version of SerializeTrait<T>::Create that also acceptsTed Kremenek
an optional argument for us by T's Create method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49169 91177308-0d34-0410-b5e6-96231b3b80d8