> One of these two seems redundant.

I get the following error without “iv_map.create (loop->num + 1);”:

"/home/roman/sec_trunk/gcc/gcc/vec.h:1184:39: error: ‘iv_map’ may be
used uninitialized in this function [-Werror=maybe-uninitialized] {
return m_vec ? m_vec->length () : 0; }"

>Can you explain why all functions would need to be rewritten? I proposed this 
>function as an easier way to NULL initialize the vector and did not expect any 
>rewrite to be necessary.

When I'm trying to pass iv_map to vec_safe_grow_cleared I get the
following error:

"/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:596:47:
note:   mismatched types ‘vec<T, A, vl_embed>*’ and ‘vec<tree_node*>’
vec_safe_grow_cleared (iv_map, loop->num + 1);"

In case of passing of iv_map*, I get the following error:

"/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:596:47:
error: no matching function for call to
‘vec_safe_grow_cleared(vec<tree_node*>*&, int)’
   vec_safe_grow_cleared (iv_map, loop->num + 1);
/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:596:47:
note: candidate is:
In file included from /home/roman/sec_trunk/gcc/gcc/tree-core.h:27:0,
                 from /home/roman/sec_trunk/gcc/gcc/tree.h:23,
                 from
/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:39:
/home/roman/sec_trunk/gcc/gcc/vec.h:627:1: note: template<class T,
class A> void vec_safe_grow_cleared(vec<T, A, vl_embed>*&, unsigned
int)
 vec_safe_grow_cleared (vec<T, A, vl_embed> *&v, unsigned len CXX_MEM_STAT_INFO)
/home/roman/sec_trunk/gcc/gcc/vec.h:627:1: note:   template argument
deduction/substitution failed:
/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:596:47:
note:   mismatched types ‘vl_embed’ and ‘vl_ptr’
   vec_safe_grow_cleared (iv_map, loop->num + 1);
/home/roman/sec_trunk/gcc/gcc/graphite-isl-ast-to-gimple.c:596:47:
note:   ‘vec<tree_node*>’ is not derived from ‘vec<T, A, vl_embed>’"

If we use vec<T, A, vl_embed> as a type for iv_map, we'll have to
rewrite declarations of the following functions, which are working
with vec<tree_node*>:copy_bb_and_scalar_dependences,
graphite_copy_stmts_from_block, rename_uses, chrec_apply_map. We'll
also have to rewrite declarations of iv_map in
graphite-clast-to-gimple.c in this case.

Please correct me, if I am wrong.

--
                                   Cheers, Roman Gareev.

Reply via email to