1. 18 Mar, 2019 13 commits
    • Add forgotten requeing in propagate_subaccesses_across_link · cfce6e05
      2019-03-18  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/89546
      	* tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
      	any propagation to its children took place.
      
      	testsuite/
      	* gcc.dg/tree-ssa/pr89546.c: New test.
      
      From-SVN: r269761
      Martin Jambor committed
    • gcc/riscv: Correctly ignore empty C++ structs when flattening for ABI · 4d7dfada
      This fixes PR target/89627.
      
      The RISC-V ABI document[1] says:
      
         For the purposes of this section, "struct" refers to a C struct
         with its hierarchy flattened, including any array fields. That is,
         struct { struct { float f[1]; } g[2]; } and struct { float f; float
         g; } are treated the same. Fields containing empty structs or
         unions are ignored while flattening, even in C++, unless they have
         nontrivial copy constructors or destructors.
      
      However, this flattening only applies when one of the fields of the
      flattened structure can be placed into a floating point register,
      otherwise no flattening occurs.
      
      Currently GCC fails to correctly consider that empty C++ structures
      have a non-zero size when constructing the arguments from a flattened
      structure, and as a result, trying to pass a C++ structure like this:
      
        struct sf { struct {} e; float f; };
      
      Doesn't work correctly, GCC fails to take the offset of 'f' within
      'sf' into account and will actually pass the space backing 'e' as the
      contents of 'f'.
      
      This patch fixes this so that 'f' will be passed correctly.  A couple
      of new tests are added to cover this functionality.
      
      [1] https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md
      
      gcc/ChangeLog:
      
      	PR target/89627
      	* config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
      	parameter, and make use of it.
      	(riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/89627
      	* g++.target/riscv/call-with-empty-struct-float.C: New file.
      	* g++.target/riscv/call-with-empty-struct-int.C: New file.
      	* g++.target/riscv/call-with-empty-struct.H: New file.
      	* g++.target/riscv/riscv.exp: New file.
      
      From-SVN: r269760
      Andrew Burgess committed
    • re PR c++/85014 (internal compiler error: in lookup_base, at cp/search.c:185) · e6da0bf1
      /cp
      2019-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/85014
      	* semantics.c (finish_non_static_data_member): Check return value
      	of context_for_name_lookup and immediately return error_mark_node
      	if isn't a type.
      
      /testsuite
      2019-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/85014
      	* g++.dg/cpp0x/pr85014.C: New.
      
      From-SVN: r269759
      Paolo Carlini committed
    • [ARC] Enable code density frame option for elf targets. · f5d56cf9
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.opt (mcode-density-frame): Get the inital value
      	from TARGET_CODE_DENSITY_FRAME_DEFAULT.
      	* config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
      	* config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
      	* config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
      	match what the ops is doing.
      	(push_multi_fp_blink): Likewise.
      	* config/arc/arc.c (arc_override_options): Enable enter/leave when
      	compiling for size and elf target.
      	(arc_save_callee_enter): Adjust note to match what enter/leave
      	operation does.
      
      From-SVN: r269758
      Claudiu Zissulescu committed
    • [ARC] Fix tst_movb pattern. · a0947960
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (tst_movb): Fix constraint.
      
      From-SVN: r269757
      Claudiu Zissulescu committed
    • [ARC] Define TARGET_HAVE_SPECULATION_SAFE_VALUE. · 8e95721a
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
      
      From-SVN: r269756
      Claudiu Zissulescu committed
    • [ARC] Introduce ADJUST_REG_ALLOC_ORDER. · 864e2eaa
      The ARC port is changing the allocation order in the
      arc_conditional_register_usage function, but this is not the proper
      way. Thus, we employ ADJUST_REG_ALLOC_ORDER hook for this task.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
      	* config/arc/arc.c (arc_conditional_register_usage): Remove all
      	reg_alloc_order references.
      	(size_alloc_order): Define.
      	(arc_adjust_reg_alloc_order): New function.
      	* config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
      	order.
      	(ADJUST_REG_ALLOC_ORDER): Define.
      	(HONOR_REG_ALLOC_ORDER): Likewise.
      
      From-SVN: r269755
      Claudiu Zissulescu committed
    • re PR target/87561 (416.gamess is slower by ~10% starting from r264866 with -Ofast) · 7d7d1ce8
      2019-03-18  Richard Biener  <rguenther@suse.de>
      
      	PR target/87561
      	* config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
      	loads and stores a bit more.
      
      From-SVN: r269754
      Richard Biener committed
    • re PR target/87561 (416.gamess is slower by ~10% starting from r264866 with -Ofast) · 0538ed1d
      2019-03-18  Richard Biener  <rguenther@suse.de>
      
      	PR target/87561
      	* config/i386/i386.c (ix86_add_stmt_cost): Apply strided
      	load pessimization to stores as well.
      
      From-SVN: r269753
      Richard Biener committed
    • re PR middle-end/86979 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2348 with -m32 on darwin) · 1d24f24c
      	PR middle-end/86979
      	* gcc.dg/pr86979.c: New test.
      
      From-SVN: r269752
      Jakub Jelinek committed
    • re PR rtl-optimization/89676 (Redundant moves for long long shift on 32bit x86) · 4e3f3c46
              PR middle-end/89676
              * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
              successor, use NULL as its av set.
      
      From-SVN: r269751
      Andrey Belevantsev committed
    • re PR fortran/88008 (ICE in check_typebound_baseobject, at fortran/resolve.c:6058) · 7e703f01
      2019-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88008
      	* gfortran.h (expr_t): Add EXPR_UNKNOWN.
      	* expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement.
      	(gfc_simplify_expr): Likewise.
      	* module.c (mio_expr): Likewise.
      	* resovle.c (extract_compcall_passed_object): Issue error on
      	unknown type.
      	(check_typebound_baseobject): Issue error on wrong type.
      	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Add
      	EXPR_UNKNOWN to switch statement.
      
      2019-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/88008
      	 * gfortran.dg/typebound_call_31.f90: New test.
      
      From-SVN: r269750
      Thomas Koenig committed
    • Daily bump. · af52cce0
      From-SVN: r269749
      GCC Administrator committed
  2. 17 Mar, 2019 6 commits
  3. 16 Mar, 2019 11 commits
  4. 15 Mar, 2019 10 commits
    • re PR fortran/60091 (Misleading error messages in rank-2 pointer assignment to rank-1 target) · eb1474ba
      2019-03-15  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/60091
      	* expr.c (gfc_check_pointer_assign): Correct and improve error
      	messages for invalid pointer assignments.
      
      	PR fortran/60091
      	* gfortran.dg/pointer_remapping_3.f08: Adjust error messages.
      	* gfortran.dg/pointer_remapping_7.f90: Adjust error message.
      
      From-SVN: r269717
      Harald Anlauf committed
    • LRA: side_effects_p stmts' output is not invariant (PR89721) · 850b8aa3
      PR89721 shows LRA treating an unspec_volatile's result as invariant,
      which of course isn't correct.  This patch fixes it.
      
      
      	PR rtl-optimization/89721
      	* lra-constraints (invariant_p): Return false if side_effects_p holds.
      
      From-SVN: r269716
      Segher Boessenkool committed
    • re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent… · 30bb0e44
      re PR target/87532 (bad results from vec_extract(unsigned char, foo) dependent upon function inline)
      
      gcc/ChangeLog:
      
      2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	When handling vec_extract, use modular arithmetic to allow
      	constant selectors greater than vector length.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
      	V1TImode vectors to have constant selector values greater than 0.
      	Use modular arithmetic to compute vector index.
      	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
      	index for in-memory vectors.  Correct code generation for
      	in-register vectors.
      	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
      	compute index.
      
      gcc/testsuite/ChangeLog:
      
      2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/87532
      	* gcc.target/powerpc/fold-vec-extract-char.p8.c: Modify expected
      	instruction selection.
      	* gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise.
      	* gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise.
      	* gcc.target/powerpc/pr87532-mc.c: New test.
      	* gcc.target/powerpc/pr87532.c: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test.
      	* gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20b.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9a.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9b.c: New test.
      
      From-SVN: r269715
      Kelvin Nilsen committed
    • compiler: preserve nointerface property when inlining methods · 16772757
          
          When an inline function (with body) is imported from another package,
          make that the "nointerface" property (if set) is preserved.
          
          Fixes golang/go#30862.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167742
      
      From-SVN: r269713
      Ian Lance Taylor committed
    • add myself as selective scheduling reviewer · d81beb31
      	* MAINTAINERS (Reviewers): Add myself as selective scheduling reviewer.
      	(Write After Approval): Remove myself.
      
      From-SVN: r269712
      Alexander Monakov committed
    • compiler: use const rather than constexpr · 1cd04969
          
          Fixes bootstrap with a C++98 compiler.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167762
      
      From-SVN: r269710
      Ian Lance Taylor committed
    • [PR88534] accept VAR_DECL in class literal template parms · ca7f909f
      P0732R2 / C++ 2a introduce class literals as template parameters.  The
      front-end uses VAR_DECLs constructed from such literals to bind the
      template PARM_DECLs, but dwarf2out.c used to reject such VAR_DECLs.
      
      Taking DECL_INITIAL from such VAR_DECLs enables the generation of
      DW_AT_const_value for them, at least when the class literal can
      actually be represented as such.
      
      
      for  gcc/ChangeLog
      
      	PR c++/88534
      	PR c++/88537
      	* dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
      	VAR_DECL args.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/88534
      	PR c++/88537
      	* g++.dg/cpp2a/pr88534.C: New.
      	* g++.dg/cpp2a/pr88537.C: New.
      
      From-SVN: r269709
      Alexandre Oliva committed
    • re PR d/88990 (ICE in get_symbol_decl, at d/decl.cc:1097) · d2025512
          PR d/88990
      d/dmd: Merge upstream dmd 8d4c876c6
      
      The extern storage class flag was wrongly propagated to function scope
      when starting the semantic pass on the body.
      
      Fixes https://gcc.gnu.org/PR88990
      
      Reviewed-on: https://github.com/dlang/dmd/pull/9452
      
      From-SVN: r269708
      Iain Buclaw committed
    • S/390: Fix tests that expect unquoted option names · ec156546
      r269586 puts single quotes around option names. This patch fixes tests
      that expect the old format.
      
      From-SVN: r269706
      Robin Dapp committed
    • [AArch64] PR target/89719 Adjust gcc.target/aarch64/spellcheck*.c tests · 03570b24
      As of recently the -march,-mcpu,-mtune strings in the error messages are
      now quoted.
      This patch adjusts the testcases in gcc.target/aarch64/ that had started
      failing due to that change.
      
      	PR target/89719
      	* gcc.target/aarch64/spellcheck_4.c: Adjust dg-error string.
      	* gcc.target/aarch64/spellcheck_5.c: Likewise.
      	* gcc.target/aarch64/spellcheck_6.c: Likewise.
      
      From-SVN: r269703
      Kyrylo Tkachov committed