Commit Graph

22 Commits

Author SHA1 Message Date
Michael J. Spencer 9718f45d39 [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
2013-02-03 10:48:50 +00:00
Michael J. Spencer 8c71e9265a [Object][Archive] Fix name handling with bsd style long names.
llvm-svn: 172026
2013-01-10 01:05:34 +00:00
Michael J. Spencer 04614ff6ba [Object][Archive] Apparently StringRef::getAsInteger for APInt accepts spaces.
llvm-svn: 172022
2013-01-10 00:07:38 +00:00
Michael J. Spencer 751fd88eba [Object][Archive] Use uint64_t instead of APInt. It is significantly faster.
llvm-svn: 172015
2013-01-09 22:58:43 +00:00
Chandler Carruth ed0881b2a6 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
2012-12-03 16:50:05 +00:00
Matt Beaumont-Gay 1fc2002c93 s/assert/llvm_unreachable/
llvm-svn: 167936
2012-11-14 17:58:11 +00:00
Matt Beaumont-Gay 68e0b6afa8 Fix broken asserts. Also, spell 'indices' correctly.
llvm-svn: 167894
2012-11-14 00:21:27 +00:00
Michael J. Spencer 4e92d5b9ff [Object] Fix endianess bug by refactoring Archive::Symbol::getMember.
llvm-svn: 167893
2012-11-14 00:04:13 +00:00
Shankar Easwaran 15b28be9da Adding changes to support GNU style archive library reading
llvm-svn: 167853
2012-11-13 18:38:42 +00:00
Dmitri Gribenko dbeafa773a Convert comments to proper Doxygen comments.
llvm-svn: 158248
2012-06-09 00:01:45 +00:00
Craig Topper 9520719b9b Mark some static arrays as const.
llvm-svn: 157377
2012-05-24 06:35:32 +00:00
David Meyer d53422d1a7 [Object]
Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big

llvm-svn: 152435
2012-03-09 20:41:57 +00:00
Benjamin Kramer 453173f09a Remove static ctor.
llvm-svn: 151160
2012-02-22 13:42:11 +00:00
David Blaikie a379b18173 Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
2011-12-20 02:50:00 +00:00
Benjamin Kramer 4246ca4021 Simplify code.
llvm-svn: 143695
2011-11-04 13:52:17 +00:00
Chad Rosier d294af104a Removed unused variable.
llvm-svn: 143591
2011-11-02 23:21:55 +00:00
Michael J. Spencer e03ea9cd71 Object/Archive: Add symbol table iteration.
llvm-svn: 143561
2011-11-02 19:33:12 +00:00
Michael J. Spencer 6e080ddb31 Object/Archive: Cleanup anon namespace.
llvm-svn: 142983
2011-10-25 22:31:11 +00:00
Michael J. Spencer 9aaa852336 Object/Archive: Add BSD style long file name support and skip internal members.
llvm-svn: 142981
2011-10-25 22:30:42 +00:00
NAKAMURA Takumi 648b2fafd8 lib/Object: Suppress warnings on gcc-4.3.4 cygwin
llvm-svn: 141485
2011-10-08 11:22:53 +00:00
Michael J. Spencer 7eb8159927 Object: constize Archive.
llvm-svn: 141448
2011-10-08 00:17:45 +00:00
Michael J. Spencer d3b7b12618 Object: Add archive support.
llvm-svn: 140626
2011-09-27 19:36:55 +00:00