aboutsummaryrefslogtreecommitdiff
path: root/gcc/predict.c
AgeCommit message (Collapse)AuthorFilesLines
2000-05-19cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.Richard Kenner1-1/+2
* cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. * reload.c (find_equiv_reg): Likewise. * alias.c (init_alias_analysis): Likewise. Only call prologue_epilogue_contains on insns. * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function. * bb-reorder.c (hard-reg-set.h): Include earlier. * haifa-sched.c (hard-reg-set.h): Likewise. * ifcvt.c (hard-reg-set.h): Likewise. * local-alloc.c (hard-reg-set.h): Likewise. * loop.c (hard-reg-set.h): Likewise. * predict.c (hard-reg-set.h): Likewise. * regrename.c (hard-reg-set.h): Likewise. * flow.c (hard-reg-set.h): Likewise. (reg_set_to_hard_reg_set): New function. * bitmap.c (regs.h, basic-block.h): No longer include. (bitmap.h): Now include. * conflict.c (hard-reg-set.h): Include. * profile.c (hard-reg-set.h): Likewise. * print-rtl.c (hard-reg-set.h): Likewise. * sbitmap.c (hard-reg-set.h): Likewise. * toplev.c (hard-reg-set.h): Likewise. * unroll.c (hard-reg-set.h, basic-block.h): Likewise. * hard-reg-set.h (reg_names): Now constant. * regs.h (reg_names): Likewise. * regclass.c (reg_names): Likewise. * loop.h (basic-block.h): No longer include. (bitmap.h): Now include. * reload1.c (order_regs_for_reload): Avoid loop over reg sets. * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes. (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise. From-SVN: r34039
2000-05-08predict.c (PROB_NEVER, [...]): New.Richard Henderson1-13/+23
* predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New. (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. (PROB_VERY_LIKELY, PROB_ALWAYS): New. (estimate_probability, expected_value_to_br_prob): Use them. From-SVN: r33792
2000-05-05predict.c: Remove May 4 change.Jeffrey A Law1-13/+0
* predict.c: Remove May 4 change. * bb-reorder.c (make_reorder_chain): Do not perform block movement if we have predicted the branch at 50-50 probability. From-SVN: r33707
2000-05-04predict.c (estimate_probability): If no prediction was found...Jeffrey A Law1-0/+13
* predict.c (estimate_probability): If no prediction was found, then predict the successor that is the next physical block (if such a successor exists). From-SVN: r33683
2000-05-04bb-reorder.c (get_next_bb_note, [...]): Prototype.Kaveh R. Ghazi1-3/+1
* bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype. * diagnostic (vbuild_message_string, build_message_string, build_location_prefix, output_get_prefix, init_output_buffer, output_notice, vline_wrapper_message_with_location, v_message_with_decl, default_print_error_function): De-constify. (set_real_maximum_length): Prototype. * diagnostic.h (struct output_buffer, init_output_buffer, output_get_prefix, output_set_prefix): De-constify. * function.c (init_function_start): Constify. * gensupport.c (remove_constraints, process_rtx): Prototype. * gthr-posix.h: Indent uses of #pragma. * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table): Prototype. * predict.c (find_expected_value): Delete prototype. (expected_value_to_br_prob): Initialize variable `ev_reg'. * sbitmap.h (debug_sbitmap): Prototype. * ssa.c (compute_coalesced_reg_partition): Prototype. * stor-layout.c (debug_rli): Prototype. * tree.h (round_down): Prototype. (init_function_start): Constify. ch: * ch-tree.h (init_function_start): Constify. From-SVN: r33675
2000-04-22predict.c (estimate_probability): Examine both sides of a branch for no exits.Richard Henderson1-32/+42
* predict.c (estimate_probability): Examine both sides of a branch for no exits. Use 90% not 50% for predict taken. Reorg for one copy of note generation code. From-SVN: r33343
2000-04-22predict.c (expected_value_to_br_prob): Don't bomb if op1 of the collected ↵Richard Henderson1-1/+11
condition is not a constant. * predict.c (expected_value_to_br_prob): Don't bomb if op1 of the collected condition is not a constant. From-SVN: r33340
2000-04-21predict.c (estimate_probability): New heuristic...Zack Weinberg1-6/+27
* predict.c (estimate_probability): New heuristic: if a jump branches around a block with no successors, predict it taken. Disentangle control flow. From-SVN: r33308
2000-04-17loop.c (canonicalize_condition): Add WANT_REG argument.Richard Henderson1-59/+38
* loop.c (canonicalize_condition): Add WANT_REG argument. Stop the search if we match it. * expr.h (canonicalize_condition): Update decl. * predict.c (expected_value_to_br_prob): Use it. Track last expected value note. (find_expected_value): Remove. * reorg.c (mostly_true_jump): Always use BR_PROB if present. From-SVN: r33214
2000-04-17builtins.c (expand_builtin_expect): New.Richard Henderson1-0/+87
* builtins.c (expand_builtin_expect): New. (expand_builtin): Call it. * builtins.def (BUILT_IN_EXPECT): New. * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. * extend.texi: Document it. * predict.c (expected_value_to_br_prob): New. (find_expected_value): New. * basic-block.h (expected_value_to_br_prob): Declare. * toplev.c (rest_of_compilation): Invoke it. * rtl.h (NOTE_EXPECTED_VALUE): New. (NOTE_INSN_EXPECTED_VALUE): New. * rtl.c (note_insn_name): Update. * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special cases; handle NOTE_INSN_EXPECTED_VALUE. From-SVN: r33211
2000-02-21predict.c (estimate_probability): Added the pointer heuristic to the ↵Jason Eckhardt1-2/+37
collection of static branch predictors. * predict.c (estimate_probability): Added the pointer heuristic to the collection of static branch predictors. From-SVN: r32093
2000-01-29[multiple changes]Jason Eckhardt1-7/+12
Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz> * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New function. * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. (FLOW_LOOP_LAST_BLOCK): Likewise. 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz> * basic-block.h (struct loop): New fields 'first' and 'last'. * flow.c (flow_loops_find): Compute loop->first and loop->last. (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG and loop->last to check for NOTE_INSN_LOOP_END. Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com> * predict.c (estimate_probability): Use the new FIRST and LAST fields of the loop descriptor rather than HEADER and LATCH. Also added missing break statements as well making some coding style modifications as suggested by Michael Hayes. From-SVN: r31679
2000-01-14predict.c: New file.Jason Eckhardt1-0/+143
Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com> Stan Cox <scox@cygnus.com> * predict.c: New file. Preliminary infrastructure work for static branch prediction and basic block reordering. * basic-block.h: Add prototype for estimate_probability. * Makefile.in: Add rules for predict.o. Co-Authored-By: Stan Cox <scox@cygnus.com> From-SVN: r31402