SuccessChanges

Summary

  1. [IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer We are not allowed to reason about an initializer value without first consulting hasDefinitiveInitializer.
  2. [AVX-512] Remove patterns that select vmovdqu8/16 for unmasked loads. Prefer vmovdqa64/vmovdqu64 instead. These were taking priority over the aligned load instructions since there is no vmovda8/16. I don't think there is really a difference between aligned and unaligned on newer cpus so I don't think it matters which instructions we use. But with this change we reduce the size of the isel table a little and we allow the aligned information to pass through to the evex->vec pass and produce the same output has avx/avx2 in some cases. I also generally dislike patterns rooted in a bitcast which these were. Differential Revision: https://reviews.llvm.org/D35977
  3. [clangd] Allow to get vfs::FileSystem used inside codeComplete. Summary: This is useful for managing lifetime of VFS-based caches. Reviewers: bkramer, krasimir Reviewed By: bkramer Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D36095
  4. Strip trailing whitespace. NFCI.
  5. Fix typo in comment.
  6. [GISel]: Support Widening G_ICMP's destination operand. Updated AArch64 to widen destination to s32. https://reviews.llvm.org/D35737 Reviewed by Tim
  7. Do not recombine FMA when that is not needed. Summary: As per title. This creates useless recombines. Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33848
  8. Exclude more unused functions from release build.
  9. [OPENMP] Change the name of outer non-debug function in debug mode, NFC.
  10. Extend ifndef to printDebugLoc. GCC7 did not warn about that, but Clang does.
  11. Extend ifdefs to more unused helper functions. This fixes a buildbot failure with -Werror introduced by r309553
  12. [OpenCL] Enable subgroup extension in tests This fixes the test, so that it can be run on different hosts that may have different OpenCL extensions enabled.
  13. [DebugInfo] Don't overwrite DWARFUnit fields if the CU DIE doesn't have them. DIEs are lazily deserialized so it's possible that the DWO CU is created before the DIE is parsed. DWO shares .debug_addr and .debug_ranges with the object file so overwriting the offset with 0 will make the CU unusable. No test case because I couldn't get clang to emit a non-zero range base.
  14. Fix -Wshadow false positives with function-local classes. Summary: Fixes http://llvm.org/PR33947. https://godbolt.org/g/54XRMT void f(int a) { struct A { void g(int a) {} A() { int a; } }; } 3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow] void g(int a) {} ^ 1 : <source>:1:12: note: previous declaration is here void f(int a) { ^ 4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow] A() { int a; } ^ 1 : <source>:1:12: note: previous declaration is here void f(int a) { ^ 2 warnings generated. The local variable `a` of the function `f` can't be accessed from a method of the function-local class A, thus no shadowing occurs and no diagnostic is needed. Reviewers: rnk, rsmith, arphaman, Quuxplusone Reviewed By: rnk, Quuxplusone Subscribers: Quuxplusone, cfe-commits Differential Revision: https://reviews.llvm.org/D35941
  15. [docker] Fix unmatched quote problem in here-document on older versions of bash Summary: When outputing usage, emit here-document directly instead of saving in a variable first -- avoids problem with bash 3.2.57 where an unmatched ' in the here-document results in the following error: ./build_docker_image.sh: line 135: unexpected EOF while looking for matching `'' bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16) Differential Revision: https://reviews.llvm.org/D36064
  16. [OpenCL] Add extension Sema check for subgroup builtins Check the subgroup extension is enabled, before doing other Sema checks.
  17. [SLP] Initial rework for min/max horizontal reduction vectorization, NFC. Summary: All getReductionCost() functions are renamed to getArithmeticReductionCost() + added basic infrastructure to handle non-binary reduction operations. Reviewers: spatel, mzolotukhin, Ayal, mkuper, gilr, hfinkel Subscribers: RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D29402
Revision 309594 by majnemer:
[IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer

We are not allowed to reason about an initializer value without first
consulting hasDefinitiveInitializer.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/SCCP.cppllvm.src/lib/Transforms/Scalar/SCCP.cpp
The file was added/llvm/trunk/test/Transforms/SCCP/definite-initializer.llllvm.src/test/Transforms/SCCP/definite-initializer.ll
Revision 309589 by ctopper:
[AVX-512] Remove patterns that select vmovdqu8/16 for unmasked loads. Prefer vmovdqa64/vmovdqu64 instead.

These were taking priority over the aligned load instructions since there is no vmovda8/16. I don't think there is really a difference between aligned and unaligned on newer cpus so I don't think it matters which instructions we use.

But with this change we reduce the size of the isel table a little and we allow the aligned information to pass through to the evex->vec pass and produce the same output has avx/avx2 in some cases.

I also generally dislike patterns rooted in a bitcast which these were.

Differential Revision: https://reviews.llvm.org/D35977
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdllvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/test/CodeGen/X86/avg.llllvm.src/test/CodeGen/X86/avg.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx2-intrinsics-x86.llllvm.src/test/CodeGen/X86/avx2-intrinsics-x86.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-insert-extract.llllvm.src/test/CodeGen/X86/avx512-insert-extract.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics-upgrade.llllvm.src/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512bw-intrinsics.llllvm.src/test/CodeGen/X86/avx512bw-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512bw-mov.llllvm.src/test/CodeGen/X86/avx512bw-mov.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512bwvl-mov.llllvm.src/test/CodeGen/X86/avx512bwvl-mov.ll
The file was modified/llvm/trunk/test/CodeGen/X86/nontemporal-loads.llllvm.src/test/CodeGen/X86/nontemporal-loads.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pmul.llllvm.src/test/CodeGen/X86/pmul.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sad.llllvm.src/test/CodeGen/X86/sad.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shuffle-vs-trunc-128.llllvm.src/test/CodeGen/X86/shuffle-vs-trunc-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shuffle-vs-trunc-256.llllvm.src/test/CodeGen/X86/shuffle-vs-trunc-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/shuffle-vs-trunc-512.llllvm.src/test/CodeGen/X86/shuffle-vs-trunc-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/sse42-intrinsics-x86.llllvm.src/test/CodeGen/X86/sse42-intrinsics-x86.ll
The file was modified/llvm/trunk/test/CodeGen/X86/ssse3-intrinsics-x86.llllvm.src/test/CodeGen/X86/ssse3-intrinsics-x86.ll
The file was modified/llvm/trunk/test/CodeGen/X86/subvector-broadcast.llllvm.src/test/CodeGen/X86/subvector-broadcast.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-bitreverse.llllvm.src/test/CodeGen/X86/vector-bitreverse.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-lzcnt-128.llllvm.src/test/CodeGen/X86/vector-lzcnt-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-lzcnt-256.llllvm.src/test/CodeGen/X86/vector-lzcnt-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-lzcnt-512.llllvm.src/test/CodeGen/X86/vector-lzcnt-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-popcnt-512.llllvm.src/test/CodeGen/X86/vector-popcnt-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-rotate-128.llllvm.src/test/CodeGen/X86/vector-rotate-128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-rotate-256.llllvm.src/test/CodeGen/X86/vector-rotate-256.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-rotate-512.llllvm.src/test/CodeGen/X86/vector-rotate-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-512.llllvm.src/test/CodeGen/X86/vector-shift-ashr-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-lshr-512.llllvm.src/test/CodeGen/X86/vector-shift-lshr-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-shl-512.llllvm.src/test/CodeGen/X86/vector-shift-shl-512.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v16.llllvm.src/test/CodeGen/X86/vector-shuffle-128-v16.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v16.llllvm.src/test/CodeGen/X86/vector-shuffle-256-v16.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v32.llllvm.src/test/CodeGen/X86/vector-shuffle-512-v32.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v64.llllvm.src/test/CodeGen/X86/vector-shuffle-512-v64.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-avx512bw.llllvm.src/test/CodeGen/X86/vector-shuffle-combining-avx512bw.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.llllvm.src/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.llllvm.src/test/CodeGen/X86/vector-shuffle-combining-avx512vbmi.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-v1.llllvm.src/test/CodeGen/X86/vector-shuffle-v1.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc.llllvm.src/test/CodeGen/X86/vector-trunc.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-tzcnt-512.llllvm.src/test/CodeGen/X86/vector-tzcnt-512.ll
Revision 309585 by ibiryukov:
[clangd] Allow to get vfs::FileSystem used inside codeComplete.

Summary: This is useful for managing lifetime of VFS-based caches.

Reviewers: bkramer, krasimir

Reviewed By: bkramer

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D36095
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cppclang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.hclang-tools-extra.src/clangd/ClangdServer.h
Revision 309584 by rksimon:
Strip trailing whitespace. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cppllvm.src/lib/Target/X86/X86TargetTransformInfo.cpp
Revision 309583 by rksimon:
Fix typo in comment.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 309579 by aditya_nandakumar:
[GISel]: Support Widening G_ICMP's destination operand.

Updated AArch64 to widen destination to s32.
https://reviews.llvm.org/D35737

Reviewed by Tim
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cppllvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cppllvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cppllvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-fcmp.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-fcmp.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-mul.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-mul.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/regbankselect-default.mirllvm.src/test/CodeGen/AArch64/GlobalISel/regbankselect-default.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-cbz.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-cbz.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select.mir
Revision 309578 by deadalnix:
Do not recombine FMA when that is not needed.

Summary: As per title. This creates useless recombines.

Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D33848
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 309576 by fhahn:
Exclude more unused functions from release build.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Hexagon/HexagonConstPropagation.cppllvm.src/lib/Target/Hexagon/HexagonConstPropagation.cpp
Revision 309575 by abataev:
[OPENMP] Change the name of outer non-debug function in debug mode, NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGStmtOpenMP.cppclang.src/lib/CodeGen/CGStmtOpenMP.cpp
Revision 309573 by fhahn:
Extend ifndef to printDebugLoc.

GCC7 did not warn about that, but Clang does.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/LiveDebugVariables.cppllvm.src/lib/CodeGen/LiveDebugVariables.cpp
Revision 309572 by fhahn:
Extend ifdefs to more unused helper functions.

This fixes a buildbot failure with -Werror introduced by r309553
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/LiveDebugVariables.cppllvm.src/lib/CodeGen/LiveDebugVariables.cpp
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cppllvm.src/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Revision 309571 by joey:
[OpenCL] Enable subgroup extension in tests

This fixes the test, so that it can be run on different hosts that may have
different OpenCL extensions enabled.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGenOpenCL/pipe_builtin.clclang.src/test/CodeGenOpenCL/pipe_builtin.cl
The file was modified/cfe/trunk/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.clclang.src/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
Revision 309570 by d0k:
[DebugInfo] Don't overwrite DWARFUnit fields if the CU DIE doesn't have them.

DIEs are lazily deserialized so it's possible that the DWO CU is created
before the DIE is parsed. DWO shares .debug_addr and .debug_ranges with the
object file so overwriting the offset with 0 will make the CU unusable.

No test case because I couldn't get clang to emit a non-zero range base.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFUnit.cppllvm.src/lib/DebugInfo/DWARF/DWARFUnit.cpp
Revision 309569 by alexfh:
Fix -Wshadow false positives with function-local classes.

Summary:
Fixes http://llvm.org/PR33947.

https://godbolt.org/g/54XRMT

void f(int a) {
  struct A {
    void g(int a) {}
    A() { int a; }
  };
}

3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow]
    void g(int a) {}
               ^
1 : <source>:1:12: note: previous declaration is here
void f(int a) {
           ^
4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow]
    A() { int a; }
              ^
1 : <source>:1:12: note: previous declaration is here
void f(int a) {
           ^
2 warnings generated.

The local variable `a` of the function `f` can't be accessed from a method of
the function-local class A, thus no shadowing occurs and no diagnostic is
needed.

Reviewers: rnk, rsmith, arphaman, Quuxplusone

Reviewed By: rnk, Quuxplusone

Subscribers: Quuxplusone, cfe-commits

Differential Revision: https://reviews.llvm.org/D35941
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cppclang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/test/SemaCXX/warn-shadow.cppclang.src/test/SemaCXX/warn-shadow.cpp
Revision 309568 by dhinton:
[docker] Fix unmatched quote problem in here-document on older versions of bash

Summary:
When outputing usage, emit here-document directly instead of
saving in a variable first -- avoids problem with bash 3.2.57 where an
unmatched ' in the here-document results in the following error:

./build_docker_image.sh: line 135: unexpected EOF while looking for matching `''

bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)

Differential Revision: https://reviews.llvm.org/D36064
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/docker/build_docker_image.shllvm.src/utils/docker/build_docker_image.sh
The file was modified/llvm/trunk/utils/docker/scripts/build_install_llvm.shllvm.src/utils/docker/scripts/build_install_llvm.sh
Revision 309567 by joey:
[OpenCL] Add extension Sema check for subgroup builtins

Check the subgroup extension is enabled, before doing other Sema checks.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cppclang.src/lib/Sema/SemaChecking.cpp
The file was modified/cfe/trunk/test/CodeGenOpenCL/cl20-device-side-enqueue.clclang.src/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
The file was modified/cfe/trunk/test/CodeGenOpenCL/pipe_builtin.clclang.src/test/CodeGenOpenCL/pipe_builtin.cl
The file was modified/cfe/trunk/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.clclang.src/test/SemaOpenCL/invalid-pipe-builtin-cl2.0.cl
Revision 309566 by abataev:
[SLP] Initial rework for min/max horizontal reduction vectorization, NFC.

Summary: All getReductionCost() functions are renamed to getArithmeticReductionCost() + added basic infrastructure to handle non-binary reduction operations.

Reviewers: spatel, mzolotukhin, Ayal, mkuper, gilr, hfinkel

Subscribers: RKSimon, llvm-commits

Differential Revision: https://reviews.llvm.org/D29402
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/CostModel.cppllvm.src/lib/Analysis/CostModel.cpp
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cppllvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp