> Robert, can you attach the testcase you've been working with? One testcase is libstdc++-v3/libsupc++/vec.cc from mainline.
But it compiles without trouble unless you add verification or a walk over the SSA_NAMEs at the right time. > 1. We replace all uses of a phi node with something else > 2. We then call remove_phi_node with false as the last parameter (only > 3 places in the compiler), which ends up destroying the phi node but > not releasing the LHS name (since this is what the last parameter says > whether to do). That's right. Zdenek recommended that I change one of those places (the one in tree_merge_blocks that you quoted) to "true", but doing that causes some other code of his to break. I haven't analyzed why he needs those things to stay around, but I suspect it's because -- for a while, anyway -- he needs the DEF_STMT for something that's been removed. -- Robert