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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Wed Sep 18 12:31:45 2013
New Revision: 202700

URL: http://gcc.gnu.org/viewcvs?rev=202700&root=gcc&view=rev
Log:
2013-09-18  Richard Biener  <rguent...@suse.de>

    PR tree-optimization/58417
    * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
    have chrecs with symbols defined in the loop as operands.
    (chrec_fold_multiply): Likewise.
    * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
    parameters before folding binary operations.
    (struct instantiate_cache_entry_hasher): Remove.
    (struct instantiate_cache_type): Use a pointer-map.
    (instantiate_cache_type::instantiate_cache_type): New function.
    (instantiate_cache_type::get): Likewise.
    (instantiate_cache_type::set): Likewise.
    (instantiate_cache_type::~instantiate_cache_type): Adjust.
    (get_instantiated_value_entry): Likewise.
    (global_cache): New global.
    (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
    instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
    instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
    (instantiate_scev_name): Adjust.
    (instantiate_scev): Construct global instead of local cache.
    (resolve_mixers): Likewise.

    * gcc.dg/torture/pr58417.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr58417.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-chrec.c
    trunk/gcc/tree-scalar-evolution.c

Reply via email to