summaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitWriter.cpp
AgeCommit message (Collapse)Author
2019-08-05Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFCFangrui Song
F_{None,Text,Append} are kept for compatibility since r334221. llvm-svn: 367800
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
2018-02-14Pass a reference to a module to the bitcode writer.Rafael Espindola
This simplifies most callers as they are already using references or std::unique_ptr. llvm-svn: 325155
2016-11-11Split Bitcode/ReaderWriter.h into separate reader and writer headersTeresa Johnson
Summary: Split ReaderWriter.h which contains the APIs into both the BitReader and BitWriter libraries into BitcodeReader.h and BitcodeWriter.h. This is to address Chandler's concern about sharing the same API header between multiple libraries (BitReader and BitWriter). That concern is why we create a single bitcode library in our downstream build of clang, which led to r286297 being reverted as it added a dependency that created a cycle only when there is a single bitcode library (not two as in upstream). Reviewers: mehdi_amini Subscribers: dlj, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D26502 llvm-svn: 286566
2014-10-14Introduce LLVMWriteBitcodeToMemoryBuffer C API function.Peter Collingbourne
llvm-svn: 219643
2014-08-25Modernize raw_fd_ostream's constructor a bit.Rafael Espindola
Take a StringRef instead of a "const char *". Take a "std::error_code &" instead of a "std::string &" for error. A create static method would be even better, but this patch is already a bit too big. llvm-svn: 216393
2014-04-29raw_ostream: Forward declare OpenFlags and include FileSystem.h only where ↵Benjamin Kramer
necessary. llvm-svn: 207593
2014-02-24Replace the F_Binary flag with a F_Text one.Rafael Espindola
After this I will set the default back to F_None. The advantage is that before this patch forgetting to set F_Binary would corrupt a file on windows. Forgetting to set F_Text produces one that cannot be read in notepad, which is a better failure mode :-) llvm-svn: 202052
2013-07-16Add a wrapper for open.Rafael Espindola
This centralizes the handling of O_BINARY and opens the way for hiding more differences (like how open behaves with directories). llvm-svn: 186447
2013-05-01This patch breaks up Wrap.h so that it does not have to include all of Filip Pizlo
the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/. This new file just contains the macros for defining different wrap/unwrap methods. The calls to those macros, as well as any custom wrap/unwrap definitions (like for array of Values for example), are put into corresponding C++ headers. Doing this required some #include surgery, since some .cpp files relied on the fact that including Wrap.h implicitly caused the inclusion of a bunch of other things. This also now means that the C++ headers will include their corresponding C API headers; for example Value.h must include llvm-c/Core.h. I think this is harmless, since the C API headers contain just external function declarations and some C types, so I don't believe there should be any nasty dependency issues here. llvm-svn: 180881
2013-04-22Move C++ code out of the C headers and into either C++ headersEric Christopher
or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM. llvm-svn: 180063
2012-11-25Code Custodian:Joe Abbey
- Widespread trailing space removal - A dash of OCD spacing to block align enums - joined a line that probably needed 80 cols a while back llvm-svn: 168566
2010-03-06Add a LLVMWriteBitcodeToFD that exposes the raw_fd_ostream options.Erick Tryzelaar
llvm-svn: 97858
2010-03-06Whoops, the old LLVMWriteBitcodeToFileHandle closed the stream.Erick Tryzelaar
Luckily this never was released. llvm-svn: 97857
2010-03-06LLVMWriteBitcodeToFileHandle should work on all architectures now.Erick Tryzelaar
llvm-svn: 97856
2009-08-25Make LLVM command-line tools overwrite their output files without -f.Dan Gohman
This is conventional command-line tool behavior. -f now just means "enable binary output on terminals". Add a -f option to llvm-extract and llvm-link, for consistency. Remove F_Force from raw_fd_ostream and enable overwriting and truncating by default. Introduce an F_Excl flag to permit users to enable a failure when the file already exists. This flag is currently unused. Update Makefiles and documentation accordingly. llvm-svn: 79990
2009-08-23eliminate the std::ostream forms of the bitcode writing APIs.Chris Lattner
llvm-svn: 79840
2008-06-11Better test for availability of __gnu_cxx::stdio_filebuf.Gordon Henriksen
If this doesn't work, I'll write a configure test. llvm-svn: 52213
2007-12-29Remove attribution from file headers, per discussion on llvmdev.Chris Lattner
llvm-svn: 45418
2007-12-03Applying Anton's binmode fix to the other ofstream too.Gordon Henriksen
llvm-svn: 44535
2007-12-03Sorry, typo :)Anton Korobeynikov
llvm-svn: 44534
2007-12-03Open output file correctly. This is extremely important forAnton Korobeynikov
windows-based hosts, where files are opened in text mode by default. llvm-svn: 44533
2007-10-06Bindings for the verifier.Gordon Henriksen
llvm-svn: 42707
2007-10-05Removing the silly CHelpers header by rolling wrap and unwrap into the CGordon Henriksen
bindings headers themselves, hidden behind #ifdef __cplusplus. llvm-svn: 42666
2007-09-29Demoting CHelpers.h to include/llvm/Support.Gordon Henriksen
llvm-svn: 42465
2007-09-18C bindings for libLLVMCore.a and libLLVMBitWriter.a.Gordon Henriksen
- 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