1. 04 Oct, 2017 24 commits
    • [C++ PATCH] Move mangling alias out of :: · b419102c
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00199.html
      	gcc/cp/
      	Move mangling aliases out of global namespace.
      	* cp-tree.h (record_mangling): New.
      	(maybe_remove_implicit_alias): Delete.
      	* decl2.c (mangled_decls): New hash map.
      	(generate_mangling_alias): Reimplement using mangled_decls.
      	(record_mangling): New.
      	* mangle.c (decl_implicit_alias_p,
      	maybe_remove_implicit_alias): Delete.
      	(mangle_decl): Use record_mangling.
      	* name-lookup.c (supplement_binding_1): Remove
      	maybe_remove_implicit_alias check.
      
      	* call.c (convert_arg_to_ellipsis): Correct comment about passing
      	by reference.
      
      	gcc/testsuite/
      	* g++.dg/abi/mangle41.C: Adjust diagnostics.
      
      	libcc1/
      	* libcp1plugin.cc (supplement_binding): Don't use
      	maybe_remove_implicit_alias.
      
      From-SVN: r253421
      Nathan Sidwell committed
    • S/390: Fix mode in vector merge pattern. · baf20d8d
      vec_unpacks_hi_v4sf/vec_unpacks_lo_v4sf expand vec_mergeh and vec_mergel
      patterns also for z13 with V4SF modes so the patterns should better
      accept this.  Fixed by changing the mode iterator to V_128_NOSINGLE
      which accepts V4SF unconditionally.
      
      gcc/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/vx-builtins.md ("vec_mergeh<mode>")
      	("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
      
      From-SVN: r253420
      Andreas Krebbel committed
    • Revert r253399: · 748d9390
      	PR rtl-optimization/82396
      	* haifa-sched.c (autopref_multipass_init): Simplify
      	initialization.
      	(autopref_rank_data): Simplify sort order.
      	* sched-int.h (autopref_multipass_data_): Remove
      	multi_mem_insn_p, min_offset and max_offset.
      
      From-SVN: r253419
      Wilco Dijkstra committed
    • re PR c++/82373 (syntax error in error message) · 420db574
      	PR c++/82373
      	* error.c (dump_function_decl): If show_return, call dump_type_suffix
      	on the same return type dump_type_prefix has been called on.
      
      	* g++.dg/cpp1y/pr82373.C: New test.
      
      From-SVN: r253418
      Jakub Jelinek committed
    • 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info> · 4e914524
      	    François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/streambuf_iterator.h
      	(istreambuf_iterator<>::operator*()): Do not capture iterator state
      	in Debug assertion.
      	(istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
      	(istreambuf_iterator<>::operator++(int)): Likewise.
      	(istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
      	(istreambuf_iterator<>::_S_is_eof()): New.
      	(istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
      	(find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
      	Return an iterator with _M_c set to eof to capture streambuf state
      	on evaluation.
      	(testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
      
      Co-Authored-By: François Dumont <fdumont@gcc.gnu.org>
      
      From-SVN: r253417
      Petr Ovtchenkov committed
    • PR c++/81525 - broken handling of auto in generic lambda. · 6411847f
      	* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.
      
      From-SVN: r253414
      Jason Merrill committed
    • C: underline parameters in mismatching function calls · 8139a48e
      In r253096
        ("C++: underline parameters in mismatching function calls"
        aka 5d78d423a5f7a1d135c7bb678e82007678d1313c
          https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01546.html )
      I updated the C++ FE's handling of mismatched types in function calls
      so that it underlines the pertinent param of the callee, rather than
      just the function name.
      
      The following patch does the same for the C frontend.
      
      Given e.g. this type mismatch:
      
        extern int callee (int one, const char *two, float three);
      
        int caller (int first, int second, float third)
        {
          return callee (first, second, third);
        }
      
      the C FE currently emits (trunk):
      
        test.c: In function 'caller':
        test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
        integer without a cast [-Wint-conversion]
           return callee (first, second, third);
                                 ^~~~~~
        test.c:1:12: note: expected 'const char *' but argument is of type 'int'
         extern int callee (int one, const char *two, float three);
                    ^~~~~~
      
      whereas with this patch the note underlines the pertinent param of
      the callee:
      
        test.c: In function 'caller':
        test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
        integer without a cast [-Wint-conversion]
           return callee (first, second, third);
                                 ^~~~~~
        test.c:1:41: note: expected 'const char *' but argument is of type 'int'
         extern int callee (int one, const char *two, float three);
                                     ~~~~~~~~~~~~^~~
      
      making the problem more obvious to the user.
      
      As with the C++ patch, the patch:
      
      (a) updates the locations of the params to cover the range of all
      of their tokens, putting the caret on the first character of the
      param name (if present), otherwise at the start of the first token
      (doing so requires adding a last_token_location to the c_parser, so
      we can determine the location of the last consumed token).
      
      (b) updates the "note" to use the param location, rather than the
      fndecl location
      
      gcc/c/ChangeLog:
      	* c-decl.c (push_parm_decl): Store c_parm's location into the
      	PARAM_DECL.
      	(build_c_parm): Add "loc" param and store it within the c_parm.
      	* c-parser.c (struct c_parser): Add "last_token_location" field.
      	(c_parser_consume_token): Store location of the token into the
      	new field.
      	(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
      	when handling a FUNCTION_DECL, if it doesn't already have them.
      	(c_parser_parameter_declaration): Generate a location for the
      	parameter, and pass it to the call to build_c_parm.
      	* c-tree.h (struct c_parm): Add field "loc".
      	(build_c_parm): Add location_t param.
      	* c-typeck.c (get_fndecl_argument_location): New function.
      	(inform_for_arg): New function.
      	(convert_for_assignment): Use inform_for_arg when dealing with
      	ic_argpass.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/diagnostic-range-bad-called-object.c: Update expected
      	underlining for param.
      	* gcc.dg/param-type-mismatch.c: Update expected results to reflect
      	highlighting of parameters; add test coverage for trivial
      	parameter decls, and for callback parameters.
      	* gcc.dg/pr68533.c: Update location of two errors to reflect
      	location of params.
      
      From-SVN: r253411
      David Malcolm committed
    • call.c (convert_arg_to_ellipsis): Correct comment about passing by reference. · bed8a1e4
      	* call.c (convert_arg_to_ellipsis): Correct comment about passing
      	by reference.
      
      From-SVN: r253410
      Nathan Sidwell committed
    • jit: implement gcc_jit_context_new_rvalue_from_vector · 6069fe72
      This patch implements a new API entrypoint:
      
      /* Build a vector rvalue from an array of elements.
      
         "vec_type" should be a vector type, created using gcc_jit_type_get_vector.
      
         This API entrypoint was added in LIBGCCJIT_ABI_10; you can test for its
         presence using
           #ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector
      */
      extern gcc_jit_rvalue *
      gcc_jit_context_new_rvalue_from_vector (gcc_jit_context *ctxt,
                                              gcc_jit_location *loc,
                                              gcc_jit_type *vec_type,
                                              size_t num_elements,
                                              gcc_jit_rvalue **elements);
      
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/expressions.rst (Vector expressions): New
      	section.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag.
      	* docs/topics/expressions.rst (Vector expressions): New section.
      	* docs/topics/types.rst (gcc_jit_type_get_vector): Add link to
      	gcc_jit_context_new_rvalue_from_vector.
      	* jit-common.h (gcc::jit:recording::vector_type): New forward
      	decl.
      	* jit-playback.c
      	(gcc::jit::playback::context::new_rvalue_from_vector): New method.
      	* jit-playback.h
      	(gcc::jit::playback::context::new_rvalue_from_vector): New method.
      	* jit-recording.c: In namespace gcc::jit::
      	(class comma_separated_string): New class.
      	(comma_separated_string::comma_separated_string): New ctor,
      	adapted from recording::call::make_debug_string.
      	(comma_separated_string::~comma_separated_string): New dtor.
      	In namespace gcc::jit::recording::
      	(context::new_rvalue_from_vector): New method.
      	(type::get_vector): Update for renaming of memento_of_get_vector.
      	(class memento_of_get_vector): Rename to...
      	(class vector_type): ..this.
      	(memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector):
      	New ctor.
      	(memento_of_new_rvalue_from_vector::replay_into): New method.
      	(memento_of_new_rvalue_from_vector::visit_children): New method.
      	(memento_of_new_rvalue_from_vector::make_debug_string): New
      	method.
      	(memento_of_new_rvalue_from_vector::write_reproducer): New method.
      	(call::make_debug_string): Split out arg-printing code into ctor
      	for comma_separated_string.
      	* jit-recording.h: In namespace gcc::jit::recording::
      	(context::new_rvalue_from_vector): New method.
      	(type::dyn_cast_vector_type): New virtual function.
      	(class memento_of_get_vector): Rename to...
      	(class vector_type): ...this.
      	(vector_type::unqualified): Remove this vfunc override in favor
      	of...
      	(vector_type::get_element_type): ...this new method.
      	(vector_type::get_num_units): New method.
      	(vector_type::dyn_cast_vector_type): New vfunc override.
      	(class memento_of_new_rvalue_from_vector): New class.
      	* libgccjit++.h (gccjit::context::new_rvalue): Add overload for
      	vector of rvalue.
      	* libgccjit.c (gcc_jit_context_new_binary_op): Strip off type
      	qualifications when checking that both operands have same type.
      	(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
      	* libgccjit.h
      	(LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New
      	macro.
      	(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
      	* libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-expressions.c (make_test_of_vectors): New function.
      	(create_code): Call it.
      	* jit.dg/test-vector-rvalues.cc: New test case.
      
      From-SVN: r253409
      David Malcolm committed
    • New target check: vect_peeling_profitable · 4f15b6a2
      gcc/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* doc/sourcebuild.texi: Document vect_peeling_profitable.
      
      gcc/testsuite/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* g++.dg/vect/slp-pr56812.cc: xfail for targets which don't want
      	vector loop peeling.
      	* lib/target-supports.exp (check_effective_target_vect_peeling_profitable):
      	New proc.
      
      From-SVN: r253407
      Andreas Krebbel committed
    • New target check for double<->int conversions · 30d027da
      gcc/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* doc/sourcebuild.texi: Document vect_intdouble_cvt and
      	vect_doubleint_cvt.
      
      gcc/testsuite/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.dg/vect/pr66251.c: Replace vect_floatint_cvt with
      	vect_doubleint_cvt and vect_intfloat_cvt with vect_intdouble_cvt.
      	* gcc.dg/vect/vect-floatint-conversion-2.c: Replace
      	vect_floatint_cvt with vect_doubleint_cvt.
      	* gcc.dg/vect/vect-intfloat-conversion-3.c: Replace
      	vect_intfloat_cvt with vect_intdouble_cvt.
      	* gfortran.dg/vect/pr60510.f: Require vect_intdouble_cvt.
      	* gfortran.dg/vect/vect-8.f90: Make number of vectorized loops
      	depend on vect_intdouble_cvt.
      	* lib/target-supports.exp
      	(check_effective_target_vect_doubleint_cvt)
      	(check_effective_target_vect_intdouble_cvt): New procs.
      
      From-SVN: r253406
      Andreas Krebbel committed
    • New target check: vect_long_mult · c059a92e
      We don't have a 64 bit vector integer multiply on z.  Add a specific
      check for that.
      
      gcc/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* doc/sourcebuild.texi: Document vect_long_mult.
      
      gcc/testsuite/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.dg/vect/pr60656.c: Check vect_long_mult.
      	* lib/target-supports.exp (check_effective_target_vect_long_mult):
      	New proc.
      
      From-SVN: r253405
      Andreas Krebbel committed
    • Testcases using dg-options require at least -mzarch. · a4646113
      Testcases which override the vect default options using dg-options
      need at least -mzarch on S/390 32 bit.
      
      gcc/testsuite/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gfortran.dg/vect/fast-math-mgrid-resid.f: Use -mzarch on S/390.
      	* gfortran.dg/vect/pr77848.f: Likewise.
      
      From-SVN: r253404
      Andreas Krebbel committed
    • Enable vect_float with S/390 VXE and adjust testcases · 26412773
      The target supports routines provide vect_double and vect_float but
      these do not appear to be used consequently in the vect testcases.
      With z13 we only have support for vector double but with z14 also for
      vector float.  This patch adds vect_float to the testcases using the
      float data type and make the vect_float target check to return 1 only
      on z14.
      
      gcc/testsuite/ChangeLog:
      
      2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* lib/target-supports.exp (check_effective_target_vect_float):
      	Return 1 being on a S/390 with VXE.
      	* gcc.dg/vect/pr31699.c: Require vec_float.
      	* gcc.dg/vect/pr61194.c: Likewise.
      	* gcc.dg/vect/pr65947-10.c: Likewise.
      	* gcc.dg/vect/pr66142.c: Likewise.
      	* gcc.dg/vect/slp-10.c: Likewise.
      	* gcc.dg/vect/slp-11c.c: Likewise.
      	* gcc.dg/vect/slp-12b.c: Likewise.
      	* gcc.dg/vect/slp-18.c: Likewise.
      	* gcc.dg/vect/slp-33.c: Likewise.
      	* gcc.dg/vect/slp-cond-2-big-array.c: Likewise.
      	* gcc.dg/vect/slp-cond-2.c: Likewise.
      	* gcc.dg/vect/vect-cond-10.c: Likewise.
      	* gcc.dg/vect/vect-cond-8.c: Likewise.
      	* gcc.dg/vect/vect-cond-9.c: Likewise.
      	* gcc.dg/vect/vect-float-extend-1.c: Likewise.
      	* gcc.dg/vect/vect-float-truncate-1.c: Likewise.
      
      From-SVN: r253403
      Andreas Krebbel committed
    • Adjust test cases for attributes propagation changes for OMP outlined regions · ebb4badd
      	PR tree-optimization/82374
      	* c-c++-common/goacc/kernels-double-reduction-n.c: Adjust for
      	attributes propagation changes for OMP outlined regions.
      	* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
      	* c-c++-common/goacc/kernels-reduction.c: Likewise.
      
      From-SVN: r253402
      Thomas Schwinge committed
    • PR82413: Mismatched precisions in build_range_check · f95810b5
      build_range_check explicitly allows LOW and HIGH to be a different type
      from EXP, so we need to use w::to_widest when comparing a value based on
      HIGH with a value based on EXP's type.
      
      2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	PR tree-optimization/82413
      	* fold-const.c (build_range_check): Use widest_int when comparing
      	the maximum ETYPE value with HIGH.
      
      gcc/testsuite/
      	PR tree-optimization/82413
      	* g++.dg/pr82413.C: New test.
      
      From-SVN: r253401
      Richard Sandiford committed
    • re PR fortran/60458 (Error message on associate: deferred type parameter and… · 707905d0
      re PR fortran/60458 (Error message on associate: deferred type parameter and requires either the pointer or allocatable attribute)
      
      2017-10-04  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/60458
      	PR fortran/77296
      	* resolve.c (resolve_assoc_var): Deferred character type
      	associate names must not receive an integer conatant length.
      	* symbol.c (gfc_is_associate_pointer): Deferred character
      	length functions also require an associate pointer.
      	* trans-decl.c (gfc_get_symbol_decl): Deferred character
      	length functions or derived type components require the assoc
      	name to have variable string length.
      	* trans-stmt.c (trans_associate_var): Set the string length of
      	deferred string length associate names. The address expression
      	is not needed for allocatable, pointer or dummy targets. Change
      	the comment about defered string length targets.
      
      2017-10-04  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/77296
      	* gfortran.dg/associate_32.f03 : New test.
      
      From-SVN: r253400
      Paul Thomas committed
    • Fix PR82396: qsort comparator non-negative on sorted output · 3e3d1b23
      r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
      behaviour on AArch64 as autopref scheduling no longer checks the base.
      
      This patch fixes the bootstrap failure and cleans up autopref scheduling.
      The code is greatly simplified.  Sort accesses on the offset first, and
      only if the offsets are the same fall back to other comparisons in
      rank_for_schedule.  This doesn't at all restore the original behaviour
      since we no longer compare the base address, but it now defines a total
      sorting order.  More work will be required to improve the sorting so
      that only loads/stores with the same base are affected.
      
          gcc/
              PR rtl-optimization/82396
              * haifa-sched.c (autopref_multipass_init): Simplify
              initialization.
              (autopref_rank_data): Simplify sort order.
              * sched-int.h (autopref_multipass_data_): Remove
              multi_mem_insn_p, min_offset and max_offset.
      
      From-SVN: r253399
      Wilco Dijkstra committed
    • Fix openacc float reduction testcases · 26596ee5
      2017-10-04  Tom de Vries  <tom@codesourcery.com>
      
      	* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
      	(main): Reduce sum of arr elements.  Assert that hres is exactly
      	representable in 32-bit floating point.
      	* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
      	(main): Reduce sum of arr elements.  Assert that hres and hmres are
      	exactly representable in 32-bit floating point.
      	* testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
      
      From-SVN: r253398
      Tom de Vries committed
    • re PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails to compile) · 8bca3f59
      2017-10-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/78816
      	* g++.dg/cpp1y/lambda-generic-variadic6.C: New.
      
      From-SVN: r253397
      Paolo Carlini committed
    • re PR tree-optimization/82381 (internal compiler error: qsort checking failed) · 8a8e744e
      	PR tree-optimization/82381
      	* tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
      	oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
      	is not.
      
      From-SVN: r253396
      Jakub Jelinek committed
    • re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions) · 5c38262d
      	PR tree-optimization/82374
      	* omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
      	DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
      	DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
      	current_function_decl to the new decl.
      
      	* gcc.dg/gomp/pr82374.c: New test.
      
      From-SVN: r253395
      Jakub Jelinek committed
    • id-17.f: For ilp32 allow graphite codegen errors and scan for one. · 21375f0d
      2017-10-04  Richard Biener  <rguenther@suse.de>
      
      	* gfortran.dg/graphite/id-17.f: For ilp32 allow graphite codegen
      	errors and scan for one.
      	* gfortran.dg/graphite/id-19.f: Likewise.
      	* gfortran.dg/graphite/pr29832.f90: Likewise.
      	* gfortran.dg/graphite/pr42326-1.f90: Likewise.
      	* gfortran.dg/graphite/pr42326.f90: Likewise.
      	* gfortran.dg/graphite/pr68550-2.f90: Likewise.
      	* gfortran.dg/graphite/run-id-2.f90: Likewise.
      	* gfortran.dg/graphite/run-id-3.f90: Likewise.
      	* gfortran.dg/graphite/pr42393-1.f90: Dump graphite.
      
      From-SVN: r253394
      Richard Biener committed
    • Daily bump. · 86a865a0
      From-SVN: r253393
      GCC Administrator committed
  2. 03 Oct, 2017 12 commits
    • rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128… · 944e0841
      rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions.
      
      [gcc]
      2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
      	helper macro for IEEE float128 hardware built-in functions.
      	(SQRTF128_ODD): Add built-in functions with the round-to-odd
      	semantics.
      	(TRUNCF128_ODD): Likewise.
      	(ADDF128_ODD): Likewise.
      	(SUBF128_ODD): Likewise.
      	(MULF128_ODD): Likewise.
      	(DIVF128_ODD): Likewise.
      	(FMAF128_ODD): Likewise.
      	* config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
      	UNSPEC_TRUNC_ROUND_TO_ODD.
      	(UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
      	(UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
      	floating point round to odd instructions.
      	(UNSPEC_SUB_ROUND_TO_ODD): Likewise.
      	(UNSPEC_MUL_ROUND_TO_ODD): Likewise.
      	(UNSPEC_DIV_ROUND_TO_ODD): Likewise.
      	(UNSPEC_FMA_ROUND_TO_ODD): Likewise.
      	(UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
      	(trunc<mode>sf2_hw): Change the truncate with round to odd
      	expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
      	(add<mode>3_odd): Add insns for IEEE 128-bit floating point round
      	to odd hardware instructions.
      	(sub<mode>3_odd): Likewise.
      	(mul<mode>3_odd): Likewise.
      	(div<mode>3_odd): Likewise.
      	(sqrt<mode>2_odd): Likewise.
      	(fma<mode>4_odd): Likewise.
      	(fms<mode>4_odd): Likewise.
      	(nfma<mode>4_odd): Likewise.
      	(nfms<mode>4_odd): Likewise.
      	(trunc<mode>df2_odd): Change the truncate with round to odd
      	expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
      	function.
      	* doc/extend.texi (PowerPC built-in functions): Update documentation
      	for existing IEEE float128-bit built-in functions.  Add built-in
      	functions that generate the IEEE 128-bit floating point round to
      	odd instructions.
      
      [gcc/testsuite]
      2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/float128-odd.c: New test.
      
      From-SVN: r253389
      Michael Meissner committed
    • re PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda in template fn) · 5bd8ff41
      2017-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/70343
      	* g++.dg/cpp0x/lambda/lambda-70343.C: New.
      
      From-SVN: r253388
      Paolo Carlini committed
    • Import from libffi master repository. · fbdc3780
      2017-08-31  Tony Reix  <tony.reix@atos.net>
      
              * src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and
              labels for EH.
              (ffi_call_go_AIX): New function.
              (_GLOBAL__F_libffi_src_powerpc_aix): New EH frame.
              * src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging
              pseudo-op and labels for EH.
              (ffi_go_closure_ASM): New function.
              (_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame.
              * src/powrpc/ffi_darwin.c (ffi_call_go): New function.
              (ffi_prep_go_closure): New function.
              (ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN.
              (ffi_closure_helper_DARWIN): Call ffi_closure_helper_common.
              (ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common.
              * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.
      
      From-SVN: r253386
      Tony Reix committed
    • re PR target/82358 (i386/stack-check-11.c fail) · 11e3d45c
      	PR target/82358
      	* gcc.target/i386/stack-check-11.c: Use -mtune=generic.
      
      From-SVN: r253385
      Jeff Law committed
    • simplify-rtx: Remove non-simplifying simplification (PR77729) · a8ccdfa8
      If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as
      possible.  This makes worse code in common cases like when the AND with
      C1 is from a zero-extension.  This patch fixes it by removing this
      transformation (twice).
      
      
      	PR rtl-optimization/77729
      	* simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
      	to (X&(C1&~C2))|C2 transformations.
      
      From-SVN: r253384
      Segher Boessenkool committed
    • [BRIGFE] Fix (more) crash with calls with more than 4 args. · 9c53f040
      It missed a reference which is required because vector expansion
      can move the object to another location.
      
      From-SVN: r253382
      Henry Linjamäki committed
    • io.c (match_wait_element): Correctly match END and EOR tags. · 4f8d1d32
      2017-10-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* io.c (match_wait_element): Correctly match END and EOR tags.
      	* dump-parse-tree.c (show_code_node): Handle EXEC_WAIT.
      
      From-SVN: r253381
      Thomas Koenig committed
    • [PR 82363] Fix thinko in SRA subaccess propagation · 3b7511f9
      2017-10-03  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/82363
      	* tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
      	mismatch, mark lacc written regardless of racc.
      
      	testsuite/
      	* gcc.dg/tree-ssa/pr82363.c: New test.
      
      From-SVN: r253380
      Martin Jambor committed
    • re PR tree-optimization/82381 (internal compiler error: qsort checking failed) · 33ff5dda
      	PR tree-optimization/82381
      	* tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
      	stmt_to_insert nor wheather SSA_NAMEs are default defs.
      	Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
      	fallthrough into reassoc_stmt_dominates_stmt_p.
      
      	* gcc.c-torture/compile/pr82381.c: New test.
      
      From-SVN: r253379
      Jakub Jelinek committed
    • re PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc BE targets) · bb81a576
      	PR target/82386
      	* combine.c (combine_instructions): Don't combine in unreachable
      	basic blocks.
      
      	* gcc.dg/pr82386.c: New test.
      
      From-SVN: r253378
      Jakub Jelinek committed
    • ztest.c: #include <errno.h>. · 8398c1df
      	* ztest.c: #include <errno.h>.
      	(TEST_TIMING): Don't define, don't test.
      	(xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME.
      	(clockid_t, clock_gettime, CLOCK_REALTIME): Likewise.
      	(ZLIB_CLOCK_GETTIME_ARG): Define.
      	* configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK.
      	* Makefile.am: Likewise.
      	* configure, Makefile.in: Rebuild.
      
      From-SVN: r253377
      Ian Lance Taylor committed
    • Daily bump. · 0adaaf00
      From-SVN: r253376
      GCC Administrator committed
  3. 02 Oct, 2017 4 commits