]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/ChangeLog
re PR target/85424 (The __builtin_packlongdouble function might have issues with...
[gcc.git] / gcc / ChangeLog
index 08f7d51df502c2c30460085e1210f2a4777176af..54dfb4ff35164b30a73c890e8200173d770df18b 100644 (file)
@@ -1,3 +1,875 @@
+2018-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/85424
+       * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
+       where the inputs overlap with the output.
+
+2018-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add
+       (=v, v) alternative and explicit "memory" attribute.
+       (vec_extract_lo_<mode><mask_name>): Likewise.  Also add
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use
+       "sselog1" type instead of "sselog".
+       (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of
+       "sselog".  Remove explicit "memory" attribute.
+       (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory",
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_hi_v32hi): Merge all alternatives into one, use
+       "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_hi_v16hi): Merge each pair of alternatives into one,
+       use "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory",
+       "type", "prefix", "prefix_extra", "length_immediate" and "mode"
+       attributes.
+       (vec_extract_hi_v64qi): Merge all alternatives into one, use
+       "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+       (vec_extract_hi_v32qi): Merge each pair of alternatives into one,
+       use "sselog1" type instead of "sselog".  Remove explicit "memory"
+       attribute.
+
+       PR target/85430
+       * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
+
+       PR middle-end/85414
+       * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
+       on a SUBREG.
+
+2018-04-17  Martin Jambor  <mjambor@suse.cz>
+
+       PR ipa/85421
+       * ipa-cp.c (create_specialized_node): Call
+       expand_all_artificial_thunks if necessary.
+
+2018-04-17  Martin Liska  <mliska@suse.cz>
+
+       PR lto/85405
+       * ipa-devirt.c (odr_types_equivalent_p): Remove trailing
+       in message, remote space in between '_G' and '('.
+
+2018-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/85281
+       * config/i386/sse.md (reduces<mode><mask_scalar_name>,
+       avx512f_vmcmp<mode>3<round_saeonly_name>,
+       avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
+       avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>,
+       avx512f_rndscale<mode><round_saeonly_name>,
+       avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
+       avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
+       Use %<iptr>2 instead of %2 for -masm=intel.
+       (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>,
+       avx512f_vcvttss2usi<round_saeonly_name>,
+       avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for
+       -masm=intel.
+       (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>,
+       avx512f_vcvttsd2usi<round_saeonly_name>,
+       avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>):
+       Use %q1 instead of %1 for -masm=intel.
+       (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>,
+       avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead
+       of %3 for -masm=intel.
+       (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for
+       -masm=intel.
+       (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for
+       -masm=intel.
+       (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for
+       -masm=intel.
+       (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with
+       %k0 and %1 for -masm=intel rather than two patterns, one with %0 and
+       %g1.
+       (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for
+       -masm=intel.
+       (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with
+       %q0 and %1 for -masm=intel rather than two patterns, one with %0 and
+       %g1 and one with %0 and %1.
+       (avx512er_vmrcp28<mode><round_saeonly_name>,
+       avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of
+       %1 for -masm=intel.
+       (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask,
+       avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask,
+       avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order
+       of %0 and %{%4%} for -masm=intel.
+       (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz,
+       avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz,
+       avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap
+       order of %0 and %{%5%}%{z%} for -masm=intel.
+
+2018-04-17  Jan Hubicka  <jh@suse.cz>
+
+       PR lto/85405
+       * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
+
+2018-04-17  Martin Liska  <mliska@suse.cz>
+
+       PR ipa/85329
+       * multiple_target.c (create_dispatcher_calls): Set apostrophes
+       for target_clone error message.  Make default implementation
+        clone to be a local declaration.
+       (separate_attrs): Add new argument and check for an empty
+       string.
+       (expand_target_clones): Handle it.
+       (ipa_target_clone): Make redirection just for target_clones
+       functions.
+
+2018-04-16  Cesar Philippidis  <cesar@codesourcery.com>
+           Tom de Vries  <tom@codesourcery.com>
+
+       PR middle-end/84955
+       * omp-expand.c (expand_oacc_for): Add dummy false branch for
+       tiled basic blocks without omp continue statements.
+
+2018-04-16  Aaron Sawdey  <acsawdey@linux.ibm.com>
+
+       PR target/83660
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
+       vec_extract expression as having side effects to make sure it gets
+       a cleanup point.
+
+2018-04-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/85403
+       * config/i386/i386.c (get_builtin_code_for_version): Check
+       error_mark_node.
+
+2018-04-16  Olga Makhotina  <olga.makhotina@intel.com>
+
+       PR target/84331
+       * gcc/config.gcc: Support "skylake".
+       * gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle
+       PROCESSOR_SKYLAKE.
+       * gcc/config/i386/i386.c (m_SKYLAKE): Define.
+       (processor_target_table): Add "skylake".
+       (ix86_option_override_internal): Add "skylake".
+       (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE,
+       PROCESSOR_CANNONLAKE.
+       (get_builtin_code_for_version): Fix priority for
+       PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER,
+       PROCESSOR_SKYLAKE-AVX512.
+       * gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE.
+       (processor_type): Add PROCESSOR_SKYLAKE.
+
+2018-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
+           Jason Merrill  <jason@redhat.com>
+
+       PR c++/85112
+       * convert.c (convert_to_integer_1): Use direct recursion for
+       enumeral types and types with a precision less than the number
+       of bits in their mode.
+
+2018-04-16  Julia Koval  <julia.koval@intel.com>
+
+       PR target/84413
+       * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL,
+       X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512
+
+2018-04-14  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/85293
+       * config/rs6000/rs6000.opt (mdirect-move): Make deprecated.
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move
+       and -mno-direct-move.
+
+2018-04-13  Paul A. Clarke  <pc@us.ibm.com>
+
+       PR target/83402
+       * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}):
+       Ensure that vec_splat_s32 is only called with 0 <= shift < 16.
+       Ensure negative shifts result in {0}.
+
+2018-04-13  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/79916
+       * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
+       regs (if any) to define how to gnerate SD moves when LRA is in
+       progress.
+
+2018-04-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/85393
+       * except.h (expand_dw2_landing_pad_for_region): Remove declaration.
+       * except.c (expand_dw2_landing_pad_for_region): Make static.
+       * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just
+       a label and unconditional jump to old_bb, rather than
+       expand_dw2_landing_pad_for_region insn(s) and jump to single_succ
+       basic block.
+
+       PR rtl-optimization/85376
+       * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and
+       zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX
+       instead of a specific value.
+
+2018-04-13  Jan Hubicka  <hubicka@ucw.cz>
+           Bin Cheng  <bin.cheng@arm.com>
+
+       PR tree-optimization/82965
+       PR tree-optimization/83991
+       * cfgloopanal.c (expected_loop_iterations_unbounded): Add
+       by_profile_only parameter.
+       * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
+        information if the loop was predicted to iterate too many times.
+       * cfgloop.h (expected_loop_iterations_unbounded): Update prototype
+
+2018-04-13  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR lto/71991
+       * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
+       always inline.
+
+2018-04-13  Martin Liska  <mliska@suse.cz>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/81657
+       * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
+       * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
+       * builtins.c (expand_builtin_memory_copy_args): Use
+       BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
+       handle dest_addr == pc_rtx.
+
+2018-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/85291
+       * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
+       asked to not generate direct moves.
+       (fix_trunc<mode>si2_stfiwx): Similar.
+       (fix_trunc<mode>si2_internal): Similar.
+
+2018-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/83157
+       * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
+       * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
+       lookup if dest in some wider mode is known to be const0_rtx and
+       if so, record permanent equivalence for it to be ZERO_EXTEND of
+       the narrower mode destination.
+
+2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
+
+       * lto-streamer-out.c (output_function): Revert 259346.
+       * omp-expand.c (expand_oacc_for): Likewise.
+
+2018-04-12  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR rtl-optimization/85354
+       * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
+       * sel-sched.c (sel_global_init): ... here.
+
+2018-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/85238
+       * lto-wrapper.c (debug_objcopy): Open the files in binary mode.
+       * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
+       mode for PE-COFF targets.
+       * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
+       (i386_pe_asm_lto_end): Likewise.
+       * config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
+       (TARGET_ASM_LTO_END): Likewise.
+       * config/i386/winnt.c (saved_debug_info_level): New static variable.
+       (i386_pe_asm_lto_start): New function.
+       (i386_pe_asm_lto_end): Likewise.
+
+2018-04-12  Cesar Philippidis  <cesar@codesourcery.com>
+           Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/84955
+       * lto-streamer-out.c (output_function): Fix CFG loop state before
+       streaming out.
+       * omp-expand.c (expand_oacc_for): Handle calls to internal
+       functions like regular functions.
+
+2018-04-12  Richard Biener  <rguenther@suse.de>
+
+       PR lto/85371
+       * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
+       for the early LTO debug to properly generate references to it
+       during DIE emission.  Do not re-use that for the skeleton for
+       split-dwarf.
+       (dwarf2out_early_finish): Likewise.
+
+2018-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/85328
+       * config/i386/sse.md
+       (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
+       <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
+       vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
+       vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
+       and output is a reg, avoid creating invalid lowpart subreg, but
+       instead split into a 512-bit move.  Don't split if not AVX512VL,
+       input is xmm16+ reg and output is a mem.
+       (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
+       vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
+       xmm16+ reg and output is a mem.
+
+2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.c (s390_output_indirect_thunk_function): Check
+       also for flag_dwarf2_cfi_asm.
+
+2018-04-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/85342
+       * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
+       a bool scalar var inside of the loop instead.  Don't try to update
+       recog_data.operand after failed apply_change_group.
+
+2018-04-12  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/85296
+       * config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
+       (nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
+       array with flexible array member as array without given dimension.
+       (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
+       argument for undefined param to true.
+
+2018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>
+
+       PR target/85321
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document options
+       -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
+       from PowerPC section.
+       * config/rs6000/sysv4.opt (mcall-): Improve help text.
+       * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
+       help text that is too long.
+       * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
+       help text that is too long.
+       * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
+       help text that is too long.
+
+2018-04-11  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.md (stack_probe_internal): Rename
+       from "probe_stack".  Update all callers.
+
+2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR rtl-optimization/84566
+       * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
+       sched_macro_fuse_insns.
+
+2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR target/84301
+       * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
+       (compute_block_dependences): ... from here.
+
+2018-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/85331
+       * vec-perm-indices.h (vec_perm_indices::clamp): Change input type
+       from int to HOST_WIDE_INT.
+
+2018-04-11  Martin Jambor  <mjambor@suse.cz>
+
+       PR ipa/84149
+       * ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
+       (cgraph_edge_brings_value_p): New parameter dest_val, check if it is
+       not the same as the source val.
+       (cgraph_edge_brings_value_p): New parameter.
+       (gather_edges_for_value): Pass destination value to
+       cgraph_edge_brings_value_p.
+       (perhaps_add_new_callers): Likewise.
+       (get_info_about_necessary_edges): Likewise and exclude values brought
+       only by self-recursive edges.
+       (create_specialized_node): Redirect only clones of self-calling edges.
+       (+self_recursive_pass_through_p): New function.
+       (find_more_scalar_values_for_callers_subset): Use it.
+       (find_aggregate_values_for_callers_subset): Likewise.
+       (known_aggs_to_agg_replacement_list): Removed.
+       (decide_whether_version_node): Re-calculate known constants for all
+       remaining context clones.
+
+2018-04-11  Richard Biener  <rguenther@suse.de>
+
+       PR lto/85339
+       * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
+       from early DWARF output.
+       (dwarf2out_early_finish): Output line info unconditionally into
+       early DWARF and add reference to it.
+
+2018-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/85281
+       * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
+       (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
+       other than V2DFmode using iptr mode attribute.
+       (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.
+
+2018-04-11  Alexander Monakov  <amonakov@ispras.ru>
+
+       PR rtl-optimization/84659
+       * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.
+
+2018-04-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/85302
+       * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
+       SIZEP is NULL.
+       (output_loc_list): Pass address of a dummy size variable even in the
+       locview handling loop.
+       (index_location_lists): Add comment on why skip_loc_list_entry can't
+       call size_of_locs.
+
+2018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+       PR target/85261
+       * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
+       into register.
+
+2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>
+
+       PR target/85321
+       * doc/invoke.texi (RS/6000 and PowerPC Options): Document options
+       -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
+       and -mstring-compare-inline-limit.
+
+2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/85287
+       * gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
+       for stack clash protection in a register whenever we need it to be in
+       a register.
+
+2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
+       Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.
+
+2018-04-10  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/85321
+       * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
+       the help text.
+       (mlong-double-): Ditto.
+       * config/rs6000/sysv4.opt (msdata=): Ditto.
+       (mtls-size=): Ditto.
+
+2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+
+       * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
+       erroneous entries for
+       "vector int vec_ldl (int, long int *)", and
+       "vector unsigned int vec_ldl (int, unsigned long int *)".
+       Add comments and entries for
+       "vector bool char vec_ldl (int, bool char *)",
+       "vector bool short vec_ldl (int, bool short *)",
+       "vector bool int vec_ldl (int, bool int *)",
+       "vector bool long long vec_ldl (int, bool long long *)",
+       "vector pixel vec_ldl (int, pixel *)",
+       "vector long long vec_ldl (int, long long *)",
+       "vector unsigned long long vec_ldl (int, unsigned long long *)".
+       * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
+       type tree bool_long_long_type_node and correct definition of
+       bool_V2DI_type_node to make reference to this new type tree.
+       (rs6000_mangle_type): Replace erroneous reference to
+       bool_long_type_node with bool_long_long_type_node.
+       * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
+       comments to emphasize sign distinctions for char and int types and
+       replace RS6000_BTI_bool_long constant with
+       RS6000_BTI_bool_long_long constant.  Also add comment to restrict
+       use of RS6000_BTI_pixel.
+       (bool_long_type_node): Remove this macro definition.
+       (bool_long_long_type_node): New macro definition
+
+2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/85300
+       * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
+       into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
+       simplify_unary_operation fails.
+
+2018-04-10  Martin Liska  <mliska@suse.cz>
+
+       * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
+       cgraph_edge and ipa_ref.
+
+2018-04-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/85177
+       PR target/85255
+       * config/i386/sse.md
+       (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
+       computation of the VEC_MERGE selector from mask.
+       (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
+       Fix decoding of the VEC_MERGE selector into mask.
+
+2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       PR tree-optimization/85286
+       * tree-vect-data-refs.c (vect_get_smallest_scalar_type):
+
+2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * final.c (final_1): Set insn_last_address as well as
+       insn_current_address.
+
+2018-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/85173
+       * explow.c (emit_stack_probe): Call validize_mem on memory location
+       before passing it to gen_probe_stack.  Create address operand and
+       legitimize it for the probe_stack_address case.
+
+2018-04-09  Jan Hubicka  <jh@suse.cz>
+
+       PR lto/85078
+       * ipa-devirt.c (rebuild_type_inheritance-hash): New.
+       * ipa-utils.h (rebuild_type_inheritance-hash): Declare.
+       * tree.c (free_lang_data_in_type): Fix handling of binfos;
+       walk basetypes.
+       (free_lang_data): Rebuild type inheritance graph.
+
+2018-04-09  Martin Sebor  <msebor@redhat.com>
+
+       * invoke.texi (-finline-small-functions): Mention other optimization
+       options.
+       (-findirect-inlining, -fpartial-inlining): Same.
+       (-finline-functions-called-once): Same.
+       (-freorder-blocks-and-partition): Same.
+
+2018-04-09  Jan Hubicka  <jh@suse.cz>
+
+       PR rtl/84058
+       * cfgcleanup.c (try_forward_edges): Do not give up on crossing
+       jumps; choose last target that matches the criteria (i.e.
+       no partition changes for non-crossing jumps).
+       * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
+       support for redirecting crossing jumps to non-crossing.
+
+2018-04-09  Alexey Brodkin  <abrodkin@synopsys.com>
+
+       * config/arc/arc.c (arc_expand_prologue): Set stack usage info
+       also for naked functions.
+
+2018-04-09  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.md (add_shift): New pattern.
+       (add_shift2): Likewise.
+       (sub_shift): Likewise.
+       (sub_shift_cmp0_noout): Likewise.
+       (compare_si_ashiftsi): Likewise.
+       (xbfu_cmp0_noout): New combine pattern.
+       (xbfu_cmp0"): Likewise.
+       (movsi_set_cc_insn): Place the predicable variant first.
+       (commutative_binary_cmp0_noout): Remove clobber.
+       (commutative_binary_cmp0): New pattern.
+       (noncommutative_binary_cmp0): Likewise.
+       (noncommutative_binary_cmp0_noout): Likewise.
+       (noncommutative_binary_comparison_result_used): Removed.
+       (rsub_cmp0): New pattern.
+       (rsub_cmp0_noout): Likewise.
+       (extzvsi): Changed, keep only meaningful variants.
+       (SQH, SEZ): New iterators.
+       (SQH_postfix): New mode attribute.
+       (SEZ_prefix): New code attribute.
+       (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
+       (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
+       * config/arc/predicates.md (cc_set_register): Use CC_REG instead
+       of numerical value.
+       (noncommutative_operator): Check the availability of barrel
+       shifter option.
+
+2018-04-09  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/85284
+       * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
+       Only use the niter constraining form of simple_iv when the exit
+       is always executed.
+
+2018-04-09  Tom de Vries  <tom@codesourcery.com>
+
+       PR target/84041
+       * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
+       (define_expand "*memory_barrier"): New define_expand.
+       (define_insn "memory_barrier"): New insn.
+
+2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/80463
+       PR rtl-optimization/83972
+       PR rtl-optimization/83480
+
+       * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
+       correct producer for the insn.
+       (tidy_control_flow): Fixup seqnos in case of debug insns.
+
+2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/83913
+
+       * sel-sched-ir.c (merge_expr_data): Choose the middle between two
+       different sched-times when merging exprs.
+
+2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/83962
+
+       * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
+       tidy_fallthru_edge and tidy_control_flow.
+
+2018-04-09  Andrey Belevantsev  <abel@ispras.ru>
+
+       PR rtl-optimization/83530
+
+       * sel-sched.c (force_next_insn): New global variable.
+       (remove_insn_for_debug): When force_next_insn is true, also leave only
+       next insn in the ready list.
+       (sel_sched_region): When the region wasn't scheduled, make another pass
+       over it with force_next_insn set to 1.
+
+2018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
+       into tm_file.
+       * config/nds32/constants.md (unspec_volatile_element): Add enum values
+       for interrupt control.
+       * config/nds32/nds32-intrinsic.c: Implementation of intrinsic
+       functions for interrupt control.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+
+2018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/nds32.c (nds32_init_machine_status,
+       nds32_legitimate_index_p, nds32_legitimate_address_p): Consider
+       strict_aligned_p field.
+       (nds32_expand_to_rtl_hook): New function.
+       (TARGET_EXPAND_TO_RTL_HOOK): Define.
+       * config/nds32/nds32.h (machine_function): Add strict_aligned_p field.
+
+2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu.
+       * config/nds32/nds32-n7.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n7 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n7.
+       * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus.
+       * config/nds32/pipelines.md: Include n7 settings.
+
+2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu.
+       * config/nds32/nds32-e8.md: New file.
+       * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for e8 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add e8.
+       * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus.
+       * config/nds32/pipelines.md: Include e8 settings.
+
+2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu.
+       * config/nds32/nds32-n8.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n8 pipeline.
+       * config/nds32/nds32-utils.c: More implementations for n8 pipeline.
+       * config/nds32/nds32.md (pipeline_model): Add n8.
+       * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus.
+       * config/nds32/pipelines.md: Include n8 settings.
+
+2018-04-08  Kito Cheng  <kito.cheng@gmail.com>
+           Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config.gcc (nds32*): Add nds32-utils.o into extra_objs.
+       * config/nds32/nds32-n9-2r1w.md: New file.
+       * config/nds32/nds32-n9-3r2w.md: New file.
+       * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type,
+       nds32_register_ports): New or modify for cpu n9.
+       * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9
+       pipeline.
+       * config/nds32/nds32-protos.h: More declarations for n9 pipeline.
+       * config/nds32/nds32-utils.c: New file.
+       * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE,
+       TARGET_MUL_SLOW): Define.
+       * config/nds32/nds32.md (pipeline_model): New attribute.
+       * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports):
+       New options that support cpu n9.
+       * config/nds32/pipelines.md: Include n9 settings.
+       * config/nds32/t-nds32 (nds32-utils.o): Add dependency.
+
+2018-04-08  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align
+       information if necessary.
+       (output_cond_branch_compare_zero): Likewise.
+       * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case.
+       (nds32_target_alignment): Refine for alignment.
+       * config/nds32/nds32.h (NDS32_ALIGN_P): Define.
+       (FUNCTION_BOUNDARY): Modify.
+       * config/nds32/nds32.md (call_internal, call_value_internal): Consider
+       align case.
+       * config/nds32/nds32.opt (malways-align, malign-functions): New.
+
+2018-04-08  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/constants.md (unspec_volatile_element): Add values for
+       TLB operation and data prefetch.
+       * config/nds32/nds32-intrinsic.c: Implementation of intrinsic
+       functions for TLB operation and data prefetch.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.c (nds32_dpref_names): Likewise.
+       (nds32_print_operand): Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+
+2018-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
+       Andrew Pinski <pinsika@gcc.gnu.org>
+
+       PR middle-end/82976
+       * match.pd: Use constant_boolean_node of correct type instead of
+       boolean_true_node or boolean_false_node for simplifying
+       pointer comparisons to zero.
+
+2018-04-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/80021
+       * tree.c (verify_type_variant): Make error call in verify_variant_match
+       translatable and remove final full stop.
+
+2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_EH_RETURN.
+       * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push,
+       nds32_output_stack_pop): Support dwarf exception handling process.
+       * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare.
+       * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf
+       exception handling process.
+       (nds32_compute_stack_frame): Likewise.
+       (nds32_return_addr_rtx): Likewise.
+       (nds32_initial_elimination_offset): Likewise.
+       (nds32_expand_prologue): Likewise.
+       (nds32_expand_epilogue): Likewise.
+       (nds32_dynamic_chain_address): New function.
+       * config/nds32/nds32.h (machine_function): Add fields for dwarf
+       exception handling.
+       (DYNAMIC_CHAIN_ADDRESS): Define.
+       (EH_RETURN_DATA_REGNO): Define.
+       (EH_RETURN_STACKADJ_RTX): Define.
+       * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement
+       patterns for dwarf exception handling.
+
+2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/nds32.h: Clean up obsolete macros.
+
+2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/constants.md (unspec_element, unspec_volatile_element):
+       Add enum values for particular instructions.
+       * config/nds32/nds32-intrinsic.c: Implementation of expanding
+       particular intrinsic functions.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+       * config/nds32/nds32.md (type): Add pbsad and pbsada.
+       (btst, ave): New patterns for particular instructions.
+
+2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/constants.md (unspec_element, unspec_volatile_element):
+       Add enum values for atomic load/store and memory sync.
+       * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store
+       and memory sync.
+       * config/nds32/nds32-intrinsic.md: Likewise.
+       * config/nds32/nds32_intrinsic.h: Likewise.
+       * config/nds32/nds32.h (nds32_builtins): Likewise.
+
+2018-04-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/85257
+       * fold-const.c (native_encode_vector): If not all elts could fit
+       and off is -1, return 0 rather than offset.
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
+       (offseti - offset2) / BITS_PER_UNIT as 4th argument to
+       native_encode_expr.  Verify len * BITS_PER_UNIT >= maxsizei.  Don't
+       adjust buffer in native_interpret_expr call.
+
+2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/constants.md (unspec_volatile_element): Add cache
+       control enum values.
+       * config/nds32/nds32-intrinsic.c: Add cache control expand functions.
+       * config/nds32/nds32-intrinsic.md: Add cache control patterns.
+       * config/nds32/nds32.c (nds32_cctl_names): New.
+       (nds32_print_operand): Handle cache control register names.
+       * config/nds32/nds32.h (nds32_builtins): New enum values.
+       * config/nds32/nds32_intrinsic.h: Add cache control enum types and
+       macros.
+       * config/nds32/nds32.md (type): Add mmu.
+       * config/nds32/pipelines.md (simple_insn): Add mmu.
+
+2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/nds32.md (type): Remove call.
+       * config/nds32/pipelines.md (simple_insn): Likewise.
+
+2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/constants.md (unspec_volatile_element): Add
+       UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and
+       UNSPEC_VOLATILE_FMFCFG.
+       * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin
+       description for fmfcfg and fmfcsr.
+       (bdesc_1arg): Add fmtcsr.
+       (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd.
+       (nds32_expand_builtin_impl): Deal with FPU intrinsic functions.
+       * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd,
+       unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr,
+       unspec_fmfcfg): New patterns.
+       * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG,
+       NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS,
+       NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD.
+       * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss,
+       __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr,
+       __nds32__fmfcfg): Define.
+
+2018-04-07  Monk Chiang  <sh.chiang04@gmail.com>
+
+       * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more
+       intrinsic register names.
+       * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more
+       intrinsic register enum values and macros.
+
+2018-04-07  Chung-Ju Wu  <jasonwucj@gmail.com>
+
+       * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition
+       for load/store addressing form.
+       (nds32_print_operand_address): Likewise.
+
+2018-04-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/85196
+       * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
+       based on LABEL_REF.  Remove useless assertion.
+       (pic_address_needs_scratch): Fix formatting.
+       (sparc_legitimize_pic_address): Minor tweaks.
+       (sparc_delegitimize_address): Adjust assertion accordingly.
+       * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
+       into symbolic_operand.
+       (movsi_high_pic_label_ref): Likewise.
+       (movsi_lo_sum_pic_label_ref): Likewise.
+       (movdi_pic_label_ref): Likewise.
+       (movdi_high_pic_label_ref): Likewise.
+       (movdi_lo_sum_pic_label_ref): Likewise.
+
 2018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
 
        * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
This page took 0.047772 seconds and 5 git commands to generate.