[all-commits] [llvm/llvm-project] cce473: [IRSim] Adding commutativity matching to structure...
Andrew Litteken via All-commits
all-commits at lists.llvm.org
Wed Dec 23 13:06:18 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: cce473e0c56408237ea9ac5e24df918afab91ec9
https://github.com/llvm/llvm-project/commit/cce473e0c56408237ea9ac5e24df918afab91ec9
Author: Andrew Litteken <andrew.litteken at gmail.com>
Date: 2020-12-23 (Wed, 23 Dec 2020)
Changed paths:
M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
A llvm/test/Transforms/IROutliner/outlining-commutative-fp.ll
A llvm/test/Transforms/IROutliner/outlining-commutative.ll
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Log Message:
-----------
[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
Commit: 050392660249c70c00e909ae4a7151ba2c766235
https://github.com/llvm/llvm-project/commit/050392660249c70c00e909ae4a7151ba2c766235
Author: Andrew Litteken <andrew.litteken at gmail.com>
Date: 2020-12-23 (Wed, 23 Dec 2020)
Changed paths:
M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
A llvm/test/Transforms/IROutliner/outlining-isomorphic-predicates.ll
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Log Message:
-----------
[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
Compare: https://github.com/llvm/llvm-project/compare/759b8c11c398...050392660249
More information about the All-commits
mailing list