170560 Commits

Author SHA1 Message Date
Martin Liska
fe248a88e5 Release cgraph_{node,edge} via ggc_free (PR ipa/89330).
2019-07-28  Martin Liska  <mliska@suse.cz>

	PR ipa/89330
	* cgraph.c (symbol_table::create_edge): Always allocate
	a cgraph_edge.
	(symbol_table::free_edge): Store summary_id to
	edge_released_summary_ids if != -1;
	* cgraph.h (NEXT_FREE_NODE): Remove.
	(SET_NEXT_FREE_NODE): Likewise.
	(NEXT_FREE_EDGE): Likewise.
	(symbol_table::release_symbol): Store summary_id to
	cgraph_released_summary_ids if != -1;
	(symbol_table::allocate_cgraph_symbol): Always allocate
	a cgraph_node.

From-SVN: r273857
2019-07-28 17:10:26 +00:00
Rainer Orth
4f394a9e1c Fix g++.dg/lto/pr89330 on Solaris
* g++.dg/lto/pr89330_0.C (dg-lto-options): Add -fPIC.
	Require fpic support.

From-SVN: r273856
2019-07-28 12:31:17 +00:00
Alan Modra
aef57966f4 [RS6000] rs6000_output_mi_thunk tidy
Since svn r123193 (git 327202e27a) the comment about scratch regs was
no longer correct, and I think gen_sibcall could have been used even
then.

	* gcc/config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
	gen_sibcall.

From-SVN: r273855
2019-07-28 19:00:41 +09:30
Alan Modra
295ac7c79e [RS6000] PR91135, __linux__ not defined with -mcall-aixdesc on 9.x and ppc64
This patch makes the obvious fix for PR91135, and deletes extraneous
copies of GNU_USER_TARGET_D_OS_VERSIONS that appear in rs6000/linux.h
and rs6000/linux64.h.  Since all configurations using either of these
files also include linux.h there is no need to duplicate the macro.

	PR target/91135
	* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
	define.
	* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
	GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
	(GNU_USER_TARGET_D_OS_VERSIONS): Don't define.

From-SVN: r273854
2019-07-28 18:59:11 +09:30
Alan Modra
8d85264514 [RS6000] Make assembler command line cpu match default for gcc
When gcc is configured using --with-cpu=<cpu>, the specified cpu
effectively becomes a default -mcpu=<cpu> passed to gcc.  This then
affects the cpu passed to gas via ASM_CPU_SPEC.  If gcc is not
configured using --with-cpu then the cpu passed to gas is that given
by ASM_DEFAULT_SPEC, which currently does not match the default flags
selected in default64.h.  This patch makes ASM_DEFAULT_SPEC agree with
TARGET_DEFAULT flags.

rs6000/default64.h appears in three places in config.gcc, the first
one immediately followed by rs6000/freebsd64.h in $tm_file, and the
other two immediately followed by rs6000/linux64.h.  To be able to
define ASM_DEFAULT_SPEC in rs6000/default64.h we don't want to
redefine in the other two files.  rs6000/freebsd64.h is easy since
that file is always preceded by rs6000/default64.h, but
rs6000/linux64.h can appear without rs6000/default64.h (a
powerpc*-linux config where the default is -m32).  In that case we
will have TARGET_DEFAULT flags of 0 (from rs6000/sysv4.h) and want to
use -mppc without -m64 and -mppc64 with -m64.  This can be done by
using the rs6000/rtems.h ASM_DEFAULT_SPEC in rs6000/sysv4.h, a change
that won't affect sysv4 configurations where -m64 is invalid.

The patch also introduces ASM_DEFAULT_EXTRA for the altivec variant
targets so as to enable -maltivec by default.

	PR target/91050
	* config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
	* config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
	* config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
	* config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
	* config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
	* config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
	in asm_default spec.
	* config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
	* config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.

From-SVN: r273853
2019-07-28 18:56:13 +09:30
Gerald Pfeifer
c5993c9abc documentation_hacking.xml: Fix broken reference to the Doxygen manual.
* doc/xml/manual/documentation_hacking.xml: Fix broken reference
	to the Doxygen manual. Avoid a "here" link on the way.
	Fix another broken link to Doxygen docblocks.

From-SVN: r273852
2019-07-28 09:10:32 +00:00
Gerald Pfeifer
f0350021b8 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
From-SVN: r273851
2019-07-28 08:41:20 +00:00
GCC Administrator
93ca071285 Daily bump.
From-SVN: r273850
2019-07-28 00:16:59 +00:00
Iain Sandoe
5bca9dd453 [Darwin, PPC, testsuite] Fix fail for bmi2-bzhi64-1a.c
This test is failing with older cpus because the included header needs both
altivec and vsx to be enabled to succeed in compiling.  Without this (if these
are not defaults for the cpu) there are errors like:

In file included from ... x86intrin.h:41,
                 from ... bmi2-bzhi64-1a.c:6:
 ... xmmintrin.h: In function '_mm_loadu_ps':
 ... xmmintrin.h:122:11: 
error: incompatible types when returning type 'int' but '__m128' {aka '__vector(4) float'} was expected
<snip>
 ... xmmintrin.h: In function '_mm_cvtps_pi32':
 ... xmmintrin.h:996:3: 
error: use of 'long long' in AltiVec types is invalid without '-mvsx'
<snip>

Fixed by adding -maltivec -mvsx to the options.

gcc/testsuite/

2019-07-27  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.target/powerpc/bmi2-bzhi64-1a.c: Add options to enable altivec
	and vsx.

From-SVN: r273844
2019-07-27 07:43:15 +00:00
GCC Administrator
eebbac5830 Daily bump.
From-SVN: r273843
2019-07-27 00:16:32 +00:00
Iain Sandoe
4f67cda871 [Darwin, testsuite] Handle Darwin's size command.
Darwin's "size" command has a different header line, reflecting the Mach-O
section naming conventions.  This causes tests using the command to fail
because scanasm.exp expects and checks specific layout of the header line.

gcc/testsuite/

2019-07-26  Iain Sandoe  <iain@sandoe.co.uk>

	* lib/scanasm.exp (object-size): Handle Darwin's size command.

From-SVN: r273839
2019-07-26 18:58:02 +00:00
Jonathan Wakely
a5378f9b60 Define __cpp_lib_endian feature test macro
This macro was added as part of moving std::endian from <type_traits> to
<bit>.

	* include/std/bit (__cpp_lib_endian): Define.
	* include/std/version (__cpp_lib_endian): Define.
	* testsuite/26_numerics/endian/2.cc: New.
	* testsuite/26_numerics/endian/3.cc: New.
	* testsuite/26_numerics/endian/4.cc: New.

From-SVN: r273828
2019-07-26 14:30:42 +01:00
Tamar Christina
3644cadf6a AArch64: Make processing less fragile in config.gcc
Due to config.gcc all the options need to be on one line because of the grep
lines which would select only the first line of the option.

This causes it not to select the right bits on options that are spread over
multiple lines when the --with-arch configure option is used.  The issue happens
silently and you just get a compiler with an incorrect set of default flags.

The current rules are quite rigid:

   1) No space between the AARCH64_OPT_EXTENSION and the opening (.
   2) No space between the opening ( and the extension name.
   3) No space after the extension name before the ,.
   4) Spaces are only allowed after a , and around |.

This patch makes this a lot less fragile by using the C pre-processor to flatten
the list and then provides much more flexible regex using group matching to
process the options instead of string replacement.  This removes all the
restrictions above and makes the code a bit more readable.

gcc/ChangeLog:

	PR target/89517
	* config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
	* config/aarch64/aarch64-option-extensions.def: Add new comments
	and restore easier to read options.

From-SVN: r273827
2019-07-26 13:13:48 +00:00
Tamar Christina
8f5331b252 Add rules to strip away unneeded type casts in expressions
This patch moves part of the type conversion code from convert.c to match.pd
because match.pd is able to apply these transformations in the presence of
intermediate temporary variables.

Concretely it makes both these cases behave the same

  float e = (float)a * (float)b;
  *c = (_Float16)e;

and 

  *c = (_Float16)((float)a * (float)b);

gcc/ChangeLog:

	* convert.c (convert_to_real_1): Move part of conversion code...
	* match.pd: ...To here.

gcc/testsuite/ChangeLog:

	* gcc.dg/type-convert-var.c: New test.

From-SVN: r273826
2019-07-26 13:05:39 +00:00
Martin Jambor
4517b378af [PR 89330] Remove non-useful speculations from new_edges
2019-07-26  Martin Jambor  <mjambor@suse.cz>

	PR ipa/89330
	* ipa-inline-transform.c (check_speculations_1): New function.
	(push_all_edges_in_set_to_vec): Likewise.
	(check_speculations): Use check_speculations_1, new parameter
	new_edges.
	(inline_call): Pass new_edges to check_speculations.
	* ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
	NULL.
	(speculation_useful_p): Early return true if edge is inlined, remove
	later checks for inline_failed.

	testsuite/
	* g++.dg/lto/pr89330_[01].C: New test.
	* g++.dg/tree-prof/devirt.C: Added -fno-profile-values to dg-options.

From-SVN: r273825
2019-07-26 10:44:51 +02:00
François Dumont
ac2dca4daf 2019-07-26 François Dumont <fdumont@gcc.gnu.org>
* testsuite/util/testsuite_iterators.h
	(bidirectional_iterator_wrapper): Fix type comment.
	(random_access_iterator_wrapper): Likewise.

From-SVN: r273824
2019-07-26 05:05:48 +00:00
GCC Administrator
cc00790cd3 Daily bump.
From-SVN: r273823
2019-07-26 00:16:24 +00:00
Jonathan Wakely
45c7215c1e Relocate std::endian from <type_traits> to <bit>
This change to an early C++2a feature was just approved (P1612R1).

	* include/std/bit (endian): Move definition here as per P1612R1.
	* include/std/type_traits (endian): Remove definition from here.
	* testsuite/20_util/endian/1.cc: Rename to ...
	* testsuite/26_numerics/endian/1.cc: ... here. Adjust header.

From-SVN: r273816
2019-07-25 21:30:25 +01:00
Martin Sebor
599780d601 Wstringop-overflow-14.c: Disable for stricly aligned targets.
gcc/testsuite/ChangeLog:
	* gcc.dg/Wstringop-overflow-14.c: Disable for stricly aligned targets.

From-SVN: r273814
2019-07-25 13:39:04 -06:00
Martin Sebor
f2d52e0042 re PR tree-optimization/91183 (strlen of a strcpy result with a conditional source not folded)
PR tree-optimization/91183
PR tree-optimization/86688

gcc/testsuite/ChangeLog:
	* gcc.dg/strlenopt-70.c: Fix bugs.
	* gcc.dg/strlenopt-71.c: Same.
	* gcc.dg/strlenopt-72.c: Same.

From-SVN: r273812
2019-07-25 13:03:00 -06:00
Vladimir Makarov
9f41de41ea re PR rtl-optimization/91223 (ICE: in curr_insn_transform, at lra-constraints.c:4459)
2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/91223
	* lra-constraints.c (process_alt_operands): Fail for unsuccessful
	matching with INOUT operand.

2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/91223
	* gcc.target/i386/pr91223.c: New test.

From-SVN: r273810
2019-07-25 18:36:52 +00:00
Iain Sandoe
7649f2e444 [Darwin, testsuite] Address PR91087 - XFAIL parts of pr16855.C.
The testcase is failing to instrument part of the source because of a bug
in the ordering of static DTORs.  It seems unlikely that this is generically
fixable in the toolchain (and given that it's likely to be a dynamic loader
change would not be expected to be applied retrospectively to OS versions
that are out of support).  To avoid the testsuite noise, xfail the count lines
that don't match (we can adjust the xfails as/when the upstream bug is fixed).

dejagnu xfails do not seem to work when embedded in a line like:
  ~Test (void) { .... /* count(1) { xfail ... } */ }
the closing brace seems to confuse the parser.  The solution is to exapnd the
text onto three lines.

2019-07-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR gcov-profile/91087
	* g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
	"final" line for the failure summaries.  Adjust source layout so that
	dejagnu xfail expressions work.

From-SVN: r273809
2019-07-25 18:12:03 +00:00
Thomas Koenig
40e1ed2677 re PR fortran/65819 (overzealous checking in gfc_check_dependency for identical=true)
2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/65819
	* dependency.h (gfc_dep_resovler): Add optional argument identical.
	* dependency.c (gfc_check_dependency): Do not alway return 1 if
	the symbol is the same. Pass on identical to gfc_dep_resolver.
	(gfc_check_element_vs_element): Whitespace fix.
	(gfc_dep_resolver): Adjust comment for function.  If identical is
	true, return 1 if any overlap has been found.

2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/65819
	* gfortran.dg/dependency_54.f90: New test.

From-SVN: r273807
2019-07-25 16:24:00 +00:00
Eric Botcazou
0dfa7ba12c stmt.c (expand_case): Try to narrow the index type if it's larger than a word.
* stmt.c (expand_case): Try to narrow the index type if it's larger
	than a word.  Tidy up.

From-SVN: r273805
2019-07-25 16:16:32 +00:00
Eric Botcazou
5ab2422adf cif-code.def (NEVER_CALL): New code.
* cif-code.def (NEVER_CALL): New code.
	* ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
	Set the failure to CIF_NEVER_CALL if the IPA count is zero.

From-SVN: r273804
2019-07-25 16:07:29 +00:00
Wilco Dijkstra
7508869693 Fix low reg issue in Thumb-2 movsi patterns
The Thumb-2 movsi patterns try to prefer low registers for loads and stores.
However this is done incorrectly by using 2 separate variants with 'l' and 'h'
register classes.  The register allocator will only use low registers, and
as a result we end up with significantly more spills and moves to high
registers.  Fix this by merging the alternatives and use 'l*r' to indicate
preference for low registers.  This saves ~400 instructions from the pr77308
testcase.

    gcc/
	* config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
	* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.

From-SVN: r273802
2019-07-25 14:24:41 +00:00
Jan Hubicka
2fc233b731 * ipa-devirt.c (add_type_duplicate): Fix return value.
From-SVN: r273800
2019-07-25 13:42:25 +00:00
Richard Biener
e2cfa983c3 tree-vrp.c (extract_range_from_multiplicative_op): Add type parameter and use it instead of guessing expression type from the...
2019-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_multiplicative_op): Add
	type parameter and use it instead of guessing expression
	type from the first operand.
	(extract_range_from_binary_expr): Pass expr_type down.

From-SVN: r273797
2019-07-25 12:05:19 +00:00
Kyrylo Tkachov
c9357dc13b [arm][committed] Clean up code iterator usage in satsi* patterns
GCC 10 now supports having RTL codes being code attributes (thanks
Richard) allowing us to map smax to smin and vice versa.
This means we can clean up their use in the saturation patterns that do
the cross product of [smin, smax] and use the pattern
predicate to cancel out the nonsense ones.

	* config/arm/arm.md (SATrev): Change to code attribute.
	(*satsi_<SAT:code>): Adjust for the above.
	(*satsi_<SAT:code>_shift): Likewise.

From-SVN: r273796
2019-07-25 11:04:21 +00:00
Richard Biener
0982acbe28 gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): Make value_range * temporary const.
2019-07-25  Richard Biener  <rguenther@suse.de>

	* gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
	Make value_range * temporary const.
	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
	Likewise.
	(evrp_range_analyzer::record_ranges_from_): Likewise.
	(evrp_range_analyzer::pop_value_range): Return a const value_range *,
	deal with having recorded a const one.
	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
	Return a const value_range *.
	(evrp_range_analyzer::pop_value_range): Likewise.
	(evrp_range_analyzer::stack): Record const value_range *s.
	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
	Adjust.
	* gimple-ssa-sprintf.c (get_int_range): Likewise.
	(format_integer): Likewise.
	(sprintf_dom_walker::handle_gimple_call): Likewise.
	* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
	* tree-vrp.c (vrp_prop::set_def_to_varying): Add.
	(vrp_prop::get_value_range): Adjust.
	(vrp_prop::vrp_initialize): Use set_def_to_varying instead of
	modifying the lattice in-place.
	(vrp_prop::visit_stmt): Likewise.
	* vr-values.c (vr_values::get_lattice_entry): New private method.
	(vr_values::get_value_range): Wrap it and return a const
	value_range *.
	(vr_values::set_def_to_varying): New.
	(vr_values::set_defs_to_varying): Use it.
	(vr_values::update_value_range): Likewise.
	(vr_values::vrp_stmt_computes_nonzero): Adjust.
	(values::op_with_constant_singleton_va): Likewise.
	(vr_values::extract_range_for_var_from_co): Likewise.
	(vr_values::extract_range_from_ssa_name): Likewise.
	(vr_values::extract_range_from_cond_expr): Likewise.
	(vr_values::extract_range_basic): Likewise.
	(compare_ranges): Take const value_range *, adjust.
	(compare_range_with_value): Likewise.
	(vrp_valueize): Adjust.
	(vrp_valueize_1): Likewise.
	(vr_values::get_vr_for_comparison): Return a const value_range *.
	(vr_values::compare_name_with_value): Adjust.
	(vr_values::compare_names): Likewise.
	(vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
	Likewise.
	(vr_values::vrp_evaluate_conditional): Likewise.
	(find_case_label_ranges): Take a const value_range *.
	(vr_values::vrp_visit_switch_stmt): Adjust.
	(vr_values::extract_range_from_phi_node): Likewise.
	(vr_values::simplify_div_or_mod_using_ran): Likewise.
	(vr_values::simplify_abs_using_ranges): Likewise.
	(test_for_singularity): Take a const value_range *.
	(range_fits_type_p): Likewise.
	(vr_values::simplify_cond_using_ranges_1): Adjust.
	(vr_values::simplify_cond_using_ranges_2): Likewise.
	(vr_values::simplify_switch_using_ranges): Likewise.
	(vr_values::simplify_float_conversion_usi): Likewise.
	(vr_values::two_valued_val_range_p): Likewise.
	* vr-values.h (vr_values::get_value_range): Return a const
	value_range *.
	(vr_values::set_def_to_varying): New.
	(vr_values::get_lattice_entry): New private method.
	(vr_values::get_vr_for_comparison): Return a const value_range *.

From-SVN: r273792
2019-07-25 10:25:13 +00:00
Martin Liska
6343b6bf3b Extend DCE to remove unnecessary new/delete-pairs (PR c++/23383).
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* common.opt: Add -fallocation-dce
	* gimple.c (gimple_call_operator_delete_p): New.
	* gimple.h (gimple_call_operator_delete_p): Likewise.
	* tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
	DECL_IS_OPERATOR_DELETE_P.
	(mark_all_reaching_defs_necessary_1): Likewise.
	(propagate_necessity): Likewise.
	(eliminate_unnecessary_stmts): Handle
	gimple_call_operator_delete_p.
	* tree-streamer-in.c (unpack_ts_function_decl_value_fields):
	Add packing of OPERATOR_DELETE.
	* tree-streamer-out.c (pack_ts_function_decl_value_fields):
	Similarly here.
	* tree.h (DECL_IS_OPERATOR_DELETE_P): New.
	(DECL_SET_IS_OPERATOR_DELETE): New.
	(DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* c-decl.c (merge_decls): Merge OPERATOR_DELETE flag.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* decl.c (cxx_init_decl_processing): Mark delete operators
	with DECL_SET_IS_OPERATOR_DELETE.
2019-07-25  Martin Liska  <mliska@suse.cz
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* g++.dg/cpp1y/new1.C: New test.
2019-07-25  Martin Liska  <mliska@suse.cz>
	    Dominik Infuhr  <dominik.infuehr@theobroma-systems.com>

	PR c++/23383
	* testsuite/ext/bitmap_allocator/check_delete.cc: Add
	-fno-allocation-dce.
	* testsuite/ext/bitmap_allocator/check_new.cc: Likewise.
	* testsuite/ext/new_allocator/check_delete.cc: Likewise.
	* testsuite/ext/new_allocator/check_new.cc: Likewise.

Co-Authored-By: Dominik Infuehr <dominik.infuehr@theobroma-systems.com>

From-SVN: r273791
2019-07-25 09:36:38 +00:00
Martin Liska
cb50701ec2 Come up with function_decl_type and use it in tree_function_decl.
2019-07-25  Martin Liska  <mliska@suse.cz>

	* calls.c (maybe_warn_alloc_args_overflow): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
	* coverage.c (coverage_begin_function): Likewise.
	* fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
	* gimple.c (gimple_call_nonnull_result_p): Likewise.
	* ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
	(sem_item::hash_referenced_symbol_properties): Likewise.
	* lto-streamer-out.c (hash_tree): Likewise.
	* predict.c (expr_expected_value_1): Likewise.
	* tree-inline.c (expand_call_inline): Likewise.
	* tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
	* tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
	* tree-core.h (enum function_decl_type): New enum.
	(struct tree_function_decl): Remove operator_new_flag and lambda_function.
	* tree.h (FUNCTION_DECL_DECL_TYPE): New.
	(set_function_decl_type): Likewise.
	(DECL_IS_OPERATOR_NEW_P): New.
	(DECL_SET_IS_OPERATOR_NEW): Likewise.
	(DECL_LAMBDA_FUNCTION): Likewise.
	(DECL_LAMBDA_FUNCTION_P): Likewise.
	(DECL_IS_OPERATOR_NEW): Remove.
	(DECL_SET_LAMBDA_FUNCTION): Likewise.
2019-07-25  Martin Liska  <mliska@suse.cz>

	* c-decl.c (merge_decls): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
2019-07-25  Martin Liska  <mliska@suse.cz>

	* decl.c (duplicate_decls): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
	(cxx_init_decl_processing): Likewise.
	(grok_op_properties): Likewise.
	* parser.c (cp_parser_lambda_declarator_opt): Likewise.
2019-07-25  Martin Liska  <mliska@suse.cz>

	* lto-common.c (compare_tree_sccs_1): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).

From-SVN: r273790
2019-07-25 09:36:19 +00:00
Xiong Hu Luo
982b149787 Generalize get_most_common_single_value to return n_th value & count
Currently get_most_common_single_value could only return the max hist
<value, count>, add sort after reading from disk, then it return nth value
in later use.  Rename it to get_nth_most_common_value.

gcc/ChangeLog:

2019-07-15  Xiong Hu Luo  <luoxhu@linux.ibm.com>

	* ipa-profile.c (get_most_common_single_value): Use
	get_nth_most_common_value.
	* profile.c (sort_hist_value): New function.
	(compute_value_histograms): Call sort_hist_value to sort the
	values after loading from disk.
	* value-prof.c (get_most_common_single_value): Rename to ...
	get_nth_most_common_value.  Add input params n, return
	the n_th value and count.
	(gimple_divmod_fixed_value_transform): Use
	get_nth_most_common_value.
	(gimple_ic_transform): Likewise.
	(gimple_stringops_transform): Likewise.
	* value-prof.h (get_most_common_single_value): Add input params
	n, default to 0.

From-SVN: r273789
2019-07-25 09:20:13 +00:00
Eric Botcazou
25b46fc918 re PR testsuite/91245 (gnat.dg/float_value1.adb FAILs)
PR testsuite/91245
	* gnat.dg/float_value1.adb: Only run on x86.

From-SVN: r273788
2019-07-25 08:01:20 +00:00
Richard Biener
599331c858 re PR tree-optimization/91236 (ICE in walk_non_aliased_vuses at gcc/tree-ssa-alias.c:3395 on aarch64)
2019-07-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91236
	* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
	size of CONSTRUCTOR write.  Fix buffer size we pass to
	native_encode_expr.

From-SVN: r273787
2019-07-25 06:57:46 +00:00
Martin Sebor
b631bdb3c1 PR tree-optimization/91183 - strlen of a strcpy result with a conditional source not folded
PR tree-optimization/91183 - strlen of a strcpy result with a conditional source not folded
PR tree-optimization/86688 - missing -Wstringop-overflow using a non-string local array in strnlen with excessive bound

gcc/ChangeLog:

	PR tree-optimization/91183
	PR tree-optimization/86688
	* builtins.c (compute_objsize): Handle MEM_REF.
	* tree-ssa-strlen.c (class ssa_name_limit_t): New.
	(get_min_string_length): Remove.
	(count_nonzero_bytes): New function.
	(handle_char_store): Rename...
	(handle_store): to this.  Handle multibyte stores via integer types.
	(strlen_check_and_optimize_stmt): Adjust conditional and the called
	function name.

gcc/testsuite/ChangeLog:

	PR tree-optimization/91183
	PR tree-optimization/86688
	* gcc.dg/Wstringop-overflow-14.c: New test.
	* gcc.dg/attr-nonstring-2.c: Remove xfails.
	* gcc.dg/strlenopt-70.c: New test.
	* gcc.dg/strlenopt-71.c: New test.
	* gcc.dg/strlenopt-72.c: New test.
	* gcc.dg/strlenopt-8.c: Remove xfails.

From-SVN: r273783
2019-07-24 18:29:17 -06:00
GCC Administrator
7214f11d47 Daily bump.
From-SVN: r273782
2019-07-25 00:16:24 +00:00
Jozef Lawrynowicz
378a578aff Fix non-GNU style in previous commits
2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
	* config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
	r273773.

From-SVN: r273775
2019-07-24 21:37:29 +00:00
Jozef Lawrynowicz
c46d171720 config.gcc (msp430*-*-*): Enable initfini_array by default unless explicitly disabled with...
2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config.gcc (msp430*-*-*): Enable initfini_array by default unless
	explicitly disabled with --disable-initfini-array.

From-SVN: r273774
2019-07-24 21:13:54 +00:00
Jozef Lawrynowicz
d4c972b7eb msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in if-exists.
2019-07-24  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
	if-exists.

From-SVN: r273773
2019-07-24 21:08:34 +00:00
Martin Sebor
fa5baeedd4 PR driver/80545 - option -Wstringop-overflow not recognized by Fortran
gcc/cp/ChangeLog:

	PR driver/80545
	* decl.c (finish_function): Use lang_mask.

gcc/testsuite/ChangeLog:

	PR driver/80545
	* gcc.misc-tests/help.exp: Add tests.
	* lib/options.exp: Handle C++.

gcc/ChangeLog:

	PR driver/80545
	* diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
	(diagnostic_report_diagnostic): Same.
	* diagnostic.h (diagnostic_context::option_enabled): Add an argument.
	(diagnostic_context::lang_mask): New data member.
	* ipa-pure-const.c (suggest_attribute): Use
	lang_hooks.option_lang_mask ().
	* opts-common.c (option_enabled): Handle new argument.
	(get_option_state): Pass an additional argument.
	* opts.c (print_filtered_help): Print supported languages for
	unsupported options.  Adjust printing of current state.
	* opts.h (option_enabled): Add argument.
	* toplev.c (print_switch_values): Use lang_mask.
	(general_init): Set global_dc->lang_mask.

From-SVN: r273771
2019-07-24 14:34:03 -06:00
Iain Sandoe
e346167470 [Darwin] Partial reversion of 273749.
We still need to cater for pr80556, for the single-arch case.

2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>

gcc/

	PR bootstrap/87030
	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert r273749.

From-SVN: r273768
2019-07-24 19:59:22 +00:00
Giuliano Belinassi
856bb3ef93 cgraphunit.c (symbol_table::compile): Start and stop TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
* cgraphunit.c (symbol_table::compile): Start and stop
	TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
	* timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.

From-SVN: r273767
2019-07-24 13:10:36 -06:00
Oliver Browne
efab3e3a73 gimplify.c (flag_instrument_functions_exclude_p): Include namespace/class information in the printable name.
* gimplify.c (flag_instrument_functions_exclude_p): Include
	namespace/class information in the printable name.
	* opts.c (add_comma_separated_to_vector): Add NUL terminator
	to tokens entered into the vector.

From-SVN: r273766
2019-07-24 12:08:51 -06:00
Eric Botcazou
58f3f2c397 tree-nested.c (build_simple_mem_ref_notrap): New function.
* tree-nested.c (build_simple_mem_ref_notrap): New function.
	(get_static_chain): Call it instead of build_simple_mem_ref.
	(get_frame_field): Likewise.
	(get_nonlocal_debug_decl): Likewise.
	(convert_nonlocal_reference_op): Likewise.

From-SVN: r273763
2019-07-24 15:29:34 +00:00
Claudiu Zissulescu
ce9dbf20f4 [ARC] Fix and refurbish the interrupts.
When entering an interrupt, not only the call save registers needs to
be place on stack but also the call clobbers one. More over, the
ARC700 return from interrupt instruction needs to be rtie, the same
like ARCv2 CPUs. While the ARC6xx family uses j.f [ilinkX]
instruction. Additionally, we need to save the state of the ZOL
machinery, namely the lp_count, lp_end and lp_start registers. For
architectures which are using extension registers (i.e., HS48) we need
to save/restore them as well.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_output_function_epilogue): Delete
	declaration.
	(arc_compute_frame_size): Millicode is disabled when compiling
	ISR.
	(arc_return_address_register): Likewise.
	(arc_compute_function_type): Likewise.
	(arc_compute_frame_size): Likewise.
	(secondary_reload_info): Likewise.
	(arc_get_unalign): Likewise.
	(arc_can_use_return_insn): Declare.
	* config/arc/arc.c (AUX_LP_START): Define
	(AUX_LP_END): Likewise.
	(arc_frame_info): Update gmask member to 64-bit datum.
	(GMASK_LEN): Update.
	(arc_compute_function_type): Make it static, move it forward.
	(arc_must_save_register): Update, consider the extra regs.
	(arc_compute_millicode_save_restore_regs): Update to use the 64
	bit gmask.
	(arc_compute_frame_size): Likewise.
	(arc_enter_leave_p): Likewise.
	(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_restore_callee_milli): Likewise.
	(arc_expand_prologue): Add new interrupt handling.
	(arc_return_address_register): Make it static, move it forward.
	(arc_expand_epilogue): Add new interrupt handling.
	(arc_get_unalign): Delete.
	(arc_epilogue_uses): Make sure we do not remove the extra
	saved/restored registers when interrupt.
	(arc_can_use_return_insn): New function.
	(push_reg): Likewise.
	(pop_reg): Likewise.
	(arc_save_callee_saves): Add ZOL and FPX aux registers saving
	procedures.
	(arc_restore_callee_saves): Likewise, but restoring.
	* config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
	(R33_REG): Likewise.
	(R34_REG): Likewise.
	(R35_REG): Likewise.
	(R36_REG): Likewise.
	(R37_REG): Likewise.
	(R38_REG): Likewise.
	(R39_REG): Likewise.
	(R45_REG): Likewise.
	(R46_REG): Likewise.
	(R47_REG): Likewise.
	(R48_REG): Likewise.
	(R49_REG): Likewise.
	(R50_REG): Likewise.
	(R51_REG): Likewise.
	(R52_REG): Likewise.
	(R53_REG): Likewise.
	(R54_REG): Likewise.
	(R55_REG): Likewise.
	(R56_REG): Likewise.
	(R58_REG): Likewise.
	(type): Add rtie attribute.
	(in_call_delay_slot): Use RETURN_ADDR_REGNUM.
	(movsi_insn): Accept moves to lp_count.
	(rtie): Update pattern.
	(simple_return): Simplify it, don't use this pattern as a return
	from an interrupt.
	(arc600_rtie): New pattern.
	(p_return_i): Clean up.
	(return): Likewise.
	* config/arc/builtins.def (rtie): Only available for non ARC6xx
	family CPUs.
	* config/arc/predicates.md (move_src_operand): Consider lp_count
	as a register.

gcc/testsuite
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/arc.exp (check_effective_target_accregs): New
	predicate.
	* gcc.target/arc/builtin_special.c: Update test/
	* gcc.target/arc/interrupt-1.c: Likewise.
	* gcc.target/arc/interrupt-10.c: New test.
	* gcc.target/arc/interrupt-11.c: Likewise.
	* gcc.target/arc/interrupt-12.c: Likewise.

update

From-SVN: r273761
2019-07-24 14:21:38 +02:00
Andreas Krebbel
4caa6bab76 S/390: Add add/sub/mul overflow check patterns
This patch implements the addv, subv, and mulv patterns for signed
integers.

gcc/ChangeLog:

2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/predicates.md (addv_const_operand): New predicate.
	* config/s390/s390-modes.def (CCO): New condition code mode.
	* config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
	(s390_branch_condition_mask): Likewise.
	* config/s390/s390.md ("addv<mode>4", "subv<mode>4")
	("mulv<mode>4"): New expanders.
	("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
	("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
	pattern definitions.

gcc/testsuite/ChangeLog:

2019-07-24  Andreas Krebbel  <krebbel@linux.ibm.com>

	* gcc.target/s390/addsub-signed-overflow-1.c: New test.
	* gcc.target/s390/addsub-signed-overflow-2.c: New test.
	* gcc.target/s390/mul-signed-overflow-1.c: New test.
	* gcc.target/s390/mul-signed-overflow-2.c: New test.

From-SVN: r273759
2019-07-24 11:27:56 +00:00
Prathamesh Kulkarni
21caa1a264 re PR middle-end/91166 ([SVE] Unfolded ZIPs of constants)
2019-07-24  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR middle-end/91166
	* match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
	(define_predicates): Add entry for uniform_vector_p.
	(vec_same_elem_p): New match pattern.

testsuite/
	* gcc.target/aarch64/sve/pr91166.c: New test.

From-SVN: r273758
2019-07-24 07:20:24 +00:00
Martin Liska
7012184434 Fix off-by-one in simple-object-elf.c (PR lto/91228).
2019-07-24  Martin Liska  <mliska@suse.cz>

	PR lto/91228
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Find first '\0' starting from gnu_lto + 1.

From-SVN: r273757
2019-07-24 07:00:48 +00:00
Bin Cheng
fe1a06fc57 Fixup ChangeLog entry for revision 273570.
From-SVN: r273756
2019-07-24 01:40:59 +00:00