2003-06-14 12:26:36 +00:00
|
|
|
; Options for the language- and target-independent parts of the compiler.
|
2004-06-14 16:18:01 +02:00
|
|
|
|
2010-01-03 17:03:38 +00:00
|
|
|
; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
2008-01-18 15:46:43 +00:00
|
|
|
; Free Software Foundation, Inc.
|
2003-06-14 12:26:36 +00:00
|
|
|
;
|
|
|
|
; This file is part of GCC.
|
|
|
|
;
|
|
|
|
; GCC is free software; you can redistribute it and/or modify it under
|
|
|
|
; the terms of the GNU General Public License as published by the Free
|
2007-07-26 08:37:01 +00:00
|
|
|
; Software Foundation; either version 3, or (at your option) any later
|
2003-06-14 12:26:36 +00:00
|
|
|
; version.
|
2006-05-18 22:16:23 +00:00
|
|
|
;
|
2003-06-14 12:26:36 +00:00
|
|
|
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
|
|
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
; for more details.
|
2006-05-18 22:16:23 +00:00
|
|
|
;
|
2003-06-14 12:26:36 +00:00
|
|
|
; You should have received a copy of the GNU General Public License
|
2007-07-26 08:37:01 +00:00
|
|
|
; along with GCC; see the file COPYING3. If not see
|
|
|
|
; <http://www.gnu.org/licenses/>.
|
2003-06-14 12:26:36 +00:00
|
|
|
|
2007-11-08 13:47:41 +00:00
|
|
|
; See the GCC internals manual (options.texi) for a description of this file's format.
|
2003-06-14 12:26:36 +00:00
|
|
|
|
|
|
|
; Please try to keep this file in ASCII collating order.
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
###
|
|
|
|
Driver
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
-help
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver
|
2003-07-08 05:25:39 +00:00
|
|
|
Display this information
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
2007-02-12 16:25:14 +00:00
|
|
|
-help=
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver Report Joined
|
2007-02-12 16:25:14 +00:00
|
|
|
--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
|
2003-06-18 06:00:06 +00:00
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
-target-help
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver
|
2007-02-12 16:25:14 +00:00
|
|
|
Alias for --help=target
|
|
|
|
|
2009-04-16 12:57:50 +00:00
|
|
|
;; The following four entries are to work around the gcc driver
|
2007-02-12 16:25:14 +00:00
|
|
|
;; program's insatiable desire to turn options starting with a
|
|
|
|
;; double dash (--) into options starting with a dash f (-f).
|
|
|
|
fhelp
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver Var(help_flag)
|
2007-02-12 16:25:14 +00:00
|
|
|
|
|
|
|
fhelp=
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver Joined
|
2007-02-12 16:25:14 +00:00
|
|
|
|
|
|
|
ftarget-help
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver
|
2007-02-12 16:25:14 +00:00
|
|
|
|
2009-04-16 12:57:50 +00:00
|
|
|
fversion
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver
|
2009-04-16 12:57:50 +00:00
|
|
|
|
2007-02-12 16:25:14 +00:00
|
|
|
-param
|
|
|
|
Common Separate
|
|
|
|
--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
-sysroot=
|
|
|
|
Driver JoinedOrMissing
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
-version
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver
|
|
|
|
|
|
|
|
B
|
|
|
|
Driver Joined Separate
|
|
|
|
|
|
|
|
E
|
|
|
|
Driver
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
options.
* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
"-l".
* cppspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
* doc/tm.texi: Regenerate.
* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
(driver_handle_option): Allow driver options needing no special
processing.
(process_command): Decode options before call to
lang_specific_driver. Pass decoded options to
lang_specific_driver.
* gcc.h (lang_specific_driver): Update prototype.
* gccspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* opts-common.c (option_ok_for_language, generate_option,
generate_option_input_file): New.
(decode_cmdline_option): Use option_ok_for_language.
(decode_cmdline_options_to_array): Use generate_option_input_file.
(handle_generated_option): Use generate_option.
* opts.h (generate_option, generate_option_input_file): Declare.
cp:
* Make-lang.in (g++spec.o): Update dependencies.
* g++spec.c: Include opts.h
(MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
(lang_specific_driver): Use cl_decoded_option structures.
fortran:
* Make-lang.in (gfortranspec.o): Update dependencies.
* gfortranspec.c: Include coretypes.h before gcc.h. Include
opts.h.
(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
(g77_xargc): Make unsigned.
(g77_xargv): Change to g77_x_decoded_options.
(g77_newargc): Make unsigned.
(g77_newargv): Change to g77_new_decoded_options.
(strings_same, options_same): New.
(append_arg): Use cl_decoded_option structures.
(append_option): New.
(add_arg_libgfortran): New.
(lang_specific_driver): Use cl_decoded_option structures.
java:
* Make-lang.in (jvspec.o): Update dependencies.
* jvspec.c: Include opts.h.
(PARAM_ARG): Remove.
(find_spec_file): Do not add leading -specs=.
(lang_specific_driver): Use cl_decoded_option structures.
* lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
extdirs, fmain=, s-bc-abi): New options.
From-SVN: r163459
2010-08-22 13:19:01 +01:00
|
|
|
L
|
|
|
|
Driver Joined Separate
|
|
|
|
|
2003-06-18 06:00:06 +00:00
|
|
|
O
|
2008-07-23 10:28:06 +00:00
|
|
|
Common JoinedOrMissing Optimization
|
2003-07-08 05:25:39 +00:00
|
|
|
-O<number> Set optimization level to <number>
|
2003-06-18 06:00:06 +00:00
|
|
|
|
|
|
|
Os
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Optimization
|
2003-07-08 05:25:39 +00:00
|
|
|
Optimize for space rather than speed
|
2003-06-18 06:00:06 +00:00
|
|
|
|
2010-05-25 09:43:59 +00:00
|
|
|
Ofast
|
|
|
|
Common Optimization
|
|
|
|
Optimize for speed disregarding exact standards compliance
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
S
|
|
|
|
Driver
|
|
|
|
|
2003-06-18 06:00:06 +00:00
|
|
|
W
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Common RejectNegative Warning Alias(Wextra)
|
2003-07-09 05:28:04 +00:00
|
|
|
This switch is deprecated; use -Wextra instead
|
2003-06-18 06:00:06 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Wa,
|
|
|
|
Driver JoinedOrMissing
|
|
|
|
|
|
|
|
Wl,
|
|
|
|
Driver JoinedOrMissing
|
|
|
|
|
|
|
|
Wp,
|
|
|
|
Driver JoinedOrMissing
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Waggregate-return
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_aggregate_return) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about returning structures, unions or arrays
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2007-01-18 13:00:33 +00:00
|
|
|
Warray-bounds
|
2007-02-21 15:40:29 +00:00
|
|
|
Common Var(warn_array_bounds) Warning
|
2007-01-18 13:00:33 +00:00
|
|
|
Warn if an array is accessed out of bounds
|
|
|
|
|
2005-05-25 00:18:19 -04:00
|
|
|
Wattributes
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_attributes) Init(1) Warning
|
2005-05-25 00:18:19 -04:00
|
|
|
Warn about inappropriate attribute usage
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wcast-align
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_cast_align) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about pointer casts which increase alignment
|
2003-06-20 22:56:36 +00:00
|
|
|
|
diagnostic.h (diagnostic_override_option_index): New macro to set a diagnostic's option_index.
* diagnostic.h (diagnostic_override_option_index): New macro to
set a diagnostic's option_index.
* c-tree.h (c_cpp_error): Add warning reason argument.
* opts.c (_warning_as_error_callback): New.
(register_warning_as_error_callback): Store callback for
warnings enabled via enable_warning_as_error.
(enable_warning_as_error): Call callback, minor code tidy.
* opts.h (register_warning_as_error_callback): Declare.
* c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
response to -Werror=.
(c_common_init_options): Register warning_as_error_callback in opts.c.
* common.opt: Add -Wno-cpp option.
* c-common.c (struct reason_option_codes_t): Map cpp warning
reason codes to gcc option indexes.
* (c_option_controlling_cpp_error): New function, lookup the gcc
option index for a cpp warning reason code.
* (c_cpp_error): Add warning reason argument, call
c_option_controlling_cpp_error for diagnostic_override_option_index.
* doc/invoke.texi: Document -Wno-cpp.
* cpp.c (cb_cpp_error): Add warning reason argument, set a value
for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
* directives.c (do_diagnostic): Add warning reason argument,
call appropriate error reporting function for code.
(directive_diagnostics): Call specific warning functions with
warning reason where appropriate.
(do_error, do_warning, do_pragma_dependency): Add warning reason
argument to do_diagnostic calls.
* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
_cpp_create_definition): Call specific warning functions with
warning reason where appropriate.
* Makefile.in: Add new diagnostic functions to gettext translations.
* include/cpplib.h (struct cpp_callbacks): Add warning reason code
to error callback.
(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
warning reason codes.
(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
cpp_warning_with_line, cpp_pedwarning_with_line,
cpp_warning_with_line_syshdr): New specific error reporting functions.
* pch.c (cpp_valid_state): Call specific warning functions with
warning reason where appropriate.
* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
diagnostic handlers.
(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
cpp_warning_with_line, cpp_pedwarning_with_line,
cpp_warning_with_line_syshdr): New specific error reporting functions.
* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
specific warning functions with warning reason where appropriate.
* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
warn_about_normalization, lex_identifier_intern, lex_identifier,
_cpp_lex_direct): Ditto.
* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
narrow_str_to_charconst): Ditto.
* gcc.dg/cpp/warn-undef-2.c: New.
* gcc.dg/cpp/warn-traditional-2.c: New.
* gcc.dg/cpp/warn-comments-2.c: New.
* gcc.dg/cpp/warning-directive-1.c: New.
* gcc.dg/cpp/warn-long-long.c: New.
* gcc.dg/cpp/warn-traditional.c: New.
* gcc.dg/cpp/warn-variadic-2.c: New.
* gcc.dg/cpp/warn-undef.c: New.
* gcc.dg/cpp/warn-normalized-1.c: New.
* gcc.dg/cpp/warning-directive-2.c: New.
* gcc.dg/cpp/warn-long-long-2.c: New.
* gcc.dg/cpp/warn-variadic.c: New.
* gcc.dg/cpp/warn-normalized-2.c: New.
* gcc.dg/cpp/warning-directive-3.c: New.
* gcc.dg/cpp/warn-deprecated-2.c: New.
* gcc.dg/cpp/warn-trigraphs-1.c: New.
* gcc.dg/cpp/warn-multichar-2.c: New.
* gcc.dg/cpp/warn-normalized-3.c: New.
* gcc.dg/cpp/warning-directive-4.c: New.
* gcc.dg/cpp/warn-unused-macros.c: New.
* gcc.dg/cpp/warn-trigraphs-2.c: New.
* gcc.dg/cpp/warn-cxx-compat-2.c: New.
* gcc.dg/cpp/warn-cxx-compat.c: New.
* gcc.dg/cpp/warn-redefined.c: New.
* gcc.dg/cpp/warn-trigraphs-3.c: New.
* gcc.dg/cpp/warn-unused-macros-2.c: New.
* gcc.dg/cpp/warn-deprecated.c: New.
* gcc.dg/cpp/warn-trigraphs-4.c: New.
* gcc.dg/cpp/warn-redefined-2.c: New.
* gcc.dg/cpp/warn-comments.c: New.
* gcc.dg/cpp/warn-multichar.c: New.
* g++.dg/cpp/warning-directive-1.C: New.
* g++.dg/cpp/warning-directive-2.C: New.
* g++.dg/cpp/warning-directive-3.C: New.
* g++.dg/cpp/warning-directive-4.C: New.
* gfortran.dg/warning-directive-1.F90: New.
* gfortran.dg/warning-directive-3.F90: New.
* gfortran.dg/warning-directive-2.F90: New.
* gfortran.dg/warning-directive-4.F90: New.
From-SVN: r158079
2010-04-07 17:18:10 +00:00
|
|
|
Wcpp
|
|
|
|
Common Var(warn_cpp) Init(1) Warning
|
|
|
|
Warn when a #warning directive is encountered
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wdeprecated-declarations
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_deprecated_decl) Init(1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about uses of __attribute__((deprecated)) declarations
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wdisabled-optimization
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_disabled_optimization) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when an optimization pass is disabled
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Werror
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Var(warnings_are_errors)
|
2003-07-09 05:28:04 +00:00
|
|
|
Treat all warnings as errors
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2006-01-18 15:02:42 -05:00
|
|
|
Werror=
|
|
|
|
Common Joined
|
|
|
|
Treat specified warning as error
|
|
|
|
|
2003-06-18 06:00:06 +00:00
|
|
|
Wextra
|
2009-05-03 19:14:06 +00:00
|
|
|
Common Var(extra_warnings) Warning
|
2003-07-08 05:25:39 +00:00
|
|
|
Print extra (possibly unwanted) warnings
|
2003-06-18 06:00:06 +00:00
|
|
|
|
2004-04-30 05:29:23 +00:00
|
|
|
Wfatal-errors
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Var(flag_fatal_errors)
|
2004-04-30 05:29:23 +00:00
|
|
|
Exit on the first error occurred
|
|
|
|
|
2008-02-20 21:19:14 +00:00
|
|
|
Wframe-larger-than=
|
|
|
|
Common RejectNegative Joined UInteger
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
|
2008-02-20 21:19:14 +00:00
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Winline
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_inline) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when an inlined function cannot be inlined
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wlarger-than-
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
|
2008-02-26 14:01:02 +00:00
|
|
|
|
|
|
|
Wlarger-than=
|
|
|
|
Common RejectNegative Joined UInteger Warning
|
|
|
|
-Wlarger-than=<number> Warn if an object is larger than <number> bytes
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2005-07-21 07:24:34 +00:00
|
|
|
Wunsafe-loop-optimizations
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_unsafe_loop_optimizations) Warning
|
2005-07-21 07:24:34 +00:00
|
|
|
Warn if the loop cannot be optimized due to nontrivial assumptions.
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wmissing-noreturn
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_missing_noreturn) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about functions which might be candidates for __attribute__((noreturn))
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2008-03-20 16:37:47 +00:00
|
|
|
Wmudflap
|
|
|
|
Common Var(warn_mudflap) Init(1) Warning
|
|
|
|
Warn about constructs not instrumented by -fmudflap
|
|
|
|
|
2006-05-01 04:27:15 +00:00
|
|
|
Woverflow
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_overflow) Init(1) Warning
|
2006-05-01 04:27:15 +00:00
|
|
|
Warn about overflow in arithmetic expressions
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wpacked
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_packed) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when the packed attribute has no effect on struct layout
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wpadded
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_padded) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when padding is required to align structure members
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wshadow
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_shadow) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when one local variable shadows another
|
2003-06-20 22:56:36 +00:00
|
|
|
|
c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
(TARGET_INITIALIZER): Add them.
* target.h (struct gcc_target): Add stack_protect_guard and
stack_protect_fail.
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
* doc/md.texi (stack_protect_set, stack_protect_test): New.
* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101348
2005-06-27 00:41:16 -07:00
|
|
|
Wstack-protector
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_stack_protect) Warning
|
c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
(TARGET_INITIALIZER): Add them.
* target.h (struct gcc_target): Add stack_protect_guard and
stack_protect_fail.
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
* doc/md.texi (stack_protect_set, stack_protect_test): New.
* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101348
2005-06-27 00:41:16 -07:00
|
|
|
Warn when not issuing stack smashing protection for some reason
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wstrict-aliasing
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about code which might break strict aliasing rules
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2004-03-10 06:02:55 +00:00
|
|
|
Wstrict-aliasing=
|
2010-06-12 01:13:23 +01:00
|
|
|
Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
|
2004-03-10 06:02:55 +00:00
|
|
|
Warn about code which might break strict aliasing rules
|
|
|
|
|
2007-02-13 22:34:45 +00:00
|
|
|
Wstrict-overflow
|
2007-02-21 15:40:29 +00:00
|
|
|
Common Warning
|
2007-02-13 22:34:45 +00:00
|
|
|
Warn about optimizations that assume that signed overflow is undefined
|
|
|
|
|
|
|
|
Wstrict-overflow=
|
2010-06-12 01:13:23 +01:00
|
|
|
Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
|
2007-02-13 22:34:45 +00:00
|
|
|
Warn about optimizations that assume that signed overflow is undefined
|
|
|
|
|
2010-04-27 20:22:54 +00:00
|
|
|
Wsuggest-attribute=const
|
|
|
|
Common Var(warn_suggest_attribute_const) Warning
|
|
|
|
Warn about functions which might be candidates for __attribute__((const))
|
|
|
|
|
|
|
|
Wsuggest-attribute=pure
|
|
|
|
Common Var(warn_suggest_attribute_pure) Warning
|
|
|
|
Warn about functions which might be candidates for __attribute__((pure))
|
|
|
|
|
2010-06-11 14:29:53 +02:00
|
|
|
Wsuggest-attribute=noreturn
|
|
|
|
Common Var(warn_suggest_attribute_noreturn) Warning
|
|
|
|
Warn about functions which might be candidates for __attribute__((noreturn))
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wswitch
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_switch) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about enumerated switches, with no default, missing a case
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wswitch-default
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_switch_default) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about enumerated switches missing a \"default:\" statement
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wswitch-enum
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_switch_enum) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about all enumerated switches missing a specific case
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wsystem-headers
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(warn_system_headers) Warning
|
2003-07-11 05:35:06 +00:00
|
|
|
Do not suppress warnings from system headers
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2010-07-15 05:46:36 +00:00
|
|
|
Wtrampolines
|
|
|
|
Common Var(warn_trampolines) Warning
|
|
|
|
Warn whenever a trampoline is generated
|
|
|
|
|
2008-02-24 11:40:32 -05:00
|
|
|
Wtype-limits
|
|
|
|
Common Var(warn_type_limits) Init(-1) Warning
|
|
|
|
Warn if a comparison is always true or always false due to the limited range of the data type
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wuninitialized
|
2009-05-03 19:14:06 +00:00
|
|
|
Common Var(warn_uninitialized) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn about uninitialized automatic variables
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wunreachable-code
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-01-05 12:30:30 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2003-06-18 06:00:06 +00:00
|
|
|
Wunused
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused) Init(0) Warning
|
2003-07-08 05:25:39 +00:00
|
|
|
Enable all -Wunused- warnings
|
2003-06-18 06:00:06 +00:00
|
|
|
|
re PR c/18624 (GCC does not detect local variable set but never used)
PR c/18624
* tree.h (DECL_READ_P): Define.
(struct tree_decl_common): Add decl_read_flag.
* c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
a set but not used warning.
(merge_decls): Merge DECL_READ_P flag.
(finish_decl, build_compound_literal): Set DECL_READ_P flag.
(finish_function): Issue -Wunused-but-set-parameter diagnostics.
* c-common.c (handle_used_attribute, handle_unused_attribute):
Likewise.
* c-tree.h (default_function_array_read_conversion, mark_exp_read):
New prototypes.
* c-typeck.c (default_function_array_read_conversion, mark_exp_read):
New functions.
(default_conversion, c_process_expr_stmt): Call mark_exp_read.
* c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
c_parser_binary_expression, c_parser_cast_expression,
c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
Call default_function_array_read_conversion instead of
default_function_array_conversion where needed.
(c_parser_unary_expression, c_parser_conditional_expression,
c_parser_postfix_expression_after_primary, c_parser_initelt):
Likewise. Call mark_exp_read where needed.
(c_parser_statement_after_labels, c_parser_asm_operands,
c_parser_typeof_specifier, c_parser_sizeof_expression,
c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
where needed.
* common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
New.
* toplev.c (warn_unused_but_set_variable): Default to warn_unused.
(warn_unused_but_set_parameter): Default to warn_unused
&& extra_warnings.
* doc/invoke.texi: Document -Wunused-but-set-variable and
-Wunused-but-set-parameter.
* objc-act.c (finish_var_decl, objc_begin_catch_clause,
really_start_method, get_super_receiver, handle_class_ref): Set
DECL_READ_P in addition to TREE_USED.
* gcc.dg/Wunused-var-1.c: New test.
* gcc.dg/Wunused-var-2.c: New test.
* gcc.dg/Wunused-var-3.c: New test.
* gcc.dg/Wunused-var-4.c: New test.
* gcc.dg/Wunused-var-5.c: New test.
* gcc.dg/Wunused-var-6.c: New test.
* gcc.dg/Wunused-parm-1.c: New test.
From-SVN: r158086
2010-04-07 22:33:36 +02:00
|
|
|
Wunused-but-set-parameter
|
|
|
|
Common Var(warn_unused_but_set_parameter) Init(-1) Warning
|
|
|
|
Warn when a function parameter is only set, otherwise unused
|
|
|
|
|
|
|
|
Wunused-but-set-variable
|
|
|
|
Common Var(warn_unused_but_set_variable) Init(-1) Warning
|
|
|
|
Warn when a variable is only set, otherwise unused
|
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
Wunused-function
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused_function) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when a function is unused
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wunused-label
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused_label) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when a label is unused
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wunused-parameter
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused_parameter) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when a function parameter is unused
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wunused-value
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused_value) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when an expression value is unused
|
2003-06-20 22:56:36 +00:00
|
|
|
|
|
|
|
Wunused-variable
|
2008-08-08 23:15:31 +00:00
|
|
|
Common Var(warn_unused_variable) Init(-1) Warning
|
2003-07-09 05:28:04 +00:00
|
|
|
Warn when a variable is unused
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2007-01-25 12:35:13 +00:00
|
|
|
Wcoverage-mismatch
|
2010-05-04 23:45:58 +00:00
|
|
|
Common Var(warn_coverage_mismatch) Init(1) Warning
|
|
|
|
Warn in case profiles in -fprofile-use do not match
|
2007-01-25 12:35:13 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Xassembler
|
|
|
|
Driver Separate
|
|
|
|
|
|
|
|
Xlinker
|
|
|
|
Driver Separate
|
|
|
|
|
|
|
|
Xpreprocessor
|
|
|
|
Driver Separate
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
aux-info
|
|
|
|
Common Separate
|
2003-07-08 05:25:39 +00:00
|
|
|
-aux-info <file> Emit declaration information into <file>
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
aux-info=
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Common Joined Alias(aux-info)
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
auxbase
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Separate RejectDriver
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
auxbase-strip
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Separate RejectDriver
|
|
|
|
|
|
|
|
combine
|
|
|
|
Driver Var(combine_flag)
|
|
|
|
|
|
|
|
c
|
|
|
|
Driver
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
d
|
|
|
|
Common Joined
|
2003-07-08 05:25:39 +00:00
|
|
|
-d<letters> Enable dumps from specific passes of the compiler
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
dumpbase
|
|
|
|
Common Separate
|
2003-07-08 05:25:39 +00:00
|
|
|
-dumpbase <file> Set the file basename to be used for dumps
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
2010-01-03 17:03:38 +00:00
|
|
|
dumpdir
|
|
|
|
Common Separate
|
2010-03-18 03:01:09 +00:00
|
|
|
-dumpdir <dir> Set the directory name to be used for dumps
|
2010-01-03 17:03:38 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
dumpmachine
|
|
|
|
Driver
|
|
|
|
|
|
|
|
dumpspecs
|
|
|
|
Driver
|
|
|
|
|
|
|
|
dumpversion
|
|
|
|
Driver
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; The version of the C++ ABI in use. The following values are allowed:
|
|
|
|
;
|
|
|
|
; 0: The version of the ABI believed most conformant with the C++ ABI
|
|
|
|
; specification. This ABI may change as bugs are discovered and fixed.
|
|
|
|
; Therefore, 0 will not necessarily indicate the same ABI in different
|
|
|
|
; versions of G++.
|
|
|
|
;
|
|
|
|
; 1: The version of the ABI first used in G++ 3.2.
|
|
|
|
;
|
2010-02-03 15:42:35 -05:00
|
|
|
; 2: The version of the ABI first used in G++ 3.4 (and current default).
|
|
|
|
;
|
|
|
|
; 3: The version of the ABI that fixes the missing underscore
|
|
|
|
; in template non-type arguments of pointer type.
|
|
|
|
;
|
|
|
|
; 4: The version of the ABI that introduces unambiguous mangling of
|
|
|
|
; vector types.
|
2007-09-04 14:27:05 +00:00
|
|
|
;
|
2004-07-10 02:06:36 +00:00
|
|
|
; Additional positive integers will be assigned as new versions of
|
|
|
|
; the ABI become the default version of the ABI.
|
2004-02-17 18:32:45 +00:00
|
|
|
fabi-version=
|
2010-06-12 01:13:23 +01:00
|
|
|
Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
|
2004-02-17 18:32:45 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
falign-functions
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(align_functions,0) Optimization UInteger
|
2003-07-11 05:35:06 +00:00
|
|
|
Align the start of functions
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
falign-functions=
|
|
|
|
Common RejectNegative Joined UInteger
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
falign-jumps
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(align_jumps,0) Optimization UInteger
|
2003-07-11 05:35:06 +00:00
|
|
|
Align labels which are only reached by jumping
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
falign-jumps=
|
|
|
|
Common RejectNegative Joined UInteger
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
falign-labels
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(align_labels,0) Optimization UInteger
|
2003-07-11 05:35:06 +00:00
|
|
|
Align all labels
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
falign-labels=
|
|
|
|
Common RejectNegative Joined UInteger
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
falign-loops
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(align_loops) Optimization UInteger
|
2003-07-11 05:35:06 +00:00
|
|
|
Align the start of loops
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
falign-loops=
|
|
|
|
Common RejectNegative Joined UInteger
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fargument-alias
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-04-07 13:08:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fargument-noalias
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-04-07 13:08:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fargument-noalias-global
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-04-07 13:08:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2006-03-21 07:32:57 +01:00
|
|
|
fargument-noalias-anything
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-04-07 13:08:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2006-03-21 07:32:57 +01:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fasynchronous-unwind-tables
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_asynchronous_unwind_tables) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Generate unwind tables that are exact at each instruction boundary
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2007-06-11 18:02:15 +00:00
|
|
|
fauto-inc-dec
|
|
|
|
Common Report Var(flag_auto_inc_dec) Init(1)
|
|
|
|
Generate auto-inc/dec instructions
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; -fcheck-bounds causes gcc to generate array bounds checks.
|
|
|
|
; For C, C++ and ObjC: defaults off.
|
|
|
|
; For Java: defaults to on.
|
|
|
|
; For Fortran: defaults to off.
|
2003-06-22 13:44:40 +00:00
|
|
|
fbounds-check
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_bounds_check)
|
2003-07-11 05:35:06 +00:00
|
|
|
Generate code to check bounds before indexing arrays
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fbranch-count-reg
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Replace add, compare, branch with branch on count register
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fbranch-probabilities
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_branch_probabilities) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Use profiling information for branch probabilities
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fbranch-target-load-optimize
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_branch_target_load_optimize) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform branch target load optimization before prologue / epilogue threading
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fbranch-target-load-optimize2
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_branch_target_load_optimize2) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform branch target load optimization after prologue / epilogue threading
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
re PR middle-end/13779 ([3.4 only] powerpc64: incorrect initialization of 'long long' with constant)
* Makefile.in (bt-load.o): Depend on except.h.
* bt-load.c (except.h): #include.
(compute_defs_uses_and_gen): If insn at end of BB can throw
within this function, consider registers used by it unavailable for
btr migration.
(move_btr_def): If insn at end of BB can throw, insert before rather
than after.
* flags.h (flag_btr_bb_exclusive): Declare.
* toplev.c (flag_btr_bb_exclusive): New variable.
(f_options): Add btr-bb-exclusive.
* bt-load.c (augment_live_range): Restore old behaviour if
flag_btr_bb_exclusive is set.
* common.opt: Add entry for -fbtr-bb-exclusive.
* opts.c (common_handle_options): Same.
* doc/invoke.texi: Document -fbtr-bb-exclusive.
* bt-load.c (btrs_live_at_end): New variable.
(compute_defs_uses_and_gen): Compute its pointed-to array.
(clear_btr_from_live_range, add_btr_to_live_range): Update it.
(augment_live_range): When augmenting with a new dominator,
use only its btrs_live_at_end set, but also add in the full set
of the old dominator.
(btr_def_live_range): Use btrs_live_at_end.
(move_btr_def): Set other_btr_uses_before_def, and move new set
to the end of the basic block, if appropriate.
(migrate_btr_defs): Allocate and free btrs_live_at_end.
* bt-load.c (basic_block_freq): Remove outdated comment.
2004-01-27 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.h: Correct target_flags free bits comment.
(PREDICATE_CODES): Remove duplicate.
* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
(MASK_PROFILE_KERNEL): Adjust define.
2004-01-27 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (ix86_constant_alignment): Decrease alignment
of long string literals from 32 bytes to sizeof (void *) when !-Os
and to 1 with -Os.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
constant addresses in the normal mode.
2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* system.h (CHAR_BITFIELD): Delete.
(BOOL_BITFIELD): New.
* c-decl.c (c_scope): Use BOOL_BITFIELD.
* gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(arc_return_in_memory): Likewise.
* config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
(RETURN_IN_MEMORY): Likewise.
(STRUCT_VALUE): Likewise.
2004-01-26 Richard Henderson <rth@redhat.com>
* c-parse.in (extension): Use itype.
(SAVE_EXT_FLAGS): Don't allocate a tree.
(RESTORE_EXT_FLAGS): Don't read a tree.
2004-01-26 Jan Hubicka <jh@suse.cz>
* cselib.c (discard_useless_values): Clear out value pointer pointing
to datastructure to be recycled.
2004-01-25 Jan Hubicka <jh@suse.cz>
* genextract.c (main): Do not output the memset when not checking.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
switch statement instead of a chain of if statements.
2004-01-26 Jeff Law <law@redhat.com>
* doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
acute accents for Petur Runolfsson's entry.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
(RETURN_IN_MEMORY): Likewise.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_emit_move): split slow
unaligned load/store into smaller loads and stores.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* function.c (assign_parms): Do not assign
long long argument to memory in prologue if
is it loaded into register.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
PR middle-end/13779
* expr.c (emit_group_load): split constant
correctly into register components of PARALLEL insn.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
Use adjust_address_nv directly with appropriate mode.
(restore_stack_nonlocal): Ditto.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/xtensa/xtensa-protos.h: Remove the prototype for
xtensa_builtin_saveregs.
* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(xtensa_builtin_saveregs): Make it static.
(xtensa_return_in_memory): New.
* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
(PROMOTE_PROTOTYPES): Likewise.
(STRUCT_VALUE): Likewise.
(RETURN_IN_MEMORY): Likewise.
(EXPAND_BUILTIN_SAVEREGS): Likewise.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
(arm_setup_incoming_varargs): Likewise.
* config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
(cris_setup_incoming_varargs): Likewise.
* config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
(ns32k_struct_value_rtx): Likewise.
* config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
NS32K_STRUCT_VALUE_REGNUM.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(arm_struct_value_rtx): Likewise.
* config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_REGNUM): Likewise.
(PROMOTE_PROTOTYPES): Likewise.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/ia64/ia64-protos.h: Remove the prototype for
ia64_setup_incoming_varargs and ia64_return_in_memory.
* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(ia64_setup_incoming_varargs): Adjust the arguments to meet
the requirement of TARGET_SETUP_INCOMING_VARARGS.
(ia64_return_in_memory): Make it static. Change the return
type to bool from int. Add an argument.
(ia64_struct_value_rtx): New.
* config/ia64/ia64.h: Remove commented-out definitions of
PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
PROMOTE_PROTOTYPES.
(RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE_REGNUM): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13666
* config/sparc/sparc.c (function_arg_union_value): New function.
(function_arg): Use it to deal with unions.
(function_value): Likewise. Define 'regbase' only for ARCH64.
Replace a conditional statement by a simpler one.
2004-01-26 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips16_optimize_gp): Delete.
(mips_reorg): Don't call it.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
(floatunsqihf2): Remove operand 6.
(fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
fix patterns.
(ldi_conditional, ldf_conditional): Validate operands.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
(HAVE_GAS_HIDDEN): Undefine as interim measure.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
invalid operand combinations.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_check_legit_addr): Rename to
c4x_legitimate_address_p. Fix post_modify check.
* config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
* config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/pa/pa-protos.h: Remove the prototype for
hppa_builtin_saveregs. Add a prototype for
pa_return_in_memory.
* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(pa_struct_value_rtx): Likewise.
(pa_return_in_memory): Likewise.
* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
PA_STRUCT_VALUE_REGNUM.
(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
(EXPAND_BUILTIN_SAVEREGS): Remove.
(PROMOTE_PROTOTYPES): Likewise.
(PROMOTE_FUNCTION_RETURN): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(vax_struct_value_rtx): Likewise.
* config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
VAX_STRUCT_VALUE_REGNUM.
(PROMOTE_PROTOTYPES): Remove.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
2003-04-25 Chris Demetriou <cgd@broadcom.com>
* config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
and MIPS64 have HI/LO interlocks. Update comment.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/stormy16/stormy16-protos.h: Remove the prototype for
xstormy16_setup_incoming_varargs.
* config/stormy16/stormy16.c
(xstormy16_setup_incoming_varargs): Remove.
(xstormy16_return_in_memory): New.
(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise
(PROMOTE_PROTOTYPES): Likewise
(RETURN_IN_MEMORY): Likewise
(STRUCT_VALUE): Likewise
(SETUP_INCOMING_VARARGS): Likewise
2004-01-25 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_offset_within_object_p): New function.
(mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
ABI has 64-bit pointers and the object file only allows 32-bit symbols.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300-protos.h: Remove the prototype for
mn10300_builtin_saveregs.
* config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(mn10300_return_in_memory): Likewise.
(mn10300_builtin_saveregs): Make it static.
* config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
(RETURN_IN_MEMORY): Likewise.
(STRUCT_VALUE): Likewise.
(EXPAND_BUILTIN_SAVEREGS): Likewise.
2004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
PR bootstrap/13853
* cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
using ccr.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/i860/i860-protos.h: Remove the prototype for
i860_saveregs.
* config/i860/i860.c (i860_saveregs): Make it static.
(i860_struct_value_rtx): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
* config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
I860_STRUCT_VALUE_REGNUM.
(EXPAND_BUILTIN_SAVEREGS): Remove.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(m68hc11_struct_value_rtx): Likewise.
(m68hc11_return_in_memory): Likewise.
* config/m68hc11/m68hc11.h: Remove a commented-out definition
of PROMOTE_PROTOTYPES.
(RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE_REGNUM): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mmix/mmix-protos.h: Remove the prototype for
mmix_setup_incoming_varargs.
* config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(mmix_setup_incoming_varargs): Make it static.
(mmix_struct_value_rtx): New.
* config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
(STRUCT_VALUE_REGNUM): Remove.
(SETUP_INCOMING_VARARGS): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/mips-protos.h: Remove the prototypes for
mips_setup_incoming_varargs and mips_return_in_memory.
* config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(mips_setup_incoming_varargs): Match the prototype for
TARGET_SETUP_INCOMING_VARARGS.
(mips_return_in_memory): Make it static. Add argument fntype.
(mips_strict_argument_naming): New.
* config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
(PROMOTE_FUNCTION_ARGS): Likewise.
(PROMOTE_FUNCTION_RETURN): Likewise.
(STRUCT_VALUE): Likewise.
(RETURN_IN_MEMORY): Likewise.
(SETUP_INCOMING_VARARGS): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(ip2k_return_in_memory): Likewise.
(ip2k_setup_incoming_varargs): Likewise.
* config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_INCOMING): Likewise.
(SETUP_INCOMING_VARARGS): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(avr_return_in_memory): Remove.
* config/avr/avr.h (RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_INCOMING): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-25 Jan Hubicka <jh@suse.cz>
* combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
2004-01-25 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
(mips_regno_mode_ok_for_base_p): Declare.
* config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
(FRAME_POINTER_REGNUM): Renumber to 78.
(FIRST_PSEUDO_REGISTER): Update comment accordingly.
(BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
(GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
(REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
(REG_MODE_OK_FOR_BASE_P): Likewise.
* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
entry for 77 to "$arg" and entry for 78 to "$frame".
(mips_regno_to_class): Map 77 and 78 to ALL_REGS.
(mips_reg_mode_ok_for_base_p): Remove.
(mips_regno_mode_ok_for_base_p): New function, derived from old
BASE_REG_P macro. Don't enforce the mips16 stack pointer
restrictions unless we're being strict.
(mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* c-common.h: Fix comment typos.
* c-decl.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* et-forest.c: Likewise.
* flow.c: Likewise.
* function.c: Likewise.
* ifcvt.c: Likewise.
* integrate.c: Likewise.
* jump.c: Likewise.
* postreload.c: Likewise.
* varray.c: Likewise.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* doc/frontends.texi: Update copyright.
* doc/gcov.texi: Likewise.
* doc/gty.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/standards.texi: Likewise.
2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
PR target/12978
* c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
Remove movstrqi_small because it conflicts with movstrqi_large.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(cris_struct_value_rtx): Likewise.
* config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
(CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
STRUCT_VALUE_REGNUM.
(STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
PR bootstrap/13848
* cse.c (cse_cc_succs): Change the mode of the source expression
as soon as decide we need a new mode. Don't permit changing modes
if we found a match in a successor block.
(cse_condition_code_reg): Save original mode of source expression
so that we know whether we have to change the mode in other
insns.
2004-01-24 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (change_address, adjust_address_1, offset_address,
widen_memory_access): Return early when there is nothing to change.
2004-01-24 Jakub Jelinek <jakub@redhat.com>
* simplify-rtx.c (simplify_relational_operation): Don't
simplify address == constant into address + -constant == 0.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* gcc.c (process_command): Don't internationalize the
Copyright message.
* mips-tfile.c (main): Likewise.
2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
* cse.c: (cse_cc_succs) Fix comparison warning.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md: Remove extraneous USE in expanders.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Provide prototypes for
h8300_legitimate_constant_p and h8300_legitimate_address_p.
* config/h8300/h8300.c (h8300_legitimate_constant_p): New.
(h8300_rtx_ok_for_base_p): Likewise.
(h8300_legitimate_address_p): Likewise.
* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
h8300_legitimate_constant_p.
(RTX_OK_FOR_BASE_P): Remove.
(GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
(REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
(REG_OK_FOR_INDEX_STRICT_P): Likewise.
(REG_OK_FOR_BASE_STRICT_P): Likewise.
(REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
(REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
(REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
(REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
2004-01-24 Jan Hubicka <jh@suse.cz>
* cselib.c (remove_useless_values): Do not access discarded values.
2004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (build_conditional_expr): Do not allow non-lvalue
arrays.
2004-01-23 Kazu Hirata <kazu@cs.umass.edu>
* recog.c: Fix a typo in copyright.
2004-01-23 Andrew Pinski <apinski@apple.com>
* config/rs6000/rs6000.md (call): Fix misappiled patch.
(call_value): Likewise.
2004-01-23 Richard Henderson <rth@redhat.com>
PR opt/12941
* combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
(simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
if SHIFT_COUNT_TRUNCATED is set.
2004-01-23 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
separate real and imaginary parts.
* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
2004-01-23 Hartmut Penner <hpenner@de.ibm.com>
PR target/13674
* config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
loading into GPR.
2004-01-23 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
change.
* alloc-pool.c (align_four): Kill.
(create_alloc_pool): Align size to eight.
(free_alloc_pool, free_pool): Invalidate deallocated data.
2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
PR gcc/1532
* cse.c (cse_change_cc_mode): New static function.
(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
(cse_condition_code_reg): New function.
* rtl.h (cse_condition_code_reg): Declare.
* toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
* target.h (struct gcc_target): Add fixed_condition_code_regs and
cc_modes_compatible.
* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(TARGET_INITIALIZER): Add new initializers.
* targhooks.c (default_cc_modes_compatible): New function.
* targhooks.c (default_cc_modes_compatible): Declare.
* hooks.c (hook_bool_intp_intp_false): New function.
* hooks.h (hook_bool_intp_intp_false): Declare.
* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(ix86_fixed_condition_code_regs): New static function.
(ix86_cc_modes_compatible): Likewise.
* doc/tm.texi (Condition Code): Document new hooks.
2004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (bad_lval): Renamed to ...
(alpha_bad_lval): ... this.
Removed file list.
Restrict to alpha*-dec-osf*.
* fixinc/fixincl.x: Regenerate.
* fixinc/tests/base/dirent.h: Remove, moving test ...
* fixinc/tests/base/testing.h: ... here, reflecting new name.
2004-01-23 Zack Weinberg <zack@codesourcery.com>
PR c/13814
* c-decl.c (diagnose_mismatched_decls): Also discard a
built-in if we encounter an old-style definition with the
same name.
2004-01-23 Jakub Jelinek <jakub@redhat.com>
* config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
set to default{32,64}.
2004-01-21 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
[!__powerpc64__]: Corrected to handle kernels with changed ucontext.
2004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
Olivier Hainque <hainque@act-europe.fr>
* fold-const.c (fold_binary_op_with_conditional_arg): Only
build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
2004-01-23 Daniel Jacobowitz <drow@mvista.com>
* config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
size for minipool references.
2004-01-23 Roger Sayle <roger@eyesopen.com>
* real.c (real_floor, real_ceil): Tweak to allow input and output
arguments to overlap.
(real_round): New function to implement round(3m) semantics.
* real.h (real_round): Prototype here.
* builtins.c (fold_builtin_round): New function to constant fold
round, roundf and roundl.
(fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
2004-01-23 Alexandre Oliva <aoliva@redhat.com>
PR optimization/13819
* config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
introduced by 2004-01-20's Jan Hubicka's copy_insn change.
(sh_handle_sp_switch_attribute): Remove warning.
2003-11-30 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
2004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
* doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
may or may not return non-NIL.
* postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
check CANNOT_CHANGE_MODE_CLASS
2004-01-23 Jan Hubicka <jh@suse.cz>
* basic-block.h (PROP_POSTRELOAD): New macro.
(CLEANUP_LOG_LINKS): New.
* cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
* toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
* cselib.c (value_pool): New.
(new_cselib_val): Use pool.
(cselib_init): Initialize value_pool
(cselib_finish): Free pool.
2004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (scan_record_type): New function.
(function_arg_slotno): Use it to determine which kinds of
registers the record can be passed in.
2004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
* config/pa/fptr.c: Fix old-style definition.
2004-01-22 Paolo Bonzini <bonzini@gnu.org>
PR optimization/13724
* cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
represents the zero bits produced by a ZERO_EXTEND operation.
2004-01-22 Roger Sayle <roger@eyesopen.com>
PR optimization/13821
* simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
correctly calculate the lowpart offset of the contracted subreg.
2004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
* doc/invoke.texi (Optimize Options): Note that --param arguments
are subject to change without notice.
2004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config.gcc (mips-sgi-irix6*o32): Removed.
* config/mips/iris6-o32-as.h: Likewise.
* config/mips/iris6-o32-gas.h: Likewise.
* config/mips/iris6-o32.h: Likewise.
2004-01-22 Jan Hubicka <jh@suse.cz>
* cfgcleanup.c (first_pass): New static variable.
(try_forward_edges): Add work limiting check for threading.
(try_crossjump_bb): Add work limiting check for crossjumping.
(try_optimize_cfg): Maintain first pass variable.
2004-01-22 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
handles complex and vector modes.
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
(REG_OK_FOR_BASE_P_STRICT): Likewise.
(STRICT): Likewise.
2004-01-22 Daniel Jacobowitz <drow@mvista.com>
* c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
(genrtl_for_stmt): Remove emit_nop calls.
2004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/13713
PR target/13324
* pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
2004-01-22 Daniel Jacobowitz <drow@mvista.com>
* config/arm/arm.c: Include "debug.h".
(thumb_pushpop): Take two new arguments. Add some commentary.
Output frame information when pushing.
(thumb_exit, thumb_unexpanded_epilogue): Update calls to
thumb_pushpop.
(thumb_output_function_prologue): Likewise. Accumulate a CFA
offset, and pass it to thumb_pushpop. Output CFI information.
(thumb_expand_prologue): Add some frame-related markers and notes.
2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_frame_info): Allow large frame sizes
for TARGET_64BIT.
(s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
* config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
2004-01-22 Roger Sayle <roger@eyesopen.com>
Paolo Bonzini <bonzini@gnu.org>
* rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
(subreg_lsb): Change to call new subreg_lsb_1 helper function.
* rtl.h (subreg_lsb_1): Prototype here.
* simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
sign extensions.
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
macro need not be defined if jump-tables should contain
relative addresses only when -fPIC or -fPIC is in effect.
2004-01-22 Jan Hubicka <jh@suse.cz>
* alias.c (reg_base_value): Turn into varray.
(reg_base_value_size): Kill.
(old_reg_base_value): New deletable varray.
(alias_invariant_size): New variable.
(REG_BASE_VALUE): Update to use varray.
(find_base_value): Likewise.
(record_set): Likewise.
(record_base_value): Likewise.
(memrefs_conflict_p): Likewise.
(record_set): Likewise
(record_base_value): Likewise.
(memrefs_conflict_p): Use alias_invariant_size.
(init_alias_analysis): Use varray; set alias_invariant_size;
rescale other arrays to be sized by maxreg.
(end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (function_arg_slotno): Use
FLOAT_TYPE_P to detect FP fields in structures.
(function_arg_record_value_1): Likewise.
(function_arg_record_value_2): Likewise.
2004-01-22 Jan Hubicka <jh@suse.cz>
* function.c (allocate_struct_function): Do not initialize expr, emit
and varasm.
(prepare_function_start): Do it here.
* c-parse.in (maybe_type_qual): Do not produce line number notes.
2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13559
* config/sparc/sparc.c (function_arg_record_value_3): Revert
to 'word_mode' once the first slot has been filled.
2004-01-22 Olivier Hainque <hainque@act-europe.fr>
* config/sparc/sparc.c (function_arg_record_value_1): Fix
computation of the number of integer registers required.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* config/i386/i386.md: Simplify certain comparisons of
const_int.
2004-01-21 Andrew Pinski <apinski@apple.com>
PR target/13785
* config/rs6000/rs6000.md (call_value): Force operand
1 not operand 0 into a register.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
unwind-dw2-fde.h: Update copyright.
2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-protos.h: Update copyright.
* pa.h: Likewise.
* pa.md: Likewise.
2004-01-21 Caroline Tice <ctice@apple.com>
PR target/12308
* config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
flags register.
(fix_truncdfdi2): Likewise.
(fix_truncsfdi2): Likewise.
(*fix_truncdi_1): Likewise.
(fix_truncxfsi2): Likewise.
(fix_truncdfsi2): Likewise.
(fix_truncsfsi2): Likewise.
(*fix_truncsi_1): Likewise.
(fix_truncxfhi2): Likewise.
(fix_truncdfhi2): Likewise.
(fix_truncsfhi2): Likewise.
(*fix_trunchi_1): Likewise.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* alias.c, basic-block.h, c-common.c, c-common.h,
c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
genautomata.c, genconditions.c, genemit.c, genflags.c,
gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
unwind.h, varray.c, varray.h: Update copyright.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/coff.h: Update copyright.
* config/h8300/elf.h: Likewise.
* config/h8300/h8300-protos.h: Likewise.
* config/h8300/h8300.c: Likewise.
* config/h8300/h8300.h: Likewise.
* config/h8300/h8300.md: Likewise.
2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
ultrix_unistd): New hacks.
* fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
ULTRIX_CONST2_CHECK): Add checks.
* fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
* fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
* fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
* fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
* fixinc/tests/base/locale.h: New file.
* fixinc/fixincl.x: Rebuilt.
2004-01-21 Andreas Jaeger <aj@suse.de>
Michael Matz <matz@suse.de>
* doc/extend.texi (Extended Asm): Clarify memory clobber.
2004-01-21 Jakub Jelinek <jakub@redhat.com>
* crtstuff.c (frame_dummy, __do_global_ctors_1): Call
_Jv_RegisterClasses through a function pointer.
2004-01-21 Falk Hueffner <falk@debian.org>
PR target/12898
* config/alpha/alpha.c (alpha_emit_set_const_1): If
no_new_pseudos, use gen_rtx_SET directly for SImode constants
which need multiple instructions to emit.
2004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (CPP_SPEC): Define.
2004-01-21 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (merge_decls): Kill different_binding_level and
different_tu arguments; simplify throughout.
(duplicate_decls): Likewise.
(pushdecl, merge_translation_unit_decls): Update calls to
duplicate_decls.
2004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
$(SYSTEM_H).
(print-rtl1.o): Depend on $(SYSTEM_H).
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12730
* configure.ac: Delete definition and subsitution of docdir.
Add info, man, srcman and srcinfo to target hooks. Create doc/
directory.
* configure: Regenerate.
* Makefile.in: Don't substitute docdir and delete all references
throughout.
(MAKEINFOFLAGS): Define.
(stmp-docobjdir): Delete.
(INFOFILES, MANFILES): Define.
(info): Call lang.info, srcinfo and lang.srcinfo.
(generated-manpages): Call lang.man, srcman and lang.srcman.
(srcinfo, srcman): New rules to copy back files to source directory.
(doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
(install-man): Revamp rule.
(clean): Update dvi directory.
(distclean): Delete TAGS from front end directorys.
(maintainer-clean): Delete all document files in source directory.
objc/Make-lang.in (objc.man, objc.info): Dummy entries.
(objc.srcman, objc.srcinfo): Likewise.
2004-01-20 Bruce Korb <bkorb@gnu.org>
* fixinc/inclhack.def(math_exception): bypass only for glibc.
(matherr_decl): rename & relocate as exception_structure.
This fix must precede the math_exception fix.
2004-01-20 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_convert): Rename to fold_convert_const.
(fold_convert_const): Change arguments to take a tree_code,
a type and the operand/expression to be converted. Return
NULL_TREE if no simplification is possible. Add support for
FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
(fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
Adjust call to fold_convert to match new fold_convert_const.
Avoid modifying the tree passed to fold in-place.
2004-01-21 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
* dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
* doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
2004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
* pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
(emit_move_sequence): Check scratch_reg first in various if statements.
Extend source simplification to handle all 64-bit CONST_INTs.
(pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
frame size.
(hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
frame offset calculations.
* pa.h (NEW_HP_ASSEMBLER): Add comment.
(MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
LEGITIMATE_64BIT_CONST_INT_P): Define.
(LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
any CONST_INT as legitimate during and after reload.
(VAL_32_BITS_P, INT_32_BITS): Define.
(LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
2004-01-20 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (verify_rtx_sharing, copy_insn_1,
emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
containing hard regs are shared.
(gen_hard_reg_clobber): New function.
(hard_reg_clobbers): New array.
* genemit.c (gen_exp): Use gen_hard_reg_clobber.
(copy_rtx): Do not copy clobbers containing hard regs.
* rtl.h (gen_hard_reg_clobber): Declare.
2004-01-20 Jan Hubicka <jh@suse.cz>
* varray.c: Include hashtab.h
(varray_descriptor): New structure.
(hash_descriptor, eq_descriptor, varray_descriptor,
print_statistics): New static functions
(varray_init, varray_grow): Update statistics
(dump_varray_statistics): New function.
* varray.h (dump_varray_statistics): Declare.
* toplev.c (finalize): Call it.
* Makefile.in (varray.o): Add dependency.
2004-01-20 Jan Hubicka <jh@suse.cz>
* cselib.c: Include alloc-pool.h
(empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
(elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
(new_elt_list, new_elt_loc_list, unchain_one_elt_list,
unchain_one_elt_loc_list_pool, unchain_one_value,
new_cselib_val): Simplify using allocpool.
(cselib_init): Initialize allocpools.
(cselib_finish): Finish allocpools.
* Makefile.in (cselib.o): Depend on alloc-pool.h
2004-01-20 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_load_call_address): Make the call insn
use $gp if it could be calling a lazy binding stub.
2004-01-20 Kazu Hirata <kazu@cs.umass.edu>
* config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
* config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Remove.
(STRUCT_VALUE): Remove.
2004-01-20 Denis Chertykov <denisc@overta.ru>
PR bootstrap/13735
* config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
register as pointer after reload.
2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
PR optimization/12440
* loop.c: Include ggc.h.
(loop_optimize): Run garbage collector between optimization of loops.
* Makefile.in (loop.o): Add GGC_H dependency.
2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (function_arg) Handle
vector register special in function without prototype.
(function_arg_advance): Vector parameters get always
GPRs allocated for the linux64 target.
2004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
not TARGET_M32RX_MASK.
2004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13557
* config/sparc/sparc.c (function_arg): Reorder the cases.
2004-01-19 Per Bothner <per@bothner.com>
Move cpp_reader's line_maps field to a shared global.
* cpphash.h (cpp_reader): Rename line_maps field to line_table
and change the type to a pointer rather than a struct.
* cppinit.c (cpp_push_main_field): Adjust accordingly.
* cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
Likewise.
* cppfiles.c (validate_pch): Likewise.
* cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
Likewise.
* cpperror.c (print_location): Likewise.
* cpplib.h (cpp_create_reader): New line_maps pointer parameter.
* cppinit.c (cpp_create_reader): Handle new parameter.
(cpp_destroy): Don't free line_maps - that's no longer our job.
* input.h (line_table): New variable.
* toplev.c (line_table): Declare variable.
(general_init): Initialize line_table.
* c-opts.c (c_common_init_options): Pass line_table to
cpp_create_reader.
* fix-header.c (read_scan_file): New local variable line_table.
Initialize, and pass it to cpp_create_reader.
* Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
(C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
2004-01-19 Per Bothner <per@bothner.com>
Implement a cache for linemap_lookup.
* line-map.h (struct_line_maps): Add cache field.
* line-map.c (linemap_init): Zero cache field.
(linemap_add): Set cache field to offset of newly allocated map.
(linemap_lookup): Use and set cache field.
2004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR optimization/13567
* cse.c (cse_basic_block): Call cse_insn with a non-null
libcall_insn for the last SET insn of a no-confilict block.
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (target_noncanonical, program_transform_name): Use
immediate define instead of deferred.
(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
deferred backquote.
2004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
* c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
true unconditionally.
* c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
Remove.
(build_unary_op, build_modify_expr): Don't handle extended
lvalues.
(build_component_ref, build_conditional_expr): Call non_lvalue
instead of pedantic_non_lvalue.
(build_c_cast): Don't condition use of non_lvalue on pedantic.
* fold-const.c (fold): Don't check pedantic directly for
COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
passed to pedantic_non_lvalue.
* doc/extend.texi: Remove documentation of extended lvalues.
2004-01-19 Roger Sayle <roger@eyesopen.com>
PR optimization/5263
* simplify-rtx.c (associative_constant_p): Delete.
(simplify_associative_operation): Rewrite to linearize terms, and
attempt to simplify new term against both left and right subterms.
(simplify_binary_operation): Call swap_commutative_operands_p on
op0 and op1, not trueop0 and trueop1. Move the initialization of
trueop0 and trueop1 down to where first needed.
(simplify_relational_operation): Likewise.
* rtlanal.c (commutative_operand_precedence): Also order constant
operands using avoid_constant_pool_reference.
2004-01-19 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
don't check memory mode.
(unaligned_memory_operand): Likewise.
(reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
abort for op0 not MEM.
* config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
is not a reg, copy to a scratch first.
(aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
(reload_inqi, reload_inhi): Fix mode of op0.
(reload_inqi_help, reload_inhi_help, reload_outqi_help,
reload_outhi_help): Likewise. Use define_insn_and_split.
* config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
as well as $29 dead.
2004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
"tls_object" for thread-local objects.
* config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
"#tls" for thread-local sections.
* configure.ac (thread-local checks): Specify --fatal-warnings in
every binutils-specific checks. For sparc*-*-*, test whether the
OS is Solaris and the tools are native and act accordingly.
* configure: Rebuild.
2004-01-19 Jeff Law <law@redhat.com>
* contrib.texi: Update Paolo Carlini's entry. New entries for
Jerry Quinn and Petur Runolfsson.
2004-01-19 Roger Sayle <roger@eyesopen.com>
* config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
size, don't use the larger zero-extending loads.
2004-01-19 Richard Henderson <rth@redhat.com>
* alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
* alpha.md (UNSPEC_NT_LDA): Remove.
(UNSPEC_CVTLQ, cvtlq): New.
(extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
(extendsidi2_fix): Remove.
(extendsidi2 splitter): Use cvtlq.
(extendsidi2 fp peepholes): Remove.
(cvtql): Use SFmode instead of SImode.
(fix_trunc?fsi): Update to match.
(floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
(movsi): Rename from movsi_nofix, remove f alternatives.
(movsi_nt_vms): Similarly.
(movsi_fix, movsi_nt_vms_fix): Remove.
(nt_lda): Remove.
* alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
2004-01-19 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_remove_node): Fix removal from linked list.
* cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
list.
(cgraph_remove_unreachable_nodes): New function
(cgraph_decide_inlining_of_small_function): Fix pasto.
(cgraph_decide_inlining_incrementally): Fix pasto.
(cgrpah_decide_inlining): Likewise; remove unreachable nodes.
2004-01-19 Steven Bosscher <stevenb@suse.de>
* gengtype.c (header_file): Make it static.
(write_types_process_field, write_enum_defn): Minor whitespace fixes.
* gengtype.h (header_file): No longer extern.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
* expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
* stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* stmt.c (HAVE_casesi): Define it not already defined.
(HAVE_tablejump): Likewise.
(expand_end_case_type): Resort to the binary tree method if
neither casesi or tablejump is available.
2004-01-18 Daniel Jacobowitz <drow@mvista.com>
* final.c (final_scan_insn): Make non-static again.
* output.h (final_scan_insn): Re-add prototype.
* config/arc/arc.c (arc_output_function_epilogue): Add NULL
to final_scan_insn call.
* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
* config/mips/mips.c (mips_output_conditional_branch): Likewise.
* config/pa/pa.c (output_lbranch, output_call): Likewise.
* config/sh/sh.c (print_slot): Likewise.
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
(output_sibcall, sparc_flat_function_epilogue): Likewise.
2004-01-18 Jan Hubicka <jh@suse.cz>
* basic-block.h (try_redirect_by_replacing_jump): Declare.
* cfgcleanup.c (try_optimize_cfg): Use it.
* cfgrtl.c (try_redirect_by_replacing_jump): Export.
(rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
Kill hack.
(cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
Revert:
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
the size of a pointer in bytes.
2004-01-18 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
live "next" variable, which could lead to an infinite loop.
2004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
block.
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
Check for NULL in the chain and remove repeated code.
2004-01-18 Jan Hubicka <jh@suse.cz>
* coverage.c (checksum_string): Rename to ...
(coverage_checksum_string): ... this one, Use crc32_string; recognize
names containing random number and zero the number out in order to get
match.
2004-01-18 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_got_alias_set): Mark for PCH.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
doc/trouble.texi: Remove trailing whitespace.
2004-01-18 Richard Sandiford <rsandifo@redhat.com>
PR target/7618
* config/mips/mips.c: Include cfglayout.h.
(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
(mips_unspec_offset_high): Add temporary register argument.
(mips_load_call_address): New function, split out from...
(mips_expand_call): ...here.
(mips_output_cplocal): New function.
(mips_output_function_prologue, mips_output_function_epilogue): Use it.
(mips_emit_loadgp): New function, split out from...
(mips_expand_prologue): ...here.
(mips_output_mi_thunk): New function.
2004-01-17 Bernardo Innocenti <bernie@develer.com>
* longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
mcpu32): Remove redundant checks for implied target predefines.
2004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
Return type is unsigned int not int.
* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
Likewise.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
"GNU/Linux" and "Microsoft Windows" terminology.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
doc/cppopts.texi, doc/extend.texi, doc/install.texi,
doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
@smallexample instead of @example.
2004-01-17 Ziemowit Laski <zlaski@apple.com>
* objc/objc-act.c (build_objc_method_call): Use target
hooks instead of macros to determine if ..._stret
dispatchers should be used (NeXT runtime only).
2004-01-17 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Fix mistake in my
last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
(emit_call_insn_before_sameloc, emit_insn_after_sameloc)
(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
macros.
* reload1.c (emit_reload_insns): Use them.
* emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
for NULL PATTERN.
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
(final_scan_insn): Update to take an additional SEEN argument. Emit
a line note after the prologue. Make static.
(line_note_exists): Remove.
(final): Don't initialize line_note_exists. Update call to
final_scan_insn.
* output.h (final_scan_insn): Remove prologue.
* function.c (set_insn_locators): Update comment.
(thread_prologue_and_epilogue_insns): Add a comment.
2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
PR target/10781
* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
Prototype.
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
New function.
* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
* config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
2004-01-17 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
commit.
* toplev.c (HAVE_conditional_execution): Provide default.
(rest_of_handle_reorder_blocks): For conditional_execution target
update liveness once after all transformations
(rest_of_compilation): Do crossjumping before ce3.
2004-01-17 Geoffrey Keating <geoffk@apple.com>
* alias.c (new_alias_set): Mark last_alias_set for PCH.
(get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
for PCH.
(get_frame_alias_set): Likewise, except rename it to 'frame_set'.
* config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
(get_TOC_alias_set): Mark 'set' for PCH.
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables.
2004-01-17 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
Remove checks for is_ada() and TREE_UNSIGNED.
(subrange_type_die): Emit a byte_size attribute if the subrange
type size is different from the base type size.
(modified_type_die): Replace call to is_ada_subrange_type() by
call to is_subrange_type().
2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
* config/sh/sh.c: Include ggc.h.
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* Makefile.in (MD5_H): New.
(fold-const.o): Depend on md5.h.
(dwarf2out.o): Likewise.
(cppfiles.o): Likewise.
* cppfiles.c: Include md5.h.
(should_stack_file): Check against list read from PCH file.
(struct pchf_data): New.
(pchf): New variable.
(struct pchf_adder_info): New.
(pchf_adder): New.
(pchf_save_compare): New.
(_cpp_save_file_entries): New.
(_cpp_read_file_entries): New.
(struct pchf_compare_data): New.
(pchf_compare): New.
(check_file_against_entries): New.
* cpphash.h (_cpp_save_file_entries): Prototype.
(_cpp_read_file_entries): Prototype.
* cpppch.c (cpp_write_pch_state): Write the list of headers.
(cpp_read_state): Read the list of headers.
2004-01-17 Jan Hubicka <jh@suse.cz>
* c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
builtin_expect specially.
* params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
(PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
* invoke.texi (max-inline-insns-single): Set to 100.
(large-function-insns): Set to 3000.
2004-01-16 Eric Christopher <echristo@redhat.com>
Chandrakala Chavva <cchavva@redhat.com>
* cppcharset.c (one_iso88591_to_utf8): New function.
(convert_iso88591_utf8): Ditto. Use.
(conversion_tab): Use.
(_cpp_input_to_utf8): New function.
(_cpp_init_iconv_buffer): Ditto.
(_cpp_close_iconv_buffer): Ditto.
* cpphash.h: Prototype new functions.
(cpp_buffer): Add input_cset_desc.
* cppinit.c: Add input_charset default.
* cpplib.c (cpp_push_buffer): Support init and
close of iconv.
* cpplib.h (cpp_options): Add input_charset.
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* system.h (ASM_OUTPUT_SECTION_NAME): Poison.
* config/alpha/unicosmk.h: Remove a commented-out definition
of ASM_OUTPUT_SECTION_NAME.
* config/stormy16/stormy16.h: Likewise.
2004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
(alpha___extern_prefix_sys_stat): ... this.
Apply to <sys/mount.h>, too.
Tweak to match more variations.
* fixinc/tests/base/sys/stat.h: Adapt for new hackname.
* fixinc/inclhack.def (alpha___extern_prefix,
alpha___extern_prefix_standards): New hacks to obey
__PRAGMA_EXTERN_PREFIX.
* fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
test.
* fixinc/tests/base/standards.h: Likewise.
* fixincl/inclhack.def (alpha_pthread): Tweak to match more
variations.
New testcase.
* fixinc/tests/base/pthread.h: Handle it.
* fixincl/inclhack.def (bad_lval): Sort file list.
Add many missing files up to Tru64 UNIX V5.1B.
* gcc/fixinc/tests/base/libgen.h: Renamed to ...
* gcc/fixinc/tests/base/dirent.h: ... this to match new file list
order.
* fixinc/fixincl.x: Regenerate.
2004-01-16 Mark Mitchell <mark@codesourcery.com>
* version.c (version_string): Change to 3.5.0.
* doc/include/gcc-common.texi (version-GCC): Likewise.
2004-01-16 Jan Hubicka <jh@suse.cz>
* i386.md (load_tp_di): Fix pasto.
PR opt/13608
* i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
* c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
pp_c_character_constant, pp_c_floating_constant,
pp_c_additive_expression, pp_c_shift_expression,
pp_c_equality_expression, pp_c_and_expression,
pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
pp_c_logical_and_expression): Remove inline modifier.
* dwarf2out.c (get_AT): Likewise.
* et-forest.c (et_splay): Likewise.
* ra.h (ra_alloc, ra_calloc): Likewise
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* config/frv/frv-protos.h: Fix comment formatting.
* config/frv/frv.c: Likewise.
* config/frv/frv.h: Likewise.
* config/frv/frv.md: Likewise.
* config/frv/frvbegin.c: Likewise.
* config/frv/frvend.c: Likewise.
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
* doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
LINKER_DOES_NOT_WORK_WITH_DWARF2.
(LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
PR 11864
* postreload.c (reload_cse_simplify_operands): Don't remove
implicit extension from LOAD_EXTEND_OP.
2004-01-16 Jan Hubicka <jh@suse.cz>
PR opt/11350
* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
after reload.
* cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
rtl_try_redirect_by_replacing_branch): Likewise.
2004-01-15 Geoffrey Keating <geoffk@apple.com>
PR pch/13689
* alias.c (struct alias_set_entry): Mark for GC.
(alias_sets): Make static, mark for GC.
(record_alias_subset): Use GC to allocate alias structures.
* varray.c (element): Make generic varrays GCed.
PR pch/13361
* c-typeck.c (constructor_asmspec): Delete.
(struct initializer_stack): Delete field 'asmspec'.
(start_init): Delete saving of asmspec.
(finish_init): Don't update constructor_asmspec.
* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
* stmt.c (expand_asm): Duplicate strings from tree.
(expand_asm_operands): Likewise.
* tree.c (tree_size): Update computation of size of STRING_CST.
(make_node): Don't make STRING_CST nodes.
(build_string): Allocate string with tree node.
* tree.def (STRING_CST): Update comment.
* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
(tree_string): Place contents of string in tree node.
* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
from tree.
* config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
altivec operands.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* c-common.h: Fix comment formatting.
* c-cppbuiltin.c: Likewise.
* c-pragma.c: Likewise.
* calls.c: Likewise.
* collect2.c: Likewise.
* cppcharset.c: Likewise.
* cpptrad.c: Likewise.
* dbxout.c: Likewise.
* defaults.h: Likewise.
* dwarf2out.c: Likewise.
* fold-const.c: Likewise.
* genautomata.c: Likewise.
* genconditions.c: Likewise.
* genflags.c: Likewise.
* gengtype.c: Likewise.
* integrate.c: Likewise.
* loop.c: Likewise.
* predict.c: Likewise.
* sdbout.c: Likewise.
2004-01-15 Zack Weinberg <zack@codesourcery.com>
* config/ia64/ia64.md (*movti_internal): C output template
extracted to ia64.c.
(*movti_internal_reg): Delete.
(reload_inti, reload_outti): Use the correct mode on operand 2
in the first place, don't fix it up in the output template.
(movtf, reload_ointf, reload_outtf): New expanders.
(*movtf_internal): New define_insn_and_split.
* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
make static; do not hand TFmode CONST_DOUBLEs to split_double.
(ia64_split_tmode_move): New function, body mostly pulled
from ia64.md:*movti_internal.
(ia64_function_arg_words): New function, extracted common
logic from ia64_function_arg et seq.
(ia64_function_arg_offset): Likewise. Handle correctly the
case of a scalar quantity 16 bytes wide with only 8-byte alignment.
(ia64_function_arg, ia64_function_arg_partial_nregs)
(ia64_function_arg_advance): Use ia64_function_arg_words and
ia64_function_arg_offset.
(ia64_function_value): TCmode does not go in float regs.
(ia64_secondary_reload_class): Also handle TFmode.
* config/ia64/ia64-protos.h: Remove prototype for
ia64_split_timode; add prototype for ia64_split_tmode_move.
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (MAINT): Make it an immediate assignment.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Remove useless calls to gen_lowpart.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/coff.h: Replace Hitachi with Renesas.
* config/h8300/elf.h: Likewise.
* config/h8300/h8300-protos.h: Likewise.
* config/h8300/h8300.c: Likewise.
* config/h8300/h8300.h: Likewise.
* config/h8300/h8300.md: Likewise.
* config/h8300/lib1funcs.asm: Likewise.
2004-01-15 Andrew Pinski <apinski@apple.com>
* config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
around it.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_return_in_memory): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/h8300/h8300.h (STRUCT_VALUE): Remove.
(RETURN_IN_MEMORY): Likewise.
2004-01-15 Richard Earnshaw <rearnsha@arm.com>
PR optimization/13375
* gcse.c (handle_avail_expr): Just return if the source is not a
single set.
2004-01-15 Richard Earnshaw <rearnsha@arm.com>
Daniel Jacobowitz <drow@mvista.com>
* arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
(EQUIV): Define.
(ARM_FUNC_ALIAS): New macro.
* arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
* arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR optimization/12372
* calls.c (expand_call): Add call_fusage data for stack arguments in
constant calls.
2004-01-15 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
(rs6000_elf_declare_function_name): Formatting.
* config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
2004-01-15 Jan Hubicka <jh@suse.cz>
PR bootstrap/13692
* sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
previous patch.
2004-01-15 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
integer regs of the same call-savedness.
2004-01-15 Andreas Schwab <schwab@suse.de>
PR bootstrap/13562
* config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
status for NOTB/NOTW/NEGW methods.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Update dump file names. Fix a typo.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (expand_builtin_va_end): Don't use
EXPAND_BUILTIN_VA_END.
* system.h (EXPAND_BUILTIN_VA_END): Poison.
* config/d30v/d30v.h: Remove a commented-out definition of
EXPAND_BUILTIN_VA_END.
* config/stormy16/stormy16.h: Likewise.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
* targhooks.c (default_struct_value_rtx): Don't use
STRUCT_VALUE_INCOMING_REGNUM.
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir. Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule. Don't substitute
parsedir and delete all references throughout. Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.
* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi (FUNCTION_VALUE): Fix a typo.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi: Replace RETURN_IN_MEMORY with
TARGET_RETURN_IN_MEMORY.
2004-01-15 Jan Hubicka <jh@suse.cz>
* builtins.c (std_expand_builtin_va_arg): Align operand when needed.
* i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
functions accepting SSE arguments
(function_arg): Warn only when asked to warn.
* i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
2004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
* c-parse.in (stmts_and_decls): Make label at end of compound
statement a hard error.
2004-01-14 Jan Hubicka <jh@suse.cz>
* cgraph.c (create_edge): Use local.redefined_extern_inline.
* cgraph.h (cgraph_local_info): Sort fields by size; add
redefined_extern_inline
(cgraph_global_info): Sort fields by size.
(cgraph_node): Likewise.
* cgraphunit.c (cgraph_finalize_function): Se
local.redefined_extern_inline on redefinition.
(cgraph_analyze_function): Use it; fix formating.
2004-01-14 Jan Hubicka <jh@suse.cz>
PR c++/10776
* sched-deps.c (trye_dependency_cache, anti_dependency_cache,
outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
bitmaps
(cache_size): New variable
(add_dependence): Update use; canonize early memory locations
(sched_analyze_1): Likewise.
(sched_analyze_2): Likewise.
(init_dependency_caches): Initialize bitmaps.
(free_dependency_caches): Free bitmaps
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
targetm.calls.strict_argument_naming().
* target.h: Likewise.
2004-01-14 Richard Henderson <rth@redhat.com>
PR debug/13231
* dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
instructions.
2004-01-14 Richard Henderson <rth@redhat.com>
PR c++/12491
* except.c (struct eh_region): Add u.fixup.resolved.
(resolve_one_fixup_region): Split out from ...
(resolve_fixup_regions): ... here.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/alpha/alpha.h (STRUCT_VALUE): Remove.
* config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
(STRUCT_VALUE): Remove.
2004-01-14 Steven Bosscher <stevenb@suse.de>
* system.h: Poison PROMOTED_MODE
* integrate.c (expand_inline_function): Don't mention the
PROMOTED_MODE.
* loop.c (update_giv_derive): Same.
* tree.h (DECL_RTL): Same.
2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
PR target/9365
* sh.c (gen_block_redirect): Add special handling of RETURN.
(gen_far_branch) Don't call gen_stuff_delay_slot if there is no
far branch target (i.e. it's a return).
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* regrename.c (find_oldest_value_reg): Fix a warning.
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
PR bootstrap/12527
* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
Move linux-gas.h and linux-elf.h before aout.h.
* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
(CONST_INT, VOIDmode, ...).
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
* regrename.c (find_oldest_value_reg): If the replacement uses
multiple hard registers, check that all of them are in CLASS.
2004-01-14 Jan Hubicka <jh@suse.cz>
* alias.c (get_alias_set): Initialize alias set to 0 when subset is
impossible.
2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in: Define MAINT from --enable-maintainer-mode.
2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (rs6000_stack_info)
Calculate always vrsave_mask if TARGET_ALTIVEC.
(rs6000_emit_prologue): Emit code for vrsave
only if TARGET_ALTIVEC_VRSAVE.
(rs6000_emit_epilogue): Likewise.
2004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.md (tie_add32): Fix pasto.
(tie_add64): Likewise.
2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/iq2000/iq2000-protos.h: Fix comment formatting.
* config/iq2000/iq2000.c: Likewise.
* config/iq2000/iq2000.md: Likewise.
2004-01-14 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
(subrange_type_die): Add handle for nameless subrange types.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Replace do_movsi with
h8300_expand_movsi.
* config/h8300/h8300.c (do_movsi): Change to
h8300_expand_movsi.
* config/h8300/h8300.md (movsi): Replace do_movsi with
h8300_expand_movsi.
(movsf): Likewise.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (dosize): Change to
h8300_emit_stack_adjustment. Update callers.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md (movstrictqi): Add an alternative with
the source being post_inc. Tighten the predicate for the
destination to register_operand.
(movstricthi): Likewise.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
* varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
* doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
2004-01-14 Jan Hubicka <jh@suse.cz>
Partial fix PR c++/12850
* cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
at zero nest level.
2004-01-13 Bernardo Innocenti <bernie@develer.com>
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
pseudo-register.
2004-01-13 Devang Patel <dpatel@apple.com
PR debug/7078
* dbxout.c (dbxout_symbol_name): Emit mangled names for
NAMESPACE_DECL memebers.
2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/12709
* c-common.c (finish_fname_decls): Use the chain only if the
tree is an expr_stmt.
2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
* rtl.def: Add comment about new option in automata_option.
* genautomata.c (PROGRESS_OPTION): New macro.
(progress_flag): New global variable.
(gen_automata_option): Process `progress'.
(transform_insn_regexps, check_unit_distributions_to_automata,
make_automaton, NDFA_to_DFA, build_automaton, create_automata,
expand_automata, write_automata): Print about the progress only if
progress_flag. Remove fflush.
(initiate_automaton_gen): Process command line flag `-progress'.
* doc/md.texi: Describe the new option.
2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* cfg.c (dump_bb): Dump entry edges.
2004-01-13 Richard Earnshaw <rearnsha@arm.com>
* arm.c (thumb_legitimate_address_p): Only allow constant pool
references from SImode.
* arm.md (thumb_movhi_insn): Don't allow minipool references.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* system.h (TEXT_SECTION): Poison.
* varasm.c (text_section): Don't use TEXT_SECTION.
* config/sh/sh.c (sh_file_start): Fix a comment typo.
* doc/tm.texi (TEXT_SECTION): Remove.
2004-01-13 Ben Elliston <bje@wasabisystems.com>
* doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
2004-01-12 James E Wilson <wilson@specifixinc.com>
* unwind-libunwind.c: Delete.
2004-01-12 Zack Weinberg <zack@codesourcery.com>
PR 13656
* c-decl.c (diagnose_mismatched_decls): Whenever newtype or
oldtype is set, set *newtypep or *oldtypep too. Do not set
them at the very end.
(validate_proto_after_old_defn): Restructure for comprehensibility;
make error messages clearer.
2004-01-12 Zack Weinberg <zack@codesourcery.com>
* varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
(VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
* varray.c: No need to prototype error.
(varray_check_failed): Wrap long string onto two lines.
(varray_underflow): New function.
2004-01-13 Steven Bosscher <stevenb@suse.de>
PR c++/13376
* function.h (struct function): Kill `name' field.
(current_function_name): Make it an extern function.
* function.c (current_function_name): New function.
* graph.c: Update all uses of current_function_name.
* gcse.c: Likewise.
* config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
* config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
instead of a strcmp with "main".
2004-01-13 Jan Hubicka <jh@suse.cz>
* c-decl.c (diagnose_mismatched_decls): Fix warning calls.
* cgraphunit.c (cgraph_optimize_function): Always do
optimize_inline_calls when there is always_inline callee.
(cgraph_decide_inlining): Fix formating.
* tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
functions.
(expand_call_inline): Likewise.
* toplev.h (sorry): Fix prototype.
2004-01-12 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
conditional jumps that drop through to unconditional jumps or the
end of the sequence.
2004-01-13 Jan Hubicka <jh@suse.cz>
* alias.c (new_alias_set): Construct the alias_set varray.
(init_alias_once): Don't do it here.
2004-01-12 Marc Espie <espie@openbsd.org>
* system.h: handle YYBYACC like YYBISON.
2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
PR target/10847
* config.gcc: No longer includes conflicting header sparc/sol2.h when
building on sparc64-*-openbsd*.
2004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
PR debug/13539
* dbxout.c (dbxout_type): Protected inheritance is not
private but protected.
2004-01-12 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
PR optimization/12508.
* combine.c (try_combine): Remove a dead set in a parallel
even if its destination is a subreg.
Revert:
2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
* combine.c (simplify_set): Don't move a subreg in SET_SRC to
SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
2004-01-12 Geoffrey Keating <geoffk@apple.com>
* real.c: Update copyright date.
* emit-rtl.c: Likewise.
* rtl.h: Likewise.
* dwarf2out.c: Likewise.
* config/rs6000/darwin-ldouble.c: Likewise.
* config/rs6000/rs6000.md: Likewise.
2004-01-12 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
TFmode to SImode libfuncs.
2004-01-12 Roger Sayle <roger@eyesopen.com>
PR middle-end/11397
* varasm.c (assemble_alias): Remove weak aliases from weak_decls.
2004-01-12 Jan Hubicka <jh@suse.cz>
PR opt/12826
* loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
stored.
PR opt/12863
* cfgcleanup.c (label_is_jump_target_p): Move to...
* rtlanal.c (label_is_jump_target_p): ... here.
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
edges unified with branch edges.
2004-01-12 Richard Earnshaw <rearnsha@arm.com>
* simplify-rtx.c (simplify_immed_subreg): Correctly extract the
high word of an integral CONST_DOUBLE.
2004-01-12 Paul Brook <paul@codesourcery.com>
* simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
PR target/13585
* sh-protos.h (check_use_sfunc_addr): Declare.
* sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
* sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
2004-01-12 Jan Hubicka <jh@suse.cz>
* alias.c: Invlude varray.h
(alias_sets): Turn into varray.
(get_alias_set_entry): Use VARRAY; mark inline.
(mems_in_disjoint_alias_sets_p): Mark inline.
(record_alias_subset): Use varray.
(init_alias_once): Initialize varray.
(new_alias_set): Grow array.
* varray.c: Make VARRAY_GENERIC_PTR non GTYized.
2004-01-12 Jan Hubicka <jh@suse.cz>
Partial fix for PR opt/10776 II
* cselib.c: Include params.h
(cselib_invalidate_mem): Limit amount of nonconflicting memory
locations.
* params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
* Makefile.in (cselib.o): Depend on params.h
2004-01-12 Richard Sandiford <rsandifo@redhat.com>
* combine.c (combine_simplify_rtx): Don't pass VOIDmode to
simplify_unary_operation if the operand has a known mode.
2004-01-12 Hartmut Penner <hpenner@de.ibm.com>
PR target/13534
* gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
predicate to handle 'ld' conform addresses.
* gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
contraint.
(EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
are memory contraints.
* gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
New prototype.
* gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
Change 'o' to 'Y' constraint.
(*movdf_softfloat64): Ditto.
2004-01-12 Bernardo Innocenti <bernie@develer.com>
* gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
brace-enclosed syntax in all C output statements.
2004-01-12 David Edelsohn <edelsohn@gnu.org>
PR target/13401
* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Objective-C language type value is 14.
2004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
PR c/12148
* config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
`int' in a number of places to make sure we always have a SImode
and not a HImode. Add a 'L' suffix to a number of constants.
2004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c: Don't include obstack.h.
* pa.md: Correct constraint in pattern for loading PIC label address.
2004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
before defining.
2004-01-11 Steven Bosscher <stevenb@suse.de>
PR fortran/9972
* toplev.c (rest_of_handle_inline): Also consider functions
for deferral if the language is GNU F77.
2004-01-11 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (diagnose_arglist_conflict): Add missing space to
diagnostic messages.
2004-01-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/13392
* builtins.c (expand_builtin_expect_jump): Handle conditional jumps
to drop through label. Don't fall back to SCC even when conditional
jump has not been found.
2004-01-11 Jan Hubicka <jh@suse.cz>
* invoke.texi: Fix syntax error in previous patch.
Partial fix for PR opt/10776
* Makefile.in (reload.o): Include param.h
* params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
* reload.c: Include params.h.
(find_equiv_reg): Work limiting check.
* invoke.texi: Document.
2004-01-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_symbolic_constant_p): Don't allow
out-of-bounds accesses to string constants. Simplify mips16
case accordingly.
2004-01-11 Richard Sandiford <rsandifo@redhat.com>
PR optimization/13469
* toplev.c (rest_of_compilation): Call purge_all_dead_edges after
reload_cse_regs (-fnon-call-exceptions only).
2004-01-11 Kazu Hirata <kazu@cs.umass.edu>
* config/mcore/lib1.asm: Fix comment formatting.
* config/mcore/mcore-elf.h: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mcore/mcore.h: Likewise.
* config/mcore/mcore.md: Likewise.
2004-01-10 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (duplicate_decls): Break apart into...
(diagnose_arglist_conflict, validate_proto_after_old_defn)
(locate_old_defn, diagnose_mismatched_decls, merge_decls):
... these new functions. Restructure for comprehensibility.
Remove various archaic special cases. Always report the
location of the previous declaration when a diagnostic is issued.
(redeclaration_error_message): Fold into diagnose_mismatched_decls.
(match_builtin_function_types): Delete unnecessary forward declaration.
2004-01-10 Zack Weinberg <zack@codesourcery.com>
* genautomata.c (make_automaton, NDFA_to_DFA):
Print progress bars with '.' characters instead of '*'.
(build_automaton): Change notes to match.
2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Use define_constants for unspec and
unspec_volatile.
2004-01-10 Jan Hubicka <jh@suse.cz>
PR opt/11635
* expr.c (expand_expr_real): More curefully expand union casts.
2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md (flush_icache): Use 1 for
unspec_volatile.
2004-01-10 David Edelsohn <edelsohn@gnu.org>
James E Wilson <wilson@specifixinc.com>
PR debug/12860
* dbxout.c (dbxout_symbol): Remove initialization of
current_sym_code, current_sym_value, and current_sym_addr.
(dbxout_symbol_location): Same.
(dbxout_prepare_symbol): Zero current_sym_code,
current_sym_value, and current_sym_addr.
2004-01-10 Richard Sandiford <rsandifo@redhat.com>
* tree.c (get_unwidened): Reorder conditions so that the null pointer
check is done first.
2004-01-09 Eric Christopher <echristo@redhat.com>
* toplev.c (rest_of_handle_cfg): Add reg_scan pass
if we're running mark_constant_function.
2004-01-09 Jeff Bailey <jbailey@nisa.net>
PR target/12561
* config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
PR debug/11231
* dbxout.c (dbxout_type_fields): Return if any item is
error_mark_node or the type is error_mark_node.
2004-01-09 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/darwin-ldouble.c: Add big comment explaining
exactly what is expected as a 'long double'.
(_xlqadd): When a value to be returned is representable as a
'double', just return it directly, do not construct it using a union.
Also, correct final fixup.
(_xlqmul): Likewise.
(_xlqdiv): Likewise.
* real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
* config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
2004-01-09 Richard Henderson <rth@redhat.com>
* recog.c (constrain_operands): Validate mem operands.
2004-01-09 James E Wilson <wilson@specifixinc.com>
* gcc.c (init_spec): Remove -lunwind from shared case.
* conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
2004-01-09 Steve Ellcey <sje@cup.hp.com>
* configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
* configure: Regenerate
2004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/11234
* c-typeck.c (build_c_cast): If pedantic, warn for conversions
between function and object pointers.
(digest_init): When comparing a pointer to function type to the
target type, only apply TREE_TYPE once to the pointer to function
type.
* except.c (for_each_eh_label_1): Treat data as a pointer to a
function pointer rather than casting it to a function pointer.
(for_each_eh_label): Update caller.
* recog.h (struct insn_data): Use a struct or union for output.
* genoutput.c (output_insn_data): Update.
* final.c (get_insn_template): Update.
2004-01-09 Mark Mitchell <mark@codesourcery.com>
* expr.h (expand_expr): Make it a macro, not a function.
(expand_expr_real): New function.
* expr.c (store_expr): Adjust logic for deciding whether or not to
copy the value returned by expand_expr.
(expand_expr): Rename to ...
(expand_expr_real): ... this. Add alt_rtl parameter. Adjust
calls to language hooks.
* c-common.h (c_expand_expr): Adjust prototype.
* c-common.c (c_expand_expr): Add alt_rtl parameter.
* langhooks-def.h (lhd_expand_expr): Change prototype.
* langhooks.c (lhd_expand_expr): Add all_rtl parameter.
* langhooks.h (lang_hooks): Change type of expand_expr.
* stmt.c (stmt_status): Add x_last_expr_alt_rtl.
(last_expr_alt_rtl): Likewise.
(expand_expr_stmt_value): Set last_expr_alt_rtl.
(clear_last_expr): Clear it.
(expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
(expand_end_bindings): Save and restor last_expr_alt_rtl.
* tree.def (RTL_EXPR): Give it an additional operand.
* tree.h (RTL_EXPR_ALT_RTL): New macro.
2004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
* config/m32r/m32r.c (call26_operand): Allow in PIC mode.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
PR target/13380.
* config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
or (ne:SI (reg:CC 17) (const_int 0)).
Be specific about modes wherever possible.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.c (m32r_expand_block_move): Call
gen_movestrsi_internal with two more arguments.
(m32r_output_block_move): Adjust operand numbers.
Properly update the source and destination pointers.
* config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
'r+'. Change the set detinations to match_operand.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
* final.c (FIRST_INSN_ADDRESS): Remove.
(shorten_branches): Don't use FIRST_INSN_ADDRESS.
* system.h (FIRST_INSN_ADDRESS): Poison.
* config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
* config/m32r/m32r-protos.h: Remove the prototype for
m32r_first_insn_address.
* config/m32r/m32r.c (m32r_first_insn_address): Remove.
* config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
* doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
2004-01-09 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (gen_enumeration_type_die): Return the DIE that
we just created.
(is_ada_subrange_type): DIEs for enumeration subtypes should be
emitted as subrange types too.
(subrange_type_die): Add handling of enumeration subtypes.
2004-01-08 Richard Henderson <rth@redhat.com>
PR opt/12441
Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.c (aligned_operand): Be prepared for SUBREGed registers.
(ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
(ix86_address_cost): Be prepared for SUBREGed registers.
(legitimate_address_p): Accept SUBREGed registers.
2004-01-08 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in: Rename configure.in to configure.ac
* doc/sourcebuild.texi: Likewise.
* configure: Regenerate.
* config.in: Regenerate.
2004-01-08 Stuart Hastings <stuart@apple.com>
* config/i386/i386.md: Typos in MMX/SSE immediate shifts.
2004-01-08 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_decide_inlining): Fix typo.
2004-01-08 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
(UNSPEC_FIX_TRUNC_TF): New constant.
(movtf_internal): Make splitter active only when insn is active.
(extenddftf2): Rewrite to properly load zero into low part.
(extenddftf2_internal): New.
(extendsftf2): Rewrite.
(truncdftf2): Correct length.
(floatditf2): Delete.
(fix_trunc_helper): New.
(fix_trunctfdi2): Use fix_trunc_helper.
(fix_trunctfsi2): Likewise.fix_trunc
(fix_trunctfsi2_internal): New.
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
addresses are legitimate on Darwin even when flag_pic.
(rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
non-offsettable addresses for loads of TFmode constants.
2004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
variables in the appropriate bss section.
2004-01-09 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
target_flags has MASK_POWERPC64 when -m64.
* config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
to 620, 630, power3, power4 and rs64a entries.
* config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
2004-01-08 Richard Sandiford <rsandifo@redhat.com>
* simplify-rtx.c (simplify_immed_subreg): Fix construction of
floating-point constants.
2004-01-08 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (subrange_type_die): Add context_die parameter.
Create the subrange_type DIE using the given context DIE.
(modified_type_die): Update call to subrange_type_die.
2004-01-08 Zack Weinberg <zack@codesourcery.com>
* dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
Add multiple-include guard.
2004-01-08 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
all vector constant loadable by vsplt*.
(output_vec_const_move): Likewise.
2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/6024
* c-typeck.c (comptypes): Only treat enumerated types in the same
translation unit as compatible with each other when they are the
same type.
* doc/extend.texi: Update.
2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/12165
* c-decl.c (grokdeclarator): Take type qualifiers of typedefed
array type from the array element type.
2004-01-07 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
* config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
* config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
(DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
* config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
2004-01-06 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
(DWARF2_DEBUGGING_INFO): Define.
(PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
* config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
* config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
for irix as.
(SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
* config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
* config/mips/iris5gas.h: Ditto.
(DBX_DEBUGGING_INFO): Remove.
(DWARF2_DEBUGGING_INFO): Ditto.
(MIPS_DEBUGGING_INFO): Ditto.
(PREFERRED_DEBUGGING_TYPE): Ditto.
* config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
(PREFERRED_DEBUGGING_TYPE): Ditto.
(SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
* config/mips/elf64.h: Ditto.
2004-01-06 Jan Hubicka <jh@suse.cz>
* Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
(STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
2004-01-06 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
(TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
* config/rs6000/darwin-ldouble.c: New.
* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
for constants.
(constant_subword): Delete.
* rtl.h (constant_subword): Delete prototype.
(immed_double_const): Is not in varasm.c.
* simplify-rtx.c (simplify_immed_subreg): New.
(simplify_subreg): Use simplify_immed_subreg.
* config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
than trying to generate RTL directly.
(fix_trunctfsi2): Use expand_fix rather than trying to generate
RTL directly.
* dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
2004-01-06 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
function into a separate macro.
(read_only_data_section): Add void argument.
(private_data_section): Same.
(read_only_private_data_section): Same.
(toc_section): Same.
2004-01-06 Jan Hubicka <jh@suse.cz>
* invoke.texi: Remove typo in last change.
PR target/10301
* config.gcc: Accept opteron and athlon-64 as variants
of k8.
* i386.c (override_options): Likewise.
* invoke.texi (i386 -mtune): Expand documentation.
2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
* alias.c: Fix comment typos.
* builtins.c: Likewise.
* cfg.c: Likewise.
* df.c: Likewise.
* dominance.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* genrecog.c: Likewise.
* gensupport.c: Likewise.
* ggc-zone.c: Likewise.
* integrate.c: Likewise.
* local-alloc.c: Likewise.
* loop.c: Likewise.
* recog.c: Likewise.
* regmove.c: Likewise.
* reg-stack.c: Likewise.
* reorg.c: Likewise.
* rtlanal.c: Likewise.
* rtl.h: Likewise.
* sched-ebb.c: Likewise.
* simplify-rtx.c: Likewise.
* toplev.c: Likewise.
* varasm.c: Likewise.
2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
* doc/install.texi: Fix typos.
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
2004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
2004-01-06 Jan Hubicka <jh@suse.cz>
* i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
(function_arg_advance): Do not pass aggregates in SSE; deal handling
of MMX_REGPARM.
(function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
add MMX_REGPARM.
* i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
(SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
(MMX_REGPARM_MAX): Similarly for -mmmx.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/sh/linux.h: Fix comment formatting.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sh/vxworks.h: Likewise.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
* toplev.c (output_file_directive): Don't use
ASM_OUTPUT_MAIN_SOURCE_FILENAME.
2004-01-05 Daniel Berlin <dberlin@dberlin.org>
* ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
(USING_MMAP): We don't support non-mmap.
(struct alloc_chunk): Steal 1 bit from typecode, use it to mark
large objects.
(struct page_entry): Remove bytes_free.
(struct page_table_chain): Remove.
(struct globals): Remove page_table member.
(loookup_page_table_entry): Function deleted.
(set_page_table_entry): Ditto.
(ggc_allocated_p): No longer need page table lookups.
(ggc_marked_p): Ditto.
(alloc_small_page): Don't care about bytes_free anymore.
(alloc_large_page): Round up size.
(ggc_alloc_zone_1): Mark large objects as such, and calculate
their size the new way.
Remove page table lookups and setting.
(ggc_get_size): Calculate large object size the new way.
(sweep_pages): Redo to account for fact that we no longer have
bytes_free.
(ggc_collect): No longer need to reincrement bytes_free.
(ggc_pch_alloc_object): Handle new large objects properly.
(ggc_pch_read): Put PCH stuff into it's own uncollected zone.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Remove a page break.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/avr/avr.c (avr_output_function_prologue): Remove an
extra pair of curly braces.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.c: Fix comment formatting.
* config/mn10300/mn10300.h: Likewise.
2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h: Update documentation on nothrow_flag.
* print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
types.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Remove traces of dead ports.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
option.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
PR target/12945
* coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
counter labels.
* config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
(mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
(mips_symbol_insns): Don't trust the local/global classification.
(m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
(override_options): Make -mabicalls -fno-unit-at-a-time imply
-mno-explicit-relocs.
(mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
between local and global symbols.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
(mips_preferred_reload_class): Declare.
* config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
(EXTRA_CONSTRAINT): Update accordingly.
(PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
* config/mips/mips.c (mips_dangerous_for_la25_p): New function.
(mips_preferred_reload_class): New function. Prefer LEA_REGS if
mips_dangerous_for_la25_p.
(mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
if mips_dangerous_for_la25_p.
2004-01-05 Bernardo Innocenti <bernie@develer.com>
* config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
warning.
2004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Use AC_PROG_CPP_WERROR.
* configure: Regenerate.
2004-01-04 Zack Weinberg <zack@codesourcery.com>
* .cvsignore: Add autom4te.cache.
2004-01-04 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Revamp documentation of MIPS options. Remove
-mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
-m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
then architecture options, then ABI options. General rewording.
2004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/3414
* doc/extend.texi: Clarify definition of malloc attribute.
2004-01-04 Jan Hubicka <jh@suse.cz>
* Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
* cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
* cgraph.h (cgraph_edge): Replace inline_call by inline_failed
(cgraph_inline_p): Add extra argument reason.
* cgraphunit.c: Minor formating fixes.
cgraph_first_inlined_callee): New functions.
(record_call_1): Record builtins too.
(cgraph_analyze_function): Update inline_failed messages.
(cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
(cgraph_check_inline_limits): Likewise; Add argument reason.
(cgraph_set_inline_failed): New static function.
(cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
reasons.
(cgraph_inline_p): Add new argument reason.
* tree-inline.c (expand_call_inline): Update warning.
2004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
with modern equivalents.
* configure: Regenerate.
* configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
* aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
* configure: Regenerate.
* doc/install.texi: Note that 'gcc' is now a 2.57 directory.
* configure.in: Rename to configure.ac.
* configure.ac: Renamed from configure.in; make minimum necessary
changes for autoconf 2.5x.
* aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
* configure: Regenerate with autoconf 2.57.
2004-01-03 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/linux.h: Fix comment formatting.
* config/mips/mips.c: Likewise.
* config/mips/mips.h: Likewise.
* config/mips/mips.md: Likewise.
* config/mips/netbsd.h: Likewise.
* config/mips/windiss.h: Likewise.
2004-01-02 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (fp constant pool splitter): Reorg suppression
for sse and 387; add suppression for mmx.
2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
* loop.c (loop_optimize): Free all loops_info's mems.
* c-typeck.c (finish_init): Free spelling_base before
setting it again.
* cfgloop.c (flow_loops_find): Always free the sbitmap
headers.
* predict.c (estimate_probability): Free bbs after being
done with it.
2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.h (PREDICATE_CODES): Add
const_8bit_operand and call_address_operand.
2004-01-02 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
when there is nothing to inline but warnings are requested.
(cgraph_decide_inlining): Fix memory leak.
2004-01-02 Jan Hubicka <jh@suse.cz>
* expr.c (store_constructor): Fix pasto in previous patch.
2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
* config/i386/cygming.h: Fix comment formatting.
* config/i386/djgpp.h: Likewise.
* config/i386/gthr-win32.c: Likewise.
* config/i386/i386-interix.h: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/openbsd.h: Likewise.
* config/i386/winnt.c: Likewise.
* config/i386/xm-mingw32.h: Likewise.
2004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
copyright and last modification dates.
2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
* doc/install.texi (Specific): Mention x86_64.
2004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
* builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
Call force_operand on plus_constant result.
2004-01-01 Jan Hubicka <jh@suse.cz>
* expmed.c (store_bit_field, extract_bit_field): Use new named patterns
* expr.c (store_constructor): Use vec_init pattern.
* genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
* optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
(vec_set_optab, vec_extract_optab, vec_init_optab): New.
* i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
New patterns.
(sse2_unpc?pd): Fix pattern.
(sse2_movlpd): Kill.
(sse2_movsd): Deal with movlpd too.
* i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
(ix86_expand_vector_init): New.
* emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
* md.texi (vec_set, vec_extract): Document
2003-12-31 Jan Hubicka <jh@suse.cz>
PR opt/13473
* recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
ASM input operands
PR opt/12617
* toplev.c (dump_file_index): Reorder ce3 and bbro.
(dump_file): Likewise.
(rest_of_compilation): Likewise.
PR debug/13367
* cgraph.c (cgraph_function_possibly_inlined): Even with
flag_really_no_inline we inline always_inline functions.
* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
for non-always_inline functions when there is flag_really_no_inline.
(cgraph_decide_inlining): Limit work done when not inlining.
(cgraph_decide_inlining_incrementally): Likewise.
(cgraph_optimize_function): Check whether something got inlined.
* c-objc-common.c (c_disregard_inline_limits): Do not always inline
extern inline functions when not inlining.
* opts.c (decode_options): Disable crossjumping at -O1
* invoke.texi (-O1): Document change.
From-SVN: r76701
2004-01-27 12:49:31 +00:00
|
|
|
fbtr-bb-exclusive
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_btr_bb_exclusive) Optimization
|
re PR middle-end/13779 ([3.4 only] powerpc64: incorrect initialization of 'long long' with constant)
* Makefile.in (bt-load.o): Depend on except.h.
* bt-load.c (except.h): #include.
(compute_defs_uses_and_gen): If insn at end of BB can throw
within this function, consider registers used by it unavailable for
btr migration.
(move_btr_def): If insn at end of BB can throw, insert before rather
than after.
* flags.h (flag_btr_bb_exclusive): Declare.
* toplev.c (flag_btr_bb_exclusive): New variable.
(f_options): Add btr-bb-exclusive.
* bt-load.c (augment_live_range): Restore old behaviour if
flag_btr_bb_exclusive is set.
* common.opt: Add entry for -fbtr-bb-exclusive.
* opts.c (common_handle_options): Same.
* doc/invoke.texi: Document -fbtr-bb-exclusive.
* bt-load.c (btrs_live_at_end): New variable.
(compute_defs_uses_and_gen): Compute its pointed-to array.
(clear_btr_from_live_range, add_btr_to_live_range): Update it.
(augment_live_range): When augmenting with a new dominator,
use only its btrs_live_at_end set, but also add in the full set
of the old dominator.
(btr_def_live_range): Use btrs_live_at_end.
(move_btr_def): Set other_btr_uses_before_def, and move new set
to the end of the basic block, if appropriate.
(migrate_btr_defs): Allocate and free btrs_live_at_end.
* bt-load.c (basic_block_freq): Remove outdated comment.
2004-01-27 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.h: Correct target_flags free bits comment.
(PREDICATE_CODES): Remove duplicate.
* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
(MASK_PROFILE_KERNEL): Adjust define.
2004-01-27 Jakub Jelinek <jakub@redhat.com>
* config/i386/i386.c (ix86_constant_alignment): Decrease alignment
of long string literals from 32 bytes to sizeof (void *) when !-Os
and to 1 with -Os.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
constant addresses in the normal mode.
2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* system.h (CHAR_BITFIELD): Delete.
(BOOL_BITFIELD): New.
* c-decl.c (c_scope): Use BOOL_BITFIELD.
* gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(arc_return_in_memory): Likewise.
* config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
(RETURN_IN_MEMORY): Likewise.
(STRUCT_VALUE): Likewise.
2004-01-26 Richard Henderson <rth@redhat.com>
* c-parse.in (extension): Use itype.
(SAVE_EXT_FLAGS): Don't allocate a tree.
(RESTORE_EXT_FLAGS): Don't read a tree.
2004-01-26 Jan Hubicka <jh@suse.cz>
* cselib.c (discard_useless_values): Clear out value pointer pointing
to datastructure to be recycled.
2004-01-25 Jan Hubicka <jh@suse.cz>
* genextract.c (main): Do not output the memset when not checking.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
switch statement instead of a chain of if statements.
2004-01-26 Jeff Law <law@redhat.com>
* doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add
acute accents for Petur Runolfsson's entry.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
(RETURN_IN_MEMORY): Likewise.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_emit_move): split slow
unaligned load/store into smaller loads and stores.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* function.c (assign_parms): Do not assign
long long argument to memory in prologue if
is it loaded into register.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
PR middle-end/13779
* expr.c (emit_group_load): split constant
correctly into register components of PARALLEL insn.
2004-01-26 Fariborz Jahanian <fjahanian@apple.com>
* gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
Use adjust_address_nv directly with appropriate mode.
(restore_stack_nonlocal): Ditto.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/xtensa/xtensa-protos.h: Remove the prototype for
xtensa_builtin_saveregs.
* config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(xtensa_builtin_saveregs): Make it static.
(xtensa_return_in_memory): New.
* config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
(PROMOTE_PROTOTYPES): Likewise.
(STRUCT_VALUE): Likewise.
(RETURN_IN_MEMORY): Likewise.
(EXPAND_BUILTIN_SAVEREGS): Likewise.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
(arm_setup_incoming_varargs): Likewise.
* config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
(cris_setup_incoming_varargs): Likewise.
* config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
(ns32k_struct_value_rtx): Likewise.
* config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
NS32K_STRUCT_VALUE_REGNUM.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(arm_struct_value_rtx): Likewise.
* config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_REGNUM): Likewise.
(PROMOTE_PROTOTYPES): Likewise.
2004-01-26 Kazu Hirata <kazu@cs.umass.edu>
* config/ia64/ia64-protos.h: Remove the prototype for
ia64_setup_incoming_varargs and ia64_return_in_memory.
* config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(ia64_setup_incoming_varargs): Adjust the arguments to meet
the requirement of TARGET_SETUP_INCOMING_VARARGS.
(ia64_return_in_memory): Make it static. Change the return
type to bool from int. Add an argument.
(ia64_struct_value_rtx): New.
* config/ia64/ia64.h: Remove commented-out definitions of
PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
PROMOTE_PROTOTYPES.
(RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE_REGNUM): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13666
* config/sparc/sparc.c (function_arg_union_value): New function.
(function_arg): Use it to deal with unions.
(function_value): Likewise. Define 'regbase' only for ARCH64.
Replace a conditional statement by a simpler one.
2004-01-26 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips16_optimize_gp): Delete.
(mips_reorg): Don't call it.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
(floatunsqihf2): Remove operand 6.
(fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
fix patterns.
(ldi_conditional, ldf_conditional): Validate operands.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
(HAVE_GAS_HIDDEN): Undefine as interim measure.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct
memory references if TARGET_EXPOSE_LDP nonzero.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
invalid operand combinations.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.c (c4x_check_legit_addr): Rename to
c4x_legitimate_address_p. Fix post_modify check.
* config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
* config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/pa/pa-protos.h: Remove the prototype for
hppa_builtin_saveregs. Add a prototype for
pa_return_in_memory.
* config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(pa_struct_value_rtx): Likewise.
(pa_return_in_memory): Likewise.
* config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
PA_STRUCT_VALUE_REGNUM.
(INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
(EXPAND_BUILTIN_SAVEREGS): Remove.
(PROMOTE_PROTOTYPES): Likewise.
(PROMOTE_FUNCTION_RETURN): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(vax_struct_value_rtx): Likewise.
* config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
VAX_STRUCT_VALUE_REGNUM.
(PROMOTE_PROTOTYPES): Remove.
2004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref.
2003-04-25 Chris Demetriou <cgd@broadcom.com>
* config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
and MIPS64 have HI/LO interlocks. Update comment.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/stormy16/stormy16-protos.h: Remove the prototype for
xstormy16_setup_incoming_varargs.
* config/stormy16/stormy16.c
(xstormy16_setup_incoming_varargs): Remove.
(xstormy16_return_in_memory): New.
(TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise
(PROMOTE_PROTOTYPES): Likewise
(RETURN_IN_MEMORY): Likewise
(STRUCT_VALUE): Likewise
(SETUP_INCOMING_VARARGS): Likewise
2004-01-25 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_offset_within_object_p): New function.
(mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the
ABI has 64-bit pointers and the object file only allows 32-bit symbols.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300-protos.h: Remove the prototype for
mn10300_builtin_saveregs.
* config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
(mn10300_return_in_memory): Likewise.
(mn10300_builtin_saveregs): Make it static.
* config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
(RETURN_IN_MEMORY): Likewise.
(STRUCT_VALUE): Likewise.
(EXPAND_BUILTIN_SAVEREGS): Likewise.
2004-01-25 Eric Botcazou <ebotcazou@act-europe.fr>
PR bootstrap/13853
* cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
using ccr.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/i860/i860-protos.h: Remove the prototype for
i860_saveregs.
* config/i860/i860.c (i860_saveregs): Make it static.
(i860_struct_value_rtx): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
* config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
I860_STRUCT_VALUE_REGNUM.
(EXPAND_BUILTIN_SAVEREGS): Remove.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(m68hc11_struct_value_rtx): Likewise.
(m68hc11_return_in_memory): Likewise.
* config/m68hc11/m68hc11.h: Remove a commented-out definition
of PROMOTE_PROTOTYPES.
(RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE_REGNUM): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mmix/mmix-protos.h: Remove the prototype for
mmix_setup_incoming_varargs.
* config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(mmix_setup_incoming_varargs): Make it static.
(mmix_struct_value_rtx): New.
* config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
(STRUCT_VALUE_REGNUM): Remove.
(SETUP_INCOMING_VARARGS): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/mips-protos.h: Remove the prototypes for
mips_setup_incoming_varargs and mips_return_in_memory.
* config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_PROMOTE_PROTOTYPES): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(mips_setup_incoming_varargs): Match the prototype for
TARGET_SETUP_INCOMING_VARARGS.
(mips_return_in_memory): Make it static. Add argument fntype.
(mips_strict_argument_naming): New.
* config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
(PROMOTE_FUNCTION_ARGS): Likewise.
(PROMOTE_FUNCTION_RETURN): Likewise.
(STRUCT_VALUE): Likewise.
(RETURN_IN_MEMORY): Likewise.
(SETUP_INCOMING_VARARGS): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(ip2k_return_in_memory): Likewise.
(ip2k_setup_incoming_varargs): Likewise.
* config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_INCOMING): Likewise.
(SETUP_INCOMING_VARARGS): Likewise.
2004-01-25 Kazu Hirata <kazu@cs.umass.edu>
* config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_RETURN_IN_MEMORY): Likewise.
(TARGET_STRICT_ARGUMENT_NAMING): Likewise.
(avr_return_in_memory): Remove.
* config/avr/avr.h (RETURN_IN_MEMORY): Remove.
(STRUCT_VALUE): Likewise.
(STRUCT_VALUE_INCOMING): Likewise.
(STRICT_ARGUMENT_NAMING): Likewise.
2004-01-25 Jan Hubicka <jh@suse.cz>
* combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
2004-01-25 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
(mips_regno_mode_ok_for_base_p): Declare.
* config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
(FRAME_POINTER_REGNUM): Renumber to 78.
(FIRST_PSEUDO_REGISTER): Update comment accordingly.
(BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
(GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
(REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
(REG_MODE_OK_FOR_BASE_P): Likewise.
* config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
entry for 77 to "$arg" and entry for 78 to "$frame".
(mips_regno_to_class): Map 77 and 78 to ALL_REGS.
(mips_reg_mode_ok_for_base_p): Remove.
(mips_regno_mode_ok_for_base_p): New function, derived from old
BASE_REG_P macro. Don't enforce the mips16 stack pointer
restrictions unless we're being strict.
(mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* c-common.h: Fix comment typos.
* c-decl.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* et-forest.c: Likewise.
* flow.c: Likewise.
* function.c: Likewise.
* ifcvt.c: Likewise.
* integrate.c: Likewise.
* jump.c: Likewise.
* postreload.c: Likewise.
* varray.c: Likewise.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* doc/frontends.texi: Update copyright.
* doc/gcov.texi: Likewise.
* doc/gty.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/standards.texi: Likewise.
2004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl>
PR target/12978
* c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
Remove movstrqi_small because it conflicts with movstrqi_large.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(cris_struct_value_rtx): Likewise.
* config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
(CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
STRUCT_VALUE_REGNUM.
(STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
2004-01-24 Ian Lance Taylor <ian@wasabisystems.com>
PR bootstrap/13848
* cse.c (cse_cc_succs): Change the mode of the source expression
as soon as decide we need a new mode. Don't permit changing modes
if we found a match in a successor block.
(cse_condition_code_reg): Save original mode of source expression
so that we know whether we have to change the mode in other
insns.
2004-01-24 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (change_address, adjust_address_1, offset_address,
widen_memory_access): Return early when there is nothing to change.
2004-01-24 Jakub Jelinek <jakub@redhat.com>
* simplify-rtx.c (simplify_relational_operation): Don't
simplify address == constant into address + -constant == 0.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* gcc.c (process_command): Don't internationalize the
Copyright message.
* mips-tfile.c (main): Likewise.
2004-01-24 Andreas Tobler <a.tobler@schweiz.ch>
* cse.c: (cse_cc_succs) Fix comparison warning.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md: Remove extraneous USE in expanders.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Provide prototypes for
h8300_legitimate_constant_p and h8300_legitimate_address_p.
* config/h8300/h8300.c (h8300_legitimate_constant_p): New.
(h8300_rtx_ok_for_base_p): Likewise.
(h8300_legitimate_address_p): Likewise.
* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
h8300_legitimate_constant_p.
(RTX_OK_FOR_BASE_P): Remove.
(GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
2004-01-24 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
(REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
(REG_OK_FOR_INDEX_STRICT_P): Likewise.
(REG_OK_FOR_BASE_STRICT_P): Likewise.
(REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
(REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
(REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
(REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
2004-01-24 Jan Hubicka <jh@suse.cz>
* cselib.c (remove_useless_values): Do not access discarded values.
2004-01-24 Joseph S. Myers <jsm@polyomino.org.uk>
* c-typeck.c (build_conditional_expr): Do not allow non-lvalue
arrays.
2004-01-23 Kazu Hirata <kazu@cs.umass.edu>
* recog.c: Fix a typo in copyright.
2004-01-23 Andrew Pinski <apinski@apple.com>
* config/rs6000/rs6000.md (call): Fix misappiled patch.
(call_value): Likewise.
2004-01-23 Richard Henderson <rth@redhat.com>
PR opt/12941
* combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
(simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
if SHIFT_COUNT_TRUNCATED is set.
2004-01-23 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
separate real and imaginary parts.
* config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
2004-01-23 Hartmut Penner <hpenner@de.ibm.com>
PR target/13674
* config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
loading into GPR.
2004-01-23 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing
change.
* alloc-pool.c (align_four): Kill.
(create_alloc_pool): Align size to eight.
(free_alloc_pool, free_pool): Invalidate deallocated data.
2004-01-23 Ian Lance Taylor <ian@wasabisystems.com>
PR gcc/1532
* cse.c (cse_change_cc_mode): New static function.
(cse_change_cc_mode_insns, cse_cc_succs): Likewise.
(cse_condition_code_reg): New function.
* rtl.h (cse_condition_code_reg): Declare.
* toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
* target.h (struct gcc_target): Add fixed_condition_code_regs and
cc_modes_compatible.
* target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(TARGET_INITIALIZER): Add new initializers.
* targhooks.c (default_cc_modes_compatible): New function.
* targhooks.c (default_cc_modes_compatible): Declare.
* hooks.c (hook_bool_intp_intp_false): New function.
* hooks.h (hook_bool_intp_intp_false): Declare.
* config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
(TARGET_CC_MODES_COMPATIBLE): Define.
(ix86_fixed_condition_code_regs): New static function.
(ix86_cc_modes_compatible): Likewise.
* doc/tm.texi (Condition Code): Document new hooks.
2004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (bad_lval): Renamed to ...
(alpha_bad_lval): ... this.
Removed file list.
Restrict to alpha*-dec-osf*.
* fixinc/fixincl.x: Regenerate.
* fixinc/tests/base/dirent.h: Remove, moving test ...
* fixinc/tests/base/testing.h: ... here, reflecting new name.
2004-01-23 Zack Weinberg <zack@codesourcery.com>
PR c/13814
* c-decl.c (diagnose_mismatched_decls): Also discard a
built-in if we encounter an old-style definition with the
same name.
2004-01-23 Jakub Jelinek <jakub@redhat.com>
* config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
set to default{32,64}.
2004-01-21 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
[!__powerpc64__]: Corrected to handle kernels with changed ucontext.
2004-01-23 Eric Botcazou <ebotcazou@act-europe.fr>
Olivier Hainque <hainque@act-europe.fr>
* fold-const.c (fold_binary_op_with_conditional_arg): Only
build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
2004-01-23 Daniel Jacobowitz <drow@mvista.com>
* config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
size for minipool references.
2004-01-23 Roger Sayle <roger@eyesopen.com>
* real.c (real_floor, real_ceil): Tweak to allow input and output
arguments to overlap.
(real_round): New function to implement round(3m) semantics.
* real.h (real_round): Prototype here.
* builtins.c (fold_builtin_round): New function to constant fold
round, roundf and roundl.
(fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
2004-01-23 Alexandre Oliva <aoliva@redhat.com>
PR optimization/13819
* config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
introduced by 2004-01-20's Jan Hubicka's copy_insn change.
(sh_handle_sp_switch_attribute): Remove warning.
2003-11-30 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets.
2004-01-23 J"orn Rennecke <joern.rennecke@superh.com>
* doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
may or may not return non-NIL.
* postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
check CANNOT_CHANGE_MODE_CLASS
2004-01-23 Jan Hubicka <jh@suse.cz>
* basic-block.h (PROP_POSTRELOAD): New macro.
(CLEANUP_LOG_LINKS): New.
* cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
* toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg.
* cselib.c (value_pool): New.
(new_cselib_val): Use pool.
(cselib_init): Initialize value_pool
(cselib_finish): Free pool.
2004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (scan_record_type): New function.
(function_arg_slotno): Use it to determine which kinds of
registers the record can be passed in.
2004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca>
* config/pa/fptr.c: Fix old-style definition.
2004-01-22 Paolo Bonzini <bonzini@gnu.org>
PR optimization/13724
* cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it
represents the zero bits produced by a ZERO_EXTEND operation.
2004-01-22 Roger Sayle <roger@eyesopen.com>
PR optimization/13821
* simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
correctly calculate the lowpart offset of the contracted subreg.
2004-01-22 Ian Lance Taylor <ian@wasabisystems.com>
* doc/invoke.texi (Optimize Options): Note that --param arguments
are subject to change without notice.
2004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config.gcc (mips-sgi-irix6*o32): Removed.
* config/mips/iris6-o32-as.h: Likewise.
* config/mips/iris6-o32-gas.h: Likewise.
* config/mips/iris6-o32.h: Likewise.
2004-01-22 Jan Hubicka <jh@suse.cz>
* cfgcleanup.c (first_pass): New static variable.
(try_forward_edges): Add work limiting check for threading.
(try_crossjump_bb): Add work limiting check for crossjumping.
(try_optimize_cfg): Maintain first pass variable.
2004-01-22 Bob Wilson <bob.wilson@acm.org>
* config/xtensa/xtensa.c (function_arg): Generalize logic so that it
handles complex and vector modes.
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
(REG_OK_FOR_BASE_P_STRICT): Likewise.
(STRICT): Likewise.
2004-01-22 Daniel Jacobowitz <drow@mvista.com>
* c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
(genrtl_for_stmt): Remove emit_nop calls.
2004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/13713
PR target/13324
* pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
2004-01-22 Daniel Jacobowitz <drow@mvista.com>
* config/arm/arm.c: Include "debug.h".
(thumb_pushpop): Take two new arguments. Add some commentary.
Output frame information when pushing.
(thumb_exit, thumb_unexpanded_epilogue): Update calls to
thumb_pushpop.
(thumb_output_function_prologue): Likewise. Accumulate a CFA
offset, and pass it to thumb_pushpop. Output CFI information.
(thumb_expand_prologue): Add some frame-related markers and notes.
2004-01-22 Ulrich Weigand <uweigand@de.ibm.com>
* config/s390/s390.c (s390_frame_info): Allow large frame sizes
for TARGET_64BIT.
(s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
* config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
2004-01-22 Roger Sayle <roger@eyesopen.com>
Paolo Bonzini <bonzini@gnu.org>
* rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
(subreg_lsb): Change to call new subreg_lsb_1 helper function.
* rtl.h (subreg_lsb_1): Prototype here.
* simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
sign extensions.
2004-01-22 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
macro need not be defined if jump-tables should contain
relative addresses only when -fPIC or -fPIC is in effect.
2004-01-22 Jan Hubicka <jh@suse.cz>
* alias.c (reg_base_value): Turn into varray.
(reg_base_value_size): Kill.
(old_reg_base_value): New deletable varray.
(alias_invariant_size): New variable.
(REG_BASE_VALUE): Update to use varray.
(find_base_value): Likewise.
(record_set): Likewise.
(record_base_value): Likewise.
(memrefs_conflict_p): Likewise.
(record_set): Likewise
(record_base_value): Likewise.
(memrefs_conflict_p): Use alias_invariant_size.
(init_alias_analysis): Use varray; set alias_invariant_size;
rescale other arrays to be sized by maxreg.
(end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.c (function_arg_slotno): Use
FLOAT_TYPE_P to detect FP fields in structures.
(function_arg_record_value_1): Likewise.
(function_arg_record_value_2): Likewise.
2004-01-22 Jan Hubicka <jh@suse.cz>
* function.c (allocate_struct_function): Do not initialize expr, emit
and varasm.
(prepare_function_start): Do it here.
* c-parse.in (maybe_type_qual): Do not produce line number notes.
2004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13559
* config/sparc/sparc.c (function_arg_record_value_3): Revert
to 'word_mode' once the first slot has been filled.
2004-01-22 Olivier Hainque <hainque@act-europe.fr>
* config/sparc/sparc.c (function_arg_record_value_1): Fix
computation of the number of integer registers required.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* config/i386/i386.md: Simplify certain comparisons of
const_int.
2004-01-21 Andrew Pinski <apinski@apple.com>
PR target/13785
* config/rs6000/rs6000.md (call_value): Force operand
1 not operand 0 into a register.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
unwind-dw2-fde.h: Update copyright.
2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-protos.h: Update copyright.
* pa.h: Likewise.
* pa.md: Likewise.
2004-01-21 Caroline Tice <ctice@apple.com>
PR target/12308
* config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
flags register.
(fix_truncdfdi2): Likewise.
(fix_truncsfdi2): Likewise.
(*fix_truncdi_1): Likewise.
(fix_truncxfsi2): Likewise.
(fix_truncdfsi2): Likewise.
(fix_truncsfsi2): Likewise.
(*fix_truncsi_1): Likewise.
(fix_truncxfhi2): Likewise.
(fix_truncdfhi2): Likewise.
(fix_truncsfhi2): Likewise.
(*fix_trunchi_1): Likewise.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* alias.c, basic-block.h, c-common.c, c-common.h,
c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
genautomata.c, genconditions.c, genemit.c, genflags.c,
gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
unwind.h, varray.c, varray.h: Update copyright.
2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/coff.h: Update copyright.
* config/h8300/elf.h: Likewise.
* config/h8300/h8300-protos.h: Likewise.
* config/h8300/h8300.c: Likewise.
* config/h8300/h8300.h: Likewise.
* config/h8300/h8300.md: Likewise.
2004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
ultrix_unistd): New hacks.
* fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
ULTRIX_CONST2_CHECK): Add checks.
* fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
* fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
* fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
* fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
* fixinc/tests/base/locale.h: New file.
* fixinc/fixincl.x: Rebuilt.
2004-01-21 Andreas Jaeger <aj@suse.de>
Michael Matz <matz@suse.de>
* doc/extend.texi (Extended Asm): Clarify memory clobber.
2004-01-21 Jakub Jelinek <jakub@redhat.com>
* crtstuff.c (frame_dummy, __do_global_ctors_1): Call
_Jv_RegisterClasses through a function pointer.
2004-01-21 Falk Hueffner <falk@debian.org>
PR target/12898
* config/alpha/alpha.c (alpha_emit_set_const_1): If
no_new_pseudos, use gen_rtx_SET directly for SImode constants
which need multiple instructions to emit.
2004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (CPP_SPEC): Define.
2004-01-21 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (merge_decls): Kill different_binding_level and
different_tu arguments; simplify throughout.
(duplicate_decls): Likewise.
(pushdecl, merge_translation_unit_decls): Update calls to
duplicate_decls.
2004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
$(SYSTEM_H).
(print-rtl1.o): Depend on $(SYSTEM_H).
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12730
* configure.ac: Delete definition and subsitution of docdir.
Add info, man, srcman and srcinfo to target hooks. Create doc/
directory.
* configure: Regenerate.
* Makefile.in: Don't substitute docdir and delete all references
throughout.
(MAKEINFOFLAGS): Define.
(stmp-docobjdir): Delete.
(INFOFILES, MANFILES): Define.
(info): Call lang.info, srcinfo and lang.srcinfo.
(generated-manpages): Call lang.man, srcman and lang.srcman.
(srcinfo, srcman): New rules to copy back files to source directory.
(doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
(install-man): Revamp rule.
(clean): Update dvi directory.
(distclean): Delete TAGS from front end directorys.
(maintainer-clean): Delete all document files in source directory.
objc/Make-lang.in (objc.man, objc.info): Dummy entries.
(objc.srcman, objc.srcinfo): Likewise.
2004-01-20 Bruce Korb <bkorb@gnu.org>
* fixinc/inclhack.def(math_exception): bypass only for glibc.
(matherr_decl): rename & relocate as exception_structure.
This fix must precede the math_exception fix.
2004-01-20 Roger Sayle <roger@eyesopen.com>
* fold-const.c (fold_convert): Rename to fold_convert_const.
(fold_convert_const): Change arguments to take a tree_code,
a type and the operand/expression to be converted. Return
NULL_TREE if no simplification is possible. Add support for
FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
(fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
Adjust call to fold_convert to match new fold_convert_const.
Avoid modifying the tree passed to fold in-place.
2004-01-21 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
* dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
* doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
2004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
* pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
Likewise. Handle frames larger than 0x7fffffff on 64-bit ports.
(emit_move_sequence): Check scratch_reg first in various if statements.
Extend source simplification to handle all 64-bit CONST_INTs.
(pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
frame size.
(hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
frame offset calculations.
* pa.h (NEW_HP_ASSEMBLER): Add comment.
(MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
LEGITIMATE_64BIT_CONST_INT_P): Define.
(LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat
any CONST_INT as legitimate during and after reload.
(VAL_32_BITS_P, INT_32_BITS): Define.
(LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
2004-01-20 Jan Hubicka <jh@suse.cz>
* emit-rtl.c (verify_rtx_sharing, copy_insn_1,
emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
containing hard regs are shared.
(gen_hard_reg_clobber): New function.
(hard_reg_clobbers): New array.
* genemit.c (gen_exp): Use gen_hard_reg_clobber.
(copy_rtx): Do not copy clobbers containing hard regs.
* rtl.h (gen_hard_reg_clobber): Declare.
2004-01-20 Jan Hubicka <jh@suse.cz>
* varray.c: Include hashtab.h
(varray_descriptor): New structure.
(hash_descriptor, eq_descriptor, varray_descriptor,
print_statistics): New static functions
(varray_init, varray_grow): Update statistics
(dump_varray_statistics): New function.
* varray.h (dump_varray_statistics): Declare.
* toplev.c (finalize): Call it.
* Makefile.in (varray.o): Add dependency.
2004-01-20 Jan Hubicka <jh@suse.cz>
* cselib.c: Include alloc-pool.h
(empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
(elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
(new_elt_list, new_elt_loc_list, unchain_one_elt_list,
unchain_one_elt_loc_list_pool, unchain_one_value,
new_cselib_val): Simplify using allocpool.
(cselib_init): Initialize allocpools.
(cselib_finish): Finish allocpools.
* Makefile.in (cselib.o): Depend on alloc-pool.h
2004-01-20 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_load_call_address): Make the call insn
use $gp if it could be calling a lazy binding stub.
2004-01-20 Kazu Hirata <kazu@cs.umass.edu>
* config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
(TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
(TARGET_STRUCT_VALUE_RTX): Likewise.
* config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
(PROMOTE_FUNCTION_RETURN): Remove.
(STRUCT_VALUE): Remove.
2004-01-20 Denis Chertykov <denisc@overta.ru>
PR bootstrap/13735
* config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
register as pointer after reload.
2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
PR optimization/12440
* loop.c: Include ggc.h.
(loop_optimize): Run garbage collector between optimization of loops.
* Makefile.in (loop.o): Add GGC_H dependency.
2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (function_arg) Handle
vector register special in function without prototype.
(function_arg_advance): Vector parameters get always
GPRs allocated for the linux64 target.
2004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
not TARGET_M32RX_MASK.
2004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr>
PR target/13557
* config/sparc/sparc.c (function_arg): Reorder the cases.
2004-01-19 Per Bothner <per@bothner.com>
Move cpp_reader's line_maps field to a shared global.
* cpphash.h (cpp_reader): Rename line_maps field to line_table
and change the type to a pointer rather than a struct.
* cppinit.c (cpp_push_main_field): Adjust accordingly.
* cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
Likewise.
* cppfiles.c (validate_pch): Likewise.
* cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
Likewise.
* cpperror.c (print_location): Likewise.
* cpplib.h (cpp_create_reader): New line_maps pointer parameter.
* cppinit.c (cpp_create_reader): Handle new parameter.
(cpp_destroy): Don't free line_maps - that's no longer our job.
* input.h (line_table): New variable.
* toplev.c (line_table): Declare variable.
(general_init): Initialize line_table.
* c-opts.c (c_common_init_options): Pass line_table to
cpp_create_reader.
* fix-header.c (read_scan_file): New local variable line_table.
Initialize, and pass it to cpp_create_reader.
* Makefile.in (LIBS, LIBDEPS): Add libcpp.a.
(C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a.
2004-01-19 Per Bothner <per@bothner.com>
Implement a cache for linemap_lookup.
* line-map.h (struct_line_maps): Add cache field.
* line-map.c (linemap_init): Zero cache field.
(linemap_add): Set cache field to offset of newly allocated map.
(linemap_lookup): Use and set cache field.
2004-01-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR optimization/13567
* cse.c (cse_basic_block): Call cse_insn with a non-null
libcall_insn for the last SET insn of a no-confilict block.
2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (target_noncanonical, program_transform_name): Use
immediate define instead of deferred.
(GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
deferred backquote.
2004-01-20 Joseph S. Myers <jsm@polyomino.org.uk>
* c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
true unconditionally.
* c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
Remove.
(build_unary_op, build_modify_expr): Don't handle extended
lvalues.
(build_component_ref, build_conditional_expr): Call non_lvalue
instead of pedantic_non_lvalue.
(build_c_cast): Don't condition use of non_lvalue on pedantic.
* fold-const.c (fold): Don't check pedantic directly for
COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
passed to pedantic_non_lvalue.
* doc/extend.texi: Remove documentation of extended lvalues.
2004-01-19 Roger Sayle <roger@eyesopen.com>
PR optimization/5263
* simplify-rtx.c (associative_constant_p): Delete.
(simplify_associative_operation): Rewrite to linearize terms, and
attempt to simplify new term against both left and right subterms.
(simplify_binary_operation): Call swap_commutative_operands_p on
op0 and op1, not trueop0 and trueop1. Move the initialization of
trueop0 and trueop1 down to where first needed.
(simplify_relational_operation): Likewise.
* rtlanal.c (commutative_operand_precedence): Also order constant
operands using avoid_constant_pool_reference.
2004-01-19 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
don't check memory mode.
(unaligned_memory_operand): Likewise.
(reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
abort for op0 not MEM.
* config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
is not a reg, copy to a scratch first.
(aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
(reload_inqi, reload_inhi): Fix mode of op0.
(reload_inqi_help, reload_inhi_help, reload_outqi_help,
reload_outhi_help): Likewise. Use define_insn_and_split.
* config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
as well as $29 dead.
2004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit
"tls_object" for thread-local objects.
* config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
"#tls" for thread-local sections.
* configure.ac (thread-local checks): Specify --fatal-warnings in
every binutils-specific checks. For sparc*-*-*, test whether the
OS is Solaris and the tools are native and act accordingly.
* configure: Rebuild.
2004-01-19 Jeff Law <law@redhat.com>
* contrib.texi: Update Paolo Carlini's entry. New entries for
Jerry Quinn and Petur Runolfsson.
2004-01-19 Roger Sayle <roger@eyesopen.com>
* config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
size, don't use the larger zero-extending loads.
2004-01-19 Richard Henderson <rth@redhat.com>
* alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
* alpha.md (UNSPEC_NT_LDA): Remove.
(UNSPEC_CVTLQ, cvtlq): New.
(extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
(extendsidi2_fix): Remove.
(extendsidi2 splitter): Use cvtlq.
(extendsidi2 fp peepholes): Remove.
(cvtql): Use SFmode instead of SImode.
(fix_trunc?fsi): Update to match.
(floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
(movsi): Rename from movsi_nofix, remove f alternatives.
(movsi_nt_vms): Similarly.
(movsi_fix, movsi_nt_vms_fix): Remove.
(nt_lda): Remove.
* alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
2004-01-19 Jan Hubicka <jh@suse.cz>
* cgraph.c (cgraph_remove_node): Fix removal from linked list.
* cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
list.
(cgraph_remove_unreachable_nodes): New function
(cgraph_decide_inlining_of_small_function): Fix pasto.
(cgraph_decide_inlining_incrementally): Fix pasto.
(cgrpah_decide_inlining): Likewise; remove unreachable nodes.
2004-01-19 Steven Bosscher <stevenb@suse.de>
* gengtype.c (header_file): Make it static.
(write_types_process_field, write_enum_defn): Minor whitespace fixes.
* gengtype.h (header_file): No longer extern.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
* expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
* stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* stmt.c (HAVE_casesi): Define it not already defined.
(HAVE_tablejump): Likewise.
(expand_end_case_type): Resort to the binary tree method if
neither casesi or tablejump is available.
2004-01-18 Daniel Jacobowitz <drow@mvista.com>
* final.c (final_scan_insn): Make non-static again.
* output.h (final_scan_insn): Re-add prototype.
* config/arc/arc.c (arc_output_function_epilogue): Add NULL
to final_scan_insn call.
* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
* config/mips/mips.c (mips_output_conditional_branch): Likewise.
* config/pa/pa.c (output_lbranch, output_call): Likewise.
* config/sh/sh.c (print_slot): Likewise.
* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
(output_sibcall, sparc_flat_function_epilogue): Likewise.
2004-01-18 Jan Hubicka <jh@suse.cz>
* basic-block.h (try_redirect_by_replacing_jump): Declare.
* cfgcleanup.c (try_optimize_cfg): Use it.
* cfgrtl.c (try_redirect_by_replacing_jump): Export.
(rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
Kill hack.
(cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
Revert:
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
2004-01-18 Kazu Hirata <kazu@cs.umass.edu>
* defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
the size of a pointer in bytes.
2004-01-18 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
live "next" variable, which could lead to an infinite loop.
2004-01-18 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
block.
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
Check for NULL in the chain and remove repeated code.
2004-01-18 Jan Hubicka <jh@suse.cz>
* coverage.c (checksum_string): Rename to ...
(coverage_checksum_string): ... this one, Use crc32_string; recognize
names containing random number and zero the number out in order to get
match.
2004-01-18 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_got_alias_set): Mark for PCH.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
doc/trouble.texi: Remove trailing whitespace.
2004-01-18 Richard Sandiford <rsandifo@redhat.com>
PR target/7618
* config/mips/mips.c: Include cfglayout.h.
(TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
(mips_unspec_offset_high): Add temporary register argument.
(mips_load_call_address): New function, split out from...
(mips_expand_call): ...here.
(mips_output_cplocal): New function.
(mips_output_function_prologue, mips_output_function_epilogue): Use it.
(mips_emit_loadgp): New function, split out from...
(mips_expand_prologue): ...here.
(mips_output_mi_thunk): New function.
2004-01-17 Bernardo Innocenti <bernie@develer.com>
* longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
mcpu32): Remove redundant checks for implied target predefines.
2004-1-17 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
Return type is unsigned int not int.
* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
Likewise.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
"GNU/Linux" and "Microsoft Windows" terminology.
2004-01-18 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
doc/cppopts.texi, doc/extend.texi, doc/install.texi,
doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
@smallexample instead of @example.
2004-01-17 Ziemowit Laski <zlaski@apple.com>
* objc/objc-act.c (build_objc_method_call): Use target
hooks instead of macros to determine if ..._stret
dispatchers should be used (NeXT runtime only).
2004-01-17 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Fix mistake in my
last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
(emit_call_insn_before_sameloc, emit_insn_after_sameloc)
(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
macros.
* reload1.c (emit_reload_insns): Use them.
* emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
(emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
for NULL PATTERN.
2004-01-17 Daniel Jacobowitz <drow@mvista.com>
* final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
(final_scan_insn): Update to take an additional SEEN argument. Emit
a line note after the prologue. Make static.
(line_note_exists): Remove.
(final): Don't initialize line_note_exists. Update call to
final_scan_insn.
* output.h (final_scan_insn): Remove prologue.
* function.c (set_insn_locators): Update comment.
(thread_prologue_and_epilogue_insns): Add a comment.
2004-01-17 Andrew Pinski <pinskia@physics.uc.edu>
PR target/10781
* config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
Prototype.
* config/rs6000/rs6000.c (rs6000_special_round_type_align):
New function.
* config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
* config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
* config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
2004-01-17 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
commit.
* toplev.c (HAVE_conditional_execution): Provide default.
(rest_of_handle_reorder_blocks): For conditional_execution target
update liveness once after all transformations
(rest_of_compilation): Do crossjumping before ce3.
2004-01-17 Geoffrey Keating <geoffk@apple.com>
* alias.c (new_alias_set): Mark last_alias_set for PCH.
(get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
for PCH.
(get_frame_alias_set): Likewise, except rename it to 'frame_set'.
* config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
(get_TOC_alias_set): Mark 'set' for PCH.
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables.
2004-01-17 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
Remove checks for is_ada() and TREE_UNSIGNED.
(subrange_type_die): Emit a byte_size attribute if the subrange
type size is different from the base type size.
(modified_type_die): Replace call to is_ada_subrange_type() by
call to is_subrange_type().
2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
* config/sh/sh.c: Include ggc.h.
2004-01-16 Geoffrey Keating <geoffk@apple.com>
* Makefile.in (MD5_H): New.
(fold-const.o): Depend on md5.h.
(dwarf2out.o): Likewise.
(cppfiles.o): Likewise.
* cppfiles.c: Include md5.h.
(should_stack_file): Check against list read from PCH file.
(struct pchf_data): New.
(pchf): New variable.
(struct pchf_adder_info): New.
(pchf_adder): New.
(pchf_save_compare): New.
(_cpp_save_file_entries): New.
(_cpp_read_file_entries): New.
(struct pchf_compare_data): New.
(pchf_compare): New.
(check_file_against_entries): New.
* cpphash.h (_cpp_save_file_entries): Prototype.
(_cpp_read_file_entries): Prototype.
* cpppch.c (cpp_write_pch_state): Write the list of headers.
(cpp_read_state): Read the list of headers.
2004-01-17 Jan Hubicka <jh@suse.cz>
* c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
builtin_expect specially.
* params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
(PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
* invoke.texi (max-inline-insns-single): Set to 100.
(large-function-insns): Set to 3000.
2004-01-16 Eric Christopher <echristo@redhat.com>
Chandrakala Chavva <cchavva@redhat.com>
* cppcharset.c (one_iso88591_to_utf8): New function.
(convert_iso88591_utf8): Ditto. Use.
(conversion_tab): Use.
(_cpp_input_to_utf8): New function.
(_cpp_init_iconv_buffer): Ditto.
(_cpp_close_iconv_buffer): Ditto.
* cpphash.h: Prototype new functions.
(cpp_buffer): Add input_cset_desc.
* cppinit.c: Add input_charset default.
* cpplib.c (cpp_push_buffer): Support init and
close of iconv.
* cpplib.h (cpp_options): Add input_charset.
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* system.h (ASM_OUTPUT_SECTION_NAME): Poison.
* config/alpha/unicosmk.h: Remove a commented-out definition
of ASM_OUTPUT_SECTION_NAME.
* config/stormy16/stormy16.h: Likewise.
2004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
(alpha___extern_prefix_sys_stat): ... this.
Apply to <sys/mount.h>, too.
Tweak to match more variations.
* fixinc/tests/base/sys/stat.h: Adapt for new hackname.
* fixinc/inclhack.def (alpha___extern_prefix,
alpha___extern_prefix_standards): New hacks to obey
__PRAGMA_EXTERN_PREFIX.
* fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
test.
* fixinc/tests/base/standards.h: Likewise.
* fixincl/inclhack.def (alpha_pthread): Tweak to match more
variations.
New testcase.
* fixinc/tests/base/pthread.h: Handle it.
* fixincl/inclhack.def (bad_lval): Sort file list.
Add many missing files up to Tru64 UNIX V5.1B.
* gcc/fixinc/tests/base/libgen.h: Renamed to ...
* gcc/fixinc/tests/base/dirent.h: ... this to match new file list
order.
* fixinc/fixincl.x: Regenerate.
2004-01-16 Mark Mitchell <mark@codesourcery.com>
* version.c (version_string): Change to 3.5.0.
* doc/include/gcc-common.texi (version-GCC): Likewise.
2004-01-16 Jan Hubicka <jh@suse.cz>
* i386.md (load_tp_di): Fix pasto.
PR opt/13608
* i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
* c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
pp_c_character_constant, pp_c_floating_constant,
pp_c_additive_expression, pp_c_shift_expression,
pp_c_equality_expression, pp_c_and_expression,
pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
pp_c_logical_and_expression): Remove inline modifier.
* dwarf2out.c (get_AT): Likewise.
* et-forest.c (et_splay): Likewise.
* ra.h (ra_alloc, ra_calloc): Likewise
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* config/frv/frv-protos.h: Fix comment formatting.
* config/frv/frv.c: Likewise.
* config/frv/frv.h: Likewise.
* config/frv/frv.md: Likewise.
* config/frv/frvbegin.c: Likewise.
* config/frv/frvend.c: Likewise.
2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
* system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
* doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
LINKER_DOES_NOT_WORK_WITH_DWARF2.
(LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
2004-01-16 J"orn Rennecke <joern.rennecke@superh.com>
PR 11864
* postreload.c (reload_cse_simplify_operands): Don't remove
implicit extension from LOAD_EXTEND_OP.
2004-01-16 Jan Hubicka <jh@suse.cz>
PR opt/11350
* cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
after reload.
* cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
rtl_try_redirect_by_replacing_branch): Likewise.
2004-01-15 Geoffrey Keating <geoffk@apple.com>
PR pch/13689
* alias.c (struct alias_set_entry): Mark for GC.
(alias_sets): Make static, mark for GC.
(record_alias_subset): Use GC to allocate alias structures.
* varray.c (element): Make generic varrays GCed.
PR pch/13361
* c-typeck.c (constructor_asmspec): Delete.
(struct initializer_stack): Delete field 'asmspec'.
(start_init): Delete saving of asmspec.
(finish_init): Don't update constructor_asmspec.
* dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
* stmt.c (expand_asm): Duplicate strings from tree.
(expand_asm_operands): Likewise.
* tree.c (tree_size): Update computation of size of STRING_CST.
(make_node): Don't make STRING_CST nodes.
(build_string): Allocate string with tree node.
* tree.def (STRING_CST): Update comment.
* tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
(tree_string): Place contents of string in tree node.
* config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
from tree.
* config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
altivec operands.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* c-common.h: Fix comment formatting.
* c-cppbuiltin.c: Likewise.
* c-pragma.c: Likewise.
* calls.c: Likewise.
* collect2.c: Likewise.
* cppcharset.c: Likewise.
* cpptrad.c: Likewise.
* dbxout.c: Likewise.
* defaults.h: Likewise.
* dwarf2out.c: Likewise.
* fold-const.c: Likewise.
* genautomata.c: Likewise.
* genconditions.c: Likewise.
* genflags.c: Likewise.
* gengtype.c: Likewise.
* integrate.c: Likewise.
* loop.c: Likewise.
* predict.c: Likewise.
* sdbout.c: Likewise.
2004-01-15 Zack Weinberg <zack@codesourcery.com>
* config/ia64/ia64.md (*movti_internal): C output template
extracted to ia64.c.
(*movti_internal_reg): Delete.
(reload_inti, reload_outti): Use the correct mode on operand 2
in the first place, don't fix it up in the output template.
(movtf, reload_ointf, reload_outtf): New expanders.
(*movtf_internal): New define_insn_and_split.
* config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
make static; do not hand TFmode CONST_DOUBLEs to split_double.
(ia64_split_tmode_move): New function, body mostly pulled
from ia64.md:*movti_internal.
(ia64_function_arg_words): New function, extracted common
logic from ia64_function_arg et seq.
(ia64_function_arg_offset): Likewise. Handle correctly the
case of a scalar quantity 16 bytes wide with only 8-byte alignment.
(ia64_function_arg, ia64_function_arg_partial_nregs)
(ia64_function_arg_advance): Use ia64_function_arg_words and
ia64_function_arg_offset.
(ia64_function_value): TCmode does not go in float regs.
(ia64_secondary_reload_class): Also handle TFmode.
* config/ia64/ia64-protos.h: Remove prototype for
ia64_split_timode; add prototype for ia64_split_tmode_move.
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (MAINT): Make it an immediate assignment.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Remove useless calls to gen_lowpart.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/coff.h: Replace Hitachi with Renesas.
* config/h8300/elf.h: Likewise.
* config/h8300/h8300-protos.h: Likewise.
* config/h8300/h8300.c: Likewise.
* config/h8300/h8300.h: Likewise.
* config/h8300/h8300.md: Likewise.
* config/h8300/lib1funcs.asm: Likewise.
2004-01-15 Andrew Pinski <apinski@apple.com>
* config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
around it.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (h8300_return_in_memory): New.
(TARGET_STRUCT_VALUE_RTX): Likewise.
(TARGET_RETURN_IN_MEMORY): Likewise.
* config/h8300/h8300.h (STRUCT_VALUE): Remove.
(RETURN_IN_MEMORY): Likewise.
2004-01-15 Richard Earnshaw <rearnsha@arm.com>
PR optimization/13375
* gcse.c (handle_avail_expr): Just return if the source is not a
single set.
2004-01-15 Richard Earnshaw <rearnsha@arm.com>
Daniel Jacobowitz <drow@mvista.com>
* arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
(EQUIV): Define.
(ARM_FUNC_ALIAS): New macro.
* arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
* arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR optimization/12372
* calls.c (expand_call): Add call_fusage data for stack arguments in
constant calls.
2004-01-15 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static.
(rs6000_elf_declare_function_name): Formatting.
* config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
2004-01-15 Jan Hubicka <jh@suse.cz>
PR bootstrap/13692
* sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
previous patch.
2004-01-15 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
integer regs of the same call-savedness.
2004-01-15 Andreas Schwab <schwab@suse.de>
PR bootstrap/13562
* config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
status for NOTB/NOTW/NEGW methods.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Update dump file names. Fix a typo.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* builtins.c (expand_builtin_va_end): Don't use
EXPAND_BUILTIN_VA_END.
* system.h (EXPAND_BUILTIN_VA_END): Poison.
* config/d30v/d30v.h: Remove a commented-out definition of
EXPAND_BUILTIN_VA_END.
* config/stormy16/stormy16.h: Likewise.
2004-01-15 Kazu Hirata <kazu@cs.umass.edu>
* system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
* targhooks.c (default_struct_value_rtx): Don't use
STRUCT_VALUE_INCOMING_REGNUM.
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir. Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule. Don't substitute
parsedir and delete all references throughout. Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.
* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi (FUNCTION_VALUE): Fix a typo.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* doc/tm.texi: Replace RETURN_IN_MEMORY with
TARGET_RETURN_IN_MEMORY.
2004-01-15 Jan Hubicka <jh@suse.cz>
* builtins.c (std_expand_builtin_va_arg): Align operand when needed.
* i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
functions accepting SSE arguments
(function_arg): Warn only when asked to warn.
* i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
2004-01-14 Joseph S. Myers <jsm@polyomino.org.uk>
* c-parse.in (stmts_and_decls): Make label at end of compound
statement a hard error.
2004-01-14 Jan Hubicka <jh@suse.cz>
* cgraph.c (create_edge): Use local.redefined_extern_inline.
* cgraph.h (cgraph_local_info): Sort fields by size; add
redefined_extern_inline
(cgraph_global_info): Sort fields by size.
(cgraph_node): Likewise.
* cgraphunit.c (cgraph_finalize_function): Se
local.redefined_extern_inline on redefinition.
(cgraph_analyze_function): Use it; fix formating.
2004-01-14 Jan Hubicka <jh@suse.cz>
PR c++/10776
* sched-deps.c (trye_dependency_cache, anti_dependency_cache,
outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
bitmaps
(cache_size): New variable
(add_dependence): Update use; canonize early memory locations
(sched_analyze_1): Likewise.
(sched_analyze_2): Likewise.
(init_dependency_caches): Initialize bitmaps.
(free_dependency_caches): Free bitmaps
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
targetm.calls.strict_argument_naming().
* target.h: Likewise.
2004-01-14 Richard Henderson <rth@redhat.com>
PR debug/13231
* dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
instructions.
2004-01-14 Richard Henderson <rth@redhat.com>
PR c++/12491
* except.c (struct eh_region): Add u.fixup.resolved.
(resolve_one_fixup_region): Split out from ...
(resolve_fixup_regions): ... here.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/alpha/alpha.h (STRUCT_VALUE): Remove.
* config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
(STRUCT_VALUE): Remove.
2004-01-14 Steven Bosscher <stevenb@suse.de>
* system.h: Poison PROMOTED_MODE
* integrate.c (expand_inline_function): Don't mention the
PROMOTED_MODE.
* loop.c (update_giv_derive): Same.
* tree.h (DECL_RTL): Same.
2004-01-14 J"orn Rennecke <joern.rennecke@superh.com>
PR target/9365
* sh.c (gen_block_redirect): Add special handling of RETURN.
(gen_far_branch) Don't call gen_stuff_delay_slot if there is no
far branch target (i.e. it's a return).
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* regrename.c (find_oldest_value_reg): Fix a warning.
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
PR bootstrap/12527
* config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
Move linux-gas.h and linux-elf.h before aout.h.
* arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
2004-01-14 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
(CONST_INT, VOIDmode, ...).
2004-01-14 Richard Earnshaw <rearnsha@arm.com>
* regrename.c (find_oldest_value_reg): If the replacement uses
multiple hard registers, check that all of them are in CLASS.
2004-01-14 Jan Hubicka <jh@suse.cz>
* alias.c (get_alias_set): Initialize alias set to 0 when subset is
impossible.
2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in: Define MAINT from --enable-maintainer-mode.
2004-01-14 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (rs6000_stack_info)
Calculate always vrsave_mask if TARGET_ALTIVEC.
(rs6000_emit_prologue): Emit code for vrsave
only if TARGET_ALTIVEC_VRSAVE.
(rs6000_emit_epilogue): Likewise.
2004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
* config/sparc/sparc.md (tie_add32): Fix pasto.
(tie_add64): Likewise.
2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/iq2000/iq2000-protos.h: Fix comment formatting.
* config/iq2000/iq2000.c: Likewise.
* config/iq2000/iq2000.md: Likewise.
2004-01-14 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
(subrange_type_die): Add handle for nameless subrange types.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Replace do_movsi with
h8300_expand_movsi.
* config/h8300/h8300.c (do_movsi): Change to
h8300_expand_movsi.
* config/h8300/h8300.md (movsi): Replace do_movsi with
h8300_expand_movsi.
(movsf): Likewise.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.c (dosize): Change to
h8300_emit_stack_adjustment. Update callers.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300.md (movstrictqi): Add an alternative with
the source being post_inc. Tighten the predicate for the
destination to register_operand.
(movstricthi): Likewise.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
* varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
* doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
2004-01-14 Jan Hubicka <jh@suse.cz>
Partial fix PR c++/12850
* cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
at zero nest level.
2004-01-13 Bernardo Innocenti <bernie@develer.com>
* config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
pseudo-register.
2004-01-13 Devang Patel <dpatel@apple.com
PR debug/7078
* dbxout.c (dbxout_symbol_name): Emit mangled names for
NAMESPACE_DECL memebers.
2004-01-13 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/12709
* c-common.c (finish_fname_decls): Use the chain only if the
tree is an expr_stmt.
2004-01-13 Vladimir Makarov <vmakarov@redhat.com>
* rtl.def: Add comment about new option in automata_option.
* genautomata.c (PROGRESS_OPTION): New macro.
(progress_flag): New global variable.
(gen_automata_option): Process `progress'.
(transform_insn_regexps, check_unit_distributions_to_automata,
make_automaton, NDFA_to_DFA, build_automaton, create_automata,
expand_automata, write_automata): Print about the progress only if
progress_flag. Remove fflush.
(initiate_automaton_gen): Process command line flag `-progress'.
* doc/md.texi: Describe the new option.
2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* cfg.c (dump_bb): Dump entry edges.
2004-01-13 Richard Earnshaw <rearnsha@arm.com>
* arm.c (thumb_legitimate_address_p): Only allow constant pool
references from SImode.
* arm.md (thumb_movhi_insn): Don't allow minipool references.
2004-01-13 Kazu Hirata <kazu@cs.umass.edu>
* system.h (TEXT_SECTION): Poison.
* varasm.c (text_section): Don't use TEXT_SECTION.
* config/sh/sh.c (sh_file_start): Fix a comment typo.
* doc/tm.texi (TEXT_SECTION): Remove.
2004-01-13 Ben Elliston <bje@wasabisystems.com>
* doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
2004-01-12 James E Wilson <wilson@specifixinc.com>
* unwind-libunwind.c: Delete.
2004-01-12 Zack Weinberg <zack@codesourcery.com>
PR 13656
* c-decl.c (diagnose_mismatched_decls): Whenever newtype or
oldtype is set, set *newtypep or *oldtypep too. Do not set
them at the very end.
(validate_proto_after_old_defn): Restructure for comprehensibility;
make error messages clearer.
2004-01-12 Zack Weinberg <zack@codesourcery.com>
* varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
(VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
* varray.c: No need to prototype error.
(varray_check_failed): Wrap long string onto two lines.
(varray_underflow): New function.
2004-01-13 Steven Bosscher <stevenb@suse.de>
PR c++/13376
* function.h (struct function): Kill `name' field.
(current_function_name): Make it an extern function.
* function.c (current_function_name): New function.
* graph.c: Update all uses of current_function_name.
* gcse.c: Likewise.
* config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
* config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
instead of a strcmp with "main".
2004-01-13 Jan Hubicka <jh@suse.cz>
* c-decl.c (diagnose_mismatched_decls): Fix warning calls.
* cgraphunit.c (cgraph_optimize_function): Always do
optimize_inline_calls when there is always_inline callee.
(cgraph_decide_inlining): Fix formating.
* tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
functions.
(expand_call_inline): Likewise.
* toplev.h (sorry): Fix prototype.
2004-01-12 Roger Sayle <roger@eyesopen.com>
* builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
conditional jumps that drop through to unconditional jumps or the
end of the sequence.
2004-01-13 Jan Hubicka <jh@suse.cz>
* alias.c (new_alias_set): Construct the alias_set varray.
(init_alias_once): Don't do it here.
2004-01-12 Marc Espie <espie@openbsd.org>
* system.h: handle YYBYACC like YYBISON.
2004-01-12 Jonathan Merriman <jonm@dualitymedia.com>
PR target/10847
* config.gcc: No longer includes conflicting header sparc/sol2.h when
building on sparc64-*-openbsd*.
2004-01-12 Andrew Pinski <pinskia@physics.uc.edu>
PR debug/13539
* dbxout.c (dbxout_type): Protected inheritance is not
private but protected.
2004-01-12 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
2004-01-12 Kazu Hirata <kazu@cs.umass.edu>
PR optimization/12508.
* combine.c (try_combine): Remove a dead set in a parallel
even if its destination is a subreg.
Revert:
2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
* combine.c (simplify_set): Don't move a subreg in SET_SRC to
SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
2004-01-12 Geoffrey Keating <geoffk@apple.com>
* real.c: Update copyright date.
* emit-rtl.c: Likewise.
* rtl.h: Likewise.
* dwarf2out.c: Likewise.
* config/rs6000/darwin-ldouble.c: Likewise.
* config/rs6000/rs6000.md: Likewise.
2004-01-12 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
TFmode to SImode libfuncs.
2004-01-12 Roger Sayle <roger@eyesopen.com>
PR middle-end/11397
* varasm.c (assemble_alias): Remove weak aliases from weak_decls.
2004-01-12 Jan Hubicka <jh@suse.cz>
PR opt/12826
* loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
stored.
PR opt/12863
* cfgcleanup.c (label_is_jump_target_p): Move to...
* rtlanal.c (label_is_jump_target_p): ... here.
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru
edges unified with branch edges.
2004-01-12 Richard Earnshaw <rearnsha@arm.com>
* simplify-rtx.c (simplify_immed_subreg): Correctly extract the
high word of an integral CONST_DOUBLE.
2004-01-12 Paul Brook <paul@codesourcery.com>
* simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
2004-01-12 J"orn Rennecke <joern.rennecke@superh.com>
PR target/13585
* sh-protos.h (check_use_sfunc_addr): Declare.
* sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
* sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
2004-01-12 Jan Hubicka <jh@suse.cz>
* alias.c: Invlude varray.h
(alias_sets): Turn into varray.
(get_alias_set_entry): Use VARRAY; mark inline.
(mems_in_disjoint_alias_sets_p): Mark inline.
(record_alias_subset): Use varray.
(init_alias_once): Initialize varray.
(new_alias_set): Grow array.
* varray.c: Make VARRAY_GENERIC_PTR non GTYized.
2004-01-12 Jan Hubicka <jh@suse.cz>
Partial fix for PR opt/10776 II
* cselib.c: Include params.h
(cselib_invalidate_mem): Limit amount of nonconflicting memory
locations.
* params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
* Makefile.in (cselib.o): Depend on params.h
2004-01-12 Richard Sandiford <rsandifo@redhat.com>
* combine.c (combine_simplify_rtx): Don't pass VOIDmode to
simplify_unary_operation if the operand has a known mode.
2004-01-12 Hartmut Penner <hpenner@de.ibm.com>
PR target/13534
* gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
predicate to handle 'ld' conform addresses.
* gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
contraint.
(EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
are memory contraints.
* gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
New prototype.
* gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
Change 'o' to 'Y' constraint.
(*movdf_softfloat64): Ditto.
2004-01-12 Bernardo Innocenti <bernie@develer.com>
* gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
brace-enclosed syntax in all C output statements.
2004-01-12 David Edelsohn <edelsohn@gnu.org>
PR target/13401
* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Objective-C language type value is 14.
2004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
PR c/12148
* config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
`int' in a number of places to make sure we always have a SImode
and not a HImode. Add a 'L' suffix to a number of constants.
2004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa.c: Don't include obstack.h.
* pa.md: Correct constraint in pattern for loading PIC label address.
2004-01-11 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
before defining.
2004-01-11 Steven Bosscher <stevenb@suse.de>
PR fortran/9972
* toplev.c (rest_of_handle_inline): Also consider functions
for deferral if the language is GNU F77.
2004-01-11 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (diagnose_arglist_conflict): Add missing space to
diagnostic messages.
2004-01-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/13392
* builtins.c (expand_builtin_expect_jump): Handle conditional jumps
to drop through label. Don't fall back to SCC even when conditional
jump has not been found.
2004-01-11 Jan Hubicka <jh@suse.cz>
* invoke.texi: Fix syntax error in previous patch.
Partial fix for PR opt/10776
* Makefile.in (reload.o): Include param.h
* params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
* reload.c: Include params.h.
(find_equiv_reg): Work limiting check.
* invoke.texi: Document.
2004-01-11 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (mips_symbolic_constant_p): Don't allow
out-of-bounds accesses to string constants. Simplify mips16
case accordingly.
2004-01-11 Richard Sandiford <rsandifo@redhat.com>
PR optimization/13469
* toplev.c (rest_of_compilation): Call purge_all_dead_edges after
reload_cse_regs (-fnon-call-exceptions only).
2004-01-11 Kazu Hirata <kazu@cs.umass.edu>
* config/mcore/lib1.asm: Fix comment formatting.
* config/mcore/mcore-elf.h: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mcore/mcore.h: Likewise.
* config/mcore/mcore.md: Likewise.
2004-01-10 Zack Weinberg <zack@codesourcery.com>
* c-decl.c (duplicate_decls): Break apart into...
(diagnose_arglist_conflict, validate_proto_after_old_defn)
(locate_old_defn, diagnose_mismatched_decls, merge_decls):
... these new functions. Restructure for comprehensibility.
Remove various archaic special cases. Always report the
location of the previous declaration when a diagnostic is issued.
(redeclaration_error_message): Fold into diagnose_mismatched_decls.
(match_builtin_function_types): Delete unnecessary forward declaration.
2004-01-10 Zack Weinberg <zack@codesourcery.com>
* genautomata.c (make_automaton, NDFA_to_DFA):
Print progress bars with '.' characters instead of '*'.
(build_automaton): Change notes to match.
2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md: Use define_constants for unspec and
unspec_volatile.
2004-01-10 Jan Hubicka <jh@suse.cz>
PR opt/11635
* expr.c (expand_expr_real): More curefully expand union casts.
2004-01-10 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md (flush_icache): Use 1 for
unspec_volatile.
2004-01-10 David Edelsohn <edelsohn@gnu.org>
James E Wilson <wilson@specifixinc.com>
PR debug/12860
* dbxout.c (dbxout_symbol): Remove initialization of
current_sym_code, current_sym_value, and current_sym_addr.
(dbxout_symbol_location): Same.
(dbxout_prepare_symbol): Zero current_sym_code,
current_sym_value, and current_sym_addr.
2004-01-10 Richard Sandiford <rsandifo@redhat.com>
* tree.c (get_unwidened): Reorder conditions so that the null pointer
check is done first.
2004-01-09 Eric Christopher <echristo@redhat.com>
* toplev.c (rest_of_handle_cfg): Add reg_scan pass
if we're running mark_constant_function.
2004-01-09 Jeff Bailey <jbailey@nisa.net>
PR target/12561
* config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
2004-01-09 Andrew Pinski <pinskia@physics.uc.edu>
PR debug/11231
* dbxout.c (dbxout_type_fields): Return if any item is
error_mark_node or the type is error_mark_node.
2004-01-09 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/darwin-ldouble.c: Add big comment explaining
exactly what is expected as a 'long double'.
(_xlqadd): When a value to be returned is representable as a
'double', just return it directly, do not construct it using a union.
Also, correct final fixup.
(_xlqmul): Likewise.
(_xlqdiv): Likewise.
* real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
* config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
2004-01-09 Richard Henderson <rth@redhat.com>
* recog.c (constrain_operands): Validate mem operands.
2004-01-09 James E Wilson <wilson@specifixinc.com>
* gcc.c (init_spec): Remove -lunwind from shared case.
* conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
2004-01-09 Steve Ellcey <sje@cup.hp.com>
* configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
* configure: Regenerate
2004-01-09 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/11234
* c-typeck.c (build_c_cast): If pedantic, warn for conversions
between function and object pointers.
(digest_init): When comparing a pointer to function type to the
target type, only apply TREE_TYPE once to the pointer to function
type.
* except.c (for_each_eh_label_1): Treat data as a pointer to a
function pointer rather than casting it to a function pointer.
(for_each_eh_label): Update caller.
* recog.h (struct insn_data): Use a struct or union for output.
* genoutput.c (output_insn_data): Update.
* final.c (get_insn_template): Update.
2004-01-09 Mark Mitchell <mark@codesourcery.com>
* expr.h (expand_expr): Make it a macro, not a function.
(expand_expr_real): New function.
* expr.c (store_expr): Adjust logic for deciding whether or not to
copy the value returned by expand_expr.
(expand_expr): Rename to ...
(expand_expr_real): ... this. Add alt_rtl parameter. Adjust
calls to language hooks.
* c-common.h (c_expand_expr): Adjust prototype.
* c-common.c (c_expand_expr): Add alt_rtl parameter.
* langhooks-def.h (lhd_expand_expr): Change prototype.
* langhooks.c (lhd_expand_expr): Add all_rtl parameter.
* langhooks.h (lang_hooks): Change type of expand_expr.
* stmt.c (stmt_status): Add x_last_expr_alt_rtl.
(last_expr_alt_rtl): Likewise.
(expand_expr_stmt_value): Set last_expr_alt_rtl.
(clear_last_expr): Clear it.
(expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
(expand_end_bindings): Save and restor last_expr_alt_rtl.
* tree.def (RTL_EXPR): Give it an additional operand.
* tree.h (RTL_EXPR_ALT_RTL): New macro.
2004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
* config/m32r/m32r.c (call26_operand): Allow in PIC mode.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
PR target/13380.
* config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
or (ne:SI (reg:CC 17) (const_int 0)).
Be specific about modes wherever possible.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.c (m32r_expand_block_move): Call
gen_movestrsi_internal with two more arguments.
(m32r_output_block_move): Adjust operand numbers.
Properly update the source and destination pointers.
* config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
'r+'. Change the set detinations to match_operand.
2004-01-09 Kazu Hirata <kazu@cs.umass.edu>
* final.c (FIRST_INSN_ADDRESS): Remove.
(shorten_branches): Don't use FIRST_INSN_ADDRESS.
* system.h (FIRST_INSN_ADDRESS): Poison.
* config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
* config/m32r/m32r-protos.h: Remove the prototype for
m32r_first_insn_address.
* config/m32r/m32r.c (m32r_first_insn_address): Remove.
* config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
* doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
2004-01-09 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (gen_enumeration_type_die): Return the DIE that
we just created.
(is_ada_subrange_type): DIEs for enumeration subtypes should be
emitted as subrange types too.
(subrange_type_die): Add handling of enumeration subtypes.
2004-01-08 Richard Henderson <rth@redhat.com>
PR opt/12441
Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.c (aligned_operand): Be prepared for SUBREGed registers.
(ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
(ix86_address_cost): Be prepared for SUBREGed registers.
(legitimate_address_p): Accept SUBREGed registers.
2004-01-08 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in: Rename configure.in to configure.ac
* doc/sourcebuild.texi: Likewise.
* configure: Regenerate.
* config.in: Regenerate.
2004-01-08 Stuart Hastings <stuart@apple.com>
* config/i386/i386.md: Typos in MMX/SSE immediate shifts.
2004-01-08 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_decide_inlining): Fix typo.
2004-01-08 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
(UNSPEC_FIX_TRUNC_TF): New constant.
(movtf_internal): Make splitter active only when insn is active.
(extenddftf2): Rewrite to properly load zero into low part.
(extenddftf2_internal): New.
(extendsftf2): Rewrite.
(truncdftf2): Correct length.
(floatditf2): Delete.
(fix_trunc_helper): New.
(fix_trunctfdi2): Use fix_trunc_helper.
(fix_trunctfsi2): Likewise.fix_trunc
(fix_trunctfsi2_internal): New.
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
addresses are legitimate on Darwin even when flag_pic.
(rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
non-offsettable addresses for loads of TFmode constants.
2004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
variables in the appropriate bss section.
2004-01-09 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
target_flags has MASK_POWERPC64 when -m64.
* config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
to 620, 630, power3, power4 and rs64a entries.
* config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
2004-01-08 Richard Sandiford <rsandifo@redhat.com>
* simplify-rtx.c (simplify_immed_subreg): Fix construction of
floating-point constants.
2004-01-08 J. Brobecker <brobecker@gnat.com>
* dwarf2out.c (subrange_type_die): Add context_die parameter.
Create the subrange_type DIE using the given context DIE.
(modified_type_die): Update call to subrange_type_die.
2004-01-08 Zack Weinberg <zack@codesourcery.com>
* dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
Add multiple-include guard.
2004-01-08 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
all vector constant loadable by vsplt*.
(output_vec_const_move): Likewise.
2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/6024
* c-typeck.c (comptypes): Only treat enumerated types in the same
translation unit as compatible with each other when they are the
same type.
* doc/extend.texi: Update.
2004-01-07 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/12165
* c-decl.c (grokdeclarator): Take type qualifiers of typedefed
array type from the array element type.
2004-01-07 Alan Modra <amodra@bigpond.net.au>
* config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
* config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
* config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
(DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
* config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
2004-01-06 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
(DWARF2_DEBUGGING_INFO): Define.
(PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
* config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
* config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
for irix as.
(SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
* config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
* config/mips/iris5gas.h: Ditto.
(DBX_DEBUGGING_INFO): Remove.
(DWARF2_DEBUGGING_INFO): Ditto.
(MIPS_DEBUGGING_INFO): Ditto.
(PREFERRED_DEBUGGING_TYPE): Ditto.
* config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
(PREFERRED_DEBUGGING_TYPE): Ditto.
(SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
* config/mips/elf64.h: Ditto.
2004-01-06 Jan Hubicka <jh@suse.cz>
* Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
(STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
2004-01-06 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
(TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
* config/rs6000/darwin-ldouble.c: New.
* emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
for constants.
(constant_subword): Delete.
* rtl.h (constant_subword): Delete prototype.
(immed_double_const): Is not in varasm.c.
* simplify-rtx.c (simplify_immed_subreg): New.
(simplify_subreg): Use simplify_immed_subreg.
* config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
than trying to generate RTL directly.
(fix_trunctfsi2): Use expand_fix rather than trying to generate
RTL directly.
* dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
2004-01-06 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
function into a separate macro.
(read_only_data_section): Add void argument.
(private_data_section): Same.
(read_only_private_data_section): Same.
(toc_section): Same.
2004-01-06 Jan Hubicka <jh@suse.cz>
* invoke.texi: Remove typo in last change.
PR target/10301
* config.gcc: Accept opteron and athlon-64 as variants
of k8.
* i386.c (override_options): Likewise.
* invoke.texi (i386 -mtune): Expand documentation.
2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
* alias.c: Fix comment typos.
* builtins.c: Likewise.
* cfg.c: Likewise.
* df.c: Likewise.
* dominance.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* genrecog.c: Likewise.
* gensupport.c: Likewise.
* ggc-zone.c: Likewise.
* integrate.c: Likewise.
* local-alloc.c: Likewise.
* loop.c: Likewise.
* recog.c: Likewise.
* regmove.c: Likewise.
* reg-stack.c: Likewise.
* reorg.c: Likewise.
* rtlanal.c: Likewise.
* rtl.h: Likewise.
* sched-ebb.c: Likewise.
* simplify-rtx.c: Likewise.
* toplev.c: Likewise.
* varasm.c: Likewise.
2004-01-06 Kazu Hirata <kazu@cs.umass.edu>
* doc/install.texi: Fix typos.
* doc/invoke.texi: Likewise.
* doc/md.texi: Likewise.
2004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
* config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
2004-01-06 Jan Hubicka <jh@suse.cz>
* i386.c (init_cumulative_args): Add handling of MMX_REGPARM.
(function_arg_advance): Do not pass aggregates in SSE; deal handling
of MMX_REGPARM.
(function_arg): Add new warnings about ABI changes; fix SSE_REGPARM;
add MMX_REGPARM.
* i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
(SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
(MMX_REGPARM_MAX): Similarly for -mmmx.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/sh/linux.h: Fix comment formatting.
* config/sh/netbsd-elf.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sh/vxworks.h: Likewise.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
* toplev.c (output_file_directive): Don't use
ASM_OUTPUT_MAIN_SOURCE_FILENAME.
2004-01-05 Daniel Berlin <dberlin@dberlin.org>
* ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
(USING_MMAP): We don't support non-mmap.
(struct alloc_chunk): Steal 1 bit from typecode, use it to mark
large objects.
(struct page_entry): Remove bytes_free.
(struct page_table_chain): Remove.
(struct globals): Remove page_table member.
(loookup_page_table_entry): Function deleted.
(set_page_table_entry): Ditto.
(ggc_allocated_p): No longer need page table lookups.
(ggc_marked_p): Ditto.
(alloc_small_page): Don't care about bytes_free anymore.
(alloc_large_page): Round up size.
(ggc_alloc_zone_1): Mark large objects as such, and calculate
their size the new way.
Remove page table lookups and setting.
(ggc_get_size): Calculate large object size the new way.
(sweep_pages): Redo to account for fact that we no longer have
bytes_free.
(ggc_collect): No longer need to reincrement bytes_free.
(ggc_pch_alloc_object): Handle new large objects properly.
(ggc_pch_read): Put PCH stuff into it's own uncollected zone.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Remove a page break.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/avr/avr.c (avr_output_function_prologue): Remove an
extra pair of curly braces.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.c: Fix comment formatting.
* config/mn10300/mn10300.h: Likewise.
2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree.h: Update documentation on nothrow_flag.
* print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
types.
2004-01-05 Kazu Hirata <kazu@cs.umass.edu>
* doc/invoke.texi: Remove traces of dead ports.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
option.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
PR target/12945
* coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
counter labels.
* config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
(mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check
the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
(mips_symbol_insns): Don't trust the local/global classification.
(m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
(override_options): Make -mabicalls -fno-unit-at-a-time imply
-mno-explicit-relocs.
(mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
between local and global symbols.
2004-01-05 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
(mips_preferred_reload_class): Declare.
* config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
(EXTRA_CONSTRAINT): Update accordingly.
(PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
* config/mips/mips.c (mips_dangerous_for_la25_p): New function.
(mips_preferred_reload_class): New function. Prefer LEA_REGS if
mips_dangerous_for_la25_p.
(mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
if mips_dangerous_for_la25_p.
2004-01-05 Bernardo Innocenti <bernie@develer.com>
* config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
warning.
2004-01-04 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Use AC_PROG_CPP_WERROR.
* configure: Regenerate.
2004-01-04 Zack Weinberg <zack@codesourcery.com>
* .cvsignore: Add autom4te.cache.
2004-01-04 Richard Sandiford <rsandifo@redhat.com>
* doc/invoke.texi: Revamp documentation of MIPS options. Remove
-mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
-m4650, -mfix7000 and -(m)no-crt0. Put endianness options first,
then architecture options, then ABI options. General rewording.
2004-01-04 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/3414
* doc/extend.texi: Clarify definition of malloc attribute.
2004-01-04 Jan Hubicka <jh@suse.cz>
* Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
* cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
* cgraph.h (cgraph_edge): Replace inline_call by inline_failed
(cgraph_inline_p): Add extra argument reason.
* cgraphunit.c: Minor formating fixes.
cgraph_first_inlined_callee): New functions.
(record_call_1): Record builtins too.
(cgraph_analyze_function): Update inline_failed messages.
(cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
(cgraph_check_inline_limits): Likewise; Add argument reason.
(cgraph_set_inline_failed): New static function.
(cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
reasons.
(cgraph_inline_p): Add new argument reason.
* tree-inline.c (expand_call_inline): Update warning.
2004-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
with modern equivalents.
* configure: Regenerate.
* configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
* aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
* configure: Regenerate.
* doc/install.texi: Note that 'gcc' is now a 2.57 directory.
* configure.in: Rename to configure.ac.
* configure.ac: Renamed from configure.in; make minimum necessary
changes for autoconf 2.5x.
* aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
* configure: Regenerate with autoconf 2.57.
2004-01-03 Kazu Hirata <kazu@cs.umass.edu>
* config/mips/linux.h: Fix comment formatting.
* config/mips/mips.c: Likewise.
* config/mips/mips.h: Likewise.
* config/mips/mips.md: Likewise.
* config/mips/netbsd.h: Likewise.
* config/mips/windiss.h: Likewise.
2004-01-02 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (fp constant pool splitter): Reorg suppression
for sse and 387; add suppression for mmx.
2004-01-02 Andrew Pinski <pinskia@physics.uc.edu>
* loop.c (loop_optimize): Free all loops_info's mems.
* c-typeck.c (finish_init): Free spelling_base before
setting it again.
* cfgloop.c (flow_loops_find): Always free the sbitmap
headers.
* predict.c (estimate_probability): Free bbs after being
done with it.
2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
* config/mn10300/mn10300.h (PREDICATE_CODES): Add
const_8bit_operand and call_address_operand.
2004-01-02 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls
when there is nothing to inline but warnings are requested.
(cgraph_decide_inlining): Fix memory leak.
2004-01-02 Jan Hubicka <jh@suse.cz>
* expr.c (store_constructor): Fix pasto in previous patch.
2004-01-02 Kazu Hirata <kazu@cs.umass.edu>
* config/i386/cygming.h: Fix comment formatting.
* config/i386/djgpp.h: Likewise.
* config/i386/gthr-win32.c: Likewise.
* config/i386/i386-interix.h: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/openbsd.h: Likewise.
* config/i386/winnt.c: Likewise.
* config/i386/xm-mingw32.h: Likewise.
2004-01-02 Joseph S. Myers <jsm@polyomino.org.uk>
* doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
copyright and last modification dates.
2004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de>
* doc/install.texi (Specific): Mention x86_64.
2004-01-01 Hans-Peter Nilsson <hp@bitrange.com>
* builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
Call force_operand on plus_constant result.
2004-01-01 Jan Hubicka <jh@suse.cz>
* expmed.c (store_bit_field, extract_bit_field): Use new named patterns
* expr.c (store_constructor): Use vec_init pattern.
* genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
* optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
(vec_set_optab, vec_extract_optab, vec_init_optab): New.
* i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
New patterns.
(sse2_unpc?pd): Fix pattern.
(sse2_movlpd): Kill.
(sse2_movsd): Deal with movlpd too.
* i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
(ix86_expand_vector_init): New.
* emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
* md.texi (vec_set, vec_extract): Document
2003-12-31 Jan Hubicka <jh@suse.cz>
PR opt/13473
* recog.c (validate_replace_rtx_1): Take care for RTL sharing inside
ASM input operands
PR opt/12617
* toplev.c (dump_file_index): Reorder ce3 and bbro.
(dump_file): Likewise.
(rest_of_compilation): Likewise.
PR debug/13367
* cgraph.c (cgraph_function_possibly_inlined): Even with
flag_really_no_inline we inline always_inline functions.
* cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
for non-always_inline functions when there is flag_really_no_inline.
(cgraph_decide_inlining): Limit work done when not inlining.
(cgraph_decide_inlining_incrementally): Likewise.
(cgraph_optimize_function): Check whether something got inlined.
* c-objc-common.c (c_disregard_inline_limits): Do not always inline
extern inline functions when not inlining.
* opts.c (decode_options): Disable crossjumping at -O1
* invoke.texi (-O1): Document change.
From-SVN: r76701
2004-01-27 12:49:31 +00:00
|
|
|
Restrict target load migration not to re-use registers in any basic block
|
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
fcall-saved-
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-fcall-saved-<register> Mark <register> as being preserved across functions
|
2003-06-21 15:59:31 +00:00
|
|
|
|
|
|
|
fcall-used-
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-fcall-used-<register> Mark <register> as being corrupted by function calls
|
2003-06-21 15:59:31 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero for -fcaller-saves: allocate values in regs that need to
|
|
|
|
; be saved across function calls, if that produces overall better code.
|
|
|
|
; Optional now, so people can test it.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fcaller-saves
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_caller_saves) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Save registers around function calls
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
loop.texi: Document the Omega linear constraints solver.
* doc/loop.texi: Document the Omega linear constraints solver.
* doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
omega-hash-table-size, omega-max-keys, and
omega-eliminate-redundant-constraints.
* tree-pass.h (pass_check_data_deps): Declared.
* omega.c: New.
* omega.h: New.
* timevar.def (TV_CHECK_DATA_DEPS): Declared.
* tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
pass_check_data_deps): New.
* tree-data-ref.c (init_data_ref): Remove declaration.
(dump_data_dependence_relation): Dump DDR_INNER_LOOP.
(analyze_array): Renamed init_array_ref, move up initializations.
(init_data_ref): Renamed init_pointer_ref. Moved before its call.
Removed arguments that are set to NULL.
(analyze_indirect_ref): Correct indentation, correct call to
init_pointer_ref.
(object_analysis): Call init_array_ref instead of analyze_array.
(initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
(access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
of DR_ACCESS_FNS_ADDR.
(init_omega_eq_with_af, omega_extract_distance_vectors,
omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
ddr_consistent_p): New.
(compute_affine_dependence): Check consistency of ddrs when
flag_check_data_deps is passed.
(analyze_all_data_dependences): Uncomment.
(tree_check_data_deps): New.
* tree-data-ref.h: Include omega.h.
(DR_ACCESS_FNS_ADDR): Removed.
(data_dependence_relation): Add inner_loop.
(DDR_INNER_LOOP): New.
* common.opt (fcheck-data-deps): New.
* tree-flow.h (tree_check_data_deps): Declare.
* Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
(OBJS-common): Depend on omega.o.
(omega.o): Define.
* passes.c (pass_check_data_deps): Scheduled.
* params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
PARAM_VECT_MAX_VERSION_CHECKS,
PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
From-SVN: r122749
2007-03-09 13:39:49 +01:00
|
|
|
fcheck-data-deps
|
|
|
|
Common Report Var(flag_check_data_deps)
|
|
|
|
Compare the results of several data dependence analyzers.
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fcommon
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_no_common,0) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Do not put uninitialized globals in the common section
|
2003-06-22 13:44:40 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
fcompare-debug
|
|
|
|
Driver
|
|
|
|
; Converted by the driver to -fcompare-debug= options.
|
|
|
|
|
common.opt (fcompare-debug=, [...]): New.
gcc/ChangeLog:
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=, gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt,
compare-debug-self-opt and compare-debug-auxbase-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_auxbase_opt, debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(cc1_options): Use it instead of normal auxbase computation for
the second compare-debug compilation.
(compare_files): New.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
(compare_debug_auxbase_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* coverage.c (coverage_begin_output): Don't overwrite .gcno file
during -fcompare-debug-second compilation.
gcc/cp/ChangeLog:
* repo.c (get_base_filename): Use aux_base_name rather than
alternate temporary file during second compare debug compilation.
(finish_repo): Skip during -fcompare-debug-second.
gcc/ada/ChangeLog:
* lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
gcc/fortran/ChangeLog:
* options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
gcc/objc/ChangeLog:
* objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
From-SVN: r148271
2009-06-08 07:46:02 +00:00
|
|
|
fcompare-debug=
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
|
common.opt (fcompare-debug=, [...]): New.
gcc/ChangeLog:
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=, gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt,
compare-debug-self-opt and compare-debug-auxbase-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_auxbase_opt, debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(cc1_options): Use it instead of normal auxbase computation for
the second compare-debug compilation.
(compare_files): New.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
(compare_debug_auxbase_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* coverage.c (coverage_begin_output): Don't overwrite .gcno file
during -fcompare-debug-second compilation.
gcc/cp/ChangeLog:
* repo.c (get_base_filename): Use aux_base_name rather than
alternate temporary file during second compare debug compilation.
(finish_repo): Skip during -fcompare-debug-second.
gcc/ada/ChangeLog:
* lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
gcc/fortran/ChangeLog:
* options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
gcc/objc/ChangeLog:
* objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
From-SVN: r148271
2009-06-08 07:46:02 +00:00
|
|
|
|
|
|
|
fcompare-debug-second
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver RejectNegative Var(flag_compare_debug)
|
common.opt (fcompare-debug=, [...]): New.
gcc/ChangeLog:
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=, gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt,
compare-debug-self-opt and compare-debug-auxbase-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_auxbase_opt, debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(cc1_options): Use it instead of normal auxbase computation for
the second compare-debug compilation.
(compare_files): New.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
(compare_debug_auxbase_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* coverage.c (coverage_begin_output): Don't overwrite .gcno file
during -fcompare-debug-second compilation.
gcc/cp/ChangeLog:
* repo.c (get_base_filename): Use aux_base_name rather than
alternate temporary file during second compare debug compilation.
(finish_repo): Skip during -fcompare-debug-second.
gcc/ada/ChangeLog:
* lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
gcc/fortran/ChangeLog:
* options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
gcc/objc/ChangeLog:
* objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
From-SVN: r148271
2009-06-08 07:46:02 +00:00
|
|
|
Run only the second compilation of -fcompare-debug
|
|
|
|
|
invoke.texi (-fvar-tracking-assignments): New.
gcc/ChangeLog:
* doc/invoke.texi (-fvar-tracking-assignments): New.
(-fvar-tracking-assignments-toggle): New.
(-fdump-final-insns=file): Mark filename as optional.
(--param min-nondebug-insn-uid): New.
(-gdwarf-@{version}): Mention version 4.
* opts.c (common_handle_option): Accept it.
* tree-vrp.c (find_assert_locations_1): Skip debug stmts.
* regrename.c (regrename_optimize): Drop last. Don't count debug
insns as uses. Don't reject change because of debug insn.
(do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
from the chain starter, and check for inexact matches in
DEBUG_INSNS.
(scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
(build_def_use): Simplify and fix the marking of DEBUG_INSNs.
* sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
* fwprop.c (forward_propagate_and_simplify): ...into debug insns.
* doc/gimple.texi (is_gimple_debug): New.
(gimple_debug_bind_p): New.
(is_gimple_call, gimple_assign_cast_p): End sentence with period.
* doc/install.texi (bootstrap-debug): More details.
(bootstrap-debug-big, bootstrap-debug-lean): Document.
(bootstrap-debug-lib): More details.
(bootstrap-debug-ckovw): Update.
(bootstrap-time): New.
* tree-into-ssa.c (mark_def_sites): Skip debug stmts.
(insert_phi_nodes_for): Insert debug stmts.
(rewrite_stmt): Take iterator. Insert debug stmts.
(rewrite_enter_block): Adjust.
(maybe_replace_use_in_debug_stmt): New.
(rewrite_update_stmt): Use it.
(mark_use_interesting): Return early for debug stmts.
* tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
stmts before replacing stmt.
(move_computations_stmt): Likewise.
* ira-conflicts.c (add_copies): Skip debug insns.
* regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
(regstat_bb_compute_ri): Skip debug insns.
* tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
check_loop_closed_ssa_stmt): Skip debug stmts.
* tree-tailcall.c (find_tail_calls): Likewise.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
* tree.h (MAY_HAVE_DEBUG_STMTS): New.
(build_var_debug_value_stat): Declare.
(build_var_debug_value): Define.
(target_for_debug_bind): Declare.
* reload.c (find_equiv_reg): Skip debug insns.
* rtlanal.c (reg_used_between_p): Skip debug insns.
(side_effects_p): Likewise.
(canonicalize_condition): Likewise.
* ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
insns never depend on debug insns.
(create_ddg_dep_no_link): Likewise.
(add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
Don't add inter-loop dependencies for debug insns.
(build_intra_loop_deps): Likewise.
(create_ddg): Count debug insns.
* ddg.h (struct ddg::num_debug): New.
(num_backargs): Pair up with previous int field.
* diagnostic.c (diagnostic_report_diagnostic): Skip notes on
-fcompare-debug-second.
* final.c (get_attr_length_1): Skip debug insns.
(rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
* gcc.c (invoke_as): Call compare-debug-dump-opt.
(driver_self_specs): Map -fdump-final-insns to
-fdump-final-insns=..
(get_local_tick): New.
(compare_debug_dump_opt_spec_function): Test for . argument and
compute output name. Compute temp output spec without flag name.
Compute -frandom-seed.
(OPT): Undef after use.
* cfgloopanal.c (num_loop_insns): Skip debug insns.
(average_num_loop_insns): Likewise.
* params.h (MIN_NONDEBUG_INSN_UID): New.
* gimple.def (GIMPLE_DEBUG): New.
* ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
* auto-inc-dec.c (merge_in_block): Skip debug insns.
(merge_in_block): Fix whitespace.
* toplev.c (flag_var_tracking): Update comment.
(flag_var_tracking_assignments): New.
(flag_var_tracking_assignments_toggle): New.
(process_options): Don't open final insns dump file if we're not
going to write to it. Compute defaults for var_tracking.
* df-scan.c (df_insn_rescan_debug_internal): New.
(df_uses_record): Handle debug insns.
* haifa-sched.c (ready): Initialize n_debug.
(contributes_to_priority): Skip debug insns.
(dep_list_size): New.
(priority): Use it.
(rank_for_schedule): Likewise. Schedule debug insns as soon as
they're ready. Disregard previous debug insns to make decisions.
(queue_insn): Never queue debug insns.
(ready_add, ready_remove_first, ready_remove): Count debug insns.
(schedule_insn): Don't reject debug insns because of issue rate.
(get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
(queue_to_ready): Skip and discount debug insns.
(choose_ready): Let debug insns through.
(schedule_block): Check boundary debug insns. Discount debug
insns, schedule them early. Adjust whitespace.
(set_priorities): Check for boundary debug insns.
(add_jump_dependencies): Use dep_list_size.
(prev_non_location_insn): New.
(check_cfg): Use it.
* tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
stmts.
(remove_unused_ivs): Reset debug stmts.
* modulo-sched.c (const_iteration_count): Skip debug insns.
(res_MII): Discount debug insns.
(loop_single_full_bb_p): Skip debug insns.
(sms_schedule): Likewise.
(sms_schedule_by_order): Likewise.
(ps_has_conflicts): Likewise.
* caller-save.c (refmarker_fn): New.
(save_call_clobbered_regs): Replace regs with saved mem in
debug insns.
(mark_referenced_regs): Take pointer, mark and arg. Adjust.
Call refmarker_fn mark for hardregnos.
(mark_reg_as_referenced): New.
(replace_reg_with_saved_mem): New.
* ipa-pure-const.c (check_stmt): Skip debug stmts.
* cse.c (cse_insn): Canonicalize debug insns. Skip them when
searching back.
(cse_extended_basic_block): Skip debug insns.
(count_reg_usage): Likewise.
(is_dead_reg): New, split out of...
(set_live_p): ... here.
(insn_live_p): Use it for debug insns.
* tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
(execute_optimize_stdarg): Likewise.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Don't regard
changes in debug stmts as changes.
* sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
(moveup_expr): Don't move across debug insns. Don't move
debug insn if it would create a bookkeeping block.
(moveup_expr_cached): Don't use cache for debug insns that
are heads of blocks.
(compute_av_set_inside_bb): Skip debug insns.
(sel_rank_for_schedule): Schedule debug insns first. Remove
dead code.
(block_valid_for_bookkeeping_p); Support lax searches.
(create_block_for_bookkeeping): Adjust block numbers when
encountering debug-only blocks.
(find_place_for_bookkeeping): Deal with debug-only blocks.
(generate_bookkeeping_insn): Accept no place to insert.
(remove_temp_moveop_nops): New argument full_tidying.
(prepare_place_to_insert): Deal with debug insns.
(advance_state_on_fence): Debug insns don't start cycles.
(update_boundaries): Take fence as argument. Deal with
debug insns.
(schedule_expr_on_boundary): No full_tidying on debug insns.
(fill_insns): Deal with debug insns.
(track_scheduled_insns_and_blocks): Don't count debug insns.
(need_nop_to_preserve_insn_bb): New, split out of...
(remove_insn_from_stream): ... this.
(fur_orig_expr_not_found): Skip debug insns.
* rtl.def (VALUE): Move up.
(DEBUG_INSN): New.
* tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug
stmts.
(nearest_common_dominator_of_uses): Take debug_stmts argument.
Set it if debug stmts are found.
(statement_sink_location): Skip debug stmts. Propagate
moving defs into debug stmts.
* ifcvt.c (first_active_insn): Skip debug insns.
(last_active_insns): Likewise.
(cond_exec_process_insns): Likewise.
(noce_process_if_block): Likewise.
(check_cond_move_block): Likewise.
(cond_move_convert_if_block): Likewise.
(block_jumps_and_fallthru_p): Likewise.
(dead_or_predicable): Likewise.
* dwarf2out.c (debug_str_hash_forced): New.
(find_AT_string): Add comment.
(gen_label_for_indirect_string): New.
(get_debug_string_label): New.
(AT_string_form): Use it.
(mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
several operations that cannot be represented with DWARF opcodes.
(loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
(dwarf2out_var_location): Take during-call mark into account.
(output_indirect_string): Update comment. Output if there are
label and references.
(prune_indirect_string): New.
(prune_unused_types): Call it if debug_str_hash_forced.
More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
(dw_long_long_const): Remove.
(struct dw_val_struct): Change val_long_long type to rtx.
(print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
(output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
component instead of HOST_BITS_PER_LONG.
(output_loc_operands): Likewise. For const8* assert
HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
(output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
rather than HOST_BITS_PER_LONG is >= 64.
(add_AT_long_long): Remove val_hi and val_lo arguments, add
val_const_double.
(size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
HOST_BITS_PER_LONG for dw_val_class_long_long.
(add_const_value_attribute): Adjust add_AT_long_long caller. Don't
handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
(dwarf_stack_op_name): Handle DW_OP_implicit_value and
DW_OP_stack_value.
(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_implicit_value.
(extract_int): Move prototype earlier.
(mem_loc_descriptor): For SUBREG punt if inner
mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
(loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
instead of Pmode size.
(loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
(concat_loc_descriptor, concatn_loc_descriptor,
loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
(add_location_or_const_value_attribute): Likewise. For single
location loc_lists attempt to use add_const_value_attribute
for constant decls. Add DW_AT_const_value even if
NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
in its expression.
* cfgbuild.c (inside_basic_block_p): Handle debug insns.
(control_flow_insn_p): Likewise.
* tree-parloops.c (eliminate_local_variables_stmt): Handle debug
stmt.
(separate_decls_in_region_debug_bind): New.
(separate_decls_in_region): Process debug bind stmts afterwards.
* recog.c (verify_changes): Handle debug insns.
(extract_insn): Likewise.
(peephole2_optimize): Skip debug insns.
* dse.c (scan_insn): Skip debug insns.
* sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
Pass it on.
(setup_id_for_insn): Handle debug insns.
(maybe_tidy_empty_bb): Adjust whitespace.
(tidy_control_flow): Skip debug insns.
(sel_remove_insn): Adjust for debug insns.
(sel_estimate_number_of_insns): Skip debug insns.
(create_insn_rtx_from_pattern): Handle debug insns.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-.h (sel_bb_end): Declare.
(sel_bb_empty_or_nop_p): New.
(get_all_loop_exits): Use it.
(_eligible_successor_edge_p): Likewise.
(return_nop_to_pool): Adjust.
* tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
* ira-lives.c (process_bb_node_lives): Skip debug insns.
* gimple-pretty-print.c (dump_gimple_debug): New.
(dump_gimple_stmt): Use it.
(dump_bb_header): Skip gimple debug stmts.
* regmove.c (optimize_reg_copy_1): Discount debug insns.
(fixup_match_2): Likewise.
(regmove_backward_pass): Likewise. Simplify combined
replacement. Handle debug insns.
* function.c (instantiate_virtual_regs): Handle debug insns.
* function.h (struct emit_status): Add x_cur_debug_insn_uid.
* print-rtl.h: Include cselib.h.
(print_rtx): Print VALUEs. Split out and recurse for
VAR_LOCATIONs.
* df.h (df_inns_rescan_debug_internal): Declare.
* gcse.c (alloc_hash_table): Estimate n_insns.
(cprop_insn): Don't regard debug insns as changes.
(bypass_conditional_jumps): Skip debug insns.
(one_pre_gcse_pass): Adjust.
(one_code_hoisting_pass): Likewise.
(compute_ld_motion_mems): Skip debug insns.
(one_cprop_pass): Adjust.
* tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
(if_convertible_stmt_p): Handle debug stmts.
* init-regs.c (initialize_uninitialized_regs): Skip debug insns.
* tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
* ira-build.c (create_bb_allocnos): Skip debug insns.
* tree-flow-inline.h (has_zero_uses): Discount debug stmts.
(has_single_use): Likewise.
(single_imm_use): Likewise.
(num_imm_uses): Likewise.
* tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
(create_outofssa_var_map): Likewise.
* lower-subreg.c (adjust_decomposed_uses): New.
(resolve_debug): New.
(decompose_multiword_subregs): Use it.
* tree-dfa.c (find_referenced_vars): Skip debug stmts.
* emit-rtl.c: Include params.h.
(cur_debug_insn_uid): Define.
(set_new_first_and_last_insn): Set cur_debug_insn_uid too.
(copy_rtx_if_shared_1): Handle debug insns.
(reset_used_flags): Likewise.
(set_used_flags): LIkewise.
(get_max_insn_count): New.
(next_nondebug_insn): New.
(prev_nondebug_insn): New.
(make_debug_insn_raw): New.
(emit_insn_before_noloc): Handle debug insns.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_debug_insn_before_noloc): New.
(emit_insn_after_noloc): Handle debug insns.
(emit_jump_insn_after_noloc): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_insn_after): Take loc from earlier non-debug insn.
(emit_jump_insn_after): Likewise.
(emit_call_insn_after): Likewise.
(emit_debug_insn_after_setloc): New.
(emit_debug_insn_after): New.
(emit_insn_before): Take loc from later non-debug insn.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before): Likewise.
(emit_debug_insn_before_setloc): New.
(emit_debug_insn_before): New.
(emit_insn): Handle debug insns.
(emit_debug_insn): New.
(emit_jump_insn): Handle debug insns.
(emit_call_insn): Likewise.
(emit): Likewise.
(init_emit): Take min-nondebug-insn-uid into account.
Initialize cur_debug_insn_uid.
(emit_copy_of_insn_after): Handle debug insns.
* cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
location of single rhs in place.
(maybe_dump_rtl_for_gimple_stmt): Dump lineno.
(floor_sdiv_adjust): New.
(cell_sdiv_adjust): New.
(cell_udiv_adjust): New.
(round_sdiv_adjust): New.
(round_udiv_adjust): New.
(wrap_constant): Moved from cselib.
(unwrap_constant): New.
(expand_debug_expr): New.
(expand_debug_locations): New.
(expand_gimple_basic_block): Drop hiding redeclaration. Expand
debug bind stmts.
(gimple_expand_cfg): Expand debug locations.
* cselib.c: Include tree-pass.h.
(struct expand_value_data): New.
(cselib_record_sets_hook): New.
(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
(cselib_clear_table): Move, and implemnet in terms of...
(cselib_reset_table_with_next_value): ... this.
(cselib_get_next_unknown_value): New.
(discard_useless_locs): Don't discard preserved values.
(cselib_preserve_value): New.
(cselib_preserved_value_p): New.
(cselib_preserve_definitely): New.
(cselib_clear_preserve): New.
(cselib_preserve_only_values): New.
(new_cselib_val): Take rtx argument. Dump it in details.
(cselib_lookup_mem): Adjust.
(expand_loc): Take regs_active in struct. Adjust. Silence
dumps unless details are requested.
(cselib_expand_value_rtx_cb): New.
(cselib_expand_value_rtx): Rename and reimplment in terms of...
(cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
without details. Copy more subregs. Try to resolve values
using a callback. Wrap constants.
(cselib_subst_to_values): Adjust.
(cselib_log_lookup): New.
(cselib_lookup): Call it.
(cselib_invalidate_regno): Don't count preserved values as
useless.
(cselib_invalidate_mem): Likewise.
(cselib_record_set): Likewise.
(struct set): Renamed to cselib_set, moved to cselib.h.
(cselib_record_sets): Adjust. Call hook.
(cselib_process_insn): Reset table when it would be cleared.
(dump_cselib_val): New.
(dump_cselib_table): New.
* tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
(remove_forwarder_block): Support moving debug stmts.
* cselib.h (cselib_record_sets_hook): Declare.
(cselib_expand_callback): New type.
(cselib_expand_value_rtx_cb): Declare.
(cselib_reset_table_with_next_value): Declare.
(cselib_get_next_unknown_value): Declare.
(cselib_preserve_value): Declare.
(cselib_preserved_value_p): Declare.
(cselib_preserve_only_values): Declare.
(dump_cselib_table): Declare.
* cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
(try_crossjump_to_edge): Likewise.
(delete_unreachable_blocks): Remove dominant GIMPLE blocks after
dominated blocks when debug stmts are present.
* simplify-rtx.c (delegitimize_mem_from_attrs): New.
* tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
(set_var_live_on_entry): Likewise.
* loop-invariant.c (find_invariants_bb): Skip debug insns.
* cfglayout.c (curr_location, last_location): Make static.
(set_curr_insn_source_location): Don't avoid bouncing.
(get_curr_insn_source_location): New.
(get_curr_insn_block): New.
(duplicate_insn_chain): Handle debug insns.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
into debug stmts.
* common.opt (fcompare-debug): Move to sort order.
(fdump-unnumbered-links): Likewise.
(fvar-tracking-assignments): New.
(fvar-tracking-assignments-toggle): New.
* tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
because of debug stmts.
(mark_stmt_if_obviously_necessary): Mark debug stmts.
(eliminate_unnecessary_stmts): Walk dominated blocks before
dominators.
* tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
* ira.c (memref_used_between_p): Skip debug insns.
(update_equiv_regs): Likewise.
* sched-deps.c (sd_lists_size): Accept empty list.
(sd_init_insn): Mark debug insns.
(sd_finish_insn): Unmark them.
(sd_add_dep): Reject non-debug deps on debug insns.
(fixup_sched_groups): Give debug insns group treatment.
Skip debug insns.
(sched_analyze_reg): Don't mark debug insns for sched before call.
(sched_analyze_2): Handle debug insns.
(sched_analyze_insn): Compute next non-debug insn. Handle debug
insns.
(deps_analyze_insn): Handle debug insns.
(deps_start_bb): Skip debug insns.
(init_deps): Initialize last_debug_insn.
* tree-ssa.c (target_for_debug_bind): New.
(find_released_ssa_name): New.
(propagate_var_def_into_debug_stmts): New.
(propagate_defs_into_debug_stmts): New.
(verify_ssa): Skip debug bind stmts without values.
(warn_uninialized_vars): Skip debug stmts.
* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
* rtl.c (rtx_equal_p_cb): Handle VALUEs.
(rtx_equal_p): Likewise.
* ira-costs.c (scan_one_insn): Skip debug insns.
(process_bb_node_for_hard_reg_moves): Likewise.
* rtl.h (DEBUG_INSN_P): New.
(NONDEBUG_INSN_P): New.
(MAY_HAVE_DEBUG_INSNS): New.
(INSN_P): Accept debug insns.
(RTX_FRAME_RELATED_P): Likewise.
(INSN_DELETED_P): Likewise
(PAT_VAR_LOCATION_DECL): New.
(PAT_VAR_LOCATION_LOC): New.
(PAT_VAR_OCATION_STATUS): New.
(NOTE_VAR_LOCATION_DECL): Reimplement.
(NOTE_VAR_LOCATION_LOC): Likewise.
(NOTE_VAR_LOCATION_STATUS): Likewise.
(INSN_VAR_LOCATION): New.
(INSN_VAR_LOCATION_DECL): New.
(INSN_VAR_LOCATION_LOC): New.
(INSN_VAR_LOCATION_STATUS): New.
(gen_rtx_UNKNOWN_VAR_LOC): New.
(VAR_LOC_UNKNOWN_P): New.
(NOTE_DURING_CALL_P): New.
(SCHED_GROUP_P): Accept debug insns.
(emit_debug_insn_before): Declare.
(emit_debug_insn_before_noloc): Declare.
(emit_debug_insn_beore_setloc): Declare.
(emit_debug_insn_after): Declare.
(emit_debug_insn_after_noloc): Declare.
(emit_debug_insn_after_setloc): Declare.
(emit_debug_insn): Declare.
(make_debug_insn_raw): Declare.
(prev_nondebug_insn): Declare.
(next_nondebug_insn): Declare.
(delegitimize_mem_from_attrs): Declare.
(get_max_insn_count): Declare.
(wrap_constant): Declare.
(unwrap_constant): Declare.
(get_curr_insn_source_location): Declare.
(get_curr_insn_block): Declare.
* tree-inline.c (insert_debug_decl_map): New.
(processing_debug_stmt): New.
(remap_decl): Don't create new mappings in debug stmts.
(remap_gimple_op_r): Don't add references in debug stmts.
(copy_tree_body_r): Likewise.
(remap_gimple_stmt): Handle debug bind stmts.
(copy_bb): Skip debug stmts.
(copy_edges_for_bb): Likewise.
(copy_debug_stmt): New.
(copy_debug_stmts): New.
(copy_body): Copy debug stmts at the end.
(insert_init_debug_bind): New.
(insert_init_stmt): Take id. Skip and emit debug stmts.
(setup_one_parameter): Remap variable earlier, register debug
mapping.
(estimate_num_insns): Skip debug stmts.
(expand_call_inline): Preserve debug_map.
(optimize_inline_calls): Check for no debug_stmts left-overs.
(unsave_expr_now): Preserve debug_map.
(copy_gimple_seq_and_replace_locals): Likewise.
(tree_function_versioning): Check for no debug_stmts left-overs.
Init and destroy debug_map as needed. Split edges unconditionally.
(build_duplicate_type): Init and destroy debug_map as needed.
* tree-inline.h: Include gimple.h instead of pointer-set.h.
(struct copy_body_data): Add debug_stmts and debug_map.
* sched-int.h (struct ready_list): Add n_debug.
(struct deps): Add last_debug_insn.
(DEBUG_INSN_SCHED_P): New.
(BOUNDARY_DEBUG_INSN_P): New.
(SCHEDULE_DEBUG_INSN_P): New.
(sd_iterator_cond): Accept empty list.
* combine.c (create_log_links): Skip debug insns.
(combine_instructions): Likewise.
(cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
return value is always unshared.
(struct rtx_subst_pair): New.
(auto_adjust_pair): New.
(propagate_for_debug_subst): New.
(propagate_for_debug): New.
(try_combine): Skip debug insns. Propagate removed defs into
debug insns.
(next_nonnote_nondebug_insn): New.
(distribute_notes): Use it. Skip debug insns.
(distribute_links): Skip debug insns.
* tree-outof-ssa.c (set_location_for_edge): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* var-tracking.c: Include cselib.h and target.h.
(enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
MO_VAL_SET.
(micro_operation_type_name): New.
(enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
(struct micro_operation_def): Update comments.
(decl_or_value): New type. Use instead of decls.
(struct emit_note_data_def): Add vars.
(struct attrs_def): Use decl_or_value.
(struct variable_tracking_info_def): Add permp, flooded.
(struct location_chain_def): Update comment.
(struct variable_part_def): Use decl_or_value.
(struct variable_def): Make var_part a variable length array.
(valvar_pool): New.
(scratch_regs): New.
(cselib_hook_called): New.
(dv_is_decl_p): New.
(dv_is_value_p): New.
(dv_as_decl): New.
(dv_as_value): New.
(dv_as_opaque): New.
(dv_onepart_p): New.
(dv_pool): New.
(IS_DECL_CODE): New.
(check_value_is_not_decl): New.
(dv_from_decl): New.
(dv_from_value): New.
(dv_htab_hash): New.
(variable_htab_hash): Use it.
(variable_htab_eq): Support values.
(variable_htab_free): Free from the right pool.
(attrs_list_member, attrs_list_insert): Use decl_or_value.
(attrs_list_union): Adjust.
(attrs_list_mpdv_union): New.
(tie_break_pointers): New.
(canon_value_cmp): New.
(unshare_variable): Return possibly-modified slot.
(vars_copy_1): Adjust.
(var_reg_decl_set): Adjust. Split out of...
(var_reg_set): ... this.
(get_init_value): Adjust.
(var_reg_delete_and_set): Adjust.
(var_reg_delete): Adjust.
(var_regno_delete): Adjust.
(var_mem_decl_set): Split out of...
(var_mem_set): ... this.
(var_mem_delete_and_set): Adjust.
(var_mem_delete): Adjust.
(val_store): New.
(val_reset): New.
(val_resolve): New.
(variable_union): Adjust. Speed up merge of 1-part vars.
(variable_canonicalize): Use unshared slot.
(VALUED_RECURSED_INTO): New.
(find_loc_in_1pdv): New.
(struct dfset_merge): New.
(insert_into_intersection): New.
(intersect_loc_chains): New.
(loc_cmp): New.
(canonicalize_loc_order_check): New.
(canonicalize_values_mark): New.
(canonicalize_values_star): New.
(variable_merge_over_cur): New.
(variable_merge_over_src): New.
(dataflow_set_merge): New.
(dataflow_set_equiv_regs): New.
(remove_duplicate_values): New.
(struct dfset_post_merge): New.
(variable_post_merge_new_vals): New.
(variable_post_merge_perm_vals): New.
(dataflow_post_merge_adjust): New.
(find_mem_expr_in_1pdv): New.
(dataflow_set_preserve_mem_locs): New.
(dataflow_set_remove_mem_locs): New.
(dataflow_set_clear_at_call): New.
(onepart_variable_different_p): New.
(variable_different_p): Use it.
(dataflow_set_different_1): Adjust. Make detailed dump
more verbose.
(track_expr_p): Add need_rtl parameter. Don't generate rtl
if not needed.
(track_loc_p): Pass it true.
(struct count_use_info): New.
(find_use_val): New.
(replace_expr_with_values): New.
(log_op_type): New.
(use_type): New, partially split out of...
(count_uses): ... this. Count new micro-ops.
(count_uses_1): Adjust.
(count_stores): Adjust.
(count_with_sets): New.
(VAL_NEEDS_RESOLUTION): New.
(VAL_HOLDS_TRACK_EXPR): New.
(VAL_EXPR_IS_COPIED): New.
(VAL_EXPR_IS_CLOBBERED): New.
(add_uses): Adjust. Generate new micro-ops.
(add_uses_1): Adjust.
(add_stores): Generate new micro-ops.
(add_with_sets): New.
(find_src_status): Adjust.
(find_src_set_src): Adjust.
(compute_bb_dataflow): Use dataflow_set_clear_at_call.
Handle new micro-ops. Canonicalize value equivalances.
(vt_find_locations): Compute total size of hash tables for
dumping. Perform merge for var-tracking-assignments. Don't
disregard single-block loops.
(dump_attrs_list): Handle decl_or_value.
(dump_variable): Take variable. Deal with decl_or_value.
(dump_variable_slot): New.
(dump_vars): Use it.
(dump_dataflow_sets): Adjust.
(set_slot_part): New, extended to support one-part variables
after splitting out of...
(set_variable_part): ... this.
(clobber_slot_part): New, split out of...
(clobber_variable_part): ... this.
(delete_slot_part): New, split out of...
(delete_variable_part): .... this.
(check_wrap_constant): New.
(vt_expand_loc_callback): New.
(vt_expand_loc): New.
(emit_note_insn_var_location): Adjust. Handle values. Handle
EMIT_NOTE_AFTER_CALL_INSN.
(emit_notes_for_differences_1): Adjust. Handle values.
(emit_notes_for_differences_2): Likewise.
(emit_notes_for_differences): Adjust.
(emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN
notes. Adjust. Handle new micro-ops.
(vt_add_function_parameters): Adjust. Create and bind values.
(vt_initialize): Adjust. Initialize scratch_regs and
valvar_pool, flooded and perm.. Initialize and use cselib. Log
operations. Move some code to count_with_sets and add_with_sets.
(delete_debug_insns): New.
(vt_debug_insns_local): New.
(vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
cselib.
(var_tracking_main): If var-tracking-assignments is enabled
but var-tracking isn't, delete debug insns and leave. Likewise
if we exceed limits or fail the stack adjustments tests, and
after all var-tracking processing.
More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
(dataflow_set): Add traversed_vars.
(value_chain, const_value_chain): New typedefs.
(value_chain_pool, value_chains): New variables.
(value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
add_value_chains, add_cselib_value_chains, remove_value_chain,
remove_value_chains, remove_cselib_value_chains): New functions.
(shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
static inlines.
(shared_hash_find_slot_unshare, shared_hash_find_slot,
shared_hash_find_slot_noinsert, shared_hash_find): Update.
(dst_can_be_shared): New variable.
(unshare_variable): Unshare set->vars if shared, use shared_hash_*.
Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
different from set->vars, look up slot again instead of using the
passed in slot.
(dataflow_set_init): Initialize traversed_vars.
(variable_union): Use shared_hash_*. Use initially NO_INSERT
lookup if set->vars is shared. Don't keep slot cleared before
calling unshare_variable. Unshare set->vars if needed. Adjust
unshare_variable callers. Clear dst_can_be_shared if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified.
(dataflow_set_union): Set traversed_vars during canonicalization.
(VALUE_CHANGED, DECL_CHANGED): Define.
(set_dv_changed, dv_changed_p): New static inlines.
(track_expr_p): Clear DECL_CHANGED.
(dump_dataflow_sets): Set it.
(variable_was_changed): Call set_dv_changed.
(emit_note_insn_var_location): Likewise.
(changed_variables_stack): New variable.
(check_changed_vars_1, check_changed_vars_2): New functions.
(emit_notes_for_changes): Do nothing if changed_variables is
empty. Traverse changed_variables with check_changed_vars_1,
call check_changed_vars_2 on each changed_variables_stack entry.
(emit_notes_in_bb): Add SET argument. Just clear it at the
beginning, use it instead of local &set, don't destroy it at the
end.
(vt_emit_notes): Call dataflow_set_clear early on all
VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
computed set, dataflow_set_clear also VTI(bb)->in when we are
done with the basic block. Initialize changed_variables_stack,
free it afterwards. If ENABLE_CHECKING verify that after noting
differences to an empty set value_chains hash table is empty.
(vt_initialize): Initialize value_chains and value_chain_pool.
(vt_finalize): Delete value_chains htab, free value_chain_pool.
(variable_tracking_main): Call dump_dataflow_sets before calling
vt_emit_notes, not after it.
* tree-flow.h (propagate_defs_into_debug_stmts): Declare.
(propagate_var_def_into_debug_stmts): Declare.
* df-problems.c (df_lr_bb_local_compute): Skip debug insns.
(df_set_note): Reject debug insns.
(df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
add notes to debug insns.
(df_note_bb_compute): Adjust. Likewise.
(df_simulate_uses): Skip debug insns.
(df_simulate_initialize_backwards): Likewise.
* reg-stack.c (subst_stack_regs_in_debug_insn): New.
(subst_stack_regs_pat): Reject debug insns.
(convert_regs_1): Handle debug insns.
* Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
(print-rtl.o): Depend on cselib.h.
(cselib.o): Depend on TREE_PASS_H.
(var-tracking.o): Depend on cselib.h and TARGET_H.
* sched-rgn.c (rgn_estimate_number_of_insns): Discount
debug insns.
(init_ready_list): Skip boundary debug insns.
(add_branch_dependences): Skip debug insns.
(free_block_dependencies): Check for blocks with only debug
insns.
(compute_priorities): Likewise.
* gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
(gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
all callers.
(gimple_build_debug_bind_stat): New.
(empty_body_p): Skip debug stmts.
(gimple_has_side_effects): Likewise.
(gimple_rhs_has_side_effects): Likewise.
* gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
(gimple_build_debug_bind_stat): Declare.
(gimple_build_debug_bind): Define.
(is_gimple_debug): New.
(gimple_debug_bind_p): New.
(gimple_debug_bind_get_var): New.
(gimple_debug_bind_get_value): New.
(gimple_debug_bind_get_value_ptr): New.
(gimple_debug_bind_set_var): New.
(gimple_debug_bind_set_value): New.
(GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
(gimple_debug_bind_reset_value): New.
(gimple_debug_bind_has_value_p): New.
(gsi_next_nondebug): New.
(gsi_prev_nondebug): New.
(gsi_start_nondebug_bb): New.
(gsi_last_nondebug_bb): New.
* sched-vis.c (print_pattern): Handle VAR_LOCATION.
(print_insn): Handle DEBUG_INSN.
* tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
of first insn prevail.
(first_stmt): Skip debug stmts.
(first_non_label_stmt): Likewise.
(last_stmt): Likewise.
(has_zero_uses_1): New.
(single_imm_use_1): New.
(verify_gimple_debug): New.
(verify_types_in_gimple_stmt): Handle debug stmts.
(verify_stmt): Likewise.
(debug_loop_num): Skip debug stmts.
(remove_edge_and_dominated_blocks): Remove dominators last.
* tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into
debug stmts.
(linearize_expr): Likewise.
* config/i386/i386.c (ix86_delegitimize_address): Call
default implementation.
* config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug
insns.
(group_barrier_needed): Skip debug insns.
(emit_insn_group_barriers): Likewise.
(emit_all_insn_group_barriers): Likewise.
(ia64_variable_issue): Handle debug insns.
(ia64_dfa_new_cycle): Likewise.
(final_emit_insn_group_barriers): Skip debug insns.
(ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
def cfa without frame.
(process_set): Likewise.
(process_for_unwind_directive): Pass frame on.
* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
(rs6000_delegitimize_address): New.
(rs6000_debug_adjust_cost): Handle debug insns.
(is_microcoded_insn): Likewise.
(is_cracked_insn): Likewise.
(is_nonpipeline_insn): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
* cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
contains only debug insns.
(rtl_merge_blocks): Skip debug insns.
(purge_dead_edges): Likewise.
(rtl_block_ends_with_call_p): Skip debug insns.
* dce.c (deletable_insn_p): Handle VAR_LOCATION.
(mark_reg_dependencies): Skip debug insns.
* params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
* tree-ssanames.c (release_ssa_name): Propagate def into
debug stmts.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts): Skip debug stmts.
* regcprop.c (replace_oldest_value_addr): Skip debug insns.
(replace_oldest_value_mem): Use ALL_REGS for debug insns.
(copyprop_hardreg_forward_1): Handle debug insns.
* reload1.c (reload): Skip debug insns. Replace unassigned
pseudos in debug insns with their equivalences.
(eliminate_regs_in_insn): Skip debug insns.
(emit_input_reload_insns): Skip debug insns at first, adjust
them later.
* tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
(get_indirect_ref_operands): Pass opf_no_vops on.
(get_expr_operands): Likewise. Skip debug stmts.
(parse_ssa_operands): Scan debug insns with opf_no_vops.
gcc/testsuite/ChangeLog:
* gcc.dg/guality/guality.c: New.
* gcc.dg/guality/guality.h: New.
* gcc.dg/guality/guality.exp: New.
* gcc.dg/guality/example.c: New.
* lib/gcc-dg.exp (cleanup-dump): Remove .gk files.
(cleanup-saved-temps): Likewise, .gkd files too.
gcc/cp/ChangeLog:
* cp-tree.h (TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS): New.
* cp-lang.c (cxx_dwarf_name): Pass it.
* error.c (count_non_default_template_args): Take flags as
argument. Adjust all callers. Skip counting of default
arguments if the new flag is given.
ChangeLog:
* Makefile.tpl (BUILD_CONFIG): Default to bootstrap-debug.
* Makefile.in: Rebuilt.
contrib/ChangeLog:
* compare-debug: Look for .gkd files and compare them.
config/ChangeLog:
* bootstrap-debug.mk: Add comments.
* bootstrap-debug-big.mk: New.
* bootstrap-debug-lean.mk: New.
* bootstrap-debug-ckovw.mk: Add comments.
* bootstrap-debug-lib.mk: Drop CFLAGS for stages. Use -g0
for TFLAGS in stage1. Drop -fvar-tracking-assignments-toggle.
From-SVN: r151312
2009-09-02 02:42:21 +00:00
|
|
|
fconserve-stack
|
|
|
|
Common Var(flag_conserve_stack) Optimization
|
|
|
|
Do not perform optimizations increasing noticeably stack usage
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fcprop-registers
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_cprop_registers) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform a register copy-propagation optimization pass
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fcrossjumping
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_crossjumping) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform cross-jumping optimization
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fcse-follow-jumps
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_cse_follow_jumps) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
When running CSE, follow jumps to their targets
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fcse-skip-blocks
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
dbgcnt.def (cprop1, [...]): Remove
* dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
(cprop, hoist, pre, store_motion): New debug counters.
* tree-pass.h (pass_tracer): Move to list of gimple passes, it
is not an RTL pass anymore.
(pass_profiling): Remove extern decl for pass removed in 2005.
(pass_gcse, pass_jump_bypass): Remove.
* final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
to 0 for clean state.
* toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
* cse.c (gate_handle_cse_after_global_opts,
rest_of_handle_cse_after_global_opts): New functions.
(pass_cse_after_global_opts): New pass, does local CSE.
* timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
(TV_CPROP): New timevar.
* gcse.c (flag_rerun_cse_after_global_opts): New global variable.
(run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
(gcse_main, recompute_all_luids): Remove.
(compute_hash_table_work): Call max_reg_num instead of reading
max_gcse_regno.
(cprop_jump): Don't set run_jump_opt_after_gcse.
(constprop_register): Always allow to alter jumps.
(cprop_insn): Likewise.
(do_local_cprop): Likewise.
(local_cprop_pass): Likewise. Return non-zero if something changed.
(cprop): Remove function, fold interesting bits into one_cprop_pass.
(find_implicit_sets): Add note about missed optimization opportunity.
(one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
pass_rtl_cprop execute function.
Don't bother tracking the pass number, each pass gets its own dumpfile
now anyway.
Always allow to alter jumpsand bypass jumps.
(bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
will just find no suitable set.
(pre_edge_insert): Fix dumping, this function is for PRE only.
(one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
pass_rtl_pre execute function.
(hoist_code): Return non-zero if something changed. Keep track of
substitutions and insertions for statistics gathering similar to PRE.
(one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
called from the pass_rtl_hoist execute function. Show pass statistics.
(compute_store_table): Use max_reg_num directly instead of using the
formerly global max_gcse_regno.
(build_store_vectors): Likewise.
(replace_store_insn): Fix dumping.
(store_motion): Rename to ...
(one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
pass, called from the pass_rtl_store_motion execute function. Keep
track of substitutions and insertions for statistics gathering similar
to PRE.
(bypass_jumps): Remove, fold interesting bits into ...
(one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
from the pass_rtl_cprop execute function.
(gate_handle_jump_bypass, rest_of_handle_jump_bypass,
pass_jump_bypass): Remove.
(gate_handle_gcse, rest_of_handle_gcse): Remove.
(gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
(gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
(gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
(gate_rtl_store_motion, execute_rtl_store_motion,
pass_rtl_store_motion): New.
* common.opt: Remove flag_cse_skip_blocks, adjust documentation to
make it clear that -fcse-skip-blocks is a no-op for backward compat.
* passes.c (init_optimization_passes): Remove pass_gcse and
pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
and cse_after_global_opts in place of pass_gcse. Schedule cprop
instead of pass_jump_bypass.
From-SVN: r146848
2009-04-27 17:21:27 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2005-02-24 01:24:17 -08:00
|
|
|
fcx-limited-range
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_cx_limited_range) Optimization
|
2005-02-24 01:24:17 -08:00
|
|
|
Omit range reduction step when performing complex division
|
|
|
|
|
2008-02-25 21:20:48 +02:00
|
|
|
fcx-fortran-rules
|
|
|
|
Common Report Var(flag_cx_fortran_rules) Optimization
|
|
|
|
Complex multiplication and division follow Fortran rules
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fdata-sections
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_data_sections) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Place data items into their own section
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2007-06-12 20:47:16 +00:00
|
|
|
fdbg-cnt-list
|
|
|
|
Common Report
|
|
|
|
List all available debugging counters with their limits and counts.
|
|
|
|
|
2007-06-11 18:02:15 +00:00
|
|
|
fdbg-cnt=
|
|
|
|
Common RejectNegative Joined
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
|
2007-06-11 18:02:15 +00:00
|
|
|
|
Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
* Makefile.in: Regenerate.
* configure.ac (--with-debug-prefix-map): New.
* configure: Regenerate.
config:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* mt-gnu (CXXFLAGS_FOR_TARGET): Add
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
gcc:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* common.opt (-fdebug-prefix-map=): New option.
* opts.c: Include debug.h.
(common_handle_option): Handle -fdebug-prefix-map.
* final.c: Include ggc.h.
(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
remap_debug_filename): New.
* Makefile.in (final.o, opts.o): Update dependencies.
* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
* configure.ac: Check for assembler --debug-prefix-map support.
* configure, config.in: Regenerate.
* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
(ASM_DEBUG_SPEC): Include ASM_MAP.
* doc/install.texi (--with-debug-prefix-map): Document.
* doc/invoke.texi (-fdebug-prefix-map): Document.
* dbxout.c (dbxout_init, dbxout_start_source_file,
dbxout_source_file): Call remap_debug_filename.
* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
dwarf2out_start_source_file, dwarf2out_finish): Call
remap_debug_filename.
(file_table_relative_p): Do not check d->emitted_number.
* toplev.c (output_file_directive): Call remap_debug_filename.
* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r127613
2007-08-18 15:15:39 +00:00
|
|
|
fdebug-prefix-map=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
Map one directory name to another in debug information
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero for -fdefer-pop: don't pop args after each function call
|
|
|
|
; instead save them up to pop many calls' args with one insns.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fdefer-pop
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_defer_pop) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Defer popping functions args from stack until later
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fdelayed-branch
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_delayed_branch) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Attempt to fill delay slots of branch instructions
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fdelete-null-pointer-checks
|
2009-04-10 11:58:12 -07:00
|
|
|
Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Delete useless null pointer checks
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fdiagnostics-show-location=
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2005-05-03 13:55:46 -04:00
|
|
|
fdiagnostics-show-option
|
2010-04-23 17:14:27 +00:00
|
|
|
Common Var(flag_diagnostics_show_option) Init(1)
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Amend appropriate diagnostic messages with the command line option that controls them
|
2005-05-03 13:55:46 -04:00
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
fdump-
|
|
|
|
Common Joined RejectNegative
|
|
|
|
-fdump-<type> Dump various compiler internals to a file
|
|
|
|
|
common.opt (fcompare-debug=, [...]): New.
gcc/ChangeLog:
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=, gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt,
compare-debug-self-opt and compare-debug-auxbase-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_auxbase_opt, debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(cc1_options): Use it instead of normal auxbase computation for
the second compare-debug compilation.
(compare_files): New.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
(compare_debug_auxbase_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* coverage.c (coverage_begin_output): Don't overwrite .gcno file
during -fcompare-debug-second compilation.
gcc/cp/ChangeLog:
* repo.c (get_base_filename): Use aux_base_name rather than
alternate temporary file during second compare debug compilation.
(finish_repo): Skip during -fcompare-debug-second.
gcc/ada/ChangeLog:
* lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
gcc/fortran/ChangeLog:
* options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
gcc/objc/ChangeLog:
* objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
From-SVN: r148271
2009-06-08 07:46:02 +00:00
|
|
|
fdump-final-insns=
|
|
|
|
Common RejectNegative Joined Var(flag_dump_final_insns)
|
|
|
|
-fdump-final-insns=filename Dump to filename the insns at the end of translation
|
|
|
|
|
2006-07-17 14:44:48 +00:00
|
|
|
fdump-noaddr
|
|
|
|
Common Report Var(flag_dump_noaddr)
|
|
|
|
Suppress output of addresses in debugging dumps
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fdump-unnumbered
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_dump_unnumbered) VarExists
|
2006-07-17 14:44:48 +00:00
|
|
|
Suppress output of instruction numbers, line number notes and addresses in debugging dumps
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2009-06-02 08:07:13 +00:00
|
|
|
fdump-unnumbered-links
|
|
|
|
Common Report Var(flag_dump_unnumbered_links) VarExists
|
|
|
|
Suppress output of previous and next insn numbers in debugging dumps
|
|
|
|
|
invoke.texi (-fvar-tracking-assignments): New.
gcc/ChangeLog:
* doc/invoke.texi (-fvar-tracking-assignments): New.
(-fvar-tracking-assignments-toggle): New.
(-fdump-final-insns=file): Mark filename as optional.
(--param min-nondebug-insn-uid): New.
(-gdwarf-@{version}): Mention version 4.
* opts.c (common_handle_option): Accept it.
* tree-vrp.c (find_assert_locations_1): Skip debug stmts.
* regrename.c (regrename_optimize): Drop last. Don't count debug
insns as uses. Don't reject change because of debug insn.
(do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
from the chain starter, and check for inexact matches in
DEBUG_INSNS.
(scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
(build_def_use): Simplify and fix the marking of DEBUG_INSNs.
* sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
* fwprop.c (forward_propagate_and_simplify): ...into debug insns.
* doc/gimple.texi (is_gimple_debug): New.
(gimple_debug_bind_p): New.
(is_gimple_call, gimple_assign_cast_p): End sentence with period.
* doc/install.texi (bootstrap-debug): More details.
(bootstrap-debug-big, bootstrap-debug-lean): Document.
(bootstrap-debug-lib): More details.
(bootstrap-debug-ckovw): Update.
(bootstrap-time): New.
* tree-into-ssa.c (mark_def_sites): Skip debug stmts.
(insert_phi_nodes_for): Insert debug stmts.
(rewrite_stmt): Take iterator. Insert debug stmts.
(rewrite_enter_block): Adjust.
(maybe_replace_use_in_debug_stmt): New.
(rewrite_update_stmt): Use it.
(mark_use_interesting): Return early for debug stmts.
* tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
stmts before replacing stmt.
(move_computations_stmt): Likewise.
* ira-conflicts.c (add_copies): Skip debug insns.
* regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
(regstat_bb_compute_ri): Skip debug insns.
* tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
check_loop_closed_ssa_stmt): Skip debug stmts.
* tree-tailcall.c (find_tail_calls): Likewise.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
* tree.h (MAY_HAVE_DEBUG_STMTS): New.
(build_var_debug_value_stat): Declare.
(build_var_debug_value): Define.
(target_for_debug_bind): Declare.
* reload.c (find_equiv_reg): Skip debug insns.
* rtlanal.c (reg_used_between_p): Skip debug insns.
(side_effects_p): Likewise.
(canonicalize_condition): Likewise.
* ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
insns never depend on debug insns.
(create_ddg_dep_no_link): Likewise.
(add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
Don't add inter-loop dependencies for debug insns.
(build_intra_loop_deps): Likewise.
(create_ddg): Count debug insns.
* ddg.h (struct ddg::num_debug): New.
(num_backargs): Pair up with previous int field.
* diagnostic.c (diagnostic_report_diagnostic): Skip notes on
-fcompare-debug-second.
* final.c (get_attr_length_1): Skip debug insns.
(rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
* gcc.c (invoke_as): Call compare-debug-dump-opt.
(driver_self_specs): Map -fdump-final-insns to
-fdump-final-insns=..
(get_local_tick): New.
(compare_debug_dump_opt_spec_function): Test for . argument and
compute output name. Compute temp output spec without flag name.
Compute -frandom-seed.
(OPT): Undef after use.
* cfgloopanal.c (num_loop_insns): Skip debug insns.
(average_num_loop_insns): Likewise.
* params.h (MIN_NONDEBUG_INSN_UID): New.
* gimple.def (GIMPLE_DEBUG): New.
* ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
* auto-inc-dec.c (merge_in_block): Skip debug insns.
(merge_in_block): Fix whitespace.
* toplev.c (flag_var_tracking): Update comment.
(flag_var_tracking_assignments): New.
(flag_var_tracking_assignments_toggle): New.
(process_options): Don't open final insns dump file if we're not
going to write to it. Compute defaults for var_tracking.
* df-scan.c (df_insn_rescan_debug_internal): New.
(df_uses_record): Handle debug insns.
* haifa-sched.c (ready): Initialize n_debug.
(contributes_to_priority): Skip debug insns.
(dep_list_size): New.
(priority): Use it.
(rank_for_schedule): Likewise. Schedule debug insns as soon as
they're ready. Disregard previous debug insns to make decisions.
(queue_insn): Never queue debug insns.
(ready_add, ready_remove_first, ready_remove): Count debug insns.
(schedule_insn): Don't reject debug insns because of issue rate.
(get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
(queue_to_ready): Skip and discount debug insns.
(choose_ready): Let debug insns through.
(schedule_block): Check boundary debug insns. Discount debug
insns, schedule them early. Adjust whitespace.
(set_priorities): Check for boundary debug insns.
(add_jump_dependencies): Use dep_list_size.
(prev_non_location_insn): New.
(check_cfg): Use it.
* tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
stmts.
(remove_unused_ivs): Reset debug stmts.
* modulo-sched.c (const_iteration_count): Skip debug insns.
(res_MII): Discount debug insns.
(loop_single_full_bb_p): Skip debug insns.
(sms_schedule): Likewise.
(sms_schedule_by_order): Likewise.
(ps_has_conflicts): Likewise.
* caller-save.c (refmarker_fn): New.
(save_call_clobbered_regs): Replace regs with saved mem in
debug insns.
(mark_referenced_regs): Take pointer, mark and arg. Adjust.
Call refmarker_fn mark for hardregnos.
(mark_reg_as_referenced): New.
(replace_reg_with_saved_mem): New.
* ipa-pure-const.c (check_stmt): Skip debug stmts.
* cse.c (cse_insn): Canonicalize debug insns. Skip them when
searching back.
(cse_extended_basic_block): Skip debug insns.
(count_reg_usage): Likewise.
(is_dead_reg): New, split out of...
(set_live_p): ... here.
(insn_live_p): Use it for debug insns.
* tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
(execute_optimize_stdarg): Likewise.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Don't regard
changes in debug stmts as changes.
* sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
(moveup_expr): Don't move across debug insns. Don't move
debug insn if it would create a bookkeeping block.
(moveup_expr_cached): Don't use cache for debug insns that
are heads of blocks.
(compute_av_set_inside_bb): Skip debug insns.
(sel_rank_for_schedule): Schedule debug insns first. Remove
dead code.
(block_valid_for_bookkeeping_p); Support lax searches.
(create_block_for_bookkeeping): Adjust block numbers when
encountering debug-only blocks.
(find_place_for_bookkeeping): Deal with debug-only blocks.
(generate_bookkeeping_insn): Accept no place to insert.
(remove_temp_moveop_nops): New argument full_tidying.
(prepare_place_to_insert): Deal with debug insns.
(advance_state_on_fence): Debug insns don't start cycles.
(update_boundaries): Take fence as argument. Deal with
debug insns.
(schedule_expr_on_boundary): No full_tidying on debug insns.
(fill_insns): Deal with debug insns.
(track_scheduled_insns_and_blocks): Don't count debug insns.
(need_nop_to_preserve_insn_bb): New, split out of...
(remove_insn_from_stream): ... this.
(fur_orig_expr_not_found): Skip debug insns.
* rtl.def (VALUE): Move up.
(DEBUG_INSN): New.
* tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug
stmts.
(nearest_common_dominator_of_uses): Take debug_stmts argument.
Set it if debug stmts are found.
(statement_sink_location): Skip debug stmts. Propagate
moving defs into debug stmts.
* ifcvt.c (first_active_insn): Skip debug insns.
(last_active_insns): Likewise.
(cond_exec_process_insns): Likewise.
(noce_process_if_block): Likewise.
(check_cond_move_block): Likewise.
(cond_move_convert_if_block): Likewise.
(block_jumps_and_fallthru_p): Likewise.
(dead_or_predicable): Likewise.
* dwarf2out.c (debug_str_hash_forced): New.
(find_AT_string): Add comment.
(gen_label_for_indirect_string): New.
(get_debug_string_label): New.
(AT_string_form): Use it.
(mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
several operations that cannot be represented with DWARF opcodes.
(loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
(dwarf2out_var_location): Take during-call mark into account.
(output_indirect_string): Update comment. Output if there are
label and references.
(prune_indirect_string): New.
(prune_unused_types): Call it if debug_str_hash_forced.
More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
(dw_long_long_const): Remove.
(struct dw_val_struct): Change val_long_long type to rtx.
(print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
(output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
component instead of HOST_BITS_PER_LONG.
(output_loc_operands): Likewise. For const8* assert
HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
(output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
rather than HOST_BITS_PER_LONG is >= 64.
(add_AT_long_long): Remove val_hi and val_lo arguments, add
val_const_double.
(size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
HOST_BITS_PER_LONG for dw_val_class_long_long.
(add_const_value_attribute): Adjust add_AT_long_long caller. Don't
handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
(dwarf_stack_op_name): Handle DW_OP_implicit_value and
DW_OP_stack_value.
(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_implicit_value.
(extract_int): Move prototype earlier.
(mem_loc_descriptor): For SUBREG punt if inner
mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
(loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
instead of Pmode size.
(loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
(concat_loc_descriptor, concatn_loc_descriptor,
loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
(add_location_or_const_value_attribute): Likewise. For single
location loc_lists attempt to use add_const_value_attribute
for constant decls. Add DW_AT_const_value even if
NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
in its expression.
* cfgbuild.c (inside_basic_block_p): Handle debug insns.
(control_flow_insn_p): Likewise.
* tree-parloops.c (eliminate_local_variables_stmt): Handle debug
stmt.
(separate_decls_in_region_debug_bind): New.
(separate_decls_in_region): Process debug bind stmts afterwards.
* recog.c (verify_changes): Handle debug insns.
(extract_insn): Likewise.
(peephole2_optimize): Skip debug insns.
* dse.c (scan_insn): Skip debug insns.
* sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
Pass it on.
(setup_id_for_insn): Handle debug insns.
(maybe_tidy_empty_bb): Adjust whitespace.
(tidy_control_flow): Skip debug insns.
(sel_remove_insn): Adjust for debug insns.
(sel_estimate_number_of_insns): Skip debug insns.
(create_insn_rtx_from_pattern): Handle debug insns.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-.h (sel_bb_end): Declare.
(sel_bb_empty_or_nop_p): New.
(get_all_loop_exits): Use it.
(_eligible_successor_edge_p): Likewise.
(return_nop_to_pool): Adjust.
* tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
* ira-lives.c (process_bb_node_lives): Skip debug insns.
* gimple-pretty-print.c (dump_gimple_debug): New.
(dump_gimple_stmt): Use it.
(dump_bb_header): Skip gimple debug stmts.
* regmove.c (optimize_reg_copy_1): Discount debug insns.
(fixup_match_2): Likewise.
(regmove_backward_pass): Likewise. Simplify combined
replacement. Handle debug insns.
* function.c (instantiate_virtual_regs): Handle debug insns.
* function.h (struct emit_status): Add x_cur_debug_insn_uid.
* print-rtl.h: Include cselib.h.
(print_rtx): Print VALUEs. Split out and recurse for
VAR_LOCATIONs.
* df.h (df_inns_rescan_debug_internal): Declare.
* gcse.c (alloc_hash_table): Estimate n_insns.
(cprop_insn): Don't regard debug insns as changes.
(bypass_conditional_jumps): Skip debug insns.
(one_pre_gcse_pass): Adjust.
(one_code_hoisting_pass): Likewise.
(compute_ld_motion_mems): Skip debug insns.
(one_cprop_pass): Adjust.
* tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
(if_convertible_stmt_p): Handle debug stmts.
* init-regs.c (initialize_uninitialized_regs): Skip debug insns.
* tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
* ira-build.c (create_bb_allocnos): Skip debug insns.
* tree-flow-inline.h (has_zero_uses): Discount debug stmts.
(has_single_use): Likewise.
(single_imm_use): Likewise.
(num_imm_uses): Likewise.
* tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
(create_outofssa_var_map): Likewise.
* lower-subreg.c (adjust_decomposed_uses): New.
(resolve_debug): New.
(decompose_multiword_subregs): Use it.
* tree-dfa.c (find_referenced_vars): Skip debug stmts.
* emit-rtl.c: Include params.h.
(cur_debug_insn_uid): Define.
(set_new_first_and_last_insn): Set cur_debug_insn_uid too.
(copy_rtx_if_shared_1): Handle debug insns.
(reset_used_flags): Likewise.
(set_used_flags): LIkewise.
(get_max_insn_count): New.
(next_nondebug_insn): New.
(prev_nondebug_insn): New.
(make_debug_insn_raw): New.
(emit_insn_before_noloc): Handle debug insns.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_debug_insn_before_noloc): New.
(emit_insn_after_noloc): Handle debug insns.
(emit_jump_insn_after_noloc): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_insn_after): Take loc from earlier non-debug insn.
(emit_jump_insn_after): Likewise.
(emit_call_insn_after): Likewise.
(emit_debug_insn_after_setloc): New.
(emit_debug_insn_after): New.
(emit_insn_before): Take loc from later non-debug insn.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before): Likewise.
(emit_debug_insn_before_setloc): New.
(emit_debug_insn_before): New.
(emit_insn): Handle debug insns.
(emit_debug_insn): New.
(emit_jump_insn): Handle debug insns.
(emit_call_insn): Likewise.
(emit): Likewise.
(init_emit): Take min-nondebug-insn-uid into account.
Initialize cur_debug_insn_uid.
(emit_copy_of_insn_after): Handle debug insns.
* cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
location of single rhs in place.
(maybe_dump_rtl_for_gimple_stmt): Dump lineno.
(floor_sdiv_adjust): New.
(cell_sdiv_adjust): New.
(cell_udiv_adjust): New.
(round_sdiv_adjust): New.
(round_udiv_adjust): New.
(wrap_constant): Moved from cselib.
(unwrap_constant): New.
(expand_debug_expr): New.
(expand_debug_locations): New.
(expand_gimple_basic_block): Drop hiding redeclaration. Expand
debug bind stmts.
(gimple_expand_cfg): Expand debug locations.
* cselib.c: Include tree-pass.h.
(struct expand_value_data): New.
(cselib_record_sets_hook): New.
(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
(cselib_clear_table): Move, and implemnet in terms of...
(cselib_reset_table_with_next_value): ... this.
(cselib_get_next_unknown_value): New.
(discard_useless_locs): Don't discard preserved values.
(cselib_preserve_value): New.
(cselib_preserved_value_p): New.
(cselib_preserve_definitely): New.
(cselib_clear_preserve): New.
(cselib_preserve_only_values): New.
(new_cselib_val): Take rtx argument. Dump it in details.
(cselib_lookup_mem): Adjust.
(expand_loc): Take regs_active in struct. Adjust. Silence
dumps unless details are requested.
(cselib_expand_value_rtx_cb): New.
(cselib_expand_value_rtx): Rename and reimplment in terms of...
(cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
without details. Copy more subregs. Try to resolve values
using a callback. Wrap constants.
(cselib_subst_to_values): Adjust.
(cselib_log_lookup): New.
(cselib_lookup): Call it.
(cselib_invalidate_regno): Don't count preserved values as
useless.
(cselib_invalidate_mem): Likewise.
(cselib_record_set): Likewise.
(struct set): Renamed to cselib_set, moved to cselib.h.
(cselib_record_sets): Adjust. Call hook.
(cselib_process_insn): Reset table when it would be cleared.
(dump_cselib_val): New.
(dump_cselib_table): New.
* tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
(remove_forwarder_block): Support moving debug stmts.
* cselib.h (cselib_record_sets_hook): Declare.
(cselib_expand_callback): New type.
(cselib_expand_value_rtx_cb): Declare.
(cselib_reset_table_with_next_value): Declare.
(cselib_get_next_unknown_value): Declare.
(cselib_preserve_value): Declare.
(cselib_preserved_value_p): Declare.
(cselib_preserve_only_values): Declare.
(dump_cselib_table): Declare.
* cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
(try_crossjump_to_edge): Likewise.
(delete_unreachable_blocks): Remove dominant GIMPLE blocks after
dominated blocks when debug stmts are present.
* simplify-rtx.c (delegitimize_mem_from_attrs): New.
* tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
(set_var_live_on_entry): Likewise.
* loop-invariant.c (find_invariants_bb): Skip debug insns.
* cfglayout.c (curr_location, last_location): Make static.
(set_curr_insn_source_location): Don't avoid bouncing.
(get_curr_insn_source_location): New.
(get_curr_insn_block): New.
(duplicate_insn_chain): Handle debug insns.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
into debug stmts.
* common.opt (fcompare-debug): Move to sort order.
(fdump-unnumbered-links): Likewise.
(fvar-tracking-assignments): New.
(fvar-tracking-assignments-toggle): New.
* tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
because of debug stmts.
(mark_stmt_if_obviously_necessary): Mark debug stmts.
(eliminate_unnecessary_stmts): Walk dominated blocks before
dominators.
* tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
* ira.c (memref_used_between_p): Skip debug insns.
(update_equiv_regs): Likewise.
* sched-deps.c (sd_lists_size): Accept empty list.
(sd_init_insn): Mark debug insns.
(sd_finish_insn): Unmark them.
(sd_add_dep): Reject non-debug deps on debug insns.
(fixup_sched_groups): Give debug insns group treatment.
Skip debug insns.
(sched_analyze_reg): Don't mark debug insns for sched before call.
(sched_analyze_2): Handle debug insns.
(sched_analyze_insn): Compute next non-debug insn. Handle debug
insns.
(deps_analyze_insn): Handle debug insns.
(deps_start_bb): Skip debug insns.
(init_deps): Initialize last_debug_insn.
* tree-ssa.c (target_for_debug_bind): New.
(find_released_ssa_name): New.
(propagate_var_def_into_debug_stmts): New.
(propagate_defs_into_debug_stmts): New.
(verify_ssa): Skip debug bind stmts without values.
(warn_uninialized_vars): Skip debug stmts.
* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
* rtl.c (rtx_equal_p_cb): Handle VALUEs.
(rtx_equal_p): Likewise.
* ira-costs.c (scan_one_insn): Skip debug insns.
(process_bb_node_for_hard_reg_moves): Likewise.
* rtl.h (DEBUG_INSN_P): New.
(NONDEBUG_INSN_P): New.
(MAY_HAVE_DEBUG_INSNS): New.
(INSN_P): Accept debug insns.
(RTX_FRAME_RELATED_P): Likewise.
(INSN_DELETED_P): Likewise
(PAT_VAR_LOCATION_DECL): New.
(PAT_VAR_LOCATION_LOC): New.
(PAT_VAR_OCATION_STATUS): New.
(NOTE_VAR_LOCATION_DECL): Reimplement.
(NOTE_VAR_LOCATION_LOC): Likewise.
(NOTE_VAR_LOCATION_STATUS): Likewise.
(INSN_VAR_LOCATION): New.
(INSN_VAR_LOCATION_DECL): New.
(INSN_VAR_LOCATION_LOC): New.
(INSN_VAR_LOCATION_STATUS): New.
(gen_rtx_UNKNOWN_VAR_LOC): New.
(VAR_LOC_UNKNOWN_P): New.
(NOTE_DURING_CALL_P): New.
(SCHED_GROUP_P): Accept debug insns.
(emit_debug_insn_before): Declare.
(emit_debug_insn_before_noloc): Declare.
(emit_debug_insn_beore_setloc): Declare.
(emit_debug_insn_after): Declare.
(emit_debug_insn_after_noloc): Declare.
(emit_debug_insn_after_setloc): Declare.
(emit_debug_insn): Declare.
(make_debug_insn_raw): Declare.
(prev_nondebug_insn): Declare.
(next_nondebug_insn): Declare.
(delegitimize_mem_from_attrs): Declare.
(get_max_insn_count): Declare.
(wrap_constant): Declare.
(unwrap_constant): Declare.
(get_curr_insn_source_location): Declare.
(get_curr_insn_block): Declare.
* tree-inline.c (insert_debug_decl_map): New.
(processing_debug_stmt): New.
(remap_decl): Don't create new mappings in debug stmts.
(remap_gimple_op_r): Don't add references in debug stmts.
(copy_tree_body_r): Likewise.
(remap_gimple_stmt): Handle debug bind stmts.
(copy_bb): Skip debug stmts.
(copy_edges_for_bb): Likewise.
(copy_debug_stmt): New.
(copy_debug_stmts): New.
(copy_body): Copy debug stmts at the end.
(insert_init_debug_bind): New.
(insert_init_stmt): Take id. Skip and emit debug stmts.
(setup_one_parameter): Remap variable earlier, register debug
mapping.
(estimate_num_insns): Skip debug stmts.
(expand_call_inline): Preserve debug_map.
(optimize_inline_calls): Check for no debug_stmts left-overs.
(unsave_expr_now): Preserve debug_map.
(copy_gimple_seq_and_replace_locals): Likewise.
(tree_function_versioning): Check for no debug_stmts left-overs.
Init and destroy debug_map as needed. Split edges unconditionally.
(build_duplicate_type): Init and destroy debug_map as needed.
* tree-inline.h: Include gimple.h instead of pointer-set.h.
(struct copy_body_data): Add debug_stmts and debug_map.
* sched-int.h (struct ready_list): Add n_debug.
(struct deps): Add last_debug_insn.
(DEBUG_INSN_SCHED_P): New.
(BOUNDARY_DEBUG_INSN_P): New.
(SCHEDULE_DEBUG_INSN_P): New.
(sd_iterator_cond): Accept empty list.
* combine.c (create_log_links): Skip debug insns.
(combine_instructions): Likewise.
(cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
return value is always unshared.
(struct rtx_subst_pair): New.
(auto_adjust_pair): New.
(propagate_for_debug_subst): New.
(propagate_for_debug): New.
(try_combine): Skip debug insns. Propagate removed defs into
debug insns.
(next_nonnote_nondebug_insn): New.
(distribute_notes): Use it. Skip debug insns.
(distribute_links): Skip debug insns.
* tree-outof-ssa.c (set_location_for_edge): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* var-tracking.c: Include cselib.h and target.h.
(enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
MO_VAL_SET.
(micro_operation_type_name): New.
(enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
(struct micro_operation_def): Update comments.
(decl_or_value): New type. Use instead of decls.
(struct emit_note_data_def): Add vars.
(struct attrs_def): Use decl_or_value.
(struct variable_tracking_info_def): Add permp, flooded.
(struct location_chain_def): Update comment.
(struct variable_part_def): Use decl_or_value.
(struct variable_def): Make var_part a variable length array.
(valvar_pool): New.
(scratch_regs): New.
(cselib_hook_called): New.
(dv_is_decl_p): New.
(dv_is_value_p): New.
(dv_as_decl): New.
(dv_as_value): New.
(dv_as_opaque): New.
(dv_onepart_p): New.
(dv_pool): New.
(IS_DECL_CODE): New.
(check_value_is_not_decl): New.
(dv_from_decl): New.
(dv_from_value): New.
(dv_htab_hash): New.
(variable_htab_hash): Use it.
(variable_htab_eq): Support values.
(variable_htab_free): Free from the right pool.
(attrs_list_member, attrs_list_insert): Use decl_or_value.
(attrs_list_union): Adjust.
(attrs_list_mpdv_union): New.
(tie_break_pointers): New.
(canon_value_cmp): New.
(unshare_variable): Return possibly-modified slot.
(vars_copy_1): Adjust.
(var_reg_decl_set): Adjust. Split out of...
(var_reg_set): ... this.
(get_init_value): Adjust.
(var_reg_delete_and_set): Adjust.
(var_reg_delete): Adjust.
(var_regno_delete): Adjust.
(var_mem_decl_set): Split out of...
(var_mem_set): ... this.
(var_mem_delete_and_set): Adjust.
(var_mem_delete): Adjust.
(val_store): New.
(val_reset): New.
(val_resolve): New.
(variable_union): Adjust. Speed up merge of 1-part vars.
(variable_canonicalize): Use unshared slot.
(VALUED_RECURSED_INTO): New.
(find_loc_in_1pdv): New.
(struct dfset_merge): New.
(insert_into_intersection): New.
(intersect_loc_chains): New.
(loc_cmp): New.
(canonicalize_loc_order_check): New.
(canonicalize_values_mark): New.
(canonicalize_values_star): New.
(variable_merge_over_cur): New.
(variable_merge_over_src): New.
(dataflow_set_merge): New.
(dataflow_set_equiv_regs): New.
(remove_duplicate_values): New.
(struct dfset_post_merge): New.
(variable_post_merge_new_vals): New.
(variable_post_merge_perm_vals): New.
(dataflow_post_merge_adjust): New.
(find_mem_expr_in_1pdv): New.
(dataflow_set_preserve_mem_locs): New.
(dataflow_set_remove_mem_locs): New.
(dataflow_set_clear_at_call): New.
(onepart_variable_different_p): New.
(variable_different_p): Use it.
(dataflow_set_different_1): Adjust. Make detailed dump
more verbose.
(track_expr_p): Add need_rtl parameter. Don't generate rtl
if not needed.
(track_loc_p): Pass it true.
(struct count_use_info): New.
(find_use_val): New.
(replace_expr_with_values): New.
(log_op_type): New.
(use_type): New, partially split out of...
(count_uses): ... this. Count new micro-ops.
(count_uses_1): Adjust.
(count_stores): Adjust.
(count_with_sets): New.
(VAL_NEEDS_RESOLUTION): New.
(VAL_HOLDS_TRACK_EXPR): New.
(VAL_EXPR_IS_COPIED): New.
(VAL_EXPR_IS_CLOBBERED): New.
(add_uses): Adjust. Generate new micro-ops.
(add_uses_1): Adjust.
(add_stores): Generate new micro-ops.
(add_with_sets): New.
(find_src_status): Adjust.
(find_src_set_src): Adjust.
(compute_bb_dataflow): Use dataflow_set_clear_at_call.
Handle new micro-ops. Canonicalize value equivalances.
(vt_find_locations): Compute total size of hash tables for
dumping. Perform merge for var-tracking-assignments. Don't
disregard single-block loops.
(dump_attrs_list): Handle decl_or_value.
(dump_variable): Take variable. Deal with decl_or_value.
(dump_variable_slot): New.
(dump_vars): Use it.
(dump_dataflow_sets): Adjust.
(set_slot_part): New, extended to support one-part variables
after splitting out of...
(set_variable_part): ... this.
(clobber_slot_part): New, split out of...
(clobber_variable_part): ... this.
(delete_slot_part): New, split out of...
(delete_variable_part): .... this.
(check_wrap_constant): New.
(vt_expand_loc_callback): New.
(vt_expand_loc): New.
(emit_note_insn_var_location): Adjust. Handle values. Handle
EMIT_NOTE_AFTER_CALL_INSN.
(emit_notes_for_differences_1): Adjust. Handle values.
(emit_notes_for_differences_2): Likewise.
(emit_notes_for_differences): Adjust.
(emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN
notes. Adjust. Handle new micro-ops.
(vt_add_function_parameters): Adjust. Create and bind values.
(vt_initialize): Adjust. Initialize scratch_regs and
valvar_pool, flooded and perm.. Initialize and use cselib. Log
operations. Move some code to count_with_sets and add_with_sets.
(delete_debug_insns): New.
(vt_debug_insns_local): New.
(vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
cselib.
(var_tracking_main): If var-tracking-assignments is enabled
but var-tracking isn't, delete debug insns and leave. Likewise
if we exceed limits or fail the stack adjustments tests, and
after all var-tracking processing.
More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
(dataflow_set): Add traversed_vars.
(value_chain, const_value_chain): New typedefs.
(value_chain_pool, value_chains): New variables.
(value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
add_value_chains, add_cselib_value_chains, remove_value_chain,
remove_value_chains, remove_cselib_value_chains): New functions.
(shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
static inlines.
(shared_hash_find_slot_unshare, shared_hash_find_slot,
shared_hash_find_slot_noinsert, shared_hash_find): Update.
(dst_can_be_shared): New variable.
(unshare_variable): Unshare set->vars if shared, use shared_hash_*.
Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
different from set->vars, look up slot again instead of using the
passed in slot.
(dataflow_set_init): Initialize traversed_vars.
(variable_union): Use shared_hash_*. Use initially NO_INSERT
lookup if set->vars is shared. Don't keep slot cleared before
calling unshare_variable. Unshare set->vars if needed. Adjust
unshare_variable callers. Clear dst_can_be_shared if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified.
(dataflow_set_union): Set traversed_vars during canonicalization.
(VALUE_CHANGED, DECL_CHANGED): Define.
(set_dv_changed, dv_changed_p): New static inlines.
(track_expr_p): Clear DECL_CHANGED.
(dump_dataflow_sets): Set it.
(variable_was_changed): Call set_dv_changed.
(emit_note_insn_var_location): Likewise.
(changed_variables_stack): New variable.
(check_changed_vars_1, check_changed_vars_2): New functions.
(emit_notes_for_changes): Do nothing if changed_variables is
empty. Traverse changed_variables with check_changed_vars_1,
call check_changed_vars_2 on each changed_variables_stack entry.
(emit_notes_in_bb): Add SET argument. Just clear it at the
beginning, use it instead of local &set, don't destroy it at the
end.
(vt_emit_notes): Call dataflow_set_clear early on all
VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
computed set, dataflow_set_clear also VTI(bb)->in when we are
done with the basic block. Initialize changed_variables_stack,
free it afterwards. If ENABLE_CHECKING verify that after noting
differences to an empty set value_chains hash table is empty.
(vt_initialize): Initialize value_chains and value_chain_pool.
(vt_finalize): Delete value_chains htab, free value_chain_pool.
(variable_tracking_main): Call dump_dataflow_sets before calling
vt_emit_notes, not after it.
* tree-flow.h (propagate_defs_into_debug_stmts): Declare.
(propagate_var_def_into_debug_stmts): Declare.
* df-problems.c (df_lr_bb_local_compute): Skip debug insns.
(df_set_note): Reject debug insns.
(df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
add notes to debug insns.
(df_note_bb_compute): Adjust. Likewise.
(df_simulate_uses): Skip debug insns.
(df_simulate_initialize_backwards): Likewise.
* reg-stack.c (subst_stack_regs_in_debug_insn): New.
(subst_stack_regs_pat): Reject debug insns.
(convert_regs_1): Handle debug insns.
* Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
(print-rtl.o): Depend on cselib.h.
(cselib.o): Depend on TREE_PASS_H.
(var-tracking.o): Depend on cselib.h and TARGET_H.
* sched-rgn.c (rgn_estimate_number_of_insns): Discount
debug insns.
(init_ready_list): Skip boundary debug insns.
(add_branch_dependences): Skip debug insns.
(free_block_dependencies): Check for blocks with only debug
insns.
(compute_priorities): Likewise.
* gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
(gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
all callers.
(gimple_build_debug_bind_stat): New.
(empty_body_p): Skip debug stmts.
(gimple_has_side_effects): Likewise.
(gimple_rhs_has_side_effects): Likewise.
* gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
(gimple_build_debug_bind_stat): Declare.
(gimple_build_debug_bind): Define.
(is_gimple_debug): New.
(gimple_debug_bind_p): New.
(gimple_debug_bind_get_var): New.
(gimple_debug_bind_get_value): New.
(gimple_debug_bind_get_value_ptr): New.
(gimple_debug_bind_set_var): New.
(gimple_debug_bind_set_value): New.
(GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
(gimple_debug_bind_reset_value): New.
(gimple_debug_bind_has_value_p): New.
(gsi_next_nondebug): New.
(gsi_prev_nondebug): New.
(gsi_start_nondebug_bb): New.
(gsi_last_nondebug_bb): New.
* sched-vis.c (print_pattern): Handle VAR_LOCATION.
(print_insn): Handle DEBUG_INSN.
* tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
of first insn prevail.
(first_stmt): Skip debug stmts.
(first_non_label_stmt): Likewise.
(last_stmt): Likewise.
(has_zero_uses_1): New.
(single_imm_use_1): New.
(verify_gimple_debug): New.
(verify_types_in_gimple_stmt): Handle debug stmts.
(verify_stmt): Likewise.
(debug_loop_num): Skip debug stmts.
(remove_edge_and_dominated_blocks): Remove dominators last.
* tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into
debug stmts.
(linearize_expr): Likewise.
* config/i386/i386.c (ix86_delegitimize_address): Call
default implementation.
* config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug
insns.
(group_barrier_needed): Skip debug insns.
(emit_insn_group_barriers): Likewise.
(emit_all_insn_group_barriers): Likewise.
(ia64_variable_issue): Handle debug insns.
(ia64_dfa_new_cycle): Likewise.
(final_emit_insn_group_barriers): Skip debug insns.
(ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
def cfa without frame.
(process_set): Likewise.
(process_for_unwind_directive): Pass frame on.
* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
(rs6000_delegitimize_address): New.
(rs6000_debug_adjust_cost): Handle debug insns.
(is_microcoded_insn): Likewise.
(is_cracked_insn): Likewise.
(is_nonpipeline_insn): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
* cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
contains only debug insns.
(rtl_merge_blocks): Skip debug insns.
(purge_dead_edges): Likewise.
(rtl_block_ends_with_call_p): Skip debug insns.
* dce.c (deletable_insn_p): Handle VAR_LOCATION.
(mark_reg_dependencies): Skip debug insns.
* params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
* tree-ssanames.c (release_ssa_name): Propagate def into
debug stmts.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts): Skip debug stmts.
* regcprop.c (replace_oldest_value_addr): Skip debug insns.
(replace_oldest_value_mem): Use ALL_REGS for debug insns.
(copyprop_hardreg_forward_1): Handle debug insns.
* reload1.c (reload): Skip debug insns. Replace unassigned
pseudos in debug insns with their equivalences.
(eliminate_regs_in_insn): Skip debug insns.
(emit_input_reload_insns): Skip debug insns at first, adjust
them later.
* tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
(get_indirect_ref_operands): Pass opf_no_vops on.
(get_expr_operands): Likewise. Skip debug stmts.
(parse_ssa_operands): Scan debug insns with opf_no_vops.
gcc/testsuite/ChangeLog:
* gcc.dg/guality/guality.c: New.
* gcc.dg/guality/guality.h: New.
* gcc.dg/guality/guality.exp: New.
* gcc.dg/guality/example.c: New.
* lib/gcc-dg.exp (cleanup-dump): Remove .gk files.
(cleanup-saved-temps): Likewise, .gkd files too.
gcc/cp/ChangeLog:
* cp-tree.h (TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS): New.
* cp-lang.c (cxx_dwarf_name): Pass it.
* error.c (count_non_default_template_args): Take flags as
argument. Adjust all callers. Skip counting of default
arguments if the new flag is given.
ChangeLog:
* Makefile.tpl (BUILD_CONFIG): Default to bootstrap-debug.
* Makefile.in: Rebuilt.
contrib/ChangeLog:
* compare-debug: Look for .gkd files and compare them.
config/ChangeLog:
* bootstrap-debug.mk: Add comments.
* bootstrap-debug-big.mk: New.
* bootstrap-debug-lean.mk: New.
* bootstrap-debug-ckovw.mk: Add comments.
* bootstrap-debug-lib.mk: Drop CFLAGS for stages. Use -g0
for TFLAGS in stage1. Drop -fvar-tracking-assignments-toggle.
From-SVN: r151312
2009-09-02 02:42:21 +00:00
|
|
|
fdwarf2-cfi-asm
|
|
|
|
Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
|
|
|
|
Enable CFI tables via GAS assembler directives.
|
|
|
|
|
2005-09-01 08:54:40 +00:00
|
|
|
fearly-inlining
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_early_inlining) Init(1) Optimization
|
2005-09-01 08:54:40 +00:00
|
|
|
Perform early inlining
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
feliminate-dwarf2-dups
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_eliminate_dwarf2_dups)
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform DWARF2 duplicate elimination
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2009-09-17 13:35:38 +02:00
|
|
|
fipa-sra
|
|
|
|
Common Report Var(flag_ipa_sra) Init(0) Optimization
|
|
|
|
Perform interprocedural reduction of aggregates
|
|
|
|
|
2003-06-26 20:04:40 -07:00
|
|
|
feliminate-unused-debug-symbols
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_debug_only_used_symbols)
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform unused type elimination in debug info
|
2003-06-26 20:04:40 -07:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
feliminate-unused-debug-types
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_eliminate_unused_debug_types) Init(1)
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform unused type elimination in debug info
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2006-03-24 21:17:41 +00:00
|
|
|
femit-class-debug-always
|
2007-09-13 18:25:33 +00:00
|
|
|
Common Report Var(flag_emit_class_debug_always) Init(0)
|
2006-03-24 21:17:41 +00:00
|
|
|
Do not suppress C++ class debug information.
|
|
|
|
|
2009-10-08 21:00:04 +00:00
|
|
|
fenable-icf-debug
|
|
|
|
Common Report Var(flag_enable_icf_debug)
|
|
|
|
Generate debug information to support Identical Code Folding (ICF)
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fexceptions
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_exceptions) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable exception handling
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fexpensive-optimizations
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_expensive_optimizations) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform a number of minor, expensive optimizations
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
re PR middle-end/323 (optimized code gives strange floating point results)
PR rtl-optimization/323
* c-common.c (c_fully_fold, convert_and_check,
c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
(c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
* c-common.def (EXCESS_PRECISION_EXPR): New.
* c-cppbuiltin.c (builtin_define_float_constants): Define
constants with enough digits for long double.
* c-lex.c (interpret_float): Interpret constant with excess
precision where appropriate.
* c-opts.c (c_common_post_options): Set
flag_excess_precision_cmdline. Give an error for
-fexcess-precision=standard for C++ for processors where the
option is significant.
* c-parser.c (c_parser_conditional_expression): Handle excess
precision in condition.
* c-typeck.c (convert_arguments): Handle arguments with excess
precision.
(build_unary_op): Move excess precision outside operation.
(build_conditional_expr): Likewise.
(build_compound_expr): Likewise.
(build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
(build_modify_expr): Handle excess precision in RHS.
(convert_for_assignment): Handle excess precision in converted
value.
(digest_init, output_init_element, process_init_element): Handle
excess precision in initializer.
(c_finish_return): Handle excess precision in return value.
(build_binary_op): Handle excess precision in operands and add
excess precision as needed for operation.
* common.opt (-fexcess-precision=): New option.
* config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
For standard excess precision, output explicit conversion to and
truncation from XFmode.
(*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
*float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
*fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
*fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
define_splits, sqrt<mode>2): Disable where appropriate for
standard excess precision.
* convert.c (convert_to_real): Do not shorten arithmetic to type
for which excess precision would be used.
* defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
* doc/invoke.texi (-fexcess-precision=): Document option.
(-mfpmath=): Correct index entry.
* flags.h (enum excess_precision, flag_excess_precision_cmdline,
flag_excess_precision): New.
* langhooks.c (lhd_post_options): Set
flag_excess_precision_cmdline.
* opts.c (common_handle_option): Handle -fexcess-precision=.
* toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
init_excess_precision): New.
(lang_dependent_init_target): Call init_excess_precision.
* tree.c (excess_precision_type): New.
* tree.h (excess_precision_type): Declare.
ada:
* gcc-interface/misc.c (gnat_post_options): Set
flag_excess_precision_cmdline. Give an error for
-fexcess-precision=standard for processors where the option is
significant.
fortran:
* options.c (gfc_post_options): Set
flag_excess_precision_cmdline. Give an error for
-fexcess-precision=standard for processors where the option is
significant.
java:
* lang.c (java_post_options): Set flag_excess_precision_cmdline.
Give an error for -fexcess-precision=standard for processors where
the option is significant.
testsuite:
* gcc.target/i386/excess-precision-1.c,
gcc.target/i386/excess-precision-2.c,
gcc.target/i386/excess-precision-3.c,
gcc.target/i386/excess-precision-4.c,
gcc.target/i386/excess-precision-5.c,
gcc.target/i386/excess-precision-6.c: New tests.
From-SVN: r145272
2009-03-30 02:50:44 +01:00
|
|
|
fexcess-precision=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
|
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
ffast-math
|
|
|
|
Common
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
ffinite-math-only
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_finite_math_only) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Assume no NaNs or infinities are generated
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
ffixed-
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-ffixed-<register> Mark <register> as being unavailable to the compiler
|
2003-06-21 15:59:31 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
ffloat-store
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_float_store) Optimization
|
2004-07-10 02:06:36 +00:00
|
|
|
Don't allocate floats and doubles in extended-precision registers
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fforce-addr
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2007-12-03 23:09:23 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2007-04-14 22:38:16 +00:00
|
|
|
fforward-propagate
|
|
|
|
Common Report Var(flag_forward_propagate) Optimization
|
fwprop.c: New file.
2006-11-03 Paolo Bonzini <bonzini@gnu.org>
Steven Bosscher <stevenb.gcc@gmail.com>
* fwprop.c: New file.
* Makefile.in: Add fwprop.o.
* tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
* passes.c (init_optimization_passes): Schedule forward propagation.
* rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
parameter.
* timevar.def (TV_FWPROP): New.
* common.opt (-fforward-propagate): New.
* opts.c (decode_options): Enable forward propagation at -O2.
* gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
* cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
canon_for_address, table_size): Remove.
(new_basic_block, insert, remove_from_table): Remove references to
table_size.
(fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
simplification loop more straightforward by not calling fold_rtx
recursively.
(equiv_constant): Move here a small part of fold_rtx_subreg,
do not call fold_rtx. Call avoid_constant_pool_reference
to process MEMs.
* recog.c (canonicalize_change_group): New.
* recog.h (canonicalize_change_group): New.
* doc/invoke.texi (Optimization Options): Document fwprop.
* doc/passes.texi (RTL passes): Document fwprop.
Co-Authored-By: Steven Bosscher <stevenb.gcc@gmail.com>
From-SVN: r118475
2006-11-04 08:36:45 +00:00
|
|
|
Perform a forward propagation pass on RTL
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero means don't put addresses of constant functions in registers.
|
|
|
|
; Used for compiling the Unix kernel, where strange substitutions are
|
|
|
|
; done on the assembly output.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
ffunction-cse
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_no_function_cse,0)
|
2003-07-11 05:35:06 +00:00
|
|
|
Allow function addresses to be held in registers
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
ffunction-sections
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_function_sections)
|
2003-07-11 05:35:06 +00:00
|
|
|
Place each function into its own section
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fgcse
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_gcse) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform global common subexpression elimination
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fgcse-lm
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_gcse_lm) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform enhanced load motion during global common subexpression elimination
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fgcse-sm
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_gcse_sm) Init(0) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform store motion after global common subexpression elimination
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-10-17 16:16:45 +00:00
|
|
|
fgcse-las
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_gcse_las) Init(0) Optimization
|
common.opt: Add description of the new -fgcse-after-reload flag.
2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
* common.opt: Add description of the new -fgcse-after-reload flag.
* flags.h (flag_gcse_after_reload): Declaration of global variable.
* gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
is_jump_table_basic_block, bb_has_well_behaved_predecessors,
get_bb_avail_insn, hash_scan_set_after_reload,
compute_hash_table_after_reload, eliminate_partially_redundant_loads,
gcse_after_reload, get_bb_avail_insn): New functions to implement
gcse-after-reload.
(gcse_after_reload_main): New function, the main entry point to
gcse-after-reload.
* rtl.h (gcse_after_reload_main): Declaration of the new function.
* opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
* toplev.c (flag_gcse_after_reload): Initialization.
* passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
* params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
the gcse after reload optimization.
* params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
parameters.
* doc/invoke.texi: Documentation for the new flag gcse-after-reload.
From-SVN: r78842
2004-03-03 16:32:45 +00:00
|
|
|
Perform redundant load after store elimination in global common subexpression
|
|
|
|
elimination
|
|
|
|
|
|
|
|
fgcse-after-reload
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_gcse_after_reload) Optimization
|
common.opt: Add description of the new -fgcse-after-reload flag.
2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
* common.opt: Add description of the new -fgcse-after-reload flag.
* flags.h (flag_gcse_after_reload): Declaration of global variable.
* gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
is_jump_table_basic_block, bb_has_well_behaved_predecessors,
get_bb_avail_insn, hash_scan_set_after_reload,
compute_hash_table_after_reload, eliminate_partially_redundant_loads,
gcse_after_reload, get_bb_avail_insn): New functions to implement
gcse-after-reload.
(gcse_after_reload_main): New function, the main entry point to
gcse-after-reload.
* rtl.h (gcse_after_reload_main): Declaration of the new function.
* opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
* toplev.c (flag_gcse_after_reload): Initialization.
* passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
* params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
the gcse after reload optimization.
* params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
parameters.
* doc/invoke.texi: Documentation for the new flag gcse-after-reload.
From-SVN: r78842
2004-03-03 16:32:45 +00:00
|
|
|
Perform global common subexpression elimination after register allocation
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
has finished
|
2003-10-17 16:16:45 +00:00
|
|
|
|
2009-01-20 15:01:14 +00:00
|
|
|
; This option is not documented yet as its semantics will change.
|
backport: configure: Regenerate.
2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <grosser@fim.uni-passau.de>
Jan Sjodin <jan.sjodin@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com>
Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Konrad Trifunovic <konrad.trifunovic@inria.fr>
Adrien Eliche <aeliche@isty.uvsq.fr>
Merge from graphite branch.
* configure: Regenerate.
* Makefile.in: Regenerate.
* configure.ac (host_libs): Add ppl and cloog.
Add checks for PPL and CLooG.
* Makefile.def (ppl, cloog): Added modules and dependences.
* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.
gcc/
* graphite.c: New.
* graphite.h: New.
* tree-loop-linear.c (perfect_loop_nest_depth): Export.
* doc/invoke.texi (-floop-block, -floop-interchange,
-floop-strip-mine): Document new flags.
* tree-into-ssa.c (gimple_vec): Moved...
* tree-loop-distribution.c (rdg_component): Moved...
* cfgloopmanip.c: Include tree-flow.h.
(update_dominators_in_loop): New.
(create_empty_if_region_on_edge): New.
(create_empty_loop_on_edge): New.
(loopify): Use update_dominators_in_loop.
* tree-pass.h (pass_graphite_transforms): Declared.
* configure: Regenerate.
* tree-phinodes.c (make_phi_node): Export.
(add_phi_node_to_bb): New, split from create_phi_node.
* tree-chrec.c (for_each_scev_op): New.
* tree-chrec.h (for_each_scev_op): Declared.
* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
(remove_statement): Call get_phi_with_result.
* config.in (HAVE_cloog): Undef.
* gdbinit.in (pgg): New.
* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
* tree-ssa-loop.c (graphite_transforms): New.
(gate_graphite_transforms): New.
(pass_graphite_transforms): New.
* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
HAVE_cloog): Defined.
* tree-vectorizer.c (rename_variables_in_bb): Export.
* tree-data-ref.c (dr_may_alias_p): Export.
(stmt_simple_memref_p): New.
(find_data_references_in_stmt): Export.
(find_data_references_in_loop): Export.
(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
(create_rdg_vertices): Export.
(build_empty_rdg): New.
(build_rdg): Call build_empty_rdg. Free dependence_relations.
* tree-data-ref.h (rdg_component): ... here.
(scop_p): New.
(struct data_reference): Add a field scop.
(DR_SCOP): New.
(find_data_references_in_loop): Declared.
(find_data_references_in_stmt): Declared.
(create_rdg_vertices): Declared.
(dr_may_alias_p): Declared.
(stmt_simple_memref_p): Declared.
(struct rdg_edge): Add a field ddr_p relation.
(build_empty_rdg): Declared.
* lambda.h (lambda_matrix): Declare a VEC of.
(find_induction_var_from_exit_cond): Declared.
(lambda_vector_compare): New.
* common.opt (fgraphite, floop-strip-mine,
floop-interchange, floop-block): New flags.
* lambda-code.c (find_induction_var_from_exit_cond): Export.
* cfgloop.c (is_loop_exit): New.
* cfgloop.h (is_loop_exit): Declared.
(create_empty_if_region_on_edge): Declared.
(create_empty_loop_on_edge): Declared.
* tree-flow.h (add_phi_node_to_bb): Declared.
(make_phi_node): Declared.
(rename_variables_in_bb): Declared.
(perfect_loop_nest_depth): Declared.
(graphite_transform_loops): Declared.
* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
(graphite.o-warn): Add -Wno-error.
(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
(INCLUDES): Add PPLINC, CLOOGINC.
(OBJS-common): Add graphite.o.
(graphite.o): Add rule.
* gimple.h (gimple_vec): ... here.
* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
* passes.c (init_optimization_passes): Schedule
pass_graphite_transforms.
testsuite/
* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18}.c: New.
* gcc.dg/graphite/graphite.exp: New.
* gcc.dg/graphite/scop-matmult.c: New.
* gcc.dg/graphite/block-0.c: New.
* lib/target-supports.exp (check_effective_target_fgraphite): New.
* gfortran.dg/graphite/block-1.f90: New.
* gfortran.dg/graphite/scop-{1,2}.f: New.
* gfortran.dg/graphite/block-{1,3,4}.f90: New.
* gfortran.dg/graphite/graphite.exp: New.
Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
From-SVN: r139893
2008-09-02 16:31:04 +00:00
|
|
|
fgraphite
|
|
|
|
Common Report Var(flag_graphite)
|
|
|
|
Enable in and out of Graphite representation
|
|
|
|
|
New implementation of Graphite.
2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
* Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
graphite-clast-to-gimple.o, graphite-dependences.o,
graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
(graphite-blocking.o,
graphite-clast-to-gimple.o, graphite-dependences.o,
graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
* cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
* cfgloop.h (struct loop): Add can_be_parallel field.
* common.opt (fgraphite-identity): Moved up.
(fgraphite-force-parallel): New flag.
* graphite.c: Rewrite.
* graphite.h: Rewrite.
* passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
after Graphite.
* toplev.c (graphite_out_file): New file descriptor.
(graphite_in_file): New.
(process_options): flag_graphite_force_parallel cannot be used without
Graphite.
* tree-ssa-loop.c: Include toplev.h.
(gate_graphite_transforms): Enable flag_graphite for
flag_graphite_force_parallel.
From-SVN: r150301
2009-07-31 02:44:28 +00:00
|
|
|
fgraphite-identity
|
|
|
|
Common Report Var(flag_graphite_identity) Optimization
|
|
|
|
Enable Graphite Identity transformation
|
|
|
|
|
2009-08-01 18:22:58 +00:00
|
|
|
floop-parallelize-all
|
|
|
|
Common Report Var(flag_loop_parallelize_all) Optimization
|
New implementation of Graphite.
2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
* Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
graphite-clast-to-gimple.o, graphite-dependences.o,
graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
(graphite-blocking.o,
graphite-clast-to-gimple.o, graphite-dependences.o,
graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
* cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
* cfgloop.h (struct loop): Add can_be_parallel field.
* common.opt (fgraphite-identity): Moved up.
(fgraphite-force-parallel): New flag.
* graphite.c: Rewrite.
* graphite.h: Rewrite.
* passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
after Graphite.
* toplev.c (graphite_out_file): New file descriptor.
(graphite_in_file): New.
(process_options): flag_graphite_force_parallel cannot be used without
Graphite.
* tree-ssa-loop.c: Include toplev.h.
(gate_graphite_transforms): Enable flag_graphite for
flag_graphite_force_parallel.
From-SVN: r150301
2009-07-31 02:44:28 +00:00
|
|
|
Mark all loops as parallel
|
|
|
|
|
backport: configure: Regenerate.
2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <grosser@fim.uni-passau.de>
Jan Sjodin <jan.sjodin@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com>
Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Konrad Trifunovic <konrad.trifunovic@inria.fr>
Adrien Eliche <aeliche@isty.uvsq.fr>
Merge from graphite branch.
* configure: Regenerate.
* Makefile.in: Regenerate.
* configure.ac (host_libs): Add ppl and cloog.
Add checks for PPL and CLooG.
* Makefile.def (ppl, cloog): Added modules and dependences.
* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.
gcc/
* graphite.c: New.
* graphite.h: New.
* tree-loop-linear.c (perfect_loop_nest_depth): Export.
* doc/invoke.texi (-floop-block, -floop-interchange,
-floop-strip-mine): Document new flags.
* tree-into-ssa.c (gimple_vec): Moved...
* tree-loop-distribution.c (rdg_component): Moved...
* cfgloopmanip.c: Include tree-flow.h.
(update_dominators_in_loop): New.
(create_empty_if_region_on_edge): New.
(create_empty_loop_on_edge): New.
(loopify): Use update_dominators_in_loop.
* tree-pass.h (pass_graphite_transforms): Declared.
* configure: Regenerate.
* tree-phinodes.c (make_phi_node): Export.
(add_phi_node_to_bb): New, split from create_phi_node.
* tree-chrec.c (for_each_scev_op): New.
* tree-chrec.h (for_each_scev_op): Declared.
* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
(remove_statement): Call get_phi_with_result.
* config.in (HAVE_cloog): Undef.
* gdbinit.in (pgg): New.
* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
* tree-ssa-loop.c (graphite_transforms): New.
(gate_graphite_transforms): New.
(pass_graphite_transforms): New.
* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
HAVE_cloog): Defined.
* tree-vectorizer.c (rename_variables_in_bb): Export.
* tree-data-ref.c (dr_may_alias_p): Export.
(stmt_simple_memref_p): New.
(find_data_references_in_stmt): Export.
(find_data_references_in_loop): Export.
(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
(create_rdg_vertices): Export.
(build_empty_rdg): New.
(build_rdg): Call build_empty_rdg. Free dependence_relations.
* tree-data-ref.h (rdg_component): ... here.
(scop_p): New.
(struct data_reference): Add a field scop.
(DR_SCOP): New.
(find_data_references_in_loop): Declared.
(find_data_references_in_stmt): Declared.
(create_rdg_vertices): Declared.
(dr_may_alias_p): Declared.
(stmt_simple_memref_p): Declared.
(struct rdg_edge): Add a field ddr_p relation.
(build_empty_rdg): Declared.
* lambda.h (lambda_matrix): Declare a VEC of.
(find_induction_var_from_exit_cond): Declared.
(lambda_vector_compare): New.
* common.opt (fgraphite, floop-strip-mine,
floop-interchange, floop-block): New flags.
* lambda-code.c (find_induction_var_from_exit_cond): Export.
* cfgloop.c (is_loop_exit): New.
* cfgloop.h (is_loop_exit): Declared.
(create_empty_if_region_on_edge): Declared.
(create_empty_loop_on_edge): Declared.
* tree-flow.h (add_phi_node_to_bb): Declared.
(make_phi_node): Declared.
(rename_variables_in_bb): Declared.
(perfect_loop_nest_depth): Declared.
(graphite_transform_loops): Declared.
* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
(graphite.o-warn): Add -Wno-error.
(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
(INCLUDES): Add PPLINC, CLOOGINC.
(OBJS-common): Add graphite.o.
(graphite.o): Add rule.
* gimple.h (gimple_vec): ... here.
* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
* passes.c (init_optimization_passes): Schedule
pass_graphite_transforms.
testsuite/
* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18}.c: New.
* gcc.dg/graphite/graphite.exp: New.
* gcc.dg/graphite/scop-matmult.c: New.
* gcc.dg/graphite/block-0.c: New.
* lib/target-supports.exp (check_effective_target_fgraphite): New.
* gfortran.dg/graphite/block-1.f90: New.
* gfortran.dg/graphite/scop-{1,2}.f: New.
* gfortran.dg/graphite/block-{1,3,4}.f90: New.
* gfortran.dg/graphite/graphite.exp: New.
Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
From-SVN: r139893
2008-09-02 16:31:04 +00:00
|
|
|
floop-strip-mine
|
|
|
|
Common Report Var(flag_loop_strip_mine) Optimization
|
|
|
|
Enable Loop Strip Mining transformation
|
|
|
|
|
|
|
|
floop-interchange
|
|
|
|
Common Report Var(flag_loop_interchange) Optimization
|
|
|
|
Enable Loop Interchange transformation
|
|
|
|
|
|
|
|
floop-block
|
|
|
|
Common Report Var(flag_loop_block) Optimization
|
|
|
|
Enable Loop Blocking transformation
|
|
|
|
|
2010-06-16 18:52:25 -04:00
|
|
|
fstrict-volatile-bitfields
|
|
|
|
Common Report Var(flag_strict_volatile_bitfields) Init(-1)
|
|
|
|
Force bitfield accesses to match their type width
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fguess-branch-probability
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_guess_branch_prob) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable guessing of branch probabilities
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero means ignore `#ident' directives. 0 means handle them.
|
|
|
|
; Generate position-independent code for executables if possible
|
|
|
|
; On SVR4 targets, it also controls whether or not to emit a
|
|
|
|
; string identifying the compiler.
|
2003-06-22 13:44:40 +00:00
|
|
|
fident
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_no_ident,0)
|
2003-07-11 05:35:06 +00:00
|
|
|
Process #ident directives
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fif-conversion
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_if_conversion) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform conversion of conditional jumps to branchless equivalents
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fif-conversion2
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_if_conversion2) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform conversion of conditional jumps to conditional execution
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2010-07-08 16:37:49 +00:00
|
|
|
ftree-loop-if-convert
|
|
|
|
Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
|
|
|
|
Convert conditional jumps in innermost loops to branchless equivalents
|
|
|
|
|
2010-08-24 23:35:48 +00:00
|
|
|
ftree-loop-if-convert-stores
|
|
|
|
Common Report Var(flag_tree_loop_if_convert_stores) Optimization
|
|
|
|
Also if-convert conditional jumps containing memory writes
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; -finhibit-size-directive inhibits output of .size for ELF.
|
|
|
|
; This is used only for compiling crtstuff.c,
|
|
|
|
; and it may be extended to other effects
|
|
|
|
; needed for crtstuff.c on other systems.
|
2003-06-22 13:44:40 +00:00
|
|
|
finhibit-size-directive
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_inhibit_size_directive)
|
2003-07-11 05:35:06 +00:00
|
|
|
Do not generate .size directives
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2008-07-23 21:45:45 +02:00
|
|
|
findirect-inlining
|
|
|
|
Common Report Var(flag_indirect_inlining)
|
|
|
|
Perform indirect inlining
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero means that functions declared `inline' will be treated
|
|
|
|
; as `static'. Prevents generation of zillions of copies of unused
|
|
|
|
; static inline functions; instead, `inlines' are written out
|
|
|
|
; only when actually used. Used in conjunction with -g. Also
|
|
|
|
; does the right thing with #pragma interface.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
finline
|
2008-07-29 13:00:58 +02:00
|
|
|
Common Report Var(flag_no_inline,0) Init(0)
|
2003-07-11 05:35:06 +00:00
|
|
|
Pay attention to the \"inline\" keyword
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2007-09-04 18:07:50 +02:00
|
|
|
finline-small-functions
|
|
|
|
Common Report Var(flag_inline_small_functions) Optimization
|
|
|
|
Integrate simple functions into their callers when code size is known to not growth
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
finline-functions
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_inline_functions) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Integrate simple functions into their callers
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2005-09-01 08:54:40 +00:00
|
|
|
finline-functions-called-once
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
|
2005-09-01 08:54:40 +00:00
|
|
|
Integrate functions called once into their callers
|
2005-06-28 04:20:29 +02:00
|
|
|
|
2003-06-22 20:21:35 +00:00
|
|
|
finline-limit-
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Common RejectNegative Joined Alias(finline-limit=)
|
2003-06-22 20:21:35 +00:00
|
|
|
|
|
|
|
finline-limit=
|
|
|
|
Common RejectNegative Joined UInteger
|
2003-07-08 05:25:39 +00:00
|
|
|
-finline-limit=<number> Limit the size of inlined functions to <number>
|
2003-06-22 20:21:35 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
finstrument-functions
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_instrument_function_entry_exit)
|
2003-07-11 05:35:06 +00:00
|
|
|
Instrument function entry and exit with profiling calls
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2007-08-07 23:44:59 +00:00
|
|
|
finstrument-functions-exclude-function-list=
|
|
|
|
Common RejectNegative Joined
|
|
|
|
-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
|
|
|
|
|
|
|
|
finstrument-functions-exclude-file-list=
|
|
|
|
Common RejectNegative Joined
|
|
|
|
-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
|
|
|
|
|
2005-08-01 12:34:19 +00:00
|
|
|
fipa-cp
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_ipa_cp) Optimization
|
2005-08-01 12:34:19 +00:00
|
|
|
Perform Interprocedural constant propagation
|
|
|
|
|
2008-08-24 22:09:32 +02:00
|
|
|
fipa-cp-clone
|
|
|
|
Common Report Var(flag_ipa_cp_clone) Optimization
|
|
|
|
Perform cloning to make Interprocedural constant propagation stronger
|
|
|
|
|
2010-04-27 16:56:33 +02:00
|
|
|
fipa-profile
|
|
|
|
Common Report Var(flag_ipa_profile) Init(0) Optimization
|
|
|
|
Perform interprocedural profile propagation
|
Makefile.in: Added rules for ipa-pure-const.c...
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
ipa-type-escape.h, tree-promote-statics.c
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
tree-promote-statics.c: new files.
* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
int nonlocal_set_p, mark_constant_function): Deleted.
(rest_of_handle_cfg): Removed call to mark_constant_function.
(nonoverlapping_component_refs_p): Added calls to support
type based aliasing.
* tree-ssa-alias.c (may_alias_p,
compute_flow_insensitive_aliasing): Ditto.
* calls.c (flags_from_decl_or_type): Removed reference to
cgraph_rtl_info.
(flags_from_decl_or_type): Support ECF_POINTER_NO_CAPTURE attribute.
* c-common.c (handle_pointer_no_capture_attribute): New function
and added pointer_no_capture attribute.
* c-typeck.c (convert_arguments): Make builtins tolerant of having
too many arguments. This is necessary for Spec 2000.
* cgraph.h (const_function, pure_function): Removed.
* common.opt: Added "fipa-pure-const", "fipa-reference",
"fipa-type-escape", and "ftree-promote-static".
* opts.c: Ditto.
* passes.c: Added ipa and tree-promote-statics passes.
* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
* tree.h: Support ECF_POINTER_NO_CAPTURE attribute.
* tree-dfa.c (referenced_var_lookup_if_exists): New function.
* tree-flow.h: Added exposed sra calls and addition of
reference_vars_info field for FUNCTION_DECLS.
* tree-pass.h: Added passes.
* tree-sra.c: (sra_init_cache): New function.
(sra_insert_before, sra_insert_after) Made public.
(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
and made public.
* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
aliasing. (may_alias_p): Added code to use type escape analysis to
improve alias sets.
* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
code to prune clobbers of static variables based on information
produced in ipa-reference pass. Changed call clobbering so that
statics are not marked as clobbered if the call does not clobber
them.
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.dg/tree-ssa/ssa-dce-2.c: Changed dg-options to run at -O2
since pure const detection cannot run at -O1 in c compiler.
* gcc.dg/tree-ssa/20030714-1.c Changed scanning patterns because we
can now optimize this case properly.
* gcc.dg/tree-ssa/sra-2.c: Changed to -O3 and removed xfail
because we now pass.
* gcc.dg/vect/vect-92.c: Removed out of bounds array access.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r102098
2005-07-16 18:56:53 +00:00
|
|
|
|
2006-02-19 18:26:00 +00:00
|
|
|
fipa-pta
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_ipa_pta) Init(0) Optimization
|
2006-02-19 18:26:00 +00:00
|
|
|
Perform interprocedural points-to analysis
|
|
|
|
|
2010-04-27 16:56:33 +02:00
|
|
|
fipa-pure-const
|
|
|
|
Common Report Var(flag_ipa_pure_const) Init(0) Optimization
|
|
|
|
Discover pure and const functions
|
|
|
|
|
Makefile.in: Added rules for ipa-pure-const.c...
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
ipa-type-escape.h, tree-promote-statics.c
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
tree-promote-statics.c: new files.
* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
int nonlocal_set_p, mark_constant_function): Deleted.
(rest_of_handle_cfg): Removed call to mark_constant_function.
(nonoverlapping_component_refs_p): Added calls to support
type based aliasing.
* tree-ssa-alias.c (may_alias_p,
compute_flow_insensitive_aliasing): Ditto.
* calls.c (flags_from_decl_or_type): Removed reference to
cgraph_rtl_info.
(flags_from_decl_or_type): Support ECF_POINTER_NO_CAPTURE attribute.
* c-common.c (handle_pointer_no_capture_attribute): New function
and added pointer_no_capture attribute.
* c-typeck.c (convert_arguments): Make builtins tolerant of having
too many arguments. This is necessary for Spec 2000.
* cgraph.h (const_function, pure_function): Removed.
* common.opt: Added "fipa-pure-const", "fipa-reference",
"fipa-type-escape", and "ftree-promote-static".
* opts.c: Ditto.
* passes.c: Added ipa and tree-promote-statics passes.
* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
* tree.h: Support ECF_POINTER_NO_CAPTURE attribute.
* tree-dfa.c (referenced_var_lookup_if_exists): New function.
* tree-flow.h: Added exposed sra calls and addition of
reference_vars_info field for FUNCTION_DECLS.
* tree-pass.h: Added passes.
* tree-sra.c: (sra_init_cache): New function.
(sra_insert_before, sra_insert_after) Made public.
(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
and made public.
* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
aliasing. (may_alias_p): Added code to use type escape analysis to
improve alias sets.
* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
code to prune clobbers of static variables based on information
produced in ipa-reference pass. Changed call clobbering so that
statics are not marked as clobbered if the call does not clobber
them.
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.dg/tree-ssa/ssa-dce-2.c: Changed dg-options to run at -O2
since pure const detection cannot run at -O1 in c compiler.
* gcc.dg/tree-ssa/20030714-1.c Changed scanning patterns because we
can now optimize this case properly.
* gcc.dg/tree-ssa/sra-2.c: Changed to -O3 and removed xfail
because we now pass.
* gcc.dg/vect/vect-92.c: Removed out of bounds array access.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r102098
2005-07-16 18:56:53 +00:00
|
|
|
fipa-reference
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_ipa_reference) Init(0) Optimization
|
Makefile.in: Added rules for ipa-pure-const.c...
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c,
ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c,
ipa-type-escape.h, tree-promote-statics.c
* ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c,
ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h,
tree-promote-statics.c: new files.
* alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p,
nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1,
int nonlocal_set_p, mark_constant_function): Deleted.
(rest_of_handle_cfg): Removed call to mark_constant_function.
(nonoverlapping_component_refs_p): Added calls to support
type based aliasing.
* tree-ssa-alias.c (may_alias_p,
compute_flow_insensitive_aliasing): Ditto.
* calls.c (flags_from_decl_or_type): Removed reference to
cgraph_rtl_info.
(flags_from_decl_or_type): Support ECF_POINTER_NO_CAPTURE attribute.
* c-common.c (handle_pointer_no_capture_attribute): New function
and added pointer_no_capture attribute.
* c-typeck.c (convert_arguments): Make builtins tolerant of having
too many arguments. This is necessary for Spec 2000.
* cgraph.h (const_function, pure_function): Removed.
* common.opt: Added "fipa-pure-const", "fipa-reference",
"fipa-type-escape", and "ftree-promote-static".
* opts.c: Ditto.
* passes.c: Added ipa and tree-promote-statics passes.
* timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE,
TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS.
* tree.h: Support ECF_POINTER_NO_CAPTURE attribute.
* tree-dfa.c (referenced_var_lookup_if_exists): New function.
* tree-flow.h: Added exposed sra calls and addition of
reference_vars_info field for FUNCTION_DECLS.
* tree-pass.h: Added passes.
* tree-sra.c: (sra_init_cache): New function.
(sra_insert_before, sra_insert_after) Made public.
(type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p
and made public.
* tree-ssa-alias.c (dump_alias_stats): Added stats for type based
aliasing. (may_alias_p): Added code to use type escape analysis to
improve alias sets.
* tree-ssa-operands.c (add_call_clobber_ops): Added parameter and
code to prune clobbers of static variables based on information
produced in ipa-reference pass. Changed call clobbering so that
statics are not marked as clobbered if the call does not clobber
them.
2005-07-16 Danny Berlin <dberlin@dberlin.org>
Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.dg/tree-ssa/ssa-dce-2.c: Changed dg-options to run at -O2
since pure const detection cannot run at -O1 in c compiler.
* gcc.dg/tree-ssa/20030714-1.c Changed scanning patterns because we
can now optimize this case properly.
* gcc.dg/tree-ssa/sra-2.c: Changed to -O3 and removed xfail
because we now pass.
* gcc.dg/vect/vect-92.c: Removed out of bounds array access.
Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
From-SVN: r102098
2005-07-16 18:56:53 +00:00
|
|
|
Discover readonly and non addressable static variables
|
|
|
|
|
2007-05-28 11:10:27 +00:00
|
|
|
fipa-matrix-reorg
|
2007-06-28 09:30:57 +00:00
|
|
|
Common Report Var(flag_ipa_matrix_reorg) Optimization
|
2007-05-28 11:10:27 +00:00
|
|
|
Perform matrix layout flattening and transposing based
|
|
|
|
on profiling information.
|
|
|
|
|
2007-10-24 10:36:30 +00:00
|
|
|
fipa-struct-reorg
|
|
|
|
Common Report Var(flag_ipa_struct_reorg)
|
|
|
|
Perform structure layout optimizations based
|
|
|
|
on profiling information.
|
|
|
|
|
[multiple changes]
2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
* doc/passes.texi: Describe IRA.
* doc/tm.texi (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
-fira-propagate-cost, -fno-ira-share-save-slots,
-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
* flags.h (ira_algorithm): New enumeration.
(flag_ira_algorithm, flag_ira_verbose): New external variable
declarations.
* postreload.c (gate_handle_postreload): Don't do post reload
optimizations unless the reload is completed.
* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
IRA.
* tree-pass.h (pass_ira): New external variable declaration.
* reload.h: Add 2008 to the Copyright.
* cfgloopanal.c: Include params.h.
(estimate_reg_pressure_cost): Decrease cost for IRA optimization
mode.
* params.h (IRA_MAX_LOOPS_NUM): New macro.
* toplev.c (ira.h): New include.
(flag_ira_algorithm, flag_ira_verbose): New external variables.
(backend_init_target): Call ira_init.
(backend_init): Call ira_init_once.
(finalize): Call finish_ira_once.
* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): New
external variables.
* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
may_move_out_cost): New external variable declarations.
(move_table): New typedef.
* caller-save.c: Include headers output.h and ira.h.
(no_caller_save_reg_set): New global variable.
(save_slots_num, save_slots): New variables.
(reg_save_code, reg_restore_code, add_stored_regs): Add
prototypes.
(init_caller_save): Set up no_caller_save_reg_set.
(init_save_areas): Reset save_slots_num.
(saved_hard_reg): New structure.
(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
(initiate_saved_hard_regs, new_saved_hard_reg,
finish_saved_hard_regs, saved_hard_reg_compare_func): New
functions.
(setup_save_areas): Add code for sharing stack slots.
(all_blocks): New variable.
(save_call_clobbered_regs): Process pseudo-register too.
(mark_set_regs): Process pseudo-register too.
(insert_one_insn): Put the insn after bb note in a empty basic
block. Add insn check.
* global.c (eliminable_regset): Make it external.
(mark_elimination): Use DF_LR_IN for IRA.
(pseudo_for_reload_consideration_p): New.
(build_insn_chain): Make it external. Don't ignore spilled
pseudos for IRA. Use pseudo_for_reload_consideration_p.
(gate_handle_global_alloc): New function.
(pass_global_alloc): Add the gate function.
* opts.c (decode_options): Set up flag_ira. Print the warning for
-fira.
(common_handle_option): Process -fira-algorithm and -fira-verbose.
* timevar.def (TV_IRA, TV_RELOAD): New passes.
* regmove.c (regmove_optimize): Don't do replacement of output for
IRA.
* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
New external variable declarations.
* local-alloc.c (update_equiv_regs): Make it external. Return
true if jump label rebuilding should be done. Rescan new_insn for
notes.
(gate_handle_local_alloc): New function.
(pass_local_alloc): Add the gate function.
* alias.c (value_addr_p, stack_addr_p): New functions.
(nonoverlapping_memrefs_p): Use them for IRA.
* common.opt (fira, fira-algorithm, fira-coalesce,
fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
fira-verbose): New options.
* regclass.c (reg_class_subclasses, contains_reg_of_mode,
move_cost, may_move_in_cost, may_move_out_cost): Make the
variables external.
(move_table): Remove typedef.
(init_move_cost): Make it external.
(allocate_reg_info, resize_reg_info, setup_reg_classes): New
functions.
* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
setup_reg_classes): New function prototypes.
(eliminable_regset): New external variable declaration.
(build_insn_chain, update_equiv_regs): New function prototypes.
* Makefile.in (IRA_INT_H): New definition.
(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
(reload1.o, toplev.o): Add dependence on ira.h.
(cfgloopanal.o): Add PARAMS_H.
(caller-save.o): Add dependence on output.h and ira.h.
(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
ira-emit.o, ira-lives.o): New entries.
* passes.c (pass_ira): New pass.
* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
* reload1.c (ira.h): Include the header.
(changed_allocation_pseudos): New bitmap.
(init_reload): Initiate the bitmap.
(compute_use_by_pseudos): Permits spilled registers in FROM.
(temp_pseudo_reg_arr): New variable.
(reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
IRA. Call alter_reg with the additional parameter. Don't clear
spilled_pseudos for IRA. Restore original insn chain for IRA.
Clear changed_allocation_pseudos at the end of reload.
(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
(hard_regno_to_pseudo_regno): New variable.
(count_pseudo): Check spilled pseudos. Set up
hard_regno_to_pseudo_regno.
(count_spilled_pseudo): Check spilled pseudos. Update
hard_regno_to_pseudo_regno.
(find_reg): Use better_spill_reload_regno_p. Check
hard_regno_to_pseudo_regno.
(alter_reg): Set up spilled_pseudos. Add a new parameter. Add
code for IRA.
(eliminate_regs_1): Use additional parameter for alter_reg.
(finish_spills): Set up pseudo_previous_regs only for spilled
pseudos. Call reassign_pseudos once for all spilled pseudos, pass
more arguments. Don't clear live_throughout and dead_or_set for
spilled pseudos. Use additional parameter for alter_reg. Call
mark_allocation_change. Set up changed_allocation_pseudos.
Remove sanity check.
(emit_input_reload_insns, delete_output_reload): Use additional
parameter for alter_reg. Call mark_allocation_change.
(substitute, gen_reload_chain_without_interm_reg_p): New
functions.
(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
* testsuite/gcc.dg/20080410-1.c: New file.
* config/s390/s390.h (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
2008-08-24 Jeff Law <law@redhat.com>
* ira.c (setup_reg_class_intersect_union): Prefer smallest class
when ignoring unavailable registers.
2008-08-24 Jeff Law <law@redhat.com>
* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
* ira.c (setup_eliminable_regset): Check stack_realign_needed.
* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
* ira-build.c (allocno_range_compare_func): Stabilize sort.
2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
* reload1.c (find_reg): Process registers in register allocation order.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* toplev.c (backend_init_target): Move ira_init call from
here...
(lang_dependent_init_target): ...to here.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* ira.c (setup_class_subset_and_memory_move_costs): Don't
calculate memory move costs for NO_REGS.
2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
STACK_REGS is defined.
2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (IRA_COVER_CLASSES): Define.
* config/sh/sh.md (movsicc_true+3): Check if emit returns a
barrier.
From-SVN: r139590
2008-08-26 12:39:58 +00:00
|
|
|
fira-algorithm=
|
|
|
|
Common Joined RejectNegative
|
tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
2008-12-09 Vladimir Makarov <vmakarov@redhat.com>
* doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
* doc/invoke.texi (-fira-region): Describe new option.
(-fira-algorithm): Change the values.
* ira-conflicts.c (build_conflict_bit_table,
build_allocno_conflicts): Use ira_reg_classes_intersect_p.
(ira_build_conflicts): Use flag flag_ira_region instead of
flag_ira_algorithm. Prohibit usage of callee-saved likely spilled
base registers for allocnos crossing calls.
* flags.h (enum ira_algorithm): Redefine.
(enum ira_region): New.
(flag_ira_region): New.
* cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region
instead of flag_ira_algorithm.
* toplev.c (flag_ira_algorithm): Change the initial value.
(flag_ira_region): New.
* ira-int.h (ira_reg_classes_intersect_p,
ira_reg_class_super_classes): New.
* ira-color.c (update_copy_costs): Use
ira_reg_classes_intersect_p. Use right class to find hard reg
index.
(update_conflict_hard_regno_costs): Ditto. Add a new parameter.
(assign_hard_reg): Ditto. Pass additional argument to
update_conflict_hard_regno_costs. Do not uncoalesce for priority
coloring.
(allocno_priorities, setup_allocno_priorities,
allocno_priority_compare_func): Move before color_allocnos.
(color_allocnos): Add priority coloring. Use flag flag_ira_region
instead of flag_ira_algorithm.
(move_spill_restore): Check classes of the same reg allocno from
different regions.
(update_curr_costs): Use ira_reg_classes_intersect_p.
(ira_reassign_conflict_allocnos): Ditto.
* opts.c (decode_options): Always set up flag_ira. Set up
flag_ira_algorithm. Warn CB can not be used for architecture.
(common_handle_option): Modify code for -fira-algorithm. Add code
to process -fira-region.
* ira-lives.c (update_allocno_pressure_excess_length): Process
superclasses too.
(set_allocno_live, clear_allocno_live, mark_reg_live,
mark_reg_dead, process_bb_node_lives): Ditto.
* ira-emit.c (ira_emit): Fix insn codes.
* ira-build.c (propagate_allocno_info): Use flag flag_ira_region
instead of flag_ira_algorithm.
(allocno_range_compare_func): Ignore classes for priority
coloring.
(setup_min_max_conflict_allocno_ids): Ditto.
(ira_flattening): Use ira_reg_classes_intersect_p.
* genpreds.c (write_enum_constraint_num): Output
CONSTRAINT__LIMIT.
* common.opt (fira-algorithm): Modify.
(fira-region): New.
* ira.c (setup_class_hard_regs): Initialize.
(setup_cover_and_important_classes): Modify code setting class
related info for priority coloring.
(setup_class_translate): Ditto.
(ira_reg_classes_intersect_p, ira_reg_class_super_classes): New.
(setup_reg_class_intersect_union): Rename to
setup_reg_class_relations. Add code for setting up new variables.
(find_reg_class_closure): Do not check targetm.ira_cover_classes.
(ira): Use flag flag_ira_region instead of flag_ira_algorithm.
* ira-costs.c (common_classes): New.
(print_costs): Use flag flag_ira_region instead of
flag_ira_algorithm.
(find_allocno_class_costs): Ditto. Use common_classes. Translate
alt_class.
(ira_costs): Allocate/deallocate common_classes.
* config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19.
(REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for
R02A_REGS.
* reload1.c (choose_reload_regs): Use MODE_INT for partial ints in
smallest_mode_for_size.
From-SVN: r142610
2008-12-09 21:25:11 +00:00
|
|
|
-fira-algorithm=[CB|priority] Set the used IRA algorithm
|
|
|
|
|
|
|
|
fira-region=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
-fira-region=[one|all|mixed] Set regions for IRA
|
[multiple changes]
2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
* doc/passes.texi: Describe IRA.
* doc/tm.texi (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
-fira-propagate-cost, -fno-ira-share-save-slots,
-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
* flags.h (ira_algorithm): New enumeration.
(flag_ira_algorithm, flag_ira_verbose): New external variable
declarations.
* postreload.c (gate_handle_postreload): Don't do post reload
optimizations unless the reload is completed.
* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
IRA.
* tree-pass.h (pass_ira): New external variable declaration.
* reload.h: Add 2008 to the Copyright.
* cfgloopanal.c: Include params.h.
(estimate_reg_pressure_cost): Decrease cost for IRA optimization
mode.
* params.h (IRA_MAX_LOOPS_NUM): New macro.
* toplev.c (ira.h): New include.
(flag_ira_algorithm, flag_ira_verbose): New external variables.
(backend_init_target): Call ira_init.
(backend_init): Call ira_init_once.
(finalize): Call finish_ira_once.
* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): New
external variables.
* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
may_move_out_cost): New external variable declarations.
(move_table): New typedef.
* caller-save.c: Include headers output.h and ira.h.
(no_caller_save_reg_set): New global variable.
(save_slots_num, save_slots): New variables.
(reg_save_code, reg_restore_code, add_stored_regs): Add
prototypes.
(init_caller_save): Set up no_caller_save_reg_set.
(init_save_areas): Reset save_slots_num.
(saved_hard_reg): New structure.
(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
(initiate_saved_hard_regs, new_saved_hard_reg,
finish_saved_hard_regs, saved_hard_reg_compare_func): New
functions.
(setup_save_areas): Add code for sharing stack slots.
(all_blocks): New variable.
(save_call_clobbered_regs): Process pseudo-register too.
(mark_set_regs): Process pseudo-register too.
(insert_one_insn): Put the insn after bb note in a empty basic
block. Add insn check.
* global.c (eliminable_regset): Make it external.
(mark_elimination): Use DF_LR_IN for IRA.
(pseudo_for_reload_consideration_p): New.
(build_insn_chain): Make it external. Don't ignore spilled
pseudos for IRA. Use pseudo_for_reload_consideration_p.
(gate_handle_global_alloc): New function.
(pass_global_alloc): Add the gate function.
* opts.c (decode_options): Set up flag_ira. Print the warning for
-fira.
(common_handle_option): Process -fira-algorithm and -fira-verbose.
* timevar.def (TV_IRA, TV_RELOAD): New passes.
* regmove.c (regmove_optimize): Don't do replacement of output for
IRA.
* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
New external variable declarations.
* local-alloc.c (update_equiv_regs): Make it external. Return
true if jump label rebuilding should be done. Rescan new_insn for
notes.
(gate_handle_local_alloc): New function.
(pass_local_alloc): Add the gate function.
* alias.c (value_addr_p, stack_addr_p): New functions.
(nonoverlapping_memrefs_p): Use them for IRA.
* common.opt (fira, fira-algorithm, fira-coalesce,
fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
fira-verbose): New options.
* regclass.c (reg_class_subclasses, contains_reg_of_mode,
move_cost, may_move_in_cost, may_move_out_cost): Make the
variables external.
(move_table): Remove typedef.
(init_move_cost): Make it external.
(allocate_reg_info, resize_reg_info, setup_reg_classes): New
functions.
* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
setup_reg_classes): New function prototypes.
(eliminable_regset): New external variable declaration.
(build_insn_chain, update_equiv_regs): New function prototypes.
* Makefile.in (IRA_INT_H): New definition.
(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
(reload1.o, toplev.o): Add dependence on ira.h.
(cfgloopanal.o): Add PARAMS_H.
(caller-save.o): Add dependence on output.h and ira.h.
(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
ira-emit.o, ira-lives.o): New entries.
* passes.c (pass_ira): New pass.
* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
* reload1.c (ira.h): Include the header.
(changed_allocation_pseudos): New bitmap.
(init_reload): Initiate the bitmap.
(compute_use_by_pseudos): Permits spilled registers in FROM.
(temp_pseudo_reg_arr): New variable.
(reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
IRA. Call alter_reg with the additional parameter. Don't clear
spilled_pseudos for IRA. Restore original insn chain for IRA.
Clear changed_allocation_pseudos at the end of reload.
(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
(hard_regno_to_pseudo_regno): New variable.
(count_pseudo): Check spilled pseudos. Set up
hard_regno_to_pseudo_regno.
(count_spilled_pseudo): Check spilled pseudos. Update
hard_regno_to_pseudo_regno.
(find_reg): Use better_spill_reload_regno_p. Check
hard_regno_to_pseudo_regno.
(alter_reg): Set up spilled_pseudos. Add a new parameter. Add
code for IRA.
(eliminate_regs_1): Use additional parameter for alter_reg.
(finish_spills): Set up pseudo_previous_regs only for spilled
pseudos. Call reassign_pseudos once for all spilled pseudos, pass
more arguments. Don't clear live_throughout and dead_or_set for
spilled pseudos. Use additional parameter for alter_reg. Call
mark_allocation_change. Set up changed_allocation_pseudos.
Remove sanity check.
(emit_input_reload_insns, delete_output_reload): Use additional
parameter for alter_reg. Call mark_allocation_change.
(substitute, gen_reload_chain_without_interm_reg_p): New
functions.
(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
* testsuite/gcc.dg/20080410-1.c: New file.
* config/s390/s390.h (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
2008-08-24 Jeff Law <law@redhat.com>
* ira.c (setup_reg_class_intersect_union): Prefer smallest class
when ignoring unavailable registers.
2008-08-24 Jeff Law <law@redhat.com>
* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
* ira.c (setup_eliminable_regset): Check stack_realign_needed.
* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
* ira-build.c (allocno_range_compare_func): Stabilize sort.
2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
* reload1.c (find_reg): Process registers in register allocation order.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* toplev.c (backend_init_target): Move ira_init call from
here...
(lang_dependent_init_target): ...to here.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* ira.c (setup_class_subset_and_memory_move_costs): Don't
calculate memory move costs for NO_REGS.
2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
STACK_REGS is defined.
2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (IRA_COVER_CLASSES): Define.
* config/sh/sh.md (movsicc_true+3): Check if emit returns a
barrier.
From-SVN: r139590
2008-08-26 12:39:58 +00:00
|
|
|
|
|
|
|
fira-coalesce
|
|
|
|
Common Report Var(flag_ira_coalesce) Init(0)
|
|
|
|
Do optimistic coalescing.
|
|
|
|
|
params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
2009-09-26 Vladimir Makarov <vmakarov@redhat.com>
* params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
* params.h (IRA_LOOP_RESERVED_REGS): New
* tree-pass.h (pass_subregs_of_mode_init,
pass_subregs_of_mode_finish): Remove.
* passes.c (pass_subregs_of_mode_init,
pass_subregs_of_mode_finish): Remove.
(pass_reginfo_init): Move before loop optimizations.
* config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
* common.opt (fira-loop-pressure): New.
* toplev.h (flag_ira_loop_pressure): New.
* rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New
externals.
* reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
Make external and void type functions.
(gate_subregs_of_mode_init, pass_subregs_of_mode_init,
pass_subregs_of_mode_finish): Remove.
* ira-costs.c (init_costs): Call init_subregs_of_mode.
* regmove.c: Include ira.h.
(regmove_optimize): Call ira_set_pseudo_classes after IRA based
register pressure calculation in loops.
* loop-invariant.c: Include REGS_H and ira.h.
(struct loop_data): New members max_reg_pressure, regs_ref, and
regs_live.
(struct invariant): New member orig_regno.
(curr_loop): New variable.
(find_exits): Initialize regs_ref and regs_live.
(create_new_invariant): Initialize orig_regno.
(get_cover_class_and_nregs): New.
(get_inv_cost): Make aregs_needed an array. Use regs_needed as an
array. Add code for flag_ira_loop_pressure.
(gain_for_invariant): Make new_regs an array. Add code for
flag_ira_loop_pressure.
(best_gain_for_invariant): Ditto.
(set_move_mark): New parameter gain. Use it for debugging output.
(find_invariants_to_move): Make regs_needed and new_regs an array.
Add code for flag_ira_loop_pressure.
(move_invariant_reg): Set up orig_regno.
(move_invariants): Set up reg classes for pseudos for
flag_ira_loop_pressure.
(free_loop_data): Clear regs_ref and regs_live.
(curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
get_regno_cover_class, change_pressure, mark_regno_live,
mark_regno_death, mark_reg_store, mark_reg_clobber,
mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
(move_loop_invariants): Calculate pressure. Initialize curr_loop.
* ira.c (ira): Call ira_set_pseudo_classes after IRA based
register pressure calculation in loops if new regs were added.
Call finish_subregs_of_mode.
* opts.c (decode_options): Set up flag_ira_loop_pressure.
* Makefile.in (loop-invariant.o): Add ira.h.
(regmove.o): Ditto.
* doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
Describe.
* doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
From-SVN: r152770
2009-10-14 16:24:11 +00:00
|
|
|
fira-loop-pressure
|
|
|
|
Common Report Var(flag_ira_loop_pressure)
|
|
|
|
Use IRA based register pressure calculation
|
|
|
|
in RTL loop optimizations.
|
|
|
|
|
[multiple changes]
2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
* doc/passes.texi: Describe IRA.
* doc/tm.texi (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
-fira-propagate-cost, -fno-ira-share-save-slots,
-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
* flags.h (ira_algorithm): New enumeration.
(flag_ira_algorithm, flag_ira_verbose): New external variable
declarations.
* postreload.c (gate_handle_postreload): Don't do post reload
optimizations unless the reload is completed.
* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
IRA.
* tree-pass.h (pass_ira): New external variable declaration.
* reload.h: Add 2008 to the Copyright.
* cfgloopanal.c: Include params.h.
(estimate_reg_pressure_cost): Decrease cost for IRA optimization
mode.
* params.h (IRA_MAX_LOOPS_NUM): New macro.
* toplev.c (ira.h): New include.
(flag_ira_algorithm, flag_ira_verbose): New external variables.
(backend_init_target): Call ira_init.
(backend_init): Call ira_init_once.
(finalize): Call finish_ira_once.
* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): New
external variables.
* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
may_move_out_cost): New external variable declarations.
(move_table): New typedef.
* caller-save.c: Include headers output.h and ira.h.
(no_caller_save_reg_set): New global variable.
(save_slots_num, save_slots): New variables.
(reg_save_code, reg_restore_code, add_stored_regs): Add
prototypes.
(init_caller_save): Set up no_caller_save_reg_set.
(init_save_areas): Reset save_slots_num.
(saved_hard_reg): New structure.
(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
(initiate_saved_hard_regs, new_saved_hard_reg,
finish_saved_hard_regs, saved_hard_reg_compare_func): New
functions.
(setup_save_areas): Add code for sharing stack slots.
(all_blocks): New variable.
(save_call_clobbered_regs): Process pseudo-register too.
(mark_set_regs): Process pseudo-register too.
(insert_one_insn): Put the insn after bb note in a empty basic
block. Add insn check.
* global.c (eliminable_regset): Make it external.
(mark_elimination): Use DF_LR_IN for IRA.
(pseudo_for_reload_consideration_p): New.
(build_insn_chain): Make it external. Don't ignore spilled
pseudos for IRA. Use pseudo_for_reload_consideration_p.
(gate_handle_global_alloc): New function.
(pass_global_alloc): Add the gate function.
* opts.c (decode_options): Set up flag_ira. Print the warning for
-fira.
(common_handle_option): Process -fira-algorithm and -fira-verbose.
* timevar.def (TV_IRA, TV_RELOAD): New passes.
* regmove.c (regmove_optimize): Don't do replacement of output for
IRA.
* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
New external variable declarations.
* local-alloc.c (update_equiv_regs): Make it external. Return
true if jump label rebuilding should be done. Rescan new_insn for
notes.
(gate_handle_local_alloc): New function.
(pass_local_alloc): Add the gate function.
* alias.c (value_addr_p, stack_addr_p): New functions.
(nonoverlapping_memrefs_p): Use them for IRA.
* common.opt (fira, fira-algorithm, fira-coalesce,
fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
fira-verbose): New options.
* regclass.c (reg_class_subclasses, contains_reg_of_mode,
move_cost, may_move_in_cost, may_move_out_cost): Make the
variables external.
(move_table): Remove typedef.
(init_move_cost): Make it external.
(allocate_reg_info, resize_reg_info, setup_reg_classes): New
functions.
* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
setup_reg_classes): New function prototypes.
(eliminable_regset): New external variable declaration.
(build_insn_chain, update_equiv_regs): New function prototypes.
* Makefile.in (IRA_INT_H): New definition.
(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
(reload1.o, toplev.o): Add dependence on ira.h.
(cfgloopanal.o): Add PARAMS_H.
(caller-save.o): Add dependence on output.h and ira.h.
(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
ira-emit.o, ira-lives.o): New entries.
* passes.c (pass_ira): New pass.
* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
* reload1.c (ira.h): Include the header.
(changed_allocation_pseudos): New bitmap.
(init_reload): Initiate the bitmap.
(compute_use_by_pseudos): Permits spilled registers in FROM.
(temp_pseudo_reg_arr): New variable.
(reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
IRA. Call alter_reg with the additional parameter. Don't clear
spilled_pseudos for IRA. Restore original insn chain for IRA.
Clear changed_allocation_pseudos at the end of reload.
(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
(hard_regno_to_pseudo_regno): New variable.
(count_pseudo): Check spilled pseudos. Set up
hard_regno_to_pseudo_regno.
(count_spilled_pseudo): Check spilled pseudos. Update
hard_regno_to_pseudo_regno.
(find_reg): Use better_spill_reload_regno_p. Check
hard_regno_to_pseudo_regno.
(alter_reg): Set up spilled_pseudos. Add a new parameter. Add
code for IRA.
(eliminate_regs_1): Use additional parameter for alter_reg.
(finish_spills): Set up pseudo_previous_regs only for spilled
pseudos. Call reassign_pseudos once for all spilled pseudos, pass
more arguments. Don't clear live_throughout and dead_or_set for
spilled pseudos. Use additional parameter for alter_reg. Call
mark_allocation_change. Set up changed_allocation_pseudos.
Remove sanity check.
(emit_input_reload_insns, delete_output_reload): Use additional
parameter for alter_reg. Call mark_allocation_change.
(substitute, gen_reload_chain_without_interm_reg_p): New
functions.
(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
* testsuite/gcc.dg/20080410-1.c: New file.
* config/s390/s390.h (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
2008-08-24 Jeff Law <law@redhat.com>
* ira.c (setup_reg_class_intersect_union): Prefer smallest class
when ignoring unavailable registers.
2008-08-24 Jeff Law <law@redhat.com>
* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
* ira.c (setup_eliminable_regset): Check stack_realign_needed.
* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
* ira-build.c (allocno_range_compare_func): Stabilize sort.
2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
* reload1.c (find_reg): Process registers in register allocation order.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* toplev.c (backend_init_target): Move ira_init call from
here...
(lang_dependent_init_target): ...to here.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* ira.c (setup_class_subset_and_memory_move_costs): Don't
calculate memory move costs for NO_REGS.
2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
STACK_REGS is defined.
2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (IRA_COVER_CLASSES): Define.
* config/sh/sh.md (movsicc_true+3): Check if emit returns a
barrier.
From-SVN: r139590
2008-08-26 12:39:58 +00:00
|
|
|
fira-share-save-slots
|
|
|
|
Common Report Var(flag_ira_share_save_slots) Init(1)
|
|
|
|
Share slots for saving different hard registers.
|
|
|
|
|
|
|
|
fira-share-spill-slots
|
|
|
|
Common Report Var(flag_ira_share_spill_slots) Init(1)
|
|
|
|
Share stack slots for spilled pseudo-registers.
|
|
|
|
|
|
|
|
fira-verbose=
|
common.opt (fira-verbose): Use Var.
* common.opt (fira-verbose): Use Var.
(fpcc-struct-return): Use Init instead of VarExists.
* defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
toplev.c.
* flags.h (flag_signed_char, flag_short_enums,
flag_pcc_struct_return, flag_ira_verbose,
flag_detailed_statistics, flag_remove_unreachable_functions):
Remove.
* toplev.c (flag_detailed_statistics, flag_signed_char,
flag_short_enums, flag_pcc_struct_return, flag_ira_verbose):
Remove.
(DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
* toplev.h (flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
flag_cprop_registers, time_report, flag_ira_loop_pressure,
flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
c-family:
* c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
flag_signed_bitfields, warn_strict_null_sentinel,
flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
flag_gen_declaration, flag_no_gnu_keywords,
flag_implement_inlines, flag_implicit_templates,
flag_implicit_inline_templates, flag_optional_diags,
flag_elide_constructors, flag_default_inline, flag_rtti,
flag_conserve_space, flag_access_control, flag_check_new,
flag_new_for_scope, flag_weak, flag_working_directory,
flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
flag_enforce_eh_specs, flag_threadsafe_statics,
flag_pretty_templates): Remove.
* c-common.h (flag_preprocess_only, flag_nil_receivers,
flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
flag_replace_objc_classes, flag_undef, flag_no_builtin,
flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
flag_no_gnu_keywords, flag_implement_inlines,
flag_implicit_templates, flag_implicit_inline_templates,
flag_optional_diags, flag_elide_constructors, flag_default_inline,
flag_rtti, flag_conserve_space, flag_access_control,
flag_check_new, flag_new_for_scope, flag_weak,
flag_working_directory, flag_use_cxa_atexit,
flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
flag_threadsafe_statics, flag_pretty_templates,
warn_strict_null_sentinel): Remove.
* c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
fbuiltin, fcheck-new, fconserve-space, felide-constructors,
fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
fimplicit-inline-templates, fimplicit-templates,
flax-vector-conversions, fms-extensions, fnil-receivers,
fnonansi-builtins, fpretty-templates, freplace-objc-classes,
frtti, fshort-double, fshort-enums, fshort-wchar,
fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
gen-decls, undef): Use Var.
(fdefault-inline, foptional-diags): Document as doing nothing.
* c-opts.c (c_common_handle_option): Remove cases for options now
using Var. Mark ignored options as such.
fortran:
* lang.opt (fshort-enums): Define using Var and VarExists.
* options.c (gfc_handle_option): Don't set flag_short_enums here.
lto:
* lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
(lto_handle_option): Don't set flag_signed_char here.
From-SVN: r160384
2010-06-07 17:46:23 +01:00
|
|
|
Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-fira-verbose=<number> Control IRA's level of diagnostic messages.
|
[multiple changes]
2008-08-26 Vladimir Makarov <vmakarov@redhat.com>
* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
* doc/passes.texi: Describe IRA.
* doc/tm.texi (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
-fira-propagate-cost, -fno-ira-share-save-slots,
-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
* flags.h (ira_algorithm): New enumeration.
(flag_ira_algorithm, flag_ira_verbose): New external variable
declarations.
* postreload.c (gate_handle_postreload): Don't do post reload
optimizations unless the reload is completed.
* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
IRA.
* tree-pass.h (pass_ira): New external variable declaration.
* reload.h: Add 2008 to the Copyright.
* cfgloopanal.c: Include params.h.
(estimate_reg_pressure_cost): Decrease cost for IRA optimization
mode.
* params.h (IRA_MAX_LOOPS_NUM): New macro.
* toplev.c (ira.h): New include.
(flag_ira_algorithm, flag_ira_verbose): New external variables.
(backend_init_target): Call ira_init.
(backend_init): Call ira_init_once.
(finalize): Call finish_ira_once.
* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): New
external variables.
* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
may_move_out_cost): New external variable declarations.
(move_table): New typedef.
* caller-save.c: Include headers output.h and ira.h.
(no_caller_save_reg_set): New global variable.
(save_slots_num, save_slots): New variables.
(reg_save_code, reg_restore_code, add_stored_regs): Add
prototypes.
(init_caller_save): Set up no_caller_save_reg_set.
(init_save_areas): Reset save_slots_num.
(saved_hard_reg): New structure.
(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
(initiate_saved_hard_regs, new_saved_hard_reg,
finish_saved_hard_regs, saved_hard_reg_compare_func): New
functions.
(setup_save_areas): Add code for sharing stack slots.
(all_blocks): New variable.
(save_call_clobbered_regs): Process pseudo-register too.
(mark_set_regs): Process pseudo-register too.
(insert_one_insn): Put the insn after bb note in a empty basic
block. Add insn check.
* global.c (eliminable_regset): Make it external.
(mark_elimination): Use DF_LR_IN for IRA.
(pseudo_for_reload_consideration_p): New.
(build_insn_chain): Make it external. Don't ignore spilled
pseudos for IRA. Use pseudo_for_reload_consideration_p.
(gate_handle_global_alloc): New function.
(pass_global_alloc): Add the gate function.
* opts.c (decode_options): Set up flag_ira. Print the warning for
-fira.
(common_handle_option): Process -fira-algorithm and -fira-verbose.
* timevar.def (TV_IRA, TV_RELOAD): New passes.
* regmove.c (regmove_optimize): Don't do replacement of output for
IRA.
* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
New external variable declarations.
* local-alloc.c (update_equiv_regs): Make it external. Return
true if jump label rebuilding should be done. Rescan new_insn for
notes.
(gate_handle_local_alloc): New function.
(pass_local_alloc): Add the gate function.
* alias.c (value_addr_p, stack_addr_p): New functions.
(nonoverlapping_memrefs_p): Use them for IRA.
* common.opt (fira, fira-algorithm, fira-coalesce,
fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
fira-verbose): New options.
* regclass.c (reg_class_subclasses, contains_reg_of_mode,
move_cost, may_move_in_cost, may_move_out_cost): Make the
variables external.
(move_table): Remove typedef.
(init_move_cost): Make it external.
(allocate_reg_info, resize_reg_info, setup_reg_classes): New
functions.
* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
setup_reg_classes): New function prototypes.
(eliminable_regset): New external variable declaration.
(build_insn_chain, update_equiv_regs): New function prototypes.
* Makefile.in (IRA_INT_H): New definition.
(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
(reload1.o, toplev.o): Add dependence on ira.h.
(cfgloopanal.o): Add PARAMS_H.
(caller-save.o): Add dependence on output.h and ira.h.
(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
ira-emit.o, ira-lives.o): New entries.
* passes.c (pass_ira): New pass.
* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
* reload1.c (ira.h): Include the header.
(changed_allocation_pseudos): New bitmap.
(init_reload): Initiate the bitmap.
(compute_use_by_pseudos): Permits spilled registers in FROM.
(temp_pseudo_reg_arr): New variable.
(reload): Allocate and free temp_pseudo_reg_arr. Sort pseudos for
IRA. Call alter_reg with the additional parameter. Don't clear
spilled_pseudos for IRA. Restore original insn chain for IRA.
Clear changed_allocation_pseudos at the end of reload.
(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
(hard_regno_to_pseudo_regno): New variable.
(count_pseudo): Check spilled pseudos. Set up
hard_regno_to_pseudo_regno.
(count_spilled_pseudo): Check spilled pseudos. Update
hard_regno_to_pseudo_regno.
(find_reg): Use better_spill_reload_regno_p. Check
hard_regno_to_pseudo_regno.
(alter_reg): Set up spilled_pseudos. Add a new parameter. Add
code for IRA.
(eliminate_regs_1): Use additional parameter for alter_reg.
(finish_spills): Set up pseudo_previous_regs only for spilled
pseudos. Call reassign_pseudos once for all spilled pseudos, pass
more arguments. Don't clear live_throughout and dead_or_set for
spilled pseudos. Use additional parameter for alter_reg. Call
mark_allocation_change. Set up changed_allocation_pseudos.
Remove sanity check.
(emit_input_reload_insns, delete_output_reload): Use additional
parameter for alter_reg. Call mark_allocation_change.
(substitute, gen_reload_chain_without_interm_reg_p): New
functions.
(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
* testsuite/gcc.dg/20080410-1.c: New file.
* config/s390/s390.h (IRA_COVER_CLASSES,
IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
2008-08-24 Jeff Law <law@redhat.com>
* ira.c (setup_reg_class_intersect_union): Prefer smallest class
when ignoring unavailable registers.
2008-08-24 Jeff Law <law@redhat.com>
* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
* ira.c (setup_eliminable_regset): Check stack_realign_needed.
* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
* ira-build.c (allocno_range_compare_func): Stabilize sort.
2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
* reload1.c (find_reg): Process registers in register allocation order.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* toplev.c (backend_init_target): Move ira_init call from
here...
(lang_dependent_init_target): ...to here.
2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
* ira.c (setup_class_subset_and_memory_move_costs): Don't
calculate memory move costs for NO_REGS.
2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
STACK_REGS is defined.
2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.h (IRA_COVER_CLASSES): Define.
* config/sh/sh.md (movsicc_true+3): Check if emit returns a
barrier.
From-SVN: r139590
2008-08-26 12:39:58 +00:00
|
|
|
|
tree-ssa-loop-ivopts.c: New file.
* tree-ssa-loop-ivopts.c: New file.
* Makefile.in (tree-ssa-loop-ivopts.c): Add.
* cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
target_pres_cost, target_spill_cost): Declare.
* cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
spill_cost): Renamed to ...
(target_avail_regs, target_res_regs, target_small_cost,
target_pres_cost, target_spill_cost): ... and exported.
(init_set_costs, global_cost_for_size): Work with renamed variables.
* common.opt (flag_ivopts): New flag.
* expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
REF_ORIGINAL.
* gimplify.c (struct gimplify_ctx): Add into_ssa field.
(internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
generating SSA form.
(force_gimple_operand): New function.
* timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
* tree-cfg.c (stmt_bsi): New function.
* params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
PARAM_IV_MAX_CONSIDERED_USES): New.
* tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
* tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
* tree-nested.c (build_addr): Export.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_iv_optimize.
* tree-pass.h (pass_iv_optimize): Declare.
* tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
IMAGPART_EXPR.
* tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
as a phi node argument.
(split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
functions.
* tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
* tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
pass_iv_optimize): New pass.
* tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
* tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
* tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
* tree.h (REF_ORIGINAL): New macro.
(build_int_cst_type, unsigned_type_for, zero_p,
cst_and_fits_in_hwi, build_addr): Declare.
* doc/invoke.texi (-fivopts): Document.
(PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
PARAM_IV_MAX_CONSIDERED_USES): Document.
* doc/passes.texi: Document induction variable optimizations pass.
* gcc.dg/tree-ssa/loop-2.c: New test.
* gcc.dg/tree-ssa/loop-3.c: New test.
* gcc.dg/tree-ssa/loop-4.c: New test.
* gcc.dg/tree-ssa/loop-5.c: New test.
From-SVN: r87100
2004-09-05 11:25:37 +02:00
|
|
|
fivopts
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_ivopts) Init(1) Optimization
|
tree-ssa-loop-ivopts.c: New file.
* tree-ssa-loop-ivopts.c: New file.
* Makefile.in (tree-ssa-loop-ivopts.c): Add.
* cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
target_pres_cost, target_spill_cost): Declare.
* cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
spill_cost): Renamed to ...
(target_avail_regs, target_res_regs, target_small_cost,
target_pres_cost, target_spill_cost): ... and exported.
(init_set_costs, global_cost_for_size): Work with renamed variables.
* common.opt (flag_ivopts): New flag.
* expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle
REF_ORIGINAL.
* gimplify.c (struct gimplify_ctx): Add into_ssa field.
(internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
generating SSA form.
(force_gimple_operand): New function.
* timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
* tree-cfg.c (stmt_bsi): New function.
* params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
PARAM_IV_MAX_CONSIDERED_USES): New.
* tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
* tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
* tree-nested.c (build_addr): Export.
* tree-optimize.c (init_tree_optimization_passes): Add
pass_iv_optimize.
* tree-pass.h (pass_iv_optimize): Declare.
* tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
IMAGPART_EXPR.
* tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
as a phi node argument.
(split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
functions.
* tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
* tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
pass_iv_optimize): New pass.
* tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
* tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
* tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
* tree.h (REF_ORIGINAL): New macro.
(build_int_cst_type, unsigned_type_for, zero_p,
cst_and_fits_in_hwi, build_addr): Declare.
* doc/invoke.texi (-fivopts): Document.
(PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
PARAM_IV_MAX_CONSIDERED_USES): Document.
* doc/passes.texi: Document induction variable optimizations pass.
* gcc.dg/tree-ssa/loop-2.c: New test.
* gcc.dg/tree-ssa/loop-3.c: New test.
* gcc.dg/tree-ssa/loop-4.c: New test.
* gcc.dg/tree-ssa/loop-5.c: New test.
From-SVN: r87100
2004-09-05 11:25:37 +02:00
|
|
|
Optimize induction variables on trees
|
|
|
|
|
2005-06-01 19:19:09 +01:00
|
|
|
fjump-tables
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Var(flag_jump_tables) Init(1) Optimization
|
2005-06-01 19:19:09 +01:00
|
|
|
Use jump tables for sufficiently large switch statements
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fkeep-inline-functions
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_keep_inline_functions)
|
2003-07-11 05:35:06 +00:00
|
|
|
Generate code for functions even if they are fully inlined
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fkeep-static-consts
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_keep_static_consts) Init(1)
|
2003-07-11 05:35:06 +00:00
|
|
|
Emit static const variables even if they are not used
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fleading-underscore
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_leading_underscore) Init(-1)
|
2003-07-11 05:35:06 +00:00
|
|
|
Give external symbols a leading underscore
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2006-02-27 02:32:56 +01:00
|
|
|
floop-optimize
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
loop-invariant.c, omp-low.c, opts.c, passes.c,
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
tree-ssa-structalias.c, tree-ssa-threadedge.c,
tree-ssa-threadupdate.c, tree-vect-patterns.c,
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
From-SVN: r111721
2006-03-04 23:05:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2006-02-27 02:32:56 +01:00
|
|
|
|
2009-10-03 17:10:11 -04:00
|
|
|
flto
|
|
|
|
Common Var(flag_lto)
|
|
|
|
Enable link-time optimization.
|
|
|
|
|
|
|
|
; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
|
|
|
|
flto-compression-level=
|
2010-06-12 01:13:23 +01:00
|
|
|
Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-flto-compression-level=<number> Use zlib compression level <number> for IL
|
2009-10-03 17:10:11 -04:00
|
|
|
|
|
|
|
flto-report
|
|
|
|
Common Report Var(flag_lto_report) Init(0) Optimization
|
|
|
|
Report various link-time optimization statistics
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fmath-errno
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(flag_errno_math) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Set errno after built-in math functions
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fmem-report
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(mem_report)
|
2003-07-11 05:35:06 +00:00
|
|
|
Report on permanent memory allocation
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; This will attempt to merge constant section constants, if 1 only
|
|
|
|
; string constants and constants from constant pool, if 2 also constant
|
|
|
|
; variables.
|
2003-06-22 13:44:40 +00:00
|
|
|
fmerge-all-constants
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_merge_constants,2) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Attempt to merge identical constants and constant variables
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fmerge-constants
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_merge_constants,1) VarExists Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Attempt to merge identical constants across compilation units
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2008-01-18 15:46:43 +00:00
|
|
|
fmerge-debug-strings
|
|
|
|
Common Report Var(flag_merge_debug_strings) Init(1)
|
|
|
|
Attempt to merge identical debug strings across compilation units
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fmessage-length=
|
|
|
|
Common RejectNegative Joined UInteger
|
2003-07-08 05:25:39 +00:00
|
|
|
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
ddg.h, [...]: New files.
* ddg.h, ddg.c, modulo-sched.c: New files.
* cfglayout.c (duplicate_insn_chain): Remove "static" and push
internals to "dupicate_insn".
(duplicate_insn): New function.
* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
declarations.
* common.opt (fmodulo-sched): New flag.
* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
Remove static and forward declaration.
(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
functions.
* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_find_def, df_reg_used): New
declarations.
* flags.h (flag_modulo_sched): New flag.
* opts.c (common_handle_option): Handle modulo-sched flag.
* params.def (max-sms-loop-number, sms-max-ii-factor,
sms-dfa-history, sms-loop-average-count-threshold): New
parameters.
* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
parameters.
* passes.c ("sms", "sms-vcg"): New dumps.
(rest_of_handle_sched): Call sms_schedule.
* rtl.h (sms_schedule): New declaration.
* timevar.def (TV_SMS): New.
* toplev.c (flag_modulo_sched): Initialize.
(f_options): Handle -fmodulo-sched option.
* docs/invoke.texi: Document -fmodulo-sched & -dm options.
* docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi
Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>
From-SVN: r82235
2004-05-25 12:55:06 +00:00
|
|
|
fmodulo-sched
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_modulo_sched) Optimization
|
ddg.h, [...]: New files.
* ddg.h, ddg.c, modulo-sched.c: New files.
* cfglayout.c (duplicate_insn_chain): Remove "static" and push
internals to "dupicate_insn".
(duplicate_insn): New function.
* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
declarations.
* common.opt (fmodulo-sched): New flag.
* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
Remove static and forward declaration.
(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
functions.
* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
df_bb_regno_last_def_find, df_find_def, df_reg_used): New
declarations.
* flags.h (flag_modulo_sched): New flag.
* opts.c (common_handle_option): Handle modulo-sched flag.
* params.def (max-sms-loop-number, sms-max-ii-factor,
sms-dfa-history, sms-loop-average-count-threshold): New
parameters.
* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
parameters.
* passes.c ("sms", "sms-vcg"): New dumps.
(rest_of_handle_sched): Call sms_schedule.
* rtl.h (sms_schedule): New declaration.
* timevar.def (TV_SMS): New.
* toplev.c (flag_modulo_sched): Initialize.
(f_options): Handle -fmodulo-sched option.
* docs/invoke.texi: Document -fmodulo-sched & -dm options.
* docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi
Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>
From-SVN: r82235
2004-05-25 12:55:06 +00:00
|
|
|
Perform SMS based modulo scheduling before the first scheduling pass
|
|
|
|
|
2007-08-05 09:43:07 +00:00
|
|
|
fmodulo-sched-allow-regmoves
|
|
|
|
Common Report Var(flag_modulo_sched_allow_regmoves)
|
|
|
|
Perform SMS based modulo scheduling with register moves allowed
|
|
|
|
|
loop-invariant.c: New file.
* loop-invariant.c: New file.
* Makefile.in (loop-invariant.o): New.
* cfgloop.h (global_cost_for_size, init_set_costs,
move_loop_invariants): Declare.
* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
functions.
(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
variables.
* common.opt (floop-optimize2, fmove-loop-invariants): New options.
* loop-init.c (loop_optimizer_init): Call init_set_costs.
* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
(rest_of_compilation): Check flag_loop_optimize2.
* toplev.c (process_options): Handle flag_loop_optimize2.
* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
* doc/passes.texi (loop-invariant.c): Document.
From-SVN: r83419
2004-06-20 23:31:32 +02:00
|
|
|
fmove-loop-invariants
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_move_loop_invariants) Init(1) Optimization
|
loop-invariant.c: New file.
* loop-invariant.c: New file.
* Makefile.in (loop-invariant.o): New.
* cfgloop.h (global_cost_for_size, init_set_costs,
move_loop_invariants): Declare.
* cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
functions.
(avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
variables.
* common.opt (floop-optimize2, fmove-loop-invariants): New options.
* loop-init.c (loop_optimizer_init): Call init_set_costs.
* passes.c (rest_of_handle_loop2): Call move_loop_invariants.
(rest_of_compilation): Check flag_loop_optimize2.
* toplev.c (process_options): Handle flag_loop_optimize2.
* doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
* doc/passes.texi (loop-invariant.c): Document.
From-SVN: r83419
2004-06-20 23:31:32 +02:00
|
|
|
Move loop invariant computations out of loops
|
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
fmudflap
|
2004-06-14 16:18:01 +02:00
|
|
|
Common RejectNegative Report Var(flag_mudflap)
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Add mudflap bounds-checking instrumentation for single-threaded program
|
2004-05-13 02:41:07 -04:00
|
|
|
|
|
|
|
fmudflapth
|
2006-04-22 16:22:54 +00:00
|
|
|
Common RejectNegative Report VarExists Var(flag_mudflap,2)
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Add mudflap bounds-checking instrumentation for multi-threaded program
|
2004-05-13 02:41:07 -04:00
|
|
|
|
|
|
|
fmudflapir
|
2004-06-14 16:18:01 +02:00
|
|
|
Common RejectNegative Report Var(flag_mudflap_ignore_reads)
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Ignore read operations when inserting mudflap instrumentation
|
2004-05-13 02:41:07 -04:00
|
|
|
|
2007-06-11 18:02:15 +00:00
|
|
|
fdce
|
2007-06-28 09:30:57 +00:00
|
|
|
Common Var(flag_dce) Init(1) Optimization
|
2007-06-11 18:02:15 +00:00
|
|
|
Use the RTL dead code elimination pass
|
|
|
|
|
|
|
|
fdse
|
2007-06-28 09:30:57 +00:00
|
|
|
Common Var(flag_dse) Init(1) Optimization
|
2007-06-11 18:02:15 +00:00
|
|
|
Use the RTL dead store elimination pass
|
|
|
|
|
2004-08-08 21:35:53 +00:00
|
|
|
freschedule-modulo-scheduled-loops
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_resched_modulo_sched) Optimization
|
2004-08-08 21:35:53 +00:00
|
|
|
Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fnon-call-exceptions
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_non_call_exceptions) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Support synchronous non-call exceptions
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fomit-frame-pointer
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_omit_frame_pointer) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
When possible do not generate stack frames
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
foptimize-register-move
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_regmove) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Do the full register move optimization pass
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
foptimize-sibling-calls
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_optimize_sibling_calls) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Optimize sibling and tail recursive calls
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2010-06-25 15:13:31 +02:00
|
|
|
fpartial-inlining
|
|
|
|
Common Report Var(flag_partial_inlining)
|
|
|
|
Perform partial inlining
|
|
|
|
|
2006-12-23 15:30:36 +01:00
|
|
|
fpre-ipa-mem-report
|
|
|
|
Common Report Var(pre_ipa_mem_report)
|
|
|
|
Report on memory allocation before interprocedural optimization
|
|
|
|
|
|
|
|
fpost-ipa-mem-report
|
|
|
|
Common Report Var(post_ipa_mem_report)
|
|
|
|
Report on memory allocation before interprocedural optimization
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fpack-struct
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_pack_struct) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Pack structure members together without holes
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2004-09-03 17:22:40 +00:00
|
|
|
fpack-struct=
|
2007-02-12 16:25:14 +00:00
|
|
|
Common RejectNegative Joined UInteger Optimization
|
2004-09-03 17:22:40 +00:00
|
|
|
-fpack-struct=<number> Set initial maximum structure member alignment
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fpcc-struct-return
|
common.opt (fira-verbose): Use Var.
* common.opt (fira-verbose): Use Var.
(fpcc-struct-return): Use Init instead of VarExists.
* defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
toplev.c.
* flags.h (flag_signed_char, flag_short_enums,
flag_pcc_struct_return, flag_ira_verbose,
flag_detailed_statistics, flag_remove_unreachable_functions):
Remove.
* toplev.c (flag_detailed_statistics, flag_signed_char,
flag_short_enums, flag_pcc_struct_return, flag_ira_verbose):
Remove.
(DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
* toplev.h (flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
flag_cprop_registers, time_report, flag_ira_loop_pressure,
flag_ira_coalesce, flag_ira_move_spills,
flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
c-family:
* c-common.c (flag_preprocess_only, flag_undef, flag_no_builtin,
flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
flag_signed_bitfields, warn_strict_null_sentinel,
flag_nil_receivers, flag_zero_link, flag_replace_objc_classes,
flag_gen_declaration, flag_no_gnu_keywords,
flag_implement_inlines, flag_implicit_templates,
flag_implicit_inline_templates, flag_optional_diags,
flag_elide_constructors, flag_default_inline, flag_rtti,
flag_conserve_space, flag_access_control, flag_check_new,
flag_new_for_scope, flag_weak, flag_working_directory,
flag_use_cxa_atexit, flag_use_cxa_get_exception_ptr,
flag_enforce_eh_specs, flag_threadsafe_statics,
flag_pretty_templates): Remove.
* c-common.h (flag_preprocess_only, flag_nil_receivers,
flag_objc_exceptions, flag_objc_sjlj_exceptions, flag_zero_link,
flag_replace_objc_classes, flag_undef, flag_no_builtin,
flag_no_nonansi_builtin, flag_short_double, flag_short_wchar,
flag_lax_vector_conversions, flag_ms_extensions, flag_no_asm,
flag_const_strings, flag_signed_bitfields, flag_gen_declaration,
flag_no_gnu_keywords, flag_implement_inlines,
flag_implicit_templates, flag_implicit_inline_templates,
flag_optional_diags, flag_elide_constructors, flag_default_inline,
flag_rtti, flag_conserve_space, flag_access_control,
flag_check_new, flag_new_for_scope, flag_weak,
flag_working_directory, flag_use_cxa_atexit,
flag_use_cxa_get_exception_ptr, flag_enforce_eh_specs,
flag_threadsafe_statics, flag_pretty_templates,
warn_strict_null_sentinel): Remove.
* c.opt (E, Wstrict-null-sentinel, faccess-control, fasm,
fbuiltin, fcheck-new, fconserve-space, felide-constructors,
fenforce-eh-specs, ffor-scope, fgnu-keywords, fimplement-inlines,
fimplicit-inline-templates, fimplicit-templates,
flax-vector-conversions, fms-extensions, fnil-receivers,
fnonansi-builtins, fpretty-templates, freplace-objc-classes,
frtti, fshort-double, fshort-enums, fshort-wchar,
fsigned-bitfields, fsigned-char, fstats, fthreadsafe-statics,
funsigned-bitfields, funsigned-char, fuse-cxa-atexit,
fuse-cxa-get-exception-ptr, fweak, fworking-directory, fzero-link,
gen-decls, undef): Use Var.
(fdefault-inline, foptional-diags): Document as doing nothing.
* c-opts.c (c_common_handle_option): Remove cases for options now
using Var. Mark ignored options as such.
fortran:
* lang.opt (fshort-enums): Define using Var and VarExists.
* options.c (gfc_handle_option): Don't set flag_short_enums here.
lto:
* lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
(lto_handle_option): Don't set flag_signed_char here.
From-SVN: r160384
2010-06-07 17:46:23 +01:00
|
|
|
Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
|
2003-07-11 05:35:06 +00:00
|
|
|
Return small aggregates in memory, not registers
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fpeel-loops
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_peel_loops) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform loop peeling
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fpeephole
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_no_peephole,0) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable machine specific peephole optimizations
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fpeephole2
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_peephole2) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable an RTL peephole pass before sched2
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
fPIC
|
|
|
|
Common Report Var(flag_pic,2)
|
|
|
|
Generate position-independent code if possible (large mode)
|
|
|
|
|
|
|
|
fPIE
|
|
|
|
Common Report Var(flag_pie,2)
|
|
|
|
Generate position-independent code for executables if possible (large mode)
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fpic
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_pic,1) VarExists
|
2004-07-10 02:06:36 +00:00
|
|
|
Generate position-independent code if possible (small mode)
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fpie
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_pie,1) VarExists
|
2004-07-10 02:06:36 +00:00
|
|
|
Generate position-independent code for executables if possible (small mode)
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2009-04-14 16:18:49 -04:00
|
|
|
fplugin=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
Specify a plugin to load
|
|
|
|
|
|
|
|
fplugin-arg-
|
|
|
|
Common Joined RejectNegative
|
re PR translation/42467 (exgettext should not remove TABs from option help strings)
gcc/po/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42467
* exgettext: Keep the text before tab character in the option help
string at *.opt file.
gcc/
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
character between option name and help text.
* c.opt (imultilib): Likewise.
gcc/fortran
2010-01-11 Joseph Myers <joseph@codesourcery.com>
Shujing Zhao <pearly.zhao@oracle.com>
PR translation/42469
* lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
finit-logical=, finit-real=, fmax-array-constructor=): Use tab
character between option name and help text.
Co-Authored-By: Shujing Zhao <pearly.zhao@oracle.com>
From-SVN: r155801
2010-01-11 04:28:36 +00:00
|
|
|
-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
|
2009-04-14 16:18:49 -04:00
|
|
|
|
passes.texi: Document predictive commoning.
* doc/passes.texi: Document predictive commoning.
* doc/invoke.texi (-fpredictive-commoning): Document.
* opts.c (decode_options): Enable flag_predictive_commoning on -O3.
* tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
adding indices to the generated name.
(schedule_sm): Pass 0 to get_lsm_tmp_name.
* tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
* tree-pretty-print.c (op_symbol_1): Renamed to ...
(op_symbol_code): ... and exported.
(dump_omp_clause, op_symbol): Use op_symbol_code
instead of op_symbol_1.
* tree-pass.h (pass_predcom): Declare.
* timevar.def (TV_PREDCOM): New timevar.
* tree-ssa-loop.c (run_tree_predictive_commoning,
gate_tree_predictive_commoning, pass_predcom): New.
* tree-data-ref.c (find_data_references_in_loop): Find the
references in dominance order.
(canonicalize_base_object_address): Ensure that the result has
pointer type.
(dr_analyze_innermost): Export.
(create_data_ref): Code to fail for references with invariant
address moved ...
(find_data_references_in_stmt): ... here.
* tree-data-ref.h (dr_analyze_innermost): Declare.
* tree-affine.c: Include tree-gimple.h and hashtab.h.
(aff_combination_find_elt, name_expansion_hash,
name_expansion_eq, tree_to_aff_combination_expand,
double_int_constant_multiple_p, aff_combination_constant_multiple_p):
New functions.
* tree-affine.h (aff_combination_constant_multiple_p,
tree_to_aff_combination_expand): Declare.
* tree-predcom.c: New file.
* common.opt (fpredictive-commoning): New option.
* tree-flow.h (op_symbol_code, tree_predictive_commoning,
stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
* Makefile.in (tree-predcom.o): Add.
(tree-affine.o): Add TREE_GIMPLE_H dependency.
* passes.c (init_optimization_passes): Add dceloop after
copy propagation in loop optimizer. Add predictive commoning
to loop optimizer passes.
* gcc.dg/tree-ssa/predcom-1.c: New test.
* gcc.dg/tree-ssa/predcom-2.c: New test.
* gcc.dg/tree-ssa/predcom-3.c: New test.
* gcc.dg/tree-ssa/predcom-4.c: New test.
* gcc.dg/tree-ssa/predcom-5.c: New test.
* gcc.dg/vect/dump-tree-dceloop-pr26359.c: Test dceloop2 dumps.
From-SVN: r125030
2007-05-24 18:09:26 +02:00
|
|
|
fpredictive-commoning
|
2007-06-28 09:30:57 +00:00
|
|
|
Common Report Var(flag_predictive_commoning) Optimization
|
passes.texi: Document predictive commoning.
* doc/passes.texi: Document predictive commoning.
* doc/invoke.texi (-fpredictive-commoning): Document.
* opts.c (decode_options): Enable flag_predictive_commoning on -O3.
* tree-ssa-loop-im.c (get_lsm_tmp_name): Export. Allow
adding indices to the generated name.
(schedule_sm): Pass 0 to get_lsm_tmp_name.
* tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
* tree-pretty-print.c (op_symbol_1): Renamed to ...
(op_symbol_code): ... and exported.
(dump_omp_clause, op_symbol): Use op_symbol_code
instead of op_symbol_1.
* tree-pass.h (pass_predcom): Declare.
* timevar.def (TV_PREDCOM): New timevar.
* tree-ssa-loop.c (run_tree_predictive_commoning,
gate_tree_predictive_commoning, pass_predcom): New.
* tree-data-ref.c (find_data_references_in_loop): Find the
references in dominance order.
(canonicalize_base_object_address): Ensure that the result has
pointer type.
(dr_analyze_innermost): Export.
(create_data_ref): Code to fail for references with invariant
address moved ...
(find_data_references_in_stmt): ... here.
* tree-data-ref.h (dr_analyze_innermost): Declare.
* tree-affine.c: Include tree-gimple.h and hashtab.h.
(aff_combination_find_elt, name_expansion_hash,
name_expansion_eq, tree_to_aff_combination_expand,
double_int_constant_multiple_p, aff_combination_constant_multiple_p):
New functions.
* tree-affine.h (aff_combination_constant_multiple_p,
tree_to_aff_combination_expand): Declare.
* tree-predcom.c: New file.
* common.opt (fpredictive-commoning): New option.
* tree-flow.h (op_symbol_code, tree_predictive_commoning,
stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
* Makefile.in (tree-predcom.o): Add.
(tree-affine.o): Add TREE_GIMPLE_H dependency.
* passes.c (init_optimization_passes): Add dceloop after
copy propagation in loop optimizer. Add predictive commoning
to loop optimizer passes.
* gcc.dg/tree-ssa/predcom-1.c: New test.
* gcc.dg/tree-ssa/predcom-2.c: New test.
* gcc.dg/tree-ssa/predcom-3.c: New test.
* gcc.dg/tree-ssa/predcom-4.c: New test.
* gcc.dg/tree-ssa/predcom-5.c: New test.
* gcc.dg/vect/dump-tree-dceloop-pr26359.c: Test dceloop2 dumps.
From-SVN: r125030
2007-05-24 18:09:26 +02:00
|
|
|
Run predictive commoning optimization.
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fprefetch-loop-arrays
|
2010-06-25 18:25:00 +00:00
|
|
|
Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Generate prefetch instructions, if available, for arrays in loops
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fprofile
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(profile_flag)
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable basic program profiling code
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fprofile-arcs
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(profile_arc_flag)
|
2003-07-11 05:35:06 +00:00
|
|
|
Insert arc-based program profiling code
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2008-03-31 21:52:10 +00:00
|
|
|
fprofile-dir=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
Set the top-level directory for storing the profile data.
|
|
|
|
The default is 'pwd'.
|
|
|
|
|
2008-08-18 19:02:44 +00:00
|
|
|
fprofile-correction
|
|
|
|
Common Report Var(flag_profile_correction)
|
|
|
|
Enable correction of flow inconsistent profile data input
|
|
|
|
|
2003-12-23 18:55:33 +01:00
|
|
|
fprofile-generate
|
|
|
|
Common
|
|
|
|
Enable common options for generating profile info for profile feedback directed optimizations
|
|
|
|
|
2008-03-31 21:52:10 +00:00
|
|
|
fprofile-generate=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
|
|
|
|
|
2003-12-23 18:55:33 +01:00
|
|
|
fprofile-use
|
2008-03-31 21:52:10 +00:00
|
|
|
Common Var(flag_profile_use)
|
2003-12-23 18:55:33 +01:00
|
|
|
Enable common options for performing profile feedback directed optimizations
|
|
|
|
|
2008-03-31 21:52:10 +00:00
|
|
|
fprofile-use=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
|
|
|
|
|
2003-10-19 23:37:32 +02:00
|
|
|
fprofile-values
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_profile_values)
|
2003-10-19 23:37:32 +02:00
|
|
|
Insert code to profile values of expressions
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
frandom-seed
|
|
|
|
Common
|
|
|
|
|
|
|
|
frandom-seed=
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-frandom-seed=<string> Make compile reproducible using <string>
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2006-12-07 10:54:13 +00:00
|
|
|
; This switch causes the command line that was used to create an
|
|
|
|
; object file to be recorded into the object file. The exact format
|
|
|
|
; of this recording is target and binary file format dependent.
|
|
|
|
; It is related to the -fverbose-asm switch, but that switch only
|
|
|
|
; records information in the assembler output file as comments, so
|
|
|
|
; they never reach the object file.
|
|
|
|
frecord-gcc-switches
|
|
|
|
Common Report Var(flag_record_gcc_switches)
|
|
|
|
Record gcc command line switches in the object file.
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
freg-struct-return
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Return small aggregates in registers
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fregmove
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_regmove) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enables a register move optimization
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
frename-registers
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_rename_registers) Init(2) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform a register renaming optimization pass
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
freorder-blocks
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_reorder_blocks) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Reorder basic blocks to improve code placement
|
2003-06-22 13:44:40 +00:00
|
|
|
|
basic-block.h (struct edge_def): Add new field, crossing_edge.
2004-04-09 Caroline Tice <ctice@apple.com>
* basic-block.h (struct edge_def): Add new field, crossing_edge.
(struct basic_block_def): Add new field, partition.
(UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
definitions.
(partition_hot_cold_basic_blocks): Add extern function
declaration.
* bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
include statements.
(N_ROUNDS): Increase the maximum number of rounds by 1.
(branch_threshold): Add array value for new round.
(exec_threshold): Add array value for new round.
(push_to_next_round_p): New function.
(add_unlikely_executed_notes): New function.
(find_rarely_executed_basic_blocks_and_crossing_edges): New function.
(mark_bb_for_unlikely_executed_section): New function.
(add_labels_and_missing_jumps): New function.
(add_reg_crossing_jump_notes): New function.
(fix_up_fall_thru_edges): New function.
(find_jump_block): New function.
(fix_crossing_conditional_branches): New function.
(fix_crossing_unconditional_branches): New function.
(fix_edges_for_rarely_executed_code): New function.
(partition_hot_cold_basic_blocks): New function.
(find_traces): Add an extra round for partitioning hot/cold
basic blocks.
(find_traces_1_round): Add a parameter. Modify to push all cold blocks,
and only cold blocks, into the last (extra) round of collecting traces.
(better_edge_p): Add a parameter. Modify to favor non-crossing edges
over crossing edges.
(bb_to_key): Add code to correctly identify cold blocks when
doing partitioning.
(connect_traces): Modify to connect all the non-cold traces first, then
go back and connect up all the cold traces.
(reorder_basic_blocks): Add call to add_unlikely_executed_notes.
* cfg.c (entry_exit_blocks): Add initialization for partition field in
entry and exit blocks.
* cfgbuild.c (make_edges): Update current_function_has_computed_jump
if we are doing hot/cold partitioning.
* cfgcleanup.c (cfglayout.h): Add new include statement.
(try_simplify_condjump): Modify to not attempt on blocks with jumps
that cross section boundaries.
(try_forward_edges): Likewise.
(merge_blocks_move_predecessor_nojumps): Likewise.
(merge_blocks_move_successor_nojumps): Likewise.
(merge_blocks_move): Likewise.
(try_crossjump_to_edge): Modify to not attempt after we have done
the block partitioning.
(try_crossjump_bb): Modify to not attempt on blocks with jumps that
cross section boundaries.
(try_optimize_cfg): Likewise.
* cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
jumps that cross section boundaries.
* cfglayout.c (flags.h): Add new include statement.
(update_unlikely_executed_notes): New function.
(fixup_reorder_chain): Add code so when a new jumping basic block is
added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
updated appropriately.
(duplicate_insn_chain): Add code to duplicate the new NOTE insn
introduced by this optimization.
* cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
extern function declaration.
* cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
list of notes that can be deleted.
(create_basic_block_structure): Add initialization for partition field.
(rtl_can_merge_blocks): Modify to test blocks for jumps that cross
section boundaries.
(try_redirect_by_replacing_jump): Modify to not attempt on jumps that
cross section boundaries.
(commit_one_edge_insertion): Add code so newly created basic block
ends up in correct (hot or cold) section. Modify to disallow
insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
(rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
crosses section boundaries.
(cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
cross section boundaries.
(force_nonfallthru_and_redirect): Modify to make sure new basic block
ends up in correct section, with correct notes attached.
* common.opt (freorder-blocks-and-partition): Add new flag for this
optimization.
* dbxout.c (dbx_function_end): Add code to make sure scope labels at
the end of functions are written into the correct (hot or cold)
section.
(dbx_source_file): Add code so writing debug file information
doesn't incorrectly change sections.
* defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
in partitioning hot/cold basic blocks into separate sections.
(SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
section partitioning.
(HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
conditional branches can span all of memory.
(HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
unconditional branches can span all of memory.
* final.c (scan_ahead_for_unlikely_executed_note): New function.
(final_scan_insn): Add code to check for NOTE instruction indicating
whether basic block belongs in hot or cold section, and to make sure
the current basic block is being written to the appropriate section.
Also added code to ensure that jump table basic blocks end up in the
correct section.
* flags.h (flag_reorder_blocks_and_partition): New flag.
* ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
one of the branches has a jump that crosses between sections.
(find_if_case_2): Likewise.
(ifcvt): Modify to not attempt to mark loop exit edges after
hot/cold partitioning has occurred.
* opts.c (decode_options): Code to handle new flag,
flag_reorder_blocks_and_partition; also to turn it off if
flag_exceptions is on.
(common_handle_option): Code to handle new flag,
flag_reorder_blocks_and_partition.
* output.h (unlikely_text_section): New extern function declaration.
(in_unlikely_text_section): New extern function declaration.
* passes.c (rest_of_handle_stack_regs): Add
flag_reorder_blocks_and_partition as an 'or' condition for calling
reorder_basic_blocks.
(rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
as an 'or' condition for calling reorder_basic_blocks.
(rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
* print-rtl.c (print_rtx): Add code for handling new note,
NOTE_INSN_UNLIKELY_EXECUTED_CODE
* rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
(REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
cross between section boundaries.
* rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
indicating the basic block containing it belongs in the cold section.
(REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
between hot and cold sections.
* toplev.c (flag_reorder_blocks_and_partition): Add code to
initialize this flag, and to tie it to the command-line option
freorder-blocks-and-partition.
* varasm.c (cfglayout.h): Add new include statement.
(unlikely_section_label_printed): New global variable, used for
determining when to output section name labels for cold sections.
(in_section): Add in_unlikely_executed_text to enum data structure.
(text_section): Modify code to use SECTION_FORMAT_STRING and
NORMAL_TEXT_SECTION_NAME macros.
(unlikely_text_section): New function.
(in_unlikely_text_section): New function.
(function_section): Add code to make sure beginning of function is
written into correct section (hot or cold).
(assemble_start_function): Add code to make sure stuff is written to
the correct section.
(assemble_zeros): Add in_unlikely_text_section as an 'or' condition
to an if statement that was checking 'in_text_section'.
(assemble_variable): Add 'in_unlikely_text_section' as an 'or'
condition to an if statement that was checking 'in_text_section'.
(default_section_type_flags_1): Add check: if in cold section
flags = SECTION_CODE.
* config/darwin.c (darwin_asm_named_section): Modify to use
SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
* config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
specifically for the i386.
(HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
* config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
text string to something more informative.
(NORMAL_TEXT_SECTION_NAME): Add new definition.
(SECTION_FORMAT_STRING): Add new definition.
* config/rs6000/rs6000.c (rs6000_assemble_integer): Add
'!in_unlikely_text_section' as an 'and' condition to an if statement
that was already checking '!in_text_section'.
* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
sure these are properly defined for linux on ppc.
* doc/invoke.texi (freorder-blocks-and-partition): Add documentation
for this new flag.
* doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
reg_note.
* doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
these new macros.
From-SVN: r80564
2004-04-09 19:57:47 +00:00
|
|
|
freorder-blocks-and-partition
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_reorder_blocks_and_partition) Optimization
|
basic-block.h (struct edge_def): Add new field, crossing_edge.
2004-04-09 Caroline Tice <ctice@apple.com>
* basic-block.h (struct edge_def): Add new field, crossing_edge.
(struct basic_block_def): Add new field, partition.
(UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
definitions.
(partition_hot_cold_basic_blocks): Add extern function
declaration.
* bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
include statements.
(N_ROUNDS): Increase the maximum number of rounds by 1.
(branch_threshold): Add array value for new round.
(exec_threshold): Add array value for new round.
(push_to_next_round_p): New function.
(add_unlikely_executed_notes): New function.
(find_rarely_executed_basic_blocks_and_crossing_edges): New function.
(mark_bb_for_unlikely_executed_section): New function.
(add_labels_and_missing_jumps): New function.
(add_reg_crossing_jump_notes): New function.
(fix_up_fall_thru_edges): New function.
(find_jump_block): New function.
(fix_crossing_conditional_branches): New function.
(fix_crossing_unconditional_branches): New function.
(fix_edges_for_rarely_executed_code): New function.
(partition_hot_cold_basic_blocks): New function.
(find_traces): Add an extra round for partitioning hot/cold
basic blocks.
(find_traces_1_round): Add a parameter. Modify to push all cold blocks,
and only cold blocks, into the last (extra) round of collecting traces.
(better_edge_p): Add a parameter. Modify to favor non-crossing edges
over crossing edges.
(bb_to_key): Add code to correctly identify cold blocks when
doing partitioning.
(connect_traces): Modify to connect all the non-cold traces first, then
go back and connect up all the cold traces.
(reorder_basic_blocks): Add call to add_unlikely_executed_notes.
* cfg.c (entry_exit_blocks): Add initialization for partition field in
entry and exit blocks.
* cfgbuild.c (make_edges): Update current_function_has_computed_jump
if we are doing hot/cold partitioning.
* cfgcleanup.c (cfglayout.h): Add new include statement.
(try_simplify_condjump): Modify to not attempt on blocks with jumps
that cross section boundaries.
(try_forward_edges): Likewise.
(merge_blocks_move_predecessor_nojumps): Likewise.
(merge_blocks_move_successor_nojumps): Likewise.
(merge_blocks_move): Likewise.
(try_crossjump_to_edge): Modify to not attempt after we have done
the block partitioning.
(try_crossjump_bb): Modify to not attempt on blocks with jumps that
cross section boundaries.
(try_optimize_cfg): Likewise.
* cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
jumps that cross section boundaries.
* cfglayout.c (flags.h): Add new include statement.
(update_unlikely_executed_notes): New function.
(fixup_reorder_chain): Add code so when a new jumping basic block is
added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
updated appropriately.
(duplicate_insn_chain): Add code to duplicate the new NOTE insn
introduced by this optimization.
* cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
extern function declaration.
* cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
list of notes that can be deleted.
(create_basic_block_structure): Add initialization for partition field.
(rtl_can_merge_blocks): Modify to test blocks for jumps that cross
section boundaries.
(try_redirect_by_replacing_jump): Modify to not attempt on jumps that
cross section boundaries.
(commit_one_edge_insertion): Add code so newly created basic block
ends up in correct (hot or cold) section. Modify to disallow
insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
(rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
crosses section boundaries.
(cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
cross section boundaries.
(force_nonfallthru_and_redirect): Modify to make sure new basic block
ends up in correct section, with correct notes attached.
* common.opt (freorder-blocks-and-partition): Add new flag for this
optimization.
* dbxout.c (dbx_function_end): Add code to make sure scope labels at
the end of functions are written into the correct (hot or cold)
section.
(dbx_source_file): Add code so writing debug file information
doesn't incorrectly change sections.
* defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
in partitioning hot/cold basic blocks into separate sections.
(SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
section partitioning.
(HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
conditional branches can span all of memory.
(HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
unconditional branches can span all of memory.
* final.c (scan_ahead_for_unlikely_executed_note): New function.
(final_scan_insn): Add code to check for NOTE instruction indicating
whether basic block belongs in hot or cold section, and to make sure
the current basic block is being written to the appropriate section.
Also added code to ensure that jump table basic blocks end up in the
correct section.
* flags.h (flag_reorder_blocks_and_partition): New flag.
* ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
one of the branches has a jump that crosses between sections.
(find_if_case_2): Likewise.
(ifcvt): Modify to not attempt to mark loop exit edges after
hot/cold partitioning has occurred.
* opts.c (decode_options): Code to handle new flag,
flag_reorder_blocks_and_partition; also to turn it off if
flag_exceptions is on.
(common_handle_option): Code to handle new flag,
flag_reorder_blocks_and_partition.
* output.h (unlikely_text_section): New extern function declaration.
(in_unlikely_text_section): New extern function declaration.
* passes.c (rest_of_handle_stack_regs): Add
flag_reorder_blocks_and_partition as an 'or' condition for calling
reorder_basic_blocks.
(rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
as an 'or' condition for calling reorder_basic_blocks.
(rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
* print-rtl.c (print_rtx): Add code for handling new note,
NOTE_INSN_UNLIKELY_EXECUTED_CODE
* rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
(REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
cross between section boundaries.
* rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
indicating the basic block containing it belongs in the cold section.
(REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
between hot and cold sections.
* toplev.c (flag_reorder_blocks_and_partition): Add code to
initialize this flag, and to tie it to the command-line option
freorder-blocks-and-partition.
* varasm.c (cfglayout.h): Add new include statement.
(unlikely_section_label_printed): New global variable, used for
determining when to output section name labels for cold sections.
(in_section): Add in_unlikely_executed_text to enum data structure.
(text_section): Modify code to use SECTION_FORMAT_STRING and
NORMAL_TEXT_SECTION_NAME macros.
(unlikely_text_section): New function.
(in_unlikely_text_section): New function.
(function_section): Add code to make sure beginning of function is
written into correct section (hot or cold).
(assemble_start_function): Add code to make sure stuff is written to
the correct section.
(assemble_zeros): Add in_unlikely_text_section as an 'or' condition
to an if statement that was checking 'in_text_section'.
(assemble_variable): Add 'in_unlikely_text_section' as an 'or'
condition to an if statement that was checking 'in_text_section'.
(default_section_type_flags_1): Add check: if in cold section
flags = SECTION_CODE.
* config/darwin.c (darwin_asm_named_section): Modify to use
SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
* config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
specifically for the i386.
(HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
* config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
text string to something more informative.
(NORMAL_TEXT_SECTION_NAME): Add new definition.
(SECTION_FORMAT_STRING): Add new definition.
* config/rs6000/rs6000.c (rs6000_assemble_integer): Add
'!in_unlikely_text_section' as an 'and' condition to an if statement
that was already checking '!in_text_section'.
* config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
sure these are properly defined for linux on ppc.
* doc/invoke.texi (freorder-blocks-and-partition): Add documentation
for this new flag.
* doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
reg_note.
* doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
these new macros.
From-SVN: r80564
2004-04-09 19:57:47 +00:00
|
|
|
Reorder basic blocks and partition into hot and cold sections
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
freorder-functions
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_reorder_functions) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Reorder functions to improve code placement
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
frerun-cse-after-loop
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Add a common subexpression elimination pass after loop optimizations
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2006-02-27 02:32:56 +01:00
|
|
|
frerun-loop-opt
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
loop-invariant.c, omp-low.c, opts.c, passes.c,
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
tree-ssa-structalias.c, tree-ssa-threadedge.c,
tree-ssa-threadupdate.c, tree-vect-patterns.c,
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
From-SVN: r111721
2006-03-04 23:05:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2006-02-27 02:32:56 +01:00
|
|
|
|
2003-09-03 20:57:31 +00:00
|
|
|
frounding-math
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_rounding_math) Optimization
|
2003-09-03 20:57:31 +00:00
|
|
|
Disable optimizations that assume default FP rounding behavior
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fsched-interblock
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_interblock) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Enable scheduling across basic blocks
|
2003-06-22 13:44:40 +00:00
|
|
|
|
invoke.texi (-fsched-pressure): Document it.
2009-09-02 Vladimir Makarov <vmakarov@redhat.com>
* doc/invoke.texi (-fsched-pressure): Document it.
(-fsched-reg-pressure-heuristic): Remove it.
* reload.c (ira.h): Include.
(find_reloads): Add choosing reload on number of small spilled
classes.
* haifa-sched.c (ira.h): Include.
(sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
saved_reg_pressure, curr_reg_live, saved_reg_live,
region_ref_regs): New variables.
(sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
initiate_reg_pressure_info, setup_ref_regs,
initiate_bb_reg_pressure_info, save_reg_pressure,
restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
functions.
(setup_insn_reg_pressure_info): New function.
(rank_for_schedule): Add pressure checking and insn issue time.
Remove comparison of insn reg weights.
(ready_sort): Set insn reg pressure info.
(update_register_pressure, setup_insn_max_reg_pressure,
update_reg_and_insn_max_reg_pressure,
sched_setup_bb_reg_pressure_info): New functions.
(schedule_insn): Add code for printing and updating reg pressure
info.
(find_set_reg_weight, find_insn_reg_weight): Remove.
(ok_for_early_queue_removal): Do nothing if pressure_only_p.
(debug_ready_list): Print reg pressure info.
(schedule_block): Ditto. Check insn issue time.
(sched_init): Set up sched_pressure_p. Allocate and set up some
reg pressure related info.
(sched_finish): Free some reg pressure related info.
(fix_tick_ready): Make insn always ready if pressure_p.
(init_h_i_d): Don't call find_insn_reg_weight.
(haifa_finish_h_i_d): Free insn reg pressure info.
* ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
ira_memory_move_cost, ira_class_hard_regs,
ira_class_hard_regs_num, ira_no_alloc_regs,
ira_available_class_regs, ira_reg_class_cover_size,
ira_reg_class_cover, ira_class_translate): Move to ira.h.
* ira-lives.c (single_reg_class): Check mode to find how many
registers are necessary for operand.
(ira_implicitly_set_insn_hard_regs): New.
* common.opt (fsched-pressure): New options.
(fsched-reg-pressure-heuristic): Remove.
* ira.c (setup_eliminable_regset): Rename to
ira_setup_eliminable_regset. Make it external.
(expand_reg_info): Pass cover class to setup_reg_classes.
(ira): Call resize_reg_info instead of allocate_reg_info.
* sched-deps.c: Include ira.h.
(implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
(create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
mark_insn_hard_regno_birth, mark_insn_reg_birth,
mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
mark_insn_reg_store, mark_insn_reg_clobber,
setup_insn_reg_pressure_info): New.
(sched_analyze_1): Update implicit_reg_pending_uses.
(sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
Use them to create dependencies. Set insn reg uses and pressure
info. Process reg_pending_uses in one place.
(free_deps): Free implicit sets.
(remove_from_deps): Remove implicit sets if necessary. Check
implicit sets when clearing reg_last_in_use.
(init_deps_global): Clear implicit_reg_pending_clobbers and
implicit_reg_pending_uses.
* ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
ira_memory_move_cost, ira_class_hard_regs,
ira_class_hard_regs_num, ira_no_alloc_regs,
ira_available_class_regs, ira_reg_class_cover_size,
ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
(ira_setup_eliminable_regset, ira_set_pseudo_classes,
ira_implicitly_set_insn_hard_regs): New prototypes.
* ira-costs.c (pseudo_classes_defined_p, allocno_p,
cost_elements_num): New variables.
(allocno_costs, total_costs): Rename to costs and
total_allocno_costs.
(COSTS_OF_ALLOCNO): Rename to COSTS.
(allocno_pref): Rename to pref.
(allocno_pref_buffer): Rename to pref_buffer.
(common_classes): Rename to regno_cover_class.
(COST_INDEX): New.
(record_reg_classes): Set allocno attributes only if allocno_p.
(record_address_regs): Ditto. Use COST_INDEX instead of
ALLOCNO_NUM.
(scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
and COSTS_OF_ALLOCNO.
(print_costs): Rename to print_allocno_costs.
(print_pseudo_costs): New.
(process_bb_node_for_costs): Split into 2 functions with new
function process_bb_for_costs. Pass BB to process_bb_for_costs.
(find_allocno_class_costs): Rename to find_costs_and_classes. Add
new parameter dump_file. Use cost_elements_num instead of
ira_allocnos_num. Make one iteration if preferred classes were
already calculated for scheduler. Make 2 versions of code
depending on allocno_p.
(setup_allocno_cover_class_and_costs): Check allocno_p. Use
regno_cover_class and COSTS instead of common_classes and
COSTS_OF_ALLOCNO.
(init_costs, finish_costs): New.
(ira_costs): Set up allocno_p and cost_elements_num. Call
init_costs and finish_costs.
(ira_set_pseudo_classes): New.
* rtl.h (allocate_reg_info): Remove.
(resize_reg_info): Change return type.
(reg_cover_class): New.
(setup_reg_classes): Add new parameter.
* sched-int.h (struct deps_reg): New member implicit_sets.
(sched_pressure_p, sched_regno_cover_class): New external
definitions.
(INCREASE_BITS): New macro.
(struct reg_pressure_data, struct reg_use_data): New.
(struct _haifa_insn_data): Remove reg_weight. Add members
reg_pressure, reg_use_list, reg_set_list, and
reg_pressure_excess_cost_change.
(struct deps): New member implicit_sets.
(pressure_p): New variable.
(COVER_CLASS_BITS, INCREASE_BITS): New macros.
(struct reg_pressure_data, struct reg_use_data): New.
(INSN_REG_WEIGHT): Remove.
(INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New
macros.
(sched_init_region_reg_pressure_info,
sched_setup_bb_reg_pressure_info): New prototypes.
* reginfo.c (struct reg_pref): New member coverclass.
(reg_cover_class): New function.
(reginfo_init, pass_reginfo_init): Move after free_reg_info.
(reg_info_size): New variable.
(allocate_reg_info): Make static. Setup reg_info_size.
(resize_reg_info): Use reg_info_size. Return flag of resizing.
(setup_reg_classes): Add a new parameter. Setup cover class too.
* Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to the
dependencies.
* sched-rgn.c (deps_join): Set up implicit_sets.
(schedule_region): Set up region and basic blocks pressure
relative info.
* passes.c (init_optimization_passes): Move
pass_subregs_of_mode_init before pass_sched.
From-SVN: r151348
2009-09-02 18:54:25 +00:00
|
|
|
fsched-pressure
|
|
|
|
Common Report Var(flag_sched_pressure) Init(0) Optimization
|
|
|
|
Enable register pressure sensitive insn scheduling
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fsched-spec
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_speculative) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Allow speculative motion of non-loads
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fsched-spec-load
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_speculative_load) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Allow speculative motion of some loads
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fsched-spec-load-dangerous
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Allow speculative motion of more loads
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fsched-verbose=
|
|
|
|
Common RejectNegative Joined
|
2003-07-08 05:25:39 +00:00
|
|
|
-fsched-verbose=<number> Set the verbosity level of the scheduler
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fsched2-use-superblocks
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_sched2_use_superblocks) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
If scheduling post reload, do superblock scheduling
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fsched2-use-traces
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2010-02-09 19:51:30 +03:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fschedule-insns
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_insns) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Reschedule instructions before register allocation
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
fschedule-insns2
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_schedule_insns_after_reload) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Reschedule instructions after register allocation
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
sel-sched.h, [...]: New files.
2008-08-31 Andrey Belevantsev <abel@ispras.ru>
Dmitry Melnik <dm@ispras.ru>
Dmitry Zhurikhin <zhur@ispras.ru>
Alexander Monakov <amonakov@ispras.ru>
Maxim Kuvyrkov <maxim@codesourcery.com>
* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
sel-sched-dump.c, sel-sched-ir.c: New files.
* Makefile.in (OBJS-common): Add selective scheduling object
files.
(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
(sched-vis.o): Add dependency on $(INSN_ATTR_H).
* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
(make_forwarder_block): Update loop latch if we have redirected
the loop latch edge.
* cfgloop.c (get_loop_body_in_custom_order): New function.
* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
(CP_FALLTHRU_PREHEADERS): Likewise.
(get_loop_body_in_custom_order): Declare.
* cfgloopmanip.c (has_preds_from_loop): New.
(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
Assert that the preheader edge will be fall thru when it is set.
* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
fsel-sched-substitution, fselective-scheduling): New flags.
* cse.c (hash_rtx_cb): New.
(hash_rtx): Use it.
* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
sel_sched_insn_cnt): New counters.
* final.c (compute_alignments): Export. Free dominance info after loop_optimizer_finalize.
* genattr.c (main): Output maximal_insn_latency prototype.
* genautomata.c (output_default_latencies): New. Factor its code from ...
(output_internal_insn_latency_func): ... here.
(output_internal_maximal_insn_latency_func): New.
(output_maximal_insn_latency_func): New.
* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
(struct hard_reg_set_iterator): New.
(hard_reg_set_iter_init, hard_reg_set_iter_set,
hard_reg_set_iter_next): New functions.
(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
* lists.c (remove_free_INSN_LIST_node,
remove_free_EXPR_LIST_node): New functions.
* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
(loop_optimizer_finalize): Do not verify flow info after reload.
* recog.c (validate_replace_rtx_1): New parameter simplify.
Default it to true. Update all uses. Factor out simplifying
code to ...
(simplify_while_replacing): ... this new function.
(validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): New.
* recog.h (validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): Declare.
* rtl.c (rtx_equal_p_cb): New.
(rtx_equal_p): Use it.
* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
debug_bb_n_slim, debug_bb_slim, print_rtl_slim): Likewise.
* vecprim.h: Add a vector type for unsigned int.
* haifa-sched.c: Include vecprim.h and cfgloop.h.
(issue_rate, sched_verbose_param, note_list, dfa_state_size,
ready_try, cycle_issued_insns, spec_info): Make global.
(readyp): Initialize.
(dfa_lookahead): New global variable.
(old_max_uid, old_last_basic_block): Remove.
(h_i_d): Make it a vector.
(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
through HID macro.
(after_recovery, adding_bb_to_current_region_p):
New variables to handle correct insertion of the recovery code.
(struct ready_list): Move declaration to sched-int.h.
(rgn_n_insns): Removed.
(rtx_vec_t): Move to sched-int.h.
(find_insn_reg_weight): Remove.
(find_insn_reg_weight1): Rename to find_insn_reg_weight.
(haifa_init_h_i_d, haifa_finish_h_i_d):
New functions to initialize / finalize haifa instruction data.
(extend_h_i_d, init_h_i_d): Rewrite.
(unlink_other_notes): Move logic to add_to_note_list. Handle
selective scheduler.
(ready_lastpos, ready_element, ready_sort, reemit_notes,
find_fallthru_edge): Make global, remove static prototypes.
(max_issue): Make global. Add privileged_n and state parameters. Use
them.
(extend_global, extend_all): Removed.
(init_before_recovery): Add new param. Fix the handling of the case
when we insert a recovery code before the EXIT which has a predecessor
with a fallthrough edge to it.
(create_recovery_block): Make global. Rename to
sched_create_recovery_block. Update.
(change_pattern): Rename to sched_change_pattern. Make global.
(speculate_insn): Rename to sched_speculate_insn. Make global.
Split haifa-specific functionality into ...
(haifa_change_pattern): New static function.
(sched_extend_bb): New static function.
(sched_init_bbs): New function.
(current_sched_info): Change type to struct haifa_sched_info.
(insn_cost): Adjust for selective scheduling.
(dep_cost_1): New function. Move logic from ...
(dep_cost): ... here.
(dep_cost): Use dep_cost_1.
(contributes_to_priority_p): Use sched_deps_info instead of
current_sched_info.
(priority): Adjust to work with selective scheduling. Process the
corner case when all dependencies don't contribute to priority.
(rank_for_schedule): Use ds_weak instead of dep_weak.
(advance_state): New function. Move logic from ...
(advance_one_cycle): ... here.
(add_to_note_list, concat_note_lists): New functions.
(rm_other_notes): Make static. Adjust for selective scheduling.
(remove_notes, restore_other_notes): New functions.
(move_insn): Add two arguments. Update assert. Don't call
reemit_notes.
(choose_ready): Remove lookahead variable, use dfa_lookahead.
Remove more_issue, max_points. Move the code to initialize
max_lookahead_tries to max_issue.
(schedule_block): Remove rgn_n_insns1 parameter. Don't allocate
ready. Adjust use of move_insn. Call restore_other_notes.
(luid): Remove.
(sched_init, sched_finish): Move Haifa-specific initialization/
finalization to ...
(haifa_sched_init, haifa_sched_finish): ... respectively.
New functions.
(setup_sched_dump): New function.
(haifa_init_only_bb): New static function.
(haifa_speculate_insn): New static function.
(try_ready): Use haifa_* instead of speculate_insn and
change_pattern.
(extend_ready, extend_all): Remove.
(sched_extend_ready_list, sched_finish_ready_list): New functions.
(create_check_block_twin, add_to_speculative_block): Use
haifa_insns_init instead of extend_global. Update to use new
initialization functions. Change parameter. Factor out code from
create_check_block_twin to ...
(sched_create_recovery_edges) ... this new function.
(add_block): Remove.
(sched_scan_info): New.
(extend_bb): Use sched_scan_info.
(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
static functions for walking through scheduling region.
(sched_luids): New vector variable to replace uid_to_luid.
(luids_extend_insn): New function.
(sched_max_luid): New variable.
(luids_init_insn): New function.
(sched_init_luids, sched_finish_luids): New functions.
(insn_luid): New debug function.
(sched_extend_target): New function.
(haifa_init_insn): New static function.
(sched_init_only_bb): New hook.
(sched_split_block): New hook.
(sched_split_block_1): New function.
(sched_create_empty_bb): New hook.
(sched_create_empty_bb_1): New function.
(common_sched_info, ready): New global variables.
(current_sched_info_var): Remove.
(move_block_after_check): Use common_sched_info.
(haifa_luid_for_non_insn): New static function.
(init_before_recovery): Use haifa_init_only_bb instead of
add_block.
(increase_insn_priority): New.
* modulo-sched.c: (issue_rate): Remove static declaration.
(sms_sched_info): Change type to haifa_sched_info.
(sms_sched_deps_info, sms_common_sched_info): New variables.
(setup_sched_infos): New.
(sms_schedule): Initialize them. Call haifa_sched_init/finish.
Do not call regstat_free_calls_crossed.
(sms_print_insn): Use const_rtx.
* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
PARAM_SCHED_MEM_TRUE_DEP_COST): New.
* sched-deps.c (sched_deps_info): New. Update all relevant uses of
current_sched_info to use it.
(enum reg_pending_barrier_mode): Move to sched-int.h.
(h_d_i_d): New variable. Initialize to NULL.
({true, output, anti, spec, forward}_dependency_cache): Initialize
to NULL.
(estimate_dep_weak): Remove static declaration.
(sched_has_condition_p): New function. Adjust users of
sched_get_condition to use it instead.
(conditions_mutex_p): Add arguments indicating which conditions are
reversed. Use them.
(sched_get_condition_with_rev): Rename from sched_get_condition. Add
argument to indicate whether returned condition is reversed. Do not
generate new rtx when condition should be reversed; indicate it by
setting new argument instead.
(add_dependence_list_and_free): Add deps parameter.
Update all users. Do not free dependence list when
deps context is readonly.
(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
contexts.
(remove_from_dependence_list, remove_from_both_dependence_lists): New.
(remove_from_deps): New. Use the above functions.
(cur_insn, can_start_lhs_rhs_p): New static variables.
(add_or_update_back_dep_1): Initialize present_dep_type.
(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
haifa_note_dep): New functions implementing dependence hooks for
the Haifa scheduler.
(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
note_dep): New functions.
(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
functions.
(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
(free_deps): Initialize deps->reg_last.
(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
sched_analyze_insn): Update to use dependency hooks infrastructure
and readonly contexts.
(deps_analyze_insn): New function. Move part of logic from ...
(sched_analyze): ... here. Also move some logic to ...
(deps_start_bb): ... here. New function.
(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
sel_sched_p.
(sched_deps_init): New function. Move code from ...
(init_dependency_caches): ... here. Remove.
(init_deps_data_vector): New.
(sched_deps_finish): New function. Move code from ...
(free_dependency_caches): ... here. Remove.
(init_deps_global, finish_deps_global): Adjust for use with
selective scheduling.
(get_dep_weak): Move logic to ...
(get_dep_weak_1): New function.
(ds_merge): Move logic to ...
(ds_merge_1): New static function.
(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
(ds_get_max_dep_weak): New function.
* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
(n_insns): Rename to rgn_n_insns.
(debug_ebb_dependencies): New function.
(init_ready_list): Use it.
(begin_schedule_ready): Use sched_init_only_bb.
(ebb_print_insn): Indicate when an insn starts a new cycle.
(contributes_to_priority, compute_jump_reg_dependencies,
add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
(add_block1): Remove to ebb_add_block.
(ebb_sched_deps_info, ebb_common_sched_info): New variables.
(schedule_ebb): Initialize them. Use remove_notes instead of
rm_other_notes. Use haifa_local_init/finish.
(schedule_ebbs): Use haifa_sched_init/finish.
* sched-int.h: Include vecprim.h, remove rtl.h.
(struct ready_list): Delete declaration.
(sched_verbose_param, enum sched_pass_id_t,
bb_vec_t, insn_vec_t, rtx_vec_t): New.
(struct sched_scan_info_def): New structure.
(sched_scan_info, sched_scan, sched_init_bbs,
sched_init_luids, sched_finish_luids, sched_extend_target,
haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
(struct common_sched_info_def): New.
(common_sched_info, haifa_common_sched_info,
sched_emulate_haifa_p): Declare.
(sel_sched_p): New.
(sched_luids): Declare.
(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
(sched_max_luid, insn_luid): Declare.
(note_list, remove_notes, restore_other_notes, bb_note): Declare.
(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
print_insn, print_pattern, print_value, haifa_classify_insn,
sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
setup_sched_dump, sched_init, sched_finish,
sel_insn_is_speculation_check): Export.
(struct ready_list): Move from haifa-sched.c.
(ready_try, ready, max_issue): Export.
(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
sched_init_only_bb, sched_split_block, sched_split_block_1,
sched_create_empty_bb, sched_create_empty_bb_1,
sched_create_recovery_block, sched_create_recovery_edges): Export.
(enum reg_pending_barrier_mode): Export.
(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
(deps_t): New.
(struct sched_info): Rename to haifa_sched_info. Use const_rtx for
print_insn field. Move add_block and fix_recovery_cfg to
common_sched_info_def. Move compute_jump_reg_dependencies, use_cselib ...
(struct sched_deps_info_def): ... this new structure.
(sched_deps_info): Declare.
(struct spec_info_def): Remove weakness_cutoff, add
data_weakness_cutoff and control_weakness_cutoff.
(spec_info): Declare.
(struct _haifa_deps_insn_data): Split from haifa_insn_data. Add
dep_count field.
(struct haifa_insn_data): Rename to struct _haifa_insn_data.
(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
(current_sched_info): Change type to struct haifa_sched_info.
(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
(h_d_i_d): New variable.
(HDID): New accessor macro.
(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
(HID): New accessor macro. Rewrite h_i_d accessor macros through HID
and HDID.
(IS_SPECULATION_CHECK_P): Update for selective scheduler.
(enum SCHED_FLAGS): Update for selective scheduler.
(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
(init_dependency_caches, free_dependency_caches): Delete declarations.
(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
ds_to_dt): Export.
(rm_other_notes): Delete declaration.
(schedule_block): Remove one argument.
(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
ready_element, ready_lastpos, sched_extend_ready_list,
sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
concat_note_lists): Export.
(struct region): Move from sched-rgn.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN): Export.
(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
(current_nr_blocks, current_blocks, target_bb): Likewise.
(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
sched_rgn_local_init, extend_regions,
rgn_make_new_region_out_of_new_block, compute_priorities,
debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
extend_rgns, deps_join rgn_setup_common_sched_info,
rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
increase_insn_priority): Likewise.
* sched-rgn.c: Include sel-sched.h.
(ref_counts): New static variable. Use it ...
(INSN_REF_COUNT): ... here. Rewrite and move closer to uses.
(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
(sched_is_disabled_for_current_region_p): Delete static declaration.
(struct region): Move to sched-int.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
ebb_head): Define and initialize.
(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
sched-int.h.
(find_single_block_region): Add new argument to indicate that EBB
regions should be constructed.
(debug_live): Delete declaration.
(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
declaration.
(init_regions): Delete declaration.
(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
rgn_estimate_number_of_insns): New.
(too_large): Use estimate_number_of_insns.
(haifa_find_rgns): New. Move the code from ...
(find_rgns): ... here. Call either sel_find_rgns or haifa_find_rgns.
(free_trg_info): New.
(compute_trg_info): Allocate candidate tables here instead of ...
(init_ready_list): ... here.
(rgn_print_insn): Use const_rtx.
(contributes_to_priority, extend_regions): Delete static declaration.
(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
(add_block1): Rename to rgn_add_block.
(debug_rgn_dependencies): Delete static qualifier.
(new_ready): Use sched_deps_info. Simplify.
(rgn_common_sched_info, rgn_const_sched_deps_info,
rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
(region_sched_info): Rename to rgn_const_sched_info.
(deps_join): New, extracted from ...
(propagate_deps): ... here.
(compute_block_dependences, debug_dependencies): Update for selective
scheduling.
(free_rgn_deps, compute_priorities): New functions.
(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
sched_rgn_compute_dependencies): New functions.
(schedule_region): Use them.
(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
rgn_setup_common_sched_info, rgn_setup_sched_infos):
New functions.
(schedule_insns): Call new functions that were split out.
(rgn_make_new_region_out_of_new_block): New.
(get_rgn_sched_max_insns_priority): New.
(rest_of_handle_sched, rest_of_handle_sched2): Call selective
scheduling when appropriate.
* sched-vis.c: Include insn-attr.h.
(print_value, print_pattern): Make global.
(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
* target-def.h (TARGET_SCHED_ADJUST_COST_2,
TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
hooks. Initialize them to 0.
(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
* target.h (struct gcc_target): Add them. Rename gen_check field to
gen_spec_check.
* flags.h (sel_sched_switch_set): Declare.
* opts.c (sel_sched_switch_set): New variable.
(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
pipelining is disabled from command line.
(common_handle_option): Record whether selective scheduling is
requested from command line.
* doc/invoke.texi: Document new flags and parameters.
* doc/tm.texi: Document new target hooks.
* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
(dfa_state_size): Do not declare locally.
* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
* config/rs6000/rs6000.c (rs6000_init_sched_context,
rs6000_alloc_sched_context, rs6000_set_sched_context,
rs6000_free_sched_context): New functions.
(struct _rs6000_sched_context): New.
(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
scheduling.
(rs6000_sched_finish): Do not run for selective scheduling.
Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru>
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r139854
2008-09-01 12:57:00 +04:00
|
|
|
; This flag should be on when a target implements non-trivial
|
|
|
|
; scheduling hooks, maybe saving some information for its own sake.
|
|
|
|
; On IA64, for example, this is used for correct bundling.
|
|
|
|
fselective-scheduling
|
|
|
|
Common Report Var(flag_selective_scheduling) Optimization
|
|
|
|
Schedule instructions using selective scheduling algorithm
|
|
|
|
|
|
|
|
fselective-scheduling2
|
|
|
|
Common Report Var(flag_selective_scheduling2) Optimization
|
|
|
|
Run selective scheduling after reload
|
|
|
|
|
|
|
|
fsel-sched-pipelining
|
|
|
|
Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
|
|
|
|
Perform software pipelining of inner loops during selective scheduling
|
|
|
|
|
|
|
|
fsel-sched-pipelining-outer-loops
|
|
|
|
Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
|
|
|
|
Perform software pipelining of outer loops during selective scheduling
|
|
|
|
|
|
|
|
fsel-sched-reschedule-pipelined
|
|
|
|
Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
|
|
|
|
Reschedule pipelined regions without pipelining
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; sched_stalled_insns means that insns can be moved prematurely from the queue
|
|
|
|
; of stalled insns into the ready list.
|
2003-10-09 09:08:37 +00:00
|
|
|
fsched-stalled-insns
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(flag_sched_stalled_insns) Optimization UInteger
|
2003-10-09 09:08:37 +00:00
|
|
|
Allow premature scheduling of queued insns
|
|
|
|
|
|
|
|
fsched-stalled-insns=
|
2006-05-18 22:16:23 +00:00
|
|
|
Common RejectNegative Joined UInteger
|
2005-04-06 18:37:24 +00:00
|
|
|
-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
|
2003-10-09 09:08:37 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; sched_stalled_insns_dep controls how many recently scheduled cycles will
|
|
|
|
; be examined for a dependency on a stalled insn that is candidate for
|
|
|
|
; premature removal from the queue of stalled insns into the ready list (has
|
|
|
|
; an effect only if the flag 'sched_stalled_insns' is set).
|
2003-10-09 09:08:37 +00:00
|
|
|
fsched-stalled-insns-dep
|
2008-07-23 10:28:06 +00:00
|
|
|
Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
|
2003-10-09 09:08:37 +00:00
|
|
|
Set dependence distance checking in premature scheduling of queued insns
|
|
|
|
|
|
|
|
fsched-stalled-insns-dep=
|
|
|
|
Common RejectNegative Joined UInteger
|
2005-04-06 18:37:24 +00:00
|
|
|
-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
|
2003-10-09 09:08:37 +00:00
|
|
|
|
2009-07-13 22:42:41 +00:00
|
|
|
fsched-group-heuristic
|
|
|
|
Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
|
|
|
|
Enable the group heuristic in the scheduler
|
|
|
|
|
|
|
|
fsched-critical-path-heuristic
|
|
|
|
Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
|
|
|
|
Enable the critical path heuristic in the scheduler
|
|
|
|
|
|
|
|
fsched-spec-insn-heuristic
|
|
|
|
Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
|
|
|
|
Enable the speculative instruction heuristic in the scheduler
|
|
|
|
|
|
|
|
fsched-rank-heuristic
|
|
|
|
Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
|
|
|
|
Enable the rank heuristic in the scheduler
|
|
|
|
|
|
|
|
fsched-last-insn-heuristic
|
|
|
|
Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
|
|
|
|
Enable the last instruction heuristic in the scheduler
|
|
|
|
|
|
|
|
fsched-dep-count-heuristic
|
|
|
|
Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
|
|
|
|
Enable the dependent count heuristic in the scheduler
|
|
|
|
|
re PR target/9703 ([arm] Accessing data through constant pool more times could be solved in less instructions)
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
(copy_insn_1): Likewise. Don't copy each field individually.
Reindent.
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
of RTX_SIZE.
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
* rtl.c (rtx_size): Rename variable to...
(rtx_code_size): ...this.
(rtx_size): New function.
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
(copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
Reindent.
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
* rtl.h (rtx_code_size): New variable.
(rtx_size): Change from a variable to a function.
(RTX_SIZE): Rename to...
(RTX_CODE_SIZE): ...this.
PR target/9703
PR tree-optimization/17106
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
(Anchored Addresses): New section.
* doc/invoke.texi (-fsection-anchors): Document.
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
* hooks.c (hook_bool_mode_rtx_false): New function.
* hooks.h (hook_bool_mode_rtx_false): Declare.
* gengtype.c (create_optional_field): New function.
(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
SYMBOL_REF_IN_BLOCK_P is true.
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
(min_anchor_offset, max_anchor_offset): Likewise.
(use_anchors_for_symbol_p): New hook.
* toplev.c (compile_file): Call output_object_blocks.
(target_supports_section_anchors_p): New function.
(process_options): Check that -fsection-anchors is only used on
targets that support it and when -funit-at-a-time is in effect.
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
if the decl doesn't have one.
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
of force_const_mem through use_anchored_address.
(expand_expr_constant): New function.
(expand_expr_addr_expr_1): Call it. Use the same modifier when
calling expand_expr for INDIRECT_REF.
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
* expr.h (use_anchored_address): Declare.
* loop-unroll.c: Don't declare rtx vectors here.
* explow.c: Include output.h.
(validize_mem): Call use_anchored_address.
(use_anchored_address): New function.
* common.opt (-fsection-anchors): New switch.
* varasm.c (object_block_htab, anchor_labelno): New variables.
(hash_section, object_block_entry_eq, object_block_entry_hash)
(use_object_blocks_p, get_block_for_section, create_block_symbol)
(use_blocks_for_decl_p, change_symbol_section): New functions.
(get_variable_section): New function, split out from assemble_variable.
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
use_blocks_for_decl_p say so. Use change_symbol_section if the
symbol has already been created.
(assemble_variable_contents): New function, split out from...
(assemble_variable): ...here. Don't output any code for
block symbols; just pass them to place_block_symbol.
Use get_variable_section and assemble_variable_contents.
(get_constant_alignment, get_constant_section, get_constant_size): New
functions, split from output_constant_def_contents.
(build_constant_desc): Create a block symbol if use_object_blocks_p
says so. Or into SYMBOL_REF_FLAGS.
(assemble_constant_contents): New function, split from...
(output_constant_def_contents): ...here. Don't output any code
for block symbols; just pass them to place_section_symbol.
Use get_constant_section and get_constant_alignment.
(force_const_mem): Create a block symbol if use_object_blocks_p and
use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
(output_constant_pool_1): Add an explicit alignment argument.
Don't switch sections here.
(output_constant_pool): Adjust call to output_constant_pool_1.
Switch sections here instead. Don't output anything for block symbols;
just pass them to place_block_symbol.
(init_varasm_once): Initialize object_block_htab.
(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
(place_block_symbol, get_section_anchor, output_object_block)
(output_object_block_htab, output_object_blocks): New functions.
* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
(TARGET_ASM_OUT): Include it.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
(TARGET_INITIALIZER): Include them.
* rtl.c (rtl_check_failed_block_symbol): New function.
* rtl.h: Include vec.h. Declare heap and gc rtx vectors.
(block_symbol, object_block): New structures.
(rtx_def): Add a block_symbol field to the union.
(BLOCK_SYMBOL_CHECK): New macro.
(rtl_check_failed_block_symbol): Declare.
(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
* output.h (output_section_symbols): Declare.
(object_block): Name structure.
(place_section_symbol, get_section_anchor, default_asm_output_anchor)
(default_use_anchors_for_symbol_p): Declare.
* Makefile.in (RTL_BASE_H): Add vec.h.
(explow.o): Depend on output.h.
* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
(rs6000_use_blocks_for_constant_p): New function.
From-SVN: r111254
2006-02-18 22:06:53 +00:00
|
|
|
fsection-anchors
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_section_anchors) Optimization
|
re PR target/9703 ([arm] Accessing data through constant pool more times could be solved in less instructions)
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
(copy_insn_1): Likewise. Don't copy each field individually.
Reindent.
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
of RTX_SIZE.
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
* rtl.c (rtx_size): Rename variable to...
(rtx_code_size): ...this.
(rtx_size): New function.
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
(copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
Reindent.
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
* rtl.h (rtx_code_size): New variable.
(rtx_size): Change from a variable to a function.
(RTX_SIZE): Rename to...
(RTX_CODE_SIZE): ...this.
PR target/9703
PR tree-optimization/17106
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
(Anchored Addresses): New section.
* doc/invoke.texi (-fsection-anchors): Document.
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
* hooks.c (hook_bool_mode_rtx_false): New function.
* hooks.h (hook_bool_mode_rtx_false): Declare.
* gengtype.c (create_optional_field): New function.
(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
SYMBOL_REF_IN_BLOCK_P is true.
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
(min_anchor_offset, max_anchor_offset): Likewise.
(use_anchors_for_symbol_p): New hook.
* toplev.c (compile_file): Call output_object_blocks.
(target_supports_section_anchors_p): New function.
(process_options): Check that -fsection-anchors is only used on
targets that support it and when -funit-at-a-time is in effect.
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
if the decl doesn't have one.
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
of force_const_mem through use_anchored_address.
(expand_expr_constant): New function.
(expand_expr_addr_expr_1): Call it. Use the same modifier when
calling expand_expr for INDIRECT_REF.
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
* expr.h (use_anchored_address): Declare.
* loop-unroll.c: Don't declare rtx vectors here.
* explow.c: Include output.h.
(validize_mem): Call use_anchored_address.
(use_anchored_address): New function.
* common.opt (-fsection-anchors): New switch.
* varasm.c (object_block_htab, anchor_labelno): New variables.
(hash_section, object_block_entry_eq, object_block_entry_hash)
(use_object_blocks_p, get_block_for_section, create_block_symbol)
(use_blocks_for_decl_p, change_symbol_section): New functions.
(get_variable_section): New function, split out from assemble_variable.
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
use_blocks_for_decl_p say so. Use change_symbol_section if the
symbol has already been created.
(assemble_variable_contents): New function, split out from...
(assemble_variable): ...here. Don't output any code for
block symbols; just pass them to place_block_symbol.
Use get_variable_section and assemble_variable_contents.
(get_constant_alignment, get_constant_section, get_constant_size): New
functions, split from output_constant_def_contents.
(build_constant_desc): Create a block symbol if use_object_blocks_p
says so. Or into SYMBOL_REF_FLAGS.
(assemble_constant_contents): New function, split from...
(output_constant_def_contents): ...here. Don't output any code
for block symbols; just pass them to place_section_symbol.
Use get_constant_section and get_constant_alignment.
(force_const_mem): Create a block symbol if use_object_blocks_p and
use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
(output_constant_pool_1): Add an explicit alignment argument.
Don't switch sections here.
(output_constant_pool): Adjust call to output_constant_pool_1.
Switch sections here instead. Don't output anything for block symbols;
just pass them to place_block_symbol.
(init_varasm_once): Initialize object_block_htab.
(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
(place_block_symbol, get_section_anchor, output_object_block)
(output_object_block_htab, output_object_blocks): New functions.
* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
(TARGET_ASM_OUT): Include it.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
(TARGET_INITIALIZER): Include them.
* rtl.c (rtl_check_failed_block_symbol): New function.
* rtl.h: Include vec.h. Declare heap and gc rtx vectors.
(block_symbol, object_block): New structures.
(rtx_def): Add a block_symbol field to the union.
(BLOCK_SYMBOL_CHECK): New macro.
(rtl_check_failed_block_symbol): Declare.
(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
* output.h (output_section_symbols): Declare.
(object_block): Name structure.
(place_section_symbol, get_section_anchor, default_asm_output_anchor)
(default_use_anchors_for_symbol_p): Declare.
* Makefile.in (RTL_BASE_H): Add vec.h.
(explow.o): Depend on output.h.
* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
(rs6000_use_blocks_for_constant_p): New function.
From-SVN: r111254
2006-02-18 22:06:53 +00:00
|
|
|
Access data in the same section from shared anchor points
|
|
|
|
|
2006-05-04 09:19:02 +00:00
|
|
|
fsee
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2009-06-18 16:08:00 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2006-05-04 09:19:02 +00:00
|
|
|
|
2010-05-12 21:15:19 +00:00
|
|
|
fzee
|
|
|
|
Common Report Var(flag_zee) Init(0)
|
|
|
|
Eliminate redundant zero extensions on targets that support implicit extensions.
|
|
|
|
|
2005-03-28 00:04:41 -08:00
|
|
|
fshow-column
|
2010-06-10 16:10:11 +01:00
|
|
|
Common Report Var(flag_show_column) Init(1)
|
2009-06-01 16:09:33 +00:00
|
|
|
Show column numbers in diagnostics, when available. Default on
|
2005-03-28 00:04:41 -08:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fsignaling-nans
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_signaling_nans) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Disable optimizations observable by IEEE signaling NaNs
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2007-01-19 19:35:22 +00:00
|
|
|
fsigned-zeros
|
2007-02-21 15:40:29 +00:00
|
|
|
Common Report Var(flag_signed_zeros) Init(1) Optimization
|
2007-01-19 19:35:22 +00:00
|
|
|
Disable floating point optimizations that ignore the IEEE signedness of zero
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fsingle-precision-constant
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_single_precision_constant) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Convert floating point constants to single precision constants
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* basic-block.h (struct reorder_block_def): Add copy_number field.
* cfgloop.h (biv_p): Declare.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
* common.opt (fsplit-ivs-in-unroller): New flag.
* loop-iv.c (biv_p): New function.
* loop-unroll.c: Include hashtab.h and recog.h.
(struct iv_to_split, struct split_ivs_info): New types.
(analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
insert_base_initialization, split_iv): New functions.
(peel_loop_completely, unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
Use them.
* doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
Co-Authored-By: Steven Bosscher <stevenb@suse.de>
From-SVN: r87487
2004-09-14 10:05:46 +02:00
|
|
|
fsplit-ivs-in-unroller
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Split lifetimes of induction variables when loops are unrolled
|
Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
* basic-block.h (struct reorder_block_def): Add copy_number field.
* cfgloop.h (biv_p): Declare.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
* common.opt (fsplit-ivs-in-unroller): New flag.
* loop-iv.c (biv_p): New function.
* loop-unroll.c: Include hashtab.h and recog.h.
(struct iv_to_split, struct split_ivs_info): New types.
(analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
insert_base_initialization, split_iv): New functions.
(peel_loop_completely, unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
Use them.
* doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
Co-Authored-By: Steven Bosscher <stevenb@suse.de>
From-SVN: r87487
2004-09-14 10:05:46 +02:00
|
|
|
|
2007-02-01 01:09:35 +00:00
|
|
|
fsplit-wide-types
|
2007-02-21 15:40:29 +00:00
|
|
|
Common Report Var(flag_split_wide_types) Optimization
|
2007-02-01 01:09:35 +00:00
|
|
|
Split wide types into independent registers
|
|
|
|
|
Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
2004-10-18 Revital Eres <eres@il.ibm.com>
* Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
* loop-unroll.c: Include varray.h.
(struct var_to_expand, struct opt_info): Rename split_ivs_info to
opt_info and expand it to support variable expansion.
(analyze_insns_in_loop): Rename analyze_ivs_to_split and
expand it to support variable expansion.
(pt_info_start_duplication): Rename si_info_start_duplication.
(apply_opt_in_copies): Rename split_ivs_in_copies and add support
to the variable expansion optimization.
(free_opt_info): Rename free_si_info.
(analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
expand_var_during_unrolling, insert_var_expansion_initialization,
combine_var_copies_in_loop_exit, release_var_copies,
get_expansion): New functions.
(peel_loop_completely, unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, peel_loop_simple,
unroll_loop_stupid): Change uses of struct si_info
to struct opt_info
and add uses of fvariable-expansion-in-unroller flag.
* params.def: Add parameter to restrict the number of expansions.
* params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
the number of expansions.
* common.opt: (fvariable-expansion-in-unroller): New flag.
* doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
From-SVN: r89197
2004-10-18 05:31:28 +00:00
|
|
|
fvariable-expansion-in-unroller
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_variable_expansion_in_unroller) Optimization
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Apply variable expansion when loops are unrolled
|
Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
2004-10-18 Revital Eres <eres@il.ibm.com>
* Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
* loop-unroll.c: Include varray.h.
(struct var_to_expand, struct opt_info): Rename split_ivs_info to
opt_info and expand it to support variable expansion.
(analyze_insns_in_loop): Rename analyze_ivs_to_split and
expand it to support variable expansion.
(pt_info_start_duplication): Rename si_info_start_duplication.
(apply_opt_in_copies): Rename split_ivs_in_copies and add support
to the variable expansion optimization.
(free_opt_info): Rename free_si_info.
(analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
expand_var_during_unrolling, insert_var_expansion_initialization,
combine_var_copies_in_loop_exit, release_var_copies,
get_expansion): New functions.
(peel_loop_completely, unroll_loop_constant_iterations,
unroll_loop_runtime_iterations, peel_loop_simple,
unroll_loop_stupid): Change uses of struct si_info
to struct opt_info
and add uses of fvariable-expansion-in-unroller flag.
* params.def: Add parameter to restrict the number of expansions.
* params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
the number of expansions.
* common.opt: (fvariable-expansion-in-unroller): New flag.
* doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
From-SVN: r89197
2004-10-18 05:31:28 +00:00
|
|
|
|
2008-08-16 18:40:57 +00:00
|
|
|
fstack-check=
|
|
|
|
Common Report RejectNegative Joined
|
|
|
|
-fstack-check=[no|generic|specific] Insert stack checking code into the program
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fstack-check
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Common Alias(fstack-check=, specific, no)
|
2008-08-16 18:40:57 +00:00
|
|
|
Insert stack checking code into the program. Same as -fstack-check=specific
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fstack-limit
|
|
|
|
Common
|
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
fstack-limit-register=
|
|
|
|
Common RejectNegative Joined
|
2003-07-08 05:25:39 +00:00
|
|
|
-fstack-limit-register=<register> Trap if the stack goes past <register>
|
2003-06-21 15:59:31 +00:00
|
|
|
|
|
|
|
fstack-limit-symbol=
|
|
|
|
Common RejectNegative Joined
|
2003-07-08 05:25:39 +00:00
|
|
|
-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
|
2003-06-21 15:59:31 +00:00
|
|
|
|
c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
(TARGET_INITIALIZER): Add them.
* target.h (struct gcc_target): Add stack_protect_guard and
stack_protect_fail.
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
* doc/md.texi (stack_protect_set, stack_protect_test): New.
* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101348
2005-06-27 00:41:16 -07:00
|
|
|
fstack-protector
|
|
|
|
Common Report Var(flag_stack_protect, 1)
|
|
|
|
Use propolice as a stack protection method
|
|
|
|
|
|
|
|
fstack-protector-all
|
|
|
|
Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
|
|
|
|
Use a stack protection method for every function
|
|
|
|
|
2010-08-30 20:04:49 +00:00
|
|
|
fstack-usage
|
|
|
|
Common RejectNegative Var(flag_stack_usage)
|
|
|
|
Output stack usage information on a per-function basis
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fstrength-reduce
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
builtins.c, [...]: Fix comment typos.
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
loop-invariant.c, omp-low.c, opts.c, passes.c,
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
tree-ssa-structalias.c, tree-ssa-threadedge.c,
tree-ssa-threadupdate.c, tree-vect-patterns.c,
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
From-SVN: r111721
2006-03-04 23:05:24 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero if we should do (language-dependent) alias analysis.
|
|
|
|
; Typically, this analysis will assume that expressions of certain
|
|
|
|
; types do not alias expressions of certain other types. Only used
|
|
|
|
; if alias analysis (in general) is enabled.
|
2003-06-22 13:44:40 +00:00
|
|
|
fstrict-aliasing
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_strict_aliasing) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Assume strict aliasing rules apply
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2007-01-28 05:15:06 +00:00
|
|
|
fstrict-overflow
|
|
|
|
Common Report Var(flag_strict_overflow)
|
|
|
|
Treat signed overflow as undefined
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fsyntax-only
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_syntax_only)
|
2003-07-11 05:35:06 +00:00
|
|
|
Check for syntax errors, then stop
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
ftest-coverage
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_test_coverage)
|
2003-07-11 05:35:06 +00:00
|
|
|
Create data files needed by \"gcov\"
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
fthread-jumps
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_thread_jumps) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform jump threading optimizations
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
ftime-report
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(time_report)
|
2003-07-11 05:35:06 +00:00
|
|
|
Report the time taken by each compiler pass
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-21 15:59:31 +00:00
|
|
|
ftls-model=
|
|
|
|
Common Joined RejectNegative
|
2003-07-08 05:25:39 +00:00
|
|
|
-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
|
2003-06-21 15:59:31 +00:00
|
|
|
|
2006-01-17 07:04:20 +00:00
|
|
|
ftoplevel-reorder
|
2008-07-20 16:57:17 +02:00
|
|
|
Common Report Var(flag_toplevel_reorder) Init(2) Optimization
|
2006-01-17 07:04:20 +00:00
|
|
|
Reorder top level functions, variables, and asms
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
ftracer
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_tracer)
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform superblock formation via tail duplication
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Zero means that floating-point math operations cannot generate a
|
|
|
|
; (user-visible) trap. This is the case, for example, in nonstop
|
|
|
|
; IEEE 754 arithmetic.
|
2003-06-22 13:44:40 +00:00
|
|
|
ftrapping-math
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_trapping_math) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Assume floating-point operations can trap
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
ftrapv
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_trapv) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Trap for signed overflow in addition, subtraction and multiplication
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
ftree-ccp
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_ccp) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable SSA-CCP optimization on trees
|
|
|
|
|
2010-08-06 11:47:31 +00:00
|
|
|
ftree-bit-ccp
|
|
|
|
Common Report Var(flag_tree_bit_ccp) Optimization
|
|
|
|
Enable SSA-BIT-CCP optimization on trees
|
|
|
|
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
ftree-store-ccp
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2008-08-29 11:43:22 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
ftree-ch
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_ch) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable loop header copying on trees
|
|
|
|
|
|
|
|
ftree-copyrename
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_copyrename) Optimization
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 14:19:59 +01:00
|
|
|
Replace SSA temporaries with better names in copies
|
2004-05-13 02:41:07 -04:00
|
|
|
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
ftree-copy-prop
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_copy_prop) Optimization
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
Enable copy propagation on trees
|
|
|
|
|
|
|
|
ftree-store-copy-prop
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2007-12-03 11:45:53 +01:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
|
2007-09-10 07:40:30 +00:00
|
|
|
ftree-cselim
|
|
|
|
Common Report Var(flag_tree_cselim) Init(2) Optimization
|
|
|
|
Transform condition stores into unconditional ones
|
|
|
|
|
2008-07-01 10:54:18 +02:00
|
|
|
ftree-switch-conversion
|
|
|
|
Common Report Var(flag_tree_switch_conversion) Optimization
|
|
|
|
Perform conversions of switch initializations.
|
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
ftree-dce
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_dce) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable SSA dead code elimination optimization on trees
|
|
|
|
|
|
|
|
ftree-dominator-opts
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_dom) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable dominator optimizations
|
|
|
|
|
|
|
|
ftree-dse
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_dse) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable dead store elimination
|
|
|
|
|
2009-05-15 12:26:48 +00:00
|
|
|
ftree-forwprop
|
|
|
|
Common Report Var(flag_tree_forwprop) Init(1) Optimization
|
|
|
|
Enable forward propagation on trees
|
|
|
|
|
2004-06-29 01:53:04 +00:00
|
|
|
ftree-fre
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_fre) Optimization
|
2004-06-29 01:53:04 +00:00
|
|
|
Enable Full Redundancy Elimination (FRE) on trees
|
|
|
|
|
invoke.texi: Document -ftree-loop-distribution.
* doc/invoke.texi: Document -ftree-loop-distribution.
* tree-loop-distribution.c: New.
* tree-pass.h (pass_loop_distribution): New.
* graphds.h (struct graph): Add htab_t indices.
* timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
* tree-vectorizer.c (rename_variables_in_loop): Extern.
(slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
* tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
* tree-data-ref.c (debug_data_dependence_relations): New.
(dump_data_dependence_relation): Also print data references.
(free_data_ref): Extern.
(same_access_functions): Moved...
(find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
struct rdg_vertex_info, rdg_vertex_for_stmt): New.
(create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
(stmts_from_loop): Skip LABEL_EXPR.
(hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del): New.
(build_rdg): Initialize rdg->indices htab.
(free_rdg, stores_from_loop, ref_base_address,
rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
have_similar_memory_accesses_1, ref_base_address_1,
remove_similar_memory_refs): New.
* tree-data-ref.h: Depend on tree-chrec.h.
(debug_data_dependence_relations, free_data_ref): Declared.
(same_access_functions): ... here.
(ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level): New.
(struct rdg_vertex): Add has_mem_write and has_mem_reads.
(RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
rdg_vertex_for_stmt): Declared.
(struct rdg_edge): Add level.
(RDGE_LEVEL): New.
(free_rdg, stores_from_loop, remove_similar_memory_refs,
rdg_defs_used_in_other_loops_p, have_similar_memory_accesses): Declared.
(rdg_has_similar_memory_accesses): New.
* tree-vect-analyze.c: Remove unused static decls.
* lambda.h (dependence_level): New.
* common.opt (ftree-loop-distribution): New.
* tree-flow.h (mark_virtual_ops_in_bb,
slpeel_tree_duplicate_loop_to_edge_cfg,
rename_variables_in_loop): Declared.
* Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
(OBJS-common): Add tree-loop-distribution.o.
(tree-loop-distribution.o): New rule.
* tree-cfg.c (mark_virtual_ops_in_bb): New.
(mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
* passes.c (init_optimization_passes): Schedule pass_loop_distribution.
* testsuite/gcc.dg/tree-ssa/ldist-{1..12}.c: New.
From-SVN: r132745
2008-02-28 12:37:24 +00:00
|
|
|
ftree-loop-distribution
|
2008-04-22 09:58:19 +00:00
|
|
|
Common Report Var(flag_tree_loop_distribution) Optimization
|
invoke.texi: Document -ftree-loop-distribution.
* doc/invoke.texi: Document -ftree-loop-distribution.
* tree-loop-distribution.c: New.
* tree-pass.h (pass_loop_distribution): New.
* graphds.h (struct graph): Add htab_t indices.
* timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
* tree-vectorizer.c (rename_variables_in_loop): Extern.
(slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
* tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
* tree-data-ref.c (debug_data_dependence_relations): New.
(dump_data_dependence_relation): Also print data references.
(free_data_ref): Extern.
(same_access_functions): Moved...
(find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
struct rdg_vertex_info, rdg_vertex_for_stmt): New.
(create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
(stmts_from_loop): Skip LABEL_EXPR.
(hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del): New.
(build_rdg): Initialize rdg->indices htab.
(free_rdg, stores_from_loop, ref_base_address,
rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
have_similar_memory_accesses_1, ref_base_address_1,
remove_similar_memory_refs): New.
* tree-data-ref.h: Depend on tree-chrec.h.
(debug_data_dependence_relations, free_data_ref): Declared.
(same_access_functions): ... here.
(ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level): New.
(struct rdg_vertex): Add has_mem_write and has_mem_reads.
(RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
rdg_vertex_for_stmt): Declared.
(struct rdg_edge): Add level.
(RDGE_LEVEL): New.
(free_rdg, stores_from_loop, remove_similar_memory_refs,
rdg_defs_used_in_other_loops_p, have_similar_memory_accesses): Declared.
(rdg_has_similar_memory_accesses): New.
* tree-vect-analyze.c: Remove unused static decls.
* lambda.h (dependence_level): New.
* common.opt (ftree-loop-distribution): New.
* tree-flow.h (mark_virtual_ops_in_bb,
slpeel_tree_duplicate_loop_to_edge_cfg,
rename_variables_in_loop): Declared.
* Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
(OBJS-common): Add tree-loop-distribution.o.
(tree-loop-distribution.o): New rule.
* tree-cfg.c (mark_virtual_ops_in_bb): New.
(mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
* passes.c (init_optimization_passes): Schedule pass_loop_distribution.
* testsuite/gcc.dg/tree-ssa/ldist-{1..12}.c: New.
From-SVN: r132745
2008-02-28 12:37:24 +00:00
|
|
|
Enable loop distribution on trees
|
|
|
|
|
2010-08-02 16:20:36 +00:00
|
|
|
ftree-loop-distribute-patterns
|
|
|
|
Common Report Var(flag_tree_loop_distribute_patterns) Optimization
|
|
|
|
Enable loop distribution for patterns transformed into a library call
|
|
|
|
|
2004-09-03 02:19:40 +00:00
|
|
|
ftree-loop-im
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_loop_im) Init(1) Optimization
|
2004-07-10 06:57:58 +02:00
|
|
|
Enable loop invariant motion on trees
|
|
|
|
|
2004-09-08 15:28:56 +00:00
|
|
|
ftree-loop-linear
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_loop_linear) Optimization
|
2004-09-08 15:28:56 +00:00
|
|
|
Enable linear loop transforms on trees
|
|
|
|
|
2004-09-03 02:19:40 +00:00
|
|
|
ftree-loop-ivcanon
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
|
2004-09-03 02:19:40 +00:00
|
|
|
Create canonical induction variables in loops
|
|
|
|
|
2004-06-30 23:29:00 +02:00
|
|
|
ftree-loop-optimize
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
|
2004-06-30 23:29:00 +02:00
|
|
|
Enable loop optimizations on tree level
|
|
|
|
|
2007-09-15 23:53:45 +02:00
|
|
|
ftree-parallelize-loops=
|
2010-06-12 01:13:23 +01:00
|
|
|
Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
|
2007-09-15 23:53:45 +02:00
|
|
|
Enable automatic parallelization of loops
|
|
|
|
|
2009-05-15 12:26:48 +00:00
|
|
|
ftree-phiprop
|
|
|
|
Common Report Var(flag_tree_phiprop) Init(1) Optimization
|
|
|
|
Enable hoisting loads from conditional pointers.
|
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
ftree-pre
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_pre) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Enable SSA-PRE optimization on trees
|
|
|
|
|
2009-05-15 12:26:48 +00:00
|
|
|
ftree-pta
|
|
|
|
Common Report Var(flag_tree_pta) Init(1) Optimization
|
|
|
|
Perform function-local points-to analysis on trees.
|
|
|
|
|
2007-07-09 21:22:03 +02:00
|
|
|
ftree-reassoc
|
|
|
|
Common Report Var(flag_tree_reassoc) Init(1) Optimization
|
|
|
|
Enable reassociation on tree level
|
|
|
|
|
2005-03-13 00:46:07 +00:00
|
|
|
ftree-salias
|
opts.h (struct cl_option): Add warn_message field.
* opts.h (struct cl_option): Add warn_message field.
(struct cl_decoded_option): Add warn_message field.
* doc/options.texi (Ignore, Warn): Document.
* opt-functions.awk (needs_state_p): Don't consider aliases or
ignored options to need state saved.
* optc-gen.awk: Handle Warn and Ignore.
* opth-gen.awk: Output OPT_SPECIAL_ignore.
* opts-common.c (decode_cmdline_option): Set warn_message field.
Handle ignored options.
(decode_cmdline_options_to_array, generate_option,
generate_option_input_file): Set warn_message field.
(read_cmdline_option): Generate warnings from warn_message field.
Handle ignored options.
* common.opt (Wunreachable-code, fargument-alias,
fargument-noalias, fargument-noalias-global,
fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
ftree-salias): Mark Ignore.
* config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
-mintel-syntax and -mno-intel-syntax here.
* config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
using Warn.
* opts.c (common_handle_option): Don't handle options marked as
ignored.
(enable_warning_as_error): Handle ignored options.
c-family:
* c.opt (Wimport, fall-virtual, falt-external-templates,
fdefault-inline, fenum-int-equiv, fexternal-templates,
fguiding-decls, fhonor-std, fhuge-objects, flabels-ok,
fname-mangling-version-, fnew-abi, fnonnull-objects,
foptional-diags, fsquangle, fstrict-prototype, fthis-is-variable,
fvtable-gc, fvtable-thunks, fxref): Mark with Ignore and Warn as
applicable.
(fhandle-exceptions): Mark with Alias and Warn.
* c-opts.c (c_common_handle_option): Don't handle options marked
as ignored.
po:
* exgettext: Handle {} in operand of MissingArgError. Handle
Warn.
From-SVN: r163771
2010-09-02 12:43:19 +01:00
|
|
|
Common Ignore
|
2008-05-09 09:37:36 +00:00
|
|
|
Does nothing. Preserved for backward compatibility.
|
2005-03-13 00:46:07 +00:00
|
|
|
|
2005-03-01 17:59:06 +00:00
|
|
|
ftree-sink
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_sink) Optimization
|
2005-03-01 17:59:06 +00:00
|
|
|
Enable SSA code sinking on trees
|
|
|
|
|
2004-05-13 02:41:07 -04:00
|
|
|
ftree-sra
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_sra) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Perform scalar replacement of aggregates
|
|
|
|
|
|
|
|
ftree-ter
|
2008-07-20 18:06:51 +02:00
|
|
|
Common Report Var(flag_tree_ter) Init(1) Optimization
|
2004-05-13 02:41:07 -04:00
|
|
|
Replace temporary expressions in the SSA->normal pass
|
|
|
|
|
2007-02-12 16:25:14 +00:00
|
|
|
ftree-lrs
|
|
|
|
Common Report Var(flag_tree_live_range_split) Optimization
|
|
|
|
Perform live range splitting during the SSA->normal pass
|
|
|
|
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
ftree-vrp
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_vrp) Init(0) Optimization
|
backport: copy-prop, incremental SSA updating of FUD chains and newly exposed symbols.
Merge from tree-cleanup-branch: VRP, store CCP, store
copy-prop, incremental SSA updating of FUD chains and
newly exposed symbols.
* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
(OBJS-common): Add tree-vrp.o.
(tree-vrp.o): New rule.
* basic-block.h (nearest_common_dominator_for_set): Declare.
* common.opt (ftree-store-ccp): New flag.
(ftree-copy-prop): New flag.
(ftree-vrp): New flag.
(ftree-store-copy-prop): New flag.
* dominance.c (nearest_common_dominator_for_set): New.
* domwalk.c (walk_dominator_tree): Only traverse
statements in blocks marked in walk_data->interesting_blocks.
* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
* fold-const.c (fold): Handle ASSERT_EXPR.
* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
Set flag_tree_store_ccp, flag_tree_store_copy_prop and
flag_tree_vrp at -O2.
* timevar.def (TV_TREE_VRP): Define.
(TV_TREE_COPY_PROP): Define.
(TV_TREE_STORE_COPY_PROP): Define.
(TV_TREE_SSA_INCREMENTAL): Define.
(TV_TREE_STORE_CCP): Define.
* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
to kill_redundant_phi_nodes from comment.
(verify_expr): Handle ASSERT_EXPR.
* tree-dfa.c (mark_new_vars_to_rename): Remove second
argument. Update all users.
(mark_call_clobbered_vars_to_rename): Remove. Update all
users.
* tree-flow-inline.h (unmodifiable_var_p): New.
* tree-flow.h (enum value_range_type): Declare.
(struct value_range_def): Declare.
(value_range): Declare.
(remove_all_phi_nodes_for): Remove. Update all users.
(find_phi_node_for): Declare.
(add_type_alias): Declare.
(count_uses_and_derefs): Declare.
(kill_redundant_phi_nodes): Remove.
(rewrite_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(update_ssa, register_new_name_mapping, create_new_def_for,
need_ssa_update_p, name_registered_for_update_p,
release_ssa_name_after_update_ssa, dump_repl_tbl,
debug_repl_tbl, dump_names_replaced_by,
debug_names_replaced_by, mark_sym_for_renaming,
mark_set_for_renaming, get_current_def, set_current_def,
get_value_range, dump_value_range, debug_value_range,
dump_all_value_ranges, debug_all_value_ranges,
expr_computes_nonzero, loop_depth_of_name,
unmodifiable_var_p): Declare.
* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
ASSERT_EXPR.
* tree-into-ssa.c (block_defs_stack): Update comment.
(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
syms_to_rename, names_to_release, repl_tbl,
need_to_initialize_update_ssa_p, need_to_update_vops_p,
need_to_replace_names_p): New locals.
(NAME_SETS_GROWTH_FACTOR): Define.
(struct repl_map_d): Declare.
(struct mark_def_sites_global_data): Add field
interesting_blocks.
(enum rewrite_mode): Declare.
(REGISTER_DEFS_IN_THIS_STMT): Define.
(compute_global_livein): Use last_basic_block instead of
n_basic_blocks.
(set_def_block): Remove last argument. Update all callers.
(prepare_use_operand_for_rename): Remove. Update all callers.
(prepare_def_operand_for_rename): Remove. Update all callers.
(symbol_marked_for_renaming): New.
(is_old_name): New.
(is_new_name): New.
(repl_map_hash): New.
(repl_map_eq): New.
(repl_map_free): New.
(names_replaced_by): New.
(add_to_repl_tbl): New.
(add_new_name_mapping): New.
(mark_def_sites): Assume that all the operands in the
statement are in normal form.
(find_idf): Assert that the block in the stack is valid.
(get_default_def_for): New.
(insert_phi_nodes_for): Add new argument 'update_p'.
Add documentation.
If update_p is true, add a new mapping between the LHS of
each new PHI and the name that it replaces.
(insert_phi_nodes_1): Only call find_idf if needed.
(get_reaching_def): Call get_default_def_for.
(rewrite_operand): Remove.
(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
and REWRITE_THIS_STMT are false.
Assume that all the operands in the statement are in
normal form.
(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
(rewrite_virtual_phi_arguments): Remove.
(invalidate_name_tags): Remove.
(register_new_update_single, register_new_update_set,
rewrite_update_init_block, replace_use,
rewrite_update_fini_block, rewrite_update_stmt,
rewrite_update_phi_arguments): New.
rewrite_blocks): Remove argument 'fix_virtual_phis'.
Add arguments 'entry', 'what' and 'blocks'.
Initialize the dominator walker according to 'what' and
'blocks'.
Start the dominator walk at 'entry'.
(mark_def_site_blocks): Add argument 'interesting_blocks'.
Use it to configure the dominator walker.
(rewrite_into_ssa): Remove argument 'all'.
Make internal.
(rewrite_all_into_ssa): Remove.
(rewrite_def_def_chains): Remove.
(mark_def_interesting, mark_use_interesting,
prepare_phi_args_for_update, prepare_block_for_update,
prepare_def_site_for, prepare_def_sites,
dump_names_replaced_by, debug_names_replaced_by,
dump_repl_tbl, debug_repl_tbl, init_update_ssa,
delete_update_ssa, create_new_def_for,
register_new_name_mapping, mark_sym_for_renaming,
mark_set_for_renaming, need_ssa_update_p,
name_registered_for_update_p, ssa_names_to_replace,
release_ssa_name_after_update_ssa,
insert_updated_phi_nodes_for, update_ssa): New.
* tree-loop-linear.c (linear_transform_loops): Call
update_ssa instead of rewrite_into_ssa.
* tree-optimize.c (vars_to_rename): Remove.
Update all users.
(init_tree_optimization_passes): Replace
pass_redundant_phi with pass_copy_prop.
Add pass_vrp.
Replace pass_ccp with pass_store_ccp.
Add pass_store_copy_prop after pass_store_ccp.
(execute_todo): If the TODO_ flags don't include updating
the SSA form, assert that it does not need to be updated.
Call update_ssa instead of rewrite_into_ssa and
rewrite_def_def_chains.
If TODO_verify_loops is set, call verify_loop_closed_ssa.
(tree_rest_of_compilation):
* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
TODO_cleanup_cfg): Renumber.
(TODO_verify_loops, TODO_update_ssa,
TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
TODO_update_ssa_only_virtuals): Define.
(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
Declare.
* tree-phinodes.c (make_phi_node): Update documentation.
(remove_all_phi_nodes_for): Remove.
(find_phi_node_for): New.
* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
(interpret_rhs_modify_expr): Likewise.
* tree-sra.c (decide_instantiations): Mark all symbols in
SRA_CANDIDATES for renaming.
(mark_all_v_defs_1): Rename from mark_all_v_defs.
(mark_all_v_defs): New function. Update all users to call it
with the whole list of scalarized statements, not just the
first one.
* tree-ssa-alias.c (count_ptr_derefs): Make extern.
(compute_flow_insensitive_aliasing): If the tag is
unmodifiable and the variable isn't or vice-versa, don't
make them alias of each other.
(setup_pointers_and_addressables): If the type tag for
VAR is about to change, mark the old one for renaming.
(add_type_alias): New.
* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
(ccp_lattice_t): Rename from latticevalue.
(value): Remove. Update all users.
(const_val): New local variable.
(do_store_ccp): New local variable.
(dump_lattice_value): Handle UNINITIALIZED.
(debug_lattice_value): New.
(get_default_value): Re-write.
(set_lattice_value): Re-write.
(def_to_varying): Remove. Update all users.
(likely_value): Return VARYING for statements that make
stores when STORE_CCP is false.
Return VARYING for any statement other than MODIFY_EXPR,
COND_EXPR and SWITCH_EXPR.
(ccp_initialize): Re-write.
(replace_uses_in, replace_vuse_in, substitute_and_fold):
Move to tree-ssa-propagate.c.
(ccp_lattice_meet): Handle memory stores when
DO_STORE_CCP is true.
(ccp_visit_phi_node): Likewise.
(ccp_fold): Likewise.
(evaluate_stmt): Likewise.
(visit_assignment): Likewise.
(ccp_visit_stmt): Likewise.
(execute_ssa_ccp): Add argument 'store_ccp'. Copy it
into DO_STORE_CCP.
(do_ssa_ccp): New.
(pass_ccp): Use it.
(do_ssa_store_ccp): New.
(gate_store_ccp): New.
(pass_store_ccp): Declare.
* tree-ssa-copy.c: Include tree-ssa-propagate.h.
(may_propagate_copy): Reformat.
Don't abort if ORIG is a virtual and DEST isn't.
If NEW does not have alias information but DEST does,
copy it.
(copy_of, cached_last_copy_of, do_store_copy_prop, enum
copy_prop_kind, which_copy_prop): Declare.
(stmt_may_generate_copy, get_copy_of_val,
get_last_copy_of, set_copy_of_val, dump_copy_of,
copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
copy_prop_visit_stmt, copy_prop_visit_phi_node,
init_copy_prop, fini_copy_prop, execute_copy_prop,
gate_copy_prop, do_copy_prop, gate_store_copy_prop,
store_copy_prop): New.
(pass_copy_prop, pass_store_copy_prop): Declare.
* tree-ssa-dom.c (struct opt_stats_d): Add fields
'num_const_prop' and 'num_copy_prop'.
(cprop_operand): Update them.
(dump_dominator_optimization_stats): Dump them.
(tree_ssa_dominator_optimize): Call update_ssa instead of
rewrite_into_ssa.
(loop_depth_of_name): Declare extern.
(simplify_cond_and_lookup_avail_expr): Guard against NULL
values for LOW or HIGH.
(cprop_into_successor_phis): Only propagate if NEW != ORIG.
(record_equivalences_from_stmt): Call expr_computes_nonzero.
(cprop_operand): Only propagate if VAL != OP.
* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
statement for renaming.
* tree-ssa-loop-im.c (move_computations): Call update_ssa.
* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
add_type_alias if necessary.
Call mark_new_vars_to_rename.
(tree_ssa_iv_optimize): If new symbols need to be renamed,
mark every statement updated, call update_ssa and
rewrite_into_loop_closed_ssa.
* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
from LIVEIN if VAR is a virtual.
* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
(get_call_expr_operands): Reformat statement.
(add_stmt_operand): Don't create V_MAY_DEFs for read-only
symbols.
* tree-ssa-propagate.c (ssa_prop_init): Initialize
SSA_NAME_VALUE for every name.
(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by): New.
(replace_uses_in, replace_vuses_in, replace_phi_args_in,
substitute_and_fold): Move from tree-ssa-ccp.c.
* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
first_vdef, stmt_makes_single_load, stmt_makes_single_store,
get_value_loaded_by, replace_uses_in, substitute_and_fold):
Declare.
* tree-ssa.c (verify_use): Fix error message.
(propagate_into_addr, replace_immediate_uses, get_eq_name,
check_phi_redundancy, kill_redundant_phi_nodes,
pass_redundant_phi): Remove. Update all users.
* tree-vect-transform.c (vect_create_data_ref_ptr): Call
add_type_alias, if necessary.
* tree-vectorizer.h (struct _stmt_vect_info): Update
documentation for field 'memtag'.
* tree-vrp.c: New file.
* tree.def (ASSERT_EXPR): Define.
* tree.h (ASSERT_EXPR_VAR): Define.
(ASSERT_EXPR_COND): Define.
(SSA_NAME_VALUE_RANGE): Define.
(struct tree_ssa_name): Add field 'value_range'.
(PHI_REWRITTEN): Remove.
(struct tree_phi_node): Remove field 'rewritten'.
* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
-ftree-store-copy-prop): Document.
* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
Document usage of update_ssa.
testsuite/ChangeLog
* g++.dg/tree-ssa/pr18178.C: New test.
* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
* gcc.c-torture/execute/20041019-1.c: New test.
* gcc.dg/tree-ssa/20041008-1.c: New test.
* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
* gcc.dg/tree-ssa/20030917-1.c: Likewise.
* gcc.dg/tree-ssa/20030917-3.c: Likewise.
* gcc.dg/tree-ssa/20040721-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
From-SVN: r97884
2005-04-09 01:37:54 +00:00
|
|
|
Perform Value Range Propagation on trees
|
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
funit-at-a-time
|
2008-07-20 16:57:17 +02:00
|
|
|
Common Report Var(flag_unit_at_a_time) Init(1) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Compile whole compilation unit at a time
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
funroll-loops
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unroll_loops) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform loop unrolling when iteration count is known
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
|
|
|
funroll-all-loops
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unroll_all_loops) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform loop unrolling for all loops
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2005-07-21 07:24:34 +00:00
|
|
|
; Nonzero means that loop optimizer may assume that the induction variables
|
|
|
|
; that control loops do not overflow and that the loops with nontrivial
|
|
|
|
; exit condition are not infinite
|
|
|
|
funsafe-loop-optimizations
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unsafe_loop_optimizations) Optimization
|
2005-07-21 07:24:34 +00:00
|
|
|
Allow loop optimizations to assume that the loops behave in normal way
|
|
|
|
|
2007-09-04 12:11:11 +00:00
|
|
|
fassociative-math
|
|
|
|
Common Report Var(flag_associative_math)
|
|
|
|
Allow optimization for floating-point arithmetic which may change the
|
|
|
|
result of the operation due to rounding.
|
|
|
|
|
|
|
|
freciprocal-math
|
|
|
|
Common Report Var(flag_reciprocal_math)
|
|
|
|
Same as -fassociative-math for expressions which include division.
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; Nonzero means that unsafe floating-point math optimizations are allowed
|
|
|
|
; for the sake of speed. IEEE compliance is not guaranteed, and operations
|
|
|
|
; are allowed to assume that their arguments and results are "normal"
|
|
|
|
; (e.g., nonnegative for SQRT).
|
2003-06-22 13:44:40 +00:00
|
|
|
funsafe-math-optimizations
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unsafe_math_optimizations) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Allow math optimizations that may violate IEEE or ISO standards
|
2003-06-22 13:44:40 +00:00
|
|
|
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
funswitch-loops
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unswitch_loops) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Perform loop unswitching
|
Makefile.in: Update.
* Makefile.in: Update.
* common.opt: New switches.
* opts.c: Include diagnostic.h.
(common_handle_option): Handle new switches.
* toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop): Make extern.
(flag_dummy): New.
(f_options): Update to use flag_dummy for moved options.
(decode_f_option): Some switches moved to opts.c.
* toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion,
flag_if_conversion2, flag_delete_null_pointer_checks,
flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops,
flag_tracer, flag_thread_jumps, flag_unroll_loops,
flag_unroll_all_loops, flag_unswitch_loops): New.
f:
* lang.opt: Add -fpreprocessed.
* top.c (ffe_handle_option): Handle it.
From-SVN: r68315
2003-06-21 20:28:18 +00:00
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
funwind-tables
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_unwind_tables) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Just generate unwind tables for exception handling
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2009-10-28 18:40:42 +00:00
|
|
|
fuse-linker-plugin
|
|
|
|
Common Undocumented
|
|
|
|
|
2004-02-06 21:03:45 +01:00
|
|
|
fvar-tracking
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_var_tracking) VarExists Optimization
|
2004-02-06 21:03:45 +01:00
|
|
|
Perform variable tracking
|
|
|
|
|
invoke.texi (-fvar-tracking-assignments): New.
gcc/ChangeLog:
* doc/invoke.texi (-fvar-tracking-assignments): New.
(-fvar-tracking-assignments-toggle): New.
(-fdump-final-insns=file): Mark filename as optional.
(--param min-nondebug-insn-uid): New.
(-gdwarf-@{version}): Mention version 4.
* opts.c (common_handle_option): Accept it.
* tree-vrp.c (find_assert_locations_1): Skip debug stmts.
* regrename.c (regrename_optimize): Drop last. Don't count debug
insns as uses. Don't reject change because of debug insn.
(do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
from the chain starter, and check for inexact matches in
DEBUG_INSNS.
(scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
(build_def_use): Simplify and fix the marking of DEBUG_INSNs.
* sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
* fwprop.c (forward_propagate_and_simplify): ...into debug insns.
* doc/gimple.texi (is_gimple_debug): New.
(gimple_debug_bind_p): New.
(is_gimple_call, gimple_assign_cast_p): End sentence with period.
* doc/install.texi (bootstrap-debug): More details.
(bootstrap-debug-big, bootstrap-debug-lean): Document.
(bootstrap-debug-lib): More details.
(bootstrap-debug-ckovw): Update.
(bootstrap-time): New.
* tree-into-ssa.c (mark_def_sites): Skip debug stmts.
(insert_phi_nodes_for): Insert debug stmts.
(rewrite_stmt): Take iterator. Insert debug stmts.
(rewrite_enter_block): Adjust.
(maybe_replace_use_in_debug_stmt): New.
(rewrite_update_stmt): Use it.
(mark_use_interesting): Return early for debug stmts.
* tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
stmts before replacing stmt.
(move_computations_stmt): Likewise.
* ira-conflicts.c (add_copies): Skip debug insns.
* regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
(regstat_bb_compute_ri): Skip debug insns.
* tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
check_loop_closed_ssa_stmt): Skip debug stmts.
* tree-tailcall.c (find_tail_calls): Likewise.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
* tree.h (MAY_HAVE_DEBUG_STMTS): New.
(build_var_debug_value_stat): Declare.
(build_var_debug_value): Define.
(target_for_debug_bind): Declare.
* reload.c (find_equiv_reg): Skip debug insns.
* rtlanal.c (reg_used_between_p): Skip debug insns.
(side_effects_p): Likewise.
(canonicalize_condition): Likewise.
* ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
insns never depend on debug insns.
(create_ddg_dep_no_link): Likewise.
(add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
Don't add inter-loop dependencies for debug insns.
(build_intra_loop_deps): Likewise.
(create_ddg): Count debug insns.
* ddg.h (struct ddg::num_debug): New.
(num_backargs): Pair up with previous int field.
* diagnostic.c (diagnostic_report_diagnostic): Skip notes on
-fcompare-debug-second.
* final.c (get_attr_length_1): Skip debug insns.
(rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
* gcc.c (invoke_as): Call compare-debug-dump-opt.
(driver_self_specs): Map -fdump-final-insns to
-fdump-final-insns=..
(get_local_tick): New.
(compare_debug_dump_opt_spec_function): Test for . argument and
compute output name. Compute temp output spec without flag name.
Compute -frandom-seed.
(OPT): Undef after use.
* cfgloopanal.c (num_loop_insns): Skip debug insns.
(average_num_loop_insns): Likewise.
* params.h (MIN_NONDEBUG_INSN_UID): New.
* gimple.def (GIMPLE_DEBUG): New.
* ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
* auto-inc-dec.c (merge_in_block): Skip debug insns.
(merge_in_block): Fix whitespace.
* toplev.c (flag_var_tracking): Update comment.
(flag_var_tracking_assignments): New.
(flag_var_tracking_assignments_toggle): New.
(process_options): Don't open final insns dump file if we're not
going to write to it. Compute defaults for var_tracking.
* df-scan.c (df_insn_rescan_debug_internal): New.
(df_uses_record): Handle debug insns.
* haifa-sched.c (ready): Initialize n_debug.
(contributes_to_priority): Skip debug insns.
(dep_list_size): New.
(priority): Use it.
(rank_for_schedule): Likewise. Schedule debug insns as soon as
they're ready. Disregard previous debug insns to make decisions.
(queue_insn): Never queue debug insns.
(ready_add, ready_remove_first, ready_remove): Count debug insns.
(schedule_insn): Don't reject debug insns because of issue rate.
(get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
(queue_to_ready): Skip and discount debug insns.
(choose_ready): Let debug insns through.
(schedule_block): Check boundary debug insns. Discount debug
insns, schedule them early. Adjust whitespace.
(set_priorities): Check for boundary debug insns.
(add_jump_dependencies): Use dep_list_size.
(prev_non_location_insn): New.
(check_cfg): Use it.
* tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
stmts.
(remove_unused_ivs): Reset debug stmts.
* modulo-sched.c (const_iteration_count): Skip debug insns.
(res_MII): Discount debug insns.
(loop_single_full_bb_p): Skip debug insns.
(sms_schedule): Likewise.
(sms_schedule_by_order): Likewise.
(ps_has_conflicts): Likewise.
* caller-save.c (refmarker_fn): New.
(save_call_clobbered_regs): Replace regs with saved mem in
debug insns.
(mark_referenced_regs): Take pointer, mark and arg. Adjust.
Call refmarker_fn mark for hardregnos.
(mark_reg_as_referenced): New.
(replace_reg_with_saved_mem): New.
* ipa-pure-const.c (check_stmt): Skip debug stmts.
* cse.c (cse_insn): Canonicalize debug insns. Skip them when
searching back.
(cse_extended_basic_block): Skip debug insns.
(count_reg_usage): Likewise.
(is_dead_reg): New, split out of...
(set_live_p): ... here.
(insn_live_p): Use it for debug insns.
* tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
(execute_optimize_stdarg): Likewise.
* tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
* tree-ssa-propagate.c (substitute_and_fold): Don't regard
changes in debug stmts as changes.
* sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
(moveup_expr): Don't move across debug insns. Don't move
debug insn if it would create a bookkeeping block.
(moveup_expr_cached): Don't use cache for debug insns that
are heads of blocks.
(compute_av_set_inside_bb): Skip debug insns.
(sel_rank_for_schedule): Schedule debug insns first. Remove
dead code.
(block_valid_for_bookkeeping_p); Support lax searches.
(create_block_for_bookkeeping): Adjust block numbers when
encountering debug-only blocks.
(find_place_for_bookkeeping): Deal with debug-only blocks.
(generate_bookkeeping_insn): Accept no place to insert.
(remove_temp_moveop_nops): New argument full_tidying.
(prepare_place_to_insert): Deal with debug insns.
(advance_state_on_fence): Debug insns don't start cycles.
(update_boundaries): Take fence as argument. Deal with
debug insns.
(schedule_expr_on_boundary): No full_tidying on debug insns.
(fill_insns): Deal with debug insns.
(track_scheduled_insns_and_blocks): Don't count debug insns.
(need_nop_to_preserve_insn_bb): New, split out of...
(remove_insn_from_stream): ... this.
(fur_orig_expr_not_found): Skip debug insns.
* rtl.def (VALUE): Move up.
(DEBUG_INSN): New.
* tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug
stmts.
(nearest_common_dominator_of_uses): Take debug_stmts argument.
Set it if debug stmts are found.
(statement_sink_location): Skip debug stmts. Propagate
moving defs into debug stmts.
* ifcvt.c (first_active_insn): Skip debug insns.
(last_active_insns): Likewise.
(cond_exec_process_insns): Likewise.
(noce_process_if_block): Likewise.
(check_cond_move_block): Likewise.
(cond_move_convert_if_block): Likewise.
(block_jumps_and_fallthru_p): Likewise.
(dead_or_predicable): Likewise.
* dwarf2out.c (debug_str_hash_forced): New.
(find_AT_string): Add comment.
(gen_label_for_indirect_string): New.
(get_debug_string_label): New.
(AT_string_form): Use it.
(mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
several operations that cannot be represented with DWARF opcodes.
(loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
(dwarf2out_var_location): Take during-call mark into account.
(output_indirect_string): Update comment. Output if there are
label and references.
(prune_indirect_string): New.
(prune_unused_types): Call it if debug_str_hash_forced.
More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
(dw_long_long_const): Remove.
(struct dw_val_struct): Change val_long_long type to rtx.
(print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
(output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
component instead of HOST_BITS_PER_LONG.
(output_loc_operands): Likewise. For const8* assert
HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
(output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
rather than HOST_BITS_PER_LONG is >= 64.
(add_AT_long_long): Remove val_hi and val_lo arguments, add
val_const_double.
(size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
HOST_BITS_PER_LONG for dw_val_class_long_long.
(add_const_value_attribute): Adjust add_AT_long_long caller. Don't
handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
(dwarf_stack_op_name): Handle DW_OP_implicit_value and
DW_OP_stack_value.
(size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
Handle DW_OP_implicit_value.
(extract_int): Move prototype earlier.
(mem_loc_descriptor): For SUBREG punt if inner
mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
(loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
instead of Pmode size.
(loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
(concat_loc_descriptor, concatn_loc_descriptor,
loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
(add_location_or_const_value_attribute): Likewise. For single
location loc_lists attempt to use add_const_value_attribute
for constant decls. Add DW_AT_const_value even if
NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
in its expression.
* cfgbuild.c (inside_basic_block_p): Handle debug insns.
(control_flow_insn_p): Likewise.
* tree-parloops.c (eliminate_local_variables_stmt): Handle debug
stmt.
(separate_decls_in_region_debug_bind): New.
(separate_decls_in_region): Process debug bind stmts afterwards.
* recog.c (verify_changes): Handle debug insns.
(extract_insn): Likewise.
(peephole2_optimize): Skip debug insns.
* dse.c (scan_insn): Skip debug insns.
* sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
Pass it on.
(setup_id_for_insn): Handle debug insns.
(maybe_tidy_empty_bb): Adjust whitespace.
(tidy_control_flow): Skip debug insns.
(sel_remove_insn): Adjust for debug insns.
(sel_estimate_number_of_insns): Skip debug insns.
(create_insn_rtx_from_pattern): Handle debug insns.
(create_copy_of_insn_rtx): Likewise.
* sel-sched-.h (sel_bb_end): Declare.
(sel_bb_empty_or_nop_p): New.
(get_all_loop_exits): Use it.
(_eligible_successor_edge_p): Likewise.
(return_nop_to_pool): Adjust.
* tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
* ira-lives.c (process_bb_node_lives): Skip debug insns.
* gimple-pretty-print.c (dump_gimple_debug): New.
(dump_gimple_stmt): Use it.
(dump_bb_header): Skip gimple debug stmts.
* regmove.c (optimize_reg_copy_1): Discount debug insns.
(fixup_match_2): Likewise.
(regmove_backward_pass): Likewise. Simplify combined
replacement. Handle debug insns.
* function.c (instantiate_virtual_regs): Handle debug insns.
* function.h (struct emit_status): Add x_cur_debug_insn_uid.
* print-rtl.h: Include cselib.h.
(print_rtx): Print VALUEs. Split out and recurse for
VAR_LOCATIONs.
* df.h (df_inns_rescan_debug_internal): Declare.
* gcse.c (alloc_hash_table): Estimate n_insns.
(cprop_insn): Don't regard debug insns as changes.
(bypass_conditional_jumps): Skip debug insns.
(one_pre_gcse_pass): Adjust.
(one_code_hoisting_pass): Likewise.
(compute_ld_motion_mems): Skip debug insns.
(one_cprop_pass): Adjust.
* tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
(if_convertible_stmt_p): Handle debug stmts.
* init-regs.c (initialize_uninitialized_regs): Skip debug insns.
* tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
* ira-build.c (create_bb_allocnos): Skip debug insns.
* tree-flow-inline.h (has_zero_uses): Discount debug stmts.
(has_single_use): Likewise.
(single_imm_use): Likewise.
(num_imm_uses): Likewise.
* tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
(create_outofssa_var_map): Likewise.
* lower-subreg.c (adjust_decomposed_uses): New.
(resolve_debug): New.
(decompose_multiword_subregs): Use it.
* tree-dfa.c (find_referenced_vars): Skip debug stmts.
* emit-rtl.c: Include params.h.
(cur_debug_insn_uid): Define.
(set_new_first_and_last_insn): Set cur_debug_insn_uid too.
(copy_rtx_if_shared_1): Handle debug insns.
(reset_used_flags): Likewise.
(set_used_flags): LIkewise.
(get_max_insn_count): New.
(next_nondebug_insn): New.
(prev_nondebug_insn): New.
(make_debug_insn_raw): New.
(emit_insn_before_noloc): Handle debug insns.
(emit_jump_insn_before_noloc): Likewise.
(emit_call_insn_before_noloc): Likewise.
(emit_debug_insn_before_noloc): New.
(emit_insn_after_noloc): Handle debug insns.
(emit_jump_insn_after_noloc): Likewise.
(emit_call_insn_after_noloc): Likewise.
(emit_debug_insn_after_noloc): Likewise.
(emit_insn_after): Take loc from earlier non-debug insn.
(emit_jump_insn_after): Likewise.
(emit_call_insn_after): Likewise.
(emit_debug_insn_after_setloc): New.
(emit_debug_insn_after): New.
(emit_insn_before): Take loc from later non-debug insn.
(emit_jump_insn_before): Likewise.
(emit_call_insn_before): Likewise.
(emit_debug_insn_before_setloc): New.
(emit_debug_insn_before): New.
(emit_insn): Handle debug insns.
(emit_debug_insn): New.
(emit_jump_insn): Handle debug insns.
(emit_call_insn): Likewise.
(emit): Likewise.
(init_emit): Take min-nondebug-insn-uid into account.
Initialize cur_debug_insn_uid.
(emit_copy_of_insn_after): Handle debug insns.
* cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
location of single rhs in place.
(maybe_dump_rtl_for_gimple_stmt): Dump lineno.
(floor_sdiv_adjust): New.
(cell_sdiv_adjust): New.
(cell_udiv_adjust): New.
(round_sdiv_adjust): New.
(round_udiv_adjust): New.
(wrap_constant): Moved from cselib.
(unwrap_constant): New.
(expand_debug_expr): New.
(expand_debug_locations): New.
(expand_gimple_basic_block): Drop hiding redeclaration. Expand
debug bind stmts.
(gimple_expand_cfg): Expand debug locations.
* cselib.c: Include tree-pass.h.
(struct expand_value_data): New.
(cselib_record_sets_hook): New.
(PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
(cselib_clear_table): Move, and implemnet in terms of...
(cselib_reset_table_with_next_value): ... this.
(cselib_get_next_unknown_value): New.
(discard_useless_locs): Don't discard preserved values.
(cselib_preserve_value): New.
(cselib_preserved_value_p): New.
(cselib_preserve_definitely): New.
(cselib_clear_preserve): New.
(cselib_preserve_only_values): New.
(new_cselib_val): Take rtx argument. Dump it in details.
(cselib_lookup_mem): Adjust.
(expand_loc): Take regs_active in struct. Adjust. Silence
dumps unless details are requested.
(cselib_expand_value_rtx_cb): New.
(cselib_expand_value_rtx): Rename and reimplment in terms of...
(cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
without details. Copy more subregs. Try to resolve values
using a callback. Wrap constants.
(cselib_subst_to_values): Adjust.
(cselib_log_lookup): New.
(cselib_lookup): Call it.
(cselib_invalidate_regno): Don't count preserved values as
useless.
(cselib_invalidate_mem): Likewise.
(cselib_record_set): Likewise.
(struct set): Renamed to cselib_set, moved to cselib.h.
(cselib_record_sets): Adjust. Call hook.
(cselib_process_insn): Reset table when it would be cleared.
(dump_cselib_val): New.
(dump_cselib_table): New.
* tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
(remove_forwarder_block): Support moving debug stmts.
* cselib.h (cselib_record_sets_hook): Declare.
(cselib_expand_callback): New type.
(cselib_expand_value_rtx_cb): Declare.
(cselib_reset_table_with_next_value): Declare.
(cselib_get_next_unknown_value): Declare.
(cselib_preserve_value): Declare.
(cselib_preserved_value_p): Declare.
(cselib_preserve_only_values): Declare.
(dump_cselib_table): Declare.
* cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
(try_crossjump_to_edge): Likewise.
(delete_unreachable_blocks): Remove dominant GIMPLE blocks after
dominated blocks when debug stmts are present.
* simplify-rtx.c (delegitimize_mem_from_attrs): New.
* tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
(set_var_live_on_entry): Likewise.
* loop-invariant.c (find_invariants_bb): Skip debug insns.
* cfglayout.c (curr_location, last_location): Make static.
(set_curr_insn_source_location): Don't avoid bouncing.
(get_curr_insn_source_location): New.
(get_curr_insn_block): New.
(duplicate_insn_chain): Handle debug insns.
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
into debug stmts.
* common.opt (fcompare-debug): Move to sort order.
(fdump-unnumbered-links): Likewise.
(fvar-tracking-assignments): New.
(fvar-tracking-assignments-toggle): New.
* tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
because of debug stmts.
(mark_stmt_if_obviously_necessary): Mark debug stmts.
(eliminate_unnecessary_stmts): Walk dominated blocks before
dominators.
* tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
* ira.c (memref_used_between_p): Skip debug insns.
(update_equiv_regs): Likewise.
* sched-deps.c (sd_lists_size): Accept empty list.
(sd_init_insn): Mark debug insns.
(sd_finish_insn): Unmark them.
(sd_add_dep): Reject non-debug deps on debug insns.
(fixup_sched_groups): Give debug insns group treatment.
Skip debug insns.
(sched_analyze_reg): Don't mark debug insns for sched before call.
(sched_analyze_2): Handle debug insns.
(sched_analyze_insn): Compute next non-debug insn. Handle debug
insns.
(deps_analyze_insn): Handle debug insns.
(deps_start_bb): Skip debug insns.
(init_deps): Initialize last_debug_insn.
* tree-ssa.c (target_for_debug_bind): New.
(find_released_ssa_name): New.
(propagate_var_def_into_debug_stmts): New.
(propagate_defs_into_debug_stmts): New.
(verify_ssa): Skip debug bind stmts without values.
(warn_uninialized_vars): Skip debug stmts.
* target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
* rtl.c (rtx_equal_p_cb): Handle VALUEs.
(rtx_equal_p): Likewise.
* ira-costs.c (scan_one_insn): Skip debug insns.
(process_bb_node_for_hard_reg_moves): Likewise.
* rtl.h (DEBUG_INSN_P): New.
(NONDEBUG_INSN_P): New.
(MAY_HAVE_DEBUG_INSNS): New.
(INSN_P): Accept debug insns.
(RTX_FRAME_RELATED_P): Likewise.
(INSN_DELETED_P): Likewise
(PAT_VAR_LOCATION_DECL): New.
(PAT_VAR_LOCATION_LOC): New.
(PAT_VAR_OCATION_STATUS): New.
(NOTE_VAR_LOCATION_DECL): Reimplement.
(NOTE_VAR_LOCATION_LOC): Likewise.
(NOTE_VAR_LOCATION_STATUS): Likewise.
(INSN_VAR_LOCATION): New.
(INSN_VAR_LOCATION_DECL): New.
(INSN_VAR_LOCATION_LOC): New.
(INSN_VAR_LOCATION_STATUS): New.
(gen_rtx_UNKNOWN_VAR_LOC): New.
(VAR_LOC_UNKNOWN_P): New.
(NOTE_DURING_CALL_P): New.
(SCHED_GROUP_P): Accept debug insns.
(emit_debug_insn_before): Declare.
(emit_debug_insn_before_noloc): Declare.
(emit_debug_insn_beore_setloc): Declare.
(emit_debug_insn_after): Declare.
(emit_debug_insn_after_noloc): Declare.
(emit_debug_insn_after_setloc): Declare.
(emit_debug_insn): Declare.
(make_debug_insn_raw): Declare.
(prev_nondebug_insn): Declare.
(next_nondebug_insn): Declare.
(delegitimize_mem_from_attrs): Declare.
(get_max_insn_count): Declare.
(wrap_constant): Declare.
(unwrap_constant): Declare.
(get_curr_insn_source_location): Declare.
(get_curr_insn_block): Declare.
* tree-inline.c (insert_debug_decl_map): New.
(processing_debug_stmt): New.
(remap_decl): Don't create new mappings in debug stmts.
(remap_gimple_op_r): Don't add references in debug stmts.
(copy_tree_body_r): Likewise.
(remap_gimple_stmt): Handle debug bind stmts.
(copy_bb): Skip debug stmts.
(copy_edges_for_bb): Likewise.
(copy_debug_stmt): New.
(copy_debug_stmts): New.
(copy_body): Copy debug stmts at the end.
(insert_init_debug_bind): New.
(insert_init_stmt): Take id. Skip and emit debug stmts.
(setup_one_parameter): Remap variable earlier, register debug
mapping.
(estimate_num_insns): Skip debug stmts.
(expand_call_inline): Preserve debug_map.
(optimize_inline_calls): Check for no debug_stmts left-overs.
(unsave_expr_now): Preserve debug_map.
(copy_gimple_seq_and_replace_locals): Likewise.
(tree_function_versioning): Check for no debug_stmts left-overs.
Init and destroy debug_map as needed. Split edges unconditionally.
(build_duplicate_type): Init and destroy debug_map as needed.
* tree-inline.h: Include gimple.h instead of pointer-set.h.
(struct copy_body_data): Add debug_stmts and debug_map.
* sched-int.h (struct ready_list): Add n_debug.
(struct deps): Add last_debug_insn.
(DEBUG_INSN_SCHED_P): New.
(BOUNDARY_DEBUG_INSN_P): New.
(SCHEDULE_DEBUG_INSN_P): New.
(sd_iterator_cond): Accept empty list.
* combine.c (create_log_links): Skip debug insns.
(combine_instructions): Likewise.
(cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
return value is always unshared.
(struct rtx_subst_pair): New.
(auto_adjust_pair): New.
(propagate_for_debug_subst): New.
(propagate_for_debug): New.
(try_combine): Skip debug insns. Propagate removed defs into
debug insns.
(next_nonnote_nondebug_insn): New.
(distribute_notes): Use it. Skip debug insns.
(distribute_links): Skip debug insns.
* tree-outof-ssa.c (set_location_for_edge): Likewise.
* resource.c (mark_target_live_regs): Likewise.
* var-tracking.c: Include cselib.h and target.h.
(enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
MO_VAL_SET.
(micro_operation_type_name): New.
(enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
(struct micro_operation_def): Update comments.
(decl_or_value): New type. Use instead of decls.
(struct emit_note_data_def): Add vars.
(struct attrs_def): Use decl_or_value.
(struct variable_tracking_info_def): Add permp, flooded.
(struct location_chain_def): Update comment.
(struct variable_part_def): Use decl_or_value.
(struct variable_def): Make var_part a variable length array.
(valvar_pool): New.
(scratch_regs): New.
(cselib_hook_called): New.
(dv_is_decl_p): New.
(dv_is_value_p): New.
(dv_as_decl): New.
(dv_as_value): New.
(dv_as_opaque): New.
(dv_onepart_p): New.
(dv_pool): New.
(IS_DECL_CODE): New.
(check_value_is_not_decl): New.
(dv_from_decl): New.
(dv_from_value): New.
(dv_htab_hash): New.
(variable_htab_hash): Use it.
(variable_htab_eq): Support values.
(variable_htab_free): Free from the right pool.
(attrs_list_member, attrs_list_insert): Use decl_or_value.
(attrs_list_union): Adjust.
(attrs_list_mpdv_union): New.
(tie_break_pointers): New.
(canon_value_cmp): New.
(unshare_variable): Return possibly-modified slot.
(vars_copy_1): Adjust.
(var_reg_decl_set): Adjust. Split out of...
(var_reg_set): ... this.
(get_init_value): Adjust.
(var_reg_delete_and_set): Adjust.
(var_reg_delete): Adjust.
(var_regno_delete): Adjust.
(var_mem_decl_set): Split out of...
(var_mem_set): ... this.
(var_mem_delete_and_set): Adjust.
(var_mem_delete): Adjust.
(val_store): New.
(val_reset): New.
(val_resolve): New.
(variable_union): Adjust. Speed up merge of 1-part vars.
(variable_canonicalize): Use unshared slot.
(VALUED_RECURSED_INTO): New.
(find_loc_in_1pdv): New.
(struct dfset_merge): New.
(insert_into_intersection): New.
(intersect_loc_chains): New.
(loc_cmp): New.
(canonicalize_loc_order_check): New.
(canonicalize_values_mark): New.
(canonicalize_values_star): New.
(variable_merge_over_cur): New.
(variable_merge_over_src): New.
(dataflow_set_merge): New.
(dataflow_set_equiv_regs): New.
(remove_duplicate_values): New.
(struct dfset_post_merge): New.
(variable_post_merge_new_vals): New.
(variable_post_merge_perm_vals): New.
(dataflow_post_merge_adjust): New.
(find_mem_expr_in_1pdv): New.
(dataflow_set_preserve_mem_locs): New.
(dataflow_set_remove_mem_locs): New.
(dataflow_set_clear_at_call): New.
(onepart_variable_different_p): New.
(variable_different_p): Use it.
(dataflow_set_different_1): Adjust. Make detailed dump
more verbose.
(track_expr_p): Add need_rtl parameter. Don't generate rtl
if not needed.
(track_loc_p): Pass it true.
(struct count_use_info): New.
(find_use_val): New.
(replace_expr_with_values): New.
(log_op_type): New.
(use_type): New, partially split out of...
(count_uses): ... this. Count new micro-ops.
(count_uses_1): Adjust.
(count_stores): Adjust.
(count_with_sets): New.
(VAL_NEEDS_RESOLUTION): New.
(VAL_HOLDS_TRACK_EXPR): New.
(VAL_EXPR_IS_COPIED): New.
(VAL_EXPR_IS_CLOBBERED): New.
(add_uses): Adjust. Generate new micro-ops.
(add_uses_1): Adjust.
(add_stores): Generate new micro-ops.
(add_with_sets): New.
(find_src_status): Adjust.
(find_src_set_src): Adjust.
(compute_bb_dataflow): Use dataflow_set_clear_at_call.
Handle new micro-ops. Canonicalize value equivalances.
(vt_find_locations): Compute total size of hash tables for
dumping. Perform merge for var-tracking-assignments. Don't
disregard single-block loops.
(dump_attrs_list): Handle decl_or_value.
(dump_variable): Take variable. Deal with decl_or_value.
(dump_variable_slot): New.
(dump_vars): Use it.
(dump_dataflow_sets): Adjust.
(set_slot_part): New, extended to support one-part variables
after splitting out of...
(set_variable_part): ... this.
(clobber_slot_part): New, split out of...
(clobber_variable_part): ... this.
(delete_slot_part): New, split out of...
(delete_variable_part): .... this.
(check_wrap_constant): New.
(vt_expand_loc_callback): New.
(vt_expand_loc): New.
(emit_note_insn_var_location): Adjust. Handle values. Handle
EMIT_NOTE_AFTER_CALL_INSN.
(emit_notes_for_differences_1): Adjust. Handle values.
(emit_notes_for_differences_2): Likewise.
(emit_notes_for_differences): Adjust.
(emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN
notes. Adjust. Handle new micro-ops.
(vt_add_function_parameters): Adjust. Create and bind values.
(vt_initialize): Adjust. Initialize scratch_regs and
valvar_pool, flooded and perm.. Initialize and use cselib. Log
operations. Move some code to count_with_sets and add_with_sets.
(delete_debug_insns): New.
(vt_debug_insns_local): New.
(vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
cselib.
(var_tracking_main): If var-tracking-assignments is enabled
but var-tracking isn't, delete debug insns and leave. Likewise
if we exceed limits or fail the stack adjustments tests, and
after all var-tracking processing.
More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
(dataflow_set): Add traversed_vars.
(value_chain, const_value_chain): New typedefs.
(value_chain_pool, value_chains): New variables.
(value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
add_value_chains, add_cselib_value_chains, remove_value_chain,
remove_value_chains, remove_cselib_value_chains): New functions.
(shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
static inlines.
(shared_hash_find_slot_unshare, shared_hash_find_slot,
shared_hash_find_slot_noinsert, shared_hash_find): Update.
(dst_can_be_shared): New variable.
(unshare_variable): Unshare set->vars if shared, use shared_hash_*.
Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
different from set->vars, look up slot again instead of using the
passed in slot.
(dataflow_set_init): Initialize traversed_vars.
(variable_union): Use shared_hash_*. Use initially NO_INSERT
lookup if set->vars is shared. Don't keep slot cleared before
calling unshare_variable. Unshare set->vars if needed. Adjust
unshare_variable callers. Clear dst_can_be_shared if needed.
Even ->refcount == 1 vars must be unshared if set->vars is shared
and var needs to be modified.
(dataflow_set_union): Set traversed_vars during canonicalization.
(VALUE_CHANGED, DECL_CHANGED): Define.
(set_dv_changed, dv_changed_p): New static inlines.
(track_expr_p): Clear DECL_CHANGED.
(dump_dataflow_sets): Set it.
(variable_was_changed): Call set_dv_changed.
(emit_note_insn_var_location): Likewise.
(changed_variables_stack): New variable.
(check_changed_vars_1, check_changed_vars_2): New functions.
(emit_notes_for_changes): Do nothing if changed_variables is
empty. Traverse changed_variables with check_changed_vars_1,
call check_changed_vars_2 on each changed_variables_stack entry.
(emit_notes_in_bb): Add SET argument. Just clear it at the
beginning, use it instead of local &set, don't destroy it at the
end.
(vt_emit_notes): Call dataflow_set_clear early on all
VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
computed set, dataflow_set_clear also VTI(bb)->in when we are
done with the basic block. Initialize changed_variables_stack,
free it afterwards. If ENABLE_CHECKING verify that after noting
differences to an empty set value_chains hash table is empty.
(vt_initialize): Initialize value_chains and value_chain_pool.
(vt_finalize): Delete value_chains htab, free value_chain_pool.
(variable_tracking_main): Call dump_dataflow_sets before calling
vt_emit_notes, not after it.
* tree-flow.h (propagate_defs_into_debug_stmts): Declare.
(propagate_var_def_into_debug_stmts): Declare.
* df-problems.c (df_lr_bb_local_compute): Skip debug insns.
(df_set_note): Reject debug insns.
(df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
add notes to debug insns.
(df_note_bb_compute): Adjust. Likewise.
(df_simulate_uses): Skip debug insns.
(df_simulate_initialize_backwards): Likewise.
* reg-stack.c (subst_stack_regs_in_debug_insn): New.
(subst_stack_regs_pat): Reject debug insns.
(convert_regs_1): Handle debug insns.
* Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
(print-rtl.o): Depend on cselib.h.
(cselib.o): Depend on TREE_PASS_H.
(var-tracking.o): Depend on cselib.h and TARGET_H.
* sched-rgn.c (rgn_estimate_number_of_insns): Discount
debug insns.
(init_ready_list): Skip boundary debug insns.
(add_branch_dependences): Skip debug insns.
(free_block_dependencies): Check for blocks with only debug
insns.
(compute_priorities): Likewise.
* gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
(gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
all callers.
(gimple_build_debug_bind_stat): New.
(empty_body_p): Skip debug stmts.
(gimple_has_side_effects): Likewise.
(gimple_rhs_has_side_effects): Likewise.
* gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
(gimple_build_debug_bind_stat): Declare.
(gimple_build_debug_bind): Define.
(is_gimple_debug): New.
(gimple_debug_bind_p): New.
(gimple_debug_bind_get_var): New.
(gimple_debug_bind_get_value): New.
(gimple_debug_bind_get_value_ptr): New.
(gimple_debug_bind_set_var): New.
(gimple_debug_bind_set_value): New.
(GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
(gimple_debug_bind_reset_value): New.
(gimple_debug_bind_has_value_p): New.
(gsi_next_nondebug): New.
(gsi_prev_nondebug): New.
(gsi_start_nondebug_bb): New.
(gsi_last_nondebug_bb): New.
* sched-vis.c (print_pattern): Handle VAR_LOCATION.
(print_insn): Handle DEBUG_INSN.
* tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
of first insn prevail.
(first_stmt): Skip debug stmts.
(first_non_label_stmt): Likewise.
(last_stmt): Likewise.
(has_zero_uses_1): New.
(single_imm_use_1): New.
(verify_gimple_debug): New.
(verify_types_in_gimple_stmt): Handle debug stmts.
(verify_stmt): Likewise.
(debug_loop_num): Skip debug stmts.
(remove_edge_and_dominated_blocks): Remove dominators last.
* tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into
debug stmts.
(linearize_expr): Likewise.
* config/i386/i386.c (ix86_delegitimize_address): Call
default implementation.
* config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug
insns.
(group_barrier_needed): Skip debug insns.
(emit_insn_group_barriers): Likewise.
(emit_all_insn_group_barriers): Likewise.
(ia64_variable_issue): Handle debug insns.
(ia64_dfa_new_cycle): Likewise.
(final_emit_insn_group_barriers): Skip debug insns.
(ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
def cfa without frame.
(process_set): Likewise.
(process_for_unwind_directive): Pass frame on.
* config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
(rs6000_delegitimize_address): New.
(rs6000_debug_adjust_cost): Handle debug insns.
(is_microcoded_insn): Likewise.
(is_cracked_insn): Likewise.
(is_nonpipeline_insn): Likewise.
(insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Likewise.
* cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
contains only debug insns.
(rtl_merge_blocks): Skip debug insns.
(purge_dead_edges): Likewise.
(rtl_block_ends_with_call_p): Skip debug insns.
* dce.c (deletable_insn_p): Handle VAR_LOCATION.
(mark_reg_dependencies): Skip debug insns.
* params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
* tree-ssanames.c (release_ssa_name): Propagate def into
debug stmts.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts): Skip debug stmts.
* regcprop.c (replace_oldest_value_addr): Skip debug insns.
(replace_oldest_value_mem): Use ALL_REGS for debug insns.
(copyprop_hardreg_forward_1): Handle debug insns.
* reload1.c (reload): Skip debug insns. Replace unassigned
pseudos in debug insns with their equivalences.
(eliminate_regs_in_insn): Skip debug insns.
(emit_input_reload_insns): Skip debug insns at first, adjust
them later.
* tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
(get_indirect_ref_operands): Pass opf_no_vops on.
(get_expr_operands): Likewise. Skip debug stmts.
(parse_ssa_operands): Scan debug insns with opf_no_vops.
gcc/testsuite/ChangeLog:
* gcc.dg/guality/guality.c: New.
* gcc.dg/guality/guality.h: New.
* gcc.dg/guality/guality.exp: New.
* gcc.dg/guality/example.c: New.
* lib/gcc-dg.exp (cleanup-dump): Remove .gk files.
(cleanup-saved-temps): Likewise, .gkd files too.
gcc/cp/ChangeLog:
* cp-tree.h (TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS): New.
* cp-lang.c (cxx_dwarf_name): Pass it.
* error.c (count_non_default_template_args): Take flags as
argument. Adjust all callers. Skip counting of default
arguments if the new flag is given.
ChangeLog:
* Makefile.tpl (BUILD_CONFIG): Default to bootstrap-debug.
* Makefile.in: Rebuilt.
contrib/ChangeLog:
* compare-debug: Look for .gkd files and compare them.
config/ChangeLog:
* bootstrap-debug.mk: Add comments.
* bootstrap-debug-big.mk: New.
* bootstrap-debug-lean.mk: New.
* bootstrap-debug-ckovw.mk: Add comments.
* bootstrap-debug-lib.mk: Drop CFLAGS for stages. Use -g0
for TFLAGS in stage1. Drop -fvar-tracking-assignments-toggle.
From-SVN: r151312
2009-09-02 02:42:21 +00:00
|
|
|
fvar-tracking-assignments
|
|
|
|
Common Report Var(flag_var_tracking_assignments) VarExists Optimization
|
|
|
|
Perform variable tracking by annotating assignments
|
|
|
|
|
|
|
|
fvar-tracking-assignments-toggle
|
|
|
|
Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
|
|
|
|
Toggle -fvar-tracking-assignments
|
|
|
|
|
2007-07-13 23:11:15 +00:00
|
|
|
fvar-tracking-uninit
|
|
|
|
Common Report Var(flag_var_tracking_uninit) Optimization
|
|
|
|
Perform variable tracking and also tag variables that are uninitialized
|
|
|
|
|
2004-08-17 16:17:14 +00:00
|
|
|
ftree-vectorize
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_vectorize) Optimization
|
2004-08-17 16:17:14 +00:00
|
|
|
Enable loop vectorization on trees
|
|
|
|
|
passes.texi (Tree-SSA passes): Document SLP pass.
* doc/passes.texi (Tree-SSA passes): Document SLP pass.
* tree-pass.h (pass_slp_vectorize): New pass.
* params.h (SLP_MAX_INSNS_IN_BB): Define.
* timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
* tree-vectorizer.c (timevar.h): Include.
(user_vect_verbosity_level): Declare.
(vect_location): Fix comment.
(vect_set_verbosity_level): Update user_vect_verbosity_level
instead of vect_verbosity_level.
(vect_set_dump_settings): Add an argument. Ignore user defined
verbosity if dump flags require higher level of verbosity. Print to
stderr only for loop vectorization.
(vectorize_loops): Update call to vect_set_dump_settings.
(execute_vect_slp): New function.
(gate_vect_slp): Likewise.
(struct gimple_opt_pass pass_slp_vectorize): New.
* tree-vectorizer.h (struct _bb_vec_info): Define along macros to
access its members.
(vec_info_for_bb): New function.
(struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
(VECTORIZATION_ENABLED): New macro.
(SLP_ENABLED, SLP_DISABLED): Likewise.
(vect_is_simple_use): Add bb_vec_info argument.
(new_stmt_vec_info, vect_analyze_data_ref_dependences,
vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
vect_analyze_data_ref_accesses, vect_analyze_data_refs,
vect_schedule_slp, vect_analyze_slp): Likewise.
(vect_analyze_stmt): Add slp_tree argument.
(find_bb_location): Declare.
(vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
* tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
(vect_analyze_loop_operations, vect_analyze_loop,
get_initial_def_for_induction, vect_create_epilog_for_reduction,
vect_finalize_reduction, vectorizable_reduction,
vectorizable_live_operation, vect_transform_loop): Likewise.
* tree-data-ref.c (dr_analyze_innermost): Update comment,
skip evolution analysis if analyzing a basic block.
(dr_analyze_indices): Likewise.
(initialize_data_dependence_relation): Skip the test whether the
object is invariant for basic blocks.
(compute_all_dependences): Skip dependence analysis for data
references in basic blocks.
(find_data_references_in_stmt): Don't fail in case of invariant
access in basic block.
(find_data_references_in_bb): New function.
(find_data_references_in_loop): Move code to
find_data_references_in_bb and add a call to it.
(compute_data_dependences_for_bb): New function.
* tree-data-ref.h (compute_data_dependences_for_bb): Declare.
* tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
that STEP is 0.
(vect_analyze_data_ref_dependence): Check for interleaving in case of
unknown dependence in basic block and fail in case of dependence in
basic block.
(vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
dependence instances from either loop or basic block vectorization
info.
(vect_compute_data_ref_alignment): Check if it is loop vectorization
before calling nested_in_vect_loop_p.
(vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
dependence instances from either loop or basic block vectorization
info.
(vect_verify_datarefs_alignment): Likewise.
(vect_enhance_data_refs_alignment): Adjust function calls.
(vect_analyze_data_refs_alignment): Likewise.
(vect_analyze_group_access): Fix printing. Skip different checks if
DR_STEP is 0. Keep strided stores either in loop or basic block
vectorization data structure. Fix indentation.
(vect_analyze_data_ref_access): Fix comments, allow zero step in
basic blocks.
(vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
dependence instances from either loop or basic block vectorization
info.
(vect_analyze_data_refs): Update comment. Call
compute_data_dependences_for_bb to analyze basic blocks.
(vect_create_addr_base_for_vector_ref): Check for outer loop only in
case of loop vectorization. In case of basic block vectorization use
data-ref itself as a base.
(vect_create_data_ref_ptr): In case of basic block vectorization:
don't advance the pointer, add new statements before the current
statement. Adjust function calls.
(vect_supportable_dr_alignment): Support only aligned accesses in
basic block vectorization.
* common.opt (ftree-slp-vectorize): New flag.
* tree-vect-patterns.c (widened_name_p): Adjust function calls.
(vect_pattern_recog_1): Likewise.
* tree-vect-stmts.c (process_use): Likewise.
(vect_init_vector): Add new statements in the beginning of the basic
block in case of basic block SLP.
(vect_get_vec_def_for_operand): Adjust function calls.
(vect_finish_stmt_generation): Likewise.
(vectorizable_call): Add assert that it is loop vectorization, adjust
function calls.
(vectorizable_conversion, vectorizable_assignment): Likewise.
(vectorizable_operation): In case of basic block SLP, take
vectorization factor from statement's type and skip the relevance
check. Adjust function calls.
(vectorizable_type_demotion): Add assert that it is loop
vectorization, adjust function calls.
(vectorizable_type_promotion): Likewise.
(vectorizable_store): Check for outer loop only in case of loop
vectorization. Adjust function calls. For basic blocks, skip the
relevance check and don't advance pointers.
(vectorizable_load): Likewise.
(vectorizable_condition): Add assert that it is loop vectorization,
adjust function calls.
(vect_analyze_stmt): Add argument. In case of basic block SLP, check
that it is not reduction, get vector type, call only supported
functions, skip loop specific parts.
(vect_transform_stmt): Check for outer loop only in case of loop
vectorization.
(new_stmt_vec_info): Add new argument and initialize bb_vinfo.
(vect_is_simple_use): Fix comment, add new argument, fix conditions
for external definition.
* passes.c (pass_slp_vectorize): New pass.
* tree-vect-slp.c (find_bb_location): New function.
(vect_get_and_check_slp_defs): Add argument, adjust function calls,
check for patterns only in loops.
(vect_build_slp_tree): Add argument, adjust function calls, fail in
case of multiple types in basic block SLP.
(vect_mark_slp_stmts_relevant): New function.
(vect_supported_load_permutation_p): Fix comment.
(vect_analyze_slp_instance): Add argument. In case of basic block
SLP, take vectorization factor from statement's type, check that
unrolling factor is 1. Adjust function call. Save SLP instance in
either loop or basic block vectorization structure. Return FALSE,
if SLP failed.
(vect_analyze_slp): Add argument. Get strided stores groups from
either loop or basic block vectorization structure. Return FALSE
if basic block SLP failed.
(new_bb_vec_info): New function.
(destroy_bb_vec_info, vect_slp_analyze_node_operations,
vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
(vect_schedule_slp): Add argument. Get SLP instances from either
loop or basic block vectorization structure. Set vectorization factor
to be 1 for basic block SLP.
(vect_slp_transform_bb): New function.
* params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
From-SVN: r147829
2009-05-24 08:44:56 +00:00
|
|
|
ftree-slp-vectorize
|
|
|
|
Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
|
|
|
|
Enable basic block vectorization (SLP) on trees
|
|
|
|
|
2007-06-08 16:30:49 +00:00
|
|
|
fvect-cost-model
|
|
|
|
Common Report Var(flag_vect_cost_model) Optimization
|
|
|
|
Enable use of cost model in vectorization
|
|
|
|
|
2005-09-06 10:59:58 +00:00
|
|
|
ftree-vect-loop-version
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
|
2005-09-06 10:59:58 +00:00
|
|
|
Enable loop versioning when doing loop vectorization on trees
|
|
|
|
|
2005-02-07 10:07:07 +00:00
|
|
|
ftree-vectorizer-verbose=
|
|
|
|
Common RejectNegative Joined
|
2005-04-06 18:37:24 +00:00
|
|
|
-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
|
2005-02-07 10:07:07 +00:00
|
|
|
|
2007-02-06 10:08:51 +00:00
|
|
|
ftree-scev-cprop
|
2007-02-21 15:40:29 +00:00
|
|
|
Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
|
2007-02-06 10:08:51 +00:00
|
|
|
Enable copy propagation of scalar-evolution information.
|
|
|
|
|
2004-07-10 02:06:36 +00:00
|
|
|
; -fverbose-asm causes extra commentary information to be produced in
|
|
|
|
; the generated assembly code (to make it more readable). This option
|
|
|
|
; is generally only of use to those who actually need to read the
|
|
|
|
; generated assembly code (perhaps while debugging the compiler itself).
|
|
|
|
; -fno-verbose-asm, the default, causes the extra information
|
|
|
|
; to not be added and is useful when comparing two assembler files.
|
2003-06-22 13:44:40 +00:00
|
|
|
fverbose-asm
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_verbose_asm)
|
2003-07-11 05:35:06 +00:00
|
|
|
Add extra commentary to assembler output
|
2003-06-22 13:44:40 +00:00
|
|
|
|
re PR c++/9283 (__attribute__((visibility ("hidden"))) not supported for class/struct)
PR c++/9283
PR c++/15000
* c-common.c (c_common_attribute_table): Allow
handle_visibility_attribute to be called for types.
(handle_visibility_attribute) When given a type, set the visibility
bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
so that we can check later whether the attribute was present. Added
warning if attribute applied to non class type.
* c-decl.c (diagnose_mismatched_decls): Updated rules for merging
decls and checking that they are consistent.
* common.opt: Added -fvisibility.
* c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
* c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
* flags.h, tree.h: Added assorted support defines for overall patch
* opts.c: Added parsing support for -fvisibility.
* tree.c (build_decl): Set visibility for all decls to be whatever
is in force at that time.
* varasm.c (default_binds_local_p_1): Reworked logic determining
when to make a symbol locally bound.
* doc/invoke.texi: Added documentation for -fvisibility and
-fvisibility-inlines-hidden.
PR c++/15000
PR c++/9283
* class.c (check_field_decls): Apply hidden visibility if
-fvisibility-inlines-hidden and inlined unless otherwise specified
(build_vtable): Set vtable visibility to class visibility.
(check_field_decls): Default static member visibility to class
visibility.
(check_methods): Default method visibility to class visibility.
* cp-tree.h: Added CLASSTYPE_VISIBILITY and
CLASSTYPE_VISIBILITY_SPECIFIED macro.
* decl.c (duplicate_decls): New logic for merging definition decls
with declaration decls. Added ignore & warning when non default
applied to global operator new or delete.
* method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
wherever VISIBILITY was changed
* rtti.c (get_tinfo_decl): Set typeinfo visibility to class
visibility.
(tinfo_base_init): Set typeinfo name visibility to class visibility.
PR c++/9283
PR c++/15000
* gcc.dg/visibility-9.c, gcc.dg/visibility-a.c: New tests.
* g++.dg/ext/visibility/: New directory.
* g++.dg/ext/visibility-1.C, g++.dg/ext/visibility-2.C
g++.dg/ext/visibility-3.C, g++.dg/ext/visibility-4.C,
g++.dg/ext/visibility-5.C, g++.dg/ext/visibility-6.C,
g++.dg/ext/visibility-7.C: Move to g++.dg/ext/visibility/.
* g++.dg/ext/visibility/fvisibility.C,
g++.dg/ext/visibility/fvisibility-inlines-hidden.C,
g++.dg/ext/visibility/fvisibility-override1.C
g++.dg/ext/visibility/fvisibility-override2.C
g++.dg/ext/visibility/memfuncts.C
g++.dg/ext/visibility/noPLT.C
g++.dg/ext/visibility/pragma.C
g++.dg/ext/visibility/pragma-override1.C
g++.dg/ext/visibility/pragma-override2.C
g++.dg/ext/visibility/staticmemfuncts.C
g++.dg/ext/visibility/virtual.C: New tests.
Co-Authored-By: Brian Ryner <bryner@brianryner.com>
From-SVN: r85167
2004-07-25 22:52:22 +00:00
|
|
|
fvisibility=
|
|
|
|
Common Joined RejectNegative
|
|
|
|
-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
|
|
|
|
|
|
|
|
|
2003-10-19 23:37:32 +02:00
|
|
|
fvpt
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_value_profile_transformations) Optimization
|
2003-10-19 23:37:32 +02:00
|
|
|
Use expression value profiles in optimizations
|
|
|
|
|
2003-10-12 00:57:48 +02:00
|
|
|
fweb
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_web) Init(2) Optimization
|
2003-10-12 00:57:48 +02:00
|
|
|
Construct webs and split unrelated uses of single variable
|
|
|
|
|
2009-10-03 17:10:11 -04:00
|
|
|
fwhopr
|
2010-05-19 15:43:22 +00:00
|
|
|
Common
|
|
|
|
Enable partitioned link-time optimization
|
|
|
|
|
|
|
|
fwhopr=
|
2010-08-31 16:58:46 +00:00
|
|
|
Common RejectNegative Joined Var(flag_whopr)
|
|
|
|
Partitioned link-time optimization with number of parallel jobs or jobserver.
|
2009-10-03 17:10:11 -04:00
|
|
|
|
2008-06-04 21:49:45 +00:00
|
|
|
ftree-builtin-call-dce
|
|
|
|
Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
|
|
|
|
Enable conditional dead code elimination for builtin calls
|
|
|
|
|
2005-06-24 17:14:04 +02:00
|
|
|
fwhole-program
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_whole_program) Init(0) Optimization
|
2005-06-24 17:14:04 +02:00
|
|
|
Perform whole program optimizations
|
|
|
|
|
2003-06-22 13:44:40 +00:00
|
|
|
fwrapv
|
2007-02-12 16:25:14 +00:00
|
|
|
Common Report Var(flag_wrapv) Optimization
|
2003-07-11 05:35:06 +00:00
|
|
|
Assume signed arithmetic overflow wraps around
|
2003-06-22 13:44:40 +00:00
|
|
|
|
|
|
|
fzero-initialized-in-bss
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Report Var(flag_zero_initialized_in_bss) Init(1)
|
2003-07-11 05:35:06 +00:00
|
|
|
Put zero initialized data in the bss section
|
2003-06-22 13:44:40 +00:00
|
|
|
|
2003-06-20 22:56:36 +00:00
|
|
|
g
|
|
|
|
Common JoinedOrMissing
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in default format
|
|
|
|
|
|
|
|
gcoff
|
2009-06-11 20:08:11 -07:00
|
|
|
Common JoinedOrMissing Negative(gdwarf-)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in COFF format
|
|
|
|
|
2009-06-11 20:08:11 -07:00
|
|
|
gdwarf-
|
|
|
|
Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
|
|
|
|
Generate debug information in DWARF v2 (or later) format
|
2003-08-08 19:22:44 +00:00
|
|
|
|
|
|
|
ggdb
|
|
|
|
Common JoinedOrMissing
|
|
|
|
Generate debug information in default extended format
|
|
|
|
|
|
|
|
gstabs
|
2006-05-16 14:27:18 +00:00
|
|
|
Common JoinedOrMissing Negative(gstabs+)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in STABS format
|
|
|
|
|
|
|
|
gstabs+
|
2006-05-16 14:27:18 +00:00
|
|
|
Common JoinedOrMissing Negative(gvms)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in extended STABS format
|
|
|
|
|
re PR bootstrap/41405 (Bootstrap fails on *-apple-darwin* due to revision 151815)
PR bootstrap/41405
* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
add_call_src_coords_attributes, add_high_low_attributes,
gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
when -gdwarf-2 -gstrict-dwarf.
(loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
-gdwarf-[23] -gstrict-dwarf.
(address_of_int_loc_descriptor, loc_descriptor,
loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
* gfortran.dg/debug/pr37738.f: Add -gno-strict-dwarf to dg-options.
* gfortran.dg/debug/pr35154-dwarf2.f: Likewise.
* g++.dg/debug/dwarf2/explicit-constructor.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-2.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
* g++.dg/debug/dwarf2/namespace-1.C: Likewise.
* objc.dg/dwarf-2.m: Likewise.
From-SVN: r151978
2009-09-22 15:22:15 +02:00
|
|
|
gno-strict-dwarf
|
2009-09-24 17:02:29 +00:00
|
|
|
Common RejectNegative Var(dwarf_strict,0) Init(-1)
|
re PR bootstrap/41405 (Bootstrap fails on *-apple-darwin* due to revision 151815)
PR bootstrap/41405
* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
add_call_src_coords_attributes, add_high_low_attributes,
gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
when -gdwarf-2 -gstrict-dwarf.
(loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
-gdwarf-[23] -gstrict-dwarf.
(address_of_int_loc_descriptor, loc_descriptor,
loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
* gfortran.dg/debug/pr37738.f: Add -gno-strict-dwarf to dg-options.
* gfortran.dg/debug/pr35154-dwarf2.f: Likewise.
* g++.dg/debug/dwarf2/explicit-constructor.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-2.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
* g++.dg/debug/dwarf2/namespace-1.C: Likewise.
* objc.dg/dwarf-2.m: Likewise.
From-SVN: r151978
2009-09-22 15:22:15 +02:00
|
|
|
Emit DWARF additions beyond selected version
|
|
|
|
|
|
|
|
gstrict-dwarf
|
|
|
|
Common Report RejectNegative Var(dwarf_strict,1) VarExists
|
|
|
|
Don't emit DWARF additions beyond selected version
|
|
|
|
|
common.opt (fcompare-debug=, [...]): New.
gcc/ChangeLog:
* common.opt (fcompare-debug=, fcompare-debug-second): New.
(fdump-final-insns=, gtoggle): New.
* doc/invoke.texi: Document them.
* final.c (rest_of_clean_state): Dump final insn stream.
* gcc.c (invoke_as): Hook in -fcompare-debug.
(static_spec_functions): Add compare-debug-dump-opt,
compare-debug-self-opt and compare-debug-auxbase-opt.
(compare_debug, compare_debug_second, compare_debug_opt): New.
(switches_debug_check, n_switches_debug_check): New.
(debug_auxbase_opt, debug_check_temp_file): New.
(process_command): Handle -fno-compare-debug, -fcompare-debug and
-fcompare-debug=*.
(do_self_spec): Handle arguments after switches.
(do_spec_1): Add .gk extension to temp file basenames for compare.
(check_live_switch): Take SWITCH_IGNORE into account, and earlier.
(cc1_options): Use it instead of normal auxbase computation for
the second compare-debug compilation.
(compare_files): New.
(main): Set up and implement compare debug mode.
(compare_debug_dump_opt_spec_function): New.
(compare_debug_self_opt_spec_function): New.
(compare_debug_auxbase_opt_spec_function): New.
* toplev.c (process_options): Handle flag_gtoggle,
flag_dump_final_insns.
* coverage.c (coverage_begin_output): Don't overwrite .gcno file
during -fcompare-debug-second compilation.
gcc/cp/ChangeLog:
* repo.c (get_base_filename): Use aux_base_name rather than
alternate temporary file during second compare debug compilation.
(finish_repo): Skip during -fcompare-debug-second.
gcc/ada/ChangeLog:
* lib-writ.adb (flag_compare_debug): Import.
(Write_ALI): Skip during -fcompare-debug-second.
gcc/fortran/ChangeLog:
* options.c (gfc_post_options): Disable dump_parse_tree
during -fcompare-debug-second.
gcc/objc/ChangeLog:
* objc-act.c (objc_init): Skip print_struct_values during
-fcompare-debug-second.
From-SVN: r148271
2009-06-08 07:46:02 +00:00
|
|
|
gtoggle
|
|
|
|
Common Report Var(flag_gtoggle)
|
|
|
|
Toggle debug information generation
|
|
|
|
|
2003-08-08 19:22:44 +00:00
|
|
|
gvms
|
2006-05-16 14:27:18 +00:00
|
|
|
Common JoinedOrMissing Negative(gxcoff)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in VMS format
|
|
|
|
|
|
|
|
gxcoff
|
2006-05-16 14:27:18 +00:00
|
|
|
Common JoinedOrMissing Negative(gxcoff+)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in XCOFF format
|
|
|
|
|
|
|
|
gxcoff+
|
2006-05-16 14:27:18 +00:00
|
|
|
Common JoinedOrMissing Negative(gcoff)
|
2003-08-08 19:22:44 +00:00
|
|
|
Generate debug information in extended XCOFF format
|
2003-06-20 22:56:36 +00:00
|
|
|
|
2010-04-12 23:58:18 +00:00
|
|
|
iplugindir=
|
|
|
|
Common Joined Var(plugindir_string) Init(0)
|
|
|
|
-iplugindir=<dir> Set <dir> to be the default plugin directory
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
l
|
|
|
|
Driver Joined Separate
|
|
|
|
|
|
|
|
no-canonical-prefixes
|
|
|
|
Driver
|
|
|
|
|
Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
options.
* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
"-l".
* cppspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
* doc/tm.texi: Regenerate.
* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
(driver_handle_option): Allow driver options needing no special
processing.
(process_command): Decode options before call to
lang_specific_driver. Pass decoded options to
lang_specific_driver.
* gcc.h (lang_specific_driver): Update prototype.
* gccspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* opts-common.c (option_ok_for_language, generate_option,
generate_option_input_file): New.
(decode_cmdline_option): Use option_ok_for_language.
(decode_cmdline_options_to_array): Use generate_option_input_file.
(handle_generated_option): Use generate_option.
* opts.h (generate_option, generate_option_input_file): Declare.
cp:
* Make-lang.in (g++spec.o): Update dependencies.
* g++spec.c: Include opts.h
(MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
(lang_specific_driver): Use cl_decoded_option structures.
fortran:
* Make-lang.in (gfortranspec.o): Update dependencies.
* gfortranspec.c: Include coretypes.h before gcc.h. Include
opts.h.
(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
(g77_xargc): Make unsigned.
(g77_xargv): Change to g77_x_decoded_options.
(g77_newargc): Make unsigned.
(g77_newargv): Change to g77_new_decoded_options.
(strings_same, options_same): New.
(append_arg): Use cl_decoded_option structures.
(append_option): New.
(add_arg_libgfortran): New.
(lang_specific_driver): Use cl_decoded_option structures.
java:
* Make-lang.in (jvspec.o): Update dependencies.
* jvspec.c: Include opts.h.
(PARAM_ARG): Remove.
(find_spec_file): Do not add leading -specs=.
(lang_specific_driver): Use cl_decoded_option structures.
* lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
extdirs, fmain=, s-bc-abi): New options.
From-SVN: r163459
2010-08-22 13:19:01 +01:00
|
|
|
nodefaultlibs
|
|
|
|
Driver
|
|
|
|
|
|
|
|
nostdlib
|
|
|
|
Driver
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
o
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Driver Joined Separate MissingArgError(missing filename after %qs)
|
2003-07-08 05:25:39 +00:00
|
|
|
-o <file> Place output into <file>
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
p
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Var(profile_flag)
|
2003-07-08 05:25:39 +00:00
|
|
|
Enable function profiling
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
pass-exit-codes
|
|
|
|
Driver Var(pass_exit_codes)
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
pedantic
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Var(pedantic)
|
2003-07-08 05:25:39 +00:00
|
|
|
Issue warnings needed for strict compliance to the standard
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
pedantic-errors
|
|
|
|
Common
|
2003-07-08 05:25:39 +00:00
|
|
|
Like -pedantic but issue them as errors
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
options.
* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
"-l".
* cppspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
* doc/tm.texi: Regenerate.
* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
(driver_handle_option): Allow driver options needing no special
processing.
(process_command): Decode options before call to
lang_specific_driver. Pass decoded options to
lang_specific_driver.
* gcc.h (lang_specific_driver): Update prototype.
* gccspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* opts-common.c (option_ok_for_language, generate_option,
generate_option_input_file): New.
(decode_cmdline_option): Use option_ok_for_language.
(decode_cmdline_options_to_array): Use generate_option_input_file.
(handle_generated_option): Use generate_option.
* opts.h (generate_option, generate_option_input_file): Declare.
cp:
* Make-lang.in (g++spec.o): Update dependencies.
* g++spec.c: Include opts.h
(MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
(lang_specific_driver): Use cl_decoded_option structures.
fortran:
* Make-lang.in (gfortranspec.o): Update dependencies.
* gfortranspec.c: Include coretypes.h before gcc.h. Include
opts.h.
(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
(g77_xargc): Make unsigned.
(g77_xargv): Change to g77_x_decoded_options.
(g77_newargc): Make unsigned.
(g77_newargv): Change to g77_new_decoded_options.
(strings_same, options_same): New.
(append_arg): Use cl_decoded_option structures.
(append_option): New.
(add_arg_libgfortran): New.
(lang_specific_driver): Use cl_decoded_option structures.
java:
* Make-lang.in (jvspec.o): Update dependencies.
* jvspec.c: Include opts.h.
(PARAM_ARG): Remove.
(find_spec_file): Do not add leading -specs=.
(lang_specific_driver): Use cl_decoded_option structures.
* lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
extdirs, fmain=, s-bc-abi): New options.
From-SVN: r163459
2010-08-22 13:19:01 +01:00
|
|
|
pg
|
|
|
|
Driver
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
pipe
|
|
|
|
Driver Var(use_pipes)
|
|
|
|
|
|
|
|
print-file-name=
|
|
|
|
Driver JoinedOrMissing Var(print_file_name)
|
|
|
|
|
|
|
|
print-libgcc-file-name
|
|
|
|
Driver
|
|
|
|
|
|
|
|
print-multi-directory
|
|
|
|
Driver Var(print_multi_directory)
|
|
|
|
|
|
|
|
print-multi-lib
|
|
|
|
Driver Var(print_multi_lib)
|
|
|
|
|
|
|
|
print-multi-os-directory
|
|
|
|
Driver Var(print_multi_os_directory)
|
|
|
|
|
|
|
|
print-prog-name=
|
|
|
|
Driver JoinedOrMissing Var(print_prog_name)
|
|
|
|
|
|
|
|
print-search-dirs
|
|
|
|
Driver Var(print_search_dirs)
|
|
|
|
|
|
|
|
print-sysroot
|
|
|
|
Driver Var(print_sysroot)
|
|
|
|
|
|
|
|
print-sysroot-headers-suffix
|
|
|
|
Driver Var(print_sysroot_headers_suffix)
|
|
|
|
|
2003-06-14 12:26:36 +00:00
|
|
|
quiet
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Var(quiet_flag) RejectDriver
|
2003-07-08 05:25:39 +00:00
|
|
|
Do not display functions compiled or elapsed time
|
2003-06-14 12:26:36 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
save-temps
|
|
|
|
Driver
|
|
|
|
|
|
|
|
save-temps=
|
|
|
|
Driver Joined
|
|
|
|
|
|
|
|
time
|
|
|
|
Driver Var(report_times)
|
|
|
|
|
|
|
|
time=
|
|
|
|
Driver JoinedOrMissing
|
|
|
|
|
|
|
|
v
|
|
|
|
Driver
|
|
|
|
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
version
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
Common Var(version_flag) RejectDriver
|
2003-07-08 05:25:39 +00:00
|
|
|
Display the compiler's version
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
|
|
|
w
|
2004-06-14 16:18:01 +02:00
|
|
|
Common Var(inhibit_warnings)
|
2003-07-08 05:25:39 +00:00
|
|
|
Suppress warnings
|
c-pch.c (asm_file_name): Remove.
* c-pch.c (asm_file_name): Remove.
* common.opt: Add more switches.
* flags.h (g_switch_set): Boolify.
* opts.c (g_switch_value, g_switch_set, exit_after_options,
version_flag): Move from toplev.c.
(common_handle_option): Handle more switches from toplev.c.
* toplev.c (display_help, display_target_options, decode_d_option,
print_version): Make non-static, remove prototypes.
(aux_base_name, asm_file_name, aux_info_file_name): Constify.
(version_flag, g_switch_value, g_switch_set, exit_after_options):
Remove.
(independent_decode_option): Move some handlers to opts.c.
* toplev.h (aux_info_file_name, aux_base_name, asm_file_name,
exit_after_options, version_flag, display_help, display_target_options,
print_version, decode_d_option): New.
java:
* lang.c (version_flag): Rename to v_flag to avoid clash w/ toplev.h.
From-SVN: r67971
2003-06-15 08:30:02 +00:00
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
wrapper
|
|
|
|
Driver Separate Var(wrapper_string)
|
|
|
|
|
|
|
|
x
|
|
|
|
Driver Joined Separate
|
|
|
|
|
2007-11-05 15:42:30 -08:00
|
|
|
shared
|
|
|
|
Common RejectNegative Negative(pie)
|
|
|
|
Create a shared library
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
shared-libgcc
|
|
|
|
Driver
|
|
|
|
|
|
|
|
specs
|
re PR driver/44076 (-MT <target> behaves different as -MT<target> (w/o space))
PR driver/44076
* opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
alias_target fields.
* opt-functions.awk (opt_sanitized_name): Don't handle
finline-limit=, Wlarger-than= and ftemplate-depth= specially.
* optc-gen.awk: Generate alias fields.
* opth-gen.awk: Explicitly give values for OPT_* enum constants.
Don't generate such constants for aliases.
* opts-common.c (generate_canonical_option): New.
(decode_cmdline_option): Handle aliases. Use
generate_canonical_option for known options instead of copying the
input option text.
* doc/options.texi (Alias): Document.
* common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
fstack-check, specs): Mark as aliases.
* gcc.c (driver_handle_option): Canonicalize -L options to joined
arguments.
(driver_handle_option): Don't handle OPT_specs.
* opts.c (common_handle_option): Don't handle options marked as
aliases.
(enable_warning_as_error): Handle aliases.
* stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
OPT_Wlarger_than_eq.
* tree-optimize.c (tree_rest_of_compilation): Use
OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
c-family:
* c.opt (Wcomments, Werror-implicit-function-declaration,
ftemplate-depth-, std=c89, std=c9x, std=gnu89, std=gnu9x,
std=iso9899:1990, std=iso9899:1999, std=iso9899:199x): Mark as
aliases.
* c-common.c (option_codes): Use OPT_Wcomment instead of
OPT_Wcomments.
* c-opts.c (warning_as_error_callback, c_common_handle_option):
Don't handle options marked as aliases.
java:
* lang.opt (CLASSPATH, bootclasspath, classpath, encoding,
fCLASSPATH=): Mark as Java options and as aliases.
* jvspec.c (jvgenmain_spec): Don't handle -fCLASSPATH*.
(lang_specific_driver): Don't handle options marked as aliases.
* lang.c (java_handle_option): Don't handle OPT_fCLASSPATH_.
testsuite:
* gcc.dg/cpp/warn-comments-3.c: New. Based on warn-comments-2.c
but using -Werror=comment.
* gcc.dg/cpp/warn-comments.c, gcc.dg/cpp/warn-comments-2.c: Adjust
expected error messages.
From-SVN: r163770
2010-09-02 12:41:22 +01:00
|
|
|
Driver Separate Alias(specs=)
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
|
|
|
|
specs=
|
|
|
|
Driver Joined
|
|
|
|
|
Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* Makefile.in (gccspec.o, cppspec.o): Update dependencies.
* common.opt (L, nodefaultlibs, nostdlib, pg, static): New
options.
* config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
* config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
* config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
* config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
* config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
"-l".
* cppspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* doc/tm.texi.in (MATH_LIBRARY): Update documentation.
* doc/tm.texi: Regenerate.
* gcc.c (translate_options): Translate -d to -foutput-class-dir=.
(driver_handle_option): Allow driver options needing no special
processing.
(process_command): Decode options before call to
lang_specific_driver. Pass decoded options to
lang_specific_driver.
* gcc.h (lang_specific_driver): Update prototype.
* gccspec.c: Include opts.h.
(lang_specific_driver): Use cl_decoded_option structures.
* opts-common.c (option_ok_for_language, generate_option,
generate_option_input_file): New.
(decode_cmdline_option): Use option_ok_for_language.
(decode_cmdline_options_to_array): Use generate_option_input_file.
(handle_generated_option): Use generate_option.
* opts.h (generate_option, generate_option_input_file): Declare.
cp:
* Make-lang.in (g++spec.o): Update dependencies.
* g++spec.c: Include opts.h
(MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
(lang_specific_driver): Use cl_decoded_option structures.
fortran:
* Make-lang.in (gfortranspec.o): Update dependencies.
* gfortranspec.c: Include coretypes.h before gcc.h. Include
opts.h.
(MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
(ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
(g77_xargc): Make unsigned.
(g77_xargv): Change to g77_x_decoded_options.
(g77_newargc): Make unsigned.
(g77_newargv): Change to g77_new_decoded_options.
(strings_same, options_same): New.
(append_arg): Use cl_decoded_option structures.
(append_option): New.
(add_arg_libgfortran): New.
(lang_specific_driver): Use cl_decoded_option structures.
java:
* Make-lang.in (jvspec.o): Update dependencies.
* jvspec.c: Include opts.h.
(PARAM_ARG): Remove.
(find_spec_file): Do not add leading -specs=.
(lang_specific_driver): Use cl_decoded_option structures.
* lang.opt (C, CLASSPATH, D, bootclasspath, classpath, encoding,
extdirs, fmain=, s-bc-abi): New options.
From-SVN: r163459
2010-08-22 13:19:01 +01:00
|
|
|
static
|
|
|
|
Driver
|
|
|
|
|
common.opt: Add driver options.
* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing. Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.
c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.
fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.
java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.
From-SVN: r163279
2010-08-16 11:15:15 +01:00
|
|
|
static-libgcc
|
|
|
|
Driver
|
|
|
|
|
|
|
|
static-libgfortran
|
|
|
|
Driver
|
|
|
|
; Documented for Fortran, but always accepted by driver.
|
|
|
|
|
|
|
|
static-libstdc++
|
|
|
|
Driver
|
|
|
|
|
2007-11-05 15:42:30 -08:00
|
|
|
pie
|
|
|
|
Common RejectNegative Negative(shared)
|
|
|
|
Create a position independent executable
|
|
|
|
|
2003-06-14 12:26:36 +00:00
|
|
|
; This comment is to ensure we retain the blank line above.
|