[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-02-23 22:20 --- Subject: Bug 20100 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-02-23 22:20:49 Modified files: gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.c-torture/execute: pr20100-1.c Log message: PR tree-optimization/20100 * gcc.c-torture/execute/pr20100-1.c: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5080&r2=1.5081 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/pr20100-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
-- Bug 20100 depends on bug 20115, which changed state. Bug 20115 Summary: [4.0 Regression] Pure functions are mishandled http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20115 What|Old Value |New Value Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From steven at gcc dot gnu dot org 2005-02-23 11:22 --- http://gcc.gnu.org/ml/gcc-patches/2005-02/msg01387.html -- What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-02-23 05:08 --- Subject: Bug 20100 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-02-23 05:08:33 Modified files: gcc: ChangeLog tree-optimize.c tree-pass.h tree-ssa-alias.c tree-ssa-operands.c tree-ssa.c gcc/testsuite : ChangeLog gcc/testsuite/gcc.dg/tree-ssa: 20040517-1.c Added files: gcc/testsuite/gcc.dg: pr20100.c pr20115-1.c pr20115.c Log message: PR tree-optimization/20100 PR tree-optimization/20115 * tree-optimize.c (init_tree_optimization_passes): Remove pass_maybe_create_global_var. * tree-pass.h (pass_maybe_create_global_var): Remove. * tree-ssa-alias.c (aliases_computed_p): Declare. (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND. (count_calls_and_maybe_create_global_var): Remove. (pass_maybe_create_global_var): Remove. (init_alias_info): Do not declare aliases_computed_p. (maybe_create_global_var): If the function contains no call-clobbered variables and a mix of pure/const and regular function calls, create .GLOBAL_VAR. Mark all call-clobbered variables for renaming. (merge_pointed_to_info): Update comment. (add_pointed_to_var): Likewise. (is_escape_site): Likewise. Accept struct alias_info * instead of size_t *. Update all users. Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND as necessary. * tree-ssa-operands.c (get_call_expr_operands): If ALIASES_COMPUTED_P is false, do not add call-clobbering operands. * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false. (delete_tree_ssa): Likewise. testsuite/ChangeLog PR tree-optimization/20100 PR tree-optimization/20115 * gcc.dg/pr20115.c: New test. * gcc.dg/pr20115-1.c: New test. * gcc.dg/pr20100.c: New test. * gcc.dg/tree-ssa/20040517-1.c: Expect virtual operands for call-clobbered variables after alias1. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7566&r2=2.7567 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gcc&r1=2.73&r2=2.74 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pass.h.diff?cvsroot=gcc&r1=2.26&r2=2.27 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-alias.c.diff?cvsroot=gcc&r1=2.70&r2=2.71 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.c.diff?cvsroot=gcc&r1=2.62&r2=2.63 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&r1=2.77&r2=2.78 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5071&r2=1.5072 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20100.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20115-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20115.c.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c.diff?cvsroot=gcc&r1=1.3&r2=1.4 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
-- What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dnovillo at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-20 23:07 --- PR 20115 shows it is bigger deal than just LIM and that pure function handling is just broken. -- What|Removed |Added BugsThisDependsOn||20115 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-20 19:02 --- One more note, we do the correct thing with " --param global-var-threshold=0" so this shows that we have aliasing issue. Diego, why don't we create the .GLOBAL_VAR otherwise? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100
[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory
--- Additional Comments From hp at gcc dot gnu dot org 2005-02-20 18:50 --- I'm unassigning this PR to avoid giving an impression that I'm about to solve it. (I might be, but I have to read up on tree-ssa first.) I'd be happy if someone else fixed it, as long as my test-case is committed and solved: committed+solved with, as well as solved without the " && n < 5". (The test-case in comment #8 likely has some merit too but isn't the reason for this report. It also uses user-defined attributes and so is different in that aspect too.) -- What|Removed |Added AssignedTo|hp at gcc dot gnu dot org |unassigned at gcc dot gnu ||dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20100