[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory

2005-02-23 Thread steven at gcc dot gnu dot org

--- 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

2005-02-23 Thread steven at gcc dot gnu dot org


-- 
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

2005-02-23 Thread cvs-commit at gcc dot gnu dot org

--- 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=gccr1=1.5080r2=1.5081
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/pr20100-1.c.diff?cvsroot=gccr1=NONEr2=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

2005-02-22 Thread cvs-commit at gcc dot gnu dot org

--- 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=gccr1=2.7566r2=2.7567
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gccr1=2.73r2=2.74
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pass.h.diff?cvsroot=gccr1=2.26r2=2.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-alias.c.diff?cvsroot=gccr1=2.70r2=2.71
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.c.diff?cvsroot=gccr1=2.62r2=2.63
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gccr1=2.77r2=2.78
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.5071r2=1.5072
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20100.c.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20115-1.c.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/pr20115.c.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c.diff?cvsroot=gccr1=1.3r2=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

2005-02-20 Thread hp at gcc dot gnu dot org

--- 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


[Bug tree-optimization/20100] [4.0 Regression] LIM is pulling out a pure function even though there is something which can modify global memory

2005-02-20 Thread pinskia at gcc dot gnu dot org

--- 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

2005-02-20 Thread pinskia at gcc dot gnu dot org

--- 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

2005-02-20 Thread dnovillo at gcc dot gnu dot org


-- 
   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