This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unintended variable renaming in SSA replacement table


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]