aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Archive/ArchiveReader.cpp
Commit message (Collapse)AuthorAgeFilesLines
* change the archive stuff to use MemoryBuffer instead of mappedfile.Chris Lattner2008-04-011-7/+7
| | | | | | | | MemoryBuffer is higher level and more closely matches the model needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49029 91177308-0d34-0410-b5e6-96231b3b80d8
* add missing #includesChris Lattner2008-04-011-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49020 91177308-0d34-0410-b5e6-96231b3b80d8
* Use empty() instead of comparing size() with zero.Dan Gohman2008-01-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
* finishing touches of bytecode -> bitcode changes. also unbreak WindowsGabor Greif2007-07-061-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37950 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate residual cruft related to recognizing bytecodeGabor Greif2007-07-061-11/+5
| | | | | | | | files. bitcode files are the only LLVM format left. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37945 91177308-0d34-0410-b5e6-96231b3b80d8
* Here is the bulk of the sanitizing.Gabor Greif2007-07-051-11/+11
| | | | | | | Almost all occurrences of "bytecode" in the sources have been eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch this over to bitcode instead of bytecode.Chris Lattner2007-05-061-43/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36866 91177308-0d34-0410-b5e6-96231b3b80d8
* add bitcode supportChris Lattner2007-05-061-7/+41
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36856 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1302:Reid Spencer2007-04-041-2/+2
| | | | | | | Adjust useage of sys::Path::FileType for new enumerator names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35651 91177308-0d34-0410-b5e6-96231b3b80d8
* push bytecode decompressor out through APIs. Now the bytecode readerChris Lattner2007-02-071-7/+10
| | | | | | | | | | | | | | | | | | | | | api's look like this: ModuleProvider *getBytecodeModuleProvider( const std::string &Filename, ///< Name of file to be read BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer, std::string* ErrMsg = 0, ///< Optional error message holder BytecodeHandler* H = 0 ///< Optional handler for reader events ); This is ugly, but allows a client to say: getBytecodeModuleProvider("foo", 0); If they do this, there is no dependency on the compression libraries, saving codesize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34012 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1050:Reid Spencer2006-12-151-2/+11
| | | | | | | Convert asserts into error messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32607 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR797:Reid Spencer2006-08-251-4/+6
| | | | | | | | Remove exception throwing/handling from lib/Bytecode, and adjust its users to compensate for changes in the interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29875 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR797:Reid Spencer2006-08-241-2/+6
| | | | | | | | Remove exception handling from the bytecode archiver and adjust the llvm-ar tool to accommodate the new interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29866 91177308-0d34-0410-b5e6-96231b3b80d8
* Finish removal of EH usage from the Archive library. The REQUIRES_EH flagReid Spencer2006-07-071-68/+131
| | | | | | | | in lib/Bytecode/Archive/Makefile is now removed. One small step closer to a smaller LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29067 91177308-0d34-0410-b5e6-96231b3b80d8
* When reading the symbol table, make sure to delete the ArchiveMemberReid Spencer2006-05-121-0/+2
| | | | | | | created by reading the symbol table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28251 91177308-0d34-0410-b5e6-96231b3b80d8
* more C++ daintinessDuraid Madina2005-12-261-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25023 91177308-0d34-0410-b5e6-96231b3b80d8
* speed up Archive::isBytecodeArchive in the case when the archive doesn't haveChris Lattner2005-09-231-18/+24
| | | | | | | | an llvm-ranlib symtab. This speeds up gccld -native on an almost empty .o file from 1.63s to 0.18s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23406 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR495:Reid Spencer2005-07-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | Get rid of the difference between file paths and directory paths. The Path class now simply stores a path that can refer to either a file or a directory. This required various changes in the implementation and interface of the class with the corresponding impact to its users. Doxygen comments were also updated to reflect these changes. Interface changes are: appendDirectory -> appendComponent appendFile -> appendComponent elideDirectory -> eraseComponent elideFile -> eraseComponent elideSuffix -> eraseSuffix renameFile -> rename setDirectory -> set setFile -> set Changes pass Dejagnu and llvm-test/SingleSource tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22349 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceMisha Brukman2005-04-211-38/+38
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21416 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement an isBytecodeArchive method to determine if an archive containsReid Spencer2005-02-261-0/+29
| | | | | | | | bytecode file members or not. Patch Contributed By Adam Treat git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20338 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove potential platform portability issue with size of "int".Reid Spencer2004-12-291-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19172 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix problems uncovered by VC++ (first time compiled by VC++)Jeff Cohen2004-12-201-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19056 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure the Archive gets deleted if there's an error.Reid Spencer2004-12-131-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18869 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement error handling in OpenAndLoad* functions so the Linker can handle it.Reid Spencer2004-12-131-13/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18853 91177308-0d34-0410-b5e6-96231b3b80d8
* Path::get -> Path::toStringReid Spencer2004-12-111-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18785 91177308-0d34-0410-b5e6-96231b3b80d8
* Compute the firstFileOffset correctly after reading the LLVM symbol table.Reid Spencer2004-11-281-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18300 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow reading of member names that begin with an _ character.Reid Spencer2004-11-231-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18179 91177308-0d34-0410-b5e6-96231b3b80d8
* Distinguish between BSD4.4 and SVR4 symbol tablesReid Spencer2004-11-201-27/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18044 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct the computation of when to add the padding. It is not based on theReid Spencer2004-11-191-8/+8
| | | | | | | | | member's size. It is based on the oddness/evenness of the file pointer. This fixes a bug with llvm-ar not being able to read archives produced by llvm-ranlib when there are members with odd long file name lengths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17997 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't save an iterator, just use post-increment.Reid Spencer2004-11-191-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17981 91177308-0d34-0410-b5e6-96231b3b80d8
* Make findModulesDefiningSymbols modify its symbols argument so we can \Reid Spencer2004-11-191-3/+14
| | | | | | | eliminate symbols defined by the archive efficiently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17976 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure we parse bytecode with a module identifier that reflects the fullReid Spencer2004-11-171-3/+9
| | | | | | | name of the module: "Archive.a(object.o)" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17917 91177308-0d34-0410-b5e6-96231b3b80d8
* Despite documentation to the contrary, Mac OSX and BSD 4.4 archive formatsReid Spencer2004-11-171-2/+3
| | | | | | | | *do* include the length of the long file in the length of the member and they are *not* null terminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17909 91177308-0d34-0410-b5e6-96231b3b80d8
* Per code review:\Reid Spencer2004-11-161-15/+20
| | | | | | | | * Make sure we write out the foreign symbol table if we read one \ * Make the padding calculation more efficiently and avoid Solaris warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17883 91177308-0d34-0410-b5e6-96231b3b80d8
* * Make sure the string table gets read even if there isn't a foreignReid Spencer2004-11-151-8/+20
| | | | | | | | | symbol table. * Make sure we update the file pointer for each member when rebuilding the symbol table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17812 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes necessary to enable linking of archives without LLVM symbol tables.Reid Spencer2004-11-151-2/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17811 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely rewritten to allow reading of archives and symbol table lookup in ↵Reid Spencer2004-11-141-160/+369
| | | | | | a more efficient manner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17767 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved to lib/Bytecode/Archive in preparation for re-write.Reid Spencer2004-11-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17742 91177308-0d34-0410-b5e6-96231b3b80d8
* Recognize compressed LLVM bytecode files.John Criswell2004-11-091-0/+3
| | | | | | | | This should fix the problem of not being able to link compressed LLVM bytecode files from LLVM libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17648 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
* Add #include <iostream> which is needed now that Value.h doesn't include itReid Spencer2004-07-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14600 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the new FileUtilities.h API for mapping a file into an addressChris Lattner2004-05-281-14/+8
| | | | | | | space git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13864 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the true, decoded name of the archive member in getObjectType.Brian Gaeke2004-03-311-7/+10
| | | | | | | | In ReadArchiveBuffer, make sure that MemberName is set in the case where getObjectType would want to return SVR4LongFilename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12567 91177308-0d34-0410-b5e6-96231b3b80d8
* * finegrainify namespacification of ArchiveReader.cppChris Lattner2004-01-101-6/+3
| | | | | | | | * Refactor reader stuff out of include/llvm/Bytecode/Primitives.h. This is internal implementation details for the reader, not public interfaces! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10739 91177308-0d34-0410-b5e6-96231b3b80d8
* Use new getFileSize function instead of sys/stat.h directly.Chris Lattner2003-12-301-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10650 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted back to revision 1.11. The previous fix doesn't really fixJohn Criswell2003-12-221-12/+3
| | | | | | | anything; it just causes the bug to go dormant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10585 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR#193.John Criswell2003-12-201-3/+12
| | | | | | | | | | | Modified ReadArchiveBuffer() so that it dynamically allocates the std::string object used to hold the bytecode object file's name. This is necessary because it is passed by reference to the new Module that is allocated to represent the bytecode object, and previously we were using a std::string that disappeared on function exit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10565 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getObjectType() smarter about ranlibbed Mac OS X archives.Brian Gaeke2003-12-171-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10493 91177308-0d34-0410-b5e6-96231b3b80d8
* In getObjectType(), doxygenify comment, and take a pointer to theBrian Gaeke2003-12-111-50/+43
| | | | | | | | | | | | | | beginning of the archive member data as an argument. Get rid of ParseLongFilenameSection(), which is dead. In ReadArchiveBuffer(), implement support for 4.4BSD/MacOSX long filenames. This is kind of invasive, because they prepend the long filename to the archive member data, and then lie about the size. So we have to keep track of the real size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10392 91177308-0d34-0410-b5e6-96231b3b80d8