Age | Commit message (Collapse) | Author | Files | Lines |
|
* simplify-rtx.c (cfc_args): add "unordered" field.
(check_fold_consts): Set unordered field.
(simplify_relational_operation): Simplify the unordered
comparisons.
* reg-stack.c (swap_rtx_condition): Ensure that the transformation
is valid.
* emit-rtl.c (try_split): Fix code to mark labels.
* jump.c (mark_jump_label): Make global.
* rtl.h (mark_jump_label): Declare.
* predict.c (estimate_probability): Handle unordred comparisons.
From-SVN: r38711
|
|
regno_pointer_flag_length to...
* function.h (emit_status): Delete member regno_pointer_flag and
rename regno_pointer_flag_length to regno_pointer_align_length.
Delete define for REGNO_POINTER_FLAG.
* integrate.h (inline_remap): Delete member regno_pointer_flag.
Add member x_regno_reg_rtx.
* rtl.h (rtx_def): Use frame_related bit to indicate register is
a pointer in REG expressions. Define REG_POINTER macro.
* alias.c (find_base_value, find_base_term): Use REG_POINTER
instead of REGNO_POINTER_FLAG.
* combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
* emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
of regno_pointer_flag_length. Remove code which refers to
regno_pointer_flag.
(mark_reg_pointer): Use REG_POINTER.
(free_emit_status): Remove code which refers to regno_pointer_flag.
(init_emit, mark_emit_status): Likewise.
* flow.c (dump_flow_info): Likewise.
* function.c (preserve_temp_slots): Likewise.
* integrate.c (expand_inline_function, copy_rtx_and_substitute):
Use x_regno_reg_rtx instead of regno_pointer_flag for function
pointer determination in map.
* loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
* predict.c (estimate_probability): Likewise.
* regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
* unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
regno_pointer_flag for function pointer determination in map.
* convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
REG_POINTER.
* pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
Use REG_POINTER.
(restore_unscaled_index_insn_codes): Revise comment.
From-SVN: r37863
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
collection of static branch predictors.
* predict.c (estimate_probability): Added the pointer heuristic to
the collection of static branch predictors.
From-SVN: r32093
|
|
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
|
|
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
|