[unroll] Directly query for dead instructions.
authorChandler Carruth <chandlerc@gmail.com>
Fri, 13 Feb 2015 04:14:05 +0000 (04:14 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 13 Feb 2015 04:14:05 +0000 (04:14 +0000)
commit06d537cdd68d8b3ece5862be1e0097b8113d390c
treec1b3c49d0079eed52f056c1d8f0678ec525319e2
parent82cb30f10cf0849b876e6722e0a2305c91855239
[unroll] Directly query for dead instructions.

In the unroll analyzer, it is checking each user to see if that user
will become dead. However, it first checked if that user was missing
from the simplified values map, and then if was also missing from the
dead instructions set. We add everything from the simplified values map
to the dead instructions set, so the first step is completely subsumed
by the second. Moreover, the first step requires *inserting* something
into the simplified value map which isn't what we want at all.

This also replaces a dyn_cast with a cast as an instruction cannot be
used by a non-instruction.

llvm-svn: 229057
llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp