[Simplify] Implement write accesses coalescing.

Description

[Simplify] Implement write accesses coalescing.

Write coalescing combines write accesses that

  • Write the same llvm::Value.
  • Write to the same array.
  • Unless they do not write anything in a statement instance (partial writes), write to the same element.
  • There is no other access between them that accesses the same element.

This is particularly useful after DeLICM, which leaves partial writes to
disjoint domains.

Differential Revision: https://reviews.llvm.org/D36010

Still Importing...

This commit is still importing. Changes will be visible once the import finishes.