Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-vect-analyze.c @ 48:9907f3135723
update CbC on GCC from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:48:31 +0900 |
parents | 3bfb6c00c1e0 |
children |
comparison
equal
deleted
inserted
replaced
45:d645ac0f55d6 | 48:9907f3135723 |
---|---|
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 |