]> gcc.gnu.org Git - gcc.git/commit - gcc/doc/invoke.texi
predict.c (estimate_probability): Reorganize opcode heuristics.
authorJan Hubicka <jh@suse.cz>
Thu, 13 Dec 2001 11:34:11 +0000 (12:34 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 13 Dec 2001 11:34:11 +0000 (11:34 +0000)
commit0dd0e980b5c9b23a3749647c69603f8a29eea4c3
tree370e6c425d4395a411fdf96a2629203ee94049f1
parent85230e5255cd8dc23a0d0440992ac24a119b32a5
predict.c (estimate_probability): Reorganize opcode heuristics.

* predict.c (estimate_probability): Reorganize opcode heuristics.
* predict.def (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL,
PRED_FPOPCODE): New.

* i386.c (override_options): Recognize various CPU variants and set
SSE/MMX/3dNOW flags accordingly.
* i386.h (MASK_MMX_SET, MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET,
MASK_3DNOW_A_SET): New.
(MASK_ACCUMULATE_OUTGOING_ARGS_SET): New.
(MASK_NO_ACCUMULATE_OUTGOING_ARGS): Delete.
(MASK_*): Renumber.
(TARGET_FLAGS): Use new masks.
(CPP_CPU_SPECS): Recognize new CPU variants.
* invoke.texi (-mcpu): Update documentation.

* flags.h (flag_prefetch_loop_arrays): Declare.
* loop.h (LOOP_PREFETCH): Define new constant.
* loop.c (strength_reduce): Call emit_prefetch_instructions.
(MAX_PREFETCHES, PREFETCH_BLOCKS_BEFORE_LOOP_MAX,
PREFETCH_BLOCKS_BEFORE_LOOP_MIN, PREFETCH_BLOCKS_IN_LOOP_MIN): New
constants.
(check_store_data): New structure.
(check_store, emit_prefetch_instructions, rtx_equal_for_prefetch_p):
New functions.
* toplev.c: Include insn-flags.h.
(flag_prefetch_loop_arrays): New global variable.
(lang_independent_option): Add -fprefetch-loop-arrays.
(rest_of_compilation) Pass LOOP_PREFETCH when flag_prefetch_loop_arrays
        is set.
* Makefile.in (toplev.c): Depend on insn-flags.h.
* invoke.texi (-fprefetch-loop-arrays): Document.

* predict.c (estimate_probability): Distribute the loop exit
probability according to number of exit edges.

* cfgcleanup.c (insns_match_p): Break out from ...;
(flow_find_cross_jump): ... here;
(outgoing_edges_match): Add parameter MODE; attempt to match everything
except for tablejumps.
(try_crossjump_to_edge): Accept complex edges.
(try_crossjump_bb): Likewise.

From-SVN: r47969
12 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/cfgcleanup.c
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/doc/invoke.texi
gcc/flags.h
gcc/loop.c
gcc/loop.h
gcc/predict.c
gcc/predict.def
gcc/toplev.c
This page took 0.062026 seconds and 5 git commands to generate.