Commit a8afd3ac by Richard Henderson Committed by Richard Henderson

re PR middle-end/17885 (gimplifing of volatile &a->)

        PR middle-end/17885
        * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
        of INDIRECT_REF.

From-SVN: r89280
parent e61d7b78
2004-10-19 Richard Hendeson <rth@redhat.com>
PR middle-end/17885
* tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
of INDIRECT_REF.
2004-10-19 Kazu Hirata <kazu@cs.umass.edu> 2004-10-19 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (thread_jumps): Use a do-while loop instead of a * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
......
...@@ -2311,16 +2311,13 @@ do { tree _node = (NODE); \ ...@@ -2311,16 +2311,13 @@ do { tree _node = (NODE); \
} }
/* Now see what's inside. If it's an INDIRECT_REF, copy our properties from /* Now see what's inside. If it's an INDIRECT_REF, copy our properties from
it. If it's a decl, it's invariant and constant if the decl is static. the address, since &(*a)->b is a form of addition. If it's a decl, it's
It's also invariant if it's a decl in the current function. (Taking the invariant and constant if the decl is static. It's also invariant if it's
address of a volatile variable is not volatile.) If it's a constant, a decl in the current function. Taking the address of a volatile variable
the address is both invariant and constant. Otherwise it's neither. */ is not volatile. If it's a constant, the address is both invariant and
constant. Otherwise it's neither. */
if (TREE_CODE (node) == INDIRECT_REF) if (TREE_CODE (node) == INDIRECT_REF)
{ UPDATE_TITCSE (TREE_OPERAND (node, 0));
/* If this is &((T*)0)->field, then this is a form of addition. */
if (TREE_CODE (TREE_OPERAND (node, 0)) != INTEGER_CST)
UPDATE_TITCSE (node);
}
else if (DECL_P (node)) else if (DECL_P (node))
{ {
if (staticp (node)) if (staticp (node))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment