Re-commit my previous SSAUpdater changes. The previous version naively tried
authorBob Wilson <bob.wilson@apple.com>
Sat, 17 Apr 2010 03:08:24 +0000 (03:08 +0000)
committerBob Wilson <bob.wilson@apple.com>
Sat, 17 Apr 2010 03:08:24 +0000 (03:08 +0000)
commit84bd6b0c31f41cdd1d859dab54b6bc1177c4c6bb
treebf31667194458144634432af4f95bd8b3f088c1c
parent8295d4c96c8530acb7ae0098d813b53dc4fe0a89
Re-commit my previous SSAUpdater changes.  The previous version naively tried
to determine where to place PHIs by iteratively comparing reaching definitions
at each block.  That was just plain wrong.  This version now computes the
dominator tree within the subset of the CFG where PHIs may need to be placed,
and then places the PHIs in the iterated dominance frontier of each definition.
The rest of the patch is mostly the same, with a few more performance
improvements added in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101612 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Utils/SSAUpdater.h
lib/Transforms/Utils/SSAUpdater.cpp
test/Transforms/GVN/2010-03-31-RedundantPHIs.ll [new file with mode: 0644]