summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer
Commit message (Collapse)AuthorAgeFilesLines
...
* Add CommonLinkage; currently tentative definitionsDale Johannesen2008-05-141-0/+1
| | | | | | | | | | are represented as "weak", but there are subtle differences in some cases on Darwin, so we need both. The intent is that "common" will behave identically to "weak" unless somebody changes their target to do something else. No functional change as yet. llvm-svn: 51118
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-13/+15
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRefNate Begeman2008-05-121-0/+4
| | | | | | for details. CodeGen support coming in a follow up patch llvm-svn: 50985
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-251-8/+1
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* Reimplement the parameter attributes support, phase #1. hilights:Chris Lattner2008-03-123-17/+18
| | | | | | | | | | | | | | | | | | | | | | | 1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289
* Honour aliases visibility when reading from/writing to bitcodeAnton Korobeynikov2008-03-111-0/+1
| | | | llvm-svn: 48248
* Add an unwind_to field to basic blocks, making them Users instead of Values.Nick Lewycky2008-03-021-1/+8
| | | | | | This is the first checkin for PR1269, the new EH infrastructure. llvm-svn: 47802
* Remove debugging help.Devang Patel2008-02-261-1/+0
| | | | llvm-svn: 47585
* Update bitcode reader and writer to handle multiple return values. Devang Patel2008-02-261-7/+16
| | | | | | Take 2. llvm-svn: 47583
* Backing out r47521 for now. This has broken a number of tests.Evan Cheng2008-02-231-15/+7
| | | | llvm-svn: 47533
* Properly read and write bitcodes for multiple return values.Devang Patel2008-02-231-7/+15
| | | | llvm-svn: 47521
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-1/+1
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Read and write getresult.Devang Patel2008-02-221-0/+5
| | | | llvm-svn: 47471
* Support alignment within ParamAttrs in the I/O handling.Dale Johannesen2008-02-201-1/+1
| | | | llvm-svn: 47401
* Expand ParameterAttributes to 32 bits (in preparationDale Johannesen2008-02-191-1/+1
| | | | | | | for adding alignment info, not there yet). Clean up interfaces to reference ParameterAttributes consistently. llvm-svn: 47342
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-298-16/+16
| | | | llvm-svn: 45418
* remove attribution from lib Makefiles.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45415
* Implement part of review feedback for address spaces.Christopher Lamb2007-12-121-6/+5
| | | | llvm-svn: 44933
* Fix compilation.Duncan Sands2007-12-111-1/+2
| | | | llvm-svn: 44864
* Implement address space attribute for LLVM pointer types. Address spaces are Christopher Lamb2007-12-111-6/+10
| | | | | | | | | | | | | | | | | regions of memory that have a target specific relationship, as described in the Embedded C Technical Report. This also implements the 2007-12-11-AddressSpaces test, which demonstrates how address space attributes can be used in LLVM IR. In addition, this patch changes the bitcode signature for stores (in a backwards compatible manner), such that the pointer type, rather than the pointee type, is encoded. This permits type information in the pointer (e.g. address space) to be preserved for stores. LangRef updates are forthcoming. llvm-svn: 44858
* Adding a collector name attribute to Function in the IR. These Gordon Henriksen2007-12-101-10/+23
| | | | | | | | | | | | | | | | | | | | methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
* Applying Anton's binmode fix to the other ofstream too.Gordon Henriksen2007-12-031-1/+1
| | | | llvm-svn: 44535
* Sorry, typo :)Anton Korobeynikov2007-12-031-2/+4
| | | | llvm-svn: 44534
* Open output file correctly. This is extremely important forAnton Korobeynikov2007-12-031-1/+1
| | | | | | windows-based hosts, where files are opened in text mode by default. llvm-svn: 44533
* Unbreak backwards compatibility with bytecode format. RegressionChris Lattner2007-11-271-1/+3
| | | | | | | introduced by this patch: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071126/055824.html llvm-svn: 44364
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-272-31/+23
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* Add explicit keywords.Dan Gohman2007-11-191-1/+2
| | | | llvm-svn: 44234
* Added typedef "SerializedPtrID" to represent the pointer handle written to diskTed Kremenek2007-11-081-3/+13
| | | | | | | | | | | instead of just using "unsigned". This gives us more flexibility in changing the definition of the handle later, and is more self-documenting. Added tracking of block stack in the Deserializer. Now clients can query if they are still within a block using the methods GetCurrentBlockLocation() and FinishedBlock(). llvm-svn: 43903
* Implemented generic serialization of APFloat.Ted Kremenek2007-11-071-0/+21
| | | | llvm-svn: 43829
* Implemented serialization of signed integers.Ted Kremenek2007-11-071-1/+16
| | | | llvm-svn: 43828
* Serializer no longer automatically emits a root-level block in the bitstream.Ted Kremenek2007-11-061-6/+2
| | | | llvm-svn: 43784
* Renamed "Flush()" to "FlushRecord()".Ted Kremenek2007-11-061-3/+3
| | | | llvm-svn: 43772
* Added support in serializer and deserializer to create arbitrary blocks.Ted Kremenek2007-11-051-3/+19
| | | | | | Added detection of end-of-stream in deserializer. llvm-svn: 43736
* Deleting -emitbitcode option which did nothing.Gordon Henriksen2007-11-041-6/+5
| | | | llvm-svn: 43683
* Added Serializer::EmitRef to deal with emitting arbitrary references.Ted Kremenek2007-10-311-1/+1
| | | | | | Modified Serializer::EmitPtr to handle const pointers. llvm-svn: 43565
* Added serialization support for APInt.Ted Kremenek2007-10-261-0/+31
| | | | llvm-svn: 43405
* Added special treatment of serializing NULL pointers.Ted Kremenek2007-10-251-1/+4
| | | | llvm-svn: 43357
* Implemented prototype serialization of pointers, including supportTed Kremenek2007-10-251-1/+11
| | | | | | | | for backpatching. Added Deserialize::ReadVal. llvm-svn: 43319
* Split Serialization.h into separate headers: Serialize.h andTed Kremenek2007-10-241-7/+23
| | | | | | | Deserialize.h Serialization.h now includes trait speciailizations for unsigned long, etc. llvm-svn: 43307
* Added preliminary implementation of generic object serialization to bitcode.Ted Kremenek2007-10-231-0/+52
| | | | llvm-svn: 43261
* Next PPC long double bits. First cut at constants.Dale Johannesen2007-10-111-3/+1
| | | | | | | | | No compile-time support for constant operations yet, just format transformations. Make readers and writers work. Split constants into 2 doubles in Legalize. llvm-svn: 42865
* Bindings for the verifier.Gordon Henriksen2007-10-061-2/+2
| | | | llvm-svn: 42707
* Removing the silly CHelpers header by rolling wrap and unwrap into the CGordon Henriksen2007-10-051-1/+0
| | | | | | bindings headers themselves, hidden behind #ifdef __cplusplus. llvm-svn: 42666
* Demoting CHelpers.h to include/llvm/Support.Gordon Henriksen2007-09-291-1/+1
| | | | llvm-svn: 42465
* Make temporaries explicit to avoid prematureDale Johannesen2007-09-261-2/+5
| | | | | | destruction of compiler-created ones. llvm-svn: 42383
* C bindings for libLLVMCore.a and libLLVMBitWriter.a.Gordon Henriksen2007-09-181-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | - The naming prefix is LLVM. - All types are represented using opaque references. - Functions are not named LLVM{Type}{Method}; the names became unreadable goop. Instead, they are named LLVM{ImperativeSentence}. - Where an attribute only appears once in the class hierarchy (e.g., linkage only applies to values; parameter types only apply to function types), the class is omitted from identifiers for brevity. Tastes like methods. - Strings are C strings or string/length tuples on a case-by-case basis. - APIs which give the caller ownership of an object are not mapped (removeFromParent, certain constructor overloads). This keeps keep memory management as simple as possible. For each library with bindings: llvm-c/<LIB>.h - Declares the bindings. lib/<LIB>/<LIB>.cpp - Implements the bindings. So just link with the library of your choice and use the C header instead of the C++ one. llvm-svn: 42077
* Revise previous patch per review comments.Dale Johannesen2007-09-121-5/+2
| | | | | | | Next round of x87 long double stuff. Getting close now, basically works. llvm-svn: 41875
* Add APInt interfaces to APFloat (allows directlyDale Johannesen2007-09-111-6/+13
| | | | | | | | | access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). llvm-svn: 41858
* Revert previous change to IR.Dale Johannesen2007-09-071-4/+3
| | | | llvm-svn: 41769
* Next round of APFloat changes.Dale Johannesen2007-09-061-2/+3
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
OpenPOWER on IntegriCloud