This is an archive of the discontinued LLVM Phabricator instance.

[Hexagon] Fix reuse bug in Vector Loop Carried Reuse
ClosedPublic

Authored by bcahoon on Mar 29 2019, 4:26 PM.

Details

Summary

The Hexagon Vector Loop Carried Reuse pass was allowing reuse between two shufflevectors with different masks. The reason is that the masks are not Instruction objects, so the code that checks each operand just skipped over the operands.

This patch fixes the bug but checking if the operands are the same, when they are not Instruction objects. If the objects are not the same, then we assume that reuse can't occur.

Diff Detail

Repository
rL LLVM

Event Timeline

bcahoon created this revision.Mar 29 2019, 4:26 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 29 2019, 4:26 PM
This revision was not accepted when it landed; it landed in state Needs Review.Apr 12 2019, 9:35 AM
This revision was automatically updated to reflect the committed changes.