[X86] Fix Topological NodeId Ordering violation in Load-Op-Store fusion.
Needs ReviewPublic

Authored by niravd on Mon, Feb 12, 9:35 AM.

Details

Summary

Load-op-Store fusion has an output edge from a non-root node
(i.e. from the Op). Users of this value may have a Id smaller than
some inputs (i.e. the store's chain) violating the topological
ordering of node ids (if both a node and it's operand have valid ids,
the operand's id will be strictly smaller) which we rely on for
pruning cycle detection. In such cases invalidate the ids of
successor nodes as necessary.

Fixes PR36312.

Diff Detail

niravd created this revision.Mon, Feb 12, 9:35 AM
niravd updated this revision to Diff 133885.Mon, Feb 12, 9:38 AM
niravd edited the summary of this revision. (Show Details)

Fix PR number in test and commit message.

There appears to be several unrelated formatting changes in here. Can you remove them or commit them separately?

niravd updated this revision to Diff 134083.Tue, Feb 13, 10:43 AM

Remove unrelated format changes.

niravd updated this revision to Diff 135273.Wed, Feb 21, 9:13 AM
niravd edited the summary of this revision. (Show Details)

Rephrase comments to be more clear and use less conservative node id. The comments now reference pictoral comments from D43154.