Commit f521d9d8 by Jakub Jelinek Committed by Jakub Jelinek

re PR other/89342 (ICE in maybe_default_option, at opts.c:347)

	PR other/89342
	* optc-save-gen.awk: Handle optimize_fast like optimize_size or
	optimize_debug.
	* opth-gen.awk: Likewise.

	* gcc.dg/pr89342.c: New test.

From-SVN: r268924
parent 8a9f2a6b
2019-02-15 Jakub Jelinek <jakub@redhat.com>
PR other/89342
* optc-save-gen.awk: Handle optimize_fast like optimize_size or
optimize_debug.
* opth-gen.awk: Likewise.
2019-02-15 Uroš Bizjak <ubizjak@gmail.com> 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
* config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
......
...@@ -81,7 +81,7 @@ print "void"; ...@@ -81,7 +81,7 @@ print "void";
print "cl_optimization_save (struct cl_optimization *ptr, struct gcc_options *opts)"; print "cl_optimization_save (struct cl_optimization *ptr, struct gcc_options *opts)";
print "{"; print "{";
n_opt_char = 3; n_opt_char = 4;
n_opt_short = 0; n_opt_short = 0;
n_opt_int = 0; n_opt_int = 0;
n_opt_enum = 0; n_opt_enum = 0;
...@@ -90,9 +90,11 @@ n_opt_other = 0; ...@@ -90,9 +90,11 @@ n_opt_other = 0;
var_opt_char[0] = "optimize"; var_opt_char[0] = "optimize";
var_opt_char[1] = "optimize_size"; var_opt_char[1] = "optimize_size";
var_opt_char[2] = "optimize_debug"; var_opt_char[2] = "optimize_debug";
var_opt_char[3] = "optimize_fast";
var_opt_range["optimize"] = "0, 255"; var_opt_range["optimize"] = "0, 255";
var_opt_range["optimize_size"] = "0, 1"; var_opt_range["optimize_size"] = "0, 1";
var_opt_range["optimize_debug"] = "0, 1"; var_opt_range["optimize_debug"] = "0, 1";
var_opt_range["optimize_fast"] = "0, 1";
# Sort by size to mimic how the structure is laid out to be friendlier to the # Sort by size to mimic how the structure is laid out to be friendlier to the
# cache. # cache.
...@@ -767,16 +769,19 @@ for (i = 0; i < n_target_val; i++) { ...@@ -767,16 +769,19 @@ for (i = 0; i < n_target_val; i++) {
print "}"; print "}";
n_opt_val = 3; n_opt_val = 4;
var_opt_val[0] = "x_optimize" var_opt_val[0] = "x_optimize"
var_opt_val_type[0] = "char " var_opt_val_type[0] = "char "
var_opt_hash[0] = 1; var_opt_hash[0] = 1;
var_opt_val[1] = "x_optimize_size" var_opt_val[1] = "x_optimize_size"
var_opt_val_type[1] = "char "
var_opt_hash[1] = 1; var_opt_hash[1] = 1;
var_opt_val[2] = "x_optimize_debug" var_opt_val[2] = "x_optimize_debug"
var_opt_hash[2] = 1;
var_opt_val_type[1] = "char "
var_opt_val_type[2] = "char " var_opt_val_type[2] = "char "
var_opt_hash[2] = 1;
var_opt_val[3] = "x_optimize_fast"
var_opt_val_type[3] = "char "
var_opt_hash[3] = 1;
for (i = 0; i < n_opts; i++) { for (i = 0; i < n_opts; i++) {
if (flag_set_p("(Optimization|PerFunction)", flags[i])) { if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
name = var_name(flags[i]) name = var_name(flags[i])
......
...@@ -132,7 +132,7 @@ print "/* Structure to save/restore optimization and target specific options. * ...@@ -132,7 +132,7 @@ print "/* Structure to save/restore optimization and target specific options. *
print "struct GTY(()) cl_optimization"; print "struct GTY(()) cl_optimization";
print "{"; print "{";
n_opt_char = 3; n_opt_char = 4;
n_opt_short = 0; n_opt_short = 0;
n_opt_int = 0; n_opt_int = 0;
n_opt_enum = 0; n_opt_enum = 0;
...@@ -140,6 +140,7 @@ n_opt_other = 0; ...@@ -140,6 +140,7 @@ n_opt_other = 0;
var_opt_char[0] = "unsigned char x_optimize"; var_opt_char[0] = "unsigned char x_optimize";
var_opt_char[1] = "unsigned char x_optimize_size"; var_opt_char[1] = "unsigned char x_optimize_size";
var_opt_char[2] = "unsigned char x_optimize_debug"; var_opt_char[2] = "unsigned char x_optimize_debug";
var_opt_char[3] = "unsigned char x_optimize_fast";
for (i = 0; i < n_opts; i++) { for (i = 0; i < n_opts; i++) {
if (flag_set_p("(Optimization|PerFunction)", flags[i])) { if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
......
2019-02-15 Jakub Jelinek <jakub@redhat.com>
PR other/89342
* gcc.dg/pr89342.c: New test.
2019-02-14 Jakub Jelinek <jakub@redhat.com> 2019-02-14 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/89354 PR rtl-optimization/89354
......
/* PR other/89342 */
/* { dg-do compile } */
/* { dg-options "-O0" } */
__attribute__((optimize("Ofast")))
void foo (void)
{
__attribute__((optimize("no-inline")))
void bar (void) {}
bar ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment