llvm-project/lld/ELF
Rui Ueyama abf908e632 Fix a data race found by tsan.
Reads from `Live` and writes to `OutputOff` in the following code race
even though they are logically independent because they are bitfields
sharing the same word.

  for (size_t I = 0, E = Sec->Pieces.size(); I != E; ++I) {
    if (!Sec->Pieces[I].Live)
      continue;
    CachedHashStringRef Str = Sec->getData(I);
    size_t ShardId = getShardId(Str.hash());
    if ((ShardId & (Concurrency - 1)) == ThreadId)
      Sec->Pieces[I].OutputOff = Shards[ShardId].add(Str);
  }

llvm-svn: 314711
2017-10-02 20:16:13 +00:00
..
Arch [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code 2017-10-02 14:56:41 +00:00
CMakeLists.txt Add basic 64-bit SPARC support 2017-06-28 17:05:39 +00:00
Config.h [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code 2017-10-02 14:56:41 +00:00
Driver.cpp [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code 2017-10-02 14:56:41 +00:00
Driver.h [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
DriverUtils.cpp [ELF] Rewrite --symbol-ordering-file path in reproducer 2017-09-06 10:10:49 +00:00
EhFrame.cpp Revert rL313697, "Compact EhSectionPiece from 32 bytes to 16 bytes." 2017-09-20 08:03:18 +00:00
EhFrame.h Revert rL313697, "Compact EhSectionPiece from 32 bytes to 16 bytes." 2017-09-20 08:03:18 +00:00
Error.cpp Use StringRef::contains(). 2017-07-19 21:40:26 +00:00
Error.h [lld/pdb] Add some basic linker module symbols. 2017-07-10 21:01:37 +00:00
Filesystem.cpp ELF: Only unlink regular files 2017-07-04 16:03:34 +00:00
Filesystem.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
GdbIndex.cpp Remove unused member variable. 2017-09-24 23:12:36 +00:00
GdbIndex.h Remove unused member variable. 2017-09-24 23:12:36 +00:00
ICF.cpp [ICF] Include section contents in section hash values. 2017-10-02 01:21:07 +00:00
ICF.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
InputFiles.cpp Make parameter lists of SymbolTable::add* functions more consistent. NFC. 2017-09-30 12:41:34 +00:00
InputFiles.h [ELF] - Introduce std::vector<InputFile *> global arrays. 2017-09-19 09:20:54 +00:00
InputSection.cpp Inline hot functions. 2017-10-01 23:46:31 +00:00
InputSection.h Fix a data race found by tsan. 2017-10-02 20:16:13 +00:00
LTO.cpp [ELF] - LTO: do not optimize away symbols accessed from linkerscript. 2017-09-25 09:31:43 +00:00
LTO.h Make __start_sec __end_sec handling more precise. 2017-07-26 23:39:10 +00:00
LinkerScript.cpp [ELF] - Stop removing sections in removeUnusedSyntheticSections(). 2017-10-02 09:11:13 +00:00
LinkerScript.h Align addresses, not offsets. 2017-09-12 00:06:00 +00:00
MapFile.cpp [ELF] - Introduce std::vector<InputFile *> global arrays. 2017-09-19 09:20:54 +00:00
MapFile.h Merge OutputSectionCommand and OutputSection. 2017-07-27 19:22:43 +00:00
MarkLive.cpp [ELF] Simpler scheme for handling common symbols 2017-09-29 09:08:26 +00:00
Memory.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
Options.td Add -no-gdb-index which negates -gdb-index option. 2017-09-07 22:40:54 +00:00
OutputSections.cpp [EFL] - Fix incorrect code style. NFC. 2017-09-28 09:40:17 +00:00
OutputSections.h [ELF] - Remove one of OutputSectionFactory::addInputSec(). 2017-09-15 15:44:00 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp Remove useless accessor. 2017-09-18 23:07:09 +00:00
Relocations.h [ELF] Rename variables and add comments to getISThunkSec [NFC] 2017-09-12 09:17:39 +00:00
ScriptLexer.cpp [ELF] - Do not report multiple errors for single one in ScriptLexer::setError. 2017-08-23 08:48:39 +00:00
ScriptLexer.h [ELF] - Remove ScriptLexer::Error field and check ErrorCount instead. 2017-08-04 10:34:14 +00:00
ScriptParser.cpp Consider ForceAbsolute again in moveAbsRight. 2017-09-20 19:24:57 +00:00
ScriptParser.h Move the parser for the linker script to a separate file. 2017-04-05 05:07:39 +00:00
Strings.cpp [ELF] Prevent crash with binary inputs with non-ascii file names 2017-09-07 08:30:09 +00:00
Strings.h [ELF] Prevent crash with binary inputs with non-ascii file names 2017-09-07 08:30:09 +00:00
SymbolTable.cpp Make parameter lists of SymbolTable::add* functions more consistent. NFC. 2017-09-30 12:41:34 +00:00
SymbolTable.h Make parameter lists of SymbolTable::add* functions more consistent. NFC. 2017-09-30 12:41:34 +00:00
Symbols.cpp [ELF] Simpler scheme for handling common symbols 2017-09-29 09:08:26 +00:00
Symbols.h [ELF] Simpler scheme for handling common symbols 2017-09-29 09:08:26 +00:00
SyntheticSections.cpp [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code 2017-10-02 14:56:41 +00:00
SyntheticSections.h Parallelize string merging. 2017-09-30 11:46:26 +00:00
Target.cpp [ELF] Introduce target specific inBranchRange() function 2017-07-17 16:54:29 +00:00
Target.h Fix which file is in an error message. 2017-08-04 18:33:16 +00:00
Threads.h Update comments: parallel_for_each -> parallelForEach 2017-08-23 19:03:20 +00:00
Thunks.cpp [ELF] Fix edge condition in thunk offset calculation 2017-09-21 21:04:42 +00:00
Thunks.h [ELF] - Fix member name: alignment -> Alignment. NFC. 2017-07-18 11:59:19 +00:00
Writer.cpp Rewrite a comment. 2017-10-02 18:54:59 +00:00
Writer.h [MIPS] Fix PLT entries generation in case of linking regular and microMIPS code 2017-10-02 14:56:41 +00:00

README.md

See docs/NewLLD.rst