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 middle-end/42574] [4.3/4.4/4.5/4.6 Regression] Address of global variable is calculated multiple times (missed CSE)



------- Comment #15 from mkuvyrkov at gcc dot gnu dot org  2010-07-27 19:48 -------
Subject: Bug 42574

Author: mkuvyrkov
Date: Tue Jul 27 19:48:15 2010
New Revision: 162597

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162597
Log:
        PR target/42495
        PR middle-end/42574
        * basic-block.h (get_dominated_to_depth): Declare.
        * dominance.c (get_dominated_to_depth): New function, use
        get_all_dominated_blocks as a base.
        (get_all_dominated_blocks): Use get_dominated_to_depth.

        * gcse.c (occr_t, VEC (occr_t, heap)): Define.
        (hoist_exprs): Remove.
        (alloc_code_hoist_mem, free_code_hoist_mem): Update.
        (compute_code_hoist_vbeinout): Add debug print outs.
        (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.

        * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
        quadratic behavior.
        * params.h (MAX_HOIST_DEPTH): New macro.
        * doc/invoke.texi (max-hoist-depth): Document.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/basic-block.h
    trunk/gcc/doc/invoke.texi
    trunk/gcc/dominance.c
    trunk/gcc/gcse.c
    trunk/gcc/params.def
    trunk/gcc/params.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42574


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