[dataflow]: patch committed to improve -O0 performance.

Kenneth Zadeck zadeck@naturalbridge.com
Wed Mar 28 16:42:00 GMT 2007


This patch turns off dataflow for -O0 for a substantial part of the back
end and where it is active, turns off the df_ur, df_live and df_urec
problems.  The should get the space down significantly.

This patch has been bootstrapped and regression tested on x86-64 and pcc.

Kenny


2007-03-28  Kenneth Zadeck <zadeck@naturalbridge.com>
    * tree-pass.h (pass_df_initialize, pass_df_finish): Deleted.
    (pass_df_initialize_opt, pass_df_initialize_no_opt,
    pass_stack_regs_run, pass_df_finish_opt, pass_df_finish_no_opt):
    Added.
    * df-core.c (df_finish_pass): Made ur and live problems condition
    on optimization.
    (pass_df_initialize): Renamed to pass_df_initialize_opt.
    (pass_df_initialize_no_opt): New pass.
    (gate_opt, gate_no_opt): New functions.
    (pass_df_finish): Renamed to pass_df_finish_opt.
    (pass_df_finish_no_opt): New pass.
    * mode-switching.c (optimize_mode_switching): Changed references
    of DF_LIVE_IN to df_get_live_in.
    * global.c (compute_regsets): Only add urec problem when
    optimizing.
    * function.c (regno_clobbered_at_setjmp): Changed references
    of DF_LIVE_OUT to df_get_live_out.
    * regclass.c (regclass_init): Only call df_compute_regs_ever_live
    if optimizing.
    * stack-ptr-mod.c (notice_stack_pointer_modification): Only call
    df_update_exit_block_uses if optimizing.
    * df-problems.c (df_get_live_in, df_get_live_out): Return df_live
    sets if they are there.
    * reg_stack (rest_of_handle_stack_regs_run):
    Added new pass that just runs subpasses.  
    * passes.c (init_optimization_passes): Added passes to turn on df
    at only some parts of the compilation for -O0.  Moved
    pass_split_before_regstack and pass_stack_regs into a subpass of
    the stack regs pass.
   
-------------- next part --------------
A non-text attachment was scrubbed...
Name: noOpt.diff
Type: text/x-patch
Size: 12513 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070328/16d3828a/attachment.bin>


More information about the Gcc-patches mailing list