Commit Graph

173666 Commits

Author SHA1 Message Date
Harald Anlauf 6573d760cd re PR fortran/70853 (ICE on pointing to null, in gfc_add_block_to_block, at fortran/trans.c:1599)
2019-12-18  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/70853
	* trans-expr.c (gfc_trans_pointer_assignment): Reject bounds
	remapping if pointer target is NULL().

	PR fortran/70853
	* gfortran.dg/pr70853.f90: New test.

From-SVN: r279527
2019-12-18 16:34:06 +00:00
Wilco Dijkstra e986ce3bd6 [AArch64] Fixup core tunings
Several tuning settings in cores.def are not consistent.
Set the tuning for Cortex-A76AE and Cortex-A77 to neoversen1 so
it is the same as for Cortex-A76 and Neoverse N1.
Set the tuning for Neoverse E1 to cortexa73 so it's the same as for
Cortex-A65. Set the scheduler for Cortex-A65 and Cortex-A65AE to
cortexa53.

    gcc/
	* config/aarch64/aarch64-cores.def: 
	("cortex-a76ae"): Use neoversen1 tuning.
	("cortex-a77"): Likewise.
	("cortex-a65"): Use cortexa53 scheduler.
	("cortex-a65ae"): Likewise.
	("neoverse-e1"): Use cortexa73 tuning.

From-SVN: r279526
2019-12-18 16:11:52 +00:00
Martin Jambor 8bda7ce8ec IPA-CP: Remove bogus static keyword (PR 92971)
2019-12-18  Martin Jambor  <mjambor@suse.cz>

	PR ipa/92971
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
          definition of values, release memory on exit.

	testsuite/
	* gcc.dg/ipa/ipcp-agg-12.c: New test.

From-SVN: r279525
2019-12-18 17:08:09 +01:00
Georg-Johann Lay 15ef05444f * config/avr/avr-mcus.def: Typo.
From-SVN: r279524
2019-12-18 16:02:00 +00:00
Jan Hubicka c7ac9a0c7e ipa-param-manipulation.h (get_original_index): Declare.
* ipa-param-manipulation.h (get_original_index): Declare.
	* ipa-param-manipulation.c (ipa_param_adjustments::get_original_index):
	New member function.
	* ipa-prop.c (ipcp_get_parm_bits): New function.
	* ipa-prop.h (ipcp_get_parm_bits): Declare.
	* tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h,
	ipa-utils.h and ipa-prop.h
	(get_default_value): Use ipcp_get_parm_bits.

	* gcc.dg/ipa/ipa-bit-cp.c: New testcase.
	* gcc.dg/ipa/ipa-bit-cp-1.c: New testcase.
	* gcc.dg/ipa/ipa-bit-cp-2.c: New testcase.

Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r279523
2019-12-18 13:21:51 +00:00
Jason Merrill 1ad431f95c PR c++/12333 - X::~X() with implicit this->.
this->X::~X() is handled by finish_class_member_access_expr and its
lookup_destructor subroutine; let's use it in cp_parser_lookup_name for the
case where this-> is implicit.

I tried replacing the other destructor code here with just the call to
lookup_destructor, but that regressed handling of naming the destructor
outside a non-static member function.

	* parser.c (cp_parser_lookup_name): Use lookup_destructor.
	* typeck.c (lookup_destructor): No longer static.

From-SVN: r279522
2019-12-18 07:44:34 -05:00
Andrew Stubbs 542803c9ad Fix vect/pr65947-8.c testcase for amdgcn.
2019-12-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/vect/pr65947-8.c: Change pass conditions for amdgcn.

From-SVN: r279521
2019-12-18 11:47:26 +00:00
Jakub Jelinek 5afa32b898 re PR lto/92972 (gcc/lto-wrapper.c:443: identical branches ?)
PR lto/92972
	* lto-wrapper.c (merge_and_complain): Use just "-fno-pie" instead of
	big ? "-fno-pie" : "-fno-pie".  Formatting fixes.  Fix comment typo.

From-SVN: r279520
2019-12-18 12:15:43 +01:00
Eric Botcazou e3371908b3 trans.c (Pragma_to_gnu): Push a diagnostics state for pragma Warnings (Off) before turning off all the...
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Push a
	diagnostics state for pragma Warnings (Off) before turning off all
	the warnings and only pop it for pragma Warnings (On).

From-SVN: r279519
2019-12-18 09:51:14 +00:00
Justin Squirek d4a45898bc [Ada] Missing accessibility check on access discriminants
2019-12-18  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* sem_ch6.adb (Analyze_Function_Return): Modify handling of
	extended return statements to check accessibility of access
	discriminants.
	(Check_Aggregate_Accessibility): Removed.
	(Check_Return_Obj_Accessibility): Added to centralize checking
	of return aggregates and subtype indications in the case of an
	extended return statement.

From-SVN: r279518
2019-12-18 07:16:22 +00:00
Arnaud Charlet c7e3d0694b [Ada] Fix uninitialized out parameter in s-regpat.adb
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/s-regpat.adb (Parse_Literal, Parse_Piece): Ensure
	Expr_Flags is always fully initialized.

From-SVN: r279517
2019-12-18 07:16:17 +00:00
Arnaud Charlet 19f0436b8f [Ada] Atomic aspect on formal generic params now supported in Ada 202x mode
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/s-atopar.ads, libgnat/s-atopex.ads (Atomic_Type): Can
	now be marked Atomic. This requires marking the unit Ada 202x.

From-SVN: r279516
2019-12-18 07:16:12 +00:00
Arnaud Charlet 5815f92a08 [Ada] Simplify Big_Integer and Big_Real interface
2019-12-18  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
	libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb: Replace
	Optional_Big_* types by a simple check and exception raise in
	Get_Bignum.
	(Set_Bignum): Arg should be 'out' and not 'in out'.
	(Invalid_Big_Integer, No_Big_Real): Removed.
	(Is_Valid): Now convention Intrinsic.

From-SVN: r279515
2019-12-18 07:15:52 +00:00
Piotr Trojanek 16b5491430 [Ada] Fix three-letter typos like "sss" in comments and docs
2019-12-18  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_rm/obsolescent_features.rst,
	doc/gnat_ugn/gnat_and_program_execution.rst, exp_attr.adb,
	exp_ch9.adb, init.c, libgnat/s-valrea.adb, par-ch6.adb,
	sem_attr.adb, sem_ch4.adb, sem_util.ads: Fix trivial typos.
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

From-SVN: r279514
2019-12-18 07:15:22 +00:00
Gary Dismukes a760d14246 [Ada] Missing accessibility actuals on calls to interface conversion functions
2019-12-18  Gary Dismukes  <dismukes@adacore.com>

gcc/ada/

	* sem_res.adb (Resolve_Type_Conversion): Add handling for access
	types with designated operand and target types that are
	referenced in places that have a limited view of an interface
	type by retrieving the nonlimited view when it exists.  Add ???
	comments related to missing limited_with_clause handling for
	Target (in the non-access case).

From-SVN: r279513
2019-12-18 07:14:59 +00:00
Ed Schonberg 64c6e3673a [Ada] AI12-0282: shared variable control aspects on formal types
2019-12-18  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada_2020
	the keyword WITH can indicate the start of aspect specifications
	and not a private type extension.
	* sem_ch12.adb (Analyze_Formal_Type): Indicate that it is a
	first subtype.
	(Instantiate_Type): New procedure
	Check_Shared_Variable_Control_Aspects to verify matching rules
	between formal and actual types. Note that an array type with
	aspect Atomic_Components is considered compatible with an array
	type whose component type is Atomic, even though the array types
	do not carry the same aspect.
	* sem_ch13.adb (Analyze_One_Aspect): Allow shared variable
	control aspects to appear on formal types.
	(Rep_Item_Too_Early): Exclude aspects on formal types.
	* sem_prag.adb (Mark_Type): Handle properly pragmas that come
	from aspects on formal types.
	(Analyze_Pragma, case Atomic_Components): Handle formal types.

From-SVN: r279512
2019-12-18 07:14:54 +00:00
Eric Botcazou 2b0451b772 [Ada] Minor housekeeping work in Create_Standard
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* cstand.adb (Create_Standard): Remove duplicate line and
	adjust.

From-SVN: r279511
2019-12-18 07:14:49 +00:00
Javier Miranda 1198a9351f [Ada] Reserving switch d_K for known problem isssues detection
2019-12-18  Javier Miranda  <miranda@adacore.com>

gcc/ada/

	* debug.adb: Document -gnatd_K as a reserved switch for the
	detection of known problem issues of previous releases.

From-SVN: r279510
2019-12-18 07:14:44 +00:00
Ghjuvan Lacambre fa1072e725 [Ada] Reject aspect specifications on number constants
2019-12-18  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

	* par-ch13.adb: Check if declarations allow aspect
	specifications.

From-SVN: r279509
2019-12-18 07:14:39 +00:00
Piotr Trojanek 057aa8d8b7 [Ada] Einfo: fix typo in comment
2019-12-18  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* einfo.ads (Is_Ghost_Entity): Fix typo in comment.

From-SVN: r279508
2019-12-18 07:14:28 +00:00
Eric Botcazou 3a4425fd9a [Ada] Do not propagate Object_Size onto Size for composite types
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* layout.adb (Layout_Type): In the case of composite types, do
	not copy the Esize onto the RM_Size if the latter is not set.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>:
	Also cap the alignment if an Object_Size clause has been
	specified.  Pass VAR_DECL in the call to validate_size for the
	Esize of a type.
	(validate_size): Be prepared to give an error on an Object_Size
	clause.

From-SVN: r279507
2019-12-18 07:14:23 +00:00
Eric Botcazou c846eedd56 [Ada] Document the introduction of the Object_Size attribute in Ada 2020
2019-12-18  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* einfo.ads (Handling of Type'Size Value): Add references to the
	introduction of Object_Size in Ada 2020.
	* sem_eval.adb (Subtypes_Statically_Match): Likewise.

From-SVN: r279506
2019-12-18 07:14:18 +00:00
Bob Duff af552cd02f [Ada] Wrong error on hidden must-override primitive
2019-12-18  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_ch3.adb (Derive_Subprogram): Do not set the
	Requires_Overriding flag in the above-mentioned case.

From-SVN: r279505
2019-12-18 07:14:13 +00:00
Bob Duff 4f691cb20d [Ada] Bad "already use-visible" warning re: use in private part
2019-12-18  Bob Duff  <duff@adacore.com>

gcc/ada/

	* sem_ch8.adb (Note_Redundant_Use): It was already checking for
	a use clause in the visible part of the child. Add an additional
	check for a use clause in the context clause of the child.

From-SVN: r279504
2019-12-18 07:14:07 +00:00
GCC Administrator 63fdce8543 Daily bump.
From-SVN: r279483
2019-12-18 00:16:49 +00:00
Martin Sebor e8f1ade269 PR c++/61339 - add warning for mismatch between struct and class
gcc/c-family/ChangeLog:

	PR c++/61339
	* c.opt (-Wmismatched-tags, -Wredundant-tags): New options.

gcc/cp/ChangeLog:

	PR c++/61339
	* parser.c (cp_parser_maybe_warn_enum_key): New function.
	(class_decl_loc_t): New class.
	(cp_parser_elaborated_type_specifier): Call
	cp_parser_maybe_warn_enum_key.
	(cp_parser_class_head): Call cp_parser_check_class_key.
	(cp_parser_check_class_key): Add arguments.  Call class_decl_loc_t::add.
	(c_parse_file): Call class_decl_loc_t::diag_mismatched_tags.

gcc/testsuite/ChangeLog:

	PR c++/61339
	* g++.dg/warn/Wmismatched-tags.C: New test.
	* g++.dg/warn/Wredundant-tags.C: New test.
	* g++.dg/pch/Wmismatched-tags.C: New test.
	* g++.dg/pch/Wmismatched-tags.Hs: New test header.

gcc/ChangeLog:

	PR c++/61339
	* doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document
	new C++ options.

From-SVN: r279480
2019-12-17 16:53:07 -07:00
Michael Meissner 54ba911fd1 Generate PADDI to add large constants if -mcpu=future.
2019-12-12  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (add_operand): Allow eI constants.
	* config/rs6000/rs6000.md (add<mode>3): Add alternative to
	generate PADDI for 34-bit constants if -mcpu=future.

From-SVN: r279476
2019-12-17 22:21:35 +00:00
Michael Meissner ef759fd121 Use PLI to load up 32-bit SImode constants if -mcpu=future.
2019-12-17  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.md (movsi_internal1): Add alternative to
	use PLI to load up 32-bit constants if -mcpu=future.

From-SVN: r279475
2019-12-17 22:16:40 +00:00
Michael Meissner a50e038893 Use PLI to load up large constants if -mcpu=future.
2019-12-17  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (num_insns_constant_gpr): Return 1 if the
	constant can be loaded with PLI if -mcpu=future.
	* config/rs6000/rs6000.md (movdi_internal64): Add alternative to
	use PLI to load up 34-bit constants if -mcpu=future.

From-SVN: r279474
2019-12-17 22:11:55 +00:00
Jason Merrill 4f05d85a22 PR c++/79592 - missing explanation of invalid constexpr.
We changed months back to use the pre-generic form for constexpr evaluation,
but explain_invalid_constexpr_fn was still using DECL_SAVED_TREE.  This
mostly works, but misses some issues due to folding.  So with this patch we
save the pre-generic form of constexpr functions even when we know they
can't produce a constant result.

	* constexpr.c (register_constexpr_fundef): Do store the body of a
	template instantiation that is not potentially constant.
	(explain_invalid_constexpr_fn): Look it up.
	(cxx_eval_call_expression): Check fundef->result.

From-SVN: r279473
2019-12-17 16:46:40 -05:00
Jason Merrill 9c7b2b0ba8 PR c++/92576 - redeclaration of variable template.
The variable templates patch way back when forgot to add handling here.  The
simplest answer seems to be recursing to the underlying declaration.

	* decl.c (redeclaration_error_message): Recurse for variable
	templates.

From-SVN: r279472
2019-12-17 16:46:11 -05:00
Jason Merrill 490a091fa7 * name-lookup.c (get_std_name_hint): Add std::byte.
From-SVN: r279471
2019-12-17 16:45:19 -05:00
Jakub Jelinek 775670d792 re PR c++/59655 (incorrect diagnostic on templatized function with lambda parameter)
PR c++/59655
	* pt.c (push_tinst_level_loc): If limit_bad_template_recursion,
	set TREE_NO_WARNING on tldcl.
	* decl2.c (no_linkage_error): Treat templates with TREE_NO_WARNING
	as defined during error recovery.

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

From-SVN: r279470
2019-12-17 22:40:14 +01:00
Jakub Jelinek 7c32b0d5cc re PR target/92841 (Optimize -fstack-protector-strong code generation a bit)
PR target/92841
	* config/i386/i386.md (@stack_protect_set_1_<mode>,
	@stack_protect_test_1_<mode>): Use output_asm_insn.
	(*stack_protect_set_2_<mode>, *stack_protect_set_3): New define_insns
	and corresponding define_peephole2s.

	* gcc.target/i386/pr92841.c: New test.

From-SVN: r279468
2019-12-17 21:40:01 +01:00
Andrew Stubbs 7ec85098eb Revert "Fix vector testcases for amdgcn."
Apologies everyone. :-(

From-SVN: r279466
2019-12-17 16:46:27 +00:00
Andrew Stubbs 62064ec009 Fix vector testcases for amdgcn.
2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

	gcc/testsuite/
	* gcc.dg/vect/pr65947-8.c: Change pass conditions for amdgcn.
	* gcc.dg/vect/vect-multitypes-11.c: Ensure that main isn't vectorized.
	* gcc.dg/vect/vect-multitypes-12.c: Likewise.

From-SVN: r279465
2019-12-17 16:37:09 +00:00
Jan Hubicka 634c5bcafa symtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external.
* symtab.c (symtab_node::get_partitioning_class): Aliases of external
	symbols are external.

From-SVN: r279464
2019-12-17 15:57:25 +00:00
Christophe Lyon e24f6408df [ARM] Add support for -mpure-code in thumb-1 (v6m)
This patch extends support for -mpure-code to all thumb-1 processors,
by removing the need for MOVT.

Symbol addresses are built using upper8_15, upper0_7, lower8_15 and
lower0_7 relocations, and constants are built using sequences of
movs/adds and lsls instructions.

The extension of the *thumb1_movhf pattern uses always the same size
(6) although it can emit a shorter sequence when possible. This is
similar to what *arm32_movhf already does.

CASE_VECTOR_PC_RELATIVE is now false with -mpure-code, to avoid
generating invalid assembly code with differences from symbols from
two different sections (the difference cannot be computed by the
assembler).

Tests pr45701-[12].c needed a small adjustment to avoid matching
upper8_15 when looking for the r8 register.

Test no-literal-pool.c is augmented with __fp16, so it now uses
-mfp16-format=ieee.

Test thumb1-Os-mult.c generates an inline code sequence with
-mpure-code and computes the multiplication by using a sequence of
add/shift rather than using the multiply instruction, so we skip it in
presence of -mpure-code.

With -mcpu=cortex-m0, the pure-code/no-literal-pool.c fails because
code like:
static char *p = "Hello World";
char *
testchar ()
{
  return p + 4;
}

generates 2 indirections (I removed non-essential directives/code)
          .section        .rodata
	  .LC0:
	  .ascii  "Hello World\000"
	  .data
	  p:
	  .word   .LC0
	  .section        .rodata
	  .LC2:
	  .word   p
	  .section .text,"0x20000006",%progbits
	  testchar:
	  push    {r7, lr}
	  add     r7, sp, #0
	  movs    r3, #:upper8_15:#.LC2
	  lsls    r3, #8
	  adds    r3, #:upper0_7:#.LC2
	  lsls    r3, #8
	  adds    r3, #:lower8_15:#.LC2
	  lsls    r3, #8
	  adds    r3, #:lower0_7:#.LC2
	  ldr     r3, [r3]
	  ldr     r3, [r3]
	  adds    r3, r3, #4
	  movs    r0, r3
	  mov     sp, r7
	  @ sp needed
	  pop     {r7, pc}

By contrast, when using -mcpu=cortex-m4, the code looks like:
        .section        .rodata
	.LC0:
	.ascii  "Hello World\000"
	.data
	p:
	.word   .LC0
	testchar:
	push    {r7}
	add     r7, sp, #0
	movw    r3, #:lower16:p
	movt    r3, #:upper16:p
	ldr     r3, [r3]
	adds    r3, r3, #4
	mov     r0, r3
	mov     sp, r7
	pop     {r7}
	bx      lr

I haven't found yet how to make code for cortex-m0 apply upper/lower
relocations to "p" instead of .LC2. The current code looks functional,
but could be improved.

2019-10-18  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/
	* config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype.
	* config/arm/arm.c (arm_option_check_internal): Remove restriction
	on MOVT for -mpure-code.
	(thumb1_gen_const_int): New function.
	(thumb1_legitimate_address_p): Support -mpure-code.
	(thumb1_rtx_costs): Likewise.
	(thumb1_size_rtx_costs): Likewise.
	(arm_thumb1_mi_thunk): Likewise.
	* config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise.
	* config/arm/thumb1.md (thumb1_movsi_symbol_ref): New.
	(*thumb1_movhf): Support -mpure-code.

	gcc/testsuite/
	* gcc.target/arm/pr45701-1.c: Adjust for -mpure-code.
	* gcc.target/arm/pr45701-2.c: Likewise.
	* gcc.target/arm/pure-code/no-literal-pool.c: Add tests for
	__fp16.
	* gcc.target/arm/pure-code/pure-code.exp: Remove thumb2 and movt
	conditions.
	* gcc.target/arm/thumb1-Os-mult.c: Skip if -mpure-code is used.

From-SVN: r279463
2019-12-17 16:43:07 +01:00
Mihail Ionescu 6226f5925f Add myself to write after approval.
2019-12-17  Mihail Ionescu  <mihail.ionescu@arm.com>

	* MAINTAINERS (write_after_approval): Add myself.

From-SVN: r279461
2019-12-17 14:19:22 +00:00
Andrew Stubbs 8354bb0ebe Add pointer to PR92772
2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772
	in the comments.

From-SVN: r279460
2019-12-17 13:01:36 +00:00
Andrew Stubbs b92d1124e1 Add extract_last for amdgcn
2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn-valu.md (extract_last_<mode>): New expander.
	(fold_extract_last_<mode>): New expander.

	gcc/testsuite/
	* lib/target-supports.exp
	(check_effective_target_vect_fold_extract_last): Add amdgcn.

From-SVN: r279459
2019-12-17 13:01:25 +00:00
Andrew Stubbs 34bac26458 Add clz and ctz for amdgcn
2019-12-17  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
	(CTZ_DEFINED_VALUE_AT_ZERO): Define.
	* config/gcn/gcn.md (s_mnemonic): Add clz and ctz.
	(expander): Likewise.
	(countzeros): New code iterator.
	(<expander>si2): New insn pattern.
	(<expander>di2): New insn pattern.

From-SVN: r279458
2019-12-17 13:01:16 +00:00
Tobias Burnus 0b8499a480 libgomp/openacc.f90 – clean-up public/private attributes
* config/accel/openacc.f90 (module openacc_kinds): Use 'PUBLIC' to mark
        all symbols as public except for the 'use …, only' imported symbol,
        which is private. 
        (module openacc): Default to 'PRIVATE' to exclude openacc_internal; mark
        all symbols from module openacc_kinds as PUBLIC
        * openacc.f90: Add comment with crossref to that file and openmp_lib.h;
        fix comment typo.
        * openacc_lib.h (acc_device_gcn): Add this PARAMETER.

From-SVN: r279456
2019-12-17 12:19:32 +01:00
Jakub Jelinek e55cdb1455 re PR target/92962 (Documentation: x86 Options - znver2 missing RDPID and WBNOINVD)
PR target/92962
	* common/config/i386/i386-common.c (processor_alias_table): Formatting
	fixes.
	* doc/invoke.texi (bdver3, bdver4, znver1): Add missing closing paren.
	(znver2): Likewise.  Add RDPID and WBNOINVD, remove spurious comma
	before CLWB.

From-SVN: r279455
2019-12-17 10:23:59 +01:00
Hongyu Wang da86c5af20 Add abs pattern to handle {si,di} mode abs to avoid pmax/cmove conversion.
2019-12-17  Hongyu Wang  <hongyu.wang@intel.com>

gcc/
	PR target/92651
	* config/i386/i386.h (TARGET_EXPAND_ABS): New macro.
	* config/i386/x86-tune.def (X86_TUNE_EXPAND_ABS): New.
	* config/i386/i386.md (abs<SWI48x>2): New define_expand.

gcc/testsuite
	* gcc.target/i386/pr92651.c: New testcase.

From-SVN: r279452
2019-12-17 01:50:35 +00:00
H.J. Lu 62dd2904f0 Use add for a = a + b and a = b + a when possible.
Since except for Bonnell,

01 fb                   add    %edi,%ebx

is faster and shorter than

8d 1c 1f                lea    (%rdi,%rbx,1),%ebx

we should use add for a = a + b and a = b + a when possible if not
optimizing for Bonnell.

Tested on x86-64.

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

gcc/

	PR target/92807
	* config/i386/i386.c (ix86_lea_outperforms): Check !TARGET_BONNELL.
	(ix86_avoid_lea_for_addr): When not optimizing for Bonnell, use add
	for a = a + b and a = b + a.

gcc/testsuite/

	PR target/92807
	* gcc.target/i386/pr92807-1.c: New test.

From-SVN: r279451
2019-12-17 01:29:09 +00:00
GCC Administrator d187dab387 Daily bump.
From-SVN: r279450
2019-12-17 00:16:12 +00:00
Jason Merrill 4953b79025 PR c++/91165 - verify_gimple ICE with cached constexpr.
It seems we need to unshare even non-CONSTRUCTOR expressions that we are
going to stick in the constexpr_call_table, so we don't end up sharing the
same e.g. ADDR_EXPR between two different functions.  I now think I
understand why unsharing CONSTRUCTOR arguments was improving memory
performance: separating the arguments from the caller function allows the
caller function to be GC'd better.  But it occurs to me that we don't need
to unshare until we decide that we're evaluating and caching this call, so
we can avoid the CONSTRUCTOR unshare/free pair for tentative arguments.
Freeing the tentative TREE_VEC still seems worth doing, so free_bindings
isn't going away entirely.

	* constexpr.c (cxx_bind_parameters_in_call): Don't unshare.
	(cxx_eval_call_expression): Unshare all args if we're caching.

From-SVN: r279447
2019-12-16 18:25:08 -05:00
Martin Sebor 126036359a PR middle-end/92952 - gfortran.dg/lto/pr87689 FAILs at -O2
gcc/ChangeLog:
	* builtins.c (compute_objsize): Adjust offset by the array low bound.

From-SVN: r279445
2019-12-16 15:24:15 -07:00
David Malcolm a326a3dedb Add pp_write_text_as_html_like_dot_to_stream
gcc/ChangeLog:
	* pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New
	function.
	* pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl.

From-SVN: r279444
2019-12-16 17:07:45 +00:00