FailedChanges

Summary

  1. [InstCombine] Add tests for gep of null (NFC) (details)
  2. [InstCombine] Fold gep inbounds of null to null (details)
  3. [InstCombine] Handle different pointer types when folding gep of null (details)
  4. [IRSim] Adding commutativity matching to structure checking (details)
  5. [IRSim] Adding support for isomorphic predicates (details)
  6. [InstCombine] canonicalizeAbsNabs(): don't propagate NSW flag for NABS patter (details)
  7. [clang-format] Fix handling of TextProto comments (details)
  8. [clang-format] Add SpaceBeforeCaseColon option (details)
Commit 87087a02ae49a907e0ec9e6dfe62c9b9ca232936 by nikita.ppv
[InstCombine] Add tests for gep of null (NFC)

We were only considering the gep of null pattern in conjunction
with a load/store. Also test it independently.
The file was modifiedllvm/test/Transforms/InstCombine/getelementptr.ll
Commit eb79fd3c928dbbb97f7937963361c1dad2bf8222 by nikita.ppv
[InstCombine] Fold gep inbounds of null to null

Effectively, this is what we were previously already doing when
the GEP was used in conjunction with a load or store, but this
fold can also be applied more generally:

> The only in bounds address for a null pointer in the default
> address-space is the null pointer itself.
The file was modifiedllvm/test/Transforms/InstCombine/getelementptr.ll
The file was modifiedllvm/test/Transforms/InstCombine/store.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit 759b8c11c398c20f12503356f8aef604e0bf82be by nikita.ppv
[InstCombine] Handle different pointer types when folding gep of null

The source pointer type is not necessarily the same as the result
pointer type, so we can't simply return the original null pointer,
it might be a different one.
The file was modifiedllvm/test/Transforms/InstCombine/getelementptr.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Commit cce473e0c56408237ea9ac5e24df918afab91ec9 by andrew.litteken
[IRSim] Adding commutativity matching to structure checking

Certain instructions, such as adds and multiplies can have the operands
flipped and still be considered the same. When we are analyzing
structure, this gives slightly more flexibility to create a mapping from
one region to another. We can add both operands in a corresponding
instruction to an operand rather than just the exact match. We then try
to eliminate items from the set, until there is only one valid mapping
between the regions of code.

We do this for adds, multiplies, and equality checking. However, this is
not done for floating point instructions, since the order can still
matter in some cases.

Tests:

llvm/test/Transforms/IROutliner/outlining-commutative-fp.ll
llvm/test/Transforms/IROutliner/outlining-commutative.ll
llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

Reviewers: jroelofs, paquette

Differential Revision: https://reviews.llvm.org/D87311
The file was addedllvm/test/Transforms/IROutliner/outlining-commutative-fp.ll
The file was addedllvm/test/Transforms/IROutliner/outlining-commutative.ll
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was modifiedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
The file was modifiedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h
Commit 050392660249c70c00e909ae4a7151ba2c766235 by andrew.litteken
[IRSim] Adding support for isomorphic predicates

Some predicates, can be considered the same as long as the operands are
flipped. For example, a > b gives the same result as b > a. This maps
instructions in a greater than form, to their appropriate less than
form, swapping the operands in the IRInstructionData only, allowing for
more flexible matching.

Tests:

llvm/test/Transforms/IROutliner/outlining-isomorphic-predicates.ll
llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

Reviewers: jroelofs, paquette

Differential Revision: https://reviews.llvm.org/D87310
The file was modifiedllvm/include/llvm/Analysis/IRSimilarityIdentifier.h
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was addedllvm/test/Transforms/IROutliner/outlining-isomorphic-predicates.ll
The file was modifiedllvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Commit f8079355c604fead0f8538548bd7eb51fcc81e31 by lebedev.ri
[InstCombine] canonicalizeAbsNabs(): don't propagate NSW flag for NABS patter

As Nuno is noting in post-commit review in
https://reviews.llvm.org/D87188#2467915
it is not correct to keep NSW for negated abs pattern,
so don't do that.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/abs-1.ll
The file was modifiedllvm/test/Transforms/InstCombine/abs_abs.ll
The file was modifiedllvm/test/Transforms/InstCombine/select_meta.ll
Commit 374f1d81febf8143e8e633296a42c2311699c5b3 by bjoern
[clang-format] Fix handling of TextProto comments

Differential Revision: https://reviews.llvm.org/D93163
The file was modifiedclang/lib/Format/BreakableToken.cpp
The file was modifiedclang/unittests/Format/FormatTestTextProto.cpp
Commit 47877c9079c27f19a954b660201ea47717c82fec by bjoern
[clang-format] Add SpaceBeforeCaseColon option

With which you can add a space before the colon of a case or default
statement.

Differential Revision: https://reviews.llvm.org/D93240
The file was modifiedclang/unittests/Format/FormatTest.cpp
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Format/TokenAnnotator.cpp