This is the mail archive of the gcc-bugs@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]

[Bug rtl-optimization/66790] Invalid uninitialized register handling in REE


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66790

--- Comment #44 from pmderodat at gcc dot gnu.org ---
Author: pmderodat
Date: Mon Oct 19 23:47:35 2015
New Revision: 229008

URL: https://gcc.gnu.org/viewcvs?rev=229008&root=gcc&view=rev
Log:
REE: fix uninitialized registers handling

gcc/ChangeLog:

        PR rtl-optimization/66790
        * df.h (DF_MIR): New macro.
        (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
        (DF_MIR_INFO_BB): New macro.
        (DF_MIR_IN, DF_MIR_OUT): New macros.
        (struct df_mir_bb_info): New.
        (df_mir): New macro.
        (df_mir_add_problem, df_mir_simulate_one_insn): New forward
        declarations.
        (df_mir_get_bb_info): New.
        * df-problems.c (struct df_mir_problem_data): New.
        (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
        df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
        df_mir_confluence_0, df_mir_confluence_n,
        df_mir_transfer_function, df_mir_free, df_mir_top_dump,
        df_mir_bottom_dump, df_mir_verify_solution_start,
        df_mir_verify_solution_end): New.
        (problem_MIR): New.
        (df_mir_add_problem, df_mir_simulate_one_insn): New.
        * timevar.def (TV_DF_MIR): New.
        * ree.c: Include bitmap.h
        (add_removable_extension): Add an INIT_REGS parameter.  Use it
        to skip zero-extensions that may get an uninitialized register.
        (find_removable_extensions): Compute must-initialized registers
        using the MIR dataflow problem. Update the call to
        add_removable_extension.
        (find_and_remove_re): Call df_mir_add_problem.

gcc/testsuite/ChangeLog:

        * gnat.dg/opt50.adb: New test.
        * gnat.dg/opt50_pkg.adb: New helper.
        * gnat.dg/opt50_pkg.ads: New helper.

Added:
    trunk/gcc/testsuite/gnat.dg/opt50.adb
    trunk/gcc/testsuite/gnat.dg/opt50_pkg.adb
    trunk/gcc/testsuite/gnat.dg/opt50_pkg.ads
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/df-problems.c
    trunk/gcc/df.h
    trunk/gcc/ree.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/timevar.def


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