> 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.