diff options
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r-- | gcc/tree-vectorizer.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index f10e621..4d30cfa 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -157,7 +157,7 @@ simd_array_to_simduid::equal (const value_type *p1, const value_type *p2) into their corresponding constants. */ static void -adjust_simduid_builtins (hash_table <simduid_to_vf> &htab) +adjust_simduid_builtins (hash_table<simduid_to_vf> **htab) { basic_block bb; @@ -189,8 +189,8 @@ adjust_simduid_builtins (hash_table <simduid_to_vf> &htab) gcc_assert (TREE_CODE (arg) == SSA_NAME); simduid_to_vf *p = NULL, data; data.simduid = DECL_UID (SSA_NAME_VAR (arg)); - if (htab.is_created ()) - p = htab.find (&data); + if (*htab) + p = (*htab)->find (&data); if (p) vf = p->vf; switch (ifn) @@ -216,7 +216,7 @@ adjust_simduid_builtins (hash_table <simduid_to_vf> &htab) struct note_simd_array_uses_struct { - hash_table <simd_array_to_simduid> *htab; + hash_table<simd_array_to_simduid> **htab; unsigned int simduid; }; @@ -236,11 +236,11 @@ note_simd_array_uses_cb (tree *tp, int *walk_subtrees, void *data) && DECL_CONTEXT (*tp) == current_function_decl) { simd_array_to_simduid data; - if (!ns->htab->is_created ()) - ns->htab->create (15); + if (!*ns->htab) + *ns->htab = new hash_table<simd_array_to_simduid> (15); data.decl = *tp; data.simduid = ns->simduid; - simd_array_to_simduid **slot = ns->htab->find_slot (&data, INSERT); + simd_array_to_simduid **slot = (*ns->htab)->find_slot (&data, INSERT); if (*slot == NULL) { simd_array_to_simduid *p = XNEW (simd_array_to_simduid); @@ -258,7 +258,7 @@ note_simd_array_uses_cb (tree *tp, int *walk_subtrees, void *data) simduid. */ static void -note_simd_array_uses (hash_table <simd_array_to_simduid> *htab) +note_simd_array_uses (hash_table<simd_array_to_simduid> **htab) { basic_block bb; gimple_stmt_iterator gsi; @@ -389,8 +389,8 @@ vectorize_loops (void) unsigned int num_vectorized_loops = 0; unsigned int vect_loops_num; struct loop *loop; - hash_table <simduid_to_vf> simduid_to_vf_htab; - hash_table <simd_array_to_simduid> simd_array_to_simduid_htab; + hash_table<simduid_to_vf> *simduid_to_vf_htab = NULL; + hash_table<simd_array_to_simduid> *simd_array_to_simduid_htab = NULL; bool any_ifcvt_loops = false; unsigned ret = 0; @@ -400,7 +400,7 @@ vectorize_loops (void) if (vect_loops_num <= 1) { if (cfun->has_simduid_loops) - adjust_simduid_builtins (simduid_to_vf_htab); + adjust_simduid_builtins (&simduid_to_vf_htab); return 0; } @@ -484,11 +484,11 @@ vectorize_loops (void) if (loop->simduid) { simduid_to_vf *simduid_to_vf_data = XNEW (simduid_to_vf); - if (!simduid_to_vf_htab.is_created ()) - simduid_to_vf_htab.create (15); + if (!simduid_to_vf_htab) + simduid_to_vf_htab = new hash_table<simduid_to_vf> (15); simduid_to_vf_data->simduid = DECL_UID (loop->simduid); simduid_to_vf_data->vf = loop_vinfo->vectorization_factor; - *simduid_to_vf_htab.find_slot (simduid_to_vf_data, INSERT) + *simduid_to_vf_htab->find_slot (simduid_to_vf_data, INSERT) = simduid_to_vf_data; } @@ -541,24 +541,24 @@ vectorize_loops (void) /* Fold IFN_GOMP_SIMD_{VF,LANE,LAST_LANE} builtins. */ if (cfun->has_simduid_loops) - adjust_simduid_builtins (simduid_to_vf_htab); + adjust_simduid_builtins (&simduid_to_vf_htab); /* Shrink any "omp array simd" temporary arrays to the actual vectorization factors. */ - if (simd_array_to_simduid_htab.is_created ()) + if (simd_array_to_simduid_htab) { - for (hash_table <simd_array_to_simduid>::iterator iter - = simd_array_to_simduid_htab.begin (); - iter != simd_array_to_simduid_htab.end (); ++iter) + for (hash_table<simd_array_to_simduid>::iterator iter + = simd_array_to_simduid_htab->begin (); + iter != simd_array_to_simduid_htab->end (); ++iter) if ((*iter).simduid != -1U) { tree decl = (*iter).decl; int vf = 1; - if (simduid_to_vf_htab.is_created ()) + if (simduid_to_vf_htab) { simduid_to_vf *p = NULL, data; data.simduid = (*iter).simduid; - p = simduid_to_vf_htab.find (&data); + p = simduid_to_vf_htab->find (&data); if (p) vf = p->vf; } @@ -568,10 +568,10 @@ vectorize_loops (void) relayout_decl (decl); } - simd_array_to_simduid_htab.dispose (); + delete simd_array_to_simduid_htab; } - if (simduid_to_vf_htab.is_created ()) - simduid_to_vf_htab.dispose (); + delete simduid_to_vf_htab; + simduid_to_vf_htab = NULL; if (num_vectorized_loops > 0) { |