SuccessChanges

Summary

  1. [X86] Split test configurations. NFC. Split test that includes reproducer for pr32967 to KNL and SKX.
  2. Simplify orphan section positioning. The code following this one already considers every possible insertion point for orphan sections, there is no point in sorting them before.
  3. [AST] Fix copy&paste error in comment. NFC.
  4. [InstSimplify] fix typo; NFC
  5. [InstCombine] use local variable to reduce code duplication; NFCI
  6. [ValueTracking] Introduce a version of computeKnownBits that returns a KnownBits struct. Begin using it to replace internal usages of ComputeSignBit This introduces a new interface for computeKnownBits that returns the KnownBits object instead of requiring it to be pre-constructed and passed in by reference. This is a much more convenient interface as it doesn't require the caller to figure out the BitWidth to pre-construct the object. It's so convenient that I believe we can use this interface to remove the special ComputeSignBit flavor of computeKnownBits. As a step towards that idea, this patch replaces all of the internal usages of ComputeSignBit with this new interface. As you can see from the patch there were a couple places where we called ComputeSignBit which really called computeKnownBits, and then called computeKnownBits again directly. I've reduced those places to only making one call to computeKnownBits. I bet there are probably external users that do it too. A future patch will update the external users and remove the ComputeSignBit interface. I'll also working on moving more locations to the KnownBits returning interface for computeKnownBits. Differential Revision: https://reviews.llvm.org/D32848
  7. [InstCombine/InstSimplify] add comments about code duplication; NFC
  8. [Sema] Fix typos handling in an overloadable call. In C typos in arguments in a call of an overloadable function lead to a failure of construction of CallExpr and following recovery does not handle created delayed typos. This causes an assertion fail in Sema::~Sema since Sema::DelayedTypos remains not empty. The patch fixes that behavior by handling a call with arguments having dependant types in the way that C++ does. Differential Revision: https://reviews.llvm.org/D31764 Patch by Dmitry Borisenkov!
  9. [InstCombine] add another test for PR32949; NFC A patch for the InstSimplify variant of this bug is up for review here: https://reviews.llvm.org/D32954
  10. InstructionSimplify: Refactor foldIdentityShuffles. NFC. Summary: Minor refactoring of foldIdentityShuffles() which allows the removal of a ConstantDataVector::get() in SimplifyShuffleVectorInstruction. Reviewers: spatel Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32955 Conflicts: lib/Analysis/InstructionSimplify.cpp
  11. Fix comment typos.
  12. [clang-tidy] Fix readability-implicit-bool-cast false positives The patch makes the check treat binary conditional operator (`x ?: y`), `while` and regular `for` loops as conditional statements for the purpose of AllowConditional*Cast options.
Revision 302442 by zvi:
[X86] Split test configurations. NFC.

Split test that includes reproducer for pr32967 to KNL and SKX.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v32.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/X86/vector-shuffle-512-v32.ll
Revision 302441 by rafael:
Simplify orphan section positioning.

The code following this one already considers every possible insertion
point for orphan sections, there is no point in sorting them before.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/Writer.cpp (diff)llvm-revision.src/lld/trunk/ELF/Writer.cpp
Revision 302440 by malcolm.parsons:
[AST] Fix copy&paste error in comment. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Decl.h (diff)llvm-revision.src/cfe/trunk/include/clang/AST/Decl.h
Revision 302439 by spatel:
[InstSimplify] fix typo; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm-revision.src/llvm/trunk/lib/Analysis/InstructionSimplify.cpp
Revision 302438 by spatel:
[InstCombine] use local variable to reduce code duplication; NFCI
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp
Revision 302437 by ctopper:
[ValueTracking] Introduce a version of computeKnownBits that returns a KnownBits struct. Begin using it to replace internal usages of ComputeSignBit

This introduces a new interface for computeKnownBits that returns the KnownBits object instead of requiring it to be pre-constructed and passed in by reference.

This is a much more convenient interface as it doesn't require the caller to figure out the BitWidth to pre-construct the object. It's so convenient that I believe we can use this interface to remove the special ComputeSignBit flavor of computeKnownBits.

As a step towards that idea, this patch replaces all of the internal usages of ComputeSignBit with this new interface. As you can see from the patch there were a couple places where we called ComputeSignBit which really called computeKnownBits, and then called computeKnownBits again directly. I've reduced those places to only making one call to computeKnownBits. I bet there are probably external users that do it too.

A future patch will update the external users and remove the ComputeSignBit interface. I'll also working on moving more locations to the KnownBits returning interface for computeKnownBits.

Differential Revision: https://reviews.llvm.org/D32848
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/ValueTracking.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Analysis/ValueTracking.h
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cpp (diff)llvm-revision.src/llvm/trunk/lib/Analysis/ValueTracking.cpp
Revision 302436 by spatel:
[InstCombine/InstSimplify] add comments about code duplication; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm-revision.src/llvm/trunk/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp (diff)llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineCompares.cpp
Revision 302435 by stulova:
[Sema] Fix typos handling in an overloadable call.

In C typos in arguments in a call of an overloadable function lead
to a failure of construction of CallExpr and following recovery does
not handle created delayed typos. This causes an assertion fail in
Sema::~Sema since Sema::DelayedTypos remains not empty.

The patch fixes that behavior by handling a call with arguments
having dependant types in the way that C++ does.

Differential Revision: https://reviews.llvm.org/D31764

Patch by Dmitry Borisenkov!
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cpp (diff)llvm-revision.src/cfe/trunk/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/test/Sema/typo-correction.c (diff)llvm-revision.src/cfe/trunk/test/Sema/typo-correction.c
Revision 302434 by spatel:
[InstCombine] add another test for PR32949; NFC

A patch for the InstSimplify variant of this bug is up for review here:
https://reviews.llvm.org/D32954
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstCombine/icmp.ll (diff)llvm-revision.src/llvm/trunk/test/Transforms/InstCombine/icmp.ll
Revision 302433 by zvi:
InstructionSimplify: Refactor foldIdentityShuffles. NFC.

Summary:
Minor refactoring of foldIdentityShuffles() which allows the removal of a
ConstantDataVector::get() in SimplifyShuffleVectorInstruction.

Reviewers: spatel

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32955

Conflicts:
lib/Analysis/InstructionSimplify.cpp
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm-revision.src/llvm/trunk/lib/Analysis/InstructionSimplify.cpp
Revision 302432 by gberry:
Fix comment typos.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Target/TargetSchedule.td (diff)llvm-revision.src/llvm/trunk/include/llvm/Target/TargetSchedule.td
The file was modified/llvm/trunk/utils/TableGen/SubtargetEmitter.cpp (diff)llvm-revision.src/llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
Revision 302431 by alexfh:
[clang-tidy] Fix readability-implicit-bool-cast false positives

The patch makes the check treat binary conditional operator (`x ?: y`), `while`
and regular `for` loops as conditional statements for the purpose of
AllowConditional*Cast options.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/ImplicitBoolCastCheck.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/clang-tidy/readability/ImplicitBoolCastCheck.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/readability-implicit-bool-cast-allow-conditional-casts.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/test/clang-tidy/readability-implicit-bool-cast-allow-conditional-casts.cpp