Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-ssa-loop-ivcanon.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
38 #include "coretypes.h" | 38 #include "coretypes.h" |
39 #include "tm.h" | 39 #include "tm.h" |
40 #include "tree.h" | 40 #include "tree.h" |
41 #include "tm_p.h" | 41 #include "tm_p.h" |
42 #include "basic-block.h" | 42 #include "basic-block.h" |
43 #include "diagnostic.h" | |
44 #include "tree-pretty-print.h" | 43 #include "tree-pretty-print.h" |
45 #include "gimple-pretty-print.h" | 44 #include "gimple-pretty-print.h" |
46 #include "tree-flow.h" | 45 #include "tree-flow.h" |
47 #include "tree-dump.h" | 46 #include "tree-dump.h" |
48 #include "cfgloop.h" | 47 #include "cfgloop.h" |
161 tree base = op; | 160 tree base = op; |
162 | 161 |
163 /* First make fast look if we see constant array inside. */ | 162 /* First make fast look if we see constant array inside. */ |
164 while (handled_component_p (base)) | 163 while (handled_component_p (base)) |
165 base = TREE_OPERAND (base, 0); | 164 base = TREE_OPERAND (base, 0); |
166 if ((DECL_P (base) | 165 if ((DECL_P (base) == VAR_DECL |
167 && TREE_STATIC (base) | 166 && const_value_known_p (base)) |
168 && TREE_READONLY (base) | |
169 && (DECL_INITIAL (base) | |
170 || (!DECL_EXTERNAL (base) | |
171 && targetm.binds_local_p (base)))) | |
172 || CONSTANT_CLASS_P (base)) | 167 || CONSTANT_CLASS_P (base)) |
173 { | 168 { |
174 /* If so, see if we understand all the indices. */ | 169 /* If so, see if we understand all the indices. */ |
175 base = op; | 170 base = op; |
176 while (handled_component_p (base)) | 171 while (handled_component_p (base)) |
402 free_original_copy_tables (); | 397 free_original_copy_tables (); |
403 free (wont_exit); | 398 free (wont_exit); |
404 return false; | 399 return false; |
405 } | 400 } |
406 | 401 |
407 for (i = 0; VEC_iterate (edge, to_remove, i, e); i++) | 402 FOR_EACH_VEC_ELT (edge, to_remove, i, e) |
408 { | 403 { |
409 bool ok = remove_path (e); | 404 bool ok = remove_path (e); |
410 gcc_assert (ok); | 405 gcc_assert (ok); |
411 } | 406 } |
412 | 407 |