Summary: | [4.3 regression] Missed optimizations for sbi/cbi instructions | ||
---|---|---|---|
Product: | gcc | Reporter: | aesok |
Component: | rtl-optimization | Assignee: | Paolo Bonzini <bonzini> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | aesok, eric.weddington, gcc-bugs |
Priority: | P3 | Keywords: | missed-optimization, patch |
Version: | 4.3.0 | ||
Target Milestone: | 4.3.0 | ||
URL: | http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01797.html | ||
Host: | Target: | avr | |
Build: | Known to work: | 4.2.0 | |
Known to fail: | 4.3.0 | Last reconfirmed: | 2007-02-19 06:53:12 |
Bug Depends on: | 30907 | ||
Bug Blocks: |
Description
aesok
2007-02-18 13:03:47 UTC
It's actually a small oversight in fwprop, which is supposed to replace find_best_addr indeed. The patch indicated in the URL is enough for dataflow-branch; on mainline you need also http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01797.html because of a bug in df that is already fixed on the branch. Changing the patch address since part 1 was approved. And adding bug 30907 since committing part 2 would cause that bug to surface on mainline. Subject: Bug 30841 Author: bonzini Date: Fri Feb 23 07:45:34 2007 New Revision: 122253 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122253 Log: 2007-02-22 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/30841 * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address. Modified: trunk/gcc/ChangeLog trunk/gcc/fwprop.c Subject: Bug 30841 Author: bonzini Date: Tue Mar 20 08:31:13 2007 New Revision: 123084 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=123084 Log: 2007-03-19 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/30907 * fwprop.c (forward_propagate_into): Never propagate inside a loop. (fwprop_init): Always call loop_optimizer_initialize. (fwprop_done): Always call loop_optimizer_finalize. (fwprop): We always have loop info now. (gate_fwprop_addr): Remove. (pass_fwprop_addr): Use gate_fwprop as gate. PR rtl-optimization/30841 * df-problems.c (df_ru_local_compute, df_rd_local_compute, df_chain_alloc): Call df_reorganize_refs unconditionally. * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change refs_organized to refs_organized_size. (df_ref_create_structure): Use refs_organized_size instead of bitmap_size if refs had been organized, and keep refs_organized_size up-to-date. * df.h (struct df_ref_info): Change refs_organized to refs_organized_size. (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of bitmap_size. Modified: trunk/gcc/ChangeLog trunk/gcc/df-problems.c trunk/gcc/df-scan.c trunk/gcc/df.h trunk/gcc/fwprop.c fixed. Fixed. |