1. 17 Apr, 2019 15 commits
    • ira-conflicts.c (print_allocno_conflicts): Always print something, even for… · 38de8b39
      ira-conflicts.c (print_allocno_conflicts): Always print something, even for allocno's with no conflicts.
      
      gcc/
      	* ira-conflicts.c (print_allocno_conflicts): Always print something,
      	even for allocno's with no conflicts.
      	(print_conflicts): Print an extra newline.
      
      From-SVN: r270420
      Peter Bergner committed
    • auto-inc-dec: Set alignment properly · 46786144
      When auto-inc-dec creates a new mem to compute the cost of doing some
      transform, it forgets to copy over the alignment of the original mem.
      This gives wrong costs, for example, for rs6000 a floating point load
      or store is hugely expensive if unaligned.  This patch fixes it.
      
      
      	* auto-inc-dec.c (attempt_change): Set the alignment of the
      	temporary memory to that of the original.
      
      From-SVN: r270419
      Segher Boessenkool committed
    • PR c++/90124 - bogus error with incomplete type in decltype. · f64e8977
      	* typeck.c (build_class_member_access_expr): Check
      	cp_unevaluated_operand.
      
      	* g++.dg/cpp0x/decltype70.C: New test.
      
      From-SVN: r270418
      Marek Polacek committed
    • targhooks.c (default_print_patchable_function_entry): Emit… · 62a64d0a
      targhooks.c (default_print_patchable_function_entry): Emit __patchable_function_entries section with writable flags to allow...
      
      	* targhooks.c (default_print_patchable_function_entry): Emit
      	__patchable_function_entries section with writable flags to allow
      	relocation resolution.
      
      From-SVN: r270417
      Joao Moreira committed
    • * collect2.c (main): Change gcc.gnu.org URL to HTTPS. · e050689b
      From-SVN: r270416
      Jonny Grant committed
    • dg-extract-results.sh: Only handle WARNING: program timed out lines specially in "$MODE" == "sum". · ec60715d
      	* dg-extract-results.sh: Only handle WARNING: program timed out
      	lines specially in "$MODE" == "sum".  Restore previous behavior
      	for "$MODE" != "sum".  Clear has_timeout and timeout_cnt if in
      	a different variant or curfile is empty.
      	* dg-extract-results.py: Fix a typo.
      
      From-SVN: r270415
      Jakub Jelinek committed
    • re PR middle-end/90095 (wrong code with -Os -fno-tree-bit-ccp) · 0764a0d2
      	PR middle-end/90095
      	* internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
      	on lowpart SUBREGs.
      
      	* gcc.dg/pr90095-1.c: New test.
      	* gcc.dg/pr90095-2.c: New test.
      
      From-SVN: r270410
      Jakub Jelinek committed
    • Add constexpr to std::optional::value_or(U&&)&& · 02c9b9cc
      In C++1z drafts up to N4606 the constexpr keyword was missing from the
      detailed description of this function, despite being shown in the class
      synopsis.  That was fixed editorially for N4618, but our implementation
      was not corrected to match.
      
      	* include/std/optional (optional::value_or(U&&) &&): Add missing
      	constexpr specifier.
      	* testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or
      	for disengaged optionals and rvalue optionals.
      	* testsuite/20_util/optional/observers/4.cc: Likewise.
      
      From-SVN: r270409
      Jonathan Wakely committed
    • [ARC][COMMITTED] Fix diagnostic messages. · 2fa9c1f6
      Apply upper/dot rule on diagnostic messages.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_init): Format diagnostic string.
      	(arc_override_options): Likewise.
      	(check_if_valid_regno_const): Likewise.
      	(arc_reorg): Likewise.
      
      From-SVN: r270408
      Claudiu Zissulescu committed
    • rs6000: Improve the load/store-with-update patterns (PR17108) · 61943f94
      Many of these patterns only worked in 32-bit mode, and some only worked
      in 64-bit mode.  This patch makes these use Pmode, fixing the PR.  On
      the other hand, the stack updates have to use the same mode for the
      stack pointer as for the value stored, so let's simplify that a bit.
      
      Many of these patterns pass the wrong mode to
      avoiding_indexed_address_p (it should be the mode of the datum
      accessed, not the mode of the pointer).
      
      Finally, I merge some patterns into one (using iterators).
      
      
      	PR target/17108
      	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
      	name.
      	(rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
      	name.
      	* config/rs6000/rs6000.md (bits): Add entries for SF and DF.
      	(*movdi_update1): Use Pmode.
      	(movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
      	(movdi_<mode>_update_stack): Rename to ...
      	(movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
      	use Pmode.
      	(*movsi_update1): Use Pmode.
      	(*movsi_update2): Use Pmode.
      	(movsi_update): Rename to ...
      	(movsi_<mode>_update): ... this.  Use Pmode.
      	(movsi_update_stack): Fix condition.
      	(*movhi_update1): Use Pmode.  Fix argument to
      	avoiding_indexed_address_p.
      	(*movhi_update2): Ditto.
      	(*movhi_update3): Ditto.
      	(*movhi_update4): Ditto.
      	(*movqi_update1): Ditto.
      	(*movqi_update2): Ditto.
      	(*movqi_update3): Ditto.
      	(*movsf_update1, *movdf_update1): Merge, rename to...
      	(*mov<mode>_update1): This.  Use Pmode.  Fix argument to
      	avoiding_indexed_address_p.  Add "size" attribute.
      	(*movsf_update2, *movdf_update2): Merge, rename to...
      	(*mov<mode>_update2): This.  Ditto.
      	(*movsf_update3): Use Pmode.  Fix argument to
      	avoiding_indexed_address_p.
      	(*movsf_update4): Ditto.
      	(allocate_stack): Simplify condition.  Adjust pattern names.
      
      From-SVN: r270407
      Segher Boessenkool committed
    • [PR90048] Fortran OpenACC 'private' clause rejected for predetermined private… · b39c686b
      [PR90048] Fortran OpenACC 'private' clause rejected for predetermined private loop iteration variable
      
      	gcc/fortran/
      	PR fortran/90048
      	* openmp.c (gfc_resolve_do_iterator): Handle sharing_clauses for
      	OpenACC, too.
      	(gfc_resolve_oacc_blocks): Populate sharing_clauses with private
      	clauses.
      	gcc/testsuite/
      	PR fortran/90048
      	* gfortran.dg/goacc/private-explicit-kernels-1.f95: New file.
      	* gfortran.dg/goacc/private-explicit-parallel-1.f95: Likewise.
      	* gfortran.dg/goacc/private-explicit-routine-1.f95: Likewise.
      
      From-SVN: r270406
      Thomas Schwinge committed
    • [PR90067, PR90114] Document Fortran OpenACC predetermined private status quo · 04017685
      	gcc/testsuite/
      	PR fortran/90067
      	PR fortran/90114
      	* gfortran.dg/goacc/private-1.f95: Remove file.
      	* gfortran.dg/goacc/private-2.f95: Likewise.
      	* gfortran.dg/goacc/private-predetermined-kernels-1.f95: New file.
      	* gfortran.dg/goacc/private-predetermined-parallel-1.f95:
      	Likewise.
      	* gfortran.dg/goacc/private-predetermined-routine-1.f95: Likewise.
      
      From-SVN: r270405
      Thomas Schwinge committed
    • re PR target/89093 (C++ exception handling clobbers d8 VFP register) · fc2b6858
      	PR target/89093
      	* config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
      	whitespace at the start of target attribute string.
      
      	* gcc.target/arm/pr89093-2.c: New test.
      
      From-SVN: r270404
      Jakub Jelinek committed
    • d: Fix the build on hosts missing _MAX and _MAX macros. · 347ef245
      gcc/d/ChangeLog:
      
      2019-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* d-system.h (POSIX): Define unix as POSIX.
      	(INT32_MAX, INT32_MIN, INT64_MIN, UINT32_MAX, UINT64_MAX): Provide
      	fallback definitions.
      
      From-SVN: r270403
      Iain Buclaw committed
    • Daily bump. · 1b02929a
      From-SVN: r270401
      GCC Administrator committed
  2. 16 Apr, 2019 19 commits
    • d: Use build_exeext suffix for D generator programs. · 460ad044
      Updated build and invocation of idgen and impcnvgen, ensuring that they
      are removed when cleaning the build directory.
      
      Added BUILD_LIBDEPS on the link command for the generator programs as
      well, which is necessary when the system installed compiler is not GCC.
      
      gcc/d/ChangeLog:
      
      2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* Make-lang.in (d.mostyclean): Clean idgen and impcnvgen.
      	(d/idgen): Rename to d/idgen$(build_exeext), add BUILD_LIBDEPS.
      	(d/impcnvgen): Rename to d/impcnvgen$(build_exeext), add
      	BUILD_LIBDEPS.
      	(d/id.c): Call idgen$(build_exeext).
      	(d/impcnvtab.c): Call impcnvgen$(build_exeext).
      
      From-SVN: r270397
      Iain Buclaw committed
    • re PR c++/86953 (compiler crashes with constexpr operator== and specific struct… · 0382a41d
      re PR c++/86953 (compiler crashes with constexpr operator== and specific struct (cxx_eval_bit_field_ref, at cp/constexpr.c:2704))
      
      	PR c++/86953
      	* g++.dg/cpp0x/constexpr-86953.C: New test.
      
      From-SVN: r270396
      Jakub Jelinek committed
    • re PR target/84369 (test case gcc.dg/sms-10.c fails on power9) · 590df85d
      	PR target/84369
      	* config/rs6000/power9.md: Add store forwarding bypass.
      
      From-SVN: r270394
      Pat Haugen committed
    • Filter out LTO in config/bootstrap-lto-lean.mk. · ee06f646
      2019-04-16  Martin Liska  <mliska@suse.cz>
      
      	* bootstrap-lto-lean.mk: Filter out -flto in STAGEtrain_CFLAGS.
      
      From-SVN: r270393
      Martin Liska committed
    • pr89358_0.C: Replace dg-* with dg-lto-*. · ef9387d8
      2019-04-16  Dominique d'Humieres  <dominiq@gcc.gnu.org>
      
      	* g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*.
      
      From-SVN: r270390
      Dominique d'Humieres committed
    • [PR89528] reset debug uses of return value when dropping dead RTL call · 2689fcc8
      When we remove an RTL call, we wouldn't clean up references to the
      return value of the call in debug insns.  Make it so that we do.
      
      
      for  gcc/ChangeLog
      
      	PR debug/89528
      	* valtrack.c (dead_debug_insert_temp): Reset debug references
      	to the return value of a call being removed.
      
      for  gcc/testsuite/ChangeLog
      
      	PR debug/89528
      	* gcc.dg/guality/pr89528.c: New.
      
      From-SVN: r270389
      Alexandre Oliva committed
    • [PR86438] avoid too-long shift in test · 1ce6a0f5
      The test fell back to long long and long when __int128 is not
      available, but it assumed sizeof(long) < sizeof(long long) because of
      a shift count that would be out of range for a long long if their
      widths are the same.  Fixed by splitting it up into two shifts.
      
      
      for  gcc/testsuite/ChangeLog
      
      	PR rtl-optimization/86438
      	* gcc.dg/torture/pr86438.c: Split up too-wide shift.
      
      From-SVN: r270388
      Alexandre Oliva committed
    • [ARC] Refactor deprecated macros. · b9bc3b12
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_register_move_cost): Remove.
      	* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
      	implement target hook.
      	(arc_memory_move_cost): New function.
      	(TARGET_REGISTER_MOVE_COST): Define.
      	(TARGET_MEMORY_MOVE_COST): Likewise.
      	* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
      	(MEMORY_MOVE_COST): Likewise.
      
      fix
      
      From-SVN: r270387
      Claudiu Zissulescu committed
    • [ARC] Remove Rs5 constraint. · fa27cbfe
      New LRA algorithms require the all the register constraints to be
      defined using define_register_constraint keyword. However, Rs5
      constraint was not LRA proof. Remove it and replace it by equivalent
      Rcd constraint.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (sibcall_insn): Use Rcd constraint.
      	(sibcall_value_insn): Likewise.
      	* config/arc/constraints.md (Rs5): Remove.
      
      From-SVN: r270386
      Claudiu Zissulescu committed
    • [ARC] Refurb eliminate regs. · 47d8cb23
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
              for last two fake registers.
              (arc_conditional_register_usage): Make sure fake frame and arg
              pointer regs are in general regs class.
              (FRAME_POINTER_MASK): Remove.
              (RETURN_ADDR_MASK): Remove.
              (arc_must_save_register): Use hard frame regnum.
              (frame_restore_reg): Use hard_frame_pointer_rtx.
              (arc_save_callee_saves): Likewise.
              (arc_restore_callee_saves): Likewise.
              (arc_save_callee_enter): Likewise.
              (arc_restore_callee_leave): Likewise.
              (arc_save_callee_milli): Likewise.
              (arc_eh_return_address_location): Likewise.
              (arc_check_multi): Use hard frame regnum.
              (arc_can_eliminate): Likewise.
              * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
              for register allocator.
              (REG_CLASS_CONTENTS): Update GENERAL_REGS.
              (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
              (FRAME_POINTER_REGNUM): Change it to a fake register.
              (HARD_FRAME_POINTER_REGNUM): Defined.
              (ARG_POINTER_REGNUM): Change it to a new fake register.
              (ELIMINABLE_REGS): Update.
              (REGISTER_NAMES): Update names.
              * config/arc/arc.md (LP_START): Remove.
              (LP_END): Likewise.
              (shift_si3_loop): Update pattern.
      
      From-SVN: r270385
      Claudiu Zissulescu committed
    • [ARC] Emit blockage regardless to avoid delay slot scheduling. · 1ec86e1e
      1.The delay slot scheduler can reschedule some of the frame related
      instructions resulting in having incorect CFI information. This patch
      introduces a schedule blockage to avoid this problem.
      
      2.There are cases when an interrupt may happen and not all the current
      function stack operations are done, which may result in stack
      corruption. Such an example is accessing an returning a local
      structure members, which members are allocated on stack. The stack
      adjustment and the accessing of the struct member can be reorder as
      they may not use both the SP register for the access.
      
      3.Also, do not save/restore SP when in interrupt. The SP is switch by
      the core IRQ machinery.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
      	to avoid delay slot scheduling.
      	(arc_must_save_register): Don't save SP.
      	* config/arc/arc.md (stack_tie): Remove.
      	(UNSPEC_ARC_STKTIE): Likewise.
      
      From-SVN: r270384
      Claudiu Zissulescu committed
    • [NDS32] Fix nds32_split_ashiftdi3 with large shift amount. · 85b24296
      gcc/
      	* config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
      	code gen with large shift amount.
      
      Co-Authored-By: Shiva Chen <shiva0217@gmail.com>
      
      From-SVN: r270383
      Kito Cheng committed
    • [NDS32] Handle subreg correctly in wext_odd_dep_p. · 7f85e52c
      gcc/
      	* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
      	subreg.
      
      From-SVN: r270382
      Chung-Ju Wu committed
    • re PR target/90096 (Misleading option hint for AVX intrinsics) · 8feb61a3
      	PR target/90096
      	* config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
      	print -m64/-mx32/-m32 if it is true.
      	(ix86_debug_options, ix86_function_specific_print): Pass true as
      	ADD_ABI_P to ix86_target_string.
      	(ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
      	ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
      	or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
      
      	* gcc.target/i386/pr90096.c: New test.
      	* gcc.target/i386/pr69255-1.c: Adjust expected diagnostics.
      	* gcc.target/i386/pr69255-2.c: Likewise.
      	* gcc.target/i386/pr69255-3.c: Likewise.
      
      From-SVN: r270381
      Jakub Jelinek committed
    • re PR rtl-optimization/90082 (ICE in delete_unmarked_insns, at dce.c:653) · 234b5365
      	PR rtl-optimization/90082
      	* dce.c (can_delete_call): New function.
      	(deletable_insn_p, mark_insn): Use it.
      
      	* gcc.dg/pr90082.c: New test.
      
      From-SVN: r270380
      Jakub Jelinek committed
    • re PR tree-optimization/90090 (ICE in mark_reachable_handlers, at tree-eh.c:3938 since r219202) · 41b5808d
      	PR tree-optimization/90090
      	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
      	throw internally.
      	(is_division_by_square): Likewise.  Formatting fix.
      
      	* g++.dg/opt/pr90090.C: New test.
      
      From-SVN: r270379
      Jakub Jelinek committed
    • re PR tree-optimization/56049 (Simplification to constants not done) · 8c996ec6
      2019-04-16  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/56049
      	* tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
      	equality check if alias-set zero will prevail.
      
      	* gfortran.dg/pr56049.f90: New testcase.
      
      From-SVN: r270378
      Richard Biener committed
    • libphobos: Fix configure test for backtrace-supported.h · 5d71d6f2
      libphobos/ChangeLog:
      
      2019-04-16  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_BACKTRACE): Set
      	CPPFLAGS correctly for backtrace support test.
      
      From-SVN: r270377
      Iain Buclaw committed
    • Daily bump. · 80d3ca49
      From-SVN: r270376
      GCC Administrator committed
  3. 15 Apr, 2019 6 commits
    • microblaze.c (microblaze_expand_block_move): Treat size and alignment as unsigned. · afe9b7c5
      	* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
      	size and alignment as unsigned.
      
      From-SVN: r270373
      Jeff Law committed
    • Backport PRs 90059, 90060, 90062 · 7262646b
      	PR d/90059
      	PR d/90060
      	PR d/90062
      libphobos: Merge upstream druntime 70b9fea6
      
      Backports fixes in the extern(C) bindings for the Solaris/SPARC port.
      
      Initial patch by Rainer Orth.
      
      Reviewed-on: https://github.com/dlang/druntime/pull/2555
      
      From-SVN: r270372
      Iain Buclaw committed
    • re PR debug/90074 (wrong debug info at -O3) · b7a9e9f4
      2019-04-15  Richard Biener  <rguenther@suse.de>
      
      	PR debug/90074
      	* tree-loop-distribution.c (destroy_loop): Preserve correct
      	debug info.
      
      	* gcc.dg/guality/pr90074.c: New testcase.
      
      From-SVN: r270370
      Richard Biener committed
    • re PR tree-optimization/90071 (internal compiler error: SSA corruption) · 98dc565e
      2019-04-15  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90071
      	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
      	abnormal operands from def stmts.
      
      	* gcc.dg/torture/pr90071.c: New testcase.
      
      From-SVN: r270369
      Richard Biener committed
    • combine: Count auto_inc properly (PR89794) · c7797fd3
      The code that checks if an auto-increment from i0 or i1 is not lost is
      a bit shaky.  The code to check the same for i2 is non-existent, and
      cannot be implemented in a similar way at all.  So, this patch counts
      all auto-increments, and makes sure we end up with the same number as
      we started with.  This works because we still have a check that we
      will not duplicate any.
      
      We should do this some better way, but not while we are in stage 4.
      
      
      	PR rtl-optimization/89794
      	* combine.c (count_auto_inc): New function.
      	(try_combine): Count how many auto_inc expressions there were in the
      	original instructions.  Ensure we have the same number in the new
      	instructions.  Remove the code that tried to ensure auto_inc side
      	effects on i1 and i0 are not lost.
      
      gcc/testsuite/
      	PR rtl-optimization/89794
      	* gcc.dg/torture/pr89794.c: New testcase.
      
      From-SVN: r270368
      Segher Boessenkool committed
    • re PR ipa/88936 (-fipa-pta breaks bash (incorrect optimisation of recursive static function)) · 869032b1
      2019-04-15  Richard Biener  <rguenther@suse.de>
      
      	PR ipa/88936
      	* tree.h (auto_var_p): Declare.
      	* tree.c (auto_var_p): New function, split out from ...
      	(auto_var_in_fn_p): ... here.
      	* tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
      	member.
      	(new_var_info): Initialize it.
      	(set_uids_in_ptset): Also set the shadow variable uid if required.
      	(ipa_pta_execute): Postprocess points-to solutions assigning
      	shadow variable uids for locals that may reach their containing
      	function recursively.
      	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
      	assert but instead check whether the points-to solution is
      	a singleton.
      
      	* gcc.dg/torture/pr88936-1.c: New testcase.
      	* gcc.dg/torture/pr88936-2.c: Likewise.
      	* gcc.dg/torture/pr88936-3.c: Likewise.
      
      From-SVN: r270366
      Richard Biener committed