aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/invoke.texi
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <mkuvyrkov@ispras.ru>2006-03-16 05:29:44 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2006-03-16 05:29:44 +0000
commit048d0d36c2021df68c27dcc308f8f0717f0537bf (patch)
tree9c0c7c41fc38a764a7476c54f865b7174e711e1d /gcc/doc/invoke.texi
parent496d7bb03214b7835638fa14d7275e89d3bec954 (diff)
downloadgcc-048d0d36c2021df68c27dcc308f8f0717f0537bf.zip
gcc-048d0d36c2021df68c27dcc308f8f0717f0537bf.tar.gz
gcc-048d0d36c2021df68c27dcc308f8f0717f0537bf.tar.bz2
ia64.c (stops_p): Added explicit initialization.
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> * config/ia64/ia64.c (stops_p): Added explicit initialization. (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn, ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global, ia64_sched_finish_global): New static functions to implement hooks from gcc_target.sched. (spec_check_no, max_uid, pending_data_specs): New static variables. (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p, ia64_spec_check_src_p): New static functions. (ia64_adjust_cost): Renamed to ia64_adjust_cost_2. (TARGET_SCHED_ADJUST_COST): Removed. (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK, TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, TARGET_SCHED_SET_SCHED_FLAGS): New macros. (update_set_flags, group_barrier_needed, set_src_needs_barrier): Fixed to handle speculation checks. (rtx_needs_barrier): Fixed to handle speculative loads and their checks. (ia64_variable_issue): Added code to count speculative loads and their checks. (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle speculative loads. (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): New enumerations. (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET): New constants. (ia64_ld_address_bypass_p): Fixed to handle speculative loads. (ia64_reorg): Reset stops_p to NULL after it is freed. * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA, UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants. (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f, chk_a. (data_speculative, control_speculative, check_load): New attributes. (mov<mode>_advanced, mov<mode>_speculative, mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced, zero_extend<mode>di2_speculative, zero_extend<mode>di2_speculative_advanced): New patterns for data and control speculative loads. (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for check loads. (advanced_load_check_clr_<mode>, speculation_check_<mode>): New pattern for data and control speculation checks. (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr, ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr, reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes): Auxiliary definitions for the patterns. * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a, 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource constraints. (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition for speculation. (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i. * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f, 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a): New resource constraints. (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition for speculation. (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i. * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec, msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, msched-in-control-spec, msched-ldc, msched-control-ldc, msched-spec-verbose, msched-prefer-non-data-spec-insns, msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path): New flags to tune speculative scheduling. * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec, msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, msched-in-control-spec, msched-ldc, msched-control-ldc, msched-spec-verbose, msched-prefer-non-data-spec-insns, msched-prefer-non-control-spec-insns, msched-count-spec-in-critical-path): Document new flags. From-SVN: r112129
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r--gcc/doc/invoke.texi115
1 files changed, 114 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f037f4b..5338419 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -549,7 +549,13 @@ Objective-C and Objective-C++ Dialects}.
-minline-sqrt-min-latency -minline-sqrt-max-throughput @gol
-mno-dwarf2-asm -mearly-stop-bits @gol
-mfixed-range=@var{register-range} -mtls-size=@var{tls-size} @gol
--mtune=@var{cpu-type} -mt -pthread -milp32 -mlp64}
+-mtune=@var{cpu-type} -mt -pthread -milp32 -mlp64 @gol
+-mno-sched-br-data-spec -msched-ar-data-spec -mno-sched-control-spec @gol
+-msched-br-in-data-spec -msched-ar-in-data-spec -msched-in-control-spec @gol
+-msched-ldc -mno-sched-control-ldc -mno-sched-spec-verbose @gol
+-mno-sched-prefer-non-data-spec-insns @gol
+-mno-sched-prefer-non-control-spec-insns @gol
+-mno-sched-count-spec-in-critical-path}
@emph{M32R/D Options}
@gccoptlist{-m32r2 -m32rx -m32r @gol
@@ -9734,6 +9740,113 @@ The 32-bit environment sets int, long and pointer to 32 bits.
The 64-bit environment sets int to 32 bits and long and pointer
to 64 bits. These are HP-UX specific flags.
+@item -mno-sched-br-data-spec
+@itemx -msched-br-data-spec
+@opindex -mno-sched-br-data-spec
+@opindex -msched-br-data-spec
+(Dis/En)able data speculative scheduling before reload.
+This will result in generation of the ld.a instructions and
+the corresponding check instructions (ld.c / chk.a).
+The default is 'disable'.
+
+@item -msched-ar-data-spec
+@itemx -mno-sched-ar-data-spec
+@opindex -msched-ar-data-spec
+@opindex -mno-sched-ar-data-spec
+(En/Dis)able data speculative scheduling after reload.
+This will result in generation of the ld.a instructions and
+the corresponding check instructions (ld.c / chk.a).
+The default is 'enable'.
+
+@item -mno-sched-control-spec
+@itemx -msched-control-spec
+@opindex -mno-sched-control-spec
+@opindex -msched-control-spec
+(Dis/En)able control speculative scheduling. This feature is
+available only during region scheduling (i.e. before reload).
+This will result in generation of the ld.s instructions and
+the corresponding check instructions chk.s .
+The default is 'disable'.
+
+@item -msched-br-in-data-spec
+@itemx -mno-sched-br-in-data-spec
+@opindex -msched-br-in-data-spec
+@opindex -mno-sched-br-in-data-spec
+(En/Dis)able speculative scheduling of the instructions that
+are dependent on the data speculative loads before reload.
+This is effective only with @option{-msched-br-data-spec} enabled.
+The default is 'enable'.
+
+@item -msched-ar-in-data-spec
+@itemx -mno-sched-ar-in-data-spec
+@opindex -msched-ar-in-data-spec
+@opindex -mno-sched-ar-in-data-spec
+(En/Dis)able speculative scheduling of the instructions that
+are dependent on the data speculative loads after reload.
+This is effective only with @option{-msched-ar-data-spec} enabled.
+The default is 'enable'.
+
+@item -msched-in-control-spec
+@itemx -mno-sched-in-control-spec
+@opindex -msched-in-control-spec
+@opindex -mno-sched-in-control-spec
+(En/Dis)able speculative scheduling of the instructions that
+are dependent on the control speculative loads.
+This is effective only with @option{-msched-control-spec} enabled.
+The default is 'enable'.
+
+@item -msched-ldc
+@itemx -mno-sched-ldc
+@opindex -msched-ldc
+@opindex -mno-sched-ldc
+(En/Dis)able use of simple data speculation checks ld.c .
+If disabled, only chk.a instructions will be emitted to check
+data speculative loads.
+The default is 'enable'.
+
+@item -mno-sched-control-ldc
+@itemx -msched-control-ldc
+@opindex -mno-sched-control-ldc
+@opindex -msched-control-ldc
+(Dis/En)able use of ld.c instructions to check control speculative loads.
+If enabled, in case of control speculative load with no speculatively
+scheduled dependent instructions this load will be emitted as ld.sa and
+ld.c will be used to check it.
+The default is 'disable'.
+
+@item -mno-sched-spec-verbose
+@itemx -msched-spec-verbose
+@opindex -mno-sched-spec-verbose
+@opindex -msched-spec-verbose
+(Dis/En)able printing of the information about speculative motions.
+
+@item -mno-sched-prefer-non-data-spec-insns
+@itemx -msched-prefer-non-data-spec-insns
+@opindex -mno-sched-prefer-non-data-spec-insns
+@opindex -msched-prefer-non-data-spec-insns
+If enabled, data speculative instructions will be choosen for schedule
+only if there are no other choices at the moment. This will make
+the use of the data speculation much more conservative.
+The default is 'disable'.
+
+@item -mno-sched-prefer-non-control-spec-insns
+@itemx -msched-prefer-non-control-spec-insns
+@opindex -mno-sched-prefer-non-control-spec-insns
+@opindex -msched-prefer-non-control-spec-insns
+If enabled, control speculative instructions will be choosen for schedule
+only if there are no other choices at the moment. This will make
+the use of the control speculation much more conservative.
+The default is 'disable'.
+
+@item -mno-sched-count-spec-in-critical-path
+@itemx -msched-count-spec-in-critical-path
+@opindex -mno-sched-count-spec-in-critical-path
+@opindex -msched-count-spec-in-critical-path
+If enabled, speculative depedencies will be considered during
+computation of the instructions priorities. This will make the use of the
+speculation a bit more conservative.
+The default is 'disable'.
+
@end table
@node M32C Options