| 2018-12-31 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/86814 |
| * config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): |
| Define to speculation_safe_value_not_needed. |
| |
| 2018-12-31 Martin Liska <mliska@suse.cz> |
| |
| * predict.c (set_even_probabilities): Include also |
| unlikely_count in calculation. |
| (combine_predictions_for_bb): Consider also HOT and |
| COLD labels predictions. |
| * predict.def (PRED_HOT_LABEL): Move it just after |
| __builtin_expect_with_probability predictor. |
| (PRED_COLD_LABEL): Likewise. |
| |
| 2018-12-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune.def: Enable inter_unit_moves_to_vec for generic. |
| |
| 2018-12-30 Martin Sebor <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments |
| on code's intent. |
| |
| * gimple-fold.c (strlen_range_kind): New enum. |
| (get_range_strlen): Update signature to use strlen_range_kind |
| instead of type+fuzzy. |
| (get_range_strlen_tree): Update signature to use |
| strlen_range_kind instead of type+fuzzy. Pass rkind down to |
| get_range_strlen. Check the rkind enum value instead of |
| type+fuzzy. |
| (get_range_strlen): Similarly. |
| (get_maxval_strlen): Update signature to make NONSTR argument have |
| a default value and make static. Add asserts to ensure sanity of |
| arguments. Update calls to get_range_strlen. |
| (gimple_fold_builtin_strcpy): Update calls to get_maxval_strlen. |
| (gimple_fold_builtin_strcat, gimple_fold_builtin_fputs): Similarly. |
| (gimple_fold_builtin_memory_chk): Similarly. |
| (gimple_fold_builtin_stxcpy_chk): Similarly. |
| (gimple_fold_builtin_snprintf_chk): Similarly. |
| (gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Similarly. |
| * gimple-fold.h (get_maxval_strlen): Delete prototype. |
| |
| 2018-12-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_attr): Warn when the critical and |
| interrupt function attributes are used together. |
| * gcc/doc/extend.texi: Update documentation on the critical attribute. |
| |
| 2018-12-29 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config.gcc (hppa*64*-*-linux*): Add pa/t-pa to tmake_file. Define |
| d_target_objs. |
| (hppa*-*-openbsd*): Likewise. |
| (hppa[12]*-*-hpux10*): Likewise. |
| (hppa*64*-*-hpux11*): Likewise. |
| (hppa[12]*-*-hpux11*): Likewise. |
| |
| 2018-12-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/88586 |
| * omp-low.c (lower_omp_task_reductions): Set DECL_CONTEXT on field |
| and ifield. Update TYPE_ALIGN from alignment of field, ifield or |
| bfield. |
| |
| 2018-12-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add |
| sil, dil, bpl and spl aliases. |
| |
| 2018-12-28 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid |
| undesirable warning. |
| |
| 2018-12-28 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-expand.c (expand_omp_target): Restructure OpenACC vs. OpenMP |
| code paths. Update for libgomp OpenACC entry points change. |
| |
| 2018-12-28 Thomas Schwinge <thomas@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. |
| |
| 2018-12-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. |
| (polymorphic_call_target_hasher::hash): Hash it. |
| (polymorphic_call_target_hasher::equal): Compare it. |
| (possible_polymorphic_call_targets): Set it. |
| * tree.c (free_lang_data): Rebuild type inheritance graph even on |
| non-LTO path. |
| |
| 2018-12-27 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/88225 |
| * gcov.c(source_info::get_functions_at_location): |
| Use newly added line_to_function_map. |
| (source_info::add_function): New. |
| (output_json_intermediate_file): Use a pointer return |
| type for get_functions_at_location. |
| (process_all_functions): Use add_function instead |
| of direct push to a s->functions container. |
| (release_structures): Release ident_to_fn. |
| (read_graph_file): Register function into ident_to_fn. |
| (read_count_file): Use the map. |
| (output_lines): Handle pointer return type of |
| get_functions_at_location. |
| |
| 2018-12-27 Martin Liska <mliska@suse.cz> |
| |
| * builtins.c (expand_movstr): Compare with RETURN_BEGIN. |
| * expr.c (move_by_pieces): Likewise. |
| (store_by_pieces): Likewise. |
| (store_expr): Fix GNU coding style. |
| |
| 2018-12-26 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64-cores.def (octeontx): New. |
| (octeontx81): Likewise. |
| (octeontx83): Likewise. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81 |
| and octeontx83. |
| |
| 2018-12-24 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-fold.c (get_range_strlen_tree): Factored out of |
| get_range_strlen. Minor comment updates/additions. Assert |
| argument is not a simple SSA_NAME. |
| (get_range_strlen): Call get_range_strlen_tree as appropriate. |
| Minor comment updates/additions. |
| |
| 2018-12-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (dump_targets): Cap number of targets printed. |
| (dump_possible_polymorphic_call_targets): Add verbose parameter. |
| (ipa_devirt): Use it. |
| * ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose |
| parametrs. |
| |
| 2018-12-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/88140 |
| * tree.c (fld_simplified_type): Temporarily disable array |
| simplification. |
| |
| 2018-12-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations |
| for method whose basetype was already reported. |
| * ipa-devirt.c (odr_type_violation_reported_p): New. |
| * ipa-utils.h (odr_type_violation_reported_p): Declare. |
| |
| 2018-12-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure.ac (dwarf2_debug_line): Check for the debug_line |
| section using otool when there’s no objdump available. |
| * configure: Regenerate. |
| |
| 2018-12-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; |
| also handle rescaling of mismatched profiles. |
| * ipa-fnsummary.c (analyze_function): Handle speculative edges. |
| |
| 2018-12-23 Martin Sebor <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * builtins.h (c_strlen_data): Add new fields and comments. |
| * builtins.c (unterminated_array): Change field reference from |
| "len" to "minlen" in c_strlen_data instance. |
| * gimple-fold.c (get_range_strlen): Likewise. |
| * gimple-ssa-sprintf.c (get_string_length): Likewise. |
| |
| * builtins.c (unterminated_array): Rename "data" to "lendata". Fix |
| a few comments. |
| (expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise. |
| (fold_builtin_strlen): Likewise. |
| * gimple-fold.c (get_range_strlen): Likewise. Also rename a couple |
| instances of "type" to "optype" and "arg" to "fld". |
| |
| * builtins.c (unterminated_array): Use empty brace initialization |
| for c_strlen_data. |
| (c_strlen, expand_builtin_strnlen): Likewise. |
| (expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise. |
| * gimple-fold.c (get_range_strlen): Likewise. |
| (gimple_fold_builtin_stpcpy): Likewise. |
| * gimple-ssa-sprintf.c (get_string_length): Likewise. |
| |
| 2018-12-23 Alan Modra <amodra@gmail.com> |
| |
| PR 88346 |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message. Handle |
| -mcpu=rs64, not -mcpu=rs64a. Handle -mcpu=powerpc64 and -mcpu=titan. |
| * config/rs6000/driver-rs6000.c (asm_names): Similarly. |
| * config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message. Handle |
| -mcpu=rs64, not -mcpu=rs64a. |
| * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. |
| |
| 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files. |
| (debug_objcopy): Improve temp filenames. Append the early |
| debug objects to the outfiles. Remove the phase prelinking the |
| early debug. Emit the early debug filenames for ld. |
| |
| 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. |
| |
| 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file |
| unless we actually did some LTO. |
| (has_lto_section, is_lto_object_file): New. |
| (maybe_lto_object_file): Remove. |
| (scan_prog_file): Use is_lto_object_file() instead of scanning the |
| output of nm. |
| |
| 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * collect2.c (main): Parse the output file early so we can make nicer |
| temp names. Respond to “-save-temps” in the GCC OPTIONS. |
| (maybe_unlink): Don’t print “[Leaving…”] for files we never created |
| and don’t exist. |
| |
| 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * collect2.c (main): Combine flags from both the command line and |
| COLLECT_GCC_OPTIONS to determine the set in force |
| |
| 2018-12-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.c (ipa_merge_profiles): Recompute summaries. |
| |
| 2018-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/85594 |
| PR middle-end/88553 |
| * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition |
| if needed. |
| (expand_omp_for_generic): Don't clobber t temporary for ordered loops. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/88561 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle |
| arguments of thunks correctly. |
| (ipa_polymorphic_call_context::get_dynamic_context): Be ready for |
| NULL instance pinter. |
| * lto-cgraph.c (lto_output_node): Always stream thunk info. |
| |
| 2018-12-21 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") |
| ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern |
| definitions. |
| |
| 2018-12-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/87727 |
| * combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine |
| again moves from leaf hard registers. |
| |
| * final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak. |
| |
| 2018-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88522 |
| * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, |
| *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, |
| *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for |
| -masm=intel. |
| (gatherq_mode): Remove mode iterator. |
| (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead |
| of <xtg_mode>. |
| (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. |
| (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, |
| *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. |
| |
| PR rtl-optimization/88563 |
| * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode |
| and mode arguments to convert_modes. Likewise swap mode and word_mode |
| arguments. Handle both arguments with VOIDmode before convert_modes |
| of one of them. Formatting fixes. |
| |
| 2018-12-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88556 |
| * internal-fn.def (COSH): New. |
| (SINH): Ditto. |
| (TANH): Ditto. |
| * optabs.def (cosh_optab): New. |
| (sinh_optab): Ditto. |
| (tanh_optab): Ditto. |
| * config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype. |
| (ix86_emit_i387_cosh): Ditto. |
| (ix86_emit_i387_tanh): Ditto. |
| * config/i386/i386.c (ix86_emit_i387_sinh): New function. |
| (ix86_emit_i387_cosh): Ditto. |
| (ix86_emit_i387_tanh): Ditto. |
| * config/i386/i386.md (sinhxf2): New expander. |
| (sinh<mode>2): Ditto. |
| (coshxf2): Ditto. |
| (cosh<mode>2): Ditto. |
| (tanhxf2): Ditto. |
| (tanh<mode>2): Ditto. |
| |
| 2018-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88547 |
| * config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize |
| x > y ? 0 : -1 into min (x, y) == x ? -1 : 0. |
| |
| 2018-12-21 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>): Allow |
| memory input. |
| |
| 2018-12-21 Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc (tmake_file): Add name to tmake_file for |
| each @name in --with-multilib-list on arm-*-* targets. |
| * doc/install.texi (with-multilib-list): Document it. |
| |
| 2018-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use |
| DR_TARGET_ALIGNMENT on dr_info rather than dr. Spelling fixes. |
| |
| 2018-12-20 Joern Rennecke <joern.rennecke@riscy-ip.com> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do |
| versioning for data accesses with misaligned step. |
| |
| 2018-12-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR c/51628 |
| * doc/invoke.texi: Document -Wno-address-of-packed-member. |
| |
| 2018-12-20 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/88457 |
| * ira-color.c (fast_allocation): Choose the best cost hard reg. |
| |
| 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs. |
| (SVE_FP_UNARY): Sort. |
| |
| 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use |
| sve_fmla_op rather than sve_fmad_op for the movprfx alternative. |
| |
| 2018-12-20 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/88214 |
| * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that |
| ptr is a pointer. |
| |
| 2018-12-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/84362 |
| * tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h. |
| (struct im_mem_ref): add ref_canonical flag. |
| (struct mem_ref_hasher): Use ao_ref as compare_type. |
| (mem_ref_hasher::equal): Adjust and add variant comparing ao_ref |
| parts. |
| (mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical |
| member. |
| (gather_mem_refs_stmt): Set up ao_ref early and do the lookup |
| using it. If we have non-equal refs canonicalize the one |
| in the hashtable used for insertion. |
| (tree_ssa_lim_initialize): Adjust. |
| |
| 2018-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88547 |
| * config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to |
| emit vpmovm2? instruction perhaps after knot?. Reorganize code |
| so that it doesn't have to test !maskcmp in almost every conditional. |
| |
| 2018-12-20 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define. |
| |
| 2018-12-19 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on |
| aarch64*-*-freebsd* |
| |
| 2018-12-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from |
| SWI1248_AVX512BWDQ2_64. Unconditionally enable HImode. |
| (*cmp<mode>_ccz_1): Emit kortest instead of ktest insn. |
| Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for |
| TARGET_AVX512F. |
| |
| 2018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> |
| |
| * config/arm/elf.h: Update comment about condition that need to |
| match with libgcc/config/arm/lib1funcs.S to also include |
| libgcc/config/arm/t-arm. |
| * doc/sourcebuild.texi (output-exists, output-exists-not): Rename |
| subsubsection these directives are in to "Check for output files". |
| Move scan-symbol to that section and add to it new scan-symbol-not |
| directive. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_CTA_SIZE): Define. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * omp-offload.c (oacc_fn_attrib_level): Remove static. |
| * omp-offload.h (oacc_fn_attrib_level): Declare. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * omp-offload.c (oacc_get_default_dim): New function. |
| * omp-offload.h (oacc_get_default_dim): Declare. |
| |
| 2018-12-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/87504 |
| * gcc-rich-location.c |
| (maybe_range_label_for_tree_type_mismatch::get_text): Move here from |
| c/c-typeck.c. |
| (binary_op_rich_location::binary_op_rich_location): New ctor. |
| (binary_op_rich_location::use_operator_loc_p): New function. |
| * gcc-rich-location.h |
| (class maybe_range_label_for_tree_type_mismatch)): Move here from |
| c/c-typeck.c. |
| (struct op_location_t): New forward decl. |
| (class binary_op_rich_location): New class. |
| * tree.h (struct op_location_t): New struct. |
| |
| 2018-12-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/43064 |
| PR c++/43486 |
| * convert.c: Include "selftest.h". |
| (preserve_any_location_wrapper): New function. |
| (convert_to_pointer_maybe_fold): Update to handle location |
| wrappers. |
| (convert_to_real_maybe_fold): Likewise. |
| (convert_to_integer_1): Strip expr when using TREE_OVERFLOW. |
| Handle location wrappers when checking for INTEGER_CST. |
| (convert_to_integer_maybe_fold): Update to handle location |
| wrappers. |
| (convert_to_complex_maybe_fold): Likewise. |
| (selftest::test_convert_to_integer_maybe_fold): New functions. |
| (selftest::convert_c_tests): New function. |
| * convert.h (preserve_any_location_wrapper): New decl. |
| * fold-const.c (size_binop_loc): Strip location wrappers when |
| using TREE_OVERFLOW. |
| (operand_equal_p): Strip any location wrappers. |
| (integer_valued_real_p): Strip any location wrapper. |
| * selftest-run-tests.c (selftest::run_tests): Call |
| selftest::convert_c_tests. |
| * selftest.h (selftest::convert_c_tests): New decl. |
| * tree.c (build_complex): Assert that REAL and IMAG are constants. |
| (integer_zerop): Look through location wrappers. |
| (integer_onep): Likewise. |
| (integer_each_onep): Likewise. |
| (integer_all_onesp): Likewise. |
| (integer_minus_onep): Likewise. |
| (integer_pow2p): Likewise. |
| (integer_nonzerop): Likewise. |
| (integer_truep): Likewise. |
| (fixed_zerop): Likewise. |
| (real_zerop): Likewise. |
| (real_onep): Likewise. |
| (real_minus_onep): Likewise. |
| (tree_int_cst_equal): Likewise. |
| (simple_cst_equal): Treat location wrappers with non-equal source |
| locations as being unequal. |
| (uniform_integer_cst_p): Look through location wrappers. |
| (maybe_wrap_with_location): Don't create wrappers if any |
| auto_suppress_location_wrappers are active. |
| (suppress_location_wrappers): New variable. |
| (selftest::test_predicates): New test. |
| (selftest::tree_c_tests): Call it. |
| * tree.h (CONSTANT_CLASS_OR_WRAPPER_P): New macro. |
| (suppress_location_wrappers): New decl. |
| (class auto_suppress_location_wrappers): New class. |
| |
| 2018-12-19 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped. |
| (_mm_hsub_epi32): Likewise. |
| (_mm_shuffle_epi8): Fix reversed interpretation of parameters. |
| (_mm_shuffle_pi8): Likewise. |
| (_mm_addubs_pi16): Likewise. |
| |
| 2018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> |
| |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Restrict to TARGET_32BIT |
| targets. |
| * config/arm/arm.c (output_return_instruction): Only check |
| TARGET_HARD_FLOAT to decide whether FP instructions are available. |
| |
| 2018-12-19 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization |
| dump files): Add offload-rtl. |
| |
| 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/88213 |
| * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load): |
| Require TARGET_POWERPC64. |
| |
| 2018-12-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88533 |
| Revert |
| 2018-04-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/28364 |
| PR tree-optimization/85275 |
| * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after |
| copying first exit test. |
| |
| * tree-ssa-loop-ch.c: Include tree-phinodes.h and |
| ssa-iterators.h. |
| (should_duplicate_loop_header_p): Track whether stmt compute |
| loop invariants or values based on IVs. Apart from the |
| original loop header only duplicate blocks with exit tests |
| that are based on IVs or invariants. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_gen_shared_bcast, shared_prop_gen) |
| (nvptx_goacc_expand_accel_var): Use MAX and ROUND_UP. |
| (nvptx_assemble_value, nvptx_output_skip): Use MIN. |
| (nvptx_shared_propagate, nvptx_single, nvptx_expand_shared_addr): Use |
| MAX. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_gen_wcast): Rename as |
| nvptx_gen_warp_bcast. |
| (nvptx_gen_wcast): Rename to nvptx_gen_shared_bcast, add bool |
| vector argument, and update call to nvptx_gen_shared_bcast. |
| (propagator_fn): Add bool argument. |
| (nvptx_propagate): New bool argument, pass bool argument to fn. |
| (vprop_gen): Rename to warp_prop_gen, update call to |
| nvptx_gen_warp_bcast. |
| (nvptx_vpropagate): Rename to nvptx_warp_propagate, update call to |
| nvptx_propagate. |
| (wprop_gen): Rename to shared_prop_gen, update call to |
| nvptx_gen_shared_bcast. |
| (nvptx_wpropagate): Rename to nvptx_shared_propagate, update call |
| to nvptx_propagate. |
| (nvptx_wsync): Rename to nvptx_cta_sync. |
| (nvptx_single): Update calls to nvptx_gen_warp_bcast, |
| nvptx_gen_shared_bcast and nvptx_cta_sync. |
| (nvptx_process_pars): Likewise. |
| (write_worker_buffer): Rename as write_shared_buffer. |
| (nvptx_file_end): Update calls to write_shared_buffer. |
| (nvptx_expand_worker_addr): Rename as nvptx_expand_shared_addr. |
| (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. |
| (nvptx_get_worker_red_addr): Rename as nvptx_get_shared_red_addr. |
| (nvptx_goacc_reduction_setup): Update call to |
| nvptx_get_shared_red_addr. |
| (nvptx_goacc_reduction_fini): Likewise. |
| (nvptx_goacc_reduction_teardown): Likewise. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (worker_bcast_size): Rename as |
| oacc_bcast_size. |
| (worker_bcast_align): Rename as oacc_bcast_align. |
| (worker_bcast_sym): Rename as oacc_bcast_sym. |
| (nvptx_option_override): Update usage of oacc_bcast_*. |
| (struct wcast_data_t): Rename as broadcast_data_t. |
| (nvptx_gen_wcast): Update type of data argument and usage of |
| oacc_bcast_align. |
| (wprop_gen): Update type of data_ and usage of oacc_bcast_align. |
| (nvptx_wpropagate): Update type of data and usage of |
| oacc_bcast_{sym,size}. |
| (nvptx_single): Update type of data and usage of oacc_bcast_size. |
| (nvptx_file_end): Update usage of oacc_bcast_{sym,align,size}. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.md (nvptx_barsync): Add and handle operand. |
| * config/nvptx/nvptx.c (nvptx_wsync): Update call to gen_nvptx_barsync. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_single): Always pass false to |
| nvptx_wsync. |
| (nvptx_process_pars): Likewise. |
| |
| 2018-12-19 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_previous_fndecl): Declare. |
| (nvptx_set_current_function): New function. |
| (TARGET_SET_CURRENT_FUNCTION): Define. |
| |
| 2018-12-19 Shaokun Zhang <zhangshaokun@hisilicon.com> |
| |
| * config/aarch64/aarch64-cores.def (tsv110): Fix architecture. This |
| part is really Armv8.2 with some permitted Armv8.4 extensions. |
| |
| 2018-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88541 |
| * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable |
| for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. |
| |
| 2018-12-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR testsuite/86153 |
| PR middle-end/83239 |
| * vr-values.c |
| (vr_values::vrp_evaluate_conditional_warnv_with_ops): Extend |
| simplification of overflow tests to cover cases in which we |
| can determine the result of the comparison. |
| |
| 2018-12-19 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (afdo_indirect_call): Skip generating histogram |
| value if we can't find cgraph_node for then indirected callee. Save |
| profile_id of the cgraph_node in histogram value's first counter. |
| * value-prof.c (gimple_value_profile_transformations): Don't skip |
| for flag_auto_profile. |
| |
| 2018-12-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87759 |
| * lra-assigns.c (lra_split_hard_reg_for): Recalculate |
| non_reload_pseudos. |
| |
| 2018-12-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88464 |
| * config/i386/i386-builtin-types.def |
| (VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT, |
| VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT, |
| VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT, |
| VOID_FTYPE_PINT_QI_V4DI_V8SI_INT, |
| VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT, |
| VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT, |
| VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT, |
| VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): New builtin types. |
| * config/i386/i386.c (enum ix86_builtins): Add |
| IX86_BUILTIN_SCATTERALTSIV4DF, IX86_BUILTIN_SCATTERALTDIV8SF, |
| IX86_BUILTIN_SCATTERALTSIV4DI, IX86_BUILTIN_SCATTERALTDIV8SI, |
| IX86_BUILTIN_SCATTERALTSIV2DF, IX86_BUILTIN_SCATTERALTDIV4SF, |
| IX86_BUILTIN_SCATTERALTSIV2DI and IX86_BUILTIN_SCATTERALTDIV4SI. |
| (ix86_init_mmx_sse_builtins): Fix up names of IX86_BUILTIN_GATHERALT*, |
| IX86_BUILTIN_GATHER3ALT* and IX86_BUILTIN_SCATTERALT* builtins to |
| match the IX86_BUILTIN codes. Build IX86_BUILTIN_SCATTERALTSIV4DF, |
| IX86_BUILTIN_SCATTERALTDIV8SF, IX86_BUILTIN_SCATTERALTSIV4DI, |
| IX86_BUILTIN_SCATTERALTDIV8SI, IX86_BUILTIN_SCATTERALTSIV2DF, |
| IX86_BUILTIN_SCATTERALTDIV4SF, IX86_BUILTIN_SCATTERALTSIV2DI and |
| IX86_BUILTIN_SCATTERALTDIV4SI decls. |
| (ix86_vectorize_builtin_scatter): Expand those new builtins. |
| |
| 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): |
| Describe when a typedef name can be used as the type specifier for |
| a vector type, and when it cannot. |
| |
| 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN. |
| |
| 2018-12-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88513 |
| PR target/88514 |
| * optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab, |
| vec_unpacks_sbool_lo_optab): New optabs. |
| * optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab |
| and pass additional argument if both input and target have the same |
| scalar mode of VECTOR_BOOLEAN_TYPE_P vectors. |
| * expr.c (expand_expr_real_2) <case VEC_PACK_TRUNC_EXPR>: Handle |
| VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode |
| as the operands using vec_pack_sbool_trunc_optab. |
| * tree-vect-stmts.c (supportable_widening_operation): Use |
| vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions |
| where both wider_vectype and vectype have the same scalar mode. |
| (supportable_narrowing_operation): Similarly use |
| vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same |
| scalar mode. |
| * config/i386/i386.c (ix86_get_builtin) |
| <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Check for VECTOR_MODE_P |
| rather than non-VOIDmode. |
| * config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_<mode>): |
| Remove useless ()s around "register_operand", formatting fixes. |
| (vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi, |
| vec_unpacks_sbool_hi_qi): New expanders. |
| * doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M, |
| vec_unpacks_sbool_lo_M): Document. |
| |
| 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits |
| of src in nonzero_bits_mode if the mode of src is MODE_INT and |
| HWI_COMPUTABLE. |
| (reg_nonzero_bits_for_combine): Add clarification to comment. |
| |
| 2018-12-18 Wei Xiao <wei3.xiao@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake. |
| * config/i386/i386.c (fold_builtin_cpu): Handle cascadelake. |
| * doc/extend.texi: Add cascadelake. |
| 2018-12-17 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/87870 |
| * config/rs6000/vsx.md (nW): New mode iterator. |
| (vsx_mov<mode>_64bit): Use it. Remove redundant GPR 0/-1 alternative. |
| Update length attribute for (<??r>, <nW>) alternative. |
| (vsx_mov<mode>_32bit): Likewise. |
| |
| 2018-12-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH, |
| PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file. |
| |
| 2018-12-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_WARP_SIZE): Define. |
| (nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. |
| |
| 2018-12-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_single): Fix whitespace. |
| (nvptx_neuter_pars): Likewise. |
| |
| 2018-12-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran |
| bug PR72741 by overriding dims parameter for routines. |
| |
| 2018-12-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using |
| predicate vars. |
| |
| 2018-12-17 Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): |
| New prototype. |
| (aarch64_epilogue_uses): Ditto. |
| * config/aarch64/aarch64.c (aarch64_attribute_table): New array. |
| (aarch64_simd_decl_p): New function. |
| (aarch64_reg_save_mode): New function. |
| (aarch64_function_ok_for_sibcall): Check for simd calls. |
| (aarch64_layout_frame): Check for simd function. |
| (aarch64_gen_storewb_pair): Handle E_TFmode. |
| (aarch64_push_regs): Use aarch64_reg_save_mode to get mode. |
| (aarch64_gen_loadwb_pair): Handle E_TFmode. |
| (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode. |
| (aarch64_gen_store_pair): Handle E_TFmode. |
| (aarch64_gen_load_pair): Ditto. |
| (aarch64_save_callee_saves): Handle different mode sizes. |
| (aarch64_restore_callee_saves): Ditto. |
| (aarch64_components_for_bb): Check for simd function. |
| (aarch64_epilogue_uses): New function. |
| (aarch64_process_components): Check for simd function. |
| (aarch64_expand_prologue): Ditto. |
| (aarch64_expand_epilogue): Ditto. |
| (aarch64_expand_call): Ditto. |
| (aarch64_use_simple_return_insn_p): New function. |
| (TARGET_ATTRIBUTE_TABLE): New define. |
| * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine. |
| (FP_SIMD_SAVED_REGNUM_P): New macro. |
| * config/aarch64/aarch64.md (simple_return): New define_expand. |
| (load_pair_dw_tftf): New instruction. |
| (store_pair_dw_tftf): Ditto. |
| (loadwb_pair<TX:mode>_<P:mode>): Ditto. |
| (storewb_pair<TX:mode>_<P:mode>): Ditto. |
| |
| 2018-12-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88502 |
| * internal-fn.def (ACOSH): New. |
| (ASINH): Ditto. |
| (ATANH): Ditto. |
| * optabs.def (acosh_optab): New. |
| (asinh_optab): Ditto. |
| (atanh_optab): Ditto. |
| * config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype. |
| (ix86_emit_i387_acosh): Ditto. |
| (ix86_emit_i387_atanh): Ditto. |
| * config/i386/i386.c (ix86_emit_i387_asinh): New function. |
| (ix86_emit_i387_acosh): Ditto. |
| (ix86_emit_i387_atanh): Ditto. |
| * config/i386/i386.md (asinhxf2): New expander. |
| (asinh<mode>2): Ditto. |
| (acoshxf2): Ditto. |
| (acosh<mode>2): Ditto. |
| (atanhxf2): Ditto. |
| (atanh<mode>2): Ditto. |
| |
| 2018-12-17 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. |
| (powerpc-ibm-aix7.1.*): Same. |
| (powerpc-ibm-aix[789].*): Same. |
| |
| 2018-12-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR debug/79342 |
| * dwarf2out.c (find_AT_string_in_table): Add insert argument |
| defaulting to INSERT and replace INSERT. |
| (find_AT_string): Likewise. |
| (output_macinfo_op): Pass NO_INSERT to find_AT_string. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * coverage.c (struct conts_entry): Add n_counts. |
| (remap_counts_file): Record number of ocunts. |
| (get_coverage_counts): Verify that counts match. |
| * coverage.h (get_coverage_counts): Update prototype. |
| * profile.c (get_exec_counts. compute_value_histograms): Add |
| n_counts parametrs. |
| |
| 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> |
| |
| PR rtl-optimization/88253 |
| * combine.c (combine_simplify_rtx): Test for side-effects before |
| substituting by zero. |
| |
| 2018-12-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/invoke.texi (-fversion-loops-for-strides): Document |
| (loop-versioning-group-size, loop-versioning-max-inner-insns) |
| (loop-versioning-max-outer-insns): Document new --params. |
| * Makefile.in (OBJS): Add gimple-loop-versioning.o. |
| * common.opt (fversion-loops-for-strides): New option. |
| * opts.c (default_options_table): Enable fversion-loops-for-strides |
| at -O3. |
| * params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE) |
| (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS) |
| (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters. |
| * passes.def: Add pass_loop_versioning. |
| * timevar.def (TV_LOOP_VERSIONING): New time variable. |
| * tree-ssa-propagate.h |
| (substitute_and_fold_engine::substitute_and_fold): Add an optional |
| block parameter. |
| * tree-ssa-propagate.c |
| (substitute_and_fold_engine::substitute_and_fold): Likewise. |
| When passed, only walk blocks dominated by that block. |
| * tree-vrp.h (range_includes_p): Declare. |
| (range_includes_zero_p): Turn into an inline wrapper around |
| range_includes_p. |
| * tree-vrp.c (range_includes_p): New function, generalizing... |
| (range_includes_zero_p): ...this. |
| * tree-pass.h (make_pass_loop_versioning): Declare. |
| * gimple-loop-versioning.cc: New file. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes |
| are not streamed in. |
| |
| 2018-12-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88483 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert |
| reversion 267133. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (analyze_function_body): Do not loeak conds and |
| size_time_table. |
| (ipa_fn_summary_generate): Add prevails parameter; do not allocate |
| data when symbol is not prevailing. |
| (inline_read_section): Likewise. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (cgraph_node): Add predicate prevailing_p. |
| (cgraph_edge): Add predicate possible_call_in_translation_unit_p. |
| * ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR. |
| (ipa_read_jump_function): Add prevails parameter; optimize streaming. |
| (ipa_read_edge_info): Break out from ... |
| (ipa_read_node_info): ... here; optimize streaming. |
| * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New |
| predicate. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.c (ipa_merge_profiles): Do no merging when source function |
| has zero count. |
| |
| 2018-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88464 |
| PR target/88498 |
| * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING |
| and mask with integral masktype, don't try to permute mask vectors, |
| instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. |
| (vectorizable_store): Handle masked scatters with decl and integral |
| mask type. |
| (permute_vec_elements): Allow scalar_dest to be NULL. |
| * config/i386/i386.c (ix86_get_builtin) |
| <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks. |
| <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have |
| to be the same. |
| |
| 2018-12-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET |
| parameters. |
| (cgraph_build_static_cdtor): Update. |
| (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor |
| callsed. |
| |
| 2018-12-15 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx), |
| (rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv), |
| (rs6000_call_darwin_1): Use gen_hard_reg_clobber. |
| |
| 2018-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88489 |
| * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. |
| (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it |
| instead of UNSPEC_FIXUPIMM. |
| |
| PR rtl-optimization/88478 |
| * cselib.c (cselib_record_sets): Move sets[i].src_elt tests |
| after REG_P (dest) test. |
| |
| 2018-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88372 |
| * calls.c (maybe_warn_alloc_args_overflow): Handle function pointers. |
| * tree-object-size.c (alloc_object_size): Same. Simplify. |
| * doc/extend.texi (Object Size Checking): Update. |
| (Other Builtins): Add __builtin_object_size. |
| (Common Type Attributes): Add alloc_size. |
| (Common Variable Attributes): Ditto. |
| |
| 2018-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR rtl-optimization/87096 |
| * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid |
| folding calls whose bound may exceed INT_MAX. Diagnose bound ranges |
| that exceed the limit. |
| |
| 2018-12-14 Martin Sebor <msebor@redhat.com> |
| |
| PR web/79738 |
| * doc/extend.texi (attribute const, pure): Clarify. |
| |
| 2018-12-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR |
| at the function entry only when -mmanual-endbr isn't used or |
| there is cf_check function attribute. |
| (ix86_attribute_table): Add cf_check. |
| * config/i386/i386.opt: Add -mmanual-endbr. |
| * doc/extend.texi: Document cf_check attribute. |
| * doc/invoke.texi: Document -mmanual-endbr. |
| |
| 2018-12-14 Thomas Schwinge <thomas@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * omp-offload.c (inform_oacc_loop): New function. |
| (execute_oacc_device_lower): Use it to display loop parallelism. |
| |
| 2018-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/82294 |
| PR c++/87436 |
| * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. |
| * expr.c (categorize_ctor_elements_1): Likewise. Compute it like |
| p_nz_elts, except don't multiply it by mult. Adjust recursive call. |
| Fix up COMPLEX_CST handling. |
| (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize |
| it and pass it through to categorize_ctor_elements_1. |
| (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. |
| * gimplify.c (gimplify_init_constructor): Likewise. Don't force |
| ctor into readonly data section if num_unique_nonzero_elements is |
| smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 |
| bytes. |
| |
| 2018-12-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and |
| source is a constant that would be loaded by literal pool. |
| (movsf expander): Generate a no_literal_pool_sf_immediate insn if |
| -mslow-flash-data is present, targeting hardfloat ABI and source is a |
| float constant that cannot be loaded via vmov. |
| (movdf expander): Likewise but generate a no_literal_pool_df_immediate |
| insn. |
| (arm_movsf_soft_insn): Split if -mslow-flash-data and source is a |
| float constant that would be loaded by literal pool. |
| (softfloat constant movsf splitter): Splitter for the above case. |
| (movdf_soft_insn): Split if -mslow-flash-data and source is a float |
| constant that would be loaded by literal pool. |
| (softfloat constant movdf splitter): Splitter for the above case. |
| * config/arm/constraints.md (Pz): Document existing constraint. |
| (Ha): Define constraint. |
| (Tu): Likewise. |
| * config/arm/predicates.md (hard_sf_operand): New predicate. |
| (hard_df_operand): Likewise. |
| * config/arm/thumb2.md (thumb2_movsi_insn): Split if |
| -mslow-flash-data and constant would be loaded by literal pool. |
| * constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant |
| load in VFP register. |
| (movdi_vfp): Likewise. |
| (thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to |
| prevent match for a constant load if -mslow-flash-data and constant |
| cannot be loaded via vmov. Adapt constraint accordingly by |
| using Ha instead of E for generic floating-point constant load. |
| (thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead. |
| (no_literal_pool_df_immediate): Add a clobber to use as the |
| intermediate general purpose register and also enable it after reload |
| but disable it constant is a valid FP constant. Add constraints and |
| generate a DI intermediate load rather than 2 SI loads. |
| (no_literal_pool_sf_immediate): Add a clobber to use as the |
| intermediate general purpose register and also enable it after |
| reload. |
| |
| 2018-12-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88474 |
| * internal-fn.def (HYPOT): New. |
| * optabs.def (hypot_optab): New. |
| * config/i386/i386.md (hypot<mode>3): New expander. |
| |
| 2018-12-14 Jeff Law <law@redhat.com> |
| |
| * target.def (post_cfi_startproc): Fix text. |
| |
| 2018-12-14 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define. |
| * doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define. |
| * dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook. |
| * hooks.c (hook_void_FILEptr_tree): Define. |
| * hooks.h (hook_void_FILEptr_tree): Define. |
| * target.def (post_cfi_startproc): Define. |
| |
| 2018-12-14 Tom de Vries <tdevries@suse.de> |
| |
| * lto-cgraph.c (verify_node_partition): New function. |
| (input_overwrite_node, input_varpool_node): Use verify_node_partition. |
| |
| 2018-12-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88483 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't |
| use get_frame_size (). |
| |
| 2018-12-14 Andrew Stubbs <ams@codesourcery.com> |
| |
| * gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter. |
| * gcc/lra-remat.c (update_scratch_ops): Pass icode to |
| lra_register_new_scratch_op. |
| * gcc/lra.c (struct sloc): Add icode field. |
| (lra_register_new_scratch_op): Add icode parameter. |
| Use icode to skip insns that have changed beyond recognition. |
| |
| 2018-12-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (analyze_discr_in_predicate): Simplify. |
| (analyze_variants_discr): Deal with naked boolean discriminants. |
| |
| 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_restore_callee_milli) Don't clobber off |
| variable. |
| |
| 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (reg_class): Add SIBCALL_REGS. |
| |
| 2018-12-14 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-split-paths.c (is_feasible_trace): Remove |
| duplicated code block. |
| |
| 2018-12-14 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/88311 |
| * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie. |
| (rs6000_sibcall_sysv): Likewise. |
| |
| 2018-12-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/88001 |
| * function.c (match_asm_constraints_1): Don't invalidly share RTL. |
| |
| 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even |
| if autofdo counts are all zeros. |
| |
| 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (afdo_indirect_call): Skip generating histogram |
| value for internal call. |
| |
| 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (AFDO_EINFO): New macro. |
| (class edge_info): New class. |
| (is_edge_annotated, set_edge_annotated): Delete. |
| (afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove |
| parameter. Adjust edge count computation and annotation using class |
| edge_info. |
| (afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise. |
| |
| 2018-12-13 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| |
| * ipa-cp.c (print_all_lattices): Skip cp clones. |
| |
| * ipa-cp.c: Fix various comment typos. |
| |
| 2018-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88444 |
| * tree-inline.c (fold_marked_statements): Iterate up to |
| last_basic_block_for_fn rather than n_basic_blocks_for_fn. |
| |
| PR rtl-optimization/88470 |
| * cfgcleanup.c (outgoing_edges_match): If the function is |
| shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake |
| edge to EXIT, return false. |
| |
| 2018-12-13 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi: Consistently use @code for const and volatile |
| qualifiers, the true and false constants, and asm statements. |
| |
| 2018-12-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/88414 |
| * lra-int.h (lra_asm_error_p): New. |
| * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking |
| call crossed pseudo assignment correctness. |
| (lra_split_hard_reg_for): Set up lra_asm_error_p. |
| * lra-constraints.c (curr_insn_transform): Ditto. |
| * lra.c (lra_asm_error_p): New. |
| (lra): Reset lra_asm_error_p. |
| |
| 2018-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/88416 |
| * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify |
| even if !AUTO_INC_DEC. |
| |
| 2018-12-13 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is |
| non-NULL. |
| (rs6000_arg_partial_bytes): Same. |
| |
| 2018-12-13 Jason Merrill <jason@redhat.com> |
| |
| * gdbinit.in (pp): New macro. |
| (pbb): Remove. |
| |
| 2018-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88464 |
| * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE |
| masktype if mask is non-NULL. |
| (vectorizable_load): Don't reject masked gather loads if masktype |
| in the decl is INTEGER_TYPE. |
| |
| 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (s390_vec_double_s64): Map to |
| s390_vec_double_s64 instead of s390_vcdgb. |
| (s390_vec_double_u64): Map to s390_vec_double_u64 instead of |
| s390_vcdlgb. |
| |
| 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") |
| ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. |
| ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. |
| |
| 2018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 |
| behavior. |
| |
| 2018-12-13 Wei Xiao <wei3.xiao@intel.com> |
| |
| * common/config/i386/i386-common.c (processor_names): Add cascadelake. |
| (processor_alias_table): Add cascadelake. |
| * config.gcc: Add -march=cascadelake. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Handle |
| cascadelake. |
| * config/i386/i386.c (Add m_CASCADELAKE): New. |
| (processor_cost_table): Add cascadelake. |
| (get_builtin_code_for_version): Handle cascadelake. |
| * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. |
| (PTA_CASCADELAKE): Ditto. |
| * doc/invoke.texi: Add -march=cascadelake. |
| |
| 2018-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88465 |
| * config/i386/i386.md (*movdi_internal, *movsi_internal, |
| *movhi_internal, *movqi_internal): Add alternative(s) to load |
| 0 or -1 into k registers using kxor or kxnoq instructions. |
| |
| PR target/88461 |
| * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New |
| mode iterators. |
| (<avx512>_testm<mode>3<mask_scalar_merge_name>, |
| <avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns |
| with VI12_AVX512VL and VI48_AVX512VL iterators into ones with |
| VI1248_AVX512VLBW iterator. |
| (*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New |
| define_insns. |
| |
| PR target/88461 |
| * config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2, |
| *zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives. |
| |
| 2018-12-12 Tom de Vries <tdevries@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, |
| BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, |
| BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, |
| BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, |
| BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, |
| BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up |
| function types - remove one argument. |
| |
| 2018-12-12 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (attribute copy): Fix typos. |
| |
| 2018-12-12 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Function Attributes): Clarify C++ aspects. |
| (Variable Attributes): Same. |
| (Type Attributes): Same. |
| |
| 2018-12-12 Olivier Hainque <hainque@adacore.com> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options): Once arch, |
| cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if |
| defined. |
| |
| 2018-12-12 Olivier Hainque <hainque@adacore.com> |
| |
| * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as |
| R9_REGNUM instead of 9. |
| (PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10. |
| |
| 2018-12-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/86806 |
| * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. |
| (speculation_barrier): New instruction for V9. |
| |
| 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> |
| Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/88343 |
| * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg |
| unless it has been used. |
| (first_reg_to_save): Remove dead code. |
| |
| 2018-12-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_call_darwin): New. |
| (rs6000_sibcall_darwin): New. (macho_call_template): Remove. |
| * config/rs6000/rs6000.c (get_prev_label): Forward declaration. |
| (rs6000_call_template_1): Handle Darwin. |
| (macho_call_template): Remove. |
| (rs6000_call_sysv): Remove handling for Darwin. |
| (rs6000_call_darwin_1, rs6000_call_darwin): New |
| (rs6000_sibcall_darwin): New. |
| * config/rs6000/rs6000.md (define_expand “call”): Handle Darwin |
| with its own expander. (define_expand “call_value”): Likewise. |
| (define_expand “sibcall”): Likewise. |
| (define_expand “sibcall_value”): Likewise. |
| (call_nonlocal_sysv): Remove Darwin special-casing. |
| (call_value_nonlocal_sysv): Likewise. |
| |
| 2018-12-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove. |
| (call_nonlocal_darwin64): Remove. |
| (call_value_indirect_nonlocal_darwin64): Remove. |
| (call_value_nonlocal_darwin64): Remove. |
| * config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with |
| the same asm output as AIX/ELFv2. (rs6000_call_sysv): Preserve the |
| CALL_LONG flag when needed for Darwin. |
| * config/rs6000/rs6000.md (define expand “call”): Expand Darwin as |
| per sysv. |
| (define_expand “call_value”): Likewise. |
| (define_expand “sibcall”): Likewise. |
| (define_expand “sibcall_value”): Likewise. |
| (call_indirect_nonlocal_sysv): Mark the clobber mode P. |
| (call_nonlocal_sysv): Likewise. |
| (call_nonlocal_sysv_secure): Likewise. |
| (call_value_indirect_nonlocal_sysv): Likewise. |
| (call_value_nonlocal_sysv): Likewise. |
| (call_value_nonlocal_sysv_secure): Likewise. |
| (call_local64): Mark the clobber DI. |
| (call_value_local64): Likewise. |
| |
| 2018-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88444 |
| * tree-vrp.c (register_edge_assert_for_2): Only register assertions |
| for conversions if rhs1 is a SSA_NAME. |
| |
| 2018-12-11 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * cfgexpand.c (asm_clobber_reg_is_valid): Also produce |
| error when stack pointer is clobbered. |
| (expand_asm_stmt): Refactor clobber check in separate function. |
| |
| 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, |
| accounting for STACK_BOUNDARY 128. |
| (STACK_DYNAMIC_OFFSET): Likewise. |
| |
| 2018-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88425 |
| * config/i386/i386.md (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>): |
| New define_insn_and_split. |
| |
| 2018-12-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88448 |
| PR middle-end/88415 |
| * gimple.c (gimple_assign_set_rhs_with_ops): Revert previous |
| change. |
| * tree-complex.c (update_complex_assignment): Properly transfer |
| or clean EH info around gimple_assign_set_rhs_with_ops. |
| |
| 2018-12-11 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/87369 |
| * config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode. |
| (Vbtype): Add SFmode mapping. |
| * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. |
| (copysign<GPF:mode>3): New expand pattern. |
| (copysign<GPF:mode>3_insn): New insn pattern. |
| |
| 2018-12-11 Richard Biener <rguenther@suse.de> |
| |
| * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. |
| |
| 2018-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/86004 |
| * doc/sourcebuild.texi (lto_incremental): Document new effective |
| target. |
| |
| 2018-12-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/88145 |
| * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use |
| rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide |
| whether soft float is enabled. |
| (rs6000_expand_mtfsb_builtin): Ditto. |
| (rs6000_expand_set_fpscr_rn_builtin): Ditto. |
| (rs6000_expand_set_fpscr_drn_builtin): Ditto. |
| |
| 2018-12-10 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/80520 |
| * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half |
| diamonds that are likely if convertable. |
| |
| 2018-12-10 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/86196 |
| * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use |
| base size only of arrays. |
| |
| 2018-12-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. |
| (Unsupported targets): Add powerpc*-*-*spe*. |
| (powerpc*-*-*spe*): Delete. |
| (powerpc-*-eabispe*): Delete. |
| (powerpc-*-rtems*spe*): Delete. |
| (powerpc*-*-linux*spe*): Delete. |
| (powerpc*-*-linux*): Do not handle the linux*spe* targets. |
| (powerpc-wrs-vxworks*spe): Delete. |
| (with_cpu setting code): Delete powerpc*-*-*spe* handling. |
| * config.host (target powerpc*-*-*spe*): Delete. |
| * doc/invoke.texi (PowerPC SPE Options): Delete. |
| (PowerPC SPE Options): Delete. |
| * config/powerpcspe: Delete. |
| |
| 2018-12-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88418 |
| * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, |
| check operand 1 with vector_operand predicate. |
| (ix86_expand_sse_movcc): For vector modes, check op_true with |
| vector_operand, not nonimmediate_operand. |
| |
| 2018-12-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-affine.c (tree_to_aff_combination): Remove unreachable |
| MEM_REF case. |
| (aff_combination_expand): Cache on SSA names, not possibly |
| on conversion trees. Avoid expanding cases we do not handle. |
| |
| 2018-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88427 |
| * vr-values.c (vr_values::extract_range_from_phi_node): |
| Handle symbolic ranges conservatively when trying to drop |
| to Inf +- 1. |
| |
| 2018-12-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/88214 |
| * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure |
| we check pointers against pointers. |
| |
| 2018-12-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88415 |
| * gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH |
| info to a newly allocated stmt. |
| |
| 2018-12-10 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define. |
| |
| 2018-12-10 Fredrik Nyström <fredrik@lysator.liu.se> |
| |
| PR bootstrap/65725 |
| * config/sol2.h: Only use libgcc-unwind.map if |
| ENABLE_SHARED_LIBGCC. |
| |
| 2018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (afdo_calculate_branch_prob): Convert profile_count |
| to afdo precision quality. |
| (afdo_callsite_hot_enough_for_early_inline): Likewise. |
| (afdo_annotate_cfg): Set profile_count for exit basic block. |
| |
| 2018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * auto-profile.c (string_table::get_index_by_decl) |
| (function_instance::get_function_instance_by_decl): Avoid infinite |
| recursion by using DECL_FROM_INLINE. |
| |
| 2018-12-09 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file. Define |
| d_target_objs. |
| * config/pa/pa-protos.h (pa_d_target_versions): New prototype. |
| * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define. |
| * config/pa/pa-d.c: New file. |
| * config/pa/t-pa: New file. |
| |
| 2018-12-08 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for |
| zero profile count. |
| |
| 2018-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/88304 |
| * tree-nested.c (convert_local_reference_stmt): Handle clobbers where |
| lhs is not a decl normally, don't call use_pointer_in_frame on that |
| lhs. |
| |
| 2018-12-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/88390 |
| * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. |
| (cfi_row_equal_p): Compare it. |
| (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. |
| If FAKE is false, set window_save of the current row. |
| (dwarf2out_frame_debug) <REG_CFA_TOGGLE_RA_MANGLE>: Call above |
| function with FAKE parameter set to true. |
| <REG_CFA_WINDOW_SAVE>: Likewise but with FAKE parameter set to false. |
| (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. |
| |
| 2018-12-07 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/87496 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow |
| -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. |
| Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. |
| * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble |
| require -mlong-double-128. |
| |
| 2018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add |
| sve_width entry. |
| (aarch64_parse_sve_width_string): Define. |
| |
| 2018-12-07 Jeff Law <law@redhat.com> |
| |
| PR middle-end/87813 |
| * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add |
| m_update_global_ranges member. Add corresponding argument to ctor. |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::evrp_range_analyzer): Add new argument and |
| initialize m_update_global_ranges. |
| (evrp_range_analyzer::set_ssa_range_info): Assert that we are |
| updating global ranges. |
| (evrp_range_analyzer::record_ranges_from_incoming_edge): Only |
| update global ranges if explicitly requested. |
| (evrp_range_analyzer::record_ranges_from_phis): Similarly. |
| (evrp_range_analyzer::record_ranges_from_stmt): Similarly. |
| * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to |
| evrp_range_analyzer ctor. |
| * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. |
| * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. |
| |
| 2018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): |
| Add SVE_NOT_IMPLEMENTED value. |
| * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width |
| field. |
| * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, |
| cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, |
| cortexa73_tunings, exynosm1_tunings, thunderx_tunings, |
| thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, |
| saphira_tunings, thunderx2t99_tunings, emag_tunings): |
| Specify sve_width. |
| (aarch64_estimated_poly_value): Define. |
| (TARGET_ESTIMATED_POLY_VALUE): Define. |
| |
| 2018-12-07 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/88408 |
| * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". |
| |
| 2018-12-07 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/88349 |
| * ira-costs.c (record_operand_costs): Check bigger reg class on |
| NO_REGS. |
| |
| 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3): |
| Split the patterns after reload if we don't need the predicate |
| operand. |
| (*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns. |
| |
| 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code |
| iterator. |
| (sve_fp_op): Handle minus and mult. |
| * config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3) |
| (*mul<mode>3): Split the patterns after reload if we don't |
| need the predicate operand. |
| (*post_ra_<sve_fp_op><mode>3): New pattern. |
| |
| 2018-12-07 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * profile-count.h (profile_count::oeprator>=): Fix typo by inverting |
| return condition when *this is precise zero. |
| |
| 2018-12-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/85593 |
| * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage |
| for functions with naked attribute. |
| |
| PR c/88367 |
| * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR |
| with -fno-delete-null-pointer-checks, set_nonnull only if the pointer |
| is non-NULL and offset is known to have most significant bit clear. |
| * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR |
| of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with |
| most significant bit clear. If offset does have most significant bit |
| set and -fno-delete-null-pointer-checks, don't return true even if |
| the base pointer is non-NULL. |
| |
| 2018-12-06 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cselib.c (cselib_record_sets): Skip strict low part sets |
| with NULL src_elt. |
| |
| 2018-12-06 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/88316 |
| * config/rs6000/smmintrin.h: New file. |
| * config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*. |
| |
| 2018-12-06 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/88316 |
| * config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian. |
| (_mm_unpacklo_pi8): Likewise. |
| (_mm_mulhi_pi16): Likewise. |
| (_mm_packs_pi16): Fix for big-endian. Use preferred API. |
| (_mm_packs_pi32): Likewise. |
| (_mm_packs_pu16): Likewise. |
| * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian. |
| (_mm_cvtss_si64): Likewise. |
| (_mm_cvtpi32x2_ps): Likewise. |
| (_mm_shuffle_ps): Likewise. |
| (_mm_movemask_pi8): Likewise. |
| (_mm_mulhi_pu16): Likewise. |
| (_mm_sad_pu8): Likewise. |
| (_mm_sad_pu8): Likewise. |
| (_mm_cvtpu16_ps): Fix for big-endian. Use preferred API. |
| (_mm_cvtpu8_ps): Likewise. |
| (_mm_movemask_ps): Better #else case for big-endian (no functional |
| change). |
| (_mm_shuffle_pi16): Likewise. |
| * config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian. |
| Better #else case for big-endian (no functional change). |
| (_mm_movemask_epi8): Likewise. |
| (_mm_shufflehi_epi16): Likewise. |
| (_mm_shufflelo_epi16): Likewise. |
| (_mm_shuffle_epi32): Likewise. |
| (_mm_mul_epu32): Fix for big-endian. |
| (_mm_bsrli_si128): Likewise. |
| (_mm_cvtps_pd): Better #else case for big endian. |
| (_mm_mulhi_epi16): Likewise. |
| (_mm_mul_epu32): Likewise. |
| (_mm_slli_si128): Likewise. |
| (_mm_sll_epi16): Likewise. |
| (_mm_sll_epi32): Likewise. |
| (_mm_sra_epi16): Likewise. |
| (_mm_sra_epi32): Likewise. |
| (_mm_srl_epi16): Likewise. |
| (_mm_srl_epi32): Likewise. |
| (_mm_mulhi_epu16): Likewise. |
| (_mm_sad_epu8): Likewise. |
| * config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian. |
| (_mm_sub_ps): Likewise. |
| * config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode. |
| * gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN |
| macros consistently (no functional changes). |
| (_mm_alignr_pi8): Likewise. |
| |
| 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR c++/87380 |
| * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the |
| default. |
| * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. |
| |
| 2018-12-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/88282 |
| * ira.c (ira_init_register_move_cost): Use info from |
| hard_regno_mode_ok instead of contains_reg_of_mode. |
| * ira-costs.c (contains_reg_of_mode): Don't use cost from bigger |
| hard register class for some fixed hard registers. |
| |
| 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/extend.texi (Using Assembly Language with C): Document asm inline. |
| (Size of an asm): Fix typo. Document asm inline. |
| * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. |
| * gimple.h (enum gf_mask): Add GF_ASM_INLINE. |
| (gimple_asm_set_volatile): Fix typo. |
| (gimple_asm_inline_p): New. |
| (gimple_asm_set_inline): New. |
| * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from |
| tree to gimple. |
| * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the |
| gimple_asm_inline_p flag, too. |
| * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P |
| in an ASM_EXPR. |
| * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return |
| a minimum size for an asm. |
| * tree.h (ASM_INLINE_P): New. |
| |
| 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR inline-asm/55681 |
| * doc/extend.texi (Basic Asm): Update grammar. |
| (Extended Asm): Update grammar. |
| |
| 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/78444 |
| * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. |
| * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b |
| stack alignment in non-leaf functions. |
| |
| 2018-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/87598 |
| * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't |
| call output_operand_lossage on VOIDmode CONST_INTs. After |
| output_operand_lossage do return false. |
| |
| 2018-12-06 Richard Biener <rguenther@suse.de> |
| |
| * df-problems.c (df_rd_local_compute): Use bitmap_release. |
| (df_live_free): Likewise. |
| (df_md_local_compute): Likewise. |
| (df_md_free): Release df_md_scratch bitmap. |
| * loop-invariant.c (calculate_loop_reg_pressure): Use |
| bitmap_release. |
| * sched-deps.c (true_dependency_cache, output_dependency_cache, |
| anti_dependency_cache, control_dependency_cache, |
| spec_dependency_cache): Use bitmap instead of bitmap_head *. |
| * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY |
| dont_calc_deps as bitmap allocated from obstack not GC. |
| (schedule_ebbs_finish): Use bitmap_release. |
| * sched-rgn.c (schedule_insns): Initialize non-GTY |
| not_in_df as bitmap allocated from obstack not GC. |
| Use bitmap_release. |
| * sel-sched.c (_forced_ebb_heads): Remove premature optimization. |
| (sel_region_init): Allocate forced_ebb_heads. |
| (sel_region_finish): Free forced_ebb_heads. |
| |
| 2018-12-06 Richard Biener <rguenther@suse.de> |
| |
| * bitmap.c (bitmap_head::crashme): Define. |
| * bitmap.h (bitmap_head): Add constexpr default constructor |
| poisoning the obstack member. |
| (bitmap_head::crashme): Declare. |
| (bitmap_release): New function clearing a bitmap and poisoning |
| the obstack member. |
| * gengtype.c (main): Make it recognize CONSTEXPR. |
| * lra-constraints.c (lra_inheritance): Use bitmap_release |
| instead of bitmap_clear. |
| * ira.c (ira): Work around class-memaccess warning. |
| * regrename.c (create_new_chain): Likewise. |
| |
| 2018-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/85726 |
| * generic-match-head.c (optimize_successive_divisions_p): New function. |
| * gimple-match-head.c (optimize_successive_divisions_p): Likewise. |
| * match.pd: Don't combine successive divisions if they aren't exact |
| and optimize_successive_divisions_p is false. |
| |
| PR fortran/88304 |
| * tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers |
| for non-local automatic decls. |
| |
| 2018-12-05 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor |
| default. |
| |
| 2018-12-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * dwarf2out.c (field_byte_offset): Remove |
| #ifdef PCC_BITFIELD_TYPE_MATTERS check. |
| |
| 2018-12-05 Richard Biener <rguenther@suse.de> |
| Martin Sebor <msebor@redhat.com> |
| |
| PR c/87028 |
| * calls.c (get_attr_nonstring_decl): Avoid setting *REF to |
| SSA_NAME_VAR. |
| * gcc/gimple-low.c (lower_stmt): Fold builtin calls here. |
| * gimplify (maybe_fold_stmt): Avoid folding builtin calls. |
| |
| 2018-12-05 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure.ac (gcc_cv_otool): Set. |
| * configure: Regenerate. |
| |
| 2018-12-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove. |
| (GROUP_BITFIELDS_BY_ALIGN): Ditto. |
| |
| 2018-12-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/88064 |
| * tree-vect-patterns.c (vect_convert_input): Convert the result of |
| an existing cast if it has the right width but the wrong sign. |
| Do not test the signedness of the required result when |
| considering whether to split an existing cast; instead split to |
| a type with the same signedness as the source of the cast, then |
| convert it to the opposite signedness where necessary. |
| (vect_recog_over_widening_pattern): Handle sign changes between |
| the final PLUS_EXPR and the RSHIFT_EXPR. |
| (vect_recog_average_pattern): Use an unsigned operation when |
| truncating an addition, subtraction or multiplication. Cast the |
| result back to the "real" signedness before promoting. |
| |
| 2018-12-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/86637 |
| * tree-vectorizer.c (pass_slp_vectorize::execute): Reset |
| vect_location at the end. |
| |
| 2018-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/87360 |
| * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze |
| data dependencies, don't return false, just continue. Formatting |
| fixes. |
| (merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p, |
| fuse_loops): Formatting fixes. |
| |
| PR sanitizer/88333 |
| * cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with |
| aligning frame offset to ASAN_RED_ZONE_SIZE bytes. |
| |
| 2018-12-05 Xianmiao Qu <xianmiao_qu@c-sky.com> |
| |
| * config.gcc (csky-*-linux-gnu*): Force .init_array support. |
| |
| 2018-12-05 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special |
| aggregate handling on actual AIX, not on somewhat similar systems. |
| (rs6000_arg_partial_bytes): Ditto. |
| |
| 2018-12-04 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/88317 |
| * lra-constraints.c (split_reg): Don't set up check_only_regs if |
| we are outside the inheritance pass. |
| |
| 2018-12-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.c (jump_function_useful_p): New. |
| (ipa_read_node_info): Do not allocated useless jump functions. |
| |
| 2018-12-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/82967 |
| * spellcheck.c (selftest::test_suggestions): Add another assertion. |
| |
| 2018-12-04 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (__builtin_has_attribute): Fix typo. |
| |
| 2018-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88188 |
| * config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion |
| failures. |
| (print_operand): Use REG_P instead of GET_CODE == REG. |
| <case 'D'>: Also check CR_REGNO_P (REGNO (x)). |
| <case 't'>: Likewise. Remove GET_MODE check. |
| * config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't |
| return -1. |
| |
| 2018-12-04 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (attribute aligned): Expand. |
| |
| 2018-12-04 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/61976 |
| * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates |
| in FPRs on AIX. |
| (rs6000_arg_partial_bytes): Same. |
| |
| 2018-12-04 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/88282 |
| * ira-costs.c (exec): Try bigger class to use smaller register |
| move cost. |
| |
| 2018-12-04 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| |
| PR ipa/88297 |
| * ipa-cp.c (create_specialized_node): Track clone counters by |
| node assembler names. |
| (ipcp_driver): Change type of clone_num_suffixes key to const char*. |
| |
| 2018-12-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations |
| for epilogue vectorization. |
| |
| 2018-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88301 |
| * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion |
| issues in last commit. |
| |
| 2018-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88315 |
| * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify |
| and fix initialization vector for SAD and DOT_PROD SLP reductions. |
| |
| 2018-12-03 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c/59039 |
| * doc/extend.texi (Nonlocal gotos): New section. |
| |
| 2018-12-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_concatv2df): Change (v,xm,C) |
| alternative to (v,vm,c). |
| |
| 2018-12-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. |
| (powerpc*-*-linux*): Don't handle it here. |
| |
| 2018-12-03 Jeff Law <law@redhat.com> |
| |
| * config/h8300/h8300.md (<code>qi3_1): Add gcc_unreachable to keep |
| warnings quiet. |
| |
| * config/h8300/h8300.md (low byte masking peepholes): Only accept |
| nonimmediate_operand for the to-be-masked operand. |
| |
| 2018-12-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only |
| allow expected function-pointer cast re-instantiation. |
| |
| 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * common/config/s390/s390-common.c (s390_option_init_struct): |
| Use section anchors by default. |
| * config/s390/s390.c (s390_check_symref_alignment): Handle |
| anchors. |
| (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. |
| * output.h (assemble_align): Pass `align' as unsigned int, so |
| that the value 0x80000000, which corresponds to `aligned(1 << |
| 28)', would pass the `align > BITS_PER_UNIT' check. |
| * varasm.c (assemble_align): Likewise. |
| |
| 2018-12-03 Julian Brown <julian@codesourcery.com> |
| |
| * tree-pretty-print.c (dump_omp_clause): Make default case |
| gcc_unreachable. |
| |
| 2018-12-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88301 |
| * tree-vrp.c (register_edge_assert_for_2): Handle conversions |
| that do not change the value by registering the same assert |
| for the operand. |
| |
| 2018-12-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_transform_loop): Properly compute |
| upper bound for the epilogue when doing epilogue vectorization. |
| |
| 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| PR target/80080 |
| * cfgcleanup.c (class pass_postreload_jump): New pass. |
| (pass_postreload_jump::execute): Likewise. |
| (make_pass_postreload_jump): Likewise. |
| * passes.def: Add pass_postreload_jump before |
| pass_postreload_cse. |
| * tree-pass.h (make_pass_postreload_jump): New pass. |
| |
| 2018-12-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (inline_memory_move_cost): Correctly |
| compute number of TFmode GPR moves. |
| |
| 2018-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88278 |
| * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. |
| |
| 2018-12-02 Jeff Law <law@redhat.com> |
| |
| * config/h8300/h8300.md (call, call_value): Drop mode from |
| operand containing number of bytes pushed. |
| (call_insn, call_value_insn): Use mode iterator for number |
| of bytes pushed operand. Make pattern name vary appropriately. |
| |
| 2018-12-02 Jan Hubicka <jh@suse.cz> |
| |
| * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): |
| trust precise profiles. |
| |
| 2018-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, |
| OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. |
| (convert_nonlocal_reference_stmt, convert_local_reference_stmt): |
| Convert clauses for GIMPLE_OMP_TASKGROUP. |
| |
| * omp-low.c (check_omp_nesting_restrictions): Allow cancel or |
| cancellation point with taskgroup clause inside of taskloop. Consider |
| a taskloop construct without nogroup clause as implicit taskgroup for |
| diagnostics if cancel/cancellation point with taskgroup clause is |
| closely nested inside of taskgroup region. |
| |
| PR sanitizer/88291 |
| * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 |
| to the start of the function. |
| (asan_emit_stack_protection): When emitting clearing sequence for |
| epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, |
| add last_size_aligned which is last_size padded to multiples of |
| ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte |
| boundaries. |
| |
| 2018-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/88289 |
| * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up |
| an off-by-one for BYTES_BIG_ENDIAN. |
| |
| PR target/54589 |
| * combine.c (find_split_point): For invalid memory address |
| nonobj + obj + const, if reg + obj + const is valid addressing |
| mode, split at nonobj. Use if rather than else if for the |
| fallback. Comment fixes. |
| |
| 2018-11-30 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * coverage.c (get_coverage_counts): Use from_function_decl for precise |
| function location. |
| * profile-count.c (profile_count::dump): Add handling for precise |
| profile quality. |
| * profile.c (compute_branch_probabilities): Rely on exec_counts instead |
| of profile_info to set profile_status of function. |
| (branch_prob): Do not set profile_status of function based on |
| profile_info. Done above based on exec_counts. |
| |
| 2018-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88274 |
| * tree-ssa-reassoc.c (optimize_range_tests_xor, |
| optimize_range_tests_diff): If type has smaller precision than |
| corresponding mode or if it has non-standard min/max, compute |
| everything in a standard type for the precision. |
| |
| PR testsuite/85368 |
| * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): If |
| --param logical-op-non-short-circuit is present, override |
| LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. |
| * fold-const.c (fold_range_test, fold_truth_andor): Likewise. |
| |
| 2018-11-30 Jeff Law <law@redhat.com> |
| |
| * optabs.c (expand_binop): Use "machine_mode" rather than |
| "enum machine mode" in most recent change. |
| |
| 2018-11-30 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/64242 |
| * builtins.c (expand_builtin_longjmp): Use a temporary when restoring |
| the frame pointer. |
| (expand_builtin_nonlocal_goto): Likewise. |
| |
| 2018-11-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-core.h (emit_diagnostic): New decl. |
| * diagnostic.c (emit_diagnostic): New overload, taking a |
| rich_location *. |
| |
| 2018-11-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * pretty-print.c (class selftest::test_pretty_printer): New |
| subclass of pretty_printer. |
| (selftest::test_prefixes_and_wrapping): New test. |
| (selftest::pretty_print_c_tests): Call it. |
| |
| 2018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| |
| Minimize clone counter memory usage in create_virtual_clone. |
| * cgraph.h (clone_function_name): Add a variant that takes a |
| tree decl. |
| * cgraph.h (cgraph_node::create_virtual_clone): Add a new |
| argument: num_suffix. |
| * cgraphclones.c (cgraph_node::create_virtual_clone): Pass |
| num_suffix to clone_function_name. |
| (clone_function_name): Add a variant that takes a tree decl. |
| * ipa-cp.c (create_specialized_node): Keep track of clone |
| counters in clone_num_suffixes hash map. |
| (ipcp_driver): Free the counter hash map. |
| * ipa-hsa.c (process_hsa_functions): Creates at most one hsa |
| clone per function. |
| |
| 2018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| Make function assembly more independent. |
| |
| This is achieved by having clone_function_name assign unique clone |
| numbers for each function independently. |
| |
| * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; |
| hash map. |
| (clone_function_name_numbered): Use clone_fn_ids. |
| |
| 2018-11-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/88179 |
| * lra-constraints.c (address_eliminator::address_eliminator): |
| Don't eleminate regs in illegitimate address. |
| |
| 2018-11-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR preprocessor/88257 |
| * input.c (get_substring_ranges_for_loc): Fix indentation. |
| Bulletproof against getting a different files back from |
| linemap_resolve_location and expand_location_to_spelling_point. |
| |
| 2018-11-30 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR gcov-profile/88279 |
| * tree-profile.c (init_ic_make_global_vars): Call |
| decl_default_tls_model for variable and not it's type. |
| |
| 2018-11-30 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. |
| |
| 2018-11-30 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81715 |
| * asan.c (asan_shadow_cst): Remove, partially transform |
| into flush_redzone_payload. |
| (RZ_BUFFER_SIZE): New. |
| (struct asan_redzone_buffer): New. |
| (asan_redzone_buffer::emit_redzone_byte): Likewise. |
| (asan_redzone_buffer::flush_redzone_payload): Likewise. |
| (asan_redzone_buffer::flush_if_full): Likewise. |
| (asan_emit_stack_protection): Use asan_redzone_buffer class |
| that is responsible for proper aligned stores and flushing |
| of shadow memory payload. |
| * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. |
| (asan_var_and_redzone_size): Likewise. |
| * cfgexpand.c (expand_stack_vars): Use smaller alignment |
| (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory |
| for automatic variables more compact. |
| |
| 2018-11-30 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/predicates.md (easy_fp_constant): Avoid long |
| dependent insn sequences. |
| * config/rs6000/rs6000.c (num_insns_constant): Support long |
| double constants. |
| * config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust |
| length attribute. |
| |
| 2018-11-30 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from |
| num_insns_constant_wide. Make static. Revise comment. |
| (num_insns_constant_multi): New function. |
| (num_insns_constant): Formatting. Correct CONST_WIDE_INT |
| calculation. Simplify and extract code common to both |
| CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled |
| const_double modes. |
| * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. |
| |
| 2018-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88274 |
| * tree-vrp.c (ranges_from_anti_range): Fix handling of |
| TYPE_MIN/MAX_VALUE. |
| |
| 2018-11-29 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386.c (current_fentry_section): Add. |
| (x86_function_profiler): Handle fentry section. |
| (ix86_attribute_table): Add fentry section. |
| * config/i386/i386.opt: Add -mfentry-section. |
| * doc/extend.texi: Document fentry_section attribute. |
| * doc/invoke.texi: Document -mfentry-section. |
| |
| 2018-11-29 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386.c (x86_print_call_or_nop): Handle nop name. |
| (current_fentry_name): Add. |
| (x86_function_profiler): Handle fentry_name attribute. |
| (ix86_handle_fentry_name): Add. |
| (ix86_attribute_table): Add fentry_name. |
| * config/i386/i386.opt: Add -mfentry-name |
| * doc/extend.texi: Document fentry_name. |
| * doc/invoke.texi: Document minstrument-return. |
| |
| 2018-11-29 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386-opts.h (enum instrument_return): Add. |
| * config/i386/i386.c (output_return_instrumentation): Add. |
| (ix86_output_function_return): Call output_return_instrumentation. |
| (ix86_output_call_insn): Call output_return_instrumentation. |
| * config/i386/i386.opt: Add -minstrument-return=. |
| * doc/invoke.texi (-minstrument-return): Document. |
| |
| 2018-11-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/87807 |
| * config/sparc/sparc-modes.def: Minor tweak. |
| * config/sparc/sparc.c: Minor reordering. |
| (sparc_pass_by_reference): Move around. |
| (traverse_record_type): Change offset from HOST_WIDE_INT to int. |
| (classify_registers): Likewise for bitpos. |
| (function_arg_slotno): Remove dead test and tweak comments. |
| <MODE_RANDOM>: Remove useless assertion and test whether the |
| parameter is named in order to pass it in FP registers. Return |
| the regno for floating-point vector types. |
| (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. |
| (compute_fp_layout): Likewise. |
| (count_registers): Likewise. |
| (assign_int_registers): Likewise. |
| (assign_fp_registers): Likewise. |
| (assign_registers): Likewise. |
| (function_arg_record_value): Change size from HOST_WIDE_INT to int |
| and use CEIL_NWORDS to compute the number of registers. |
| (function_arg_union_value): Minor tweaks. |
| (function_arg_vector_value): Add slotno and named parameters, use |
| CEIL_NWORDS to compute the number of registers. |
| (sparc_function_arg_1): Rework handling of vector types. Change |
| size from HOST_WIDE_INT to int. |
| (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal |
| with vector types for the 64-bt ABI. |
| (sparc_function_arg_advance): Likewise. |
| (sparc_return_in_memory): Add reference to -fpcc-struct-return. |
| (sparc_struct_value_rtx): Return NULL_RTX instead of 0. |
| (sparc_function_value_1): Rework handling of vector types. Change |
| size from HOST_WIDE_INT to int. |
| |
| 2018-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88152 |
| * config/i386/sse.md (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt, |
| *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt, |
| *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift, |
| *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift, |
| *<sse2_avx2>_pmovmskb_lt, *<sse2_avx2>_pmovmskb_zext_lt): New |
| define_insn_and_split patterns. |
| |
| PR target/54700 |
| * config/i386/sse.md |
| (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, |
| *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, |
| *<sse4_1_avx2>_pblendvb_lt): Change define_insn into |
| define_insn_and_split. |
| |
| 2018-11-29 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/87496 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow |
| -mabi=ieeelongdouble without both -mpopcntd and -mvsx. |
| |
| 2018-11-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (inline_memory_move_cost): |
| Check "in" for 2 in MMX_CLASS_P case. |
| * config/i386/mmx.md (*mov<mode>_internal): Correct |
| TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC |
| alternatives in preferred_for_speed attribute calculation. |
| |
| 2018-11-29 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88172 |
| PR testsuite/88208 |
| * doc/extend.texi (attribute constructor): Clarify. |
| |
| 2018-11-29 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/88246 |
| * builtins.c (expand_movstr): Fix thinko introduced |
| when switching to the new enum. |
| |
| 2018-11-29 qing zhao <qing.zhao@oracle.com> |
| |
| * cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code. |
| * common.opt: Add -flive-patching flag. |
| * doc/invoke.texi: Document -flive-patching. |
| * flag-types.h (enum live_patching_level): New enum. |
| * ipa-inline.c (can_inline_edge_p): Disable external functions from |
| inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC. |
| * opts.c (control_options_for_live_patching): New function. |
| (finish_options): Make flag_live_patching incompatible with flag_lto. |
| Control IPA optimizations based on different levels of |
| flag_live_patching. |
| |
| 2018-11-29 Giuliano Belinassi <giuliano.belinassi@usp.br> |
| |
| * match.pd (sinh (atanh (x))): New simplification rules. |
| (cosh (atanh (x))): Likewise. |
| |
| 2018-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/54700 |
| * config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries. |
| (ssefltmodesuffix, ssefltvecmode): New define_mode_attrs. |
| (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, |
| *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, |
| *<sse4_1_avx2>_pblendvb_lt): New define_insns. |
| |
| PR target/88152 |
| * tree.h (build_uniform_cst, uniform_integer_cst_p): Declare. |
| * tree.c (build_uniform_cst, uniform_integer_cst_p): New functions. |
| * match.pd (define_predicates): Add uniform_integer_cst_p. |
| (cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust |
| so that it works also for vector comparisons with uniform constants |
| with INTEGER_CST element. |
| |
| PR target/88234 |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For |
| vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR |
| in unsigned_type_for instead of vector integral type where overflow |
| doesn't wrap. |
| |
| 2018-11-29 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| |
| There can be at most one .resolver clone per function |
| * config/rs6000/rs6000.c (make_resolver_func): Generate |
| resolver symbol with clone_function_name instead of |
| clone_function_name_numbered. |
| |
| 2018-11-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88243 |
| * tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def |
| type of all pattern-sequence stmts to vect_internal_def. |
| |
| 2018-11-29 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/88224 |
| * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. |
| (cortex-r7, cortex-r8): Update default and add new configuration. |
| * doc/invoke.texi (armv7-r): Add two new vfp options. |
| (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that |
| support this option. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_move): Disable long |
| double split for targets other than Darwin. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.md (movdi_internal64): Correct lengths. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/predicates.md (easy_fp_constant): Remove code |
| dealing with integers in const_double. Assert on unexpected |
| modes. Delete superfluous ABI_V4 test. |
| * config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes. |
| Don't call easy_fp_constant for Pmode. |
| (rs6000_hash_constant): Remove code dealing with integers in |
| const_double. |
| (rs6000_legitimate_constant_p): Likewise. |
| (output_toc): Formatting, use CONST_DOUBLE_P. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/constraints.md (G, H): Comment on purpose of |
| constraint. Correct mode comments and "G" mode test. |
| * config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from |
| alternative handling "F". Add length attr. Formatting. |
| (mov<mode>_softfloat <FMOVE128>): Delete "GH" from |
| alternative, and move "F" to separate alternative. Correct |
| insn lengths. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/predicates.md (easy_vector_constant): Don't call |
| easy_fp_constant. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config.in (HAVE_AS_PLTSEQ): Add. |
| * config/rs6000/predicates.md (indirect_call_operand): New. |
| * config/rs6000/rs6000-protos.h (rs6000_pltseq_template), |
| (rs6000_sibcall_sysv): Declare. |
| * config/rs6000/rs6000.c (init_cumulative_args): Set cookie |
| CALL_LONG for -fno-plt. |
| (print_operand <T, z, 0>): Handle UNSPEC_PLTSEQ. |
| (rs6000_indirect_call_template_1): Emit .reloc directives for |
| UNSPEC_PLTSEQ calls. |
| (rs6000_pltseq_template): New function. |
| (rs6000_longcall_ref): Add arg parameter. Use PLT16 insns if |
| relocs supported by assembler. Move SYMBOL_REF test to callers. |
| (rs6000_call_aix): Adjust rs6000_longcall_ref call. Package |
| insns in UNSPEC_PLTSEQ, preserving original func_desc. |
| (rs6000_call_sysv): Likewise. |
| (rs6000_sibcall_sysv): New function. |
| * config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default. |
| * config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA, |
| UNSPEC_PLT16_LO): New. |
| (pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New. |
| (call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero |
| cookie in constraints. Test explicitly for flags in length attr. |
| Handle unspec operand 1. |
| (call_value_indirect_nonlocal_sysv): Likewise. |
| (call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1. |
| (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. |
| (sibcall, sibcall_value): Use rs6000_sibcall_sysv. |
| (sibcall_indirect_nonlocal_sysv): New pattern. |
| (sibcall_value_indirect_nonlocal_sysv): Likewise. |
| (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect |
| call alternatives. |
| * configure.ac: Check for gas plt sequence marker support. |
| * configure: Regenerate. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/predicates.md (unspec_tls): New. |
| * config/rs6000/rs6000-protos.h (rs6000_call_template), |
| (rs6000_sibcall_template): Update prototype. |
| (rs6000_longcall_ref): Delete. |
| (rs6000_call_sysv): Declare. |
| * config/rs6000/rs6000.c (edit_tls_call_insn): New function. |
| (global_tlsarg): New variable. |
| (rs6000_legitimize_tls_address): Rewrite __tls_get_addr call |
| handling. |
| (print_operand): Extract UNSPEC_TLSGD address operand. |
| (rs6000_call_template, rs6000_sibcall_template): Remove arg |
| parameter, extract from second call operand instead. |
| (rs6000_longcall_ref): Make static, localize vars. |
| (rs6000_call_aix): Rename parameter to reflect new usage. Take |
| tlsarg from global_tlsarg. Don't create unused rtl or nop insns. |
| (rs6000_sibcall_aix): Rename parameter to reflect new usage. Take |
| tlsarg from global_tlsarg. |
| (rs6000_call_sysv): New function. |
| * config/rs6000/rs6000.md: Adjust rs6000_call_template and |
| rs6000_sibcall_template throughout. |
| (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete. |
| (tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete. |
| (tls_gdld_nomark): New insn. |
| (tls_gd): Swap operand order. Simplify mode selection. |
| (tls_gd_high, tls_gd_low): Swap operand order. |
| (tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD. |
| Simplify mode selection. |
| (tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD. |
| (call, call_value): Don't assert for second call operand. |
| Use rs6000_call_sysv. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64), |
| (call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64), |
| (call_value_nonlocal_darwin64): Remove constraints from second call |
| arg, the rounded_stack_size_rtx arg. |
| * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix), |
| (tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix), |
| (tls_ld_call_sysv, call_local32, call_local64, call_value_local32), |
| (call_value_local64, call_indirect_nonlocal_sysv), |
| (call_nonlocal_sysv, call_nonlocal_sysv_secure), |
| (call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv), |
| (call_value_nonlocal_sysv_secure, call_local_aix), |
| (call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix), |
| (call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2), |
| (call_value_indirect_elfv2, sibcall_local32, sibcall_local64), |
| (sibcall_value_local32, sibcall_value_local64, sibcall_aix), |
| (sibcall_value_aix): Likewise. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.md (TLSmode): Delete mode iterator. Replace |
| with P throughout except for call mems which should use SI. |
| (tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode |
| attributes. Replace with bits, mode and ptrload respectively. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template), |
| (rs6000_indirect_sibcall_template): Declare. |
| * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), |
| (rs6000_indirect_call_template, rs6000_indirect_sibcall_template): |
| New functions. |
| * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv), |
| (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv), |
| (call_indirect_aix, call_value_indirect_aix): Use |
| rs6000_indirect_call_template and rs6000_indirect_sibcall_template. |
| call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and |
| handle both speculation and non-speculation cases. |
| (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete. |
| (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete. |
| |
| 2018-11-29 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_call_template): Declare. |
| (rs6000_sibcall_template): Declare. |
| (macho_call_template): Rename from output_call. |
| * config/rs6000/rs6000.c (rs6000_call_template_1): New function. |
| (rs6000_call_template, rs6000_sibcall_template): Likewise. |
| (macho_call_template): Rename from output_call. |
| * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv), |
| (tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv), |
| (tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv), |
| (call_nonlocal_sysv_secure, call_value_nonlocal_sysv), |
| (call_value_nonlocal_sysv_secure, call_nonlocal_aix), |
| (call_value_nonlocal_aix): Use rs6000_call_template and update |
| occurrences of output_call to macho_call_template. |
| (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix), |
| (sibcall_value_aix): Use rs6000_sibcall_template. |
| |
| 2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * config/rs6000/rs6000-string.c (expand_block_clear): Change how |
| we determine if unaligned vsx is ok. |
| |
| 2018-11-28 Jan Hubicka <jh@suse.cz> |
| |
| * predict.c (determine_unlikely_bbs): Forward declare; also determine |
| edges that are always known to be taken because it is only likely |
| edge out of given BB. |
| (tree_estimate_probability): Call before profile guessing to get bit |
| of extra precision. |
| |
| 2018-11-28 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle |
| profile_probability::always better. |
| |
| 2018-11-28 Jan Hubicka <jh@suse.cz> |
| |
| * profile-count.h (profile_count::split): Give better result when |
| splitting profile_probability::always. |
| |
| 2018-11-28 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/88207 |
| * ira-costs.c (scan_one_insn): Process subregs when updating costs |
| for pseudos and allocnos from insn. |
| |
| 2018-11-28 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/aix72.h: Update to match aix71.h changes. |
| |
| 2018-11-28 Jeff Law <law@redhat.com> |
| |
| * config/h8300/constraints.md: Add "C" constraint for call insns. |
| * config/h8300/h8300.md (call, call_value): Turn into a define_expand |
| and define_insn pair. Move invalid call targets into a register in |
| the expander and fix constraints in the matching pattern. |
| * config/h8300/predicates.md (call_expander_operand): Renamed from |
| call_insn_operand. Reject things we shouldn't be trying to handle. |
| (call_insn_operand): New predicate for use by the call/call_value |
| insns. |
| (small_call_insn_operand): Update appropriately. |
| |
| 2018-11-28 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace |
| calls to strtok with strtok_r. |
| |
| 2018-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88223 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping |
| over a stored-same value may-alias store make sure to consider |
| partial overlaps which are valid when TBAA reasonings do not |
| apply and byte-granular overlaps are possible at all. |
| |
| 2018-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88217 |
| * vr-values.c (vr_values::extract_range_from_phi_node): Make |
| sure to handle results > +INF and < -INF correctly when |
| trying to drop down to +INF - 1 or -INF + 1. |
| |
| 2018-11-28 Alan Modra <amodra@gmail.com> |
| |
| * xcoffout.c (do_block): Signed/unsigned warning fix. |
| |
| 2018-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79351 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from |
| empty CONSTRUCTORs ensure the store is at a constant position. |
| |
| 2018-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88229 |
| * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT |
| is an INTEGER_CST before accessing it so. |
| |
| 2018-11-28 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * doc/invoke.texi (-mtune=): Remove obsolete CPU names. |
| |
| 2018-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88189 |
| * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and |
| SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. |
| * config/i386/sse.md (sse4_1_blendv<ssemodesuffix>): New pattern. |
| |
| 2018-11-27 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (generate_results): Append current_working_directory |
| only when exists. |
| |
| 2018-11-27 Mike Gulick <mgulick@mathworks.com> |
| |
| PR preprocessor/83173 |
| * input.c (dump_location_info): Dump reason and included_from |
| fields from line_map_ordinary struct. Fix indentation when |
| location > 5 digits. |
| * diagnostic-show-locus.c (num_digits, num_digits): Move to |
| diagnostic.c to allow it to be utilized by input.c. |
| * diagnostic.c (num_digits, selftest::test_num_digits): Moved |
| here. |
| (selftest::diagnostic_c_tests): Run selftest::test_num_digits. |
| * diagnostic.h (num_digits): Add extern definition. |
| |
| 2018-11-27 Fredrik Noring <noring@nocrew.org> |
| |
| * config/mips/mips.c (mips_reorg_process_insns) |
| (mips_option_override): Handle `-mfix-r5900'. |
| * config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and |
| `mno-fix-r5900'. |
| * config/mips/mips.opt (mfix-r5900): New option. |
| * doc/invoke.texi: Document the `r5900' processor name, and |
| `-mfix-r5900' and `-mno-fix-r5900' options. |
| |
| 2018-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88188 |
| * config/rs6000/rs6000.c (print_operand) <case 'D'>: Use |
| output_operand_lossage instead of gcc_assert. |
| <case 't'>: Likewise. |
| <case 'z'>: Likewise. |
| <case 'V'>: Use output_operand_lossage instead of gcc_unreachable. |
| |
| 2018-11-27 Jeff Law <law@redhat.com> |
| |
| * config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN |
| in call to move_by_pieces. |
| |
| * config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call |
| to move_by_pieces. |
| |
| * config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in |
| call to move_by_pieces. |
| |
| * config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN |
| in call to move_by_pieces. |
| |
| * config/microblaze/microblaze.c (microblaze_block_move_straight): Use |
| RETURN_BEGIN in call to move_by_pieces. |
| (microblaze_expand_block_move): Likewise. |
| |
| 2018-11-27 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/md.texi (xorsign): Document it. |
| |
| 2018-11-27 Martin Liska <mliska@suse.cz> |
| |
| * config/gnu-user.h (TARGET_F951_OPTIONS): New. |
| * gcc.c (find_fortran_preinclude_file): New function |
| to handle Fortran pre-include. |
| |
| 2018-11-27 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_emit_stack_protection): Use new enum values |
| instead of int constants. |
| * builtins.c (expand_builtin_memory_copy_args): Replace int |
| type with memop_ret enum type. |
| (expand_builtin_mempcpy_args): Likewise. |
| (expand_builtin_memcpy): Use new enum values |
| instead of int constants. Likewise. |
| (expand_builtin_mempcpy): Likewise. |
| (expand_movstr): Likewise. |
| (expand_builtin_strcpy_args): Likewise. |
| (expand_builtin_stpcpy_1): Likewise. |
| (expand_builtin_strncpy): Likewise. |
| (expand_builtin_memset_args): Likewise. |
| * expr.c (move_by_pieces_d::finish_endp): Rename to ... |
| (move_by_pieces_d::finish_retmode): ... this. |
| (move_by_pieces): Change last argument type to memop_ret. |
| (store_by_pieces): Use new enum values |
| instead of int constants. |
| (emit_block_move_hints): Likewise. |
| (emit_push_insn): Likewise. |
| (store_expr): Likewise. |
| * expr.h (store_by_pieces): Change int to newly added enum |
| type. |
| * rtl.h (enum memop_ret): Define. |
| (move_by_pieces): Use the enum type. |
| |
| 2018-11-27 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64 |
| cpu here. |
| (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs |
| form. Error on missing -mcpu case. |
| * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case. |
| (asm_names <!_AIX>): Add missing cpus. Update NULL case. Apply |
| PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le. |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if .. |
| else if .. specs form. Error on missing -mcpu case. Don't output |
| duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le. |
| |
| 2018-11-26 David Malcolm <dmalcolm@redhat.com> |
| |
| * dump-context.h (dump_context::dump_loc): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. Convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_context::dump_loc_immediate): Convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_context::dump_gimple_stmt): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::void dump_gimple_stmt_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_gimple_expr): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_gimple_expr_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_generic_expr): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_generic_expr_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_printf_va): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_printf_loc_va): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_dec): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_symtab_node): Likewise. |
| (dump_context::begin_scope): Split out 2nd param into |
| user and impl locations. |
| (dump_context::ensure_pending_optinfo): Add metadata param. |
| (dump_context::begin_next_optinfo): Replace dump_location_t param |
| with metadata and user location. |
| * dumpfile.c (dump_context::dump_loc): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. Convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_context::dump_loc_immediate): Convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_context::dump_gimple_stmt): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::void dump_gimple_stmt_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_gimple_expr): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_gimple_expr_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_generic_expr): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_generic_expr_loc): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_printf_va): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_printf_loc_va): Likewise; convert |
| 2nd param from const dump_location_t & to |
| const dump_user_location_t &. |
| (dump_context::dump_dec): Convert 1st param from |
| dump_flags_t to const dump_metadata_t &. |
| (dump_context::dump_symtab_node): Likewise. |
| (dump_context::begin_scope): Split out 2nd param into |
| user and impl locations. |
| (dump_context::ensure_pending_optinfo): Add metadata param. |
| (dump_context::begin_next_optinfo): Replace dump_location_t param |
| with metadata and user location. |
| (dump_gimple_stmt): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_gimple_stmt_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_gimple_expr): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_gimple_expr_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_generic_expr): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_generic_expr_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_printf): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_printf_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_dec): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_symtab_node): Likewise. |
| (dump_begin_scope): Split out 2nd param into user and impl |
| locations. |
| (selftest::assert_impl_location_eq): New function. |
| (ASSERT_IMPL_LOCATION_EQ): New macro. |
| (selftest::test_impl_location): Update to use |
| ASSERT_IMPL_LOCATION_EQ. |
| (selftest::test_capture_of_dump_calls): Convert "loc" to |
| dump_user_location_t. Add ASSERT_IMPL_LOCATION_EQ throughout, |
| verifying line numbers of dump emissions. |
| * dumpfile.h (class dump_metadata_t): New class. |
| (dump_printf): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_printf_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_generic_expr_loc): Likewise. |
| (dump_generic_expr): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_gimple_stmt_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_gimple_stmt): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_gimple_expr_loc): Likewise; convert 2nd param from |
| const dump_location_t & to const dump_user_location_t &. |
| (dump_gimple_expr): Convert 1st param from dump_flags_t to |
| const dump_metadata_t &. |
| (dump_symtab_node): Likewise. |
| (dump_dec): Likewise. |
| (dump_begin_scope): Split out 2nd param into user and impl |
| locations. |
| (auto_dump_scope::auto_dump_scope): Split "loc" param into a user |
| location and impl_location, and capture the impl_location. |
| (AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC. |
| * loop-unroll.c (report_unroll): Update for changes to |
| dump_printf_loc and dump_printf. |
| * opt-problem.cc (opt_problem::opt_problem): Update for change to |
| dump_loc. |
| * optinfo-emit-json.cc |
| (selftest::test_building_json_from_dump_calls): Convert "loc" from |
| dump_location_t to dump_user_location_t. |
| * optinfo.cc (optinfo::emit_for_opt_problem): Update for change in |
| dump_loc_immediate. |
| * profile.c (compute_branch_probabilities): Update for change to |
| dump_printf_loc. |
| * selftest.h (ASSERT_STR_CONTAINS_AT): New macro. |
| * tree-vect-slp.c (vect_print_slp_tree): Update for change to |
| dump_printf_loc. |
| |
| 2018-11-27 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * doc/sourcebuild.texi: Document check_effective_target_int_eq_float |
| and check_effective_target_ptr_eq_long. |
| |
| 2018-11-27 Alan Modra <amodra@gmail.com> |
| |
| * config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*), |
| (powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*), |
| (powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*), |
| (powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*), |
| (powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file. |
| * config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC), |
| (LINK_GCC_C_SEQUENCE_SPEC): Undef. |
| (ASM_APP_ON, ASM_APP_OFF): Don't define. |
| * config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define. |
| * config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define. |
| * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. |
| * config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC), |
| (LINK_GCC_C_SEQUENCE_SPEC): Undef. |
| * config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define. |
| * config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine. |
| (GNU_USER_TARGET_CRTN): Redefine. |
| (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. |
| (LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC. |
| (CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define. |
| (STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC. |
| (ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC. |
| (UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define. |
| (LINK_EH_SPEC): Don't define. |
| |
| 2018-11-26 Martin Sebor <msebor@redhat.com> |
| |
| PR 87756 |
| * expr.c (string_constant): Handle top-level decls of all character |
| types and subobjects of narrow character type. |
| |
| 2018-11-27 Alan Modra <amodra@gmail.com> |
| |
| * config.gcc (powerpc*-*-linux*): Add linux.h to tm_file. |
| * config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (RS6000_ABI_NAME): Define. |
| * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use |
| GNU_USER_TARGET_OS_CPP_BUILTINS. |
| (MUSL_DYNAMIC_LINKER32): Undef before defining. |
| (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define. |
| (CHOOSE_DYNAMIC_LINKER): Don't define. |
| (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define. |
| * config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining. |
| (CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when |
| not already defined. |
| (CPP_OS_LINUX_SPEC): Remove defines and asserts handled by |
| TARGET_OS_CPP_BUILTINS. |
| |
| 2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io. |
| |
| 2018-11-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88195 |
| * config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64 |
| and !TARGET_64BIT, return NULL_TREE. |
| |
| PR c++/86900 |
| * dwarf2out.c (secname_for_decl): For functions with |
| DECL_SECTION_NAME if in_cold_section_p, try to return |
| current_function_section's name if it is a named section. |
| |
| 2018-11-26 Maya Rashish <coypu@sdf.org> |
| |
| PR target/58397 |
| * config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o. |
| * config/x-netbsd: New file. |
| * config/host-netbsd: New file. |
| |
| 2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * doc/sourcebuild.texi: Document check_effective_target_size20plus. |
| Clarify documentation for check_effective_target_size32plus. |
| |
| 2018-11-26 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename |
| and modify expand_strncmp_vec_sequence. |
| (emit_final_compare_vec): Rename and modify emit_final_str_compare_vec. |
| (generate_6432_conversion): New function. |
| (expand_block_compare): Add support for vsx. |
| (expand_block_compare_gpr): New function. |
| * config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase |
| default limit to 63 because of more compact vsx code. |
| |
| 2018-11-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88178 |
| * config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM |
| for registers for which no debug information can be generated. |
| Use INVALID_REGNUM for non-existent registers. |
| (dbx64_register_map): Ditto. |
| (svr4_dbx_register_map): Ditto. |
| |
| 2018-11-26 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c/57182 |
| * doc/invoke.texi (Optimize Options): Document that |
| -freorder-functions also uses "hot" and "cold" attributes. |
| |
| 2018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment. |
| |
| 2018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/types.md (mul64): Rename to... |
| (widen_mul64): ... This. |
| * config/arm/arm-generic.md: Rename mul64 to widen_mul64. |
| * config/arm/cortex-a15.md: Likewise. |
| * config/arm/cortex-a5.md: Likewise. |
| * config/arm/cortex-a53.md: Likewise. |
| * config/arm/cortex-a57.md: Likewise. |
| * config/arm/cortex-a7.md: Likewise. |
| * config/arm/cortex-m4.md: Likewise. |
| * config/arm/exynos-m1.md: Likewise. |
| * config/arm/marvell-pj4.md: Likewise. |
| * config/arm/xgene1.md: Likewise. |
| |
| 2018-11-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88182 |
| * tree-vect-loop.c (vectorizable_reduction): Pick up single |
| correct reduc_def_info. |
| * tree-vect-slp.c (vect_analyze_slp_instance): Set |
| STMT_VINFO_REDUC_DEF of the first stmt. |
| |
| 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * doc/invoke.texi: Document z14/arch12 -march option. |
| |
| 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c/57166 |
| * doc/invoke.texi (Option Summary): Add -Wmissing-noreturn. |
| (Warning Options): Likewise. |
| |
| 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR web/79738 |
| * doc/extend.texi (Common Function Attributes): Clarify that |
| functions with "const" attribute can read const global variables. |
| |
| 2018-11-26 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete. |
| |
| 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/54265 |
| * doc/extend.texi (Common Variable Attributes): Use preferred |
| placement of type attributes in examples, plus whitespace fixes. |
| (Type Attributes): Clarify why placement of attributes |
| immediately after struct/union/enum keyword is preferred. |
| (Common Type Attributes): Use preferred placement of type |
| attributes in examples, plus more whitespace fixes. |
| |
| 2018-11-25 Paul Koning <ni1d@arrl.net> |
| |
| * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define. |
| |
| 2018-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document d_runtime. |
| |
| 2018-11-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR bootstrap/88157 |
| * ira-costs.c (record_operand_costs): Initiate register move cost |
| for mode. |
| |
| 2018-11-23 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87468 |
| * tree-ssa-threadupdate.c (create_block_for_threading): Clear |
| EDGE_IGNORE on all outgoing edges of the duplicate block. |
| |
| 2018-11-23 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR bootstrap/88157 |
| * ira-costs.c (record_operand_costs): Use bigger hard reg class if |
| its mode does not fit to the original class. |
| |
| 2018-11-23 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/87756 |
| * expr.c (string_constant): Synthesize a string literal from |
| the address of a constant character. |
| * tree.c (build_string_literal): Add an argument. |
| * tree.h (build_string_literal): Same. |
| |
| 2018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> |
| |
| * config/aarch64/aarch64-cores.def: Define emag. |
| * config/aarch64/aarch64-tune.md: Regenerated with emag. |
| * config/aarch64/aarch64.c (emag_tunings): New struct. |
| * doc/invoke.texi: Document mtune value. |
| |
| 2018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> |
| Philipp Tomsich <philipp.tomsich@theobroma-systems.com> |
| |
| * config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings |
| for GCC 9. |
| * config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific |
| prefetch tunings. |
| * config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify |
| costs. |
| * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table |
| for XGene1. |
| |
| 2018-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88149 |
| * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect |
| the case where there are two different def types for the |
| same operand at different operand position in the same stmt. |
| |
| 2018-23-11 Mihail Ionescu <mihail.ionescu@arm.com> |
| |
| * config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call |
| gen_atomic_compare_swap_1. |
| (arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal. |
| (arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal. |
| (arm_evpc_neon_vext): Likewise gen_neon_vext_internal. |
| (arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal. |
| (arm_evpc_neon_vrev): Replace the function pointer and simplify the mode |
| checks. |
| * config/arm/arm.md (neon_vext<mode>), |
| (neon_vrev64<mode>, neon_vrev32<mode>), |
| (neon_vrev16<mode>, neon_vtrn<mode>_internal), |
| (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Add an '@'character |
| before the pattern name. |
| * config/arm/sync.md: |
| (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1), |
| (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise. |
| |
| 2018-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/86614 |
| * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early |
| if TREE_NO_WARNING is set on ref.ref. |
| |
| 2018-11-22 Sandra Loosemore <sandra@codesourcery.com> |
| Alan Coopersmith <alan.coopersmith@oracle.com> |
| |
| PR c/53608 |
| * doc/extend.texi (Designated Inits): Clarify handling of multiple |
| initializers for unions. |
| |
| 2018-11-22 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/88142 |
| * ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned |
| parameters; do not warn here. |
| (odr_subtypes_equivalent_p): Likewise. |
| (warn_odr): Fix typo. |
| (warn_types_mismatch): Do not output confused warnings on integer types. |
| (odr_types_equivalent_p): Update. |
| |
| 2018-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal, |
| ix86_can_inline_p, classify_argument, construct_container, |
| ix86_expand_prologue, ix86_expand_split_stack_prologue, |
| ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop, |
| expand_setmem_epilogue_via_loop, promote_duplicated_reg, |
| ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi): |
| Formatting fixes. |
| |
| * config/i386/i386.c (ix86_option_override_internal): For |
| stack_protector_guard related options, use opts_set->x_ instead |
| of global_options_set. and prefix options with opts->x_ . Move |
| defaults for offset and reg into else block. |
| |
| 2018-11-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_check_avx_upper_register): |
| Return true for all SSE registers with mode bitsize > 128. |
| |
| 2018-11-22 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87718 |
| * ira-costs.c: Remove trailing white-spaces. |
| (record_operand_costs): Add a special treatment for moves |
| involving a hard register. |
| |
| 2018-11-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove. |
| (ix86_emit_mode_set) <case AVX_U128>: Emit vzeroupper here. |
| |
| 2018-11-22 Martin Liska <mliska@suse.cz> |
| |
| * common/config/i386/i386-common.c (processor_names): Add |
| static assert and add missing "znver2". |
| (ix86_get_valid_option_values): Add checking assert for null |
| values and add "native" value if feasible. |
| * config/i386/i386.h: Do not declare size of processor_names. |
| * common/config/i386/i386-common.c: |
| * config/i386/i386.c: Add static assert for size |
| of processor_cost_table. |
| |
| 2018-11-22 Thomas Preud'homme <thomas.preudhomme@linaro.org> |
| |
| * target-insns.def (stack_protect_combined_set): Define new standard |
| pattern name. |
| (stack_protect_combined_test): Likewise. |
| * cfgexpand.c (stack_protect_prologue): Try new |
| stack_protect_combined_set pattern first. |
| * function.c (stack_protect_epilogue): Try new |
| stack_protect_combined_test pattern first. |
| * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now |
| parameters to control which register to use as PIC register and force |
| reloading PIC register respectively. Insert in the stream of insns if |
| possible. |
| (legitimize_pic_address): Expose above new parameters in prototype and |
| adapt recursive calls accordingly. Use pic_reg if non null instead of |
| cached one. |
| (arm_load_pic_register): Add pic_reg parameter and use it if non null. |
| (arm_legitimize_address): Adapt to new legitimize_pic_address |
| prototype. |
| (thumb_legitimize_address): Likewise. |
| (arm_emit_call_insn): Adapt to require_pic_register prototype change. |
| (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. |
| (thumb1_expand_prologue): Likewise. |
| * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype |
| change. |
| (arm_load_pic_register): Likewise. |
| * config/arm/predicated.md (guard_addr_operand): New predicate. |
| (guard_operand): New predicate. |
| * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address |
| prototype change. |
| (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue |
| prototype change. |
| (stack_protect_combined_set): New expander.. |
| (stack_protect_combined_set_insn): New insn_and_split pattern. |
| (stack_protect_set_insn): New insn pattern. |
| (stack_protect_combined_test): New expander. |
| (stack_protect_combined_test_insn): New insn_and_split pattern. |
| (arm_stack_protect_test_insn): New insn pattern. |
| * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. |
| * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. |
| (UNSPEC_SP_TEST): Likewise. |
| * doc/md.texi (stack_protect_combined_set): Document new standard |
| pattern name. |
| (stack_protect_set): Clarify that the operand for guard's address is |
| legal. |
| (stack_protect_combined_test): Document new standard pattern name. |
| (stack_protect_test): Clarify that the operand for guard's address is |
| legal. |
| |
| 2018-11-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88148 |
| * tree-ssa-loop-niter.c (simplify_replace_tree): Get optional |
| valueization callback parameter and handle it. |
| * tree-ssa-loop-niter.h (simplify_replace_tree): Export. |
| * tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees. |
| |
| 2018-11-22 Richard Biener <rguenther@suse.de> |
| |
| PR lto/87229 |
| PR lto/88112 |
| * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs |
| which can appear in size expressions. |
| * tree-streamer-in.c (unpack_ts_base_value_fields): Stream |
| CALL_EXPR_BY_DESCRIPTOR. |
| (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. |
| * tree-streamer-out.c (pack_ts_base_value_fields): Stream |
| CALL_EXPR_BY_DESCRIPTOR. |
| (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. |
| |
| Revert |
| PR lto/87229 |
| * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val |
| sizepos values. |
| |
| 2018-11-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88069 |
| * tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not |
| apply to default defs. |
| |
| 2018-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/85644 |
| PR target/86832 |
| * config/i386/i386.c (ix86_option_override_internal): Default |
| ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET |
| is defined. |
| * config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>, |
| stack_protect_test, stack_protect_test_<mode>): Use empty condition |
| instead of TARGET_SSP_TLS_GUARD. |
| |
| 2018-11-22 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/88017 |
| * config/i386/i386.c (ix86_option_override_internal): Error |
| about usage -mabi=ms and -fsanitize=thread. |
| |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert the revert: |
| 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-spills.c (lra_final_code_change): Remove useless move insns. |
| |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/88129 |
| * function.c (expand_function_end): Do not emit extra blockage insn. |
| |
| 2018-11-21 Lokesh Janghel <lokeshjanghel91@gmail.com> |
| |
| PR target/85667 |
| * config/i386/i386.c (function_value_ms_64): Return AX_REG instead |
| of FIRST_SSE_REG for 4 or 8 byte modes. |
| |
| 2018-11-21 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/87957 |
| * tree.c (fld_decl_context): Break out from ... |
| (free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE |
| DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL. |
| (fld_incomplete_type_of): Build copy of TYP_DECL. |
| * ipa-devirt.c (free_enum_values): Rename to ... |
| (free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs |
| and TREE_TYPEs of TYPE_DECLs. |
| (get_odr_type): Initialize odr_vtable_hash if needed. |
| |
| 2018-11-21 Alexandre Oliva <oliva@adacore.com> |
| |
| * final.c (compute_discriminator): Declare. Renamed from... |
| (maybe_set_discriminator): ... this. Set and return a local. |
| (override_discriminator): New. |
| (final_scan_insn_1): Set it. |
| (notice_source_line): Adjust. Always set discriminator. |
| |
| 2018-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/87839 |
| * config/aarch64/atomics.md (@aarch64_compare_and_swap<mode>): Use |
| rIJ constraint for aarch64_plus_operand rather than rn. |
| |
| 2018-11-21 Renlin Li <renlin.li@arm.com> |
| |
| PR middle-end/84877 |
| * explow.h (get_dynamic_stack_size): Declare it as external. |
| * explow.c (record_new_stack_level): Remove function static attribute. |
| * function.c (assign_stack_local_1): Dynamically align the stack slot |
| addr for parameter copy on the stack. |
| |
| 2018-11-21 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/88133 |
| * bitmap.c (bitmap_last_set_bit): Refactor to avoid warning. |
| * Makefile.in (bitmap.o-warn): Remove again. |
| |
| 2018-11-20 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/88069 |
| * tree-ssa-dom.c (record_equivalences_from_phis): Propagate away |
| degenerate virtual PHIs. |
| |
| 2018-11-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/87317 |
| * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Replace |
| nonimmediate_operand with register_operand. |
| (avx2_<code>v8qiv8si2<mask_name>): Likewise. |
| (sse4_1_<code>v4qiv4si2<mask_name>): Likewise. |
| (sse4_1_<code>v4hiv4si2<mask_name>): Likewise. |
| (sse4_1_<code>v2qiv2di2<mask_name>): Likewise. |
| (avx512f_<code>v8qiv8di2<mask_name>): Likewise. |
| (avx2_<code>v4qiv4di2<mask_name>): Likewise. |
| (avx2_<code>v4hiv4di2<mask_name>): Likewise. |
| (sse4_1_<code>v2hiv2di2<mask_name>): Likewise. |
| (sse4_1_<code>v2siv2di2<mask_name>): Likewise. |
| (*sse4_1_<code>v8qiv8hi2<mask_name>_1): New pattern. |
| (*sse4_1_<code>v8qiv8hi2<mask_name>_2): Likewise. |
| (*avx2_<code>v8qiv8si2<mask_name>_1): Likewise. |
| (*avx2_<code>v8qiv8si2<mask_name>_2): Likewise. |
| (*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise. |
| (*sse4_1_<code>v4qiv4si2<mask_name>_2): Likewise. |
| (*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise. |
| (*sse4_1_<code>v4hiv4si2<mask_name>_2): Likewise. |
| (*avx512f_<code>v8qiv8di2<mask_name>_1): Likewise. |
| (*avx512f_<code>v8qiv8di2<mask_name>_2): Likewise. |
| (*avx2_<code>v4qiv4di2<mask_name>_1): Likewise. |
| (*avx2_<code>v4qiv4di2<mask_name>_2): Likewise. |
| (*avx2_<code>v4hiv4di2<mask_name>_1): Likewise. |
| (*avx2_<code>v4hiv4di2<mask_name>_2): Likewise. |
| (*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise. |
| (*sse4_1_<code>v2hiv2di2<mask_name>_2): Likewise. |
| (*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise. |
| (*sse4_1_<code>v2siv2di2<mask_name>_2): Likewise. |
| |
| 2018-11-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * read-rtl.c (apply_subst_iterator): Handle define_split and |
| define_insn_and_split. |
| |
| 2018-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/87817 |
| * config/i386/i386.md (bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3, |
| *bmi2_bzhi_<mode>3_1, *bmi2_bzhi_<mode>3_1_ccz): Use IF_THEN_ELSE |
| in the pattern to avoid triggering UB when operands[2] is zero. |
| (tbm_bextri_<mode>): New expander. Renamed the old define_insn to ... |
| (*tbm_bextri_<mode>): ... this. |
| |
| 2018-11-21 Tom de Vries <tdevries@suse.de> |
| |
| PR driver/79855 |
| * params.def (HOT_BB_COUNT_FRACTION): Terminate help message with |
| period. |
| |
| 2018-11-21 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * configure.ac: Add check for Binutils to determine whether vector |
| load/store alignments hints are being supported. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * config/s390/s390.c (print_operand): Support new output |
| modifier A. |
| * config/s390/s390.md ("movti"): Append alignment hint output |
| using the new output modifier 'A'. |
| * config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf") |
| ("*vec_ti_to_v1ti"): Likewise. |
| |
| 2018-11-20 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Other Builtins): Add __builtin_has_attribute. |
| |
| 2018-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/84044 |
| * ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to |
| compare ENUM values. |
| |
| 2018-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/87895 |
| * omp-simd-clone.c (ipa_simd_modify_function_body): When removing |
| or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. |
| (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that |
| redirects edges to EXIT to edges to incr_bb, iterate while EXIT |
| has any preds and always use EDGE_PRED (, 0). |
| |
| 2018-11-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88070 |
| * mode-switching.c (create_pre_exit): After reload, always split the |
| fallthrough edge to the exit block. |
| |
| 2018-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums. |
| * tree.c (build_array_type_1): Forward declare. |
| (fld_type_variant_equal_p): Add INNER_TYPE parameter. |
| (fld_type_variant): Likewise. |
| (fld_simplified_types): New hash. |
| (fld_process_array_type): New function. |
| (fld_incomplete_type_of): Handle array and enumeration types. |
| (fld_simplified_type): Handle simplification of arrays. |
| (free_lang_data): Allocate and free simplified types hash. |
| |
| 2018-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87957 |
| * ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation |
| when sybtype already violates ODR. |
| (get_odr_type): Do not ICE when insert is false and type duplicate |
| is not registered yet. |
| (register_odr_type): Be sure to register subtypes first. |
| |
| 2018-11-20 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the |
| DImode parts of the target operand. |
| |
| 2018-11-20 Nathan Sidwell <nathan@acm.org> |
| |
| PR 87926 |
| * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds. |
| |
| 2018-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87997 |
| * tree.c (free_lang_data_in_cgraph): Add argument fld; break out |
| type checking to... |
| (free_lang_data) ... here; update call of free_lang_data_in_cgraph. |
| |
| 2018-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/87706 |
| * ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions |
| * ipa.c (possible_inline_candidate_p): Break out from .. |
| (process_references): ... here ; drop before_inlining_p; |
| cleanup handling of alises. |
| (walk_polymorphic_call_targets): Likewise. |
| (symbol_table::remove_unreachable_nodes): Likewise. |
| * passes.c (pass_data_ipa_remove_symbols): New structure. |
| (pass_ipa_remove_symbols): New pass. |
| (make_pass_ipa_remove_symbols): New function. |
| * tree-pass.h (make_pass_ipa_remove_symbols): Declare. |
| * passes.def (pass_ipa_remove_symbols): Schedule after early passes. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_condition): Do not get |
| at else_clause vect def for EXTRACT_LAST_REDUCTION. Remove |
| pointless vect_is_simple_use calls. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88074 |
| * tree-ssa-dom.c (pass_dominator::execute): Do not walk |
| backedges. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88069 |
| * tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited |
| virtual PHI arguments. |
| |
| 2018-11-20 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| PR target/88083 |
| * config/s390/s390.md: Skip LT(G) peephole when literal pool is |
| involved. |
| * rtl.h (contains_constant_pool_address_p): New function. |
| * rtlanal.c (contains_constant_pool_address_p): Likewise. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/83215 |
| * alias.c (component_uses_parent_alias_set_from): Remove |
| alias-set zero and TYPE_TYPELESS_STORAGE case both already |
| handled in other ways. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88087 |
| * tree-ssa-pre.c (create_expression_by_pieces): Re-materialize |
| call fntype. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember |
| call fntype. |
| |
| 2018-11-20 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88089 |
| * tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi. |
| |
| 2018-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87957 |
| * ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations. |
| |
| 2018-11-19 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR driver/50250 |
| * doc/invoke.texi (Link Options): Mention shared libraries |
| in documentation for the -l option. Simplify discussion and |
| point to the system linker documentation for details. |
| |
| 2018-11-19 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/88033 |
| * ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register |
| to itself. Use HARD_REGISTER_NUM_P. |
| |
| 2018-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * tree-vect-loop.c (vect_transform_loop): Disable further unrolling |
| of the loop if vf is non-constant. |
| |
| 2018-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR tree-optimization/87025 |
| * dumpfile.c (dump_context::begin_scope): Call end_any_optinfo |
| immediately after creating the scope optinfo. |
| (selftest::test_pr87025): New function. |
| (selftest::dumpfile_c_tests): Call it. |
| * optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert |
| that we're not popping the top-level records array. |
| * optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're |
| not changing the kind of a "scope" optinfo. |
| |
| 2018-11-19 David Malcolm <dmalcolm@redhat.com> |
| |
| PR tree-optimization/87025 |
| * dump-context.h: Include "optinfo.h". |
| (class optrecord_json_writer): New forward decl. |
| (dump_context::forcibly_enable_optinfo_p): Delete. |
| (dump_context::optinfo_enabled_p): New member function. |
| (dump_context::optimization_records_enabled_p): New member |
| function. |
| (dump_context::set_json_writer): New member function. |
| (dump_context::emit_optinfo): New member function. |
| (dump_context::m_forcibly_enable_optinfo): Delete. |
| (dump_context::m_json_writer): New member data. |
| * dumpfile.c (dump_context::set_json_writer): New member function. |
| (dump_context::finish_any_json_writer): New member function. |
| (dump_context::end_scope): Replace call to |
| optimization_records_maybe_pop_dump_scope with call to |
| m_json_writer->pop_scope. |
| (dump_context::optinfo_enabled_p): New member function. |
| (dump_context::end_any_optinfo): Replace call to optinfo::emit with call |
| to dump_context::emit_optinfo. |
| (dump_context::emit_optinfo): New member function. |
| (temp_dump_context::temp_dump_context): Replace |
| m_forcibly_enable_optinfo with call to set_json_writer. |
| (temp_dump_context::~temp_dump_context): Clean up any json writer. |
| * optinfo-emit-json.cc (class optrecord_json_writer): Move to |
| optinfo-emit-json.h |
| (the_json_writer): Delete. |
| (optimization_records_start): Delete. |
| (optimization_records_finish): Delete. |
| (optimization_records_enabled_p): Delete, in favor of |
| dump_context::optimization_records_enabled_p. |
| (optimization_records_maybe_record_optinfo): Delete. |
| (optimization_records_maybe_pop_dump_scope): Delete. |
| * optinfo-emit-json.h: Include "json.h". Delete forward |
| decl of opt_pass. |
| (optimization_records_start): Delete. |
| (optimization_records_finish): Delete. |
| (optimization_records_enabled_p): Delete. |
| (optimization_records_maybe_record_optinfo): Delete. |
| (optimization_records_maybe_pop_dump_scope): Delete. |
| (class optrecord_json_writer): Move here from |
| optinfo-emit-json.cc. |
| * optinfo.cc (optinfo::emit_for_opt_problem): Replace call |
| to optinfo::emit with call to dump_context::emit_optinfo. |
| (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. |
| (optinfo_enabled_p): Delete, in favor of |
| dump_context::optinfo_enabled_p. |
| (optinfo_wants_inlining_info_p): Update for conversion o |
| optimization_records_enabled_p to a member function of |
| dump_context. |
| * optinfo.h (optinfo_enabled_p): Delete, in favor of |
| dump_context::optinfo_enabled_p. |
| (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. |
| * toplev.c: Include "dump-context.h". |
| (compile_file): Replace call to optimization_records_finish with |
| dump_context::finish_any_json_writer. |
| (do_compile): Replace call to optimization_records_start with |
| conditionally creating a optrecord_json_writer for the |
| dump_context. |
| |
| 2018-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88071 |
| * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead |
| of false as last argument to gsi_remove. |
| * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of |
| false as last argument to gsi_replace. |
| |
| PR debug/87039 |
| * omp-expand.c: Don't include debug.h. |
| (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT |
| from innermost outer parallel, task, teams or target that has a |
| child_fn set, or, if there is no such outer region, use |
| current_function_decl. Do the DECL_CONTEXT adjustment regardless of |
| whether a suitable BLOCK is found or not. |
| (expand_parallel_call, expand_teams_call): Don't call |
| adjust_context_and_scope here. |
| (grid_expand_target_grid_body): Revert 2017-01-25 changes. |
| (expand_omp_taskreg, expand_omp_target): Likewise. Call |
| adjust_context_and_scope. |
| * dwarf2out.c (dwarf2out_early_global_decl): For |
| decl_function_context recurse instead of calling dwarf2out_decl. |
| |
| 2018-11-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/85925 |
| * rtl.h (word_register_operation_p): New predicate. |
| * combine.c (record_dead_and_set_regs_1): Only apply specific handling |
| for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. |
| * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. |
| (num_sign_bit_copies1): Likewise. |
| |
| 2018-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR lto/87229 |
| * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val |
| sizepos values. |
| |
| 2018-11-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * compare-elim.c (struct comparison): Add not_in_a field. |
| (is_not): New static function. |
| (strip_not): Likewise. |
| (conforming_compare): Handle a NOT in the first operand. |
| (can_eliminate_compare): Likewise. |
| (find_comparison_dom_walker::before_dom_children): Likewise. |
| (try_eliminate_compare): Likewise. |
| * config/visium/visium.md (negsi2_insn_set_carry): Turn into... |
| (neg<mode>2_insn_set_carry): ...this and add missing NEG operation. |
| |
| 2018-11-19 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Common Type Attributes): Fix typos. |
| |
| 2018-11-19 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/88045 |
| * coverage.c (coverage_begin_function): Add assert. |
| |
| 2018-11-18 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/40498 |
| * doc/extend.texi (Common Function Attributes): Document that |
| no_instrument_function applies to -p and -pg, too. |
| * doc/invoke.texi (Instrumentation Options): Add cross-references |
| to docs for -p, -pg, and -finstrument-functions. |
| |
| 2018-11-18 Alan Modra <amodra@gmail.com> |
| |
| * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. |
| (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. |
| (GNU_USER_TARGET_CRTN): Define. |
| (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. |
| (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. |
| |
| 2018-11-18 Alan Modra <amodra@gmail.com> |
| |
| * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete |
| !HAVE_LD_PIE variant. |
| (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. |
| |
| 2018-11-17 Nick Clifton <nickc@redhat.com> |
| Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR driver/31357 |
| * doc/invoke.texi (Overall Options): Document that --help and |
| --help=<value> options cannot be combined. |
| |
| 2018-11-17 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. |
| (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and |
| epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. |
| (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it |
| to step2 if frame_pointer_needed and step1 is 0. |
| |
| 2018-11-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c++/4225 |
| * doc/cpp.texi (System Headers): Add note about implicit |
| extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. |
| |
| 2018-11-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c++/4025 |
| * doc/invoke.texi (C++ Dialect Options): Clarify usage of |
| -fno-implicit-templates. |
| |
| 2018-11-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/87546 |
| * tree-vect-patterns.c (vect_look_through_possible_promotion): Add |
| min_precision variable, initially set it to orig_precision, only does |
| something if op_type's precision is <= min_precision and update |
| min_precision whenever calling set_op. |
| |
| 2018-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/87957 |
| * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. |
| |
| 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi (Option Summary): Fix whitespace and line |
| breaks in @gccoptlist environments. |
| (Warning Options): Likewise. |
| (Optimize Options): Likewise. |
| (PowerPC SPE Options): Likewise. |
| (RS/6000 and PowerPC Options): Likewise. |
| |
| 2018-11-16 Jeff Law <law@redhat.com> |
| |
| * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus |
| gcc_assert. |
| |
| 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR middle-end/23197 |
| * doc/invoke.texi (Optimize Options): Update options enabled by |
| fprofile-generate, -fprofile-use, and -fauto-profile. |
| |
| 2018-11-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| PR target/87927 |
| * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. |
| Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. |
| * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in |
| the byte_op hook. |
| * target.h: Add psi, pdi, pti to struct asm_int_op definition. |
| * targhooks.c (default_print_patchable_function_entry): Assert |
| asm_int_op does not return a NULL string. |
| * varasm.c (integer_asm_op): Return the op for a partial int type |
| when the requested size does not correspond to an integer type. |
| * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. |
| * doc/tm.texi: Regenerate. |
| |
| 2018-11-12 Jason Merrill <jason@redhat.com> |
| |
| * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. |
| |
| 2018-11-16 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/constraints.md (wF constraint): Remove power9 |
| fusion documentation. Just document wF's use for power8 fusion. |
| * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. |
| (fusion_gpr_addis): Delete power9 fusion support. Change power8 |
| fusion support to require the upper 12 bits to be all 0's or all |
| 1's. |
| (fusion_gpr_mem_load): Add comment. |
| (fusion_addis_mem_combo_load): Remove power9 fusion support. |
| (fusion_addis_mem_combo_store): Delete. |
| (fusion_offsettable_mem_operand): Delete. |
| * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set |
| power8 fusion here. |
| (ISA_3_0_MASKS_SERVER): Delete power9 fusion. |
| (POWERPC_MASKS): Delete power9 fusion. |
| * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. |
| (fusion_p9_p): Delete. |
| (expand_fusion_p9_load): Delete. |
| (expand_fusion_p9_store): Delete. |
| (emit_fusion_p9_load): Delete. |
| (emit_fusion_p9_store): Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 |
| fusion support. |
| (rs6000_option_override_internal): Set power8 fusion based on |
| whether we are tuning for power8. Delete power9 fusion support. |
| (rs6000_opt_masks): Delete -mpower9-fusion switch. |
| (emit_fusion_load): Rename emit_fusion_load_store to |
| emit_fusion_load, and drop fusion store support. Update callers. |
| (emit_fusion_load_store): Likewise. |
| (emit_fusion_gpr_load): Likewise. |
| (fusion_p9_p): Delete. |
| (expand_fusion_p9_load): Delete. |
| (expand_fusion_p9_store): Delete. |
| (emit_fusion_p9_load): Delete. |
| (emit_fusion_p9_store): Delete. |
| * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. |
| (GPR_FUSION): Delete. |
| (FPR_FUSION): Delete. |
| (power9 fusion peephole2s): Delete. |
| (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete. |
| (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete. |
| (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete. |
| (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete. |
| (fusion_p9_<mode>_constant): Delete. |
| * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented |
| power9 fusion switch. |
| * doc/md.texi (PowerPC constraints): Update wF constraint |
| documentation for power8 fusion only. |
| |
| 2018-11-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/87475 |
| * cfgrtl.c (patch_jump_insn): Allow redirection failure for |
| CROSSING_JUMP_P insns. |
| (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. |
| |
| 2018-11-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/88051 |
| * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. |
| * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. |
| (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. |
| |
| 2018-11-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/88032 |
| * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it |
| is VOIDmode, in which case use int_mode. Similarly for op1_mode. |
| |
| 2018-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add |
| location_t parameter. |
| (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. |
| (switch_decision_tree::do_jump_if_equal): Likewise. |
| * tree-switch-conversion.c (switch_decision_tree::emit): Pass location |
| of switch statement to emit_case_nodes. |
| (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and |
| set it on the newly built GIMPLE comparison statement. |
| (switch_decision_tree::do_jump_if_equal): Likewise. |
| (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it |
| in calls to do_jump_if_equal as well as recursive calls. |
| |
| 2018-11-16 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386.md: Allow memory operands to ptwrite. |
| |
| 2018-11-16 Michael Matz <matz@suse.de> |
| |
| * system.h (PRsa): New macro. |
| (SIZE_AMOUNT): Cast number to uint64_t. |
| * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. |
| (pool_usage::dump_footer): Likewise and also use PRIu64. |
| * bitmap.h (bitmap_usage::dump): Likewise. |
| * ggc-common.c (ggc_usage::dump): Likewise. |
| * ggc-page.c (ggc_print_statistics): Likewise. |
| * input.c (dump_line_table_statistics): Likewise. |
| * mem-stats.h (mem_usage::dump): Likewise. |
| (mem_usage::dump_footer): Likewise. |
| * rtl.c (dump_rtx_statistics): Likewise. |
| * tree-cfg.c (dump_cfg_stats): Likewise. |
| * tree-dfa.c (dump_dfa_stats): Likewise. |
| * tree-phinodes.c (phinodes_print_statistics): Likewise. |
| * tree-ssanames (ssanames_print_statistics): Likewise. |
| * vec.c (vec_usage::dump): Likewise. |
| (vec_usage::dump_footer): Likewise. |
| |
| 2018-11-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88011 |
| * tree-vrp.c (extract_range_from_binary_expr): Fix error in |
| replacing set_value_range_to_undefined and |
| set_value_range_to_varying with method calls. |
| |
| 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * config/s390/s390.md |
| (*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to |
| assembler. |
| (*r<noxa>sbg_<mode>_sll): Likewise. |
| (*r<noxa>sbg_<mode>_srl): Likewise. |
| (*r<noxa>sbg_sidi_srl): New pattern. |
| |
| 2018-11-16 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. |
| Default to TARGET_VXWORKS_RTP. |
| (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead |
| of TARGET_VXWORKS_RTP. |
| * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead |
| of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. |
| |
| 2018-11-15 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c++/25759 |
| * doc/extend.texi (Common Type Attributes): Make it explicit |
| that attribute "packed" can apply to C++ classes. |
| |
| 2018-11-15 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/87541 |
| PR c++/87542 |
| * tree.c (type_argument_type): New function. |
| * tree.h (type_argument_type): Declare it. |
| * gcc/doc/extend.texi (alloc_align): Update and clarify. |
| (alloc_size, nonnull, sentinel): Same. |
| |
| 2018-11-15 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| |
| * tree-vect-stmts.c (vectorizable_store): Don't ICE when |
| int_mode_for_size fails. |
| (vectorizable_load): Likewise. |
| |
| 2018-11-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/ux.texi (Group logically-related diagnostics): Move |
| discussion of auto_diagnostic_group into this new subsection. |
| Give an example of where this grouping is used. |
| |
| 2018-11-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/19165 |
| * Makefile.in (OBJS): Move json.o to... |
| (OBJS-libcommon): ...here and add diagnostic-format-json.o. |
| * common.opt (fdiagnostics-format=): New option. |
| (diagnostics_output_format): New enum. |
| * diagnostic-format-json.cc: New file. |
| * diagnostic.c (default_diagnostic_final_cb): New function, taken |
| from start of diagnostic_finish. |
| (diagnostic_initialize): Initialize final_cb to |
| default_diagnostic_final_cb. |
| (diagnostic_finish): Move "being treated as errors" messages to |
| default_diagnostic_final_cb. Call any final_cb. |
| (default_diagnostic_finalizer): Add diagnostic_t param. |
| (diagnostic_report_diagnostic): Pass "orig_diag_kind" to |
| diagnostic_finalizer callback. |
| * diagnostic.h (enum diagnostics_output_format): New enum. |
| (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. |
| (struct diagnostic_context): Add "final_cb". |
| (default_diagnostic_finalizer): Add diagnostic_t param. |
| (diagnostic_output_format_init): New decl. |
| * doc/invoke.texi (-fdiagnostics-format): New option. |
| * dwarf2out.c (gen_producer_string): Ignore |
| OPT_fdiagnostics_format_. |
| * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. |
| * lto-wrapper.c (append_diag_options): Ignore it. |
| * opts.c (common_handle_option): Handle it. |
| |
| 2018-11-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR tree-optimization/88015 |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check |
| for dump_enabled_p. |
| * graphite-sese-to-poly.c (build_poly_scop): Likewise. |
| |
| 2018-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88029 |
| * gimple.c (gimple_call_flags): Union flags from decl, type |
| and call fntype. |
| * trans-mem.c (is_tm_pure_call): Simplify. |
| |
| 2018-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88031 |
| * tree-vect-loop.c (vectorizable_reduction): Move check |
| for multiple types earlier so we get the expected dump. |
| Simplify calls to vectorizable_condition. |
| * tree-vect-stmts.h (vectorizable_condition): Update prototype. |
| * tree-vect-stmts.c (vectorizable_condition): Instead of |
| reduc_def and reduc_index take just a flag. Simplify |
| code-generation now that we can rely on the defs being set up. |
| (vectorizable_comparison): Remove unused argument. |
| |
| 2018-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88030 |
| * tree-complex.c (need_eh_cleanup): New global. |
| (update_complex_assignment): Mark blocks that need EH update. |
| (expand_complex_comparison): Likewise. |
| (tree_lower_complex): Allocate and deallocate need_eh_cleanup, |
| perform EH cleanup and schedule CFG cleanup if that did anything. |
| |
| 2018-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/88018 |
| * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge |
| on the presence of fallthru edge, rather than if it is a USE or not. |
| |
| 2018-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87917 |
| * tree-data-ref.c (analyze_miv_subscript): Guard calls to |
| analyze_subscript_affine_affine properly. |
| |
| 2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> |
| |
| * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. |
| (GLIBC_DYNAMIC_LINKER): Define. |
| (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. |
| |
| 2018-11-15 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/84648 |
| * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. |
| (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case |
| by calling adjust_cond_for_loop_until_wrap. |
| |
| 2018-11-15 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/56334 |
| * doc/extend.texi (Common Function Attributes): Clarify linker |
| restrictions on "aligned" attribute. |
| (Common Variable Attributes): Likewise. Mention that linker |
| restrictions don't apply to stack-allocated variables. |
| |
| 2018-11-15 Joern Rennecke <joern.rennecke@riscy-ip.com> |
| |
| * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT |
| as an lvalue. |
| |
| 2018-11-14 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR lto/55102 |
| PR lto/56700 |
| * doc/invoke.texi (Optimize Options): Remove bad example about |
| interaction between -flto and -O. Replace it with a note that |
| you need to compile with -O and not just link. Copy-edit -flto |
| discussion to reduce verbiage and improve flow. |
| |
| 2018-11-14 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR middle-end/59658 |
| * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og |
| also suppress many optimizations. Alphabetize option lists for |
| -O1, -O2, and -Os. Add list of options disabled with -Og, and |
| correct documentation for those options to say that. |
| * opts.c (default_options_table): Sort table by level and option |
| name, to make it easier to correlate to the manual. |
| |
| 2018-11-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand_address_as): Simplify |
| printing of the names of segment registers. |
| |
| 2018-11-14 Nathan Sidwell <nathan@acm.org> |
| |
| PR debug/88006 |
| PR debug/87462 |
| * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat |
| type list. |
| |
| 2018-11-14 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). |
| |
| 2018-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| P1236R1 - Signed integers are two's complement |
| * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. |
| |
| PR bootstrap/86739 |
| * hash-map.h (hash_map::iterator::reference_pair): New class. |
| (hash_map::iterator::operator*): Return it rather than std::pair. |
| |
| 2018-11-14 Jeff Law <law@redhat.com> |
| |
| * optabs.c (expand_binop): Pass INT_MODE to operand_subword_force |
| iff the operand is a constant. |
| |
| 2018-11-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename |
| ignore_equivs_equal_p to equal_p. |
| * ipa-cp.c (meet_with_1): Use equal_p instead of |
| ignore_equivs_equal_p. |
| * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. |
| * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. |
| (value_range::operator==): Remove. |
| (value_range::operator!=): Remove. |
| (vrp_prop::visit_stmt): Use equal_p. |
| * tree-vrp.h (value_range): Remove operator==, operator!=, |
| ignore_equivs_equal_p. |
| * vr-values.c (update_value_range): Use equal_p. |
| |
| 2018-11-14 Michael Matz <matz@suse.de> |
| |
| PR middle-end/86575 |
| * gimplify.c (collect_fallthrough_labels): Add new argument, |
| return location via that, don't modify statements. |
| (warn_implicit_fallthrough_r): Adjust call, don't use |
| statement location directly. |
| |
| 2018-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87985 |
| * tree-data-ref.c (split_constant_offset): Add wrapper |
| allocating a cache hash-map. |
| (split_constant_offset_1): Cache results of expanding |
| expressions from SSA def stmts. |
| |
| 2018-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88021 |
| * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument |
| to lambda_int. |
| (lambda_vector_mult_const): Likewise. |
| (lambda_matrix_right_hermite): Use lambda_int temporaries. |
| |
| 2018-11-14 Wilco Dijkstra <wdijkstr@arm.com> |
| Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| PR 71026/tree-optimization |
| * match.pd: Simplify floating point comparisons. |
| |
| 2018-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/87817 |
| * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if |
| last argument has low 8 bits clear, fold to 0. |
| |
| 2018-11-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast |
| MAX_OFILE_ALIGNMENT as needed. |
| |
| 2018-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88019 |
| * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite |
| COND_EXPR arguments to non-trapping overflow. |
| |
| 2018-11-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (reg_class): Reorder registers classes, remove |
| unused register classes. |
| (REG_CLASS_NAMES): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| (FIXED_REGISTERS): Make lp_count fixed. |
| (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. |
| (PROGRAM_COUNTER_REGNO): Remove. |
| * config/arc/arc.c (arc_conditional_register_usage): Remove unused |
| register classes, use constants for register numbers, remove |
| reg_class_contents references. |
| (arc_process_double_reg_moves): Add asserts. |
| (arc_secondary_reload): Remove LPCOUNT_REG reference, use |
| lra_in_progress predicate. |
| (arc_init_reg_tables): Remove unused register classes. |
| (arc_register_move_cost): Likewise. |
| (arc_preferred_reload_class): Likewise. |
| (hwloop_optimize): Update rtx patterns involving lp_count register. |
| (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. |
| * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and |
| CHEAP_CORE_REGS. Former one will be used for LRA. |
| ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former |
| one will be used for LRA. |
| ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former |
| one will be used for LRA. |
| ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. |
| Former one will be used for LRA. |
| ("f"): Delete constraint. |
| ("k"): Likewise. |
| ("e"): Likewise. |
| ("l"): Change it from register constraint to constraint. |
| * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. |
| (movhi_insn): Likewise. |
| (movsi_insn): Update pattern. |
| (arc_lp): Likewise. |
| (dbnz): Likewise. |
| (stack_tie): Remove 'b' constraint letter. |
| (R4_REG): Define. |
| (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. |
| (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. |
| (R57_REG, R59_REG, PCL_REG): Likewise. |
| (ILINK1_REGNUM): Renamed to ILINK1_REG. |
| (ILINK2_REGNUM): Renamed to ILINK2_REG. |
| (Rgp): Remove. |
| (SP_REGS): Likewise. |
| (Rcw): Remove unused reg classes. |
| * config/arc/predicates.md (dest_reg_operand): Just default on |
| register_operand predicate. |
| (mpy_dest_reg_operand): Likewise. |
| (move_dest_operand): Use macros instead of constants. |
| * config/arc/arc.opt (mlra): Switch to lra as default. |
| |
| 2018-11-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87974 |
| * tree-vect-loop.c (vectorizable_reduction): When computing |
| the vectorized reduction PHI vector type ignore constant |
| and external defs. |
| |
| 2018-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/87977 |
| * tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division |
| stmt, build a new one and replace the old one with it. Formatting fix. |
| Call release_ssa_name (x) if !has_other_use and !delete_div. |
| (pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt |
| verify lhs of stmt is still def. |
| |
| 2018-11-13 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/87507 |
| * lower-subreg.c (operand_for_swap_move_operator): New function. |
| (simple_move): Strip simple operators. |
| (find_pseudo_copy): Likewise. |
| (resolve_operand_for_swap_move_operator): New function. |
| (resolve_simple_move): Strip simple operators and swap operands. |
| |
| 2018-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/87898 |
| * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix. |
| (ipa_simd_modify_function_body): Remove debug stmts where the first |
| argument was changed into a non-decl. |
| |
| 2018-11-13 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/87899 |
| * lra-lives.c (start_living): Update white space in comment. |
| (enum point_type): New. |
| (sparseset_contains_pseudos_p): New function. |
| (update_pseudo_point): Likewise. |
| (make_hard_regno_live): Use HARD_REGISTER_NUM_P macro. |
| (make_hard_regno_dead): Likewise. Remove ignore_reg_for_conflicts |
| handling. Move early exit after adding conflicts. |
| (mark_pseudo_live): Use HARD_REGISTER_NUM_P macro. Add early exit |
| if regno is already live. Remove all handling of program points. |
| (mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro. Add early exit |
| after adding conflicts. Remove all handling of program points and |
| ignore_reg_for_conflicts. |
| (mark_regno_live): Use HARD_REGISTER_NUM_P macro. Remove return value |
| and do not guard call to mark_pseudo_live. |
| (mark_regno_dead): Use HARD_REGISTER_NUM_P macro. Remove return value |
| and do not guard call to mark_pseudo_dead. |
| (check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro. |
| (process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros. |
| Use new function update_pseudo_point. Handle register copies by |
| removing the source register from the live set. Handle INOUT operands. |
| Update to the next program point using the unused_set, dead_set and |
| start_dying sets. |
| (lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro. |
| |
| 2018-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * builtins.c: Replace "source_location" with "location_t". |
| * diagnostic-show-locus.c: Likewise. |
| * diagnostic.c: Likewise. |
| * dumpfile.c: Likewise. |
| * gcc-rich-location.h: Likewise. |
| * genmatch.c: Likewise. |
| * gimple.h: Likewise. |
| * gimplify.c: Likewise. |
| * input.c: Likewise. |
|