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 a regression on ia64 - subregs_of_mode cleanup


Hi,

This patch fixes a regression on ia64 which was due to
subregs_of_mode not being up-to-date when used.
Since I couldn't find any use of subregs_of_mode
other than local and global allocs,
I've moved subregs_of_mode_init just before local-alloc
created a new subregs_of_mode_finish after global-alloc,
and added extra assertions to make sure
it is only used when valid,
to prevent other passes from accidentally using it.
Bootstrapped and regtested on ia64.

2007-03-13 Seongbae Park <seongbae.park@gmail.com>

       * tree-pass.h (pass_subregs_of_mode_finish): New pass declaration.
       * regclass.c (record_subregs_of_mode): Made static, and
        moved before init_subregs_of_mode to compile.
        (cannot_change_mode_set_regs, invalid_mode_change_p):
        Added assertion.
        (finish_subregs_of_mode): New function.
        (pass_subregs_of_mode_finish): New pass.
        * rtl.h (record_subregs_of_mode): Removed.
        * combine.c (gen_lowpart_for_combine): Removed
         calls to record_subregs_of_mode.
        * passes.c (init_optimization_passes): Moved pass_subregs_of_mode_init
          just before local_alloc. New pass pass_subregs_of_mode_finish
          after global_alloc.

--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com";

Attachment: ia64-regression-subregs_of_mode.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]