VM: Fix illegal code motion.
VM: Fix illegal code motion.

Without tracking dependencies more explicitly we can't propagate the
cid of values whose cid is guarded by a CheckClassId:

The CheckClassId c may not be hoisted by LICM because it is guarded
by a Redefinition r. However, after constant propagation and branch simplification
code that was not previously dominated by c (and r) may become dominated by c and r.

This code won't be using the redefined value r, but the original value and therefore
LICM can illegally eliminated checks / hoist dependent loads.

BUG=
R=vegorov@google.com

Review URL: https://codereview.chromium.org/1928633002 .

dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk