[Bug middle-end/42233] [4.3/4.4 regression] c++ builtin_expect code generation regression

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Mar 8 11:47:00 GMT 2010



------- Comment #17 from jakub at gcc dot gnu dot org  2010-03-08 11:46 -------
Subject: Bug 42233

Author: jakub
Date: Mon Mar  8 11:46:28 2010
New Revision: 157274

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157274
Log:
        PR middle-end/42233
        * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.

        PR bootstrap/43121
        * except.c (sjlj_emit_function_enter): Don't call
        add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
        directly.
        * rtl.h (add_reg_br_prob_note): Remove prototype.

        PR middle-end/42233
        * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.

        PR middle-end/42233
        * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
        do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
        * dojump.c: Include output.h.
        (inv): New inline function.
        (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
        do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
        do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
        do_jump_by_parts_equality, do_compare_and_jump): Add PROB
        argument, pass it down to other calls.
        (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
        add REG_BR_PROB note to the conditional jump.
        * cfgexpand.c (add_reg_br_prob_note): Removed.
        (expand_gimple_cond): Don't call it, add the probability
        as last argument to jumpif_1/jumpifnot_1.
        * Makefile.in (dojump.o): Depend on output.h.
        * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
        callers.
        * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
        * stmt.c (do_jump_if_equal): Likewise.
        * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
        * loop-unswitch.c (compare_and_jump_seq): Likewise.
        * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
        Likewise.
        * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
        * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
        jumpifnot_1 callers.
        (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
        callers.
        (store_expr): Adjust jumpifnot caller.
        (store_constructor): Adjust jumpif caller.

        PR middle-end/42233
        * gimplify.c (gimple_boolify): For __builtin_expect call
        gimple_boolify also on its first argument.

Modified:
    branches/gcc-4_4-branch/gcc/ChangeLog
    branches/gcc-4_4-branch/gcc/Makefile.in
    branches/gcc-4_4-branch/gcc/cfgexpand.c
    branches/gcc-4_4-branch/gcc/cfgrtl.c
    branches/gcc-4_4-branch/gcc/config/rs6000/rs6000.c
    branches/gcc-4_4-branch/gcc/dojump.c
    branches/gcc-4_4-branch/gcc/except.c
    branches/gcc-4_4-branch/gcc/expmed.c
    branches/gcc-4_4-branch/gcc/expr.c
    branches/gcc-4_4-branch/gcc/expr.h
    branches/gcc-4_4-branch/gcc/gimplify.c
    branches/gcc-4_4-branch/gcc/loop-doloop.c
    branches/gcc-4_4-branch/gcc/loop-unswitch.c
    branches/gcc-4_4-branch/gcc/optabs.c
    branches/gcc-4_4-branch/gcc/rtl.h
    branches/gcc-4_4-branch/gcc/stmt.c


-- 


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



More information about the Gcc-bugs mailing list