1. 05 Aug, 2019 11 commits
    • * semantics.c (force_paren_expr): Preserve location. · ea55c915
      From-SVN: r274120
      Jason Merrill committed
    • Make function_code a 32-bit field · 55f863c4
      Adding SVE intrinsics on top of the existing AArch64 intrinsics blows
      the 12-bit function_code in tree_function_decl.  That bitfield has no
      spare bits, but it comes at the end of the structure and is preceded
      by a pointer, so on LP64 hosts there's currently a 32-bit hole at end.
      
      This patch therefore makes function_code an independent field and
      moves the bitfield to the 32-bit hole.
      
      I wondered about instead making function_code 16 bits, so that the
      patch leaves 28 spare bits instead of just 12.  That seemed a bit
      short-term though; I can't guarantee that we won't blow 16 bits once
      the SVE2 functions are added...
      
      If we run out of bits again, we can start chomping from the top
      of the enum.  E.g. 24 bits should surely be enough, but there's
      no point paying the overhead of the masking until we need it.
      
      2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-core.h (tree_function_decl): Make function_code an
      	independent field.  Group the remaining bitfields into bytes
      	and move decl_type so that it contines to be at a byte boundary.
      	Leave 12 bits for future expansion.
      
      From-SVN: r274119
      Richard Sandiford committed
    • Fold MASK_LOAD/STORE with an all-true mask · 868363d4
      This patch folds IFN_MASK_LOAD and IFN_MASK_STOREs to normal accesses
      if the mask is all-true.  This can happen for fully-masked loops that
      didn't actually need to be (which could be handled by the vectoriser
      instead), or for unrolled fully-masked loops whose first iteration is
      guaranteed to operate on a full vector.  It's also useful when the
      accesses are generated directly by intrinsics (to follow for SVE).
      
      2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
      	(gimple_fold_mask_load, gimple_fold_mask_store): New functions.
      	(gimple_fold_call): Use them to fold IFN_MASK_LOAD and
      	IFN_MASK_STORE.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/mask_load_1.c: New test.
      
      From-SVN: r274118
      Richard Sandiford committed
    • Add a gimple_move_vops helper function · 779724a5
      I needed to add another instance of this idiom, so thought it'd
      be worth having a helper function.
      
      2019-08-05  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* gimple.h (gimple_move_vops): Declare.
      	* gimple.c (gimple_move_vops): New function
      	* gimple-fold.c (replace_call_with_call_and_fold)
      	(gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
      	(gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
      	(gimple_fold_call): Use it.
      	* ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
      	* tree-call-cdce.c (use_internal_fn): Likewise.
      	* tree-if-conv.c (predicate_load_or_store): Likewise.
      	* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
      	(update_call_from_tree): Likewise.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* tree-vectorizer.c (adjust_simduid_builtins): Likewise.
      
      From-SVN: r274117
      Richard Sandiford committed
    • pr80993.c: Add cleanup-saved-temps to final actions. · 09eff11a
      2019-08-05  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* gcc.target/msp430/pr80993.c: Add cleanup-saved-temps to final
      	actions.
      
      From-SVN: r274116
      Jozef Lawrynowicz committed
    • Handle new operators with no arguments in DCE. · efe5143f
      2019-08-05  Martin Liska  <mliska@suse.cz>
      
      	PR c++/91334
      	* tree-ssa-dce.c (propagate_necessity): Handle new operators
      	with not arguments.
      	(eliminate_unnecessary_stmts): Likewise.
      2019-08-05  Martin Liska  <mliska@suse.cz>
      
      	PR c++/91334
      	* g++.dg/torture/pr91334.C: New test.
      
      From-SVN: r274115
      Martin Liska committed
    • re PR tree-optimization/91169 (cd2a31a FAILs) · a2001d44
      2019-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/91169
      	* fold-const.c (get_array_ctor_element_at_index): Create
      	offset_ints according to the sign of the index type and treat
      	that as signed if it is obviously so.
      
      	* gnat.dg/array37.adb: New testcase.
      
      From-SVN: r274114
      Richard Biener committed
    • re PR target/91341 (Missing AVX Intrinsics: load/store u2) · 96d5c6dc
      	PR target/91341
      	* config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
      	_mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
      	_mm256_storeu2_m128i): New function.
      
      	* gcc.target/i386/avx-loadu2-m128-1.c: New test.
      	* gcc.target/i386/avx-loadu2-m128-2.c: New test.
      	* gcc.target/i386/avx-loadu2-m128d-1.c: New test.
      	* gcc.target/i386/avx-loadu2-m128d-2.c: New test.
      	* gcc.target/i386/avx-loadu2-m128i-1.c: New test.
      	* gcc.target/i386/avx-loadu2-m128i-2.c: New test.
      	* gcc.target/i386/avx-storeu2-m128-1.c: New test.
      	* gcc.target/i386/avx-storeu2-m128-2.c: New test.
      	* gcc.target/i386/avx-storeu2-m128d-1.c: New test.
      	* gcc.target/i386/avx-storeu2-m128d-2.c: New test.
      	* gcc.target/i386/avx-storeu2-m128i-1.c: New test.
      	* gcc.target/i386/avx-storeu2-m128i-2.c: New test.
      
      From-SVN: r274109
      Jakub Jelinek committed
    • RISC-V: Promote type correctly for libcalls · 860edc46
       - argument and return value for libcall won't promote at
         default_promote_function_mode_always_promote, however we expect it
         should sign-extend as normal function.
      
       - Witout this patch, this test case will fail at -march=rv64i -mabi=lp64.
      
       - The implementation of riscv_promote_function_mode is borrowed from MIPS.
      
      gcc/ChangeLog
      
      	* config/riscv/riscv.c (riscv_promote_function_mode): New.
      	(TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
      
      gcc/testsuite/ChangeLog
      
      	* gcc.target/riscv/promote-type-for-libcall.c: New.
      
      From-SVN: r274107
      Kito Cheng committed
    • PR91349, powerpc64*-*-freebsd* defines _GNU_SOURCE · 89c78fb2
      rev 266496 (git ab6b1bb456) undefined some macros in rs6000/freebsd.h
      but missed doing the same in rs6000/freebsd64.h.
      
      	PR target/91349
      	* config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
      	(LINK_GCC_C_SEQUENCE_SPEC): Undef.
      
      From-SVN: r274105
      Alan Modra committed
    • Daily bump. · b4d2d2a8
      From-SVN: r274103
      GCC Administrator committed
  2. 04 Aug, 2019 5 commits
  3. 03 Aug, 2019 1 commit
  4. 02 Aug, 2019 23 commits
    • re PR fortran/90985 (Wrong error message with variables named "DATA*") · 623c32bc
      2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90985
      	* decl.c (gfc_match_data): In free-form code, DATA be followed by
      	whitespace.
      
      2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90985
      	* gfortran.dg/pr90985.f90: New test.
      
      From-SVN: r274033
      Steven G. Kargl committed
    • Correct the PR number for 90297 to 90986. · 5cd3301b
      From-SVN: r274032
      Steven G. Kargl committed
    • re PR fortran/90297 (gcc/fortran/resolve.c: 2 * possibly redundant code ?) · e6938b98
      2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90297
      	* match.c (gfc_match_equivalence): Check that EQUIVALENCE is followed
      	by '('.
      
      2019-08-02  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90297
      	* gfortran.dg/equiv_10.f90: New test.
      
      From-SVN: r274031
      Steven G. Kargl committed
    • Add future.md. · 5440f245
      2019-08-02  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/future.md: New file.
      	* config/rs6000/rs6000.md: Include future.md.
      	* config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
      
      From-SVN: r274030
      Michael Meissner committed
    • rework Ada EH Machine_Occurrence deallocation · 5d733372
      Introduce exception handler ABI #1 to ensure single release, no access
      after release of reraised Machine_Occurrences, and no failure to
      re-reraise a Machine_Occurrence.
      
      Unlike Ada exceptions, foreign exceptions do not get a new
      Machine_Occurrence upon reraise, but each handler would delete the
      exception upon completion, normal or exceptional, save for the case of
      a 'raise;' statement within the handler, that avoided the delete by
      clearing the exception pointer that the cleanup would use to release
      it.  The cleared exception pointer might then be used by a subsequent
      reraise within the same handler.  Get_Current_Excep.all would also
      expose the Machine_Occurrence to reuse by Reraise_Occurrence, even for
      native exceptions.
      
      Under ABI #1, Begin_Handler_v1 claims responsibility for releasing an
      exception by saving its cleanup and setting it to Claimed_Cleanup.
      End_Handler_v1 restores the cleanup and runs it, as long as it isn't
      still Claimed_Cleanup (which indicates an enclosing handler has
      already claimed responsibility for releasing it), and as long as the
      same exception is not being propagated up (the next handler of the
      propagating exception will then claim responsibility for releasing
      it), so reraise no longer needs to clear the exception pointer, and it
      can just propagate the exception, just like Reraise_Occurrence.
      
      ABI #1 is fully interoperable with ABI #0, i.e., exception handlers
      that call the #0 primitives can be linked together with ones that call
      the #1 primitives, and they will not misbehave.  When a #1 handler
      claims responsibility for releasing an exception, even #0 reraises
      dynamically nested within it will refrain from releasing it.  However,
      when a #0 handler is a handler of a foreign exception that would have
      been responsible for releasing it with #1, a Reraise_Occurrence of
      that foreign or other Machine_Occurrence-carrying exception may still
      cause the exception to be released multiple times, and to be used
      after it is first released, even if other handlers of the foreign
      exception use #1.
      
      
      for  gcc/ada/ChangeLog
      
      	* libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
      	(Claimed_Cleanup): New.
      	(Begin_Handler, End_Handler): Document.
      	* gcc-interface/trans.c (gigi): Switch to exception handler
      	ABI #1.
      	(Exception_Handler_to_gnu_gcc): Save the original cleanup
      	returned by begin handler, pass it to end handler, and use
      	EH_ELSE_EXPR to pass a propagating exception to end handler.
      	(gnat_to_gnu): Leave the exception pointer alone for reraise.
      	(add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
      
      From-SVN: r274029
      Alexandre Oliva committed
    • re PR c++/56428 ([C++11] "is not a constant expression" when comparing non-type… · 59e01f36
      re PR c++/56428 ([C++11] "is not a constant expression" when comparing non-type template argument to nullptr)
      
      	PR c++/56428
      	* g++.dg/cpp0x/nontype4.C: New test.
      
      From-SVN: r274028
      Marek Polacek committed
    • re PR c++/53009 (pointer to static member function of template class is… · 8a2e0013
      re PR c++/53009 (pointer to static member function of template class is “invalid” as a template argument of another template class)
      
      	PR c++/53009
      	* g++.dg/cpp0x/nontype3.C: New test.
      
      From-SVN: r274027
      Marek Polacek committed
    • function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT check to use… · 8707c01d
      function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT check to use targetm.slow_unaligned_access instead.
      
      2019-08-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
              check to use targetm.slow_unaligned_access instead.
      
      From-SVN: r274025
      Bernd Edlinger committed
    • re PR c++/77575 (Bogus error when alias template yielding a reference type used… · 25a60571
      re PR c++/77575 (Bogus error when alias template yielding a reference type used as template template argument)
      
      	PR c++/77575
      	* g++.dg/cpp0x/nontype2.C: New test.
      
      From-SVN: r274024
      Marek Polacek committed
    • function.c (assign_param_data_one): Remove unused data members. · d99397c2
      2019-08-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * function.c (assign_param_data_one): Remove unused data members.
      
      From-SVN: r274023
      Bernd Edlinger committed
    • simd_pcs_attribute.c: New test. · 89eed801
      2019-08-02  Steve Ellcey  <sellcey@marvell.com>
      
      	* gcc.target/aarch64/simd_pcs_attribute.c: New test.
      	* gcc.target/aarch64/simd_pcs_attribute-2.c: Ditto.
      	* gcc.target/aarch64/simd_pcs_attribute-3.c: Ditto.
      
      From-SVN: r274020
      Steve Ellcey committed
    • omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to build_distinct_type_copy. · e8a70c17
      2019-08-02  Steve Ellcey  <sellcey@marvell.com>
      
      	* omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
      	build_distinct_type_copy.
      	(simd_clone_adjust_argument_types): Ditto.
      	(simd_clone_adjust): Call build_distinct_type_copy here.
      	(expand_simd_clones): Ditto.
      
      From-SVN: r274019
      Steve Ellcey committed
    • re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array) · f04bffb0
      	PR target/91201
      	* config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
      
      testsuite/ChangeLog:
      
      	PR target/91201
      	* gcc.target/i386/sse4_1-pr91201.c: New test.
      
      From-SVN: r274018
      Uros Bizjak committed
    • tree-ssa-loop-im: simplify casts in comparators · 06b4c6d2
      	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
      	from 'const void *'.
      	(sort_locs_in_loop_postorder_cmp): Likewise.
      
      From-SVN: r274011
      Alexander Monakov committed
    • PR c++/91230 - wrong error with __PRETTY_FUNCTION__ and generic lambda. · b34fd35b
      	* pt.c (value_dependent_expression_p): Consider __PRETTY_FUNCTION__
      	inside a template function value-dependent.
      
      	* g++.dg/cpp1y/lambda-generic-pretty1.C: New test.
      
      From-SVN: r274009
      Marek Polacek committed
    • * gcc.dg/torture/pr91323.c: Also check comparison results. · 0c60e39e
      From-SVN: r274008
      Uros Bizjak committed
    • invoke.texi (hot-bb-count-fraction): Rework description. · cc692b4c
      	* doc/invoke.texi (hot-bb-count-fraction): Rework description.
      	(hot-bb-count-ws-permille): Likewise.
      	(hot-bb-frequency-fraction): Likewise.
      	(unlikely-bb-count-fraction): Likewise.
      	* params.def (hot-bb-count-fraction): Rework description.
      	(hot-bb-count-ws-permille): Likewise.
      	(hot-bb-frequency-fraction): Likewise.
      	(unlikely-bb-count-fraction): Likewise.  Remove min and max values.
      	* predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
      
      From-SVN: r274006
      Eric Botcazou committed
    • re PR target/91323 (LTGT rtx produces UCOMISS instead of COMISS) · d6038777
      	PR target/91323
      	* config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
      	Return false.
      
      testsuite/ChangeLog:
      
      	PR target/91323
      	* gcc.dg/torture/pr91323.c: New test.
      
      From-SVN: r274005
      Uros Bizjak committed
    • vec.h (vec::sort): Add gcc_qsort_r support. · 8c228993
      2019-08-02  Richard Biener  <rguenther@suse.de>
      
      	* vec.h (vec::sort): Add gcc_qsort_r support.
      	(vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
      	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
      	to gcc_qsort_r style callback.
      	(sort_locs_in_loop_postorder_cmp): Likewise.
      	(analyze_memory_references): Use gcc_sort_r interfaces.
      	(find_ref_loc_in_loop_cmp): Use new bsearch overload.
      
      From-SVN: r274004
      Richard Biener committed
    • Properly detect working jobserver in gcc driver. · e006ead5
      2019-08-02  Martin Liska  <mliska@suse.cz>
      
      	PR lto/91313
      	* gcc.c (driver::maybe_run_linker): Call detect_jobserver
      	to detect working job server.
      	(driver::detect_jobserver): Test whether jobserver
      	is active from GCC driver. That will prevent situation where
      	GCC is invoked from a LD plugin and the linker already uses
      	file descriptors suggested by make.  That leads to a wrong
      	detection.
      	* gcc.h (driver): Add detect_jobserver.
      	* lto-wrapper.c (jobserver_active_p): Simplify sscanf by
      	not scanning for --jobserver-auth prefix.
      
      From-SVN: r274003
      Martin Liska committed
    • tree.c (handle_nodiscard_attribute): Do not warn about nodiscard applied to a constructor. · c0cc6260
      /cp
      2019-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* tree.c (handle_nodiscard_attribute): Do not warn about nodiscard
      	applied to a constructor.
      
      /testsuite
      2019-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/cpp1z/nodiscard6.C: New.
      
      From-SVN: r274002
      Paolo Carlini committed
    • Fix gcc.dg/torture/ssa-fre-{5,7}.c failure for avr · a684432b
      The test assumes 32 bit integers (and pointers), and therefore
      fails for the avr target, which has 16 bit integers.
          
      Fix failure for avr by adding dg-require-effective-target int32.
      
      gcc/testsuite/ChangeLog:
      
      2019-08-02  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
      
      	* gcc.dg/torture/ssa-fre-5.c: Add dg-require-effective-target int32.
      	* gcc.dg/torture/ssa-fre-7.c: Likewise.
      
      From-SVN: r274001
      Senthil Kumar Selvaraj committed
    • pr88140.c: Move to ... · 5006570d
      	* gcc.c-torture/pr88140.c: Move to ...
      	* gcc.c-torture/compile/pr88140.c: ... here.
      
      From-SVN: r273999
      Uros Bizjak committed