1. 06 Jul, 2016 4 commits
    • [1/7] Remove unnecessary peeling for gaps check · c01e092f
      I recently relaxed the peeling-for-gaps conditions for LD3 but
      kept them as-is for load-and-permute.  I don't think the conditions
      are needed for load-and-permute either though.  No current load-and-
      permute should load outside the group, so if there is no gap at the end,
      the final vector element loaded will correspond to an element loaded
      by the original scalar loop.
      
      The patch for PR68559 (a missed optimisation PR) increased the peeled
      cases from "exact_log2 (groupsize) == -1" to "vf % group_size == 0", so
      before that fix, we didn't peel for gaps if there was no gap at the end
      of the group and if the group size was a power of 2.
      
      The only current non-power-of-2 load-and-permute size is 3, which
      doesn't require loading more than 3 vectors.
      
      The testcase is based on gcc.dg/vect/pr49038.c.
      
      Tested on aarch64-linux-gnu and x86_64-linux-gnu.
      
      gcc/
      	* tree-vect-stmts.c (vectorizable_load): Remove unnecessary
      	peeling-for-gaps condition.
      
      gcc/testsuite/
      	* gcc.dg/vect/group-no-gaps-1.c: New test.
      
      From-SVN: r238033
      Richard Sandiford committed
    • S/390: Fix vecinit expansion. · a07189f4
      The fallback routine in the S/390 vecinit expander did not check
      whether each of the initializer elements is a proper general_operand.
      Since revision r236582 the expander is invoked also with e.g. symbol
      refs with an odd addend resulting in invalid insns.
      
      Fixed by forcing the element into a register in such cases.
      
      gcc/ChangeLog:
      
      2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_init): Force initializer
      	element to register if it doesn't match general_operand.
      
      From-SVN: r238032
      Andreas Krebbel committed
    • Fix MPX tests on systems with MPX disabled · 8070763a
      I have a Skylake system with MPX in the CPU, but MPX is disabled
      in the kernel configuration.
      
      This makes all the MPX tests fail because they assume if MPX
      is in CPUID it works
      
      Check the output of XGETBV too to detect non MPX kernels.
      
      gcc/testsuite/:
      
      2016-07-05  Andi Kleen  <ak@linux.intel.com>
      
      	* gcc.target/i386/mpx/mpx-check.h: Check XGETBV output
      	if kernel supports MPX.
      
      From-SVN: r238031
      Andi Kleen committed
    • Daily bump. · 8217ad20
      From-SVN: r238029
      GCC Administrator committed
  2. 05 Jul, 2016 18 commits
  3. 04 Jul, 2016 18 commits
    • re PR fortran/66575 (Endless compilation on missing end interface) · d73e0ccf
      2016-07-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/66575
      	* decl.c (match_procedure_interface): Exit loop if procedure
      	interface refers to itself.
      
      	* gfortran.dg: pr65575.f90: New test.
      
      From-SVN: r237994
      Jerry DeLisle committed
    • re PR fortran/35849 ("wrong" line shown in error message for parameter) · c20f6223
      2016-07-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      	    Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/35849
      	* simplify.c (gfc_simplify_ishftc): Check that absolute value of
      	SHIFT is less than or equal to SIZE.
      
      	* gfortran.dg: pr35849.f90: New test.
      
      Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>
      
      From-SVN: r237993
      Jerry DeLisle committed
    • re PR c++/71739 (ICE on valid C++11 code: tree check: expected identifier_node,… · 2a5537c3
      re PR c++/71739 (ICE on valid C++11 code: tree check: expected identifier_node, have tree_list in private_is_attribute_p, at tree.c:6080)
      
      	PR c++/71739
      	* tree.c (attribute_value_equal): Use get_attribute_name instead of
      	directly using TREE_PURPOSE.
      
      	* g++.dg/cpp0x/pr71739.C: New test.
      
      From-SVN: r237991
      Jakub Jelinek committed
    • [AArch64] Renaming ARMv8.1 to ARMv8.1-A in comments and documentations · 74bb9de4
      	* config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
      	* config/aarch64/aarch64_neon.h: Likewise.
      	* config/aarch64/arm_neon.h: Likewise.
      	* config/aarch64/atomics.md: Likewise.
      	* config/aarch64/aarch64-simd-builtins.def: Likewise.
      	* doc/invoke.texi: Likewise.
      
      From-SVN: r237988
      Jiong Wang committed
    • [testsuite] asan/clone-test-1.c: Handle clone() failure · 740f9751
      2016-07-04  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* c-c++-common/asan/clone-test-1.c (main): Handle clone() failure.
      
      From-SVN: r237987
      Christophe Lyon committed
    • Add tests for inserting aliased objects into std::vector · 097e8994
      2016-07-04  François Dumont  <fdumont@gcc.gnu.org>
      
      	* testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
      	New test.
      	* testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
      	test.
      
      From-SVN: r237986
      François Dumont committed
    • Fix std::vector's use of temporary objects · 9958c7eb
      	* include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
      	Define inline. Forward to _M_emplace_aux.
      	(insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
      	(_M_insert_rval, _M_emplace_aux): Declare new functions.
      	(_Temporary_value): New RAII type using allocator to construct/destroy.
      	(_S_insert_aux_assign): Remove.
      	(_M_insert_aux): Make non-variadic.
      	* include/bits/vector.tcc (insert(const_iterator, const value_type&)):
      	Use _Temporary_value.
      	(emplace(const_iterator, _Args&&...)): Remove definition.
      	(_M_insert_rval, _M_emplace_aux): Define.
      	(_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
      	(_M_fill_insert): Use _Temporary_value.
      	* testsuite/23_containers/vector/allocator/construction.cc: New test.
      	* testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
      	Adjust expected results for emplacing an lvalue with reallocation.
      	* testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
      	expected results to account for construction/destruction of temporary
      	using allocator.
      
      From-SVN: r237985
      Jonathan Wakely committed
    • S/390: Add support for z13 instructions lochi and locghi. · bf749919
      The attached patch adds patterns to make use of the z13 LOCHI and
      LOCGHI instructions.
      
      gcc/ChangeLog:
      
      2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* config/s390/s390.md: Add "z13" cpu_facility.
      	("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
      	* config/s390/predicates.md ("loc_operand"): New predicate for "load on
      	condition" type instructions.
      
      gcc/testsuite/ChangeLog:
      
      2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vector/vec-scalar-cmp-1.c: Expect lochi instead
      	of locr.
      	* gcc.target/s390/loc-1.c: New test.
      
      From-SVN: r237984
      Dominik Vogt committed
    • Minor cleanup to allocate_dynamic_stack_space · 4fc0c9c8
      gcc/ChangeLog:
      
      2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      	    Jeff Law  <law@redhat.com>
      
      	* explow.c (allocate_dynamic_stack_space): Simplify knowing that
      	MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
      
      
      Co-Authored-By: Jeff Law <law@redhat.com>
      
      From-SVN: r237983
      Dominik Vogt committed
    • i386.c (ix86_expand_vec_perm): Add handle one-operand permutation for TARGET_AVX512F. · 430bb38e
      gcc/
      	* config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
      	permutation for TARGET_AVX512F.
      	(ix86_expand_vec_one_operand_perm_avx512): New function.
      	(expand_vec_perm_1): Invoke introduced function.
      	* tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
      	it may be not valid after vectorization.
      
      gcc/testsuite/
      	* gcc/testsuite/gcc.target/i386/avx512f-vect-perm-1.c: New test.
      	* gcc/testsuite/gcc.target/i386/avx512f-vect-perm-2.c: New test.
      
      From-SVN: r237982
      Yuri Rumyantsev committed
    • Update documentation. · 5f5f7b7d
      From-SVN: r237979
      Arnaud Charlet committed
    • re PR libstdc++/71313 ([Filesystem TS] remove_all fails to remove directory contents recursively) · e12880f9
      	PR libstdc++/71313
      	* src/filesystem/ops.cc (remove_all(const path&, error_code&)):
      	Call remove_all for children of a directory.
      	* testsuite/experimental/filesystem/operations/create_directories.cc:
      	Adjust.
      
      From-SVN: r237978
      Ville Voutilainen committed
    • Cleanups. · cbe91164
      From-SVN: r237977
      Arnaud Charlet committed
    • [multiple changes] · 0c3f76ba
      2016-07-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute_Old_Result): The attributes can
      	appear in the postcondition of a subprogram renaming declaration,
      	when the renamed entity is an attribute reference that is a
      	function (such as 'Value).
      	* sem_attr.adb (Eval_Attribute): It doesn't
      	need to be static, just known at compile time, so use
      	Compile_Time_Known_Value instead of Is_Static_Expression.
      	This is an efficiency improvement over the previous bug fix.
      	* sem_ch13.adb (Analyze_One_Aspect): Use Original_Node to detect
      	illegal aspects on subprogram renaming declarations that may
      	have been rewritten as bodies.
      
      2016-07-04  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_intr.adb (Errint): Do not emit error message in
      	Relaxed_RM_Semantics mode.
      
      From-SVN: r237976
      Arnaud Charlet committed
    • sem_attr.adb (Eval_Attribute): The code was assuming that X'Enum_Rep... · f3e0f7c3
      2016-07-04  Bob Duff  <duff@adacore.com>
      
      	* sem_attr.adb (Eval_Attribute): The code was assuming
      	that X'Enum_Rep, where X denotes a constant, can be constant
      	folded. Fix it so it makes that assumption only when X denotes
      	a STATIC constant.
      
      From-SVN: r237975
      Bob Duff committed
    • Minor reformatting. · aceb8afe
      From-SVN: r237974
      Arnaud Charlet committed
    • [multiple changes] · 1d2d8a8f
      2016-07-04  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb (Compatible_Types_In_Predicate): New function
      	to handle cases where a formal of a predicate function and the
      	corresponding actual have different views of the same type.
      
      2016-07-04  Philippe Gil  <gil@adacore.com>
      
      	* g-debpoo.adb (Free_Blocks) free blocks also until
      	Logically_Deallocated less than Maximum_Logically_Freed_Memory
      	(Dump) add dump of number of traceback & validity elements
      	already allocated.
      
      2016-07-04  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch12.adb (Instantiate_Package_Body): Add
      	a guard to ignore Itypes which fail when installing primitives.
      
      From-SVN: r237973
      Arnaud Charlet committed
    • sem_eval.adb (Decompose_Expr): Set 'out' parameters Kind and Cons to valid… · e49de265
      sem_eval.adb (Decompose_Expr): Set 'out' parameters Kind and Cons to valid values, to avoid use of uninit vars.
      
      2016-07-04  Bob Duff  <duff@adacore.com>
      
      	* sem_eval.adb (Decompose_Expr): Set 'out' parameters
      	Kind and Cons to valid values, to avoid use of uninit vars.
      	(Extract_Length): Reorder the check to make it clearer that
      	we're depending on BOTH Ent1 and Ent2 to be Present.
      	* sem_aggr.adb (Resolve_Aggregate): Remove dead code.
      	(Check_Misspelled_Component): Remove exit statement, because
      	it's covered by the 'while' condition.
      	* checks.adb (Apply_Selected_Range_Checks): Remove useless
      	condition "or else not Checks_On".
      	(Selected_Range_Checks):
      	Initialize Known_LB and Known_HB to False, because they are
      	tested unconditionally; avoid use of uninit vars.
      	* frontend.adb (Frontend): Removed useless condition
      	"Operating_Mode = Check_Semantics and then", and added an Assert
      	to clarify why it was useless.
      	* prep.adb (Preprocess): Remove redundant condition. Add an
      	assertion.
      	* sem_ch10.adb (Analyze_Proper_Body): Moved redundant condition
      	"Original_Operating_Mode = Generate_Code" to an Assert.
      	(Process_Spec_Clauses, Process_Body_Clauses): Change parameters
      	from 'in out' to 'out', and don't initialize actuals.
      	* sem_ch12.adb (Is_In_Main_Unit): Removed useless condition
      	"Unum = Main_Unit or else".
      	(Save_Global_Descendant): Moved
      	redundant condition "D = Union_Id (No_List)" to an Assert.
      	* sem_ch4.adb (Check_Misspelled_Selector): Remove exit
      	statement, because it's covered by the 'while' condition.
      	(Analyze_Case_Expression): Initialize Wrong_Alt to Empty,
      	because it looks like it is used uninitialized otherwise.
      	* sem_ch6.adb (Check_Return_Subtype_Indication): Moved redundant
      	condition "not R_Type_Is_Anon_Access" to an Assert.
      	* sem_elim.adb (Line_Num_Match): Moved redundant condition
      	"Sloc_Trace (Idx) = '['" to an Assert.
      	* sem_util.adb (Compile_Time_Constraint_Error): Change "J" to
      	"J - 1". This code is trying to replace "?" with "<", but not if
      	the "?" is quoted, as in "'?", so we want to check the PREVIOUS
      	character for '''.
      	* snames.adb-tmpl (Is_Pragma_Name): Remove useless condition
      	"or else N = Name_Relative_Deadline". It's useless because
      	Name_Relative_Deadline is in the range First_Pragma_Name
      	.. Last_Pragma_Name.
      	* treepr.adb (Visit_Node): Moved redundant condition "D =
      	Union_Id (No_List)" to an Assert.
      	* sem_ch3.adb (Derive_Subprogram, Derive_Subprograms): Change
      	parameters from 'in out' to 'out'.
      	* errout.adb (Error_Msg_Internal): Replace redundant test with Assert.
      	* inline.adb (Add_Inlined_Body): Code cleanup.
      
      From-SVN: r237972
      Bob Duff committed