From: Richard Henderson Date: Thu, 7 Feb 2008 21:58:42 +0000 (-0800) Subject: re PR rtl-optimization/33410 (ICE in iv_analyze_expr, at loop-iv.c:934) X-Git-Tag: prereleases/gcc-4.2.4-rc1~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86d4776115e4c776a38b58579812fdd270205a46;p=thirdparty%2Fgcc.git re PR rtl-optimization/33410 (ICE in iv_analyze_expr, at loop-iv.c:934) PR rtl-opt/33410 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an EXPR_LIST for the REG_EQUAL instead of a comparison with a funny mode. From-SVN: r132176 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ae5adcaebf17..bddf890f8e16 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-07-07 Richard Henderson + + PR rtl-opt/33410 + * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an + EXPR_LIST for the REG_EQUAL instead of a comparison with a + funny mode. + 2008-02-07 Manuel Lopez-Ibanez PR other/32754 @@ -49,9 +56,9 @@ 2008-02-02 Richard Henderson - PR c/34993 - * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN - for unbounded arrays. + PR c/34993 + * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN + for unbounded arrays. 2008-02-02 Richard Sandiford @@ -522,25 +529,25 @@ 2007-10-18 Chen liqin - * config.gcc : update score-*-elf(extra_objs). - * config/score/mac.md : Remove. - * config/score/misc.md : Remove. - * config/score/score7.md : Remove. - * config/score/score-mdaux.h : Remove. - * config/score/score-mdaux.c : Remove. - * config/score/score-version.h : Remove. - * config/score/score-generic.md : New. - * config/score/score3.h : New. - * config/score/score3.c : New. - * config/score/score7.h : New. - * config/score/score7.c : New. - * config/score/mul-div.S : add flush_cache score3 support. - * config/score/elf.h : Fix some typos. - * config/score/score.md : merge score3 and score7 pattern. - * config/score/score.c : use to seperate which target it used. - * config/score/score.h : use to seperate the target macro. - * config/score/score.opt : remove -mmac option , add -mscore3, - -mscore3d and -march OPTION support. + * config.gcc : update score-*-elf(extra_objs). + * config/score/mac.md : Remove. + * config/score/misc.md : Remove. + * config/score/score7.md : Remove. + * config/score/score-mdaux.h : Remove. + * config/score/score-mdaux.c : Remove. + * config/score/score-version.h : Remove. + * config/score/score-generic.md : New. + * config/score/score3.h : New. + * config/score/score3.c : New. + * config/score/score7.h : New. + * config/score/score7.c : New. + * config/score/mul-div.S : add flush_cache score3 support. + * config/score/elf.h : Fix some typos. + * config/score/score.md : merge score3 and score7 pattern. + * config/score/score.c : use to seperate which target it used. + * config/score/score.h : use to seperate the target macro. + * config/score/score.opt : remove -mmac option , add -mscore3, + -mscore3d and -march OPTION support. 2007-10-12 Zdenek Dvorak @@ -1019,12 +1026,12 @@ 2007-08-17 Chen liqin - * config/score/score.md : Update pattern tablejump. - * config/score/score.c : Update score_initialize_trampoline - function. - * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro. - (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro. - * doc/contrib.texi: Add my entry. + * config/score/score.md : Update pattern tablejump. + * config/score/score.c : Update score_initialize_trampoline + function. + * config/score/score.h (TRAMPOLINE_TEMPLATE): Added macro. + (TRAMPOLINE_INSNS, TRAMPOLINE_SIZE) Update macro. + * doc/contrib.texi: Add my entry. 2007-08-02 Andreas Krebbel @@ -1076,15 +1083,15 @@ Backport from mainline: 2007-03-09 Daniel Berlin - * tree-ssa-structalias.c (shared_bitmap_info_t): New structure. - (shared_bitmap_table): New variable. - (shared_bitmap_hash): New function. - (shared_bitmap_eq): Ditto - (shared_bitmap_lookup): Ditto. - (shared_bitmap_add): Ditto. - (find_what_p_points_to): Rewrite to use shared bitmap hashtable. - (init_alias_vars): Init shared bitmap hashtable. - (delete_points_to_sets): Delete shared bitmap hashtable. + * tree-ssa-structalias.c (shared_bitmap_info_t): New structure. + (shared_bitmap_table): New variable. + (shared_bitmap_hash): New function. + (shared_bitmap_eq): Ditto + (shared_bitmap_lookup): Ditto. + (shared_bitmap_add): Ditto. + (find_what_p_points_to): Rewrite to use shared bitmap hashtable. + (init_alias_vars): Init shared bitmap hashtable. + (delete_points_to_sets): Delete shared bitmap hashtable. 2007-07-23 Bernd Schmidt @@ -1607,7 +1614,7 @@ * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine. 2007-04-24 Andrew Pinski - Roger Sayle + Roger Sayle PR middle-end/30222 * expmed.c (make_tree): Use the correct type, i.e. the inner diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 807aa4c62a82..e0a7d695973a 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -3149,7 +3149,7 @@ static rtx alpha_emit_xfloating_compare (enum rtx_code *pcode, rtx op0, rtx op1) { enum rtx_code cmp_code, res_code; - rtx func, out, operands[2]; + rtx func, out, operands[2], note; /* X_floating library comparison functions return -1 unordered @@ -3189,10 +3189,13 @@ alpha_emit_xfloating_compare (enum rtx_code *pcode, rtx op0, rtx op1) operands[1] = op1; out = gen_reg_rtx (DImode); - /* ??? Strange mode for equiv because what's actually returned - is -1,0,1, not a proper boolean value. */ - alpha_emit_xfloating_libcall (func, out, operands, 2, - gen_rtx_fmt_ee (cmp_code, CCmode, op0, op1)); + /* What's actually returned is -1,0,1, not a proper boolean value, + so use an EXPR_LIST as with a generic libcall instead of a + comparison type expression. */ + note = gen_rtx_EXPR_LIST (VOIDmode, op1, NULL_RTX); + note = gen_rtx_EXPR_LIST (VOIDmode, op0, note); + note = gen_rtx_EXPR_LIST (VOIDmode, func, note); + alpha_emit_xfloating_libcall (func, out, operands, 2, note); return out; }