SuccessChanges

Summary

  1. Add missing target triple to test
  2. [scudo] Add Android support Summary: This change adds Android support to the allocator (but doesn't yet enable it in the cmake config), and should be the last fragment of the rewritten change D31947. Android has more memory constraints than other platforms, so the idea of a unique context per thread would not have worked. The alternative chosen is to allocate a set of contexts based on the number of cores on the machine, and share those contexts within the threads. Contexts can be dynamically reassigned to threads to prevent contention, based on a scheme suggested by @dvyuokv in the initial review. Additionally, given that Android doesn't support ELF TLS (only emutls for now), we use the TSan TLS slot to make things faster: Scudo is mutually exclusive with other sanitizers so this shouldn't cause any problem. An additional change made here, is replacing `thread_local` by `THREADLOCAL` and using the initial-exec thread model in the non-Android version to prevent extraneous weak definition and checks on the relevant variables. Reviewers: kcc, dvyukov, alekseyshl Reviewed By: alekseyshl Subscribers: srhines, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D32649
  3. Delete LinkerScript::getSectionIndex. We can set SectionIndex tentatively as we process the linker script instead of looking it repeatedly. In general we should try to have as few name lookups as possible.
  4. Mark test using <sys/time.h> as UNSUPPORTED on Windows
  5. Fix condition_variable::wait_until and wait_for on Windows. The ERROR_TIMEDOUT returned by the Windows API does not have the same value as ETIMEDOUT. This caused condition_variable to return timeouts as unknown errors.
  6. Multilib: add dump methods
  7. Fix build breakage on Linux.
  8. Fix -Wreorder warning.
  9. Fix another incorrectly cased header include.
  10. [StreamArray] Pipe the Offset through the constructor. When randomly accessing an element by offset, we weren't passing the offset through so if you called .offset() it would return a value of 0.
  11. Fix #include case sensitivity problem.
  12. [AMDGPU] In the new waitcnt insertion pass, use getHeader instead of getTopBlock to find the loop header. Differential Revision: https://reviews.llvm.org/D32831
  13. MIParser/MIRPrinter: Compute block successors if not explicitely specified - MIParser: If the successor list is not specified successors will be added based on basic block operands in the block and possible fallthrough. - MIRPrinter: Adds a new `simplify-mir` option, with that option set: Skip printing of block successor lists in cases where the parser is guaranteed to reconstruct it. This means we still print the list if some successor cannot be determined (happens for example for jump tables), if the successor order changes or branch probabilities being unequal. Differential Revision: https://reviews.llvm.org/D31262
  14. Split up Parallel and LLVM'ize naming conventions. This is one step in preparation of raising this up to LLVM. This hides all of the Executor stuff in a private implementation file, leaving only the core algorithms and the TaskGroup class exposed. In doing so, fix up all the variable names to conform to LLVM style. Differential Revision: https://reviews.llvm.org/D32890
  15. Add cxxStdInitializerListExpr AST matcher Summary: This adds a new ASTMatcher for CXXStdInitializerListExprs that matches C++ initializer list expressions. The primary motivation is to use it to fix [[ https://bugs.llvm.org/show_bug.cgi?id=32896 | PR32896 ]] (review here [[ https://reviews.llvm.org/D32767 | D32767 ]]). Reviewers: alexfh, Prazek, aaron.ballman Reviewed By: alexfh, aaron.ballman Subscribers: malcolm.parsons, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D32810
  16. [X86] Use SDValue::getConstantOperandVal helper. NFCI.
  17. Fix detection for [[fallthrough]] with GCC
  18. [ODRHash] Fix typo, NFC NestedNameSpecifer to NestedNameSpecifier. This was not a problem before since one of the included headers transitively brought in the definition of the class and only manifested as a problem when using the typoed NestedNameSpecifer and getting an incomplete type error instead of a typo correction.
Revision 302301 by matze:
Add missing target triple to test
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/MIR/X86/auto-successor.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/MIR/X86/auto-successor.mir
Revision 302300 by cryptoad:
[scudo] Add Android support

Summary:
This change adds Android support to the allocator (but doesn't yet enable it in
the cmake config), and should be the last fragment of the rewritten change
D31947.

Android has more memory constraints than other platforms, so the idea of a
unique context per thread would not have worked. The alternative chosen is to
allocate a set of contexts based on the number of cores on the machine, and
share those contexts within the threads. Contexts can be dynamically reassigned
to threads to prevent contention, based on a scheme suggested by @dvyuokv in
the initial review.

Additionally, given that Android doesn't support ELF TLS (only emutls for now),
we use the TSan TLS slot to make things faster: Scudo is mutually exclusive
with other sanitizers so this shouldn't cause any problem.

An additional change made here, is replacing `thread_local` by `THREADLOCAL`
and using the initial-exec thread model in the non-Android version to prevent
extraneous weak definition and checks on the relevant variables.

Reviewers: kcc, dvyukov, alekseyshl

Reviewed By: alekseyshl

Subscribers: srhines, mgorny, llvm-commits

Differential Revision: https://reviews.llvm.org/D32649
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/scudo/CMakeLists.txt (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/scudo/scudo_allocator.cpp (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_allocator.cpp
The file was modified/compiler-rt/trunk/lib/scudo/scudo_allocator.h (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_allocator.h
The file was modified/compiler-rt/trunk/lib/scudo/scudo_tls.h (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls.h
The file was added/compiler-rt/trunk/lib/scudo/scudo_tls_android.cppllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_android.cpp
The file was added/compiler-rt/trunk/lib/scudo/scudo_tls_android.incllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_android.inc
The file was added/compiler-rt/trunk/lib/scudo/scudo_tls_context_android.incllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_context_android.inc
The file was added/compiler-rt/trunk/lib/scudo/scudo_tls_context_linux.incllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_context_linux.inc
The file was modified/compiler-rt/trunk/lib/scudo/scudo_tls_linux.cpp (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_linux.cpp
The file was removed/compiler-rt/trunk/lib/scudo/scudo_tls_linux.hllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_linux.h
The file was added/compiler-rt/trunk/lib/scudo/scudo_tls_linux.incllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_tls_linux.inc
Revision 302299 by rafael:
Delete LinkerScript::getSectionIndex.

We can set SectionIndex tentatively as we process the linker script
instead of looking it repeatedly.

In general we should try to have as few name lookups as possible.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/LinkerScript.cpp (diff)llvm-revision.src/lld/trunk/ELF/LinkerScript.cpp
The file was modified/lld/trunk/ELF/LinkerScript.h (diff)llvm-revision.src/lld/trunk/ELF/LinkerScript.h
The file was modified/lld/trunk/ELF/OutputSections.cpp (diff)llvm-revision.src/lld/trunk/ELF/OutputSections.cpp
The file was modified/lld/trunk/ELF/Writer.cpp (diff)llvm-revision.src/lld/trunk/ELF/Writer.cpp
Revision 302298 by ericwf:
Mark test using <sys/time.h> as UNSUPPORTED on Windows
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp (diff)llvm-revision.src/libcxx/trunk/test/std/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp
Revision 302297 by ericwf:
Fix condition_variable::wait_until and wait_for on Windows.

The ERROR_TIMEDOUT returned by the Windows API does not
have the same value as ETIMEDOUT. This caused condition_variable
to return timeouts as unknown errors.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__threading_support (diff)llvm-revision.src/libcxx/trunk/include/__threading_support
Revision 302296 by jroelofs:
Multilib: add dump methods
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Multilib.h (diff)llvm-revision.src/cfe/trunk/include/clang/Driver/Multilib.h
The file was modified/cfe/trunk/lib/Driver/Multilib.cpp (diff)llvm-revision.src/cfe/trunk/lib/Driver/Multilib.cpp
Revision 302295 by ruiu:
Fix build breakage on Linux.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/lib/Core/TaskGroup.cpp (diff)llvm-revision.src/lld/trunk/lib/Core/TaskGroup.cpp
Revision 302294 by zturner:
Fix -Wreorder warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/BinaryStreamArray.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/BinaryStreamArray.h
Revision 302293 by zturner:
Fix another incorrectly cased header include.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/include/lld/Core/Parallel.h (diff)llvm-revision.src/lld/trunk/include/lld/Core/Parallel.h
Revision 302292 by zturner:
[StreamArray] Pipe the Offset through the constructor.

When randomly accessing an element by offset, we weren't passing
the offset through so if you called .offset() it would return a
value of 0.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/BinaryStreamArray.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Support/BinaryStreamArray.h
Revision 302291 by zturner:
Fix #include case sensitivity problem.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/lib/Core/TaskGroup.cpp (diff)llvm-revision.src/lld/trunk/lib/Core/TaskGroup.cpp
Revision 302290 by kannann:
[AMDGPU] In the new waitcnt insertion pass, use getHeader
         instead of getTopBlock to find the loop header.

Differential Revision: https://reviews.llvm.org/D32831
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInsertWaitcnts.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/waitcnt-looptest.llllvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/waitcnt-looptest.ll
Revision 302289 by matze:
MIParser/MIRPrinter: Compute block successors if not explicitely specified

- MIParser: If the successor list is not specified successors will be
  added based on basic block operands in the block and possible
  fallthrough.

- MIRPrinter: Adds a new `simplify-mir` option, with that option set:
  Skip printing of block successor lists in cases where the
  parser is guaranteed to reconstruct it. This means we still print the
  list if some successor cannot be determined (happens for example for
  jump tables), if the successor order changes or branch probabilities
  being unequal.

Differential Revision: https://reviews.llvm.org/D31262
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/MIRLangRef.rst (diff)llvm-revision.src/llvm/trunk/docs/MIRLangRef.rst
The file was added/llvm/trunk/include/llvm/CodeGen/MIRPrinter.hllvm-revision.src/llvm/trunk/include/llvm/CodeGen/MIRPrinter.h
The file was modified/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
The file was modified/llvm/trunk/lib/CodeGen/MIRPrinter.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/MIRPrinter.cpp
The file was removed/llvm/trunk/lib/CodeGen/MIRPrinter.hllvm-revision.src/llvm/trunk/lib/CodeGen/MIRPrinter.h
The file was modified/llvm/trunk/lib/CodeGen/MIRPrintingPass.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/MIRPrintingPass.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/loh.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AArch64/loh.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/machine-copy-remove.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AArch64/machine-copy-remove.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/machine-sink-zr.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AArch64/machine-sink-zr.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/regcoal-physreg.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AArch64/regcoal-physreg.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/detect-dead-lanes.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/detect-dead-lanes.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/inserted-wait-states.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/inserted-wait-states.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/invert-br-undef-vcc.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/invert-br-undef-vcc.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/liveness.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/liveness.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/optimize-if-exec-masking.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/optimize-if-exec-masking.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/rename-independent-subregs.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/rename-independent-subregs.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/si-fix-sgpr-copies.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/si-fix-sgpr-copies.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/subreg-intervals.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/subreg-intervals.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/vccz-corrupt-bug-workaround.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/AMDGPU/vccz-corrupt-bug-workaround.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/ARMLoadStoreDBG.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/ARMLoadStoreDBG.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/cmp1-peephole-thumb.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/cmp1-peephole-thumb.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/cmp2-peephole-thumb.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/cmp2-peephole-thumb.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/dbg-range-extension.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/dbg-range-extension.mir
The file was removed/llvm/trunk/test/CodeGen/MIR/Generic/branch-probabilities.llllvm-revision.src/llvm/trunk/test/CodeGen/MIR/Generic/branch-probabilities.ll
The file was added/llvm/trunk/test/CodeGen/MIR/X86/auto-successor.mirllvm-revision.src/llvm/trunk/test/CodeGen/MIR/X86/auto-successor.mir
The file was added/llvm/trunk/test/CodeGen/MIR/X86/branch-probabilities.mirllvm-revision.src/llvm/trunk/test/CodeGen/MIR/X86/branch-probabilities.mir
The file was modified/llvm/trunk/test/CodeGen/MIR/X86/successor-basic-blocks.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/MIR/X86/successor-basic-blocks.mir
The file was modified/llvm/trunk/test/CodeGen/X86/branchfolding-undef.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/branchfolding-undef.mir
The file was modified/llvm/trunk/test/CodeGen/X86/eflags-copy-expansion.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/eflags-copy-expansion.mir
The file was modified/llvm/trunk/test/CodeGen/X86/implicit-null-checks.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/implicit-null-checks.mir
The file was modified/llvm/trunk/test/CodeGen/X86/invalid-liveness.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/invalid-liveness.mir
The file was modified/llvm/trunk/test/CodeGen/X86/machine-region-info.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/machine-region-info.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pr27681.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/pr27681.mir
The file was modified/llvm/trunk/test/CodeGen/X86/pre-coalesce.mir (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/pre-coalesce.mir
Revision 302288 by zturner:
Split up Parallel and LLVM'ize naming conventions.

This is one step in preparation of raising this up to
LLVM.  This hides all of the Executor stuff in a private
implementation file, leaving only the core algorithms and
the TaskGroup class exposed.  In doing so, fix up all the
variable names to conform to LLVM style.

Differential Revision: https://reviews.llvm.org/D32890
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/include/lld/Core/Parallel.h (diff)llvm-revision.src/lld/trunk/include/lld/Core/Parallel.h
The file was added/lld/trunk/include/lld/Core/TaskGroup.hllvm-revision.src/lld/trunk/include/lld/Core/TaskGroup.h
The file was modified/lld/trunk/lib/Core/CMakeLists.txt (diff)llvm-revision.src/lld/trunk/lib/Core/CMakeLists.txt
The file was added/lld/trunk/lib/Core/TaskGroup.cppllvm-revision.src/lld/trunk/lib/Core/TaskGroup.cpp
The file was modified/lld/trunk/unittests/CoreTests/CMakeLists.txt (diff)llvm-revision.src/lld/trunk/unittests/CoreTests/CMakeLists.txt
Revision 302287 by kuhar:
Add cxxStdInitializerListExpr AST matcher

Summary:
This adds a new ASTMatcher for CXXStdInitializerListExprs that matches C++ initializer list expressions.

The primary motivation is to use it to fix [[ https://bugs.llvm.org/show_bug.cgi?id=32896 | PR32896 ]] (review here [[ https://reviews.llvm.org/D32767 | D32767 ]]).

Reviewers: alexfh, Prazek, aaron.ballman

Reviewed By: alexfh, aaron.ballman

Subscribers: malcolm.parsons, cfe-commits, klimek

Differential Revision: https://reviews.llvm.org/D32810
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/LibASTMatchersReference.html (diff)llvm-revision.src/cfe/trunk/docs/LibASTMatchersReference.html
The file was modified/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h (diff)llvm-revision.src/cfe/trunk/include/clang/ASTMatchers/ASTMatchers.h
The file was modified/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp (diff)llvm-revision.src/cfe/trunk/lib/ASTMatchers/Dynamic/Registry.cpp
The file was modified/cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp (diff)llvm-revision.src/cfe/trunk/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
Revision 302286 by rksimon:
[X86] Use SDValue::getConstantOperandVal helper. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
Revision 302285 by ericwf:
Fix detection for [[fallthrough]] with GCC
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/__config (diff)llvm-revision.src/libcxx/trunk/include/__config
Revision 302284 by rtrieu:
[ODRHash] Fix typo, NFC

NestedNameSpecifer to NestedNameSpecifier.  This was not a problem before since
one of the included headers transitively brought in the definition of the class
and only manifested as a problem when using the typoed NestedNameSpecifer and
getting an incomplete type error instead of a typo correction.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ODRHash.h (diff)llvm-revision.src/cfe/trunk/include/clang/AST/ODRHash.h