diff options
author | Jan Hubicka <jh@suse.cz> | 2001-12-13 12:34:11 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-12-13 11:34:11 +0000 |
commit | 0dd0e980b5c9b23a3749647c69603f8a29eea4c3 (patch) | |
tree | 370e6c425d4395a411fdf96a2629203ee94049f1 /gcc/doc | |
parent | 85230e5255cd8dc23a0d0440992ac24a119b32a5 (diff) | |
download | gcc-0dd0e980b5c9b23a3749647c69603f8a29eea4c3.zip gcc-0dd0e980b5c9b23a3749647c69603f8a29eea4c3.tar.gz gcc-0dd0e980b5c9b23a3749647c69603f8a29eea4c3.tar.bz2 |
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
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/invoke.texi | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 66314f1..91fe9bc 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -272,7 +272,7 @@ in the following sections. -fno-inline -fno-math-errno -fno-peephole -fno-peephole2 @gol -funsafe-math-optimizations -fno-trapping-math @gol -fomit-frame-pointer -foptimize-register-move @gol --foptimize-sibling-calls -freduce-all-givs @gol +-foptimize-sibling-calls -fprefetch-loop-arrays -freduce-all-givs @gol -fregmove -frename-registers @gol -frerun-cse-after-loop -frerun-loop-opt @gol -fschedule-insns -fschedule-insns2 @gol @@ -3570,6 +3570,10 @@ the loop is entered. This usually makes programs run more slowly. @option{-funroll-all-loops} implies the same options as @option{-funroll-loops}, +@item -fprefetch-loop-arrays +@opindex fprefetch-loop-arrays +If supported by the target machine, generate instructions to prefetch +memory to improve the performance of loops that access large arrays. @item -fmove-all-movables @opindex fmove-all-movables @@ -7476,10 +7480,13 @@ computers: @table @gcctabopt @item -mcpu=@var{cpu-type} @opindex mcpu -Assume the defaults for the machine type @var{cpu-type} when scheduling -instructions. The choices for @var{cpu-type} are @samp{i386}, -@samp{i486}, @samp{i586}, @samp{i686}, @samp{pentium}, -@samp{pentiumpro}, @samp{pentium4}, @samp{k6}, and @samp{athlon} +Tune to @var{cpu-type} everything applicable about the generated code, except +for the ABI and the set of available instructions. The choices for +@var{cpu-type} are @samp{i386}, @samp{i486}, @samp{i586}, @samp{i686}, +@samp{pentium}, @samp{pentium-mmx}, @samp{pentiumpro}, @samp{pentium2}, +@samp{pentium3}, @samp{pentium4}, @samp{k6}, @samp{k6-2}, @samp{k6-3}, +@samp{athlon}, @samp{athlon-tbird}, @samp{athlon-4}, @samp{athlon-xp} +and @samp{athlon-mp}. While picking a specific @var{cpu-type} will schedule things appropriately for that particular chip, the compiler will not generate any code that |