Remove functions from the FnSet when one of their callee's is being merged. This
commitf8808f3a376d3f87673eb36dc57bd11fce711377
authorNick Lewycky <nicholas@mxc.ca>
Sun, 2 Jan 2011 02:46:33 +0000 (2 02:46 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sun, 2 Jan 2011 02:46:33 +0000 (2 02:46 +0000)
treebb6ea8673724938f18ec122d906d513fe1654ffb
parent2201b7fbe0f377b456b533886789a5536494d2d2
Remove functions from the FnSet when one of their callee's is being merged. This
maintains the guarantee that the DenseSet expects two elements it contains to
not go from inequal to equal under its nose.

As a side-effect, this also lets us switch from iterating to a fixed-point to
actually maintaining a work queue of functions to look at again, and we don't
add thunks to our work queue so we don't need to detect and ignore them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122677 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/MergeFunctions.cpp