1. 28 May, 2018 9 commits
    • [Ada] Spurious constraint error on array of null-excluding components · 341e0bb6
      This patch fixes an issue whereby the compiler would raise spurious runtime
      errors when an array of null-excluding components was initialized with an
      expression which required the secondary stack (such as with an concatination
      operation) due to certain generated checks which were incorrected performed
      on internal object declarations.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* exp_ch3.adb
      	(Build_Initialization_Call): Add logic to pass the appropriate actual to match
      	 new formal.
      	(Init_Formals): Add new formal *_skip_null_excluding_check
      	* exp_util.adb, exp_util.ads
      	(Enclosing_Init_Proc): Added to fetch the enclosing Init_Proc from the current
      	 scope.
      	(Inside_Init_Proc): Refactored to use Enclosing_Init_Proc
      	(Needs_Conditional_Null_Excluding_Check): Added to factorize the predicate
      	 used to determine how to generate an Init_Proc for a given type.
      	(Needs_Constant_Address): Minor reformatting
      	* sem_res.adb
      	(Resolve_Null): Add logic to generate a conditional check in certain cases
      
      gcc/testsuite/
      
      	* gnat.dg/array31.adb: New testcase.
      
      From-SVN: r260822
      Justin Squirek committed
    • [Ada] Minor reformatting · 9b19c244
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* exp_aggr.adb, gnatlink.adb, sem_ch6.adb, sem_res.adb, sem_util.adb:
      	Minor reformatting.
      
      From-SVN: r260821
      Hristian Kirtchev committed
    • [Ada] Spurious error on aspect Volatile · aab1da2a
      This patch modifies the analysis of aspect/pragma Volatile to correct accept
      the annotation when it applies to single protected and single task types, and
      SPARK_Mode On is in effect.
      
      ------------
      -- Source --
      ------------
      
      --  pack.ads
      
      package Pack with SPARK_Mode is
         protected PO_Aspect with Volatile is end;                         --  OK
      
         protected PO_Pragma is end;
         pragma Volatile (PO_Pragma);                                      --  OK
      
         task TO_Aspect with Volatile;                                     --  OK
      
         task TO_Pragma;
         pragma Volatile (TO_Pragma);                                      --  OK
      end Pack;
      
      ----------------------------
      -- Compilation and output --
      ----------------------------
      
      $ gcc -c pack.ads
      $ gcc -c pack.ads -gnatd.F
      cannot generate code for file pack.ads (package spec)
      
      2018-05-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Include
      	the declarations of single concurrent types because they fall in the
      	category of full type and object declarations.
      
      From-SVN: r260820
      Hristian Kirtchev committed
    • [Ada] Minor tweak to output of -gnatR · c8e95568
      This changes the output of -gnatR for extensions of tagged record types to
      avoid displaying the internal _Parent component, which overlaps with other
      components and is thus more confusing than helpful.
      
      For the following hierarchy:
      
        type R1 is tagged record
          I : Integer;
        end record;
      
        type R2 is new R1 with record
          C : Character;
        end record;
      
      the output -gnatR must now be:
      
      for R1'Object_Size use 128;
      for R1'Value_Size use 96;
      for R1'Alignment use 8;
      for R1 use record
         _Tag at 0 range  0 .. 63;
         I    at 8 range  0 .. 31;
      end record;
      
      for R2'Object_Size use 192;
      for R2'Value_Size use 136;
      for R2'Alignment use 8;
      for R2 use record
         _Tag at  0 range  0 .. 63;
         I    at  8 range  0 .. 31;
         C    at 16 range  0 ..  7;
      end record;
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (Compute_Max_Length): Skip _Parent component.
      	(List_Record_Layout): Likewise.
      
      From-SVN: r260819
      Eric Botcazou committed
    • [Ada] Warning on recursive call within postcondition · 500b21dd
      This patch adds a warning to a function call that appears within a
      postcondition for said function. This may mean an omission of an attribute
      reference 'Result, and may lead to an infinite loop on a call to that function.
      
      Compiling post_error.ads must yield:
      
      post_error.ads:3:11:
              warning: postcondition does not mention function result
      post_error.ads:3:19:
             warning: call to "Foo" within its postcondition will lead
               to infinite recursion
      ----
      package Post_Error is
         function Foo (A : out Integer) return Integer
           with Post => Foo (A)  /= 0;
         pragma Import (C, Foo);
      end Post_Error;
      
      2018-05-28  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Is_Function_Result): Add a warning if a postcondition
      	includes a call to function to which it applies. This may mean an
      	omission of an attribute reference 'Result, in particular if the
      	function is pqrameterless.
      
      From-SVN: r260818
      Ed Schonberg committed
    • [Ada] Misleading warning on unresolvable package name · aa76fac7
      This patch fixes an issue whereby the compiler misidentified a package name
      containing the name of a standard runtime package as said package - leading to
      and improper error message prompting the user to "With" a package already in
      scope.
      
      2018-05-28  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch8.adb (Find_Expanded_Name): Add extra guard to make sure the
      	misresolved package name is not a case of mistaken identity.
      
      gcc/testsuite/
      
      	* gnat.dg/warn15-core-main.adb, gnat.dg/warn15-core.ads,
      	gnat.dg/warn15-interfaces.ads, gnat.dg/warn15.ads: New testcase.
      
      From-SVN: r260817
      Justin Squirek committed
    • [Ada] Further evaluation of type bounds in GNATprove mode · e740ff85
      Some static bounds of types are not recognized and evaluated as such in the
      semantic analysis phase of the frontend, which leads to incomplete information
      in GNATprove. Fix that in the GNATprove mode only, as this is not needed when
      full expansion is used.
      
      There is no impact on compilation.
      
      2018-05-28  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Range): Re-resolve the low bound of a range in
      	GNATprove mode, as the order of resolution (low then high) means that
      	all the information is not available when resolving the low bound the
      	first time.
      
      From-SVN: r260816
      Yannick Moy committed
    • [Ada] Minor internal cleanup in repinfo unit · 7672ab42
      This steamlines a bit the implementation.  No functional changes.
      
      2018-05-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Array_Info): Start with an explicit blank line and
      	end with the linker section, if any.
      	(List_Entities): Do not output the linker section for record types,
      	array types and variables.
      	(Print_Expr): Factor out common processing for unary operators and
      	special values.  Adjust and reorder the various cases.
      	(List_Object_Info): End with the linker section, if any.
      	(List_Record_Info): Likewise.
      	(List_Type_Info): Do not start with a blank line.
      
      From-SVN: r260815
      Eric Botcazou committed
    • Daily bump. · 121dec88
      From-SVN: r260814
      GCC Administrator committed
  2. 27 May, 2018 8 commits
    • pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. · d5ca27ef
      	* config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0.
      
      From-SVN: r260809
      John David Anglin committed
    • decl.c (match_data_constant): Fortran 2018 allows pointer initialization in a data statement. · b6e841a6
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * decl.c (match_data_constant):  Fortran 2018 allows pointer
       initialization in a data statement.
      
      2018-05-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
       * gfortran.dg/data_stmt_pointer.f90: new test.
      
      From-SVN: r260808
      Steven G. Kargl committed
    • Fix a number of ICE in the test suite. · f5435230
      	    * config/pdp11/pdp11.md (truncsihi2): Remove.
      
      From-SVN: r260807
      Paul Koning committed
    • stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. · 538a7cd0
      2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
      	(_Rb_tree(const allocator_type&)): Use latter.
      	* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
      	(map(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multimap.h
      	(multimap(const allocator_type&)): Likewise.
      	(multimap(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multimap(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      	* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
      	(set(initializer_list<value_type>, const allocator_type&)): Likewise.
      	(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
      	* include/bits/stl_multiset.h
      	(multiset(const allocator_type&)): Likewise.
      	(multiset(initializer_list<value_type>, const allocator_type&)):
      	Likewise.
      	(multiset(_InputIterator, _InputIterator, const allocator_type&)):
      	Likewise.
      
      From-SVN: r260806
      François Dumont committed
    • [NDS32] Optimize movmem and setmem operations. · 8889fbe5
      gcc/
      	* config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns
      	implementation.
      	(unaligned_store_dw): Ditto.
      	* config/nds32/nds32-memory-manipulation.c
      	(nds32_expand_movmemsi_loop_known_size): Refactoring implementation.
      	(nds32_gen_dup_4_byte_to_word_value): Rename to ...
      	(nds32_gen_dup_4_byte_to_word_value_aux): ... this.
      	(emit_setmem_word_loop): Rename to ...
      	(emit_setmem_doubleword_loop): ... this.
      	(nds32_gen_dup_4_byte_to_word_value): New function.
      	(nds32_gen_dup_8_byte_to_double_word_value): New function.
      	(nds32_expand_setmem_loop): Refine implementation.
      	(nds32_expand_setmem_loop_v3m): Ditto.
      	* config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New
      	pattern.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r260805
      Monk Chiang committed
    • [NDS32] Implement bswapsi2 and bswaphi2 patterns. · 0be3bad7
      gcc/
      	* config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns.
      
      From-SVN: r260804
      Chung-Ju Wu committed
    • [NDS32] new attribute no_prologue and new option -mret-in-naked-func. · 54c537e6
      gcc/
      	* config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue".
      	(nds32_init_machine_status): Initialize machine->attr_naked_p and
      	machine->attr_no_prologue_p.
      	(nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes.
      	(nds32_naked_function_p): Handle "naked" and "no_prologue" attributes.
      	(nds32_expand_epilogue): Consider attr_naked_p.
      	(nds32_expand_epilogue_v3pop): Likewise.
      	(nds32_can_use_return_insn): Likewise.
      	* config/nds32/nds32.h (machine_function): Add attr_naked_p and
      	attr_no_prologue_p fields.
      	* config/nds32/nds32.opt (mret-in-naked-func): New option.
      
      From-SVN: r260803
      Chung-Ju Wu committed
    • Daily bump. · 4cdb54ea
      From-SVN: r260801
      GCC Administrator committed
  3. 26 May, 2018 8 commits
    • re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized… · 70d22cdd
      re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target)
      
      	PR target/85918
      	* config/i386/i386.md (fixunssuffix, floatunssuffix): New code
      	attributes.
      	* config/i386/sse.md
      	(<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>):
      	Rename to ...
      	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
      	... this.
      	(*<floatsuffix>floatv2div2sf2): Rename to ...
      	(*float<floatunssuffix>v2div2sf2): ... this.
      	(<floatsuffix>floatv2div2sf2_mask): Rename to ...
      	(float<floatunssuffix>v2div2sf2_mask): ... this.
      	(*<floatsuffix>floatv2div2sf2_mask_1): Rename to ...
      	(*float<floatunssuffix>v2div2sf2_mask_1): ... this.
      	(<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename
      	to ...
      	(fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	Rename to ...
      	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
      	... this.
      	(<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ...
      	(fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this.
      	(vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of
      	gen_ufix_truncv8dfv8si2.
      	* config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask,
      	__builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask,
      	__builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask,
      	__builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask,
      	__builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask,
      	__builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask,
      	__builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask):
      	Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names.
      
      	* gcc.target/i386/avx512dq-pr85918.c: New test.
      
      From-SVN: r260797
      Jakub Jelinek committed
    • Fix PR number in last commit. · 80c820d8
      From-SVN: r260796
      Jerry DeLisle committed
    • re PR target/89506 (ICE: in decompose, at rtl.h:2266 with -Og -g) · 8cb19ee3
      2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/89506
      	* io/write.c (write_integer): Initialise the fnode format to
      	FMT_NONE, used for list directed write.
      	(BUF_STACK_SZ): Bump default buffer size up to avoid allocs on
      	small stuff.
      
      From-SVN: r260795
      Jerry DeLisle committed
    • Fix changelog. · b61da1eb
      From-SVN: r260794
      Jerry DeLisle committed
    • re PR fortran/85840 (Memory leak in write.c) · 3c2ce893
      2018-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libgfortran/85840
      	* io/write.c (write_float_0): Use separate local variable for
      	the float string length.
      
      From-SVN: r260793
      Jerry DeLisle committed
    • Don't check ifunc_resolver on error · cf3a2c1a
      Since ifunc_resolver isn't set when an error is detected, we should
      lookup ifunc attribute in this case.
      
      	PR target/85900
      	PR target/85345
      	* varasm.c (assemble_alias): Lookup ifunc attribute on error.
      
      From-SVN: r260792
      H.J. Lu committed
    • re PR bootstrap/85921 (/gcc/c-family/c-warn.c fails to build) · 44284983
      	PR bootstrap/85921
      	* c-warn.c (diagnose_mismatched_attributes): Remove unnecessary
      	noinline variable to workaround broken kernel headers.
      
      From-SVN: r260790
      Jakub Jelinek committed
    • Daily bump. · 95795b3a
      From-SVN: r260789
      GCC Administrator committed
  4. 25 May, 2018 15 commits
    • RISC-V: Add interrupt attribute support. · d0ebdd9f
      	gcc/
      	* config/riscv/riscv-protos.h (riscv_epilogue_uses): New.
      	* config/riscv/riscv.c (struct machine_function): Add
      	interrupt_handler_p and attribute_checked_p fields.
      	(riscv_attribute_table): Add interrupt.
      	(riscv_interrupt_type_p): New.
      	(riscv_save_reg_p): Save extra regs for interrupt handler.
      	(riscv_use_save_libcall): Return false  for interrupt handler.
      	(riscv_first_stack_step): Add forward declaration.
      	(riscv_compute_frame_info): New local interrupt_save_t1.  Set it
      	for interrupt handler with large frame.  Use it for saved reg list.
      	(riscv_expand_prologue): Move flag_stack_usage_info support to
      	eliminate duplication.
      	(riscv_expand_epilogue): Generate mret for interrupt handler.
      	(riscv_epilogue_uses): New.
      	(riscv_can_use_return_insn): Return false for interrupt handler.
      	(riscv_function_ok_for_sibcall): Likewise.
      	(riscv_set_current_function): Add interrupt handler support.
      	* config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses.
      	* config/riscv/riscv.md (UNSPECV_MRET): New.
      	(GP_REGNUM): New.
      	(riscv_frflags, riscv_fsflags): Use tab after opcode.
      	(riscv_mret): New.
      	* doc/extend.texi (RISC-V Function Attributes) <interrupt>: New.
      
      	gcc/testsuite/
      	* gcc.target/riscv/interrupt-1.c: New.
      	* gcc.target/riscv/interrupt-2.c: New.
      	* gcc.target/riscv/interrupt-3.c: New.
      	* gcc.target/riscv/interrupt-4.c: New.
      	* gcc.target/riscv/interrupt-5.c: New.
      
      From-SVN: r260785
      Jim Wilson committed
    • re PR fortran/85786 (Segfault in associated intrinsic) · c0e8f02b
      2018-05-25  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/85786
      	* gfortran.dg/pr85786.f90: New test.
      
      From-SVN: r260783
      Steven G. Kargl committed
    • PR c++/85815 - reference to member of enclosing template. · d9338471
      	* search.c (lookup_base): Use currently_open_class.
      	(lookup_member): Use it regardless of -fconcepts.
      	* parser.c (cp_parser_postfix_dot_deref_expression): Check it.
      
      From-SVN: r260782
      Jason Merrill committed
    • Fix test case failures for pdp11 target. · 99dcfb5f
      	* gcc.c-torture/compile/20151204.c: Skip if pdp11.
      	* gcc.c-torture/compile/pr55921.c: Ditto.
      	* gcc.c-torture/compile/pr60655-1.c: Ditto.
      	* gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11.
      
      From-SVN: r260781
      Paul Koning committed
    • CWG 616, 1213 - value category of subobject references. · 3983063e
      	* tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer.
      
      From-SVN: r260780
      Jason Merrill committed
    • re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at… · 9d502741
      re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479)
      
      2018-05-25  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	PR tree-optimization/85712
      	* gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
      	this candidate has already been replaced in-situ by a copy.
      
      From-SVN: r260772
      Bill Schmidt committed
    • * inclhack.def (vxworks_iolib_include_unistd): New fix. · 1afe3e77
      From-SVN: r260763
      Rasmus Villemoes committed
    • PR c++/80485 - inline function non-zero address. · f22ed1ed
      	* symtab.c (nonzero_address): Check DECL_COMDAT.
      
      From-SVN: r260762
      Jason Merrill committed
    • re PR libstdc++/85768 (FreeBSD bootstrap fails due to undefined reference to 'backtrace') · 18b11937
      2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/85768
      	* src/c++11/debug.cc: Remove backtrace usage.
      
      From-SVN: r260761
      François Dumont committed
    • re PR rtl-optimization/83628 (performance regression when accessing arrays on alpha) · fc47a2fd
      	PR target/83628
      	* config/alpha/alpha.md (ashlsi3): New insn pattern.
      	(*ashlsi_se): Rename from *ashldi_se.  Define as sign
      	extension of SImode operation.  Use const123_operand predicate.
      	(*saddsi_1): Remove.
      	(*saddl_se_1): Ditto.
      	(*ssubsi_1): Ditto.
      	(*ssubl_se_1): Ditto.
      	* config/alpha/predicates.md (const123_operand): New predicate.
      	* config/alpha/constraints.md (P): Use IN_RANGE.
      
      From-SVN: r260760
      Uros Bizjak committed
    • tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, defaulted to true. · 27312bf2
      2018-05-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter,
      	defaulted to true.
      	(ref_maybe_used_by_stmt_p): Likewise.
      	(stmt_may_clobber_ref_p): Likewise.
      	(stmt_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter
      	and pass it along.
      	(ref_maybe_used_by_stmt_p): Likewise.
      	(stmt_may_clobber_ref_p): Likewise.
      	(stmt_may_clobber_ref_p_1): Likewise.
      	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use
      	the alias oracle to disambiguate DRs with stmts DR analysis
      	couldn't handle.
      	(vect_analyze_data_refs): Do not give up on not analyzable
      	DRs for BB vectorization.  Remove code truncating the dataref
      	vector.
      
      From-SVN: r260757
      Richard Biener committed
    • re PR target/85832 ([AVX512] possible shorter code when comparing with vector of zeros) · b55f342b
      	PR target/85832
      	* config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1):
      	Add (=Yk,v,C) variant using vptestm insn.  Use TARGET_AVX512BW
      	in test instead of TARGET_AVX512F for VI12_AVX512VL iterator.
      
      	* gcc.target/i386/avx512f-pr85832.c: New test.
      	* gcc.target/i386/avx512vl-pr85832.c: New test.
      	* gcc.target/i386/avx512bw-pr85832.c: New test.
      	* gcc.target/i386/avx512vlbw-pr85832.c: New test.
      
      From-SVN: r260756
      Jakub Jelinek committed
    • tree-vect-data-refs.c (vect_find_stmt_data_reference): New function, combining… · 8e846c66
      tree-vect-data-refs.c (vect_find_stmt_data_reference): New function, combining stmt data ref gathering and fatal analysis parts.
      
      2018-05-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_find_stmt_data_reference): New
      	function, combining stmt data ref gathering and fatal analysis
      	parts.
      	(vect_analyze_data_refs): Remove now redudnant code and simplify.
      	* tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from
      	vect_analyze_loop_2 and use vect_find_stmt_data_reference.
      	* tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference.
      	* tree-vectorizer.h (vect_find_stmt_data_reference): Declare.
      
      From-SVN: r260754
      Richard Biener committed
    • re PR tree-optimization/85720 (bad codegen for looped assignment of primitives at -O2) · 1623d9f3
      	PR tree-optimization/85720
      
      	* tree-loop-distribution.c (break_alias_scc_partitions): Don't merge
      	SCC if all partitions are builtins.
      	(version_loop_by_alias_check): New parameter.  Generate cancelable
      	runtime alias check if all partitions are builtins.
      	(distribute_loop): Update call to above function.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr85720.c: New test.
      	* gcc.target/i386/avx256-unaligned-store-2.c: Disable loop pattern
      	distribution.
      
      From-SVN: r260753
      Bin Cheng committed
    • Fix a test-case (PR testsuite/85911). · cd3b2b62
      2018-05-25  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/85911
      	* gcc.dg/tree-prof/update-loopch.c: Do not scan
      	for 'Removing basic block'.
      
      From-SVN: r260748
      Martin Liska committed