Commit Graph

168279 Commits

Author SHA1 Message Date
Nathan Sidwell 61145d937b [libcpp] Reimplement mkdeps data structures
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00323.html
	* files.c (_cpp_stack_file): Empty filenames aren't dependencies.
	* mkdeps.c (deps_add_dep): Assert not empty.

From-SVN: r270978
2019-05-07 18:13:57 +00:00
Jim Wilson 2ed6d245f7 Resign as IA-64 maintainer.
* MAINTAINERS: Remove myself as IA-64 maintainer.

From-SVN: r270977
2019-05-07 10:46:51 -07:00
Alejandro Martinez a9fad8fe6c This patch adds support to vectorize sum of abslolute differences (SAD_EXPR)
using SVE.

Given this input code:

int
sum_abs (uint8_t *restrict x, uint8_t *restrict y, int n)
{
  int sum = 0;

  for (int i = 0; i < n; i++)
    {
      sum += __builtin_abs (x[i] - y[i]);
    }

  return sum;
}

The resulting SVE code is:

0000000000000000 <sum_abs>:
   0:	7100005f 	cmp	w2, #0x0
   4:	5400026d 	b.le	50 <sum_abs+0x50>
   8:	d2800003 	mov	x3, #0x0                   	// #0
   c:	93407c42 	sxtw	x2, w2
  10:	2538c002 	mov	z2.b, #0
  14:	25221fe0 	whilelo	p0.b, xzr, x2
  18:	2538c023 	mov	z3.b, #1
  1c:	2518e3e1 	ptrue	p1.b
  20:	a4034000 	ld1b	{z0.b}, p0/z, [x0, x3]
  24:	a4034021 	ld1b	{z1.b}, p0/z, [x1, x3]
  28:	0430e3e3 	incb	x3
  2c:	0520c021 	sel	z1.b, p0, z1.b, z0.b
  30:	25221c60 	whilelo	p0.b, x3, x2
  34:	040d0420 	uabd	z0.b, p1/m, z0.b, z1.b
  38:	44830402 	udot	z2.s, z0.b, z3.b
  3c:	54ffff21 	b.ne	20 <sum_abs+0x20>  // b.any
  40:	2598e3e0 	ptrue	p0.s
  44:	04812042 	uaddv	d2, p0, z2.s
  48:	1e260040 	fmov	w0, s2
  4c:	d65f03c0 	ret
  50:	1e2703e2 	fmov	s2, wzr
  54:	1e260040 	fmov	w0, s2
  58:	d65f03c0 	ret

Notice how udot is used inside a fully masked loop.


gcc/Changelog:

2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>

	* config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
	(aarch64_<su>abd<mode>_3): Likewise.
	(*aarch64_<su>abd<mode>_3): New define_insn.
	(<sur>sad<vsi2qi>): New define_expand.
	* config/aarch64/iterators.md: Added MAX_OPP attribute.
	* tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
	(build_vect_cond_expr): Likewise.

gcc/testsuite/Changelog:
 
2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>

	* gcc.target/aarch64/sve/sad_1.c: New test for sum of absolute
	differences.

From-SVN: r270975
2019-05-07 16:34:20 +00:00
Uros Bizjak 0a59215131 cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of accessible_reg_set.
* cfgexpand.c (asm_clobber_reg_is_valid): Reject
	clobbers outside of accessible_reg_set.
	* config/i386/i386.c (ix86_conditional_register_usage):
	Disable register sets by clearing corresponding bits in
	accessible_reg_set.  Do not set corresponding bits in fixed_regs,
	call_used_regs and don't clear corresponding reg_names array members.

testsuite/ChangeLog:

	* gcc.target/i386/asm-7.c: New test.
	* gcc.target/i386/asm-1.c: Update expected error string.
	* gcc.target/i386/pr62120.c: Ditto.

From-SVN: r270955
2019-05-07 17:42:42 +02:00
Jonathan Wakely 73e828becf Fix incorrect DR numbers in libstdc++ manual
* doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.

From-SVN: r270954
2019-05-07 16:30:52 +01:00
Nina Dinka Ranns f4e678ef74 Make allocator propagation more consistent for operator+(basic_string) (P1165R1)
2019-05-01  Nina Dinka Ranns  <dinka.ranns@gmail.com>

	Make allocator propagation more consistent for
	operator+(basic_string) (P1165R1)
	* include/bits/basic_string.h
	(operator+(basic_string&&, basic_string&&): Changed resulting
	allocator to always be the one from the first parameter.
	* include/bits/basic_string.tcc
	(operator+(const _CharT*, const basic_string&)): Changed
	resulting allocator to be SOCCC on the second parameter's allocator.
	(operator+(_CharT, const basic_string&)): Likewise.
	* testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
	New.
	* testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
	New.

From-SVN: r270953
2019-05-07 16:30:46 +01:00
Jonathan Wakely 2313938e75 Improve API docs for std::regex
* include/bits/regex.h: Improve docs.
	* include/bits/regex.tcc: Do not document implementation details.

From-SVN: r270952
2019-05-07 16:30:40 +01:00
Jonathan Wakely 99f1295989 Add test for std::hash<std::error_code>
Copied from 19_diagnostics/error_condition/hash.cc added recently.

	* testsuite/19_diagnostics/error_code/hash.cc: New test.

From-SVN: r270951
2019-05-07 16:30:29 +01:00
Rainer Orth 339197c7f3 Fix make install-gcc-specs with empty GCC_SPECS_FILES
* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
	Honor DESTDIR.

From-SVN: r270947
2019-05-07 15:19:26 +00:00
Richard Biener fcd0566b03 tree-vect-stmts.c (vect_is_simple_cond): When vectype is not specified still compute a comp_vectype for invariant compares.
2019-05-07  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_is_simple_cond): When vectype is
	not specified still compute a comp_vectype for invariant
	compares.

From-SVN: r270945
2019-05-07 13:07:48 +00:00
Richard Biener 530ec1aceb re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
2019-05-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-pre.c (translate_vuse_through_block): When
	same_valid is NULL do not bother to search for a virtual
	PHI continuation.
	(phi_translate_1): When operands changed we cannot keep
	the same value-number so do not bother to ask whether
	that's possible from translate_vuse_through_block.

From-SVN: r270944
2019-05-07 13:03:19 +00:00
Nathan Sidwell d7b6aee8cd [libcpp] Reimplement mkdeps data structures
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00293.html
	* include/mkdeps.h (deps_write): Add PHONY arg.
	(deps_phony_targets): Delete.
	* init.c (cpp_finish): Just call deps_write.
	* mkdeps.c (struct mkdeps): Add local vector class.  Reimplement
	vector handling.
	(munge): Munge to static buffer.
	(apply_vpath): Adjust vector handling.
	(deps_init, deps_free): Use new, delete.
	(deps_add_target): Do not munge here.  Record quoting low water mark.
	(deps_add_dep): Do not munge here.
	(deps_add_vpath): Adjust vector handling.
	(make_write_name): New.  Munge on demand here.
	(make_write_vec): New.
	(deps_phony_targets): Delete.
	(make_write): New.
	(deps_write): Forward to deps_Write.
	(deps_save, deps_restore): Adjust vector handling.

From-SVN: r270943
2019-05-07 12:39:59 +00:00
Martin Liska 7664eeb700 Fix bitmap registration of overheads.
2019-05-07  Martin Liska  <mliska@suse.cz>

	* bitmap.c (bitmap_register): Come up with
	alloc_descriptor_max_uid and assign it for
	a new bitmap.
	(register_overhead): Use get_descriptor as
	a descriptor.
	(release_overhead): New.
	(bitmap_elem_to_freelist): Call it.
	(bitmap_elt_clear_from): Likewise.
	(bitmap_obstack_free): Likewise.
	(bitmap_move): Sensitively release memory.
	* bitmap.h (struct GTY): Add alloc_descriptor and padding.
	(bitmap_initialize): Initialize alloc_descriptor to zero.
	* tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.

From-SVN: r270942
2019-05-07 12:15:45 +00:00
Richard Biener 9f708a8448 tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever we build a SLP node.
2019-05-07  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
	we build a SLP node.  Remove max_size and limiting.
	(vect_analyze_slp_instance): Record and dump size of the SLP graph.

From-SVN: r270941
2019-05-07 11:47:48 +00:00
Richard Biener 3cf8b3e341 re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
2019-05-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-alias.h (get_continuation_for_phi): Take walking
	limit by reference.
	(walk_non_aliased_vuses): Take walking limit argument.
	* tree-ssa-alias.c (maybe_skip_until): Take limit and abort
	walking if it is reached instead of just counting.
	(get_continuation_for_phi): Likewise.
	(walk_non_aliased_vuses): Likewise, instead of leaving counter
	limiting to the callback.
	* tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
	(vn_reference_lookup_3): Likewise.
	(vn_reference_lookup_pieces): Likewise.
	(vn_reference_lookup): Likewise.
	* tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
	* tree-ssa-scopedtables.c (vuse_eq): Adjust.
	(avail_exprs_stack::lookup_avail_expr): Likewise.

From-SVN: r270940
2019-05-07 11:17:00 +00:00
Rainer Orth bca0a3216d Check if Solaris ld supports -z relax=transtls
* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): Only use -z
	relax=transtls if linker supports it.
	* configure.ac (enable_libphobos, LIBPHOBOS_SUPPORTED): Move down.
	(x86_64-*-solaris2.* | i?86-*-solaris2.*): Only
	mark supported with either gld or ld -z relax=transtls.
	* configure: Regenerate.

From-SVN: r270939
2019-05-07 10:38:45 +00:00
Jan Hubicka 9edfa4c015 tree-ssa-alias.c (aliasing_component_refs_p): Continue looking for comparaible types in the second direction even if...
* tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
	for comparaible types in the second direction even if first one
	hits incomparable type.

From-SVN: r270938
2019-05-07 09:36:05 +00:00
Richard Biener fe26771191 re PR lto/90369 (error: could not unlink output file)
2019-05-07  Richard Biener  <rguenther@suse.de>

	PR lto/90369
	* lto-wrapper.c (debug_objcopy): Use the original filename
	including archive offset for the filename used for -save-temps.

From-SVN: r270937
2019-05-07 08:52:33 +00:00
Rainer Orth 03de295512 Fix Solaris bootstrap: lto-common.c, lto-dump.c format mismatches
* lto-common.c (lto_file_read): Print section->start as int64_t,
	section->len as uint64_t.
	* lto-dump.c (symbol_entry::dump): Print sz as uint64_t.

From-SVN: r270935
2019-05-07 07:44:55 +00:00
Li Jia He b65307e96e Fix a typo in two_value_replacement function
GCC revision 267634 implemented two_value_replacement function.
However, a typo occurred during the parameter check, which caused
us to miss some optimizations.

The intent of the code might be to check that the input parameters
are const int and their difference is one.  However, when I read
the code, I found that it is wrong to detect whether an input data
plus one is equal to itself.  This could be a typo.

2019-05-07  Li Jia He  <helijia@linux.ibm.com>

	* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
	detection.
	* gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi
	optimization.
	* gcc.dg/tree-ssa/pr88676-2.c: New testcase.

From-SVN: r270934
2019-05-07 05:39:01 +00:00
GCC Administrator caa3bffa03 Daily bump.
From-SVN: r270933
2019-05-07 00:17:00 +00:00
Segher Boessenkool 3346313740 rs6000: Renumber the registers
This renumbers the registers.

It moves the VRs to 64..95, right after the GPRs and the FPRS.  This
means that the VSRs (which are aliases to the FPRs and the VRs, in
that order) are consecutive now.

It removes MQ, which has been just a stub for ages (it is a leftover
from RIOS, old POWER).

It moves the CR fields to 100..107, which is a bit easier to read
than the 68..75 is was before.

The rest fills the holes.  It should be easy to move anything else
after this series, so the exact order isn't very important anymore,
we aren't stuck with it if we dislike it.

Many things still want the GPRs to be at 0..31, and some things want
the FPRs at 32..63.  I don't think we'll ever want to change that,
so I left it be.

Small things...  It removes DWARF_FRAME_REGISTERS, it used to save
1000 or so words of memory, but it has been just a handful for a
while, and now it is one.  Some whitespace fixes.  Testing showed one
or two places where register allocation was different (not worse, not
better, just different).


	* config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
	(LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
	(CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
	(CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
	(FRAME_POINTER_REGNUM): Change numbering.
	* config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
	(alt_reg_names): Adjust.
	(rs6000_conditional_register_usage): Don't mark hard register 64 as
	fixed.
	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
	(DWARF_FRAME_REGISTERS): Delete.
	(DWARF2_FRAME_REG_OUT): Fix whitespace.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
	Adjust.
	(REG_ALLOC_ORDER): Adjust.
	(FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
	(REG_CLASS_CONTENTS): Adjust.
	(RETURN_ADDR_RTX): Change comment.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
	instead of 67.
	(REGISTER_NAMES): Adjust.
	(ADDITIONAL_REGISTER_NAMES): Adjust.
	* config/rs6000/darwin.h (REGISTER_NAMES): Adjust.

From-SVN: r270929
2019-05-07 01:50:42 +02:00
Steven G. Kargl c21ffa3e53 re PR fortran/90290 (-std=f2008 should reject non-constant stop and error stop codes)
2019-05-06  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90290
	* match.c (gfc_match_stopcode): Check F2008 condition on stop code.

2019-05-06  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/90290
	* gfortran.dg/pr90290.f90: New test.

From-SVN: r270928
2019-05-06 23:24:32 +00:00
Segher Boessenkool b56be669f0 rs6000: Remove TM regs
We do not need to expose the TM registers in debug info.  It isn't
actually useful there, because none of the things that can modify
these registers (other than explicit moves) are marked.

We also do not need the registers for GCC itself internally.  This
patch deletes them.


	* config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
	Delete.
	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
	(DWARF_FRAME_REGISTERS): Adjust.
	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
	Adjust.
	(REG_ALLOC_ORDER): Adjust.
	(enum reg_class): Delete SPR_REGS.
	(REG_CLASS_NAMES): Delete SPR_REGS.
	(REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
	(REGISTER_NAMES): Adjust.
	(ADDITIONAL_REGISTER_NAMES): Adjust.
	* config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
	* config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
	* config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
	(htm_spr_regno): Delete.
	(htm_expand_builtin): Adjust: the HTM builtins now have one fewer
	argument.
	(rs6000_dbx_register_number): Adjust.

From-SVN: r270927
2019-05-07 00:04:19 +02:00
Segher Boessenkool 7da118f12b rs6000: Delete PRE_GCC3_DWARF_FRAME_REGISTERS
We don't need this.


	* config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.

From-SVN: r270926
2019-05-07 00:02:24 +02:00
Segher Boessenkool e294835aed rs6000: rs6000_dbx_register_number for fp/ap/mq
The frame pointer and the argument pointer aren't real registers.  MQ
was a register on old POWER.  All three are still used as arguments to
rs6000_dbx_register_number during initialisation.  If we handle them
explicitly we can do a gcc_unreachable to catch other unexpected
registers.


	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
	FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).

From-SVN: r270925
2019-05-07 00:01:27 +02:00
Jakub Jelinek 3afd514bca re PR tree-optimization/88709 (Improve store-merging)
PR tree-optimization/88709
	PR tree-optimization/90271
	* params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
	* gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
	non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
	variable.
	(imm_store_chain_info::coalesce_immediate_stores): Punt if the size
	of the store merging group is larger than
	PARAM_STORE_MERGING_MAX_SIZE parameter.
	(split_group): Add bzero_first argument.  If set, always emit first
	the first store which must be = {} of the whole area and then for the
	rest of the stores consider all zero bytes as paddings.
	(imm_store_chain_info::output_merged_store): Check if first store
	is = {} of the whole area and if yes, determine which setting of
	bzero_first for split_group gives smaller number of stores.  Adjust
	split_group callers.
	(lhs_valid_for_store_merging_p): Allow decls.
	(rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
	no elts.
	(pass_store_merging::process_store): Likewise.

	* gcc.dg/store_merging_26.c: New test.
	* gcc.dg/store_merging_27.c: New test.
	* gcc.dg/store_merging_28.c: New test.
	* gcc.dg/store_merging_29.c: New test.

From-SVN: r270924
2019-05-06 23:50:14 +02:00
Kelvin Nilsen 839c480a14 re PR target/89424 (__builtin_vec_ext_v1ti (v, i) results in ICE with variable i (RS6000))
gcc/ChangeLog:

2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/89424
	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
	handling of V1TImode.

gcc/testsuite/ChangeLog:

2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/89424
	* gcc.target/powerpc/pr89424-0.c: New test.
	* gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to
	enable testing of newly patched capability.
	* gcc.target/powerpc/vsx-builtin-13b.c: Likewise.
	* gcc.target/powerpc/vsx-builtin-20a.c: Likewise.
	* gcc.target/powerpc/vsx-builtin-20b.c: Likewise.

From-SVN: r270918
2019-05-06 17:00:46 +00:00
Marek Polacek cd0a831ce6 PR c++/90265 - ICE with generic lambda.
* pt.c (tsubst_copy_and_build): Use a dedicated variable for the last
	element in the vector.

	* g++.dg/cpp1y/lambda-generic-90265.C: New test.

From-SVN: r270917
2019-05-06 16:56:39 +00:00
Uros Bizjak fd661a34e5 re PR target/89221 (--enable-frame-pointer does not work as intended)
PR target/89221
	* config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
	and enable_frame_pointer ...
	* configure.ac: ... here.  Update help strings for
	--enable-frame-pointer.
	* configure: Regenerate.
	* config/i386/i386-options.c (ix86_option_override_internal): Remove
	USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
	* config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
	(USE_X86_64_FRAME_POINTER): Ditto.

From-SVN: r270914
2019-05-06 16:58:57 +02:00
Martin Liska 7c0b7150ed Append to target_gtfiles in order to fix Darwin bootstrap.
2019-05-06  Martin Liska  <mliska@suse.cz>

	* config.gcc: Append to target_gtfiles and fix indentation.

From-SVN: r270913
2019-05-06 14:03:27 +00:00
Richard Biener 898758504f re PR tree-optimization/90358 (526.blender_r train run does not finish after r270847 on znver1)
2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90358
	* tree-vect-stmts.c (get_group_load_store_type): Properly
	detect unused upper half of load.
	(vectorizable_load): Likewise.

	* gcc.target/i386/pr90358.c: New testcase.

From-SVN: r270911
2019-05-06 13:40:00 +00:00
Li Jia He a37aba1010 This reverts commit r270894, as new testcase fails on arm and aarch64, I am sorry for this.
From-SVN: r270910
2019-05-06 13:17:20 +00:00
Richard Biener 3bc104bdb4 re PR tree-optimization/88828 (Inefficient update of the first element of vector registers)
2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/88828
	* tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
	(simplify_vector_constructor): ...here.  Handle constants in
	the constructor.

	* gcc.target/i386/pr88828-0.c: New testcase.

From-SVN: r270908
2019-05-06 12:43:30 +00:00
Richard Biener 1d0b81c64c re PR tree-optimization/90328 (Wrong loop distribution with aliasing)
2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90328
	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
	is valid in the loop nest before using it.
	(initialize_data_dependence_relation): Adjust.
	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
	loop as loop-nest to dr_may_alias_p.

	* gcc.dg/torture/pr90328.c: New testcase.

From-SVN: r270906
2019-05-06 12:38:35 +00:00
Nathan Sidwell b744fc85f5 [libcpp] struct deps renaming
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00199.html
	libcpp/
	* include/mkdeps.h: Rename struct deps to struct mkdeps.
	* mkdeps.c: Likewise.
	* include/cpplib.h (cpp_get_deps): Rename return type..
	* directives.c (cpp_get_deps): Likewise.
	* internal.h (struct cpp_reader): Rename deps field type.

	gcc/c-family/
	* c-opts.c (handle_defered_opts): Rename struct deps to struc mkdeps.

From-SVN: r270905
2019-05-06 11:34:47 +00:00
Richard Biener 1b5e2d7b90 dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
2019-05-06  Richard Biener  <rguenther@suse.de>

	* dwarf2out.c (mem_loc_descriptor): Initialize int_mode.

From-SVN: r270903
2019-05-06 09:38:09 +00:00
Richard Biener f5b7359952 re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
2019-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90316
	* tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
	compute target on demand.
	(get_continuation_for_phi): Remove code walking stmts to
	get to a target virtual operand which could end up being
	quadratic.

From-SVN: r270902
2019-05-06 08:54:40 +00:00
Thomas Schwinge 2bbbfa4e28 Clean up libgomp GCC 5 legacy support
libgomp/
	* oacc-parallel.c: Add comments to legacy entry points (GCC 5).

From-SVN: r270901
2019-05-06 10:49:55 +02:00
Richard Biener 33a0bfcdca re PR testsuite/90331 (New test case gcc.dg/pr87314-1.c fails)
2019-05-06  Richard Biener  <rguenther@suse.de>

	PR testsuite/90331
	* gcc.dg/pr87314-1.c: Align the substring to open up
	string merging for targets aligning strings to 8 bytes.

From-SVN: r270900
2019-05-06 07:38:26 +00:00
Martin Liska 080629d32e Error only when a non-default -mabi is used with sanitizers (PR sanitizer/90312).
2019-05-06  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90312
	* config/i386/i386-options.c (ix86_option_override_internal): Error only
	when -mabi is selected to a non-default version.
2019-05-06  Martin Liska  <mliska@suse.cz>

	PR sanitizer/90312
	* gcc.dg/asan/pr87930.c: Run the test only on *linux or *gnu
	systems.
	* gcc.dg/tsan/pr88017.c: Likewise.

From-SVN: r270899
2019-05-06 07:35:59 +00:00
Martin Liska ee7a003f97 Fix GNU coding style in lto-common.c.
2019-05-06  Martin Liska  <mliska@suse.cz>

	* lto-common.c: Update coding style.
	* lto.c (materialize_cgraph): Likewise.

From-SVN: r270898
2019-05-06 07:23:35 +00:00
Hrishikesh Kulkarni 66d62d9f2e Add lto-dump tool.
2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
	    Martin Liska  <mliska@suse.cz>

	* Makefile.in: Add lto-dump.texi.
	* cgraph.h: Add new functions get_visibility_string and
	get_symtab_type_string.
	* doc/gcc.texi: Include lto-dump section.
	* doc/lto-dump.texi: New file.
	* dumpfile.c (dump_switch_p_1): Use parse_dump_option.
	(parse_dump_option): Factor out this function.
	* dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
	(parse_dump_option): Export the function.
	* symtab.c (symtab_node::get_visibility_string): New function.
	(symtab_node::get_symtab_type_string): Likewise.
2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
	    Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Add lto_dump-related definition.
	* config-lang.in: Likewise.
	* lang.opt: Add new language LTODump and options related
	to LTO dump tool.
	* lto-common.c (lto_read_decls): Support type statistics dump.
	(lto_file_read): Likewise for object files.
	* lto-dump.c: New file.
	* lto-lang.c (lto_option_lang_mask): Move from ..
	* lto.c (lto_option_lang_mask): .. here.
	* lto.h (lto_option_lang_mask): New declaration.

Co-Authored-By: Martin Liska <mliska@suse.cz>

From-SVN: r270897
2019-05-06 07:23:25 +00:00
Martin Liska a79420f995 Split part of functionality from lto.c to lto-common.c.
2019-05-06  Martin Liska  <mliska@suse.cz>
	    Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>

	* Make-lang.in: Add lto-common.o.
	* config-lang.in: Likewise for gtfiles.
	* lto-common.c: New file.
	* lto-common.h: New file.
	* lto-lang.c: Include lto-common.h.
	* lto.c: Move most of the functionality
	into lto-common.c file.

Co-Authored-By: Hrishikesh Kulkarni <hrishikeshparag@gmail.com>

From-SVN: r270896
2019-05-06 07:23:03 +00:00
Martin Liska 2bf6d93547 Split i386.c.
2019-05-06  Martin Liska  <mliska@suse.cz>

	* config/i386/i386-builtins.c: New file.
	* config/i386/i386-builtins.h: New file.
	* config/i386/i386-expand.c: New file.
	* config/i386/i386-expand.h: New file.
	* config/i386/i386-features.c: New file.
	* config/i386/i386-features.h: New file.
	* config/i386/i386-options.c: New file.
	* config/i386/i386-options.h: New file.
	* config.gcc: Add new files into extra_objs and
	target_gtfiles.
	* config/i386/i386.c: Split content of the file
	into newly introduced files.
	* config/i386/i386.h: Declare common variables
	and macros.
	* config/i386/t-i386: Define dependencies for new files.

From-SVN: r270895
2019-05-06 07:18:26 +00:00
Li Jia He 94adc935af Fix a typo in two_value_replacement function
GCC revision 267634 implemented two_value_replacement function.
However, a typo occurred during the parameter check, which caused
us to miss some optimizations.

The intent of the code might be to check that the input parameters
are const int and their difference is one.  However, when I read
the code, I found that it is wrong to detect whether an input data
plus one is equal to itself.  This could be a typo.

2019-05-06  Li Jia He  <helijia@linux.ibm.com>

	* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
	detection.
	* gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi
	optimization.
	* gcc.dg/tree-ssa/pr88676-2.c: New testcase.

From-SVN: r270894
2019-05-06 06:00:03 +00:00
François Dumont 3997383be1 printers.py (add_one_template_type_printer): Add type printer for container types in std::__debug namespace.
2019-05-06  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
	Add type printer for container types in std::__debug namespace.
	* testsuite/lib/gdb-test.exp (whatis-regexp-test): New.
	(gdb-tests): Use distinct parameters for the type of test and use of
	regex.
	(gdb-test): Check for regex test even if 'whatis' test.
	* testsuite/libstdc++-prettyprinters/80276.cc: Adapt for _GLIBCXX_DEBUG
	mode.
	* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.

From-SVN: r270893
2019-05-06 05:33:23 +00:00
GCC Administrator 95ae8efbc0 Daily bump.
From-SVN: r270892
2019-05-06 00:16:16 +00:00
Thomas Koenig 89d1f77616 re PR fortran/90344 (small code that compiles and runs in 7.3.0 but not 7.4.1)
2019-05-05  Thomas Koenig <tkoenig@gcc.gnu.org>

	PR fortran/90344
	* gfortran.dg/pr90344.f90: New test.

From-SVN: r270882
2019-05-05 13:53:24 +00:00
GCC Administrator cd173fc8ec Daily bump.
From-SVN: r270881
2019-05-05 00:16:19 +00:00