This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[dataflow][PATCH] Fix libstdc++ regression, -O1 performance fix


Hi,

This patch fixes two  libstdc++ regressions in dataflow branch,
and one minor runtime performance issue at -O1.

Libstdc++ regression was due to a bad loop-invariant hoisting
which happened because an artificial def of an exception entry block
was not included in the ud-chain for rtl loop invariant pass.

Moving pass_stack_ptr_mod after df_initialize_no_opt
- otherwise, the conservative setting of current_function_sp_is_changing
in df_initialize
leads to unnecessary stack space usage (and stack pointer adjustments).

Bootstrapped and regtested on x86-64.
OK?

2007-04-30 Seongbae Park <seongbae.park@gmail.com>

       * df-scan.c (df_reorganize_refs_by_reg_by_insn):
       Scan artificial defs and uses as well.
       * passes.c (init_optimization_passes):
       Move pass_stack_ptr_mod from after pass_inc_dec.
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com";

Attachment: df-ud-chain-fix.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]