Development

NAVIGATION
CATEGORIES
REFERRENCE
LINKS
  • PR rtl-optimization/28071 (reduce memory usage consumed by liveness)

    6 answers - 2067 bytes - related search similar search Add To My Delicious Add To My Stumble Upon Add To My Google Mark Add To My Facebook Add To My Digg Add To My Reddit

    Hi,
    this is another low hanging 100MB fruit on bug2.c compilation. The
    liveness bitmaps are very dense and very numberous resulting in large memory
    consumption, but we throw them away for each liveness pass not freeing them
    until end of compilation of the function.
    :ADDPATCH middle-end:
    Bootstrapped/regtested i686-linux, K?
    2006-07-27 Jan Hubicka <jh (AT) suse (DOT) cz>
    PR rtl-optimization/28071
    * cfgrtl.c (rtl_delete_block): Free regsets.
    * flow.c (allocate_bb_life_data): Re-use regsets if available.
    Index: cfgrtl.c
    cfgrtl.c(revision 115764)
    cfgrtl.c(working copy)
    rtl_delete_block (basic_block b)
    386,391
    386,398
    /* Selectively delete the entire chain. */
    BB_HEAD (b) = NULL;
    delete_insn_chain (insn, end);
    + if (b->il.rtl->global_live_at_start)
    + {
    + FREE_REG_SET (b->il.rtl->global_live_at_start);
    + FREE_REG_SET (b->il.rtl->global_live_at_end);
    + b->il.rtl->global_live_at_start = NULL;
    + b->il.rtl->global_live_at_end = NULL;
    + }
    }

    /* Records the basic block struct in BLCK_FR_INSN for every insn. */
    Index: flow.c
    flow.c(revision 115764)
    flow.c(working copy)
    allocate_bb_life_data (void)
    1564,1571
    FR_BB_BETWEEN (bb, ENTRY_BLCK_PTR, NULL, next_bb)
    {
    ! bb->il.rtl->global_live_at_start = ALLC_REG_SET (®_obstack);
    ! bb->il.rtl->global_live_at_end = ALLC_REG_SET (®_obstack);
    }
    regs_live_at_setjmp = ALLC_REG_SET (®_obstack);
    1564,1579
    FR_BB_BETWEEN (bb, ENTRY_BLCK_PTR, NULL, next_bb)
    {
    ! if (bb->il.rtl->global_live_at_start)
    ! {
    ! CLEAR_REG_SET (bb->il.rtl->global_live_at_start);
    ! CLEAR_REG_SET (bb->il.rtl->global_live_at_end);
    ! }
    ! else
    ! {
    ! bb->il.rtl->global_live_at_start = ALLC_REG_SET (®_obstack);
    ! bb->il.rtl->global_live_at_end = ALLC_REG_SET (®_obstack);
    ! }
    }
    regs_live_at_setjmp = ALLC_REG_SET (®_obstack);
  • No.1 | | 477 bytes | |

    Jan Hubicka <jh (AT) suse (DOT) czwrites:

    Hi,
    this is another low hanging 100MB fruit on bug2.c compilation. The
    liveness bitmaps are very dense and very numberous resulting in large memory
    consumption, but we throw them away for each liveness pass not freeing them
    until end of compilation of the function.

    :ADDPATCH middle-end:
    Bootstrapped/regtested i686-linux, K?

    This is causing bootstrap comparison failures on ia64.

    Andreas.
  • No.2 | | 540 bytes | |

    Jan Hubicka <jh (AT) suse (DOT) czwrites:

    Hi,
    this is another low hanging 100MB fruit on bug2.c compilation. The
    liveness bitmaps are very dense and very numberous resulting in large memory
    consumption, but we throw them away for each liveness pass not freeing them
    until end of compilation of the function.

    :ADDPATCH middle-end:
    Bootstrapped/regtested i686-linux, K?

    This is causing bootstrap comparison failures on ia64.

    Weird, I will look into it this afternoon.

    Honza

    Andreas.
  • No.3 | | 667 bytes | |

    Jan Hubicka <jh (AT) suse (DOT) czwrites:

    Hi,
    this is another low hanging 100MB fruit on bug2.c compilation. The
    liveness bitmaps are very dense and very numberous resulting in large memory
    consumption, but we throw them away for each liveness pass not freeing them
    until end of compilation of the function.

    :ADDPATCH middle-end:
    Bootstrapped/regtested i686-linux, K?

    This is causing bootstrap comparison failures on ia64.

    Hi,
    I have problems to reproduce this with current CVS checkout. What flags
    do you use, or can I get access to the broken tree?

    Thanks and sorry for the delays,
    Honza

    Andreas.
  • No.4 | | 230 bytes | |

    Jan Hubicka <jh (AT) suse (DOT) czwrites:
    I have problems to reproduce this with current CVS checkout. What flags
    do you use, or can I get access to the broken tree?
    Apparently fixed by r115850.
    Andreas.
  • No.5 | | 367 bytes | |

    Andreas Schwab <schwab (AT) suse (DOT) dewrites:

    Jan Hubicka <jh (AT) suse (DOT) czwrites:
    >
    >I have problems to reproduce this with current CVS checkout. What flags
    >do you use, or can I get access to the broken tree?
    >

    Apparently fixed by r115850.

    And reappeared with r115851.

    Andreas.
  • No.6 | | 907 bytes | |

    Andreas Schwab <schwab (AT) suse (DOT) dewrites:

    Jan Hubicka <jh (AT) suse (DOT) czwrites:
    >
    >I have problems to reproduce this with current CVS checkout. What flags
    >do you use, or can I get access to the broken tree?
    >

    Apparently fixed by r115850.

    And reappeared with r115851.

    I've got bootstrap both with and without checking on IA-64 without any
    problems. It looks like there is some bug appearing and disappearing
    since Diego's SPEC95 tester is logging misscompares for over a month.
    It would be nice to know a bit more about the failure, but if we can't
    get around it, perhaps reverting the patch is easiest solution - there
    are other low hanging fruits on the testcase memory footprint and this
    code is probably going to disappear with dataflow branch merge.

    Honza

    Andreas.

Re: PR rtl-optimization/28071 (reduce memory usage consumed by liveness)


max 4000 letters.
Your nickname that display:
In order to stop the spam: 5 + 4 =
QUESTION ON "Development"

EMSDN.COM