History log of /llvm-project/llvm/lib/Object/Archive.cpp (Results 126 – 150 of 166)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 23a9750c 21-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Rename these methods to match the style guide.

llvm-svn: 199751


# 63da2950 15-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Return an ErrorOr<Binary *> from createBinary.

I did write a version returning ErrorOr<OwningPtr<Binary> >, but it is too
cumbersome to use without std::move. I will keep the patch locally and submi

Return an ErrorOr<Binary *> from createBinary.

I did write a version returning ErrorOr<OwningPtr<Binary> >, but it is too
cumbersome to use without std::move. I will keep the patch locally and submit
when we switch to c++11.

llvm-svn: 199326

show more ...


Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# b6b5f52e 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Add support for the 's' operation to llvm-ar.

If no other operation is specified, 's' becomes an operation instead of an
modifier. The s operation just creates a symbol table. It is the same as
runn

Add support for the 's' operation to llvm-ar.

If no other operation is specified, 's' becomes an operation instead of an
modifier. The s operation just creates a symbol table. It is the same as
running ranlib.

We assume the archive was created by a sane ar (like llvm-ar or gnu ar) and
if the symbol table is present, then it is current. We use that to optimize
the most common case: a broken build system that thinks it has to run ranlib.

llvm-svn: 187353

show more ...


# d3a34f81 16-Jul-2013 Craig Topper <craig.topper@gmail.com>

Add 'const' qualifiers to static const char* variables.

llvm-svn: 186371


# 3e2b21cd 12-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Change llvm-ar to use lib/Object.

This fixes two bugs is lib/Object that the use in llvm-ar found:
* In OS X created archives, the name can be padded with nulls. Strip them.
* In the constructor, re

Change llvm-ar to use lib/Object.

This fixes two bugs is lib/Object that the use in llvm-ar found:
* In OS X created archives, the name can be padded with nulls. Strip them.
* In the constructor, remember the first non special member and use that in
begin_children. This makes sure we skip all special members, not just the
first one.

The change to llvm-ar itself consist of
* Using lib/Object for reading archives instead of ArchiveReader.cpp.
* Writing the modified archive directly, instead of creating an in memory
representation.

The old Archive library was way more general than what is needed, as can
be seen by the diffstat of this patch.

Having llvm-ar using lib/Object now opens the way for creating regular symbol
tables for both native objects and bitcode files so that we can use those
archives for LTO.

llvm-svn: 186197

show more ...


# f0c61726 12-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Don't reject an empty archive.

llvm-svn: 186159


# 55509920 10-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Find the symbol table on archives created on OS X.

llvm-svn: 186041


# fbcafc07 10-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Don't crash in 'llvm -s' when an archive has no symtab.

llvm-svn: 186029


# 8115e1da 09-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Add missing getters. They will be used in llvm-ar.

llvm-svn: 185937


# 8e9385ec 09-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Archive members cannot be larger than 4GB. Return a uint32_t.

llvm-svn: 185936


# 97ee9de6 09-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Add getHeader helper and move ToHeader to the cpp file.

llvm-svn: 185933


# 0f3de64d 09-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Compute the size of an archive member in the constructor.

It is always computed the same way (by parsing the header). Doing it in the
constructor simplifies the callers a bit.

llvm-svn: 185905


# 747bc07b 09-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Move some code out of line. No functionality change.

llvm-svn: 185901


Revision tags: llvmorg-3.3.1-rc1
# 751447a3 05-Jul-2013 Sylvestre Ledru <sylvestre@debian.org>

Remove a useless declarations (found by scan-build)

llvm-svn: 185709


# 6cc2dc71 05-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Use the raw member names in Archive::Archive.

This a bit more efficient and avoids having a function that uses the string
table being called by a function that searches for it.

llvm-svn: 185680


# 1cbed228 04-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Add support for archives with no symbol table or string table.

llvm-svn: 185664


# 88ae7dd2 03-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Add support for gnu archives with a string table and no symtab.

While there, use early returns to reduce nesting.

llvm-svn: 185547


# 668c6428 14-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com>

Remove the LLVM specific archive index.

Archive files (.a) can have a symbol table indicating which object
files in them define which symbols. The purpose of this symbol table
is to speed up linking

Remove the LLVM specific archive index.

Archive files (.a) can have a symbol table indicating which object
files in them define which symbols. The purpose of this symbol table
is to speed up linking by allowing the linker the read only the .o
files it is actually going to use instead of having to parse every
object's symbol table.

LLVM's archive library currently supports a LLVM specific format for
such table. It is hard to see any value in that now that llvm-ld is
gone:

* System linkers don't use it: GNU ar uses the same plugin as the
linker to create archive files with a regular index. The OS X ar
creates no symbol table for IL files, I assume the linker just parses
all IL files.

* It doesn't interact well with archives having both IL and native objects.

* We probably don't want to be responsible for yet another archive
format variant.

This patch then:

* Removes support for creating and reading such index from lib/Archive.
* Remove llvm-ranlib, since there is nothing left for it to do.

We should in the future add support for regular indexes to llvm-ar for
both native and IL objects. When we do that, llvm-ranlib should be
reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s".

llvm-svn: 184019

show more ...


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3
# f4d0a8c1 03-Jun-2013 Rui Ueyama <ruiu@google.com>

[Object/COFF] Fix Windows .lib name handling.

llvm-svn: 183091


Revision tags: llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# 9718f45d 03-Feb-2013 Michael J. Spencer <bigcheesegs@gmail.com>

[Object][Archive] Improve performance.

Improve performance of iterating over children and accessing the member file
buffer by caching the file size and moving code out to the header.

This also make

[Object][Archive] Improve performance.

Improve performance of iterating over children and accessing the member file
buffer by caching the file size and moving code out to the header.

This also makes getBuffer return a StringRef instead of a MemoryBuffer. Both
fixing a memory leak and removing a malloc.

This takes getBuffer from ~10% of the time in lld to unmeasurable.

llvm-svn: 174272

show more ...


# 8c71e926 10-Jan-2013 Michael J. Spencer <bigcheesegs@gmail.com>

[Object][Archive] Fix name handling with bsd style long names.

llvm-svn: 172026


# 04614ff6 10-Jan-2013 Michael J. Spencer <bigcheesegs@gmail.com>

[Object][Archive] Apparently StringRef::getAsInteger for APInt accepts spaces.

llvm-svn: 172022


# 751fd88e 09-Jan-2013 Michael J. Spencer <bigcheesegs@gmail.com>

[Object][Archive] Use uint64_t instead of APInt. It is significantly faster.

llvm-svn: 172015


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3
# ed0881b2 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com>

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131

show more ...


Revision tags: llvmorg-3.2.0-rc2
# 1fc2002c 14-Nov-2012 Matt Beaumont-Gay <matthewbg@google.com>

s/assert/llvm_unreachable/

llvm-svn: 167936


1234567