FailedChanges

Summary

  1. [compiler-rt] Let CMake search for thread support This is an educated guess to fix sanitizer-x86_64-linux after r354132.
  2. [clang] Add build and install targets for clang libraries This is modeled after the existing llvm-libraries target. It's a convenient way to include all clang libraries in a distribution. This differs slightly from the llvm-libraries target in that it adds any library added via add_clang_library, whereas llvm-libraries only includes targets added via add_llvm_library that didn't use the MODULE or BUILDTREE_ONLY arguments. add_clang_library doesn't appear to have any equivalents of those arguments, so the conditions don't apply. Differential Revision: https://reviews.llvm.org/D58269
  3. [clang] Create install targets for non-shared libraries I don't see a reason for these to not have install targets created, which in turn allows them to be bundled in distributions. This doesn't affect the "install" target, since that just runs all CMake install rules (and we were already creating install rules for these). Differential Revision: https://reviews.llvm.org/D58268
  4. GlobalISel: Fix inadequate verification of g_build_vector Testing based on the total size of the elements failed to catch a few invalid scenarios, so explicitly check the number of elements/operands and types. This failed to catch situations like <4 x s16> = G_BUILD_VECTOR s32, s32 since the total size added up. This also would fail to catch an implicit conversion between pointers and scalars.
  5. Try to organize MachineVerifier tests The Verifier is separate from the MachineVerifier, so move it to a different directory. Some other verifier tests were scattered in target codegen tests as well (although I'm sure I missed some). Work towards using a more consistent naming scheme to make it clearer where the gaps still are for generic instructions.
  6. OptionalStorage implementation for trivial type, take III This is another attempt at implementating optional storage for trivially copyable type, using an union instead of a raw buffer to hold the actual storage. This make it possible to get rid of the reinterpret_cast, and hopefully to fix the UB of the previous attempts. This validates fine on my laptop for gcc 8.2 and gcc 4.8, I'll revert if it breaks the validation.
  7. Exteded test of .
  8. Remove unnecessary expectation.
  9. Added test for matcher On.
  10. Add tests for assorted `CXXMemberCallExpr` matchers. Summary: Add tests for matchers `on`, `onImplicitObjectArgument` and `hasObjectExpression`. Reviewers: alexfh, steveire, aaron.ballman Differential Revision: https://reviews.llvm.org/D56850
  11. [compiler-rt] Cleanup usage of C++ ABI library Add missed value "libcxxabi" and introduce SANITIZER_TEST_CXX for linking unit tests. This needs to be a full C++ library and cannot be libcxxabi. Differential Revision: https://reviews.llvm.org/D58012
  12. [MergeICmps] Make base ordering really deterministic. Summary: The idea is that we now manipulate bases through a `unsigned BaseID` based on order of appearance in the comparison chain rather than through the `Value*`. Fixes 40714. Reviewers: gchatelet Subscribers: mgrang, jfb, jdoerfert, llvm-commits, hans Tags: #llvm Differential Revision: https://reviews.llvm.org/D58274
  13. [MergeICmps][NFC] Improve doc.
  14. [Analyzer] Fix for test file of bug 40625 Test fixed and changed to true positive, FIXME about false positive removed.
  15. Speculatively revert r354051 "Recommit Optional specialization for trivially copyable types" and r354055 "Optional specialization for trivially copyable types, part2" These are suspected to cause Clang to get miscompiled on Ubuntu 14.04 (Trusty) which uses GCC 4.8.4. Reverting for an hour to see if this helps. See llvm-commits thread. > Recommit Optional specialization for trivially copyable types > > Unfortunately the original code gets misscompiled by GCC (at least 8.1), > this is a tentative workaround using std::memcpy instead of inplace new > for trivially copyable types. I'll revert if it breaks. > > Original revision: https://reviews.llvm.org/D57097
  16. [NFCI] Factor out block removal from stack of nested loops
  17. Fix "field 'DFS' will be initialized after field 'DTU'" warning. NFCI.
  18. [OpenCL][PR40707] Allow OpenCL C types in C++ mode. Allow all OpenCL types to be parsed in C++ mode.
  19. [ASTImporter] Import every Decl in lambda record Summary: Previously only the fields were imported. Now every Decl is imported. This way the destructor decl is not missing after import. Patch by balazske (Balázs Kéri) Reviewers: a.sidorin, shafik Reviewed By: shafik Subscribers: balazske, cfe-commits, Szelethus, martong, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D57740
  20. [BPI] Look through bitcasts in calcZeroHeuristic Constant hoisting may have hidden a constant behind a bitcast so that it isn't folded into its users. However, this prevents BPI from calculating some of its heuristics that are based upon constant values. So, I've added a simple helper function to look through these casts. Differential Revision: https://reviews.llvm.org/D58166
  21. [NFC] Promote DFS to field for further use
  22. [X86][AVX] lowerShuffleAsLanePermuteAndPermute - fully populate the lane shuffle mask (PR40730) As detailed on PR40730, we are not correctly filling in the lane shuffle mask (D53148/rL344446) - we fill in for the correct src lane but don't add it to the correct mask element, so any reference to the correct element is likely to see an UNDEF mask index. This allows constant folding to propagate UNDEFs prior to the lane mask being (correctly) lowered to vperm2f128. This patch fixes the issue by fully populating the lane shuffle mask - this is more than is necessary (if we only filled in the required mask elements we might be able to match other shuffle instructions - broadcasts etc.), but its the most cautious approach as this needs to be cherrypicked into the 8.0.0 release branch. Differential Revision: https://reviews.llvm.org/D58237
  23. [clangd] Unlink VFS working dir from OS working dir. Reland of r351051
  24. [ARM GlobalISel] Style fix. NFCI Add the opcode for ADDrr / t2ADDrr to the Opcode cache, as we did for all other opcodes where the handling is otherwise the same between arm mode and thumb2.
  25. [ARM GlobalISel] Support branches for Thumb2 Just like arm mode, but with different opcodes.
  26. [RISCV] Add assembler support for LA pseudo-instruction This patch also introduces the emitAuipcInstPair helper, which is then used for both emitLoadAddress and emitLoadLocalAddress. Differential Revision: https://reviews.llvm.org/D55325 Patch by James Clarke.
  27. [RISCV] Support assembling %got_pcrel_hi operator Differential Revision: https://reviews.llvm.org/D55279 Patch by James Clarke.
  28. Revert "[Analysis] -Wunreachable-code shouldn't fire on the increment of a foreach loop" This reverts commit r354102.
  29. [ARM CGP] Fix ConvertTruncs ConvertTruncs is used to replace a trunc for an AND mask, however this function wasn't working as expected. By performing the change later, we can create a wide type integer mask instead of a narrow -1 value, which could then be simply removed (incorrectly). Because we now perform this action later, it's necessary to cache the trunc type before we perform the promotion. Differential Revision: https://reviews.llvm.org/D57686
  30. [NFC] Tweak SplitBlockAndInsertIfThen to use existing ThenBlock
  31. [Analysis] -Wunreachable-code shouldn't fire on the increment of a foreach loop Summary: The idea is that the code here isn't written, so doesn't indicate a bug. Similar to code expanded from macros. This means the warning no longer fires on this code: for (auto C : collection) { process(C); return; } handleEmptyCollection(); Unclear whether this is more often a bug or not in practice, I think it's a reasonable idiom in some cases. Either way, if we want to warn on "loop that doesn't loop", I think it should be a separate warning, and catch `while(1) break;` Reviewers: ilya-biryukov, ioeric Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58134
  32. [TEST] Update test comments, refactor checks with update_test_checks.py This patch changes messages in guards-related tests to adequately reflect reality.
Revision 354143 by hahnfeld:
[compiler-rt] Let CMake search for thread support

This is an educated guess to fix sanitizer-x86_64-linux after r354132.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/config-ix.cmake (diff)compiler-rt.src/cmake/config-ix.cmake
Revision 354141 by smeenai:
[clang] Add build and install targets for clang libraries

This is modeled after the existing llvm-libraries target. It's a
convenient way to include all clang libraries in a distribution.

This differs slightly from the llvm-libraries target in that it adds any
library added via add_clang_library, whereas llvm-libraries only
includes targets added via add_llvm_library that didn't use the MODULE
or BUILDTREE_ONLY arguments. add_clang_library doesn't appear to have
any equivalents of those arguments, so the conditions don't apply.

Differential Revision: https://reviews.llvm.org/D58269
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/CMakeLists.txt (diff)clang.src/CMakeLists.txt
The file was modified/cfe/trunk/cmake/modules/AddClang.cmake (diff)clang.src/cmake/modules/AddClang.cmake
Revision 354140 by smeenai:
[clang] Create install targets for non-shared libraries

I don't see a reason for these to not have install targets created,
which in turn allows them to be bundled in distributions. This doesn't
affect the "install" target, since that just runs all CMake install
rules (and we were already creating install rules for these).

Differential Revision: https://reviews.llvm.org/D58268
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/cmake/modules/AddClang.cmake (diff)clang.src/cmake/modules/AddClang.cmake
Revision 354139 by arsenm:
GlobalISel: Fix inadequate verification of g_build_vector

Testing based on the total size of the elements failed to catch a few
invalid scenarios, so explicitly check the number of elements/operands
and types.

This failed to catch situations like
<4 x s16> = G_BUILD_VECTOR s32, s32 since the total size added
up. This also would fail to catch an implicit conversion between
pointers and scalars.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/MachineVerifier.cpp (diff)llvm.src/lib/CodeGen/MachineVerifier.cpp
The file was modified/llvm/trunk/test/MachineVerifier/test_g_build_vector.mir (diff)llvm.src/test/MachineVerifier/test_g_build_vector.mir
Revision 354138 by arsenm:
Try to organize MachineVerifier tests

The Verifier is separate from the MachineVerifier, so move it to a
different directory. Some other verifier tests were scattered in
target codegen tests as well (although I'm sure I missed some). Work
towards using a more consistent naming scheme to make it clearer where
the gaps still are for generic instructions.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/AArch64/GlobalISel/verify-regbankselected.mirllvm.src/test/CodeGen/AArch64/GlobalISel/verify-regbankselected.mir
The file was removed/llvm/trunk/test/CodeGen/AArch64/GlobalISel/verify-selected.mirllvm.src/test/CodeGen/AArch64/GlobalISel/verify-selected.mir
The file was removed/llvm/trunk/test/CodeGen/AMDGPU/verifier-implicit-virtreg-invalid-physreg-liveness.mirllvm.src/test/CodeGen/AMDGPU/verifier-implicit-virtreg-invalid-physreg-liveness.mir
The file was removed/llvm/trunk/test/CodeGen/AMDGPU/verifier-pseudo-terminators.mirllvm.src/test/CodeGen/AMDGPU/verifier-pseudo-terminators.mir
The file was removed/llvm/trunk/test/CodeGen/X86/verifier-generic-extend-truncate.mirllvm.src/test/CodeGen/X86/verifier-generic-extend-truncate.mir
The file was removed/llvm/trunk/test/CodeGen/X86/verifier-generic-types-1.mirllvm.src/test/CodeGen/X86/verifier-generic-types-1.mir
The file was removed/llvm/trunk/test/CodeGen/X86/verifier-generic-types-2.mirllvm.src/test/CodeGen/X86/verifier-generic-types-2.mir
The file was removed/llvm/trunk/test/CodeGen/X86/verifier-phi-fail0.mirllvm.src/test/CodeGen/X86/verifier-phi-fail0.mir
The file was removed/llvm/trunk/test/CodeGen/X86/verifier-phi.mirllvm.src/test/CodeGen/X86/verifier-phi.mir
The file was added/llvm/trunk/test/MachineVerifierllvm.src/test/MachineVerifier
The file was added/llvm/trunk/test/MachineVerifier/test_copy.mirllvm.src/test/MachineVerifier/test_copy.mir
The file was added/llvm/trunk/test/MachineVerifier/test_copy_mismatch_types.mirllvm.src/test/MachineVerifier/test_copy_mismatch_types.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_add.mirllvm.src/test/MachineVerifier/test_g_add.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_addrspacecast.mirllvm.src/test/MachineVerifier/test_g_addrspacecast.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_bitcast.mirllvm.src/test/MachineVerifier/test_g_bitcast.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_build_vector.mirllvm.src/test/MachineVerifier/test_g_build_vector.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_build_vector_trunc.mirllvm.src/test/MachineVerifier/test_g_build_vector_trunc.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_concat_vectors.mirllvm.src/test/MachineVerifier/test_g_concat_vectors.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_constant.mirllvm.src/test/MachineVerifier/test_g_constant.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_extract.mirllvm.src/test/MachineVerifier/test_g_extract.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_fcmp.mirllvm.src/test/MachineVerifier/test_g_fcmp.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_fconstant.mirllvm.src/test/MachineVerifier/test_g_fconstant.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_gep.mirllvm.src/test/MachineVerifier/test_g_gep.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_icmp.mirllvm.src/test/MachineVerifier/test_g_icmp.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_inttoptr.mirllvm.src/test/MachineVerifier/test_g_inttoptr.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_load.mirllvm.src/test/MachineVerifier/test_g_load.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_phi.mirllvm.src/test/MachineVerifier/test_g_phi.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_ptrtoint.mirllvm.src/test/MachineVerifier/test_g_ptrtoint.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_select.mirllvm.src/test/MachineVerifier/test_g_select.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_sextload.mirllvm.src/test/MachineVerifier/test_g_sextload.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_store.mirllvm.src/test/MachineVerifier/test_g_store.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_trunc.mirllvm.src/test/MachineVerifier/test_g_trunc.mir
The file was added/llvm/trunk/test/MachineVerifier/test_g_zextload.mirllvm.src/test/MachineVerifier/test_g_zextload.mir
The file was added/llvm/trunk/test/MachineVerifier/test_phis_precede_nonphis.mirllvm.src/test/MachineVerifier/test_phis_precede_nonphis.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-generic-extend-truncate.mirllvm.src/test/MachineVerifier/verifier-generic-extend-truncate.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-generic-types-1.mirllvm.src/test/MachineVerifier/verifier-generic-types-1.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-generic-types-2.mirllvm.src/test/MachineVerifier/verifier-generic-types-2.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-implicit-virtreg-invalid-physreg-liveness.mirllvm.src/test/MachineVerifier/verifier-implicit-virtreg-invalid-physreg-liveness.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-phi-fail0.mirllvm.src/test/MachineVerifier/verifier-phi-fail0.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-phi.mirllvm.src/test/MachineVerifier/verifier-phi.mir
The file was added/llvm/trunk/test/MachineVerifier/verifier-pseudo-terminators.mirllvm.src/test/MachineVerifier/verifier-pseudo-terminators.mir
The file was added/llvm/trunk/test/MachineVerifier/verify-regbankselected.mirllvm.src/test/MachineVerifier/verify-regbankselected.mir
The file was added/llvm/trunk/test/MachineVerifier/verify-selected.mirllvm.src/test/MachineVerifier/verify-selected.mir
The file was removed/llvm/trunk/test/Verifier/gisel-g_build_vector.mirllvm.src/test/Verifier/gisel-g_build_vector.mir
The file was removed/llvm/trunk/test/Verifier/gisel-g_build_vector_trunc.mirllvm.src/test/Verifier/gisel-g_build_vector_trunc.mir
The file was removed/llvm/trunk/test/Verifier/gisel-g_concat_vector.mirllvm.src/test/Verifier/gisel-g_concat_vector.mir
The file was removed/llvm/trunk/test/Verifier/test_copy.mirllvm.src/test/Verifier/test_copy.mir
The file was removed/llvm/trunk/test/Verifier/test_copy_mismatch_types.mirllvm.src/test/Verifier/test_copy_mismatch_types.mir
The file was removed/llvm/trunk/test/Verifier/test_g_add.mirllvm.src/test/Verifier/test_g_add.mir
The file was removed/llvm/trunk/test/Verifier/test_g_addrspacecast.mirllvm.src/test/Verifier/test_g_addrspacecast.mir
The file was removed/llvm/trunk/test/Verifier/test_g_bitcast.mirllvm.src/test/Verifier/test_g_bitcast.mir
The file was removed/llvm/trunk/test/Verifier/test_g_constant.mirllvm.src/test/Verifier/test_g_constant.mir
The file was removed/llvm/trunk/test/Verifier/test_g_extract.mirllvm.src/test/Verifier/test_g_extract.mir
The file was removed/llvm/trunk/test/Verifier/test_g_fcmp.mirllvm.src/test/Verifier/test_g_fcmp.mir
The file was removed/llvm/trunk/test/Verifier/test_g_fconstant.mirllvm.src/test/Verifier/test_g_fconstant.mir
The file was removed/llvm/trunk/test/Verifier/test_g_gep.mirllvm.src/test/Verifier/test_g_gep.mir
The file was removed/llvm/trunk/test/Verifier/test_g_icmp.mirllvm.src/test/Verifier/test_g_icmp.mir
The file was removed/llvm/trunk/test/Verifier/test_g_inttoptr.mirllvm.src/test/Verifier/test_g_inttoptr.mir
The file was removed/llvm/trunk/test/Verifier/test_g_load.mirllvm.src/test/Verifier/test_g_load.mir
The file was removed/llvm/trunk/test/Verifier/test_g_phi.mirllvm.src/test/Verifier/test_g_phi.mir
The file was removed/llvm/trunk/test/Verifier/test_g_ptrtoint.mirllvm.src/test/Verifier/test_g_ptrtoint.mir
The file was removed/llvm/trunk/test/Verifier/test_g_select.mirllvm.src/test/Verifier/test_g_select.mir
The file was removed/llvm/trunk/test/Verifier/test_g_sextload.mirllvm.src/test/Verifier/test_g_sextload.mir
The file was removed/llvm/trunk/test/Verifier/test_g_store.mirllvm.src/test/Verifier/test_g_store.mir
The file was removed/llvm/trunk/test/Verifier/test_g_trunc.mirllvm.src/test/Verifier/test_g_trunc.mir
The file was removed/llvm/trunk/test/Verifier/test_g_zextload.mirllvm.src/test/Verifier/test_g_zextload.mir
The file was removed/llvm/trunk/test/Verifier/test_phis_precede_nonphis.mirllvm.src/test/Verifier/test_phis_precede_nonphis.mir
Revision 354137 by serge_sans_paille:
OptionalStorage implementation for trivial type, take III

This is another attempt at implementating optional storage
for trivially copyable type, using an union instead of a
raw buffer to hold the actual storage. This make it possible
to get rid of the reinterpret_cast, and hopefully to fix the UB
of the previous attempts.

This validates fine on my laptop for gcc 8.2 and gcc 4.8, I'll
revert if it breaks the validation.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
Revision 354136 by ymandel:
Exteded test of .
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)clang.src/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Revision 354135 by ymandel:
Remove unnecessary expectation.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)clang.src/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Revision 354134 by ymandel:
Added test for matcher On.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)clang.src/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Revision 354133 by ymandel:
Add tests for assorted `CXXMemberCallExpr` matchers.

Summary: Add tests for matchers `on`, `onImplicitObjectArgument` and `hasObjectExpression`.

Reviewers: alexfh, steveire, aaron.ballman

Differential Revision: https://reviews.llvm.org/D56850
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp (diff)clang.src/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Revision 354132 by hahnfeld:
[compiler-rt] Cleanup usage of C++ ABI library

Add missed value "libcxxabi" and introduce SANITIZER_TEST_CXX for linking
unit tests. This needs to be a full C++ library and cannot be libcxxabi.

Differential Revision: https://reviews.llvm.org/D58012
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/CMakeLists.txt (diff)compiler-rt.src/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/asan/CMakeLists.txt (diff)compiler-rt.src/lib/asan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/CMakeLists.txt (diff)compiler-rt.src/lib/fuzzer/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/hwasan/CMakeLists.txt (diff)compiler-rt.src/lib/hwasan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/scudo/CMakeLists.txt (diff)compiler-rt.src/lib/scudo/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/scudo/standalone/tests/CMakeLists.txt (diff)compiler-rt.src/lib/scudo/standalone/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/tsan/dd/CMakeLists.txt (diff)compiler-rt.src/lib/tsan/dd/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/tsan/tests/CMakeLists.txt (diff)compiler-rt.src/lib/tsan/tests/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/ubsan/CMakeLists.txt (diff)compiler-rt.src/lib/ubsan/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/xray/tests/CMakeLists.txt (diff)compiler-rt.src/lib/xray/tests/CMakeLists.txt
Revision 354131 by courbet:
[MergeICmps] Make base ordering really deterministic.

Summary:
The idea is that we now manipulate bases through a `unsigned BaseID` based on
order of appearance in the comparison chain rather than through the `Value*`.

Fixes 40714.

Reviewers: gchatelet

Subscribers: mgrang, jfb, jdoerfert, llvm-commits, hans

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58274
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/MergeICmps.cpp (diff)llvm.src/lib/Transforms/Scalar/MergeICmps.cpp
Revision 354128 by courbet:
[MergeICmps][NFC] Improve doc.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/MergeICmps.cpp (diff)llvm.src/lib/Transforms/Scalar/MergeICmps.cpp
Revision 354127 by baloghadamsoftware:
[Analyzer] Fix for test file of bug 40625

Test fixed and changed to true positive, FIXME about false positive removed.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Analysis/PR40625.cpp (diff)clang.src/test/Analysis/PR40625.cpp
Revision 354126 by hans:
Speculatively revert r354051 "Recommit Optional specialization for trivially copyable types"
and
r354055 "Optional specialization for trivially copyable types, part2"

These are suspected to cause Clang to get miscompiled on Ubuntu 14.04
(Trusty) which uses GCC 4.8.4. Reverting for an hour to see if this
helps. See llvm-commits thread.

> Recommit Optional specialization for trivially copyable types
>
> Unfortunately the original code gets misscompiled by GCC (at least 8.1),
> this is a tentative workaround using std::memcpy instead of inplace new
> for trivially copyable types. I'll revert if it breaks.
>
> Original revision: https://reviews.llvm.org/D57097
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 354124 by mkazantsev:
[NFCI] Factor out block removal from stack of nested loops
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 354123 by rksimon:
Fix "field 'DFS' will be initialized after field 'DTU'" warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 354121 by stulova:
[OpenCL][PR40707] Allow OpenCL C types in C++ mode.

Allow all OpenCL types to be parsed in C++ mode.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (diff)clang.src/include/clang/Basic/DiagnosticParseKinds.td
The file was modified/cfe/trunk/include/clang/Basic/TokenKinds.def (diff)clang.src/include/clang/Basic/TokenKinds.def
The file was modified/cfe/trunk/lib/Parse/ParseDecl.cpp (diff)clang.src/lib/Parse/ParseDecl.cpp
The file was modified/cfe/trunk/lib/Parse/ParseExprCXX.cpp (diff)clang.src/lib/Parse/ParseExprCXX.cpp
The file was modified/cfe/trunk/lib/Parse/ParseTentative.cpp (diff)clang.src/lib/Parse/ParseTentative.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)clang.src/lib/Sema/SemaDeclAttr.cpp
The file was modified/cfe/trunk/test/CodeGenOpenCL/images.cl (diff)clang.src/test/CodeGenOpenCL/images.cl
The file was modified/cfe/trunk/test/SemaOpenCL/invalid-image.cl (diff)clang.src/test/SemaOpenCL/invalid-image.cl
The file was modified/cfe/trunk/test/SemaOpenCLCXX/restricted.cl (diff)clang.src/test/SemaOpenCLCXX/restricted.cl
Revision 354120 by martong:
[ASTImporter] Import every Decl in lambda record

Summary:
Previously only the fields were imported. Now every Decl is imported.
This way the destructor decl is not missing after import.

Patch by balazske (Balázs Kéri)

Reviewers: a.sidorin, shafik

Reviewed By: shafik

Subscribers: balazske, cfe-commits, Szelethus, martong, dkrupp

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57740
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTImporter.cpp (diff)clang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp
Revision 354119 by sam_parker:
[BPI] Look through bitcasts in calcZeroHeuristic

Constant hoisting may have hidden a constant behind a bitcast so that
it isn't folded into its users. However, this prevents BPI from
calculating some of its heuristics that are based upon constant
values. So, I've added a simple helper function to look through these
casts.

Differential Revision: https://reviews.llvm.org/D58166
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/BranchProbabilityInfo.cpp (diff)llvm.src/lib/Analysis/BranchProbabilityInfo.cpp
The file was added/llvm/trunk/test/Analysis/BranchProbabilityInfo/zero_heuristics.llllvm.src/test/Analysis/BranchProbabilityInfo/zero_heuristics.ll
Revision 354118 by mkazantsev:
[NFC] Promote DFS to field for further use
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 354117 by rksimon:
[X86][AVX] lowerShuffleAsLanePermuteAndPermute - fully populate the lane shuffle mask (PR40730)

As detailed on PR40730, we are not correctly filling in the lane shuffle mask (D53148/rL344446) - we fill in for the correct src lane but don't add it to the correct mask element, so any reference to the correct element is likely to see an UNDEF mask index.

This allows constant folding to propagate UNDEFs prior to the lane mask being (correctly) lowered to vperm2f128.

This patch fixes the issue by fully populating the lane shuffle mask - this is more than is necessary (if we only filled in the required mask elements we might be able to match other shuffle instructions - broadcasts etc.), but its the most cautious approach as this needs to be cherrypicked into the 8.0.0 release branch.

Differential Revision: https://reviews.llvm.org/D58237
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/pr40730.ll (diff)llvm.src/test/CodeGen/X86/pr40730.ll
Revision 354116 by sammccall:
[clangd] Unlink VFS working dir from OS working dir. Reland of r351051
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/FSProvider.cpp (diff)clang-tools-extra.src/clangd/FSProvider.cpp
Revision 354115 by rovka:
[ARM GlobalISel] Style fix. NFCI

Add the opcode for ADDrr / t2ADDrr to the Opcode cache, as we did for
all other opcodes where the handling is otherwise the same between arm
mode and thumb2.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstructionSelector.cpp (diff)llvm.src/lib/Target/ARM/ARMInstructionSelector.cpp
Revision 354113 by rovka:
[ARM GlobalISel] Support branches for Thumb2

Just like arm mode, but with different opcodes.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstructionSelector.cpp (diff)llvm.src/lib/Target/ARM/ARMInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMLegalizerInfo.cpp (diff)llvm.src/lib/Target/ARM/ARMLegalizerInfo.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalize-control-flow.mirllvm.src/test/CodeGen/ARM/GlobalISel/arm-legalize-control-flow.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir (diff)llvm.src/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir
The file was added/llvm/trunk/test/CodeGen/ARM/GlobalISel/thumb-select-br.mirllvm.src/test/CodeGen/ARM/GlobalISel/thumb-select-br.mir
Revision 354111 by asb:
[RISCV] Add assembler support for LA pseudo-instruction

This patch also introduces the emitAuipcInstPair helper, which is then used
for both emitLoadAddress and emitLoadLocalAddress.

Differential Revision: https://reviews.llvm.org/D55325
Patch by James Clarke.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp (diff)llvm.src/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.td (diff)llvm.src/lib/Target/RISCV/RISCVInstrInfo.td
The file was added/llvm/trunk/test/MC/RISCV/rvi-pseudos-invalid.sllvm.src/test/MC/RISCV/rvi-pseudos-invalid.s
The file was modified/llvm/trunk/test/MC/RISCV/rvi-pseudos.s (diff)llvm.src/test/MC/RISCV/rvi-pseudos.s
Revision 354110 by asb:
[RISCV] Support assembling %got_pcrel_hi operator

Differential Revision: https://reviews.llvm.org/D55279
Patch by James Clarke.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp (diff)llvm.src/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
The file was modified/llvm/trunk/test/MC/RISCV/relocations.s (diff)llvm.src/test/MC/RISCV/relocations.s
The file was modified/llvm/trunk/test/MC/RISCV/rv32i-invalid.s (diff)llvm.src/test/MC/RISCV/rv32i-invalid.s
Revision 354109 by sammccall:
Revert "[Analysis] -Wunreachable-code shouldn't fire on the increment of a foreach loop"

This reverts commit r354102.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Analysis/ReachableCode.cpp (diff)clang.src/lib/Analysis/ReachableCode.cpp
The file was modified/cfe/trunk/test/SemaCXX/unreachable-code.cpp (diff)clang.src/test/SemaCXX/unreachable-code.cpp
Revision 354108 by sam_parker:
[ARM CGP] Fix ConvertTruncs

ConvertTruncs is used to replace a trunc for an AND mask, however
this function wasn't working as expected. By performing the change
later, we can create a wide type integer mask instead of a narrow -1
value, which could then be simply removed (incorrectly). Because we
now perform this action later, it's necessary to cache the trunc type
before we perform the promotion.

Differential Revision: https://reviews.llvm.org/D57686
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCodeGenPrepare.cpp (diff)llvm.src/lib/Target/ARM/ARMCodeGenPrepare.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-calls.ll (diff)llvm.src/test/CodeGen/ARM/CGP/arm-cgp-calls.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/CGP/arm-cgp-casts.ll (diff)llvm.src/test/CodeGen/ARM/CGP/arm-cgp-casts.ll
Revision 354107 by mkazantsev:
[NFC] Tweak SplitBlockAndInsertIfThen to use existing ThenBlock
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/BasicBlockUtils.h (diff)llvm.src/include/llvm/Transforms/Utils/BasicBlockUtils.h
The file was modified/llvm/trunk/lib/Transforms/Utils/BasicBlockUtils.cpp (diff)llvm.src/lib/Transforms/Utils/BasicBlockUtils.cpp
Revision 354102 by sammccall:
[Analysis] -Wunreachable-code shouldn't fire on the increment of a foreach loop

Summary:
The idea is that the code here isn't written, so doesn't indicate a bug.
Similar to code expanded from macros.

This means the warning no longer fires on this code:
  for (auto C : collection) {
    process(C);
    return;
  }
  handleEmptyCollection();
Unclear whether this is more often a bug or not in practice, I think it's a
reasonable idiom in some cases.
Either way, if we want to warn on "loop that doesn't loop", I think it should be
a separate warning, and catch `while(1) break;`

Reviewers: ilya-biryukov, ioeric

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58134
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Analysis/ReachableCode.cpp (diff)clang.src/lib/Analysis/ReachableCode.cpp
The file was modified/cfe/trunk/test/SemaCXX/unreachable-code.cpp (diff)clang.src/test/SemaCXX/unreachable-code.cpp
Revision 354101 by mkazantsev:
[TEST] Update test comments, refactor checks with update_test_checks.py

This patch changes messages in guards-related tests to adequately reflect
reality.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/LICM/guards.ll (diff)llvm.src/test/Transforms/LICM/guards.ll