* basic-block.h (EDGE_FREQUENCY): New macro.
* bb-reorder (fixup_reorder_chain): Set counts and frequencies
for new BB/edges.
* flow.c (find_sub_basic_blocks): Likewise.
(try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY
(redirect_edge_and_branch): Use EDGE_FREQUENCY.
* predict.c (DEF_PREDICTOR): New argument FLAGS.
(HITRATE): New macro.
(PRED_FLAG_FIRST_MATCH): New constant.
(predictor_info): New field flgags.
(combine_predictions_for_insn): Use DS theory to combine
probabilities; set the edge probabilities when finished.
(estimate_probability): Avoid duplicated matches
of LOOP_BRANCH heuristics for nested loops; update comment.
* predict.def: Add flags for each prediction, set probabilities
according to B&L paper.
* predict.h (DEF_PREDICTOR): New argument FLAGS.
* profile.c (compute_branch_probabilities): Cleanup way the edge
probabilities are computed and REG_BR_PROB notes are dropped; if
values does not match, emit error.
(init_branch_prob): Do error instead of warning when profile driven
feedback is missing or corrupt.
From-SVN: r44439
* ifcvt.c (noce_get_alt_condition): If the condition is a compare
against a constant, try to adjust the compare to have the desired
constant in it so that min/max optimizations happen more often.
From-SVN: r44435
cp:
* class.c (mark_primary_virtual_base): Don't adjust base
offsets here.
(dfs_unshared_virtual_bases): Adjust them here.
(mark_primary_bases): Explain why we adjust at the end.
testsuite:
* g++.dg/abi/vbase8-21.C: New test.
From-SVN: r44425
cp:
* class.c (finish_struct_1): When copying the primary base's
VFIELD, make sure we find it is at offset zero.
testsuite:
* g++.dg/abi/vbase8-10.C: New test.
From-SVN: r44421
* simplify-rtx.c (avoid_constant_pool_reference): Export.
* rtl.h (avoid_constant_pool_reference): Declare it.
* dwarf2out.c (add_location_or_const_value_attribute): Use it.
(add_const_value_attribute): Use add_AT_unsigned for unsigned values.
From-SVN: r44411
* rtl.h (cleanup_barriers): Declare.
* jump.c (cleanup_barriers): New function.
* toplev.c (rest_of_compilation): Call cleanup_barriers
before loop optimizer and after bb_reorder.
* flow.c (back_edge_of_syntactic_loop_p): New.
(split_edge): Use it.
From-SVN: r44409
* basic-block.h (PROP_ALLOW_CFG_CHANGES): Define.
(PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES.
(propagate_block): Update prototype.
* flow.c (update_life_info): Simplify the CFG and
recalculate the global regs which are alive when
removing dead code during a global update.
(propagate_block): Return non-zero if an INSN is
deleted.
From-SVN: r44403
2001-07-26 Andrew MacLeod <amacleod@redhat.com>
* params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to
limit length of dependancy flush list.
* params.h (MAX_PENDING_LIST_LENGTH): Define.
* sched-int.h (struct deps): Add pending_flush_length field.
* sched-deps.c (flush_pending_lists): Last_pending_memory_flush now
has 1 element in it.
(sched_analyze_1): Use MAX_PENDING_LIST_LENGTH.
(sched_analyze): After a jump, if the pending memory flush list is too
large, flush the pending lists.
(init_deps): Initialize pending_flush_length to 0.
* doc/invoke.texi (max_pending_list_length): Document parameter.
From-SVN: r44398
* java/util/Calendar.java (set): Never recompute fields here. They
will already be set if someone set time explicitly, and it can cause
problems to do so. Don't invalidate AM_PM setting if HOUR is set.
* java/util/GregorianCalendar.java (computeTime): Don't ignore an
HOUR setting if AM_PM is set. Don't try to ensure the HOUR value is
sane.
* java/text/SimpleDateFormat.java (defaultCentury): New field.
(readObject): Call set2DigitYearStart if appropriate so that
defaultCentury is calculated.
(SimpleDateFormat): Don't bother clearing calendar here. Call
computeCenturyStart().
(set2DigitYearStart): Calculate and set defaultCentury.
(format): Don't clone the calendar. Use "calendar" not "theCalendar"
everywhere.
(parse): Likewise. If the pattern is "y" or "yy" and it found exactly
2 numeric digits, use the 80-20 heuristic to parse the value into a
default century based on defaultCenturyStart.
(computeCenturyStart): Rewritten. Call set2DigitYearStart().
From-SVN: r44395
* function.c (locate_and_pad_parm): Also pad initial offset
so that the total argument size also includes the padding.
* gensupport.c (alter_output_for_insn): Correct enable checking failure
change XSTR to XTMPL.
(process_one_cond_exec): Likewise
From-SVN: r44377
2001-07-25 H.J. Lu <hjl@gnu.org>
* configure.target (cpu_include_dir): Set to `config/cpu/mips'
for mips.
* config/cpu/mips/bits/atomicity.h: New.
From-SVN: r44375
2001-07-25 H.J. Lu <hjl@gnu.org>
* configure.target (cpu_include_dir): Set to `config/cpu/mips'
for mips.
* config/cpu/mips/bits/atomicity.h: New.
[[Split portion of a mixed commit.]]
From-SVN: r44374.2
* dbxout.c: Consistently use putc instead of fputc.
(print_wide_int): New function; call instead of direct fprintf.
(dbxout_type_index): Adjust calls of CHARS to be more accurate.
(dbxout_type_fields, dbxout_type_method_1): Likewise.
(dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise.
(print_int_cst_octal): Likewise.
(print_octal): Show we wrote characters.
(dbxout_type): Set have_used_extensions in more places.
From-SVN: r44367