From 1800536a055eefcd5877c11cdea3fa25d692589e Mon Sep 17 00:00:00 2001 From: Diego Novillo Date: Thu, 16 Sep 2004 22:16:56 +0000 Subject: [PATCH] tree-ssa-operands.c (add_call_clobber_ops): Make read-only test apply only to TREE_STATIC and DECL_EXTERNAL. * tree-ssa-operands.c (add_call_clobber_ops): Make read-only test apply only to TREE_STATIC and DECL_EXTERNAL. From-SVN: r87615 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-operands.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3d6a38c9316..8648e7ca4d3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-16 Diego Novillo + + * tree-ssa-operands.c (add_call_clobber_ops): Make read-only + test apply only to TREE_STATIC and DECL_EXTERNAL. + 2004-09-16 Zdenek Dvorak * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency. diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index 8daadc75438..a007b502aae 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -1620,9 +1620,15 @@ add_call_clobber_ops (tree stmt, tree callee) with a module static or we may not. So we still must look anywhere else we can (such as the TREE_READONLY) to get better info. */ + /* If VAR is read-only, don't add a V_MAY_DEF, just a - VUSE operand. */ - else if (TREE_READONLY (var)) + VUSE operand. FIXME, this is quirky. TREE_READONLY + by itself is not enough here. We can only decide + that the call will not affect VAR if all these + conditions are met. One would think that + TREE_READONLY should be sufficient. */ + else if (TREE_READONLY (var) + && (TREE_STATIC (var) || DECL_EXTERNAL (var))) add_stmt_operand (&var, stmt, opf_none); else add_stmt_operand (&var, stmt, opf_is_def); -- 2.30.2