re PR target/92908 (wrong code with -Og -fno-tree-fre -mavx512bw and vector compare)
[gcc.git] / gcc / ChangeLog
index 9bb76236d24ecb56f5946d326db0118dcbc7112a..b3d8398ca5f4bd4c1e2ccff519c879e1847d7490 100644 (file)
@@ -1,3 +1,879 @@
+2019-12-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/92908
+       * simplify-rtx.c (simplify_relational_operation): Punt for vector
+       cmp_mode and scalar mode, if simplify_relational_operation returned
+       const_true_rtx.
+       (simplify_const_relational_operation): Change VOID_mode in function
+       comment to VOIDmode.
+
+2019-12-13  Kewen Lin  <linkw@gcc.gnu.org>
+
+       * config/rs6000/rs6000.c (adjust_vectorization_cost): New function.
+       (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update
+       stmt_cost.
+
+2019-12-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/92904
+       * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
+       not need_temp, decrease alignment of the read because the GPR save
+       area only guarantees 8-byte alignment.
+
+2019-12-12  Georg-Johann Lay  <avr@gjlay.de>
+
+       Add support for some more AVR devices from avrxmega3 family.
+
+       * config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607)
+       (attiny402, attiny404, attiny406)
+       (attiny804, attiny806, attiny807)
+       (attiny202, attiny204): Add AVR_MCU lines to support them.
+       * doc/avr-mmcu.texi: Regenerate.
+
+2019-12-12  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
+       of execution of function call parameters.
+
+2019-12-12  Vineet Gupta  <vgupta@synopsys.com>
+
+       * config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
+       helps codegen generate exceptions even for quiet NaN.
+       * config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
+       (get_arc_condition_code): Likewise.
+       (arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
+       * config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
+       * config/arc/predicates.md (proper_comparison_operator): Likewise.
+       * config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
+       (cmpdf_fpu_trap): Likewise.
+
+2019-12-12  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
+       (cstoredi4): Use TARGET_HARD_FLOAT.
+
+2019-12-11  Jakub Jelinek  <jakub@redhat.com>
+
+       * opts.c (default_options_table): Move -ftree-loop-distribute-patterns
+       entry from -O3 or later section to -O2 or later section.
+       * doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the
+       option is enabled by default at -O2+ rather than just at -O3.
+
+       PR target/92723
+       * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
+       vect_internal_def, use oprnd1 as is, without trying to cast it.
+       Formatting fix.
+
+2019-12-11  Martin Sebor  <msebor@redhat.com>
+
+       * builtins.c (compute_objsize): Add an argument and set it to offset
+       into destination.
+       * builtins.h (compute_objsize): Add an argument.
+       * tree-object-size.c (addr_object_size): Add an argument and set it
+       to offset into destination.
+       (compute_builtin_object_size): Same.
+       * tree-object-size.h (compute_builtin_object_size): Add an argument.
+       * tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it
+       to offset into destination.
+       (maybe_warn_overflow): New function.
+       (handle_store): Call maybe_warn_overflow to issue warnings.
+
+2019-12-11  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use
+       crtbegin_no_eh.o if building for the C language.
+       [fno-exceptions]: Use crtbegin_no_eh.o if building for any language
+       except C.
+       (ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for 
+       the C language.
+       [fno-exceptions]: Use crtend_no_eh.o if building for any language
+       except C.
+       * config/msp430/t-msp430: Add -fno-exceptions multilib.
+       * doc/install.texi: Document --disable-no-exceptions multilib configure
+       option.
+       * doc/sourcebuild.texi: Document exceptions_enabled effective target.
+
+2019-12-11  David Malcolm  <dmalcolm@redhat.com>
+
+       * pretty-print.c (pretty_printer::pretty_printer): New copy-ctor.
+       (pretty_printer::clone): New vfunc implementation.
+       * pretty-print.h (format_postprocessor::clone): New pure vfunc
+       decl.
+       (pretty_printer::pretty_printer): New copy-ctor decl.
+       (pretty_printer::clone): New vfunc decl.
+
+2019-12-11  David Malcolm  <dmalcolm@redhat.com>
+
+       * function-tests.c (selftest::make_fndecl): Make non-static.
+       * selftest.h (selftest::make_fndecl): New decl.
+
+2019-12-11  Lewis Hyatt  <lhyatt@gmail.com>
+
+       PR 91853
+       * pretty-print.c (pp_quoted_string): Avoid hex-escaping valid
+       multibyte input.  Fix off-by-one-bug printing the last byte before a
+       hex-escaped output.
+       (pp_character): Don't apply line wrapping in the middle of multibyte
+       characters.
+       (test_utf8): New test.
+       (pretty_print_c_tests): Call the new test.
+
+2019-12-11  Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup.
+       (ALL_SIMD): Use it.
+       (ALL_FPU_EXTERNAL): New fgroup.
+       (ALL_FP): Use it.
+       (cortex-a55, cortex-a75, cortex-a76, cortex-a76ae): Remove redundant
+       +simd from architecture specification.
+       (cortex-a77, neoverse-n1, cortex-a75.cortex-a55): Likewise.
+       * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ...
+       (isa_all_fpubits_internal, fpu_bitlist_internal): ... these.
+       (isa_all_fpbits): New bitmap.
+       (arm_option_override): Initialize it.
+       (arm_configure_build_target): If the target isa does not have any
+       FP enabled, do not warn about mismatches in FP-related feature bits.
+
+2019-12-11  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
+
+       * real.c (struct arm_bfloat_half_format,
+       encode_arm_bfloat_half, decode_arm_bfloat_half): New.
+       * real.h (arm_bfloat_half_format): New.
+
+2019-12-11  Hongtao Liu  <hongtao.liu@intel.com>
+
+       PR target/92865
+       * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable
+       integer mask cmov when available even with TARGET_XOP.
+
+2019-12-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/92891
+       * builtins.c (gimple_call_alloc_size): Convert size to sizetype
+       before returning it.
+
+2019-12-10  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/92796
+       * lra-int.h (lra_risky_transformations_p): Rename to
+       check_and_force_assignment_correctness_p.
+       * lra-assigns.c: Ditto.
+       (lra_assign): Reset check_and_force_assignment_correctness_p.
+       * lra-constraints.c (lra_risky_transformations_p): Rename to
+       check_and_force_assignment_correctness_p.
+       (lra_constraints): Set up check_and_force_assignment_correctness_p
+       only for the 1st sub-pass.
+       * lra-eliminations.c (process_insn_for_elimination): Set up
+       check_and_force_assignment_correctness_p if the insn chnaged its
+       code.
+
+2019-12-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/92882
+       * regstat.c (regstat_bb_compute_calls_crossed): Don't check
+       INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless
+       NONDEBUG_INSN_P.
+
+       PR ipa/92883
+       * ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather
+       than *jfunc->m_vr to intersect.  Formatting fix.
+
+       PR middle-end/92825
+       * cfgexpand.c (add_stack_protection_conflicts): Change return type
+       from void to bool, return true if at least one stack_vars[i].decl
+       is addressable.
+       (record_or_union_type_has_array_p, stack_protect_decl_p): Remove.
+       (expand_used_vars): Don't call stack_protect_decl_p, instead for
+       -fstack-protector-strong set gen_stack_protect_signal to true
+       if add_stack_protection_conflicts returned true.  Formatting fixes.
+       * doc/invoke.texi (-fstack-protector-strong): Clarify that optimized
+       out variables or variables not living on the stack don't count.
+       (-fstack-protector): Likewise.  Clarify it affects >= 8 byte arrays
+       rather than > 8 byte.
+
+       * ipa-param-manipulation.c
+       (ipa_param_body_adjustments::register_replacement): Fix comment typo
+       - accross -> across.
+       * ipa-sra.c (propagate_used_across_scc_edge, ipa_sra_analysis):
+       Likewise.
+       (param_splitting_across_edge): Fix typo in dump message - accross
+       -> across.
+
+2019-12-10  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraph.c (cgraph_node::verify_node): Verify tp_first_run.
+       * cgraph.h (cgrpah_node): Turn tp_first_run back to int.
+       * cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows.
+       (expand_all_functions): First expand ordered section and then
+       unordered.
+       * profile.c (compute_value_histograms): Error on out of range
+       tp_first_runs.
+
+2019-12-10  Jan Hubicka  <hubicka@ucw.cz>
+
+       * predict.c (compute_function_frequency): Check for presence of IPA
+       profile.
+
+2019-12-10  Jan Hubicka  <hubicka@ucw.cz>
+
+       * varasm.c (default_function_section): Fix confused tests for
+       tp_first_run reordering.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Don't
+       allow SVE modes in GPRs.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/aarch64/iterators.md (vccore): New iterator.
+       * config/aarch64/aarch64-sve.md (vec_series<mode>): Use it instead
+       of vwcore.
+       (*vec_series<mode>_plus): Likewise.
+
+2019-12-10  Frederik Harwath  <frederik@codesourcery.com>
+
+       * omp-low.c (scan_omp_for): Use clause location in warning.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * dwarf2out.c (loc_descriptor): Punt for MODE_VECTOR_BOOL.
+       (add_const_value_attribute): Likewise.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-loop.c (vect_create_epilog_for_reduction): When
+       handling direct_slp_reduc, allow the PHI arguments to have
+       a different type from the vector elements.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-stmts.c (vectorizable_condition): Record the loop
+       masks required for extract-last reductions.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-stmts.c (vect_finish_replace_stmt): Always use the
+       original scalar statement rather than a pattern statement.
+       (vectorizable_condition): Likewise, in the handling of extract-last
+       reductions.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-loop.c (vectorizable_reduction): Don't use
+       EXTRACT_LAST_REDUCTION for chained reductions.
+
+2019-12-10  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * ipa-utils.h (get_odr_name_for_type): Check for a TYPE_DECL.
+       * ipa-devirt.c (warn_types_mismatch): Don't call xstrdup for the
+       second demangled name.
+
+2019-12-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (IX86_LEA_PRIORITY): Fix comment typos.
+
+2019-12-10  Martin Liska  <mliska@suse.cz>
+
+       PR tree-optimization/92862
+       * predict.c (predict_paths_leading_to_edge): Fix typo from e to e2.
+       * tree-ssa-loop-niter.c (loop_only_exit_p): Return false
+       instead of true;
+
+2019-12-09  David Malcolm  <dmalcolm@redhat.com>
+
+       * gcc-rich-location.c
+       (maybe_range_label_for_tree_type_mismatch::get_text): Replace
+       label_text ctor call with label_text::borrow.
+       * gcc-rich-location.h (text_range_label::get_text): Replace
+       label_text ctor called with false with label_text::borrow.
+
+2019-12-09  David Malcolm  <dmalcolm@redhat.com>
+
+       * diagnostic-show-locus.c (diagnostic_show_locus): Remove initial
+       newline.
+       (selftest::test_diagnostic_show_locus_unknown_location): Remove
+       initial newline from expected outputs.
+       (selftest::test_one_liner_simple_caret): Likewise.
+       (selftest::test_one_liner_caret_and_range): Likewise.
+       (selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
+       (selftest::test_one_liner_fixit_insert_before): Likewise.
+       (selftest::test_one_liner_fixit_insert_after): Likewise.
+       (selftest::test_one_liner_fixit_remove): Likewise.
+       (selftest::test_one_liner_fixit_replace): Likewise.
+       (selftest::test_one_liner_fixit_replace_non_equal_range):
+       Likewise.
+       (selftest::test_one_liner_fixit_replace_equal_secondary_range):
+       Likewise.
+       (selftest::test_one_liner_fixit_validation_adhoc_locations):
+       Likewise.
+       (selftest::test_one_liner_many_fixits_1): Likewise.
+       (selftest::test_one_liner_many_fixits_2): Likewise.
+       (selftest::test_one_liner_labels): Likewise.
+       (selftest::test_one_liner_simple_caret_utf8): Likewise.
+       (selftest::test_one_liner_caret_and_range_utf8): Likewise.
+       (selftest::test_one_liner_multiple_carets_and_ranges_utf8):
+       Likewise.
+       (selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
+       (selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
+       (selftest::test_one_liner_fixit_remove_utf8): Likewise.
+       (selftest::test_one_liner_fixit_replace_utf8): Likewise.
+       (selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
+       Likewise.
+       (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
+       Likewise.
+       (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
+       Likewise.
+       (selftest::test_one_liner_many_fixits_1_utf8): Likewise.
+       (selftest::test_one_liner_many_fixits_2_utf8): Likewise.
+       (selftest::test_one_liner_labels_utf8): Likewise.
+       (selftest::test_add_location_if_nearby): Likewise.
+       (selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
+       (selftest::test_overlapped_fixit_printing): Likewise.
+       (selftest::test_overlapped_fixit_printing_utf8): Likewise.
+       (selftest::test_overlapped_fixit_printing_2): Likewise.
+       (selftest::test_fixit_insert_containing_newline): Likewise.
+       (selftest::test_fixit_insert_containing_newline_2): Likewise.
+       (selftest::test_fixit_replace_containing_newline): Likewise.
+       (selftest::test_fixit_deletion_affecting_newline): Likewise.
+       (selftest::test_line_numbers_multiline_range): Likewise.
+       * diagnostic.c (default_diagnostic_finalizer): Add pp_newline call
+       before call to diagnostic_show_locus.
+       (diagnostic_append_note): Likewise.
+
+2019-12-09  Martin Sebor  <msebor@redhat.com>
+
+       PR middle-end/92761
+       PR middle-end/92762
+       * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Tighten
+       up tests.
+       * hash-table.h (hash_table::expand): Use placement new to copy
+       construct objects in uninitialized storage.
+       (hash_table::empty_slow): Avoid invoking copy assignment on
+       uninitialized objects.
+
+2019-12-09  Lewis Hyatt  <lhyatt@gmail.com>
+
+       PR preprocessor/49973
+       * input.c (location_compute_display_column): New function to help with
+       multibyte awareness in diagnostics.
+       (test_cpp_utf8): New self-test.
+       (input_c_tests): Call the new test.
+       * input.h (location_compute_display_column): Declare.
+       * diagnostic-show-locus.c: Pervasive changes to add multibyte awareness
+       to all classes and functions.
+       (enum column_unit): New enum.
+       (class exploc_with_display_col): New class.
+       (class layout_point): Convert m_column member to array m_columns[2].
+       (layout_range::contains_point): Add col_unit argument.
+       (test_layout_range_for_single_point): Pass new argument.
+       (test_layout_range_for_single_line): Likewise.
+       (test_layout_range_for_multiple_lines): Likewise.
+       (line_bounds::convert_to_display_cols): New function.
+       (layout::get_state_at_point): Add col_unit argument.
+       (make_range): Use empty filename rather than dummy filename.
+       (get_line_width_without_trailing_whitespace): Rename to...
+       (get_line_bytes_without_trailing_whitespace): ...this.
+       (test_get_line_width_without_trailing_whitespace): Rename to...
+       (test_get_line_bytes_without_trailing_whitespace): ...this.
+       (class layout): m_exploc changed to exploc_with_display_col from
+       plain expanded_location.
+       (layout::get_linenum_width): New accessor member function.
+       (layout::get_x_offset_display): Likewise.
+       (layout::calculate_linenum_width): New subroutine for the constuctor.
+       (layout::calculate_x_offset_display): Likewise.
+       (layout::layout): Use the new subroutines. Add multibyte awareness.
+       (layout::print_source_line): Add multibyte awareness.
+       (layout::print_line): Likewise.
+       (layout::print_annotation_line): Likewise.
+       (line_label::line_label): Likewise.
+       (layout::print_any_labels): Likewise.
+       (layout::annotation_line_showed_range_p): Likewise.
+       (get_printed_columns): Likewise.
+       (class line_label): Rename m_length to m_display_width.
+       (get_affected_columns): Rename to...
+       (get_affected_range): ...this; add col_unit argument and multibyte
+       awareness.
+       (class correction): Add m_affected_bytes and m_display_cols
+       members.  Rename m_len to m_byte_length for clarity.  Add multibyte
+       awareness throughout.
+       (correction::insertion_p): Add multibyte awareness.
+       (correction::compute_display_cols): New function.
+       (correction::ensure_terminated): Use new member name m_byte_length.
+       (line_corrections::add_hint): Add multibyte awareness.
+       (layout::print_trailing_fixits): Likewise.
+       (layout::get_x_bound_for_row): Likewise.
+       (test_one_liner_simple_caret_utf8): New self-test analogous to the one
+       with _utf8 suffix removed, testing multibyte awareness.
+       (test_one_liner_caret_and_range_utf8): Likewise.
+       (test_one_liner_multiple_carets_and_ranges_utf8): Likewise.
+       (test_one_liner_fixit_insert_before_utf8): Likewise.
+       (test_one_liner_fixit_insert_after_utf8): Likewise.
+       (test_one_liner_fixit_remove_utf8): Likewise.
+       (test_one_liner_fixit_replace_utf8): Likewise.
+       (test_one_liner_fixit_replace_non_equal_range_utf8): Likewise.
+       (test_one_liner_fixit_replace_equal_secondary_range_utf8): Likewise.
+       (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise.
+       (test_one_liner_many_fixits_1_utf8): Likewise.
+       (test_one_liner_many_fixits_2_utf8): Likewise.
+       (test_one_liner_labels_utf8): Likewise.
+       (test_diagnostic_show_locus_one_liner_utf8): Likewise.
+       (test_overlapped_fixit_printing_utf8): Likewise.
+       (test_overlapped_fixit_printing): Adapt for changes to
+       get_affected_columns, get_printed_columns and class corrections.
+       (test_overlapped_fixit_printing_2): Likewise.
+       (test_linenum_sep): New constant.
+       (test_left_margin): Likewise.
+       (test_offset_impl): Helper function for new test.
+       (test_layout_x_offset_display_utf8): New test.
+       (diagnostic_show_locus_c_tests): Call new tests.
+
+2019-12-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute
+       TYPE_CANONICAL from the element type only if it is true.  Remove a few
+       obsolete lines and adjust recursive call.
+       (fld_process_array_type): Adjust call to build_array_type_1.
+       (build_array_type): Likewise.
+       (build_nonshared_array_type): Likewise.
+
+2019-12-09  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Change
+       %s to %o in asm output.
+       (gather<mode>_insn_2offsets<exec>): Likewise.
+
+2019-12-09  Richard Earnshaw  <rearnsha@arm.com>
+
+       * config/arm/t-multilib: Use arm->thumb multilib reuse rules
+       on a-profile.
+
+2019-12-09  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * config/rs6000/rs6000.md (unnamed mfcr define_insn): Name this
+       set<mode>_cc.
+       (unnamed define_insn_and_split): Delete.
+       (unnamed define_insn): Delete.
+       (unnamed define_insn): Delete.
+       (unnamed define_split): Delete.
+
+2019-12-09  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       * regstat.c (regstat_bb_compute_calls_crossed): Add a cast to
+       avoid a warning.
+
+2019-12-09  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       PR middle-end/92410
+       * bb-reorder.c (pass_reorder_blocks::execute): Recompute
+       dataflow luids once basic blocks have been reordered.
+       * haifa-sched.c (reemit_notes): Create df insn record for each
+       new note.
+       * regstat.c (regstat_bb_compute_calls_crossed): Assert every
+       insn has an insn record before trying to use it.
+
+2019-12-09  Hongtao Liu  <hongtao.liu@intel.com>
+
+       * common/config/i386/i386-common.c
+       (OPTION_MASK_ISA_AVX5124FMAPS_SET): Rename to
+       OPTION_MASK_ISA2_AVX5124FMAPS_SET.
+       (OPTION_MASK_ISA_AVX5124VNNIW_SET, OPTION_MASK_ISA_AVX512BF16_SET,
+       OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
+       OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_WBNOINVD_SET,
+       OPTION_MASK_ISA_SGX_SET, OPTION_MASK_ISA_CX16_SET,
+       OPTION_MASK_ISA_MOVBE_SET, OPTION_MASK_ISA_PTWRITE_SET,
+       OPTION_MASK_ISA_MWAITX_SET, OPTION_MASK_ISA_CLZERO_SET,
+       OPTION_MASK_ISA_RDPID_SET, OPTION_MASK_ISA_VAES_SET,
+       OPTION_MASK_ISA_MOVDIR64B_SET, OPTION_MASK_ISA_WAITPKG_SET,
+       OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_ENQCMD_SET,
+       OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
+       OPTION_MASK_ISA_AVX5124VNNIW_UNSET,
+       OPTION_MASK_ISA_AVX512BF16_UNSET,
+       OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET,
+       OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_UNSET,
+       OPTION_MASK_ISA_SGX_UNSET, OPTION_MASK_ISA_CX16_UNSET,
+       OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_PTWRITE_UNSET,
+       OPTION_MASK_ISA_MWAITX_UNSET, OPTION_MASK_ISA_CLZERO_UNSET,
+       OPTION_MASK_ISA_RDPID_UNSET, OPTION_MASK_ISA_VAES_UNSET,
+       OPTION_MASK_ISA_MOVDIR64B_UNSET, OPTION_MASK_ISA_WAITPKG_UNSET,
+       OPTION_MASK_ISA_CLDEMOTE_UNSET, OPTION_MASK_ISA_ENQCMD_UNSET,
+       OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
+       OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
+       OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
+       OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
+       OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
+       OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
+       OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
+       OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
+       OPTION_MASK_ISA_ENQCMD): Ditto.
+       * config/i386/i386-builtin.def
+       (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
+       OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
+       OPTION_MASK_ISA_WBNOINVD, OPTION_MASK_ISA_PTWRITE,
+       OPTION_MASK_ISA_RDPID, OPTION_MASK_ISA_VAES,
+       OPTION_MASK_ISA_MOVDIR64B, OPTION_MASK_ISA_ENQCMD): Ditto.
+       * config/i386/i386-builtins.c (OPTION_MASK_ISA_MWAITX,
+       OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_WAITPKG,
+       OPTION_MASK_ISA_CLDEMOTE, OPTION_MASK_ISA_WBNOINVD): Ditto.
+       * config/i386/i386-c.c
+       (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
+       OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
+       OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
+       OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
+       OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
+       OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
+       OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
+       OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
+       OPTION_MASK_ISA_ENQCMD): Ditto.
+       * config/i386/i386-option.c: Ditto
+       * config/i386/i386.opt: Ditto..
+       * config/i386/i386.h: (TARGET_ISA_AVX5124FMAPS,
+       TARGET_ISA_AVX5124VNNIW,  TARGET_ISA_AVX512BF16,
+       TARGET_ISA_AVX512VP2INTERSECT, TARGET_ISA_PCONFIG,
+       TARGET_ISA_WBNOINVD, TARGET_ISA_SGX, TARGET_ISA_CX16,
+       TARGET_ISA_MOVBE, TARGET_ISA_PTWRITE, TARGET_ISA_MWAITX,
+       TARGET_ISA_CLZERO, TARGET_ISA_RDPID, TARGET_ISA_VAES,
+       TARGET_ISA_MOVDIR64B, TARGET_ISA_WAITPKG, TARGET_ISA_CLDEMOTE)
+       TARGET_ISA_ENQCMD): Ditto.
+
+2019-12-09  Sudakshina Das  <sudi.das@arm.com>
+           Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-vect-stmt.c (vectorizable_shift): Condition ndts for
+       vect_model_simple_cost call on scalar_shift_arg.
+
+2019-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/92834
+       * match.pd (A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
+       A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): New simplifications.
+
+2019-12-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
+
+       PR tree-optimization/89007
+       * tree-vect-patterns.c (vect_recog_average_pattern): If there is no
+       target support available, generate code to distribute rshift over plus
+       and add a carry.
+
+2019-12-09  Martin Liska  <mliska@suse.cz>
+
+       PR ipa/92737
+       * cgraph.c (symbol_table_test::symbol_table_test): Fix
+       coding style.
+       * cgraph.h (symtab_node::symtab_node): New constructor.
+       (cgraph_node::cgraph_node): Likewise.
+       (varpool_node::varpool_node): Likewise.
+       (symbol_table::allocate_cgraph_symbol): Use newly
+       created constructor.
+       (symbol_table::allocate_cgraph_symbol): Remove.
+       * cgraphunit.c (symtab_terminator): Likewise.
+       * varpool.c (varpool_node::create_empty): Use newly
+       created constructor.
+
+2019-12-09  Hongtao Liu  <hongtao.liu@intel.com>
+
+       PR target/92686
+       * config/i386/sse.md
+       (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
+       *<avx512>_cmp<mode>3<mask_scalar_merge_name>,
+       *<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
+       *<avx512>_ucmp<mode>3<mask_scalar_merge_name>): New.
+       * config/i386/i386.c (ix86_print_operand): New operand substitution.
+       * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode):
+       New function.
+       (ix86_expand_sse_cmp): Relax condition for integer mask from
+       512-bit vector to all 128/256/512-bit vector. Delete code gen
+       for avx512f compare patterns since we have generic pattern now.
+       (ix86_expand_sse_movcc): Adjust condition and codegen for
+       maskcmp.
+       (ix86_expand_int_sse_cmp): Don't canonicalize the comparison
+       when corresponding vector compare is available.
+
+2019-12-08  Sandra Loosemore  <sandra@codesourcery.com>
+
+       Revert:
+       2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * config/nios2/linux.h (LINK_EH_SPEC): Define.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraph.c (cgraph_node::dump): Make tp_first_run 64bit.
+       * cgraph.h (cgrpah_node): Likewise.
+       (tp_first_run_node_cmp): Deeclare.
+       * cgraphunit.c (node_cmp): Rename to ...
+       (tp_first_run_node_cmp): ... this; export; watch for 64bit overflows;
+       clear tp_first_run for no_reorder and !flag_profile_reorder_functions.
+       (expand_all_functions): Collect tp_first_run and normal functions to
+       two vectors so the other functions remain sorted. Do not check for
+       flag_profile_reorder_functions it is function local flag.
+       * profile.c (compute_value_histograms): Update tp_first_run printing.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * opts.c (common_handle_option): Do not clear ipa_reference for
+       -fprofile-use.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-split.c (split_function): Preserve 0 tp_first_run.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive
+       sanity check.
+
+2019-12-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR tree-optimization/92860
+       * common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add
+       Optimization flag.
+
+2019-12-07  Marek Polacek  <polacek@redhat.com>
+
+       PR c++/91678 - wrong error with decltype and location wrapper.
+       * fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR.
+
+2019-12-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR middle-end/90840
+       * expr.c (expand_assignment): In the case of a CONCAT on the LHS, make
+       sure to pass a valid inner mode in calls to simplify_gen_subreg.
+
+2019-12-07  Tobias Burnus  <tobias@codesourcery.com>
+           David Malcolm  <dmalcolm@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/87488
+       * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL
+       instead of ST sequence to terminate OSC 8 strings.
+
+2019-12-06  Andreas Krebbel  <krebbel@linux.ibm.com>
+           Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/92176
+       * lra.c (simplify_subreg_regno): Don't permit unconditional
+       changing mode for LRA too.
+
+2019-12-06  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS)
+       (TCTX_CAPTURE_BY_COPY): New type_context_kinds.
+       * config/aarch64/aarch64-sve-builtins.cc (verify_type_context):
+       Handle them.
+
+2019-12-06  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o
+       in the asm output.
+
+2019-12-06  Andrew Stubbs  <ams@codesourcery.com>
+
+       * config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI.
+       (VEC_1REG_ALT): Likewise.
+       (VEC_ALL1REG_MODE): New mode iterator.
+       (VEC_1REG_INT_MODE): Remove V64QI and V64HI.
+       (VEC_1REG_INT_ALT): Likewise.
+       (VEC_ALL1REG_INT_MODE): New mode interator.
+       (VEC_ALL1REG_INT_ALT): Likewise.
+       (VEC_REG_MODE): Remove V64QI and V64HI.
+       (VEC_ALLREG_MODE): New mode interator.
+       (vec_merge): Change to VEC_ALLREG_MODE.
+       (vec_merge_with_clobber): Likewise.
+       (vec_merge_with_vcc): Likewise.
+       (mov<mode>): Likewise.
+       (mov<mode>_unspec): Likewise.
+       (*mov<mode>): Change to VEC_ALL1REG_MODE.
+       (mov<mode>_exec): Likewise.
+       (*mov<mode>_exec_match): Likewise.
+       (mov<mode>_sgprbase): Likewise.
+       (reload_in<mode>): Change to VEC_ALLREG_MODE.
+       (reload_out<mode>): Likewise.
+       (scalar address splits): Likewise.
+       (*vec_set<mode>): Change to VEC_ALL1REG_MODE.
+       (vec_set<mode>): Change to VEC_ALLREG_MODE.
+       (*vec_set<mode>_1): Change to VEC_ALL1REG_MODE.
+       (vec_duplicate<mode><exec>): Likewise.
+       (vec_extract<mode><scalar_mode>): Likewise.
+       (vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE.
+       (gather_load<mode>): Likewise.
+       (gather<mode>_exec): Likewise.
+       (gather<mode>_expr<exec>): Likewise.
+       (gather<mode>_insn_1offset<exec>): Likewise.
+       (gather<mode>_insn_1offset_ds<exec>): Likewise.
+       (gather<mode>_insn_2offsets<exec>): Likewise.
+       (ds_bpermute<mode>): Change to VEC_ALL1REG_MODE.
+       (VEC_INT_MODE): Remove V64QI and V64HI.
+       (vcond_mask_<mode>di): Change to VEC_ALLREG_MODE.
+       (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to
+       VEC_ALL1REG_MODE.
+       (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise.
+       (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise.
+       (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise.
+       (maskload<mode>di): Change to VEC_ALL1REG_MODE.
+       (maskstore<mode>di): Likewise.
+       (mask_gather_load<mode>): Likewise.
+       (mov_from_lane63_<mode>): Likewise.
+       * config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode
+       and V64HImode vectorization.
+       (gcn_related_vector_mode): New function.
+       (TARGET_VECTORIZE_RELATED_MODE): New define.
+
+2019-12-06  Tobias Burnus  <tobias@codesourcery.com>
+           Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       * omp-low.c (lower_omp_target): For optional arguments, deref once
+       more to obtain the type.
+
+2019-12-06  Richard Biener  <rguenther@suse.de>
+
+       * match.pd (nop_convert): Remove empty match.  Use nop_convert?
+       everywhere.
+
+2019-12-06  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-data-ref.c (prune_runtime_alias_test_list): Exit early
+       for empty vectors.  Avoid using ordered_remove and instead
+       shuffle the vector as we go.
+
+2019-12-06  Richard Biener  <rguenther@suse.de>
+
+       * genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and
+       VIEW_CONVERT{0,1,2}.
+       (expr::opt_grp): Add and initialize.
+       (lower_opt_convert): Rename to ...
+       (lower_opt): ... and work on opt_grp, simply switching operations
+       from being optional to being present or not.
+       (has_opt_convert): Rename to ...
+       (has_opt): ... and adjust.
+       (parser::parse_operation): Return the optional opt_grp,
+       remove special-casing of conditional operations and more generally
+       parse [digit]'?'.
+       (parser::parse_expr): Stick on the parsed opt_grp and perform
+       rough verification.
+       (parser::parse_for): Remove now unnecessary code.
+       (main): Likewise.
+       * doc/match-and-simplify.texi: Mention ? now works on all
+       unary operations and also match predicates.
+
+2019-12-06  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel
+       functions, not inline clones.
+
+2019-12-06  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR.
+
+2019-12-06  Richard Biener  <rguenther@suse.de>
+
+       * genmatch.c (c_expr::gen_transform): Emit newlines from line
+       number changes rather than after every semicolon.
+
+2019-12-06  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/92819
+       * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts
+       into the last lane.  For two-element vectors try inserting
+       into the last lane when inserting into the first fails.
+
+2019-12-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * common.opt (fprofile-partial-training): Terminate description with
+       full stop.
+
+2019-12-05  Martin Sebor  <msebor@redhat.com>
+
+       PR middle-end/92622
+       * tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable
+       left uninitialized by get_addr_base_and_unit_offset on failure.
+
+2019-12-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr.
+       (detect_type_change_from_memory_writes): Remoe parameter JFUNC.
+       (detect_type_change): Likewise.
+       (detect_type_change_ssa): Likewise.
+       (ipa_analyze_virtual_call_uses): Update.
+
+2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * config/nios2/linux.h (LINK_EH_SPEC): Define.
+
+2019-12-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local
+
+2019-12-05  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraphclones.c (localize_profile): New function.
+       (cgraph_node::create_clone): Use it for partial profiles.
+       * common.opt (fprofile-partial-training): New flag.
+       * doc/invoke.texi (-fprofile-partial-training): Document.
+       * ipa-cp.c (update_profiling_info): For partial profiles do not
+       set function profile to zero.
+       * profile.c (compute_branch_probabilities): With partial profile
+       watch if edge count is zero and turn all probabilities to guessed.
+       (compute_branch_probabilities): For partial profiles do not apply
+       profile when entry count is zero.
+       * tree-profile.c (tree_profiling): Only do value_profile_transformations
+       when profile is read.
+
+2019-12-05  Sudakshina Das  <sudi.das@arm.com>
+
+       * tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type
+       check from if condition.
+
+2019-12-05  Tobias Burnus  <tobias@codesourcery.com>
+
+       * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr
+       and Fortran's optional arguments, unconditionally add the is-present
+       condition before the libgomp call.
+
+2019-12-05  Richard Sandiford  <richard.sandiford@arm.com>
+
+       PR middle-end/92768
+       * tree-core.h (OEP_BITWISE): New flag.
+       * fold-const.c (operand_compare::operand_equal_p): Handle it.
+       * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
+
+2019-12-05  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/92818
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Improve
+       heuristics on what don't care element to choose.
+       * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo.
+
+2019-12-05  Martin Liska  <mliska@suse.cz>
+
+       PR gcov-profile/92817
+       * coverage.c (build_gcov_exit_decl): Remove superfluous
+       void_type_node.
+
+2019-12-05  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * config/msp430/msp430.md (cbranch<mode>4): Use
+       msp430_general_dst_nonv_operand instead of nonimmediate_operand for
+       dest operand of CMP instruction.
+       (cbranchpsi4_real): Likewise.
+       (cbranchqi4_real): Likewise.
+       (cbranchhi4_real): Likewise.
+       (cbranchpsi4_reversed): Likewise.
+       (cbranchqi4_reversed): Likewise.
+       (cbranchhi4_reversed): Likewise.
+
+2019-12-05  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/92803
+       * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
+       invariant vector construction.
+
+2019-12-05  Martin Liska  <mliska@suse.cz>
+
+       PR gcov-profile/91971
+       * coverage.c (coverage_init): Mangle full path
+       only when -fprofile-dir is used.
+
 2019-12-05  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/92791
        Handle variable offsets and indices.
        * builtins.h (gimple_call_alloc_size): Declare.
        (compute_objsize): Add argument.
-       * gcc/gimple-ssa-warn-restrict.c: Remove assertions.
+       * gimple-ssa-warn-restrict.c: Remove assertions.
        * tree-ssa-strlen.c (handle_store): Handle calls to allocated objects.
 
 2019-12-04  Julian Brown  <julian@codesourcery.com>
 2019-12-04  Kewen Lin  <linkw@gcc.gnu.org>
 
        PR target/92760
-       * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use
+       * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use
        VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P.
 
 2019-12-03  Jan Hubicka  <hubicka@ucw.cz>
 2019-11-28  Kewen Lin  <linkw@gcc.gnu.org>
 
        PR target/92566
-       * gcc/config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check
+       * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check
        by VECTOR_UNIT_NONE_P instead.
 
 2019-11-28  Hongtao Liu  <hongtao.liu@inte.com>
 
-       * gcc/config/i386/sse.md (avx512f_maskcmp<mode>3):
+       * config/i386/sse.md (avx512f_maskcmp<mode>3):
        Refine VF to VF_AVX512VL.
 
 2019-11-27  Michael Meissner  <meissner@linux.ibm.com>
 2019-11-27  Kewen Lin  <linkw@gcc.gnu.org>
 
        PR tree-optimization/91790
-       * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted
+       * tree-vect-stmts.c (vectorizable_load): Use the adjusted
        DR for vect_setup_realignment when first_stmt_info is different
        from first_stmt_info_for_drptr.
 
        (ipa_update_overall_fn_summary): Add RESET parameter.
        * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype.
        * ipa-inline-transform.c (inline_call): Enable incremental updates.
-       
+
 2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
 
        * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
        (maybe_warn_overlap): New function.
        (pass_sprintf_length::compute_format_length): Call it.
        (pass_sprintf_length::handle_gimple_call): Initialize new members.
-       * gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
+       * tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
 
 2019-11-12  Ilya Leoshkevich  <iii@linux.ibm.com>
 
            Frederik Harwath  <frederik@codesourcery.com>
            Thomas Schwinge  <thomas@codesourcery.com>
 
-       gcc/
        * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
        enumeration constant.
        (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
 2019-11-11  Jiufu Guo  <guojiufu@linux.ibm.com>
 
        PR tree-optimization/88760
-       * gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
-       * gcc/common/config/rs6000/rs6000-common.c
+       * config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
+       * common/config/rs6000/rs6000-common.c
        (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
        Turn on -funroll-loops and -munroll-only-small-loops.
        [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.