comparison gcc/tree-vect-analyze.c @ 47:3bfb6c00c1e0

update it from 4.4.2 to 4.4.3.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Feb 2010 17:44:34 +0900
parents 58ad6c70ea60
children
comparison
equal deleted inserted replaced
46:b85a337e5837 47:3bfb6c00c1e0
3211 vect_supported_load_permutation_p (slp_instance slp_instn, int group_size, 3211 vect_supported_load_permutation_p (slp_instance slp_instn, int group_size,
3212 VEC (int, heap) *load_permutation) 3212 VEC (int, heap) *load_permutation)
3213 { 3213 {
3214 int i = 0, j, prev = -1, next, k; 3214 int i = 0, j, prev = -1, next, k;
3215 bool supported; 3215 bool supported;
3216 sbitmap load_index;
3216 3217
3217 /* FORNOW: permutations are only supported for loop-aware SLP. */ 3218 /* FORNOW: permutations are only supported for loop-aware SLP. */
3218 if (!slp_instn) 3219 if (!slp_instn)
3219 return false; 3220 return false;
3220 3221
3231 if (VEC_length (int, load_permutation) 3232 if (VEC_length (int, load_permutation)
3232 != (unsigned int) (group_size * group_size)) 3233 != (unsigned int) (group_size * group_size))
3233 return false; 3234 return false;
3234 3235
3235 supported = true; 3236 supported = true;
3237 load_index = sbitmap_alloc (group_size);
3238 sbitmap_zero (load_index);
3236 for (j = 0; j < group_size; j++) 3239 for (j = 0; j < group_size; j++)
3237 { 3240 {
3238 for (i = j * group_size, k = 0; 3241 for (i = j * group_size, k = 0;
3239 VEC_iterate (int, load_permutation, i, next) && k < group_size; 3242 VEC_iterate (int, load_permutation, i, next) && k < group_size;
3240 i++, k++) 3243 i++, k++)
3244 supported = false; 3247 supported = false;
3245 break; 3248 break;
3246 } 3249 }
3247 3250
3248 prev = next; 3251 prev = next;
3249 } 3252 }
3250 } 3253
3254 if (TEST_BIT (load_index, prev))
3255 {
3256 supported = false;
3257 break;
3258 }
3259
3260 SET_BIT (load_index, prev);
3261 }
3262
3263 sbitmap_free (load_index);
3251 3264
3252 if (supported && i == group_size * group_size 3265 if (supported && i == group_size * group_size
3253 && vect_supported_slp_permutation_p (slp_instn)) 3266 && vect_supported_slp_permutation_p (slp_instn))
3254 return true; 3267 return true;
3255 3268