[Bug middle-end/42233] [4.3/4.4/4.5 regression] c++ builtin_expect code generation regression
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Feb 19 09:54:00 GMT 2010
------- Comment #12 from jakub at gcc dot gnu dot org 2010-02-19 09:54 -------
Subject: Bug 42233
Author: jakub
Date: Fri Feb 19 09:53:51 2010
New Revision: 156889
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156889
Log:
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.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/builtins.c
trunk/gcc/cfgexpand.c
trunk/gcc/cfgrtl.c
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/dojump.c
trunk/gcc/expmed.c
trunk/gcc/expr.c
trunk/gcc/expr.h
trunk/gcc/loop-unswitch.c
trunk/gcc/optabs.c
trunk/gcc/stmt.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42233
More information about the Gcc-bugs
mailing list