diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2005-09-22 00:42:28 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-09-22 00:42:28 +0000 |
commit | b13476386feac312f1c35320213099bdad2248ed (patch) | |
tree | 4b807050400db7408a16243b129aa442be14c1d6 /gcc/tree-flow-inline.h | |
parent | 0c9976393b0be03a81c5587359390f97c75865f8 (diff) | |
download | gcc-b13476386feac312f1c35320213099bdad2248ed.zip gcc-b13476386feac312f1c35320213099bdad2248ed.tar.gz gcc-b13476386feac312f1c35320213099bdad2248ed.tar.bz2 |
tree-data-ref.c (analyze_array_indexes): Only estimate when estimate_only is true.
2005-09-20 Daniel Berlin <dberlin@dberlin.org>
* tree-data-ref.c (analyze_array_indexes): Only estimate when
estimate_only is true.
* tree-flow.h (ref_contains_indirect_ref): New prototype.
* tree-flow-inline.h (ref_contains_indirect_ref): Moved from
tree-ssa-structalias.c
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
ref_contains_indirect_ref.
* tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
From-SVN: r104518
Diffstat (limited to 'gcc/tree-flow-inline.h')
-rw-r--r-- | gcc/tree-flow-inline.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index b0f5e88..b317c8c 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -1414,6 +1414,21 @@ unmodifiable_var_p (tree var) return TREE_READONLY (var) && (TREE_STATIC (var) || DECL_EXTERNAL (var)); } +/* Return true if REF, an ARRAY_REF, has an INDIRECT_REF somewhere in + it. */ + +static inline bool +ref_contains_indirect_ref (tree ref) +{ + while (handled_component_p (ref)) + { + if (TREE_CODE (ref) == INDIRECT_REF) + return true; + ref = TREE_OPERAND (ref, 0); + } + return false; +} + /* Return true if REF, a COMPONENT_REF, has an ARRAY_REF somewhere in it. */ static inline bool |