aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/IRReader
AgeCommit message (Collapse)AuthorFilesLines
2016-01-26Remove autoconf supportChris Bieneman1-14/+0
Summary: This patch is provided in preparation for removing autoconf on 1/26. The proposal to remove autoconf on 1/26 was discussed on the llvm-dev thread here: http://lists.llvm.org/pipermail/llvm-dev/2016-January/093875.html "I felt a great disturbance in the [build system], as if millions of [makefiles] suddenly cried out in terror and were suddenly silenced. I fear something [amazing] has happened." - Obi Wan Kenobi Reviewers: chandlerc, grosbach, bob.wilson, tstellarAMD, echristo, whitequark Subscribers: chfast, simoncook, emaste, jholewinski, tberghammer, jfb, danalbert, srhines, arsenm, dschuff, jyknight, dsanders, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D16471 llvm-svn: 258861
2015-12-17[ThinLTO] Metadata linking for imported functionsTeresa Johnson1-5/+7
Summary: Second patch split out from http://reviews.llvm.org/D14752. Maps metadata as a post-pass from each module when importing complete, suturing up final metadata to the temporary metadata left on the imported instructions. This entails saving the mapping from bitcode value id to temporary metadata in the importing pass, and from bitcode value id to final metadata during the metadata linking postpass. Depends on D14825. Reviewers: dexonsmith, joker.eph Subscribers: davidxl, llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D14838 llvm-svn: 255909
2015-06-16Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC.Rafael Espindola1-4/+5
llvm-svn: 239858
2015-06-16modules: Add explicit dependency on intrinsics_genDuncan P. N. Exon Smith1-0/+3
`LLVM_ENABLE_MODULES` builds sometimes fail because `Intrinsics.td` needs to regenerate `Instrinsics.h` before anyone can include anything from the LLVM_IR module. Represent the dependency explicitly to prevent that. llvm-svn: 239796
2015-02-11Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects.Zachary Turner1-0/+3
This allows IDEs to recognize the entire set of header files for each of the core LLVM projects. Differential Revision: http://reviews.llvm.org/D7526 Reviewed By: Chris Bieneman llvm-svn: 228798
2014-11-06Remove unused variable. NFC.Rafael Espindola1-1/+0
llvm-svn: 221497
2014-09-03Pass a && to getLazyBitcodeModule.Rafael Espindola1-1/+2
This forces callers to use std::move when calling it. It is somewhat odd to have code with std::move that doesn't always move, but it is also odd to have code without std::move that sometimes moves. llvm-svn: 217049
2014-08-26Pass a std::unique_ptr<MemoryBuffer>& to getLazyBitcodeModule.Rafael Espindola1-3/+1
By taking a reference we can do the ownership transfer in one place instead of expecting every caller to do it. llvm-svn: 216492
2014-08-26Pass a MemoryBufferRef when we can avoid taking ownership.Rafael Espindola1-10/+9
The attached patch simplifies a few interfaces that don't need to take ownership of a buffer. For example, both parseAssembly and parseBitcodeFile will parse the entire buffer before returning. There is no need to take ownership. Using a MemoryBufferRef makes it obvious in the type signature that there is no ownership transfer. llvm-svn: 216488
2014-08-26Return a std::unique_ptr from the IRReader.h functions. NFC.Rafael Espindola1-16/+15
llvm-svn: 216466
2014-08-19Modernize the .ll parsing interface.Rafael Espindola1-7/+8
* Use StringRef instead of std::string& * Return a std::unique_ptr<Module> instead of taking an optional module to write to (was not really used). * Use current comment style. * Use current naming convention. llvm-svn: 215989
2014-08-17Pass a std::uinque_ptr to ParseAssembly to make the ownership explicit. NFC.Rafael Espindola1-3/+3
llvm-svn: 215852
2014-08-17getLazyIRModule always takes ownership. Make that explicit.Rafael Espindola1-10/+9
llvm-svn: 215851
2014-07-06Update the MemoryBuffer API to use ErrorOr.Rafael Espindola1-8/+10
llvm-svn: 212405
2014-07-05Make a helper function static. No functionality change.Rafael Espindola1-3/+2
llvm-svn: 212364
2014-06-27IRReader: don't mark MemoryBuffers constAlp Toker1-1/+1
llvm-svn: 211883
2014-06-27Propagate const-correctness into parseBitcodeFile()Alp Toker1-2/+1
llvm-svn: 211864
2014-06-27ParseIR: don't take ownership of the MemoryBufferAlp Toker1-7/+10
clang was needlessly duplicating whole memory buffer contents in an attempt to satisfy unclear ownership semantics. Let's just hide internal LLVM quirks and present a simple non-owning interface. The public C API preserves previous behaviour for stability. llvm-svn: 211861
2014-06-26Revert "Introduce a string_ostream string builder facilty"Alp Toker1-3/+6
Temporarily back out commits r211749, r211752 and r211754. llvm-svn: 211814
2014-06-26MSVC build fix following r211749Alp Toker1-1/+2
Avoid strndup() llvm-svn: 211752
2014-06-26Introduce a string_ostream string builder faciltyAlp Toker1-6/+2
string_ostream is a safe and efficient string builder that combines opaque stack storage with a built-in ostream interface. small_string_ostream<bytes> additionally permits an explicit stack storage size other than the default 128 bytes to be provided. Beyond that, storage is transferred to the heap. This convenient class can be used in most places an std::string+raw_string_ostream pair or SmallString<>+raw_svector_ostream pair would previously have been used, in order to guarantee consistent access without byte truncation. The patch also converts much of LLVM to use the new facility. These changes include several probable bug fixes for truncated output, a programming error that's no longer possible with the new interface. llvm-svn: 211749
2014-06-13Remove 'using std::errro_code' from lib.Rafael Espindola1-5/+4
llvm-svn: 210871
2014-06-12Don't use 'using std::error_code' in include/llvm.Rafael Espindola1-0/+1
This should make sure that most new uses use the std prefix. llvm-svn: 210835
2014-06-12Remove system_error.h.Rafael Espindola1-1/+1
This is a minimal change to remove the header. I will remove the occurrences of "using std::error_code" in a followup patch. llvm-svn: 210803
2014-04-15[C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper1-7/+7
instead of comparing to nullptr. llvm-svn: 206252
2014-03-06Replace OwningPtr<T> with std::unique_ptr<T>.Ahmed Charles1-3/+2
This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which have OwningPtr's as parameters. This should allow out of tree projects some time to move. There are also no changes to libs/Target, which should help out of tree targets have time to move, if necessary. llvm-svn: 203083
2014-03-05[C++11] Replace OwningPtr::take() with OwningPtr::release().Ahmed Charles1-2/+2
llvm-svn: 202957
2014-01-15Make parseBitcodeFile return an ErrorOr<Module *>.Rafael Espindola1-5/+7
llvm-svn: 199279
2014-01-13Update getLazyBitcodeModule to use ErrorOr for error handling.Rafael Espindola1-4/+5
llvm-svn: 199125
2014-01-07Move the LLVM IR asm writer header files into the IR directory, as theyChandler Carruth1-1/+1
are part of the core IR library in order to support dumping and other basic functionality. Rename the 'Assembly' include directory to 'AsmParser' to match the library name and the only functionality left their -- printing has been in the core IR library for quite some time. Update all of the #includes to match. All of this started because I wanted to have the layering in good shape before I started adding support for printing LLVM IR using the new pass infrastructure, and commandline support for the new pass infrastructure. llvm-svn: 198688
2014-01-07Re-sort all of the includes with ./utils/sort_includes.py so thatChandler Carruth1-3/+3
subsequent changes are easier to review. About to fix some layering issues, and wanted to separate out the necessary churn. Also comment and sink the include of "Windows.h" in three .inc files to match the usage in Memory.inc. llvm-svn: 198685
2013-11-06[llvm-c] Expose IRReader interfacePeter Zotov1-0/+32
Original patch by Chris Wailes llvm-svn: 194137
2013-07-16Add 'const' qualifiers to static const char* variables.Craig Topper1-2/+2
llvm-svn: 186371
2013-06-25keep only the StringRef version of getFileOrSTDIN.Rafael Espindola1-2/+2
llvm-svn: 184826
2013-04-03Measure time that IR parsing took as part of the -time-passes measurement.Eli Bendersky1-0/+11
llvm-svn: 178662
2013-04-01Fix top-comment header and some indentationEli Bendersky2-3/+3
llvm-svn: 178492
2013-03-26Split out the IRReader header and the utility functions it provides intoChandler Carruth4-0/+117
its own library. These functions are bridging between the bitcode reader and the ll parser which are in different libraries. Previously we didn't have any good library to do this, and instead played fast and loose with a "header only" set of interfaces in the Support library. This really doesn't work well as evidenced by the recent attempt to add timing logic to the these routines. As part of this, make them normal functions rather than weird inline functions, and sink the implementation into the library. Also clean up the header to be nice and minimal. This requires updating lots of build system dependencies to specify that the IRReader library is needed, and several source files to not implicitly rely upon the header file to transitively include all manner of other headers. If you are using IRReader.h, this commit will break you (the header moved) and you'll need to also update your library usage to include 'irreader'. I will commit the corresponding change to Clang momentarily. llvm-svn: 177971