summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-modextract/llvm-modextract.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Bitcode: Add a string table to the bitcode format.Peter Collingbourne2017-04-171-3/+6
| | | | | | | | | | | | | | | | | | | | | | | Add a top-level STRTAB block containing a string table blob, and start storing strings for module codes FUNCTION, GLOBALVAR, ALIAS, IFUNC and COMDAT in the string table. This change allows us to share names between globals and comdats as well as between modules, and improves the efficiency of loading bitcode files by no longer using a bit encoding for symbol names. Once we start writing the irsymtab to the bitcode file we will also be able to share strings between it and the module. On my machine, link time for Chromium for Linux with ThinLTO decreases by about 7% for no-op incremental builds or about 1% for full builds. Total bitcode file size decreases by about 3%. As discussed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2017-April/111732.html Differential Revision: https://reviews.llvm.org/D31838 llvm-svn: 300464
* llvm-modextract: Call keep() on the output stream before exiting.Peter Collingbourne2016-12-011-0/+2
| | | | llvm-svn: 288435
* Add llvm-modextract tool.Peter Collingbourne2016-11-291-0/+72
This program is for testing features that rely on multi-module bitcode files. It takes a multi-module bitcode file, extracts one of the modules and writes it to the output file. Differential Revision: https://reviews.llvm.org/D26778 llvm-svn: 288201
OpenPOWER on IntegriCloud