HomePhabricator

[MachineCombiner] Add check for optimal pattern order.

Description

[MachineCombiner] Add check for optimal pattern order.

In D41587, @mssimpso discovered that the order of some patterns for
AArch64 was sub-optimal. I thought a bit about how we could avoid that
case in the future. I do not think there is a need for evaluating all
patterns for now. But this patch adds an extra (expensive) check, that
evaluates the latencies of all patterns, and ensures that the latency
saved decreases for subsequent patterns.

This catches the sub-optimal order fixed in D41587, but I am not
entirely happy with the check, as it only applies to sub-optimal
patterns seen while building with EXPENSIVE_CHECKS on. It did not
discover any other sub-optimal pattern ordering.

Reviewers: Gerolf, spatel, mssimpso

Reviewed By: Gerolf, mssimpso

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

Details

Committed
fhahnJan 31 2018, 5:54 AM
Reviewer
Gerolf
Differential Revision
D41766: [MachineCombiner] Add check for optimal pattern order.
Parents
rL323872: [clangd] Pass Context implicitly using TLS.
Branches
Unknown
Tags
Unknown