Slow Correlated Value Propagation pass


I've filled a bug to track the issue we've recently seen in our
LLVM-based compiler: the Correlated Value Propagation Pass may become
significantly slow on certain files.

According to opt time profiles, value propagation alone is very fast
(less than 1 second), -O3 with value propagation turned off is
acceptable (31 secs), but with value propagation included it becomes
too slow (197 secs).

In our local copy we had to completely disable value prop, or
otherwise it tends to produce long unpredictable stalls.
Btw, is there a self-control logic to drop passes running for too long in LLVM?

- Dima.