Commit Graph

172770 Commits

Author SHA1 Message Date
Jakub Jelinek
48042bd43e re PR c++/92447 (ICE in poplevel, at cp/decl.c:585)
PR c++/92447
	* decl.c (finish_function): Move ctype initialization before
	DECL_DELETED_FN handling.

	* g++.dg/cpp0x/pr92447.C: New test.

From-SVN: r278068
2019-11-11 22:31:29 +01:00
Jakub Jelinek
4f67832ee1 re PR bootstrap/92433 (r276645 breaks bootstrap on powerpc)
PR bootstrap/92433
	* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard
	ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check.  Use
	std::swap.

From-SVN: r278066
2019-11-11 21:05:49 +01:00
Jakub Jelinek
7cec95887a c-parser.c (c_parser_translation_unit): Diagnose declare target without corresponding end declare target.
* c-parser.c (c_parser_translation_unit): Diagnose declare target
	without corresponding end declare target.

	* semantics.c (finish_translation_unit): Diagnose declare target
	without corresponding end declare target.

	* c-c++-common/gomp/declare-target-5.c: New test.

From-SVN: r278065
2019-11-11 21:05:11 +01:00
Richard Sandiford
599bd99078 Fix SLP downward group access classification (PR92420)
This PR was caused by the SLP handling in get_group_load_store_type
returning VMAT_CONTIGUOUS rather than VMAT_CONTIGUOUS_REVERSE for
downward groups.

A more elaborate fix would be to try to combine the reverse permutation
into SLP_TREE_LOAD_PERMUTATION for loads, but that's really a follow-on
optimisation and not backport material.  It might also not necessarily
be a win, if the target supports (say) reversing and odd/even swaps
as independent permutes but doesn't recognise the combined form.

2019-11-11  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR tree-optimization/92420
	* tree-vect-stmts.c (get_negative_load_store_type): Move further
	up file.
	(get_group_load_store_type): Use it for reversed SLP accesses.

gcc/testsuite/
	* gcc.dg/vect/pr92420.c: New test.

From-SVN: r278064
2019-11-11 19:43:52 +00:00
Jan Hubicka
98aad29470 ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp summary.
* ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp
	summary.
	(ipcp_transformation_t::duplicate): Break out from ...
	(ipa_node_params_t::duplicate): ... here; add copying of agg
	replacements.
	* ipa-prop.h (ipcp_transformation): Add constructor and destructor.
	(ipcp_transformation_t): Add duplicate.

From-SVN: r278062
2019-11-11 19:11:02 +00:00
Janne Blomqvist
8be34204de Bump minimum MPFR version to 3.1.0
Bump the minimum MPFR version to 3.1.0, released 2011-10-03. With this
requirement one can still build GCC with the operating system provided
MPFR on old but still supported operating systems like SLES 12 (MPFR
3.1.2) or RHEL/CentOS 7.x (MPFR 3.1.1).

This allows removing some code in the Fortran frontend, as well as
fixing PR 91828.

ChangeLog:

2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/91828
	* configure.ac: Bump minimum MPFR to 3.1.0, recommended to 3.1.6+.
	* configure: Regenerated.

gcc/ChangeLog:

2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/91828
	* doc/install.texi: Document that the minimum MPFR version is
	3.1.0.

gcc/fortran/ChangeLog:

2019-11-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/91828
	* simplify.c (gfc_simplify_fraction): Remove fallback path for
	MPFR < 3.1.0.

From-SVN: r278058
2019-11-11 17:59:48 +02:00
Claudiu Zissulescu
5fcb3f62fc [ARC] Fix movsi_ne pattern.
The movsi_ne variants are in a wrong order, leading to wrong
computation of the internal attribute "cond". Hence, to errors when
outputting annul-true or annul-false instructions.

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

	* config/arc/arc.md (movsi_ne): Reorder instruction variants.

testsuite/
xxxx-xx-xx  Shahab Vahedi  <shahab@synopsys.com>

	* gcc.target/arc/delay-slot-limm.c: New test.

From-SVN: r278057
2019-11-11 16:40:20 +01:00
Claudiu Zissulescu
3a6dd06b6c [ARC] Fix legitimize pic address.
There are cases when an pic address gets complicated, and it needs to
be resolved via force_reg function found in
prepare_move_operands. When this happens, we need to disambiguate the
pic address and re-legitimize it.

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

	* config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
	as well, if interesting recover the symbol and re-legitimize the
	pic address.

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

	* gcc.target/arc/pic-2.c: New file.

From-SVN: r278056
2019-11-11 16:40:09 +01:00
Tobias Burnus
e22c222027 Fix commit for PR fortran/92142 - CFI_setpointer corrupts descriptor
2019-11-11  Tobias Burnus  <tobias@codesourcery.com>
            Mark Eggleston  <mark.eggleston@codethink.com>

        PR fortran/92142
        * gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.f90:
        Correct dg-additional-sources.


Co-Authored-By: Mark Eggleston <mark.eggleston@codethink.com>

From-SVN: r278055
2019-11-11 16:35:50 +01:00
Martin Liska
fe1d1a8b4c Relax lto-dump.o dependency.
2019-11-11  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Relax dependency of lto-dump.o to
	LTO_OBJS which will allow faster linking (mainly with LTO).

From-SVN: r278054
2019-11-11 15:26:03 +00:00
Martin Liska
cf18754da2 Sort debug counter names.
2019-11-11  Martin Liska  <mliska@suse.cz>

	* dbgcnt.def (DEBUG_COUNTER): Sort counters
	alphabetically.

From-SVN: r278053
2019-11-11 15:23:31 +00:00
Gerald Pfeifer
cb6b5afe1d Update link to "Why not LGPL".
* doc/xml/gnu/gpl-3.0.xml: Adjust link to "Why not LGPL".

From-SVN: r278051
2019-11-11 13:35:33 +00:00
Andre Vieira
87b4725192 [vect]Account for epilogue's peeling for gaps when checking if we have enough
niters for epilogue

gcc/ChangeLog:
2019-11-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into
	account when checking if there are enough iterations to vectorize
	epilogue.

gcc/testsuite/ChangeLog:
2019-11-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.dg/vect/vect-reduc-epilogue-gaps.c: New test.

From-SVN: r278049
2019-11-11 12:07:04 +00:00
José Rui Faustino de Sousa
3f246567a4 PR fortran/92142 - CFI_setpointer corrupts descriptor
2019-11-11  José Rui Faustino de Sousa  <jrfsousa@gmail.com>

        libgfortran/
        PR fortran/92142
        * runtime/ISO_Fortran_binding.c (CFI_setpointer): Don't
        override descriptor attribute; with -fcheck, check that
        it is a pointer.

        gcc/testsuite/
        PR fortran/92142
        * gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.c: New.
        * gcc/testsuite/gfortran.dg/ISO_Fortran_binding_16.f90: New.
        * gcc/testsuite/gfortran.dg/ISO_Fortran_binding_10.c: Correct
        upper bounds for case 0.

From-SVN: r278048
2019-11-11 11:18:14 +01:00
Thomas Schwinge
a5aeee56d8 Fix OpenACC directives nesting in 'gfortran.dg/goacc/common-block-1.f90', 'gfortran.dg/goacc/common-block-2.f90'
gcc/testsuite/
	* gfortran.dg/goacc/common-block-1.f90: Fix OpenACC directives
	nesting.
	* gfortran.dg/goacc/common-block-2.f90: Likewise.

From-SVN: r278047
2019-11-11 10:26:40 +01:00
Tobias Burnus
a2c26c5031 Fortran] Support absent optional args with use_device_{ptr,addr}
2019-11-11  Tobias Burnus  <tobias@codesourcery.com>
            Kwok Cheung Yeung  <kcy@codesourcery.com>

        gcc/
        * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
        Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define.
        (LANG_HOOKS_DECLS): Rename also here.
        * langhooks.h (lang_hooks_for_decls): Rename
        omp_is_optional_argument to omp_check_optional_argument; take
        additional bool argument.
        * omp-general.h (omp_check_optional_argument): Likewise.
        * omp-general.h (omp_check_optional_argument): Likewise.
        * omp-low.c (lower_omp_target): Update calls; handle absent
        Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR.

        gcc/fortran/
        * trans-expr.c (gfc_conv_expr_present): Check for DECL_ARTIFICIAL
        for the VALUE hidden argument avoiding -fallow-underscore issues.
        * trans-decl.c (create_function_arglist): Also set
        GFC_DECL_OPTIONAL_ARGUMENT for per-value arguments.
        * f95-lang.c (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT):
        Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; point
        to gfc_omp_check_optional_argument.
        * trans.h (gfc_omp_check_optional_argument): Subsitutes
        gfc_omp_is_optional_argument declaration.
        * trans-openmp.c (gfc_omp_is_optional_argument): Make static.
        (gfc_omp_check_optional_argument): New function.

        libgomp/
        * testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: Extend.
        * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: New.


Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>

From-SVN: r278046
2019-11-11 10:19:29 +01:00
Thomas Schwinge
bfa1837b01 Torture testing: 'libgomp.fortran/target9.f90'
libgomp/
	* testsuite/libgomp.fortran/target9.f90: Specify 'dg-do run'.

From-SVN: r278045
2019-11-11 09:50:40 +01:00
Thomas Schwinge
6d4868f3a1 Torture testing: 'libgomp.fortran/use_device_addr-3.f90', 'libgomp.fortran/use_device_addr-4.f90', 'libgomp.fortran/use_device_ptr-1.f90'
libgomp/
	* testsuite/libgomp.fortran/use_device_addr-3.f90: Specify 'dg-do
	run'.
	* testsuite/libgomp.fortran/use_device_addr-4.f90: Likewise.
	* testsuite/libgomp.fortran/use_device_ptr-1.f90: Likewise.

From-SVN: r278044
2019-11-11 09:50:29 +01:00
H.J. Lu
ad65b42729 [PR87833] x86: Put -fPIC and -shared the last to create offload image
On x86, since -fPIC and -shared should be used to create offload image,
we put them the last to properly create offload image.

2019-11-11  H.J. Lu  <hjl.tools@gmail.com>

	PR target/87833
	* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
	-fPIC and -shared the last to create offload image.

From-SVN: r278041
2019-11-11 09:38:28 +01:00
Thomas Schwinge
d9945c8842 Assert 'offset2' instead of 'offset' in 'gcc/gimplify.c:gimplify_scan_omp_clauses'
... to fix a long-time typo/copy'n'past-o.

	gcc/
	* gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
	of 'offset'.

From-SVN: r278038
2019-11-11 09:18:46 +01:00
Thomas Schwinge
223bf296b2 [build] Properly track GCC language configure fragments
The 'gcc/configure' script sources all 'gcc/*/config-lang.in' files, but fails
to emit such dependency information into the build machinery.  That means,
currently, when something gets changed in a 'gcc/*/config-lang.in' file, this
is not noticed, and doesn't propagate through the build machinery.

Handling of configure fragments is modelled in the same way as it already
exists for Makefile fragments.

	gcc/
	* Makefile.in (LANG_CONFIGUREFRAGS): Define.
	(config.status): Use/depend on it.
	* configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
	* configure: Regenerate.

From-SVN: r278035
2019-11-11 09:05:27 +01:00
Jiufu Guo
48f657953f rs6000: Refine small loop unroll in loop_unroll_adjust hook
In this patch, loop unroll adjust hook is introduced for powerpc.  We
can do target related heuristic adjustment in this hook.  In this patch,
-funroll-loops is enabled for small loops at O2 and above with an option
-munroll-small-loops to guard the small loops unrolling, and it works
fine with -flto.


gcc/
2019-11-11  Jiufu Guo  <guojiufu@linux.ibm.com>

	PR tree-optimization/88760
	* gcc/config/rs6000/rs6000.opt (-munroll-only-small-loops): New option.
	* gcc/common/config/rs6000/rs6000-common.c
	(rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]:
	Turn on -funroll-loops and -munroll-only-small-loops.
	[OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
	set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS.
	Turn off -munroll-only-small-loops for explicit -funroll-loops.
	(TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook.
	(rs6000_loop_unroll_adjust): Define it.  Use -munroll-only-small-loops.

gcc.testsuite/
2019-11-11  Jiufu Guo  <guojiufu@linux.ibm.com>

	PR tree-optimization/88760
	* gcc.dg/pr59643.c: Update back to r277550.

From-SVN: r278034
2019-11-11 06:30:38 +00:00
Kewen Lin
103cba80bd [rs6000] Make load cost a bit more in vectorization cost
To align with rs6000_insn_cost costing more for load type insns,
this patch is to make load insns cost more in vectorization cost
function.  The latency of load insns is about twice that of
"simple" instructions; 2 vs. 1 on older cores, and 4 (or so) vs.
2 on newer cores.  Considering that the result of load usually
is used somehow later (true-dep) but store won't, we keep the
store as before.

The SPEC2017 performance evaluation on Power8 shows 525.x264_r
+9.56%, 511.povray_r +2.08%, 527.cam4_r 1.16% gains, no 
significant degradation, SPECINT geomean +0.88%, SPECFP geomean
+0.26%.

The SPEC2017 performance evaluation on Power9 shows no significant
improvement or degradation, SPECINT geomean +0.04%, SPECFP geomean
+0.04%.

The SPEC2006 performance evaluation on Power8 shows 454.calculix
+4.41% gain but 416.gamess -1.19% and 453.povray -3.83% degradation.
I looked into the two degradation bmks, the degradation were NOT
due to hotspot changes by vectorization, were all side effects.
SPECINT geomean +0.10%, SPECFP geomean no changed considering
the degradation.

gcc/ChangeLog

2019-11-11  Kewen Lin  <linkw@gcc.gnu.org>

    * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Make
    scalar_load, vector_load, unaligned_load and vector_gather_load cost
    more to conform hardware latency and insn cost settings.

From-SVN: r278033
2019-11-11 05:08:20 +00:00
GCC Administrator
4b41bff297 Daily bump.
From-SVN: r278032
2019-11-11 00:16:18 +00:00
Iain Sandoe
34548764c2 [Darwin, machopic 11/n] A flag to indicate synbols should be linker-visible.
Some of the solution to PR71767 is incomplete, and we need finer-grained
control over whether symbols need to be made linker-visible.  This is a
preparation patch, providing the flag.

gcc/ChangeLog:

2019-11-10  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New.
	(MACHO_SYMBOL_LINKER_VIS_P): New.

From-SVN: r278028
2019-11-10 21:48:27 +00:00
Janne Blomqvist
15471d58fe Don't print warning when moving to static with -fno-automatic
As part of PR 91413, GFortran now prints a warning when a variable is
moved from the stack to static storage. However, when the user
explicitly specifies that all local variables should be put in static
storage with the -fno-automatic option, don't print this warning.

Regtested on x86_64-pc-linux-gnu, committed as obvious.

gcc/fortran/ChangeLog:

2019-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/91413
	* trans-decl.c (gfc_finish_var_decl): Don't print warning when
	-fno-automatic is enabled.

From-SVN: r278027
2019-11-10 23:25:25 +02:00
Jason Merrill
2806ecbdc8 Implement D1957R0, T* to bool should be considered narrowing.
This paper was delayed until the February meeting in Prague so that we could
get a better idea of what the impact on existing code would actually be.  To
that end, I'm implementing it now.

	* typeck2.c (check_narrowing): Treat pointer->bool as a narrowing
	conversion with -std=c++2a.

From-SVN: r278026
2019-11-10 15:30:03 -05:00
Paul Thomas
0313a84a2f re PR fortran/92123 ([F2018/array-descriptor] Scalar allocatable/pointer with array descriptor (via bind(C)): ICE with select rank or error scalar variable with POINTER or ALLOCATABLE in procedure with BIND(C) is not yet supported)
2019-11-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/92123
	*decl.c (gfc_verify_c_interop_param): Remove error asserting
	that pointer or allocatable variables in a bind C procedure are
	not supported. Delete some trailing spaces.
	* trans-stmt.c (trans_associate_var): Correct the attempt to
	treat scalar pointer or allocatable temporaries as if they are
	array descriptors.

2019-11-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/92123
	* gfortran.dg/bind_c_procs_3.f90 : New test.
	* gfortran.dg/ISO_Fortran_binding_15.c : New test.
	* gfortran.dg/ISO_Fortran_binding_15.f90 : Additional source.

From-SVN: r278025
2019-11-10 18:33:00 +00:00
Kwok Cheung Yeung
4b77a3806c [LRA] Do not use eliminable registers for spilling
The liveness of eliminable hard registers is not tracked by LRA between
basic blocks, so they should not be used as spill registers as LRA may
decide to allocate them to pseudos while the spilled value is still live.

2019-11-10  Kwok Cheung Yeung  <kcy@codesourcery.com>

	gcc/
	* lra-spills.c (assign_spill_hard_regs): Do not spill into
	registers in eliminable_regset.

From-SVN: r278024
2019-11-10 18:22:38 +00:00
Jan Hubicka
b535138846 Manually CSE sreal frequency calculations
* ipa-inline.c (compute_uninlined_call_time,
	compute_inlined_call_time): Take edge frequency as
	parameter rather than computing it by itself.
	(big_speedup_p, edge_badness): Manually CSE sreal
	frequency calculations.

From-SVN: r278023
2019-11-10 18:18:00 +00:00
Jan Hubicka
65eaab18b1 Short circuit case where profiles are same.
* profile-count.c (profile_count::to_sreal_scale): Short circuit
	case where profiles are same.

From-SVN: r278022
2019-11-10 18:15:34 +00:00
Jan Hubicka
d07f74faa6 * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency.
From-SVN: r278021
2019-11-10 18:10:51 +00:00
Jan Hubicka
d40e2362bb ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge args summaries of inlined edge unless...
* ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge
	args summaries of inlined edge unless it holds info about
	described reference.

From-SVN: r278020
2019-11-10 15:44:13 +00:00
Gerald Pfeifer
7901a85f3c Switch www.hboehm.info to https
* doc/xml/manual/using.xml: Switch www.hboehm.info to https.

From-SVN: r278019
2019-11-10 13:37:26 +00:00
Segher Boessenkool
7964e40de3 rs6000: Allow any CC mode in movcc
Sometimes combine wants to do a move in CCFPmode, but we don't currently
handle moves in any CC mode other than CCmode.  Fix that oversight.


	* config/rs6000/rs6000.md (CC_any): New mode iterator.
	(*movcc_internal1): Rename to...
	(*movcc_<mode> for CC_any): ... this.  Support moves of all CC modes.

From-SVN: r278017
2019-11-10 12:53:31 +01:00
Jan Hubicka
6cf67b62c8 cgraph.h (struct cgraph_node): Add ipcp_clone flag.
* cgraph.h (struct cgraph_node): Add ipcp_clone flag.
	(cgraph_node::create_virtual_clone): Copy it.
	* ipa-cp.c (ipcp_versionable_function_p): Watch for missing
	summaries.
	(ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too.
	(ipcp_verify_propagated_values): Do not verify nodes where ipcp
	is disabled.
	(propagate_constants_across_call): If callee is not analyzed, give up.
	(propagate_constants_topo): Lower to bottom latties of all callees of
	functions with ipa-cp disabled.
	(ipcp_propagate_stage): Skip functions with ipa-cp disabled.
	(cgraph_edge_brings_value_p): Check for availability first.
	(create_specialized_node): Set ipcp_clone.
	(ipcp_store_bits_results): Check that info is present.
	* ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze
	thunks.
	(ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be
	conservative when callee summary is missing.
	(remap_edge_summaries): Lookup call summary only when needed.
	* ipa-icf.c (sem_function::param_used_p): Be ready for missing summary.
	* ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params):
	Use get_create.
	(ipa_analyze_node): Use get_create.
	(propagate_controlled_uses): Do not propagate when function is not
	analyzed.
	(ipa_propagate_indirect_call_infos): Remove summary of inline clone.
	(ipa_read_node_info): Use get_create.
	* ipa-prop.h (IPA_NODE_REF): Use get.
	(IPA_NODE_REF_GET_CREATE): New.

From-SVN: r278016
2019-11-10 11:25:38 +00:00
GCC Administrator
64166bf04b Daily bump.
From-SVN: r278013
2019-11-10 00:16:22 +00:00
Jan Hubicka
2ee6e04aae ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF on function symbol.
* ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF
	on function symbol.
	* gcc.dg/tree-ssa/pr46076.c: Make tested code hot.

From-SVN: r278009
2019-11-09 21:35:35 +00:00
Jan Hubicka
7b22b7cece tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P, ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
* tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P,
	ENUM_IS_OPAQUE and ENUM_IS_SCOPED.
	(free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO
	(free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED.

From-SVN: r278008
2019-11-09 21:33:55 +00:00
Jan Hubicka
49d9c9d283 ipa-inline-analysis.c (do_estimate_growth_1): Add support for capping the growth cumulated.
* ipa-inline-analysis.c (do_estimate_growth_1): Add support for
	capping the growth cumulated.
	(offline_size): Break out from ...
	(estimate_growth): ... here.
	(check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE
	parameters.
	(growth_likely_positive): Turn to ...
	(growth_positive_p): Re-implement.
	* ipa-inline.h (growth_likely_positive): Remove.
	(growth_positive_p): Declare.
	* ipa-inline.c (want_inline_small_function_p): Use
	growth_positive_p.
	(want_inline_function_to_all_callers_p): Likewise.

From-SVN: r278007
2019-11-09 17:52:56 +00:00
Jan Hubicka
e3bd08dde1 ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix calculation of min_size.
* ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix
	calculation of min_size.
	(ipa_update_overall_fn_summary): Likewise.

From-SVN: r278006
2019-11-09 17:45:29 +00:00
Jan Hubicka
83263ef536 ipa-fnsummary.c (estimate_edge_size_and_time): Do not call estimate_edge_devirt_benefit when not computing hints...
* ipa-fnsummary.c (estimate_edge_size_and_time): Do not call
	estimate_edge_devirt_benefit when not computing hints;
	do not compute time when not asked for.
	(estimate_calls_size_and_time): Pass NULL hints and time when
	these are not computed; do not evaluate hint predicates when these are
	not computed.
	(ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge
	frequency.

From-SVN: r278005
2019-11-09 17:37:38 +00:00
Jakub Jelinek
c47bee97fa re PR tree-optimization/92401 (ICE in fold_ternary_loc, at fold-const.c:11698)
PR tree-optimization/92401
	* gimple-match-head.c (gimple_resimplify1): Call const_unop only
	if res_op->code is an expression with code length 1.
	* gimple-match-head.c (gimple_resimplify2): Call const_binop only
	if res_op->code is an expression with code length 2.
	* gimple-match-head.c (gimple_resimplify3): Call fold_ternary only
	if res_op->code is an expression with code length 3.

	* g++.dg/opt/pr92401.C: New test.

From-SVN: r278004
2019-11-09 18:09:44 +01:00
Thomas Koenig
b03932cb99 Commit symbol for external BLAS routine when translating MATMUL to *GEMM.
2019-11-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/92321
	* frontend-passes.c (call_external_blas): Commit symbol for
	external BLAS routine.

2019-11-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/92321
	* gfortran.dg/matmul_blas_2.f90: New test.

From-SVN: r278003
2019-11-09 14:54:19 +00:00
Iain Sandoe
95cc59f17b [Darwin, machopic 10/n] Rework X86 mcount stub code.
When a stub is used to call the mcount function, the code is already
marking it as used unconditionally;  This is the only use of the so-
called validation outside darwin.{h,c}.  This moves the 'validation'
into darwin.c which is a step towards making validation routine local.

gcc/

2019-11-09  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_mcount_stub_name): Validate the
	symbol stub name when it is created.
	* config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol
	stub validation.

From-SVN: r278000
2019-11-09 13:43:04 +00:00
GCC Administrator
038d7e1b19 Daily bump.
From-SVN: r277999
2019-11-09 00:16:19 +00:00
Jakub Jelinek
dfea3d6fde symtab.c: Fix comment typos.
* symtab.c: Fix comment typos.
	* cgraphunit.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphclones.c: Likewise.
	* cgraph.c: Likewise.
	* varpool.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* ipa-sra.c: Likewise.
	(scan_expr_access, check_all_callers_for_issues): Fix typo
	in a dump message.

From-SVN: r277995
2019-11-09 00:56:37 +01:00
Jakub Jelinek
a63d6356be dec_char_conversion_in_assignment_4.f90: Use dg-do compile instead of dg-do run.
* gfortran.dg/dec_char_conversion_in_assignment_4.f90: Use
	dg-do compile instead of dg-do run.
	* gfortran.dg/dec_char_conversion_in_data_3.f90: Likewise.

From-SVN: r277994
2019-11-09 00:55:45 +01:00
Iain Sandoe
9342ec4d7b [Darwin] Add include guard to darwin-protos.h
The Darwin protos header is missing an include guard, this adds one.

gcc/ChangeLog:

2019-11-08  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-protos.h: Add include quard.

From-SVN: r277993
2019-11-08 22:09:30 +00:00
Marek Polacek
65471f09e9 PR c++/92215 - flawed diagnostic for bit-field with non-integral type.
I noticed that for code like

  struct S {
    int *foo : 3;
  };

we generate nonsensical

  r.C:2:8: error: function definition does not declare parameters
      2 |   int *foo : 3;

It talks about a function because after parsing the declspecs of 'foo' we don't
see either ':' or "name :", so we think it's not a bit-field decl.  So we parse
the declarator and since a ctor-initializer begins with a ':', we try to parse
it as a function body, generating the awful diagnostic.  With this patch, we
issue:

  r.C:2:8: error: bit-field ‘foo’ has non-integral type ‘int*’
      2 |   int *foo : 3;

	* parser.c (cp_parser_member_declaration): Add a diagnostic for
	bit-fields with non-integral types.

	* g++.dg/diagnostic/bitfld4.C: New test.

From-SVN: r277991
2019-11-08 21:48:47 +00:00