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]

[tree-ssa] 'out_of_ssa_tag' question


I am implementing loop versioning transformation as described
in auto vectorization docs.

[ Provide utilities that allow performing the following transformation: Given a condition and a loop, create -'if (condition) { loop_copy1 } else { loop_copy2 }', where loop_copy1 is the loop transformed in one way, and loop_copy2 is the loop transformed in another way (or unchanged). 'condition' may be a run time test for things that were not resolved by static analysis (overlapping ranges (anti-aliasing), alignment, etc.). ]

In my first cut at implementation, I am not using SSA form.
I do something like this,

	rewrite_out_of_ssa (...)
	tree_ssa_loop_versioning (...)
	rewrite_into_ssa (...)

But rewrite_out_of_ssa(...) does not clear 'out_of_ssa_tag' from var_ann
and it causes final rewrite_out_of_ssa (...) in optimize_function_tree()
to abort.

How do I clear 'out_of_ssa_tag' for all vars?
OR am I taking wrong path by going in and out of SSA form for this loop
transformation? Is it better to take care of SSA vars and phi nodes
while copying loop body ?

Thank you,
--
Devang


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