HomePhabricator

[SCEV] Move towards a verifier without false positives

Description

[SCEV] Move towards a verifier without false positives

This change reboots SCEV's current (off by default) verification logic
to avoid false failures. Instead of stringifying trip counts, it maps
old and new trip counts to the same ScalarEvolution "universe" and
asks ScalarEvolution to compute the difference between them. If the
difference comes out to be a non-zero constant, then (barring some
corner cases) we *know* we messed up.

I've not yet enabled this by default since it hits an exponential time
issue in SCEV, but once I fix that, I'll flip it on by default in
EXPENSIVE_CHECKS builds.

Details

Committed
sanjoyApr 23 2017, 4:04 PM
Parents
rL301145: [X86][AVX] Add scheduling latency/throughput tests for some AVX1 instructions
Branches
Unknown
Tags
Unknown