[SymbolTable][Perf] Use hash_combine instead of a custom hash, also use memcmp.

ArrayRef<uint8_t>::equals(); lowers to a byte compare loop :(.

TODO: Figure out if we are getting hash collisions, or just have a lot of equal
content. Also test if crypto hashing the content instead of full compare is
better.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177588 91177308-0d34-0410-b5e6-96231b3b80d8
[X86_64][test] check that interp section is not emitted when building dynamic libraries

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177603 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon][test] check .got.plt order

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177604 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] fix dynamic symbol table entries and update tests

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177875 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] order rela.dyn/rela.plt properly

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177969 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon] add GOTREL/GOT relocations

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177970 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] no change in functionality, add functions to symbol table so that they can be overridden by derived classes

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177990 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon] Fixing failing test on Bots, few symbol names are available only in debug builds, dont check the symbol names

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@177991 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon] remove duplicated code

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178027 91177308-0d34-0410-b5e6-96231b3b80d8
[Driver] Don't open files multiple times.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178268 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Cache contentType and permissions.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178269 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Add dynamic hash table and get simple dynamic libraries working with Hexagon

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178323 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Set the symbol type for undefined atoms properly

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178466 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon] Create .got.plt entries with the appropriate alignment

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178467 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF][Hexagon] fix few relocations and add test

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178495 91177308-0d34-0410-b5e6-96231b3b80d8
Update the lld testsuite for the llvm-readobj format change.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178693 91177308-0d34-0410-b5e6-96231b3b80d8
Update for API change for handling mips64el.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178695 91177308-0d34-0410-b5e6-96231b3b80d8
This is my Driver refactoring patch. 

The major changes are:
1) LinkerOptions has been merged into TargetInfo
2) LinkerInvocation has been merged into Driver
3) Drivers no longer convert arguments into an intermediate (core) argument 
   list, but instead create a TargetInfo object and call setter methods on 
   it. This is only how in-process linking would work. That is, you can 
   programmatically set up a TargetInfo object which controls the linking.
4) Lots of tweaks to test suite to work with driver changes
5) Add the DarwinDriver
6) I heavily doxygen commented TargetInfo.h

Things to do after this patch is committed:
a) Consider renaming TargetInfo, given its new roll. 
b) Consider pulling the list of input files out of TargetInfo. This will 
   enable in-process clients to create one TargetInfo the re-use it with 
   different input file lists.
c) Work out a way for Drivers to format the warnings and error done in 
   core linking.


git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178776 91177308-0d34-0410-b5e6-96231b3b80d8
fix command line option to use -o

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178777 91177308-0d34-0410-b5e6-96231b3b80d8
fix darwin driver to validate command line options

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@178778 91177308-0d34-0410-b5e6-96231b3b80d8