2003-10-17 Mostafa Hagog <mustafa@il.ibm.com>
* common.opt: Add description of the new -fgcse-las flag.
* flags.h (flag_gcse_las): Declaration of global flag_gcse_las.
* gcse.c (hash_scan_set): Handle the case of store expression and
insert the memory expression to the hash table, this way we make it
possible to discover redundant loads after stores and remove them.
(pre_insert_copy_insn): moved the call to update_ld_motion_stores,
to pre_insert_copies, it is not the correct place to call it after
adding stores to be in the available expression hash table.
(pre_insert_copies): Added the call to update_ld_motion_stores when
one or more copies were inserted.
* opts.c (common_handle_option): Handle the -fgcse-las flag.
* toplev.c (flag_gcse_las): Initialization of flag_gcse_las.
* doc/invoke.tex: Document new -fgcse-las flag.
From-SVN: r72612
* haifa-sched.c (ok_for_early_schedule): New function.
(early_queue_to_ready): New function.
(schedule_block): Allow early removal of insns from Q.
(schedule_insn): Update INSN_TICK in case of premature
issue.
* common.opt (sched_stalled_insns): New flag.
(sched_stalled_insns_dep): New flag.
* flags.h: Same above flags.
* opts.c: Same as above.
* toplev.c: Same as above.
* target.h (targetm.sched.is_costly_dependence): New
hook.
* target-def.h: Same as above.
* config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
Support new flag -msched-costly-dep.
(DEFAULT_SCHED_COSTLY_DEP): Define.
* config/rs6000/rs6000.c:
(rs6000_is_costly_dependence): New function.
(is_load_insn, is_store_insn): New functions.
(is_load_insn1, is_store_insn1, is_mem_ref): New
functions.
* doc/invoke.texi (-fsched-stalled-insns-dep)
(-fsched-stalled-insns, -msched-costly-dep): Document
options.
* doc/tm.texi (is_costly_dependence): Define new
scheduler target hook.
From-SVN: r72261
* toplev.c (flag_rounding_math): New global variable.
(f_options): Add to the list of language independent options.
* flags.h (flag_rounding_math): Prototype here.
(HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
* common.opt (frounding-math): New common command line option.
* opts.c (common_handle_option): Handle OPT_frounding_math.
(set_fast_math_flags): -ffast-math clears flag_rounding_math.
* doc/invoke.texi: Document this new command line option.
From-SVN: r71032
* Makefile.in: Update.
* c-opts.c (c_common_handle_option): opt_text now contains the '-'.
* c.opt: Update documentation.
* common.opt: Add some help text.
* opts.c: Include intl.h.
(wrap_help, print_help): New.
(find_opt, handle_option, common_handle_option): opt_text now
contains the '-'. Use print_help to output help.
* opts.h (struct cl_option): New member "help".
* opts.sh: Update to handle help text output and to prepend
options with '-'.
* toplev.c (display_help): Remove some help text.
From-SVN: r69068
* final.c (debug_flush_symbol_queue): New function.
(debug_queue_symbol): New function.
(debug_free_queue): New function.
(debug_nesting): New variable.
(symbol_queue): New variable.
(symbol_queue_index): Same.
(symbol_queue_size): Same.
* debug.h (debug_flush_symbol_queue): New.
(debug_queue_symbol): New.
(debug_free_queue): New.
(debug_nesting): New.
(symbol_queue_index): New.
* dbxout.c (DBXOUT_DECR_NESTING): New macro.
(DBXOUT_DECR_NESTING_AND_RETURN): New macro.
(dbxout_init): Delay symbol output.
(dbxout_global_decl): Save, set and reset TREE_USED bit around dbxout_symbol()
call.
(dbxout_begin_function): Same.
(dbxout_finish): Free symbol queue.
(dbxout_type): Put appropriate symbols in queue.
(dbxout_symbol): Put info for symbol's type in queue. Decrement/Increment
nesting counts flush symbol queue appropriately.
(dbxout_parms): Increment dbxout nesting.
(dbxout_reg_parms): Same.
* flags.h (flag_debug_only_used_symbols): New.
* toplev.c (flag_debug_only_used_symbols): New variable.
(lang_independent_options): Add entries for new option -feliminate-unused-debug-symbols.
* common.opt: Add entry for -feliminate-unused-debug-symbols.
* opts.c (common_handle_options): Same.
* config/rs6000/darwin.h (CC1_SPEC): Interpret -gused as -feliminate-unused-debug-symbols.
* doc/invoke.texi (Debugging Options): Document -feliminate-unused-debug-symbols.
From-SVN: r68556
* common.opt: More -f switches.
* opts.c (common_handle_options): Handle them.
* toplev.c (time_report): Make extern.
(f_options): USe flag_dummy.
(decode_f_option): No need to use f_options now.
* toplev.h (flag_cprop_registers, flag_ssa, flag_ssa_ccp,
flag_ssa_dce, time_report, flag_new_regalloc): Make extern.
From-SVN: r68328
* Makefile.in: Update.
* c-opts.c (c_common_handle_option): Don't return -1.
* common.opt: New switches.
* opts.c: Include rtl.h, ggc.h and output.h.
(find_opt): Only stop searching when input switch compares
less than the stored switch. Continue searching if greater.
(handle_option): No need to handle negative return values.
(common_handle_option): Handle new switches.
(set_fast_math_flags, fast_math_flags_set_p): New.
* toplev.c (set_fast_math_flags, fast_math_flags_set_p):
Move to opts.c.
(decode_f_option): Some switches moved to opts.c.
(parse_options_and_default_flags): No need to cater for negative
return values.
f:
* top.c (ffe_handle_option): No need to return -1 any more.
From-SVN: r68307
* c-opts.c (c_common_handle_option): s/on/value/.
(OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value
directly rather than converting the argument.
* c.opt: Update docs. Use UInteger where appropriate.
* common.opt: Use UInteger where appropriate.
* opts.c (integral_argument): New.
(handle_argument): Handle integral arguments, and optional
joined arguments.
(common_handle_option): Update.
* opts.h (CL_MISSING_OK, CL_UINTEGER): New.
* opts.sh: Handle JoinedOrMissing and UInteger flags.
java:
* lang.c (java_handle_option): Special-casing of optional
joined arguments no longer needed.
* lang.opt: Update switches that take optional argument.
From-SVN: r67999
* Makefile.in: Update to use common.opt and lang_opt_files.
(c-options.c, c-options.h): Remove.
(options.c, options.h): Add.
* c-opts.c: Include options.h not c-options.h.
* common.opt: New file.
* configure, configure.in: Add lang_opt_files.
* opts.c: Include flags.h and diagnostic.h.
(common_handle_option): New.
(handle_option): Update to recognize common options and all
language-dependent options.
* opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New.
(struct cl_option): Make flags of type int.
* opts.h: Flag option with front ends to which it applies.
Handle duplicate options.
* toplev.c (filename): Remove.
(independent_decode_option): Don't handle filenames and -quiet.
(process_options, do_compile): Update.
ada:
* Make-lang.in: Update to use options.c and options.h.
* misc.c: Include options.h not aoptions.h.
(gnat_handle_option): Abort on unrecognized switch.
(gnat_init_options): Request Ada switches.
cp:
* Make-lang.in: Remove c-options.o.
f:
* Make-lang.in: Update to use options.c and options.h.
* top.c: Include options.h not f-options.h.
(gnat_handle_option): Abort on unrecognized switch.
(ffe_init_options): From com.c. Request F77 options.
(ffe_handle_options): Abort on unrecognized switch.
* com.c (ffe_init_options): Move to top.c.
* top.h (fee_init_options): New.
java:
* Make-lang.in: Update to use options.c and options.h.
* lang.c: Include options.h not j-options.h.
(java_handle_option): Abort on unrecognized option.
(java_init_options): Request Java switches.
treelang:
* Make-lang.in: Update to use options.c and options.h.
* tree1.c: Include options.h not t-options.h.
(treelang_init_options): New.
(treelang_handle_option): Abort on unrecognized switch.
* treetree.c (LANG_HOOKS_INIT_OPTIONS): Override.
* treetree.h (treelang_init_options): New.
From-SVN: r67941