[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-16 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

--- Comment #11 from ktkachov at gcc dot gnu.org ---
(In reply to Jeffrey A. Law from comment #10)
> ktkachov,
> 
> It seems to be working fine for me with my arm-eabi cross compiler.  Perhaps
> you could provide some more details:
> 
> make check-gcc RUNTESTFLAGS="tree-ssa.exp=scev-7.c"
> [ ... ]
> 
> In the gcc.sum file I've got:
> 
> Running /home/gcc/GIT/gcc/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ...
> PASS: gcc.dg/tree-ssa/scev-7.c (test for excess errors)
> PASS: gcc.dg/tree-ssa/scev-7.c scan-tree-dump-times sccp "Simplify
> PEELED_CHREC into POLYNOMIAL_CHREC" 1
> 
> AFAICT, this issue has been resolved.

You're right, seems I had an inconsistent build tree state. It passes for me
now as well with a clean build. Sorry for the noise.


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-16 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

Jeffrey A. Law  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #10 from Jeffrey A. Law  ---
ktkachov,

It seems to be working fine for me with my arm-eabi cross compiler.  Perhaps
you could provide some more details:

make check-gcc RUNTESTFLAGS="tree-ssa.exp=scev-7.c"
[ ... ]

In the gcc.sum file I've got:

Running /home/gcc/GIT/gcc/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ...
PASS: gcc.dg/tree-ssa/scev-7.c (test for excess errors)
PASS: gcc.dg/tree-ssa/scev-7.c scan-tree-dump-times sccp "Simplify PEELED_CHREC
into POLYNOMIAL_CHREC" 1

AFAICT, this issue has been resolved.


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-16 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktkachov at gcc dot gnu.org

--- Comment #9 from ktkachov at gcc dot gnu.org ---
Hi Bin,

I'm seeing tree-ssa/scev-7.c failing on arm


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-13 Thread amker at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

--- Comment #8 from amker at gcc dot gnu.org ---
Author: amker
Date: Fri Dec 13 11:36:22 2013
New Revision: 205959

URL: http://gcc.gnu.org/viewcvs?rev=205959&root=gcc&view=rev
Log:

PR tree-optimization/58296
PR tree-optimization/41488
* tree-scalar-evolution.c: Include necessary header files.
(simplify_peeled_chrec): New function.
(analyze_evolution_in_loop): New static variable.
Call simplify_peeled_chrec.
* tree-ssa-loop-ivopts.c (mark_bivs): Don't mark peeled IV as biv.
(add_old_iv_candidates): Don't add candidate for peeled IV.
* tree-affine.h (aff_combination_zero_p): New function.

PR tree-optimization/58296
PR tree-optimization/41488
* gcc.dg/tree-ssa/scev-7.c: New test.
* gcc.dg/pr41488.c: New test.
* g++.dg/pr59445.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/pr59445.C
trunk/gcc/testsuite/gcc.dg/pr41488.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-affine.h
trunk/gcc/tree-scalar-evolution.c
trunk/gcc/tree-ssa-loop-ivopts.c


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-10 Thread amker at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

--- Comment #7 from amker at gcc dot gnu.org ---
Author: amker
Date: Wed Dec 11 00:58:35 2013
New Revision: 205880

URL: http://gcc.gnu.org/viewcvs?rev=205880&root=gcc&view=rev
Log:

Reverted:
2013-12-10  Bin Cheng  
PR tree-optimization/41488
* tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
for PEELED_CHREC kind IV.
* tree-scalar-evolution.c: Include necessary header files.
(peeled_chrec_map, simplify_peeled_chrec): New.
(analyze_evolution_in_loop): New static variable.
Call simplify_peeled_chrec.
(scev_initialize): Initialize peeled_chrec_map.
(scev_reset, scev_finalize): Reset and release peeled_chrec_map.

Reverted:
2013-12-10  Bin Cheng  
PR tree-optimization/41488
* gcc.dg/tree-ssa/scev-7.c: New test.
* gcc.dg/pr41488.c: New test.


Removed:
trunk/gcc/testsuite/gcc.dg/pr41488.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-scalar-evolution.c
trunk/gcc/tree-ssa-loop-ivopts.c


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-12-09 Thread amker at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

--- Comment #6 from amker at gcc dot gnu.org ---
Author: amker
Date: Tue Dec 10 06:31:41 2013
New Revision: 205848

URL: http://gcc.gnu.org/viewcvs?rev=205848&root=gcc&view=rev
Log:

PR tree-optimization/41488
* tree-ssa-loop-ivopts.c (add_old_iv_candidates): Don't add cand
for PEELED_CHREC kind IV.
* tree-scalar-evolution.c: Include necessary header files.
(peeled_chrec_map, simplify_peeled_chrec): New.
(analyze_evolution_in_loop): New static variable.
Call simplify_peeled_chrec.
(scev_initialize): Initialize peeled_chrec_map.
(scev_reset, scev_finalize): Reset and release peeled_chrec_map.

PR tree-optimization/41488
* gcc.dg/tree-ssa/scev-7.c: New test.
* gcc.dg/pr41488.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/pr41488.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/scev-7.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-scalar-evolution.c
trunk/gcc/tree-ssa-loop-ivopts.c


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2013-10-29 Thread xinliangli at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488

--- Comment #5 from davidxl  ---
Alternative approach -- introduce a special forward propagation before or after
the ivopt to get rid of the redundant iv. This propagation needs to propagate
through header phi.


[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2009-11-06 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2009-11-06 10:04 ---
*** Bug 41954 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||xinliangli at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488



[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2009-09-30 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-09-30 13:17 ---
The issue here is that loop header copying creates a new induction variable
by moving the use before the definition of D.2708_4 = start_3(D) + i_12.

So it just does what we teach PRE not to do ...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488



[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2009-09-28 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2009-09-28 15:30 ---
Confirmed.  Another way is to move loop header copying before FRE.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||missed-optimization
   Last reconfirmed|-00-00 00:00:00 |2009-09-28 15:30:54
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488



[Bug tree-optimization/41488] IVOpts cannot coalesce multiple induction variables

2009-09-28 Thread rahul at icerasemi dot com


--- Comment #1 from rahul at icerasemi dot com  2009-09-28 12:45 ---
See http://gcc.gnu.org/ml/gcc/2009-09/msg00432.html for some followup.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41488