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-ssa-structalias.c | |
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-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index a1c0f05..c41519c 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -2008,12 +2008,12 @@ offset_overlaps_with_access (const unsigned HOST_WIDE_INT fieldpos, /* Given a COMPONENT_REF T, return the constraint_expr for it. */ static struct constraint_expr -get_constraint_for_component_ref (tree t, bool *needs_anyoffset) +get_constraint_for_component_ref (tree t, bool *need_anyoffset) { struct constraint_expr result; - HOST_WIDE_INT bitsize; + HOST_WIDE_INT bitsize = -1; HOST_WIDE_INT bitpos; - tree offset; + tree offset = NULL_TREE; enum machine_mode mode; int unsignedp; int volatilep; @@ -2039,7 +2039,7 @@ get_constraint_for_component_ref (tree t, bool *needs_anyoffset) t = get_inner_reference (t, &bitsize, &bitpos, &offset, &mode, &unsignedp, &volatilep, false); - result = get_constraint_for (t, needs_anyoffset); + result = get_constraint_for (t, need_anyoffset); /* This can also happen due to weird offsetof type macros. */ if (TREE_CODE (t) != ADDR_EXPR && result.type == ADDRESSOF) @@ -2051,10 +2051,10 @@ get_constraint_for_component_ref (tree t, bool *needs_anyoffset) { result.offset = bitpos; } - else if (needs_anyoffset) + else if (need_anyoffset) { result.offset = 0; - *needs_anyoffset = true; + *need_anyoffset = true; } else { @@ -2510,23 +2510,6 @@ do_structure_copy (tree lhsop, tree rhsop) } } - -/* Return true if REF, a COMPONENT_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; -} - - /* Update related alias information kept in AI. This is used when building name tags, alias sets and deciding grouping heuristics. STMT is the statement to process. This function also updates |