- 18 Dec, 2019 4 commits
-
-
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
Eric Botcazou committed -
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
Bob Duff committed -
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
Bob Duff committed -
From-SVN: r279483
GCC Administrator committed
-
- 17 Dec, 2019 22 commits
-
-
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
Martin Sebor committed -
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
Michael Meissner committed -
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
Michael Meissner committed -
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
Michael Meissner committed -
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
Jason Merrill committed -
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
Jason Merrill committed -
From-SVN: r279471
Jason Merrill committed -
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
Jakub Jelinek committed -
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
Jakub Jelinek committed -
Apologies everyone. :-( From-SVN: r279466
Andrew Stubbs committed -
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
Andrew Stubbs committed -
* symtab.c (symtab_node::get_partitioning_class): Aliases of external symbols are external. From-SVN: r279464
Jan Hubicka committed -
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
Christophe Lyon committed -
2019-12-17 Mihail Ionescu <mihail.ionescu@arm.com> * MAINTAINERS (write_after_approval): Add myself. From-SVN: r279461
Mihail Ionescu committed -
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
Andrew Stubbs committed -
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
Andrew Stubbs committed -
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
Andrew Stubbs committed -
* 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
Tobias Burnus committed -
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
Jakub Jelinek committed -
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
Hongyu Wang committed -
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
H.J. Lu committed -
From-SVN: r279450
GCC Administrator committed
-
- 16 Dec, 2019 14 commits
-
-
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
Jason Merrill committed -
gcc/ChangeLog: * builtins.c (compute_objsize): Adjust offset by the array low bound. From-SVN: r279445
Martin Sebor committed -
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
David Malcolm committed -
It turns out we still used hardcoded register numbers for the CR fields in some cases, and they now use the wrong numbers since we renumbered most of the registers. So let's use the symbolic names, instead. * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of hardcoding the (old, expired) register number. (*mtcrfsi): Ditto. From-SVN: r279443
Segher Boessenkool committed -
contrib/ChangeLog: 2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config-list.mk: Add msp430-elfbare. gcc/ChangeLog: 2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config.gcc: s/msp430*-*-*/msp430-*-*. Handle msp430-*-elfbare. * config/msp430/msp430-devices.c (TARGET_SUBDIR): Define. (_MSPMKSTR): Define. (__MSPMKSTR): Define. (rest_of_devices_path): Use TARGET_SUBDIR value in string. * config/msp430/msp430.c (msp430_option_override): Error if -fuse-cxa-atexit is used when it has been disabled at configure time. * config/msp430/t-msp430: Define TARGET_SUBDIR when building msp430-devices.o. * doc/install.texi: Document msp430-*-elf and msp430-*-elfbare. * doc/invoke.texi: Update documentation about which path devices.csv is searched for. gcc/testsuite/ChangeLog: 2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * g++.dg/init/dso_handle1.C: Require cxa_atexit support. * g++.dg/init/dso_handle2.C: Likewise. * g++.dg/other/cxa-atexit1.C: Likewise. * gcc.target/msp430/msp430.exp: Update csv-using-installed.c test to handle msp430-elfbare configuration. libgcc/ChangeLog: 2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config.host: s/msp430*-*-elf/msp430-*-elf*. Override default "extra_parts" variable. * configure: Regenerate. * configure.ac: Disable TM clone registry by default for msp430-elfbare. From-SVN: r279442
Jozef Lawrynowicz committed -
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * errout.adb (Handle_Serious_Error): Disable the above-mentioned warnings. From-SVN: r279441
Bob Duff committed -
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * errout.adb, errout.ads: Improve comments. From-SVN: r279440
Bob Duff committed -
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * sem_util.ads: Minor comment fix. From-SVN: r279439
Bob Duff committed -
2019-12-16 Bob Duff <duff@adacore.com> gcc/ada/ * errout.ads, errout.adb (Is_Size_Too_Small_Message): Check for "size for" instead of "size for& too small, minimum allowed is ^". From-SVN: r279438
Bob Duff committed -
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Set only the RM_Size on the subtype built for a Component_Size clause when the component type is a biased integer type. From-SVN: r279437
Eric Botcazou committed -
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * socket.c: Shutdown warning. From-SVN: r279436
Arnaud Charlet committed -
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level. From-SVN: r279435
Arnaud Charlet committed -
2019-12-16 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * libgnat/s-aotase.adb, libgnat/s-aotase.ads, libgnat/s-atoope.ads, libgnat/s-atopar.adb, libgnat/s-atopar.ads, libgnat/s-atopex.adb, libgnat/s-atopex.ads: New files. * libgnat/s-atopri.ads: Add new intrinsics. * Makefile.rtl: Add new runtime files. * impunit.adb: Add new units to Ada 2020 list. From-SVN: r279434
Arnaud Charlet committed -
2019-12-16 Eric Botcazou <ebotcazou@adacore.com> gcc/ada/ * freeze.adb (Check_Strict_Alignment): Remove new check on Has_Aliased_Components for array types. From-SVN: r279433
Eric Botcazou committed
-