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