On 03/17/2015 12:54 PM, Benedikt Huber wrote:
Thank you for the answer.
I made sure that each variable is only assigned exactly once.
duplicate_block already generates new names for all lhs.
After that I edited all rhs to the uses I wanted for the unrolling,
so SSA-form should still be intact.
What I do not understand is: Why does gcc change the names on the rhs?
Because uses that are reached by the new names obviously have to get
updated. The SSA updater is supposed to relieve passes from the burden
of trying to figure out how to handle updates on their own. You copy
the blocks, update your cfg, remove unreachables, then let the ssa
updater handle updating the ssa graph.
If you're using the block copier, but doing your own updates, then
you'll need some kind of hack to avoid the standard update mechanisms.
I'm not immediately aware of a "blessed" way to do that. You'll need to
hack somethign up.
jeff