Skip to content

Commit

Permalink
Complex deinterleaving/single reductions build fix Reapply "Add suppo…
Browse files Browse the repository at this point in the history
…rt for single reductions in ComplexDeinterleavingPass (llvm#112875)"  (llvm#120441)

This reverts commit 76714be, fixing the
build failure that caused the revert.

The failure stemmed from the complex deinterleaving pass identifying a
series of add operations as a "complex to single reduction", so when it
tried to transform this erroneously identified pattern, it faulted. The
fix applied is to ensure that complex numbers (or patterns that match
them) are used throughout, by checking if there is a deinterleave node
amidst the graph.
  • Loading branch information
NickGuy-Arm authored Jan 6, 2025
1 parent 3c5f269 commit 8e1b49c
Show file tree
Hide file tree
Showing 5 changed files with 1,535 additions and 25 deletions.
2 changes: 2 additions & 0 deletions llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ struct ComplexDeinterleavingPass
enum class ComplexDeinterleavingOperation {
CAdd,
CMulPartial,
CDot,
// The following 'operations' are used to represent internal states. Backends
// are not expected to try and support these in any capacity.
Deinterleave,
Expand All @@ -43,6 +44,7 @@ enum class ComplexDeinterleavingOperation {
ReductionPHI,
ReductionOperation,
ReductionSelect,
ReductionSingle
};

enum class ComplexDeinterleavingRotation {
Expand Down
Loading

0 comments on commit 8e1b49c

Please sign in to comment.