Commit Graph

169265 Commits

Author SHA1 Message Date
James Clarke
b009eac157 crtbegin.S (__dso_handle): Put in .sdata/.sbss rather than .data/.bss so it can be accessed via...
* config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
	rather than .data/.bss so it can be accessed via gp-relative
	addressing.

From-SVN: r271977
2019-06-05 16:27:37 -06:00
Ian Lance Taylor
5a9422664e compiler: inline call expressions and function references
Scan inlinable methods for references to global variables and
    functions (forgot to do that earlier).
    
    Track all packages mentioned by exports (that should have been done
    earlier too).
    
    Record assembler name in export data, so that we can inline calls to
    non-Go functions.  Modify gccgoimporter code to skip assembler name.
    
    This increases the number of inlinable functions in the standard
    library from 215 to 439.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180677

From-SVN: r271976
2019-06-05 21:05:38 +00:00
Martin Sebor
388aa75412 gcc_diag-11.c: Skip until -Wformat-diag has been committed.
gcc/testsuite/ChangeLog:

	* gcc.dg/format/gcc_diag-11.c: Skip until -Wformat-diag has
	been committed.

From-SVN: r271975
2019-06-05 14:32:24 -06:00
Paolo Carlini
2212ae955a decl.c (smallest_type_location): New.
/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (smallest_type_location): New.
	(check_special_function_return_type): Use it.
	(grokdeclarator): Lkewise.

/testsuite
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/diagnostic/return-type-invalid-1.C: New.
	* g++.old-deja/g++.brendan/crash16.C: Adjust.
	* g++.old-deja/g++.law/ctors5.C: Likewise.

/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokdeclarator): Use locations[ds_friend]
	in one place.

/testsuite
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/other/friend4.C: Test locations too.
	* g++.dg/other/friend5.C: Likewise.
	* g++.dg/other/friend7.C: Likewise.

From-SVN: r271974
2019-06-05 20:07:01 +00:00
Martin Sebor
0ecf545c6e c-decl.c (start_decl): Adjust quoting and hyphenation in diagnostics.
gcc/c/ChangeLog:

	* c-decl.c (start_decl): Adjust quoting and hyphenation
	in diagnostics.
	(finish_decl): Same.
	(finish_enum): Same.
	(start_function): Same.
	(declspecs_add_type): Same.
	* c-parser.c (warn_for_abs): Same.
	* c-typeck.c (build_binary_op): Same.

gcc/c-family/ChangeLog:

	* c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
	(handle_alias_ifunc_attribute): Same.
	(handle_copy_attribute): Same.
	(handle_weakref_attribute): Same.
	(handle_nonnull_attribute): Same.
	* c-warn.c (warn_for_sign_compare): Same.
	(warn_for_restrict): Same.
	* c.opt: Same.

gcc/cp/ChangeLog:

	* call.c (build_conditional_expr_1): Adjust quoting and hyphenation.
	(convert_like_real): Same.
	(convert_arg_to_ellipsis): Same.
	* constexpr.c (diag_array_subscript): Same.
	* constraint.cc (diagnose_trait_expression): Same.
	* cvt.c (ocp_convert): Same.
	* decl.c (start_decl): Same.
	(check_for_uninitialized_const_var): Same.
	(grokfndecl): Same.
	(check_special_function_return_type): Same.
	(finish_enum_value_list): Same.
	(start_preparsed_function): Same.
	* parser.c (cp_parser_decl_specifier_seq): Same.
	* typeck.c (cp_build_binary_op): Same.
	(build_static_cast_1): Same.

gcc/lto/ChangeLog:

	* lto-common.c (lto_file_finalize): Adjust quoting and hyphenation.

gcc/objc/ChangeLog:

	* objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
	* objc-encoding.c (encode_gnu_bitfield): Same.

gcc/ChangeLog:

	* config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
	Adjust quoting and hyphenation.
	* convert.c (convert_to_real_1): Same.
	* gcc.c (driver_wrong_lang_callback): Same.
	(driver::handle_unrecognized_options): Same.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
	* opts-common.c (cmdline_handle_error): Same.
	(read_cmdline_option): Same.
	* opts-global.c (complain_wrong_lang): Same.
	(print_ignored_options): Same.
	(handle_common_deferred_options): Same.
	* pretty-print.h: Same.
	* print-rtl.c (debug_bb_n_slim): Same.
	* sched-rgn.c (make_pass_sched_fusion): Same.
	* tree-cfg.c (verify_gimple_assign_unary): Same.
	(verify_gimple_label): Same.
	* tree-ssa-operands.c (verify_ssa_operands): Same.
	* varasm.c (do_assemble_alias): Same.
	(assemble_alias): Same.

From-SVN: r271971
2019-06-05 12:30:48 -06:00
Richard Henderson
0191520b2d alpha.c (direct_return): Move down after struct machine_function definition...
* config/alpha/alpha.c (direct_return): Move down after
	struct machine_function definition; use saved frame_size;
	return bool.
	(struct machine_function): Add sa_mask, sa_size, frame_size.
	(alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
	(alpha_compute_frame_layout): ... new function.
	(TARGET_COMPUTE_FRAME_LAYOUT): New.
	(alpha_initial_elimination_offset): Use saved sa_size.
	(alpha_vms_initial_elimination_offset): Likewise.
	(alpha_vms_can_eliminate): Remove alpha_sa_size call.
	(alpha_expand_prologue): Use saved frame data.  Merge integer
	and fp register save loops.
	(alpha_expand_epilogue): Likewise.
	(alpha_start_function): Use saved frame data.
	* config/alpha/alpha-protos.h (direct_return): Update.
	(alpha_sa_size): Remove.

From-SVN: r271970
2019-06-05 20:16:18 +02:00
Nina Dinka Ranns
6f0926e644 ChangeLog for PR c++/63149
From-SVN: r271969
2019-06-05 14:12:53 -04:00
Nina Dinka Ranns
9b79d5d3ba PR c++/63149 - wrong auto deduction from braced-init-list
2019-06-04  Nina Dinka Ranns  <dinka.ranns@gmail.com>

    gcc/cp/
    * pt.c (listify_autos): Use non cv qualified auto_node in
    std::initializer_list<auto>.

    testsuite/
    * g++.dg/cpp0x/initlist-deduce2.C: New test.

From-SVN: r271968
2019-06-05 14:11:20 -04:00
David Edelsohn
781d39f26e aix-unwind.h (LR_REGNO): Rename to R_LR.
* config/rs6000/aix-unwind.h (LR_REGNO): Rename to R_LR.
(CR2_REGNO): Rename to R_CR2.
(XER_REGNO): Rename to R_XER.
(FIRST_ALTIVEC_REGNO): Rename to R_FIRST_ALTIVEC.
(VRSAVE_REGNO): Rename to R_VRSAVE.
(VSCR_REGNO): R_VSCR.

From-SVN: r271967
2019-06-05 12:45:57 -04:00
Segher Boessenkool
a637fd40b3 rs6000: Fix new testcase
At least with -m32 you need -maltivec if you #include <altivec.h>.


gcc/testsuite/
	* g++.target/powerpc/undef-bool-3.C: Add -maltivec to dg-options.

From-SVN: r271966
2019-06-05 18:21:07 +02:00
Martin Sebor
36b341276f c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
gcc/c-family/ChangeLog:

	* c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
	* c.opt (-Wformat-diag): Remove a spurious period.

gcc/testsuite/ChangeLog:

	* gcc.dg/weak/weak-19.c: New test.

From-SVN: r271965
2019-06-05 08:24:03 -06:00
Eric Botcazou
c613138b6c fold-const.c (extract_muldiv_1): Do not distribute a multiplication by a power-of-two value.
* fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
	multiplication by a power-of-two value.
	(fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
	and turn the modulo operation into a masking operation.

From-SVN: r271963
2019-06-05 14:14:40 +00:00
Sam Tebbs
2098f8ec2f [PATCH][GCC][AARCH64] Add tests for pointer authentication B-key
gcc/testsuite/ChangeLog
	* gcc.target/aarch64/return_address_sign_b_1.c: New file.
	* gcc.target/aarch64/return_address_sign_b_2.c: New file.
	* gcc.target/aarch64/return_address_sign_b_3.c: New file.
	* gcc.target/aarch64/return_address_sign_builtin.c: New file.
	* g++.target/aarch64/return_address_sign_ab_exception.C: New file.
	* g++.target/aarch64/return_address_sign_b_exception.C: New file.

From-SVN: r271954
2019-06-05 11:06:56 +00:00
Jakub Jelinek
d301c1a41d re PR debug/90733 (ICE in simplify_subreg, at simplify-rtx.c:6440)
PR debug/90733
	* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
	with VOIDmode inner operands.

	* gcc.dg/pr90733.c: New test.

From-SVN: r271952
2019-06-05 11:41:13 +02:00
Richard Biener
e0aecd6e9a re PR middle-end/90726 (exponential behavior on SCEV results everywhere)
2019-06-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/90726
	* tree-ssa-loop-niter.c (expand_simple_operations): Do not
	turn an expression graph into a tree.

	* gcc.dg/pr90726.c: Enable IVOPTs.

From-SVN: r271950
2019-06-05 08:26:36 +00:00
Jakub Jelinek
0b887b756a omp-expand.c (struct omp_region): Add has_lastprivate_conditional member.
* omp-expand.c (struct omp_region): Add has_lastprivate_conditional
	member.
	(expand_parallel_call): If region->inner->has_lastprivate_conditional,
	treat it like explicit monotonic schedule modifier.
	(expand_omp_for): Initialize has_lastprivate_conditional.
	If fd.lastprivate_conditional != 0, treat it like explicit monotonic
	schedule modifier.

From-SVN: r271949
2019-06-05 09:52:23 +02:00
Jakub Jelinek
28b3a77ca0 omp-low.c (lower_rec_input_clauses): For lastprivate conditional references...
* omp-low.c (lower_rec_input_clauses): For lastprivate conditional
	references, lookup in in hash map MEM_REF operand instead of the
	MEM_REF itself.
	(lower_omp_1): When looking for lastprivate conditional assignments,
	handle MEM_REFs with REFERENCE_TYPE operands.

	* testsuite/libgomp.c++/lastprivate-conditional-1.C: New test.
	* testsuite/libgomp.c++/lastprivate-conditional-2.C: New test.

From-SVN: r271948
2019-06-05 09:37:40 +02:00
Jakub Jelinek
9ea2bfca6a omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and on privatization clauses OMP_CLAUSE_DECL is...
* omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
	on privatization clauses OMP_CLAUSE_DECL is privatized by reference
	and references a VLA.  Handle references to non-VLAs if is_simd
	all privatization clauses like reductions.
	(lower_rec_input_clauses) <case do_private, case do_firstprivate>:
	If omp_is_reference, use always omp simd arrays and set
	DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
	fails, emit reference initialization.

	* g++.dg/vect/simd-1.cc: New test.

From-SVN: r271947
2019-06-05 09:36:30 +02:00
Hongtao Liu
5259a047c3 re PR target/89803 (Missing AVX512 intrinsics)
gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

	PR target/89803
	* config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
	_mm_mask_fpclass_sd_mask): New intrinsics.
	(_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
	* config/i386/i386-builtin.def
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
	New builtins.
	(__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
	* config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
	DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
	* config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
	case QI_FTYPE_V2SF_INT): Ditto.
	* config/i386/sse.md
	(define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
	Extended to insnstructions with mask operands.

gcc/testsuite
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

	PR target/89803
	* gcc.target/i386/avx-1.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/sse-13.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/sse-23.c (__builtin_ia32_fpclasssss,
	__builtin_ia32_fpclasssd): Removed.
	(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
	* gcc.target/i386/avx512dq-vfpclassss-2.c: New.
	* gcc.target/i386/avx512dq-vfpclasssd-2.c: New.
	* gcc.target/i386/avx512dq-vfpclassss-1.c (avx512f_test):
	Add test for _mm_mask_fpclass_ss_mask.
	* gcc.target/i386/avx512dq-vfpclasssd-1.c (avx512f_test):
	Add test for _mm_mask_fpclass_sd_mask.

From-SVN: r271946
2019-06-05 06:04:22 +00:00
Ian Lance Taylor
34f66a53b4 compiler: statically allocate constant interface data
When converting a constant to interface, such as interface{}(42)
    or interface{}("hello"), if the interface escapes, we currently
    generate a heap allocation to hold the constant value.
    
    This CL changes it to generate a static allocation instead, as
    the gc compiler does. This reduces allocations in such cases.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180277

From-SVN: r271945
2019-06-05 00:18:17 +00:00
GCC Administrator
abccc5d219 Daily bump.
From-SVN: r271944
2019-06-05 00:16:20 +00:00
Segher Boessenkool
ca72ad5cf7 rs6000: Update direct-move* testcases
This fixes some testcases that the last fifteen or so patches broke.
In all these cases we no longer need to set VSX_REG_ATTR: the default
value of "wa" is correct.


gcc/testsuite/
	* gcc.target/powerpc/direct-move-double1.c (VSX_REG_ATTR): Delete.
	* gcc.target/powerpc/direct-move-double2.c: Ditto.
	* gcc.target/powerpc/direct-move-float1.c: Ditto.
	* gcc.target/powerpc/direct-move-float2.c: Ditto.
	* gcc.target/powerpc/direct-move-vint1.c: Ditto.
	* gcc.target/powerpc/direct-move-vint2.c: Ditto.

From-SVN: r271940
2019-06-05 01:38:35 +02:00
Segher Boessenkool
cb152d128b rs6000: Remove wp and wq
wp becomes wa with isa p9tf, and wq is replaced by wa with isa p9kf.
To manage to do that, there is the new mode attribute VSisa.


	* config/rs6000/constraints.md (define_register_constraint "wp"):
	Delete.
	(define_register_constraint "wq"): Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
	* config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
	(define_mode_attr VSa): Delete.
	(define_mode_attr VSisa): New.
	(rest of file): Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271939
2019-06-05 01:37:38 +02:00
Segher Boessenkool
0e9449e69f rs6000: Add p9kf and p9tf isa values
This adds "p9kf" and "p9tf" isa values, to be used for instruction
alternatives where KFmode resp. TFmode is used.


	* config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
	(define_attr "enabled"): Handle those new isa values.

From-SVN: r271938
2019-06-05 01:36:49 +02:00
Segher Boessenkool
1f5aa628e3 rs6000: More simplification
A whole bunch of mode attributes are used only once.  Things are
easier to read if we just expand those patterns.  It's shorter, too.


	* config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
	(define_mode_attr VSr5): Delete.
	(define_mode_attr VStype_sqrt): Delete.
	(define_mode_iterator VSX_SPDP): Delete.
	(define_mode_attr VS_spdp_res): Delete.
	(define_mode_attr VS_spdp_insn): Delete.
	(define_mode_attr VS_spdp_type): Delete.
	(*vsx_sqrt<mode>2): Adjust.
	(vsx_<VS_spdp_insn>): Delete, split to...
	(vsx_xscvdpsp): ... this.  New.  And...
	(vsx_xvcvspdp): ... this.  New.  And...
	(vsx_xvcvdpsp): ... this.  New.

From-SVN: r271937
2019-06-05 01:36:01 +02:00
Segher Boessenkool
6cc8f68381 rs6000: <VSs> -> <sd>p
We don't need the <VSs> mode attribute, if we make <sd> work for V4SF
and V2DF just like for SF and DF.


	* config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
	and V2DF.
	* config/rs6000/vsx.md (define_mode_attr VSs): Delete.
	(rest of file): Adjust.

From-SVN: r271936
2019-06-05 01:35:13 +02:00
Segher Boessenkool
0d0863136f rs6000: ww->wa in testsuite
I should have factored this series better.  Oh well.  Near the end,
let's call it loose ends.


gcc/testsuite/
	* gcc.target/powerpc/direct-move-float1.c: Use "wa" instead of "ww"
	constraint.

From-SVN: r271935
2019-06-05 01:34:21 +02:00
Segher Boessenkool
f78c220953 rs6000: VSa->wa for some more cases
* config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
	(vsx_extract_<mode>_var): Ditto.

From-SVN: r271934
2019-06-05 01:33:18 +02:00
Segher Boessenkool
cd9346a157 rs6000: Simplify <VSa> for VSX_TI
When used in VSX_TI, <VSa> is always just "wa".


	* config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
	with just "wa".

From-SVN: r271933
2019-06-05 01:32:21 +02:00
Segher Boessenkool
72e3386e13 rs6000: ww -> wa
"ww" can always be "wa".


	* config/rs6000/constraints.md (define_register_constraint "ww"):
	Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_ww.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271932
2019-06-05 01:31:32 +02:00
Segher Boessenkool
4c5d4de7b5 rs6000: Remove Ftrad, Fvsx, Fs; add s and sd
This removes the <Ftrad>, <Fvsx>, and <Fs> mode attributes, and creates
new <sd> and <s> mode attributes instead.  <sd> is either "s" or "d",
depending on whether the mode is single-precision or double-precision
floating point; and <s> is either "s" or nothing.


	* config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
	(define_mode_attr sd): New.
	(define_mode_attr s): New.
	(define_mode_attr Ftrad): Delete.
	(define_mode_attr Fvsx): Delete.
	(define_mode_attr Fs): Delete.
	(rest of file): Use the new mode attributes.
	* config.rs6000/vsx.md: Use the new mode attributes.

From-SVN: r271931
2019-06-05 01:30:43 +02:00
Segher Boessenkool
7858932efc rs6000: Simplify <VSa> for VSX_W
When used in VSX_W, <VSa> is always just "wa".


	* config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
	with just "wa".

From-SVN: r271930
2019-06-05 01:29:31 +02:00
Segher Boessenkool
012f609e02 rs6000: Simplify VS[ra]* for VSX_[BDF]
When used in VSX_B, VSX_D, or VSX_F, both <VSr> and <VSa> are always
just "wa" now.  Similarly <VSr2> and <VSr3>.  The former of those is
always "wa", so we can remove the mode attribute completely.


	* config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
	(rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
	used with VSX_B, VSX_D, or VSX_F, with just "wa".

From-SVN: r271929
2019-06-05 01:27:57 +02:00
Paolo Carlini
ad441c263d decl.c (grokdeclarator): Use declarator->id_loc in two additional places.
/cp
2019-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokdeclarator): Use declarator->id_loc in two
	additional places.

/testsuite
2019-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/concepts/pr60573.C: Test locations too.
	* g++.dg/cpp0x/deleted13.C: Likewise.
	* g++.dg/parse/error29.C: Likewise.
	* g++.dg/parse/qualified4.C: Likewise.
	* g++.dg/template/crash96.C Likewise.
	* g++.old-deja/g++.brendan/crash22.C Likewise.
	* g++.old-deja/g++.brendan/crash23.C Likewise.
	* g++.old-deja/g++.law/visibility10.C Likewise.
	* g++.old-deja/g++.other/decl5.C: Likewise.

From-SVN: r271928
2019-06-04 23:10:56 +00:00
Bill Schmidt
e756e900e9 re PR target/78263 (Compile failure with AltiVec library on PPC64le and -std=c++11 flag)
[gcc]

2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/78263
	* config/rs6000/altivec.h: Don't #define vector, pixel, bool for
	C++ with strict ANSI requirements.

[gcc/testsuite]

2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/78263
	* g++.target/powerpc: New directory.
	* g++.target/powerpc/powerpc.exp: New test driver.
	* g++.target/powerpc/undef-bool-3.C: New.

From-SVN: r271927
2019-06-04 21:52:32 +00:00
Marc Glisse
4a28e1f113 Simplify loop size when step=1
2019-06-04  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
	computations when step is 1.

From-SVN: r271926
2019-06-04 20:39:32 +00:00
Segher Boessenkool
8d3620baab rs6000: wf -> wa
"wf" is just "wa".


	* config/rs6000/constraints.md (define_register_constraint "wf"):
	Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_wf.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271921
2019-06-04 18:51:53 +02:00
Andrew Pinski
10078f3e1d AARCH64: ILP32: Fix aarch64_asan_shadow_offset
aarch64_asan_shadow_offset is using the wrong
offset for ILP32.  Change it to be a decent one.

ChangeLog:
* config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
Fix ILP32 value.

From-SVN: r271920
2019-06-04 09:34:31 -07:00
Segher Boessenkool
85949949f2 rs6000: wd -> wa
"wd" is just "wa".


	* config/rs6000/constraints.md (define_register_constraint "wd"):
	Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_wd.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271919
2019-06-04 18:32:25 +02:00
Segher Boessenkool
1598bfb078 rs6000: Delete Fv2
<Fv2> always is "wa".


	* config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
	(rest of file): Adjust.

From-SVN: r271918
2019-06-04 18:31:34 +02:00
Segher Boessenkool
11d7bd360e rs6000: Delete VS_64reg
<VS_64reg> now always is "wa".  Make that simplification.


	* config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
	(*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
	(vsx_splat_<mode>_reg): Adjust.

From-SVN: r271917
2019-06-04 18:30:47 +02:00
Segher Boessenkool
cc998fd5f4 rs6000: ws -> wa
"ws" is just "wa".


	* config/rs6000/constraints.md (define_register_constraint "ws"):
	Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_ws.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271916
2019-06-04 18:29:33 +02:00
Segher Boessenkool
208a040511 rs6000: wv -> v+p7v
"wv" is "v", but only if VSX is enabled (otherwise it's NO_REGS).  So
this patch sets "isa" "p7v" to all alternatives that used "wv" before
(and that do not already need a later ISA), and changes the constraint.


	* config/rs6000/constraints.md (define_register_constraint "wv"):
	Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_wv.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271915
2019-06-04 18:28:46 +02:00
Segher Boessenkool
e670418ff1 rs6000: wi->wa, wt->wa
"wi" and "wt" mean just the same as "wa" these days.  Change them to
the simpler name.


	* config/rs6000/constraints.md (define_register_constraint "wi"):
	Delete.
	(define_register_constraint "wt"): Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
	(rs6000_init_hard_regno_mode_ok): Adjust.
	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
	RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
	* config/rs6000/rs6000.md: Adjust.
	* config/rs6000/vsx.md: Adjust.
	* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271914
2019-06-04 18:27:45 +02:00
Szabolcs Nagy
e8c470690a aarch64: fix asm visibility for extern symbols
Commit r271869 broke visibility declarations in asm for extern symbols, because
the new ASM_OUTPUT_EXTERNAL hook failed to call the default hook for elf.

gcc/ChangeLog:

	* config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
	const.
	* config/aarch64/aarch64.c (aarch64_asm_output_external): Call
	default_elf_asm_output_external.

From-SVN: r271913
2019-06-04 16:16:52 +00:00
Nathan Sidwell
4ebcf1c219 [C++ PATCH] structure tag lookup
https://gcc.gnu.org/ml/gcc-patches/2019-06/msg00179.html
	* name-lookup.c (lookup_type_scope_1): Reimplement, handle local
	and namespace scopes separately.

From-SVN: r271912
2019-06-04 15:17:29 +00:00
Harald van Dijk
7b9202ea9e PR c++/60531 - Wrong error about unresolved overloaded function
For PR60531, GCC wrongly rejects function templates with explicitly
specified template arguments as overloaded. They are resolved by
resolve_nondeduced_context, which is normally called by
cp_default_conversion through decay_conversion, but the latter have
extra effects making them unusable here. Calling the former directly
does work.

	* typeck.c (cp_build_binary_op): See if overload can be resolved.
	(cp_build_unary_op): Ditto.

	* g++.dg/template/operator15.C: New test.

From-SVN: r271910
2019-06-04 10:48:38 -04:00
Jason Merrill
ecdcd56094 Reduce accumulated garbage in constexpr evaluation.
We want to evaluate the arguments to a call before looking into the cache so
that we have constant values, but if we then find the call in the cache we
end up with a TREE_LIST that we don't end up using; in highly recursive
constexpr evaluation this ends up being a large proportion of the garbage
generated.

The cxx_eval_increment_expression hunk is less important, but it's an easy
tweak; we only use the MODIFY_EXPR to evaluate it, so after that it's
garbage.

	* constexpr.c (cxx_eval_call_expression): ggc_free any bindings we
	don't save.
	(cxx_eval_increment_expression): ggc_free the MODIFY_EXPR after
	evaluating it.

From-SVN: r271909
2019-06-04 10:47:40 -04:00
Martin Liska
c790e3ece6 Remove dead code in IPA ICF.
2019-06-04  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (INCLUDE_LIST): Remove.
	(sem_item_optimizer::execute): Remove call to init_wpa.
	* ipa-icf.h (init_wpa): Remove.

From-SVN: r271908
2019-06-04 14:39:47 +00:00
Jakub Jelinek
7855700e63 gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate conditional on combined for simd.
* gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
	conditional on combined for simd.
	* omp-low.c (struct omp_context): Add combined_into_simd_safelen0
	member.
	(lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
	constructs, don't remove lastprivate_conditional_map, but instead set
	ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
	to parent construct temporaries.
	(lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
	like !ctx->lastprivate_conditional_map.
	(lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
	use up->outer context instead of up.
	* omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
	gimple_omp_for_combined_p.
	(expand_omp_for_static_nochunk): Likewise.
	(expand_omp_for_static_chunk): Add forgotten cond_var bump that was
	probably moved over into expand_omp_for_generic rather than being copied
	there.
gcc/cp/
	* cp-tree.h (CP_OMP_CLAUSE_INFO): Allow for any clauses up to _condvar_
	instead of only up to linear.
gcc/testsuite/
	* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
	a sorry_at on any of the clauses.
libgomp/
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-7.c: New test.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-8.c: New test.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-9.c: New test.
	* testsuite/libgomp.c-c++-common/lastprivate-conditional-10.c: New test.

From-SVN: r271907
2019-06-04 14:49:03 +02:00