From: Martin Jambor Date: Mon, 2 Jul 2012 15:53:21 +0000 (+0200) Subject: re PR middle-end/38474 (compile time explosion in dataflow_set_preserve_mem_locs... X-Git-Tag: releases/gcc-4.6.4~465 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f595090891783f35f501122a8b5a8a6e188ba348;p=thirdparty%2Fgcc.git re PR middle-end/38474 (compile time explosion in dataflow_set_preserve_mem_locs at -O3) 2012-07-02 Martin Jambor PR middle-end/38474 * ipa-prop.c (compute_known_type_jump_func): Check for a BINFO before checking for a dynamic type change. From-SVN: r189165 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 229718c6c8f9..edbf66075ebb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-07-02 Martin Jambor + + PR middle-end/38474 + * ipa-prop.c (compute_known_type_jump_func): Check for a BINFO before + checking for a dynamic type change. + 2012-06-28 Richard Guenther PR middle-end/53790 diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index f2a5759b0b55..fd3f87a6dff9 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -704,12 +704,11 @@ compute_known_type_jump_func (tree op, struct ipa_jump_func *jfunc, || is_global_var (base)) return; - if (detect_type_change (op, base, call, jfunc, offset)) - return; - binfo = TYPE_BINFO (TREE_TYPE (base)); - if (!binfo) + if (!binfo + || detect_type_change (op, base, call, jfunc, offset)) return; + binfo = get_binfo_at_offset (binfo, offset, TREE_TYPE (op)); if (binfo) {