1. 10 Apr, 2018 8 commits
    • re PR testsuite/85190 (gcc.dg/vect/pr81196.c FAILs) · 2377345d
      	gcc/testsuite
      	PR testsuite/85190
      	* gcc.dg/vect/pr81196.c: Adjust pointer for aligned access.
      
      From-SVN: r259272
      Bin Cheng committed
    • re PR target/85177 (wrong code with -O -fno-tree-ccp -fno-tree-sra -mavx512f) · 56f1cb3f
      	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.
      
      	* gcc.target/i386/avx512f-pr85177.c: New test.
      	* gcc.target/i386/avx512f-pr85255.c: New test.
      
      From-SVN: r259269
      Jakub Jelinek committed
    • Add missing cases to vect_get_smallest_scalar_type (PR 85286) · eb38d071
      In this PR we used WIDEN_SUM_EXPR to vectorise:
      
        short i, y;
        int sum;
        [...]
        for (i = x; i > 0; i--)
          sum += y;
      
      with 4 ints and 8 shorts per vector.  The problem was that we set
      the VF based only on the ints, then calculated the number of vector
      copies based on the shorts, giving 4/8.  Previously that led to
      ncopies==0, but after r249897 we pick it up as an ICE.
      
      In this particular case we could vectorise the reduction by setting
      ncopies based on the output type rather than the input type, but it
      doesn't seem worth adding a special "optimisation" for such a
      pathological case.  I think it's really an instance of the more general
      problem that we can't vectorise using combinations of (say) 64-bit and
      128-bit vectors on targets that support both.
      
      2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/85286
      	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
      
      gcc/testsuite/
      	PR tree-optimization/85286
      	* gcc.dg/vect/pr85286.c: New test.
      
      From-SVN: r259268
      Richard Sandiford committed
    • Set insn_last_address in final_1 · 02149a78
      final_1 already sets insn_current_address for each instruction, making
      it possible to use some of the address functions in final.c during
      assembly generation.  This patch also sets insn_last_address, since
      as the comment says, we can treat final as a shorten_branches pass that
      does nothing.  It's then possible to use insn_current_reference_address
      during final as well.
      
      This is needed for the aarch64.md definitions of far_branch to work:
      
         (set (attr "far_branch")
      	(if_then_else (and (ge (minus (match_dup 2) (pc)) (const_int -1048576))
      			   (lt (minus (match_dup 2) (pc)) (const_int 1048572)))
      		      (const_int 0)
      		      (const_int 1)))]
      
      This value (tested only during final) uses the difference between
      the INSN_ADDRESSES of operand 2 and insn_current_reference_address
      to calculate a conservatively-correct estimate of the branch distance.
      It takes into account the worst-case gap due to alignment, whereas
      a direct comparison of INSN_ADDRESSES would give an unreliable,
      optimistic result.
      
      2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* final.c (final_1): Set insn_last_address as well as
      	insn_current_address.
      
      From-SVN: r259267
      Richard Sandiford committed
    • [explow] PR target/85173: validize memory before passing it on to target probe_stack · 5c35bc3e
      In this PR the expansion code emits an invalid memory address for the stack probe, which the backend fails to recognise.
      The address is created explicitly in anti_adjust_stack_and_probe_stack_clash in explow.c and passed down to gen_probe_stack
      without any validation in emit_stack_probe.
      
      This patch fixes the ICE by calling validize_mem on the memory location before passing it down to the target.
      Jakub pointed out that we also want to create valid addresses for the probe_stack_address case, so this patch
      creates an expand operand and legitimizes it before passing it down to the probe_stack_address expander.
      
      This patch passes bootstrap and testing on arm-none-linux-gnueabihf and aarch64-none-linux-gnu
      and ppc64le-redhat-linux on gcc112 in the compile farm.
      
      	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.
      
      	* gcc.target/arm/pr85173.c: New test.
      
      From-SVN: r259266
      Kyrylo Tkachov committed
    • Be more carefull about DECL merging in LTO (PR lto/85248). · 8d96e546
      2018-04-10  Richard Biener  <rguenther@suse.de>
      	    Martin Liska  <mliska@suse.cz>
      
      	PR lto/85248
      	* lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.
      2018-04-10  Jakub Jelinek  <jakub@redhat.com>
      
      	PR lto/85248
      	* gcc.dg/lto/pr85248_0.c: New test.
      	* gcc.dg/lto/pr85248_1.c: New test.
      
      From-SVN: r259265
      Martin Liska committed
    • re PR lto/85078 (LTO ICE: tree check: expected tree that contains 'decl minimal'… · c1b8f25d
      re PR lto/85078 (LTO ICE: tree check: expected tree that contains 'decl minimal' structure, have 'identifier_node' in decl_mangling_context, at cp/mangle.c:878)
      
      
      	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.
      	* g++.dg/torture/pr85078.C: New.
      
      From-SVN: r259264
      Jan Hubicka committed
    • Daily bump. · f518da46
      From-SVN: r259263
      GCC Administrator committed
  2. 09 Apr, 2018 22 commits
  3. 08 Apr, 2018 10 commits
    • invoke.texi (-Wrestrict, [...]): Tweak text. · de8a29bd
      gcc/ChangeLog:
      
      	* invoke.texi (-Wrestrict, -fprintf-return-value): Tweak text.
      
      From-SVN: r259224
      Martin Sebor committed
    • [NDS32] Add intrinsic functions for interrupt control. · 8b9322f0
      gcc/
      	* 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.
      
      From-SVN: r259223
      Monk Chiang committed
    • [NDS32] Add strict_aligned_p to machine_function and implement TARGET_EXPAND_TO_RTL_HOOK. · 5f2a98c3
      gcc/
      	* 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.
      
      From-SVN: r259222
      Chung-Ju Wu committed
    • [NDS32] Implement n7 pipeline. · 63ab910d
      gcc/
      	* 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.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259221
      Kito Cheng committed
    • [NDS32] Implement e8 pipeline. · 7c1583bd
      gcc/
      	* 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.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259220
      Kito Cheng committed
    • [NDS32] Implement n8 pipeline. · 8fd52141
      gcc/
      	* 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.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259219
      Kito Cheng committed
    • [NDS32] Implment n9 pipeline. · b99353a2
      gcc/
      	* 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.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259218
      Kito Cheng committed
    • [NDS32] New option -malways-align and -malign-functions. · 43fa41c1
      gcc/
      	* 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.
      
      From-SVN: r259217
      Chung-Ju Wu committed
    • [NDS32] Add intrinsic functions for TLB operation and data prefech. · 57aaf0cc
      gcc/
      	* 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.
      
      From-SVN: r259216
      Monk Chiang committed
    • Daily bump. · 82d800ce
      From-SVN: r259215
      GCC Administrator committed