FailedChanges

Summary

  1. [Dominators] Fix and optimize edge insertion of depth-based search Summary: After (x,y) is inserted, depth-based search finds all affected v that satisfies: depth(nca(x,y))+1 < depth(v) && there exists a path P from y to v where every w on P satisfies depth(v) <= depth(w) This reduces to a widest path problem (maximizing the depth of the minimum vertex in the path) which can be solved by a modified version of Dijkstra with a bucket queue (named depth-based search in the paper). The algorithm visits vertices in decreasing order of bucket number. However, the current code misused priority_queue to extract them in increasing order. I cannot think of a failing scenario but it surely may process vertices more than once due to the local usage of Processed. This patch fixes this bug and simplifies/optimizes the code a bit. Also add more comments. Reviewers: kuhar Reviewed By: kuhar Subscribers: kristina, jdoerfert, llvm-commits, NutshellySima, brzycki Tags: #llvm Differential Revision: https://reviews.llvm.org/D58349
  2. [X86] Remove command line strings from the ProcIntel* features. These should always follow the CPU string. There's no reason to control them independently.
  3. [GlobalISel][AArch64] Legalize + select some llvm.ctlz.* intrinsics Legalize/select llvm.ctlz.* Add select-ctlz to show that we actually select them. Update arm64-clrsb.ll and arm64-vclz.ll to show that we perform valid transformations in optimized builds, and document where GISel can improve. Differential Revision: https://reviews.llvm.org/D58155
  4. [CGP] form usub with overflow from sub+icmp The motivating x86 cases for forming the intrinsic are shown in PR31754 and PR40487: https://bugs.llvm.org/show_bug.cgi?id=31754 https://bugs.llvm.org/show_bug.cgi?id=40487 ..and those are shown in the IR test file and x86 codegen file. Matching the usubo pattern is harder than uaddo because we have 2 independent values rather than a def-use. This adds a TLI hook that should preserve the existing behavior for uaddo formation, but disables usubo formation by default. Only x86 overrides that setting for now although other targets will likely benefit by forming usbuo too. Differential Revision: https://reviews.llvm.org/D57789
  5. [clang][test] Fix FileManagerTest.getFileDontOpenRealPath for Windows
  6. AMDGPU: Use MachineInstr::mayAlias to replace areMemAccessesTriviallyDisjoint in LoadStoreOptimizer pass. Summary: This is to fix a memory dependence bug in LoadStoreOptimizer. Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D58295
  7. GlobalISel: Implement widenScalar for g_extract scalar results
  8. GlobalISel: Make buildExtract use DstOp/SrcOp
  9. Reland "[clang][FileManager] fillRealPathName even if we aren't opening the file" This reverts commit e2bb3121fd4ab5b01f9ec1d2e3e9877db9c6a54c. + fixed test for Windows
  10. [LSan][Darwin][NFC] Add comment explaining test failure
  11. [Sanitizer] On Darwin `__sanitizer_print_stack_trace` only prints topmost frame In compiler-rt we have the notion of a `fast` and a `slow` stack unwinder. Darwin currently only supports the fast unwinder. From reading the code, my understanding is that `BufferedStackTrace::Unwind` can be called with `bp=0, stack_top=0, stack_bottom=0, request_fast_unwind=false`. If `request_fast_unwind=true`, then we alos need to supply bp, stack_top, and stack_bottom. However, `BufferedStackTrace::Unwind` uses `StackTrace::WillUseFastUnwind` which will adapt `request_fast_unwind` if the requested unwinder is not supported. On Darwin, the result is that we don't pass actual values for bp, stack_top, and stack_bottom, but end up using the fast unwinder. The tests then fail because we only print the topmost stack frame. This patch adds a check to `WillUseFastUnwind` at the point of usage to avoid the mismatch between `request_fast_unwind` and what `Unwind` actually does. I am also interested in cleaning up the `request_fast_unwind` machinery so this patch just the simplest thing possible so I can enable the tests. Reviewers: vitalybuka, vsk Differential Revision: https://reviews.llvm.org/D58156
  12. GlobalISel: Fix double count of offset for irregular vector breakdowns Fixes cases with odd vectors that break into multiple requested size pieces.
  13. [x86] split more v8f32/v8i32 shuffles in lowering Similar to D57867 - this is a small patch with lots of test diffs. With half-vector-width narrowing potential, using an extract + 128-bit vshufps is a win because it replaces a 256-bit shuffle with a 128-bit shufle. This seems like it should be a win even for targets with 'fast-variable-shuffle', but we are intentionally deferring that to an independent change to make sure that is true. Differential Revision: https://reviews.llvm.org/D58181
  14. Revert "[InstCombine] reduce even more unsigned saturated add with 'not' op" This reverts commit 079b610c29b4a428b3ae7b64dbac0378facf6632. Bots are failing after this change on a stage 2 compile of clang.
  15. [InstCombine] reduce even more unsigned saturated add with 'not' op We want to use the sum in the icmp to allow matching with m_UAddWithOverflow and eliminate the 'not'. This is discussed in D51929 and is another step towards solving PR14613: https://bugs.llvm.org/show_bug.cgi?id=14613 Name: uaddsat, -1 fval %notx = xor i32 %x, -1 %a = add i32 %x, %y %c = icmp ugt i32 %notx, %y %r = select i1 %c, i32 %a, i32 -1 => %a = add i32 %x, %y %c2 = icmp ugt i32 %y, %a %r = select i1 %c2, i32 -1, i32 %a Name: uaddsat, -1 fval + ult %notx = xor i32 %x, -1 %a = add i32 %x, %y %c = icmp ult i32 %y, %notx %r = select i1 %c, i32 %a, i32 -1 => %a = add i32 %x, %y %c2 = icmp ugt i32 %y, %a %r = select i1 %c2, i32 -1, i32 %a https://rise4fun.com/Alive/nTp
  16. [clangd] Add tests for template specializations Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58190
  17. [MCA] Correctly update register definitions in the PRF after move elimination. This patch fixes a bug where register writes performed by optimizable register moves were sometimes wrongly treated like partial register updates. Before this patch, llvm-mca wrongly predicted a 1.50 IPC for test reg-move-elimination-6.s (added by this patch). With this patch, llvm-mca correctly updates the register defintions in the PRF, and the IPC for that test is now correctly reported as 2.
  18. [llvm-readobj] - Simplify .gnu.version_d dumping. This is similar to D58048. Instead of scanning the dynamic table to read the DT_VERDEFNUM, we could take it from the sh_info field. (https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-94076/index.html) The patch does this.
  19. [clangd] Cache include fixes for diagnostics caused by the same unresolved name or incomplete type. Summary: Multiple diagnostics can be caused by the same unresolved name or incomplete type, especially if the code is copy-pasted without #includes. The cache can avoid making repetitive index requests, and thus reduce latency and allow more diagnostics to be fixed (we limit the number of index requests for each parse). Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58239
  20. [ASTImporter] Find previous friend function template Reviewers: a_sidorin, shafik, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57910
  21. [clang-tidy] Fix links in docs.
  22. [ARM] Add pre-defined macros for ROPI and RWPI This adds ACLE-defined macros to test for code being compiled in the ROPI and RWPI position-independence modes. Differential revision: https://reviews.llvm.org/D23610
  23. [NFC] Make Optional<T> trivially copyable when T is trivially copyable This is a follow-up to r354246 and a reimplementation of https://reviews.llvm.org/D57097?id=186600 that should not trigger any UB thanks to the use of an union. This may still be subject to the problem solved by std::launder, but I'm unsure how it interacts whith union. /me plans to revert if this triggers any relevant bot failure. At least this validates in Release mode with clang 6.0.1 and gcc 4.8.5.
  24. [clang][Index] Fix usage of IndexImplicitInstantiation Summary: Indexing context was skipping explicit template instantiations as well. This patch makes sure it only skips implicit ones. Subscribers: arphaman, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58189
  25. [MCA] Slightly refactor method writeStartEvent in WriteState and ReadState. NFCI This is another change in preparation for PR37494. No functional change intended.
  26. [ASTImporter] Unify redecl chain tests as type parameterized tests Summary: This patch unifies all those tests which check the correctness of the redecl chains. Previously we had several structurally very similar test cases for each language construct (class, function, variable, function template, ...). We still use value-parameterized tests for the different AST compatibility switches (-fdelayed-template-parsing, -fms-compatibility). Gtest makes it possible to have either value-parameterized or type-parameterized fixtures. However, we cannot have both value- and type-parameterized test fixtures. So we use a value-parameterized test fixture in the gtest sense. We intend to mimic gtest's type-parameters via the type template parameter. We manually instantiate the different tests with the each types. After this patch I am planning to put the "generic redecl chain" related tests into their own separate test file (in another patch). Reviewers: a_sidorin, shafik, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Differential Revision: https://reviews.llvm.org/D57236
Revision 354306 by maskray:
[Dominators] Fix and optimize edge insertion of depth-based search

Summary:
After (x,y) is inserted, depth-based search finds all affected v that satisfies:

depth(nca(x,y))+1 < depth(v) && there exists a path P from y to v where every w on P satisfies depth(v) <= depth(w)

This reduces to a widest path problem (maximizing the depth of the
minimum vertex in the path) which can be solved by a modified version of
Dijkstra with a bucket queue (named depth-based search in the paper).

The algorithm visits vertices in decreasing order of bucket number.
However, the current code misused priority_queue to extract them in
increasing order. I cannot think of a failing scenario but it surely may
process vertices more than once due to the local usage of Processed.

This patch fixes this bug and simplifies/optimizes the code a bit. Also
add more comments.

Reviewers: kuhar

Reviewed By: kuhar

Subscribers: kristina, jdoerfert, llvm-commits, NutshellySima, brzycki

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58349
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h (diff)llvm.src/include/llvm/Support/GenericDomTreeConstruction.h
Revision 354304 by ctopper:
[X86] Remove command line strings from the ProcIntel* features.

These should always follow the CPU string. There's no reason to control them independently.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86.td (diff)llvm.src/lib/Target/X86/X86.td
Revision 354299 by paquette:
[GlobalISel][AArch64] Legalize + select some llvm.ctlz.* intrinsics

Legalize/select llvm.ctlz.*

Add select-ctlz to show that we actually select them. Update arm64-clrsb.ll and
arm64-vclz.ll to show that we perform valid transformations in optimized builds,
and document where GISel can improve.

Differential Revision: https://reviews.llvm.org/D58155
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-ctlz.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-ctlz.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-clrsb.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-clrsb.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-vclz.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-vclz.ll
Revision 354298 by spatel:
[CGP] form usub with overflow from sub+icmp

The motivating x86 cases for forming the intrinsic are shown in PR31754 and PR40487:
https://bugs.llvm.org/show_bug.cgi?id=31754
https://bugs.llvm.org/show_bug.cgi?id=40487
..and those are shown in the IR test file and x86 codegen file.

Matching the usubo pattern is harder than uaddo because we have 2 independent values rather than a def-use.

This adds a TLI hook that should preserve the existing behavior for uaddo formation, but disables usubo
formation by default. Only x86 overrides that setting for now although other targets will likely benefit
by forming usbuo too.

Differential Revision: https://reviews.llvm.org/D57789
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.h (diff)llvm.src/include/llvm/CodeGen/TargetLowering.h
The file was modified/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (diff)llvm.src/lib/CodeGen/CodeGenPrepare.cpp
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/lib/Target/X86/X86ISelLowering.h (diff)llvm.src/lib/Target/X86/X86ISelLowering.h
The file was modified/llvm/trunk/test/CodeGen/X86/cgp-usubo.ll (diff)llvm.src/test/CodeGen/X86/cgp-usubo.ll
The file was modified/llvm/trunk/test/CodeGen/X86/lsr-loop-exit-cond.ll (diff)llvm.src/test/CodeGen/X86/lsr-loop-exit-cond.ll
The file was modified/llvm/trunk/test/Transforms/CodeGenPrepare/X86/overflow-intrinsics.ll (diff)llvm.src/test/Transforms/CodeGenPrepare/X86/overflow-intrinsics.ll
Revision 354296 by Jan Korous:
[clang][test] Fix FileManagerTest.getFileDontOpenRealPath for Windows
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/Basic/FileManagerTest.cpp (diff)clang.src/unittests/Basic/FileManagerTest.cpp
Revision 354295 by chfang:
AMDGPU: Use MachineInstr::mayAlias to replace areMemAccessesTriviallyDisjoint in LoadStoreOptimizer pass.

Summary:
  This is to fix a memory dependence bug in LoadStoreOptimizer.

Reviewers:
  arsenm, rampitec

Differential Revision:
  https://reviews.llvm.org/D58295
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp (diff)llvm.src/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/ds-combine-with-dependence.llllvm.src/test/CodeGen/AMDGPU/ds-combine-with-dependence.ll
Revision 354293 by arsenm:
GlobalISel: Implement widenScalar for g_extract scalar results
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
The file was modified/llvm/trunk/include/llvm/IR/DataLayout.h (diff)llvm.src/include/llvm/IR/DataLayout.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
Revision 354292 by arsenm:
GlobalISel: Make buildExtract use DstOp/SrcOp
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Revision 354291 by Jan Korous:
Reland "[clang][FileManager] fillRealPathName even if we aren't opening the file"

This reverts commit e2bb3121fd4ab5b01f9ec1d2e3e9877db9c6a54c.
+ fixed test for Windows
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/FileManager.cpp (diff)clang.src/lib/Basic/FileManager.cpp
The file was modified/cfe/trunk/unittests/Basic/FileManagerTest.cpp (diff)clang.src/unittests/Basic/FileManagerTest.cpp
Revision 354290 by yln:
[LSan][Darwin][NFC] Add comment explaining test failure
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc (diff)compiler-rt.src/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc
Revision 354282 by yln:
[Sanitizer] On Darwin `__sanitizer_print_stack_trace` only prints topmost frame

In compiler-rt we have the notion of a `fast` and a `slow` stack
unwinder. Darwin currently only supports the fast unwinder.

From reading the code, my understanding is that
`BufferedStackTrace::Unwind` can be called with `bp=0, stack_top=0,
stack_bottom=0, request_fast_unwind=false`. If
`request_fast_unwind=true`, then we alos need to supply bp, stack_top,
and stack_bottom.

However, `BufferedStackTrace::Unwind` uses
`StackTrace::WillUseFastUnwind` which will adapt `request_fast_unwind`
if the requested unwinder is not supported. On Darwin, the result is
that we don't pass actual values for bp, stack_top, and stack_bottom,
but end up using the fast unwinder. The tests then fail because we only
print the topmost stack frame.

This patch adds a check to `WillUseFastUnwind` at the point of usage to
avoid the mismatch between `request_fast_unwind` and what `Unwind`
actually does. I am also interested in cleaning up the
`request_fast_unwind` machinery so this patch just the simplest thing
possible so I can enable the tests.

Reviewers: vitalybuka, vsk

Differential Revision: https://reviews.llvm.org/D58156
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_stacktrace.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl_report.cc
The file was modified/compiler-rt/trunk/lib/ubsan/ubsan_diag_standalone.cc (diff)compiler-rt.src/lib/ubsan/ubsan_diag_standalone.cc
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/Darwin/print-stack-trace.cc (diff)compiler-rt.src/test/sanitizer_common/TestCases/Darwin/print-stack-trace.cc
The file was modified/compiler-rt/trunk/test/sanitizer_common/TestCases/symbolize_stack.cc (diff)compiler-rt.src/test/sanitizer_common/TestCases/symbolize_stack.cc
Revision 354280 by arsenm:
GlobalISel: Fix double count of offset for irregular vector breakdowns

Fixes cases with odd vectors that break into multiple requested size
pieces.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Revision 354279 by spatel:
[x86] split more v8f32/v8i32 shuffles in lowering

Similar to D57867 - this is a small patch with lots of test diffs.
With half-vector-width narrowing potential, using an extract + 128-bit vshufps
is a win because it replaces a 256-bit shuffle with a 128-bit shufle.

This seems like it should be a win even for targets with 'fast-variable-shuffle',
but we are intentionally deferring that to an independent change to make sure
that is true.

Differential Revision: https://reviews.llvm.org/D58181
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/avx2-conversions.ll (diff)llvm.src/test/CodeGen/X86/avx2-conversions.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx2-vector-shifts.ll (diff)llvm.src/test/CodeGen/X86/avx2-vector-shifts.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-shl.ll (diff)llvm.src/test/CodeGen/X86/combine-shl.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-sra.ll (diff)llvm.src/test/CodeGen/X86/combine-sra.ll
The file was modified/llvm/trunk/test/CodeGen/X86/combine-srl.ll (diff)llvm.src/test/CodeGen/X86/combine-srl.ll
The file was modified/llvm/trunk/test/CodeGen/X86/oddshuffles.ll (diff)llvm.src/test/CodeGen/X86/oddshuffles.ll
The file was modified/llvm/trunk/test/CodeGen/X86/reduce-trunc-shl.ll (diff)llvm.src/test/CodeGen/X86/reduce-trunc-shl.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shuffle-vs-trunc-256-widen.ll (diff)llvm.src/test/CodeGen/X86/shuffle-vs-trunc-256-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shuffle-vs-trunc-256.ll (diff)llvm.src/test/CodeGen/X86/shuffle-vs-trunc-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-math-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-math-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-math.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-math.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-packus-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-packus-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-packus.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-packus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-ssat-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-ssat-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-ssat.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-usat-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-usat-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-usat.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-usat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc.ll
Revision 354277 by spatel:
Revert "[InstCombine] reduce even more unsigned saturated add with 'not' op"

This reverts commit 079b610c29b4a428b3ae7b64dbac0378facf6632.
Bots are failing after this change on a stage 2 compile of clang.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/saturating-add-sub.ll (diff)llvm.src/test/Transforms/InstCombine/saturating-add-sub.ll
Revision 354276 by spatel:
[InstCombine] reduce even more unsigned saturated add with 'not' op

We want to use the sum in the icmp to allow matching with
m_UAddWithOverflow and eliminate the 'not'. This is discussed
in D51929 and is another step towards solving PR14613:
https://bugs.llvm.org/show_bug.cgi?id=14613

  Name: uaddsat, -1 fval
  %notx = xor i32 %x, -1
  %a = add i32 %x, %y
  %c = icmp ugt i32 %notx, %y
  %r = select i1 %c, i32 %a, i32 -1
  =>
  %a = add i32 %x, %y
  %c2 = icmp ugt i32 %y, %a
  %r = select i1 %c2, i32 -1, i32 %a

  Name: uaddsat, -1 fval + ult
  %notx = xor i32 %x, -1
  %a = add i32 %x, %y
  %c = icmp ult i32 %y, %notx
  %r = select i1 %c, i32 %a, i32 -1
  =>
  %a = add i32 %x, %y
  %c2 = icmp ugt i32 %y, %a
  %r = select i1 %c2, i32 -1, i32 %a

https://rise4fun.com/Alive/nTp
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/saturating-add-sub.ll (diff)llvm.src/test/Transforms/InstCombine/saturating-add-sub.ll
Revision 354272 by kadircet:
[clangd] Add tests for template specializations

Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58190
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/unittests/clangd/XRefsTests.cpp (diff)clang-tools-extra.src/unittests/clangd/XRefsTests.cpp
Revision 354271 by adibiagio:
[MCA] Correctly update register definitions in the PRF after move elimination.

This patch fixes a bug where register writes performed by optimizable register
moves were sometimes wrongly treated like partial register updates.  Before this
patch, llvm-mca wrongly predicted a 1.50 IPC for test reg-move-elimination-6.s
(added by this patch).  With this patch, llvm-mca correctly updates the register
defintions in the PRF, and the IPC for that test is now correctly reported as 2.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/RegisterFile.cpp (diff)llvm.src/lib/MCA/HardwareUnits/RegisterFile.cpp
The file was added/llvm/trunk/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.sllvm.src/test/tools/llvm-mca/X86/BtVer2/reg-move-elimination-6.s
Revision 354270 by grimar:
[llvm-readobj] - Simplify .gnu.version_d dumping.

This is similar to D58048.

Instead of scanning the dynamic table to read the
DT_VERDEFNUM, we could take it from the sh_info field.
(https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-94076/index.html)

The patch does this.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 354268 by ioeric:
[clangd] Cache include fixes for diagnostics caused by the same unresolved name or incomplete type.

Summary:
Multiple diagnostics can be caused by the same unresolved name or incomplete type,
especially if the code is copy-pasted without #includes. The cache can avoid making
repetitive index requests, and thus reduce latency and allow more diagnostics to be
fixed (we limit the number of index requests for each parse).

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, jdoerfert, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58239
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/IncludeFixer.cpp (diff)clang-tools-extra.src/clangd/IncludeFixer.cpp
The file was modified/clang-tools-extra/trunk/clangd/IncludeFixer.h (diff)clang-tools-extra.src/clangd/IncludeFixer.h
The file was modified/clang-tools-extra/trunk/unittests/clangd/DiagnosticsTests.cpp (diff)clang-tools-extra.src/unittests/clangd/DiagnosticsTests.cpp
Revision 354267 by martong:
[ASTImporter] Find previous friend function template

Reviewers: a_sidorin, shafik, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57910
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 354266 by alexfh:
[clang-tidy] Fix links in docs.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/index.rst (diff)clang-tools-extra.src/docs/clang-tidy/index.rst
Revision 354265 by olista01:
[ARM] Add pre-defined macros for ROPI and RWPI

This adds ACLE-defined macros to test for code being compiled in the ROPI and
RWPI position-independence modes.

Differential revision: https://reviews.llvm.org/D23610
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/Basic/Targets/ARM.cpp (diff)clang.src/lib/Basic/Targets/ARM.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Frontend/CompilerInvocation.cpp (diff)clang.src/lib/Frontend/CompilerInvocation.cpp
The file was added/cfe/trunk/test/Preprocessor/arm-pic-predefines.cclang.src/test/Preprocessor/arm-pic-predefines.c
Revision 354264 by serge_sans_paille:
[NFC] Make Optional<T> trivially copyable when T is trivially copyable

This is a follow-up to r354246 and a reimplementation of https://reviews.llvm.org/D57097?id=186600
that should not trigger any UB thanks to the use of an union.

This may still be subject to the problem solved by std::launder, but I'm unsure how it interacts whith union.
/me plans to revert if this triggers any relevant bot failure. At least this validates in Release mode with
clang 6.0.1 and gcc 4.8.5.
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 354262 by kadircet:
[clang][Index] Fix usage of IndexImplicitInstantiation

Summary:
Indexing context was skipping explicit template instantiations as well.
This patch makes sure it only skips implicit ones.

Subscribers: arphaman, jdoerfert, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58189
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Index/IndexTypeSourceInfo.cpp (diff)clang.src/lib/Index/IndexTypeSourceInfo.cpp
The file was modified/cfe/trunk/test/Index/Core/index-source.cpp (diff)clang.src/test/Index/Core/index-source.cpp
The file was modified/cfe/trunk/test/Index/index-refs.cpp (diff)clang.src/test/Index/index-refs.cpp
The file was modified/cfe/trunk/unittests/Index/IndexTests.cpp (diff)clang.src/unittests/Index/IndexTests.cpp
Revision 354261 by adibiagio:
[MCA] Slightly refactor method writeStartEvent in WriteState and ReadState. NFCI

This is another change in preparation for PR37494.
No functional change intended.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/Instruction.h (diff)llvm.src/include/llvm/MCA/Instruction.h
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/RegisterFile.cpp (diff)llvm.src/lib/MCA/HardwareUnits/RegisterFile.cpp
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/Scheduler.cpp (diff)llvm.src/lib/MCA/HardwareUnits/Scheduler.cpp
The file was modified/llvm/trunk/lib/MCA/Instruction.cpp (diff)llvm.src/lib/MCA/Instruction.cpp
Revision 354259 by martong:
[ASTImporter] Unify redecl chain tests as type parameterized tests

Summary:
This patch unifies all those tests which check the correctness of the
redecl chains. Previously we had several structurally very similar test
cases for each language construct (class, function, variable, function
template, ...).

We still use value-parameterized tests for the different AST
compatibility switches (-fdelayed-template-parsing, -fms-compatibility).
Gtest makes it possible to have either value-parameterized or
type-parameterized fixtures. However, we cannot have both value- and
type-parameterized test fixtures. So we use a value-parameterized test
fixture in the gtest sense. We intend to mimic gtest's type-parameters
via the type template parameter. We manually instantiate the different
tests with the each types.

After this patch I am planning to put the "generic redecl chain" related
tests into their own separate test file (in another patch).

Reviewers: a_sidorin, shafik, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Differential Revision: https://reviews.llvm.org/D57236
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp