summaryrefslogtreecommitdiff
path: root/gcc/predict.c
Commit message (Collapse)AuthorAgeFilesLines
* * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.kenner2000-05-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34039 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.rth2000-05-091-13/+23
| | | | | | | | | (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. (PROB_VERY_LIKELY, PROB_ALWAYS): New. (estimate_probability, expected_value_to_br_prob): Use them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33792 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c: Remove May 4 change.law2000-05-051-13/+0
| | | | | | | | * bb-reorder.c (make_reorder_chain): Do not perform block movement if we have predicted the branch at 50-50 probability. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33707 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (estimate_probability): If no prediction was found, thenlaw2000-05-041-0/+13
| | | | | | | | predict the successor that is the next physical block (if such a successor exists). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33683 138bc75d-0d04-0410-961f-82ee72b054a4
* * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.ghazi2000-05-041-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33675 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (estimate_probability): Examine both sides ofrth2000-04-221-32/+42
| | | | | | | | a branch for no exits. Use 90% not 50% for predict taken. Reorg for one copy of note generation code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33343 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (expected_value_to_br_prob): Don't bomb if op1 ofrth2000-04-221-1/+11
| | | | | | | the collected condition is not a constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33340 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (estimate_probability): New heuristic: if a jumpzack2000-04-211-6/+27
| | | | | | | | branches around a block with no successors, predict it taken. Disentangle control flow. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33308 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (canonicalize_condition): Add WANT_REG argument.rth2000-04-171-59/+38
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33214 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_expect): New.rth2000-04-171-0/+87
| | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33211 138bc75d-0d04-0410-961f-82ee72b054a4
* * predict.c (estimate_probability): Added the pointer heuristic tojle2000-02-211-2/+37
| | | | | | | the collection of static branch predictors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32093 138bc75d-0d04-0410-961f-82ee72b054a4
* Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>jle2000-01-291-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31679 138bc75d-0d04-0410-961f-82ee72b054a4
* Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>jle2000-01-141-0/+143
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31402 138bc75d-0d04-0410-961f-82ee72b054a4