This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/42906] [4.5 Regression] Empty loop not removed
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Mar 2010 17:30:11 -0000
- Subject: [Bug tree-optimization/42906] [4.5 Regression] Empty loop not removed
- References: <bug-42906-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #21 from rguenther at suse dot de 2010-03-18 17:30 -------
Subject: Re: [4.5 Regression] Empty loop not
removed
On Thu, 18 Mar 2010, changpeng dot fang at amd dot com wrote:
> ------- Comment #20 from changpeng dot fang at amd dot com 2010-03-18 17:24 -------
> (In reply to comment #19)
> > Splitting critical edges for CDDCE will probably also solve this problem.
> >
> > Richard.
> >
>
> Yes, splitting critical edges is an enhancement to CDDCE and can solve this
> problem. There are two approaches to do this (1) add pass_split_crit_edges
> before each pass_cd_dce or (2) encode split_crit_edges into cddce as an
> initialization. What do you think? Thanks.
Ideally we'd handle this with pass properties and the pass manager
(but that requires larger changes). For now I'd do it like the crited
pass before PRE, thus schedule a new pass before CDDCEs.
I also think that we can consider not fixing this for 4.5 and
do it properly for 4.6.
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42906