summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
Commit message (Collapse)AuthorAgeFilesLines
...
* [ARM] Add skeleton for dynamic relocation passDenis Protivensky2015-04-101-6/+39
| | | | llvm-svn: 234573
* Remove redundant parentheses.Rui Ueyama2015-04-105-12/+12
| | | | llvm-svn: 234558
* Do not use default arguments for trivial functions.Rui Ueyama2015-04-101-6/+5
| | | | llvm-svn: 234557
* Remove unused return values.Rui Ueyama2015-04-101-55/+30
| | | | llvm-svn: 234556
* ELF: Don't use APPLY_RELOC macro.Rui Ueyama2015-04-101-61/+56
| | | | | | | In other ELF ports, we don't use the macro. This patch removes the macro for consistency and readability. llvm-svn: 234552
* ELF: Move Hexagon linker helper function to Hexagon directory.Rui Ueyama2015-04-101-19/+36
| | | | | | | | Because no one except Hexagon uses the header, we don't need to maintain the header in the common directory. Also de-template the function for readability. llvm-svn: 234551
* Fix undefined behavior.Rui Ueyama2015-04-091-10/+9
| | | | | | | Having std:move(mb) and mb->getBuffer() in the same argument list is not safe because the order of evaluation is not defined. llvm-svn: 234541
* ELF: Move CreateELF() from its own file to ELFReader.h.Rui Ueyama2015-04-092-72/+33
| | | | | | | | CreateELF.h was included only by ELFReader.h, and it was used only by ELFReader class. By making the function a member of the class, we can remove template parameters. llvm-svn: 234540
* [ARM] clang-format ARM sourcesDenis Protivensky2015-04-095-26/+21
| | | | llvm-svn: 234474
* [ARM] Add mapping symbols to veneersDenis Protivensky2015-04-091-38/+127
| | | | | | | | This required splitting up veneer atoms into pieces, where every piece is paired with mapping atom of the corresponding type. llvm-svn: 234473
* Rename atom_collection -> AtomVector.Rui Ueyama2015-04-087-45/+45
| | | | | | Type names should start with an uppercase letter in the LLVM coding style. llvm-svn: 234452
* Separate atom_collection type into two different types. NFC.Rui Ueyama2015-04-087-22/+30
| | | | | | | | | | | | | | | | | | | | atom_collection is basically a wrapper for std::vector. The class provides begin and end member functions, so that it "hides" the other member functions provided by std::vector. However, you can still directly access _atoms member since the member is not protected. We cannot simply make the member private because we need that member when we are constructing atom vectors. This patch splits atom_collection into two types: std::vector<Atom *> and AtomRange. When we are constructing atom vectors, we use the former class. We return instances of the latter class from File objects so that callers cannot add or remove atoms from the lists. std::vector<Atom *> is automatically converted to AtomRange. llvm-svn: 234450
* Merge atom_collection_vector with atom_collection.Rui Ueyama2015-04-086-15/+14
| | | | | | | atom_collection_vector is the only derived class of atom_collection. This patch merges the two. llvm-svn: 234443
* YAML: Remove blank class using alias template.Rui Ueyama2015-04-081-29/+6
| | | | llvm-svn: 234435
* Native: Remove AtomArray and use atom_collection_vector instead.Rui Ueyama2015-04-081-76/+28
| | | | llvm-svn: 234434
* Native: Use tempalte to remove duplicate code. NFC.Rui Ueyama2015-04-081-117/+36
| | | | llvm-svn: 234432
* Native: Simplify expressions. NFC.Rui Ueyama2015-04-081-9/+6
| | | | llvm-svn: 234431
* Remove redundant virtual on member functions marked 'override'.David Blaikie2015-04-083-14/+8
| | | | llvm-svn: 234419
* [ELF] Remove redundant GOTFile classesSimon Atanasyan2015-04-085-50/+16
| | | | llvm-svn: 234397
* [ELF] Do not save a reference to GOTFile instance in xxxWriter classesSimon Atanasyan2015-04-085-31/+25
| | | | | | | | It's a follow-up to r234347. We do not need to keep a reference to `GOTFile` instance in a xxxWriter class after ownership is transferred to the caller of the `createImplicitFiles` method. llvm-svn: 234396
* ELF: Minor simplification.Rui Ueyama2015-04-071-5/+2
| | | | | | | MergeSectionKey is a tiny struct. We don't need a constructor for that. The good old way to initialize a struct works fine. llvm-svn: 234371
* MachO: Remove unused vectors from MachHeaderAliasFile. NFC.Rui Ueyama2015-04-071-6/+3
| | | | llvm-svn: 234369
* Remove unused vectors from FileArchive.Rui Ueyama2015-04-071-8/+4
| | | | | | | Archive files don't have any symbols (their members do). The vectors deleted here were always empty. llvm-svn: 234368
* ELF: Simplify ELFFile by deriving from SimpleFile instead of File.Rui Ueyama2015-04-071-44/+19
| | | | | | | | SimpleFile defines defined(). undefined(), sharedLibrary() and absolute(). We should use the class instead of deriving from the base class and re-defining the member functions in ELFFile. llvm-svn: 234367
* [ELF] Set `addAbsoluteAtom` and `addUndefinedAtom` functions return type to voidSimon Atanasyan2015-04-072-5/+3
| | | | | | | We do not use values returned by these functions anywhere. So let's return nothing. llvm-svn: 234358
* [ELF] Remove unused xxxWriter class fieldsSimon Atanasyan2015-04-075-21/+7
| | | | llvm-svn: 234357
* [ELF] Remove redundant override methods which just call base class functionsSimon Atanasyan2015-04-076-24/+0
| | | | llvm-svn: 234356
* Merge MutableFile with SimpleFile.Rui Ueyama2015-04-0724-58/+57
| | | | | | | | SimpleFile is the only derived class of MutableFile. This patch reduces the height of class hierarchy by removing MutableFile class. llvm-svn: 234354
* [ELF] Simplify adding default atomsSimon Atanasyan2015-04-0712-105/+48
| | | | | | | | | | | | | | | | | | | | | Now 'writer' creates an instance of `RuntimeFile` in the constructor, then populates the file in the virtual function `addDefaultAtoms`, then pass owning of this file to the caller of virtual function `createImplicitFiles`. First, we do not need to keep an instance of `RuntimeFile` so long. It is enough to create the file, right after that populate it and pass the owning. Second, relationship between `createImplicitFiles` and `addDefaultAtoms` is complicated. The `createImplicitFiles` might call `addDefaultAtoms`, overridden version of `addDefaultAtoms` might call base class `addDefaultAtoms`, and overridden version of `createImplicitFiles` might call base class `createImplicitFiles` as well as `addDefaultAtoms`. The patch solves both problems above. It creates and populates runtime files right in the createImplicitFiles(), removes `addDefaultAtoms` at all and does not keep references to runtime files in class fields. llvm-svn: 234347
* [ARM] Use getMappingAtomName in Release onlyDenis Protivensky2015-04-071-0/+2
| | | | llvm-svn: 234311
* [ARM] Rename applyThmReloc => applyThumb32RelocDenis Protivensky2015-04-071-6/+6
| | | | llvm-svn: 234302
* [ARM] Add mapping symbols to PLT entriesDenis Protivensky2015-04-071-19/+73
| | | | | | | | | | | | Make PLT entry atoms represent mapping symbols in the Release mode, while in the Debug mode they are still function-like symbols with regular names. It's legal that mapping symbols denote unnamed parts of code, and PLT entries are not required to have function-like names. Differential Revision: http://reviews.llvm.org/D8819 llvm-svn: 234301
* [ELF] Remove redundant const_castSimon Atanasyan2015-04-071-3/+2
| | | | | | No functional changes. llvm-svn: 234293
* ELF: Minimum alignment value is 1, not 0. NFC.Rui Ueyama2015-04-073-3/+3
| | | | | | | | Maybe we can interpret alignment 0 as "don't care", but for consistency, it's good to set 1 instead of 0 where we allow any alignments. llvm-svn: 234284
* ELF: Add a comment to ELFFile::findAtom.Rui Ueyama2015-04-071-18/+27
| | | | | | Also changed the local variable names to avoid line wrapping. llvm-svn: 234281
* Fix weird comment line-wrapping.Rui Ueyama2015-04-071-4/+3
| | | | llvm-svn: 234279
* Use early continue.Rui Ueyama2015-04-071-10/+10
| | | | llvm-svn: 234278
* ELF: Move more code from createAtoms to handleGnuLinkOnceSection.Rui Ueyama2015-04-071-32/+22
| | | | | | So that createAtoms become more readable. llvm-svn: 234277
* ELF: Simplfiy ELFFile::createAtom.Rui Ueyama2015-04-071-56/+56
| | | | | | | | createAtom function did too much in a single for-loop. This patch splits the for-loop and extract COMDAT handling into a separate function. llvm-svn: 234276
* ELF: Do not return error from handle{CommonSymbol,MergeString}.Rui Ueyama2015-04-072-17/+17
| | | | llvm-svn: 234273
* ELF: Do not return error from handleAbsoluteSymbol.Rui Ueyama2015-04-071-16/+16
| | | | | | This function never fails. llvm-svn: 234272
* ELF: Do not return error from handleUndefinedSymbol.Rui Ueyama2015-04-071-16/+16
| | | | | | This function is not supposed to return an error value. llvm-svn: 234271
* ELF: Do not return error from handleDefinedSymbol.Rui Ueyama2015-04-074-40/+40
| | | | | | | | | | | handleDefinedSymbol has return type of ErrorOr<ELFDefinedAtom *>. However, it never returns an error. We are not checking errors. It's marked as ErrorOr "just in case". That's a bad engineering practice. This patch simplifies the return type of the function. llvm-svn: 234269
* ELF: Simplify CreateELF.Rui Ueyama2015-04-061-37/+17
| | | | | | | | | CreateELF was a combination of templates and C preprocessor macros. This patch removes uses of macros. http://reviews.llvm.org/D8810 llvm-svn: 234253
* [GNU] Implement --enable-new-dtags/--disable-new-dtagsDavide Italiano2015-04-061-1/+1
| | | | | | | PR: 23036 Differential Revision: http://reviews.llvm.org/D8836 llvm-svn: 234240
* ELF: Do not mix link-once and group sections.Rui Ueyama2015-04-061-9/+10
| | | | | | | | | | | Previously, we put both link-once and group sections into the same map and seaparated them out when we use them. Apparently we should put them into seaprate maps in the first place. This piece of code is added recently, and I still don't understand all of them. Looks like we need to clean this up even more. llvm-svn: 234223
* Replace the `createImplicitFiles` method return type with `void`Simon Atanasyan2015-04-0617-49/+31
| | | | | | | All instances of the `createImplicitFiles` always return `true` and this return value is used nowhere. llvm-svn: 234205
* Fix weird line-wrapping.Rui Ueyama2015-04-061-13/+9
| | | | llvm-svn: 234203
* Use llvm::cast at where we don't expect a null value.Rui Ueyama2015-04-061-1/+1
| | | | llvm-svn: 234199
* [Mips] Guard modification of register usage masks by mutexSimon Atanasyan2015-04-062-0/+3
| | | | llvm-svn: 234167
OpenPOWER on IntegriCloud