public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches
@ 2005-02-19 15:55 amylaar at gcc dot gnu dot org
  2005-02-19 16:03 ` [Bug rtl-optimization/20070] " amylaar at gcc dot gnu dot org
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-02-19 15:55 UTC (permalink / raw)
  To: gcc-bugs

If-conversion currently lacks the ability to merge two
basic blocks that are identical except for an input register
that can be set up using a conditional move, and possibly some
different local registers.

Cross-jumping lacks the ability to recognize that two blocks are
equivalent when there are different local registers, and (for -Os)
to find opportunities where setting up input registers will allow
to do cross jumping.

The problem has been discussed here:
http://gcc.gnu.org/ml/gcc-patches/2004-01/msg03281.html
http://gcc.gnu.org/ml/gcc-patches/2005-01/msg00672.html

A patch against 4.0 20050218 has been posted here:
http://gcc.gnu.org/ml/gcc-patches/2005-02/msg01066.html

-- 
           Summary: If-conversion can't match equivalent code, and cross-
                    jumping only works for literal matches
           Product: gcc
           Version: 3.3
            Status: UNCONFIRMED
          Keywords: missed-optimization, patch
          Severity: enhancement
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: amylaar at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
OtherBugsDependingO 17652
             nThis:


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
@ 2005-02-19 16:03 ` amylaar at gcc dot gnu dot org
  2005-02-19 16:24 ` pinskia at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-02-19 16:03 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.1.0


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
  2005-02-19 16:03 ` [Bug rtl-optimization/20070] " amylaar at gcc dot gnu dot org
@ 2005-02-19 16:24 ` pinskia at gcc dot gnu dot org
  2005-02-21 21:47 ` amylaar at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-02-19 16:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-19 05:04 -------
Confirmed based on RTH's comments to the patch.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-02-19 05:04:56
               date|                            |


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
  2005-02-19 16:03 ` [Bug rtl-optimization/20070] " amylaar at gcc dot gnu dot org
  2005-02-19 16:24 ` pinskia at gcc dot gnu dot org
@ 2005-02-21 21:47 ` amylaar at gcc dot gnu dot org
  2005-02-21 22:15 ` amylaar at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-02-21 21:47 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-02-21 15:44 -------
regression testing of the patch in gcc 4.0 20050218 was successful.

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-02-21 21:47 ` amylaar at gcc dot gnu dot org
@ 2005-02-21 22:15 ` amylaar at gcc dot gnu dot org
  2005-03-02 22:06 ` amylaar at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-02-21 22:15 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-02-21 16:38 -------
While merging the patch in a 3.4.3 based branch, I noticed three small issues:

- The rest_of_handle_life prototype in passes.c is not necessary.  It is a
  vestige from a previous (more intrusive) attempt to provide life
  information to if_convert.
- In passes.c:rest_of_handle_if_conversion, at the end of the
  flag_expensive_optimizations code, EXIT_BLOCK_PTR->global_live_at_start
  has to be cleared for compatibility with this patch:

  2004-05-17  J"orn Rennecke <joern.rennecke@superh.com>

        * cse.c (trivially_dead_nonlocal_regs): New variable.
        (note_dead_set): New function.
        (delete_trivially_dead_insns): If life info is available, update it.

  For completeness, we might also clear ENTRY_BLOCK_PTR->global_live_at_end.
- config/pa/pa.c:pa_commutative_p is missing the parameter list:
  (rtx x, int outer_code)


-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-02-21 22:15 ` amylaar at gcc dot gnu dot org
@ 2005-03-02 22:06 ` amylaar at gcc dot gnu dot org
  2005-03-03  2:44 ` pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-03-02 22:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-03-02 22:06 -------
The recog.c / recog.h part of the patch has been committed as part
of another patch:
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg00133.html

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-03-02 22:06 ` amylaar at gcc dot gnu dot org
@ 2005-03-03  2:44 ` pinskia at gcc dot gnu dot org
  2005-03-03 15:00 ` joern dot rennecke at st dot com
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-03-03  2:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-03 02:44 -------
(In reply to comment #4)
> The recog.c / recog.h part of the patch has been committed as part
> of another patch:
> http://gcc.gnu.org/ml/gcc-patches/2005-03/msg00133.html

Yes this also caused a regression on ppc-darwin (it might also be reproducable with ppc-elf and ppc-
linux).

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-03-03  2:44 ` pinskia at gcc dot gnu dot org
@ 2005-03-03 15:00 ` joern dot rennecke at st dot com
  2005-04-05  2:00 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: joern dot rennecke at st dot com @ 2005-03-03 15:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From joern dot rennecke at st dot com  2005-03-03 14:59 -------
Subject: Re:  If-conversion can't match equivalent code, and cross-jumping only works for literal matches

pinskia at gcc dot gnu dot org wrote:

>------- Additional Comments From pinskia at gcc dot gnu dot org  2005-03-03 02:44 -------
>(In reply to comment #4)
>  
>
>>The recog.c / recog.h part of the patch has been committed as part
>>of another patch:
>>http://gcc.gnu.org/ml/gcc-patches/2005-03/msg00133.html
>>    
>>
>
>Yes this also caused a regression on ppc-darwin (it might also be reproducable with ppc-elf and ppc-
>linux).
>
>  
>
I've tried ppc-eabisim, but can't reproduce a failure there building gcc 
or newlib.  powerpc-apple-darwin7.4.0
wants lots of include files which I don't have.  Could you send me a 
preprocessed file so that I can test my patch
against that?


-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2005-03-03 15:00 ` joern dot rennecke at st dot com
@ 2005-04-05  2:00 ` pinskia at gcc dot gnu dot org
  2005-04-12 18:56 ` amylaar at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-04-05  2:00 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.1.0                       |---


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2005-04-05  2:00 ` pinskia at gcc dot gnu dot org
@ 2005-04-12 18:56 ` amylaar at gcc dot gnu dot org
  2005-05-26 14:35 ` amylaar at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-04-12 18:56 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-04-12 18:56 -------
PR and patch predate gcc 4.0 branch.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |17652
              nThis|                            |


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2005-04-12 18:56 ` amylaar at gcc dot gnu dot org
@ 2005-05-26 14:35 ` amylaar at gcc dot gnu dot org
  2005-06-01 12:00 ` amylaar at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-05-26 14:35 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |21767


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2005-05-26 14:35 ` amylaar at gcc dot gnu dot org
@ 2005-06-01 12:00 ` amylaar at gcc dot gnu dot org
  2005-07-07 18:30 ` amylaar at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-06-01 12:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-06-01 11:59 -------
For the purposes of PR20070, it is sufficient that PR21767 is fixed on mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|21767                       |


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2005-06-01 12:00 ` amylaar at gcc dot gnu dot org
@ 2005-07-07 18:30 ` amylaar at gcc dot gnu dot org
  2005-07-12 13:30 ` amylaar at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-07-07 18:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-07-07 18:29 -------
An updated patch is here:
http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00482.html

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2005-07-07 18:30 ` amylaar at gcc dot gnu dot org
@ 2005-07-12 13:30 ` amylaar at gcc dot gnu dot org
  2005-07-12 13:35 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-07-12 13:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-07-12 13:14 -------
An updated patch is here:
http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00843.html

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2005-07-12 13:30 ` amylaar at gcc dot gnu dot org
@ 2005-07-12 13:35 ` cvs-commit at gcc dot gnu dot org
  2005-07-15 14:22 ` amylaar at gcc dot gnu dot org
  2005-07-15 14:43 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-12 13:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-07-12 13:30 -------
Subject: Bug 20070

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	sh-elf-4_1-branch
Changes by:	amylaar@gcc.gnu.org	2005-07-12 13:29:58

Modified files:
	gcc            : ChangeLog basic-block.h cfgcleanup.c ifcvt.c 
	                 recog.c recog.h 

Log message:
	PR rtl-optimization/20070
	http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00843.html
	* basic-block.h (STRUCT_EQUIV_START, STRUCT_EQUIV_RERUN): Define.
	(STRUCT_EQUIV_FINAL, STRUCT_EQUIV_MAX_LOCAL): Likewise.
	(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
	(struct_equiv_block_eq): Declare.
	* cfgcleanup.c (reload.h, expr.h): #include.
	(IMPOSSIBLE_MOVE_FACTOR): Define.
	(flow_find_cross_jump): Remove.
	(assign_reg_reg_set, struct_equiv, struct_equiv_set): New functions.
	(struct_equiv_dst_mem, struct_equiv_make_checkpoint): Likewise.
	(struct_equiv_improve_checkpoint): Likewise.
	(struct_equiv_restore_checkpoint, struct_equiv_death): Likewise.
	(struct_equiv_block_eq): Likewise.
	(find_dying_inputs, resolve_input_conflict): Likewise.
	(try_crossjump_to_edge): Use struct_equiv_block_eq instead of
	flow_find_cross_jump.
	* ifcvt.c (noce_try_complex_cmove): New function.
	(noce_process_if_block): Call it.
	For flag_expensive_optimizations, update cond_exec_changed_p on
	success.
	(rest_of_handle_if_conversion): For flag_expensive_optimizations,
	provide if_convert with register lifeness info.
	
	Back out this change:
	2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
	* recog.c (verify_changes): Make it static.
	* recog.h: Remove the corresponding prototype.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=2.8142.2.17&r2=2.8142.2.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/basic-block.h.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.246.2.2&r2=1.246.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgcleanup.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.143.2.1&r2=1.143.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ifcvt.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.184.2.1&r2=1.184.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/recog.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.221.4.1&r2=1.221.4.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/recog.h.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.55.4.1&r2=1.55.4.2



-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2005-07-12 13:35 ` cvs-commit at gcc dot gnu dot org
@ 2005-07-15 14:22 ` amylaar at gcc dot gnu dot org
  2005-07-15 14:43 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2005-07-15 14:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From amylaar at gcc dot gnu dot org  2005-07-15 14:07 -------
An updated patch is here:
http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01041.html

-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Bug rtl-optimization/20070] If-conversion can't match equivalent code, and cross-jumping only works for literal matches
  2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2005-07-15 14:22 ` amylaar at gcc dot gnu dot org
@ 2005-07-15 14:43 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-15 14:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-07-15 14:25 -------
Subject: Bug 20070

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	sh-elf-4_1-branch
Changes by:	amylaar@gcc.gnu.org	2005-07-15 14:25:24

Modified files:
	gcc            : cfgcleanup.c ChangeLog 

Log message:
	Update this patch:
	2005-07-14  J"orn Rennecke <joern.rennecke@st.com>
	
	PR rtl-optimization/20070
	http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01041.html
	* basic-block.h (STRUCT_EQUIV_START, STRUCT_EQUIV_RERUN): Define.
	(STRUCT_EQUIV_FINAL, STRUCT_EQUIV_MAX_LOCAL): Likewise.
	(struct struct_equiv_checkpoint, struct equiv_info): Likewise.
	(struct_equiv_block_eq): Declare.
	* cfgcleanup.c (reload.h, expr.h): #include.
	(IMPOSSIBLE_MOVE_FACTOR): Define.
	(flow_find_cross_jump): Remove.
	(assign_reg_reg_set, struct_equiv, struct_equiv_set): New functions.
	(struct_equiv_dst_mem, struct_equiv_make_checkpoint): Likewise.
	(struct_equiv_improve_checkpoint): Likewise.
	(struct_equiv_restore_checkpoint, struct_equiv_death): Likewise.
	(struct_equiv_block_eq): Likewise.
	(find_dying_inputs, resolve_input_conflict): Likewise.
	(try_crossjump_to_edge): Use struct_equiv_block_eq instead of
	flow_find_cross_jump.
	* ifcvt.c (noce_try_complex_cmove): New function.
	(noce_process_if_block): Call it.
	For flag_expensive_optimizations, update cond_exec_changed_p on
	success.
	(rest_of_handle_if_conversion): For flag_expensive_optimizations,
	provide if_convert with register lifeness info.
	
	Back out this change:
	2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
	* recog.c (verify_changes): Make it static.
	* recog.h: Remove the corresponding prototype.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgcleanup.c.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=1.143.2.3&r2=1.143.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=sh-elf-4_1-branch&r1=2.8142.2.22&r2=2.8142.2.23



-- 


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


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2005-07-15 14:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-19 15:55 [Bug rtl-optimization/20070] New: If-conversion can't match equivalent code, and cross-jumping only works for literal matches amylaar at gcc dot gnu dot org
2005-02-19 16:03 ` [Bug rtl-optimization/20070] " amylaar at gcc dot gnu dot org
2005-02-19 16:24 ` pinskia at gcc dot gnu dot org
2005-02-21 21:47 ` amylaar at gcc dot gnu dot org
2005-02-21 22:15 ` amylaar at gcc dot gnu dot org
2005-03-02 22:06 ` amylaar at gcc dot gnu dot org
2005-03-03  2:44 ` pinskia at gcc dot gnu dot org
2005-03-03 15:00 ` joern dot rennecke at st dot com
2005-04-05  2:00 ` pinskia at gcc dot gnu dot org
2005-04-12 18:56 ` amylaar at gcc dot gnu dot org
2005-05-26 14:35 ` amylaar at gcc dot gnu dot org
2005-06-01 12:00 ` amylaar at gcc dot gnu dot org
2005-07-07 18:30 ` amylaar at gcc dot gnu dot org
2005-07-12 13:30 ` amylaar at gcc dot gnu dot org
2005-07-12 13:35 ` cvs-commit at gcc dot gnu dot org
2005-07-15 14:22 ` amylaar at gcc dot gnu dot org
2005-07-15 14:43 ` cvs-commit at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).