- 01 Jul, 2019 1 commit
-
-
From-SVN: r272839
GCC Administrator committed
-
- 30 Jun, 2019 4 commits
-
-
* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. (abs<mode>2): New expander. * config/i386/i386-builtin.def (__builtin_ia32_pabsb): Use CODE_FOR_ssse3_absv8qi2. (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. From-SVN: r272835
Uros Bizjak committed -
* config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx to sse, sse_noavx and avx. Update all uses. * config/i386/mmx.md (sse_movntq): Add "isa" attribute. (*mmx_<plusminus_insn><mode>3): Ditto. (*mmx_mulv4hi3"): Ditto. (*mmx_smulv4hi3_highpart): Ditto. (*mmx_umulv4hi3_highpart): Ditto. (*mmx_pmaddwd): Ditto. (*sse2_umulv1siv1di3): Ditto. (*mmx_<code>v4hi3): Ditto. (*mmx_<code>v8qi3): Ditto. (mmx_ashr<mode>3): Ditto. ("mmx_<shift_insn><mode>3): Ditto. (*mmx_eq<mode>3): Ditto. (mmx_gt<mode>3): Ditto. (mmx_andnot<mode>3): Ditto. (*mmx_<code><mode>3): Ditto. (*mmx_pinsrw): Ditto. (*mmx_pextrw): Ditto. (mmx_pshufw_1): Ditto. (*mmx_uavgv8qi3): Ditto. (*mmx_uavgv4hi3): Ditto. ("mmx_psadbw): Ditto. * config/i386/sse.md (sse_cvtps2pi): Ditto. (sse_cvttps2pi): Ditto. (ssse3_pmaddubsw): Ditto. (*ssse3_pmulhrswv4hi3): Ditto. (ssse3_psign<mode>3): Ditto. From-SVN: r272834
Uros Bizjak committed -
Gnatlink has code that checks for duplicate '-shared-libgcc’ switches (but not duplicate ‘static-libgcc’) and also pushes ’static-libgcc' onto the link line for targets that default to static linking, provided '-shared-libgcc' is not present. For targets that should use a shared libgcc we need the same process to be applied (in inverse), in the event that they do not default to providing the shared flag implicitly. So this adds the complementary set of tests for the shared case and pushes the shared flag as needed. As a minor tidy-up there’s no need push duplicates of the libgcc switch onto the link line when one has already been seen (given by the user). The patch does not alter any of the platform defaults for static/shared libgcc, but it ensures that the intent of the link is explicit. gcc/ada/ 2019-06-30 Iain Sandoe <iain@sandoe.co.uk> * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches. Push -shared-libgcc explicitly, when it is the target default (unless overidden by the static flag). When the user has put an instance of shared/static-libgcc do not push a duplicate of this. From-SVN: r272832
Iain Sandoe committed -
From-SVN: r272831
GCC Administrator committed
-
- 29 Jun, 2019 9 commits
-
-
* gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED, and tweak comment on the assertion about the scopes of Itypes. Do not skip the regular processing for Itypes that are E_Record_Subtype with a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype if the type is dummy and hasn't got its own freeze node. <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any. <E_Access_Subtype>: Save again the DECL of the equivalent type. (Gigi_Equivalent_Type) <E_Access_Subtype>: New case. From-SVN: r272822
Eric Botcazou committed -
* gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip dereferences when padding to have the same size on both sides. Do it for destination types with self-referential size too. From-SVN: r272821
Eric Botcazou committed -
decl.c (gnat_to_gnu_entity): If the type requires strict alignment, then set the RM size to the type size. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type requires strict alignment, then set the RM size to the type size. Rework handling of alignment and sizes of tagged types in ASIS mode. (validate_size): Rename local variable and remove special handling for strict-alignment types. * gcc-interface/utils.c (finish_record_type): Constify local variables and use properly typed constants. From-SVN: r272820
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for fields requiring strict alignment, add explicit test on Storage_Unit for position and size, and mention type alignment for position. From-SVN: r272819
Eric Botcazou committed -
* gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on the main variant of a type, if any. From-SVN: r272815
Eric Botcazou committed -
decl.c (set_nonaliased_component_on_array_type): Add missing guard for the presence of TYPE_CANONICAL. * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add missing guard for the presence of TYPE_CANONICAL. (set_reverse_storage_order_on_array_type): Likewise. From-SVN: r272811
Eric Botcazou committed -
* expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian adjustment for bit-fields to all aggregate types. ada/ * gcc-interface/gigi.h (make_packable_type): Remove default value. (value_factor_p): Tweak prototype. * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment. (gnat_to_gnu_component_type): Likewise. (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier and simplify the condition under which the type is packed. Declare local variable is_bitfield. Pass 1 as max_align to make_packable_type if it is set to true. (copy_and_substitute_in_layout): Pass 0 to make_packable_type. * gcc-interface/utils.c (make_packable_array_type): New function. (make_packable_type): Use it to rewrite the type of array field. (maybe_pad_type): Pass align parameter to make_packable_type. (create_field_decl): Minor tweaks. (value_factor_p): Assert that FACTOR is a power of 2 and replace the modulo computation by a masking operation. From-SVN: r272810
Eric Botcazou committed -
From-SVN: r272809
Jason Merrill committed -
From-SVN: r272808
GCC Administrator committed
-
- 28 Jun, 2019 11 commits
-
-
2019-06-28 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/predicates.md (pcrel_address): Use SYMBOL_REF_LOCAL_P to determine if a label is local. (pcrel_external_address): New predicate. (non_prefixed_mem_operand): Delete, predicate not used. * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use SYMBOL_REF_LOCAL_P to determine if we can use pc-relative addressing. (SYMBOL_REF_PCREL_P): Likewise. From-SVN: r272792
Michael Meissner committed -
Fix PR target/91009 2019-06-27 Michael Meissner <meissner@linux.ibm.com> PR target/91009 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX alternative. (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative. (floatunssi<mode>2_lfiwzx): Add non-VSX alternative. (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative. From-SVN: r272791
Michael Meissner committed -
This is primarily in order to improve testsuite coverage, we might elect to prune the list at some point. 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove override on extra_headers. From-SVN: r272790
Iain Sandoe committed -
2019-06-28 Iain Sandoe <iain@sandoe.co.uk> * config/darwin-c.c (pop_field_alignment): Quote #pragma options. * config/darwin-driver.c (darwin_default_min_version): Remove newline from warning. (darwin_driver_init): Likewise. From-SVN: r272789
Iain Sandoe committed -
There's no need for three alternatives: "v" without TARGET_AVX512F is the same as "x". From-SVN: r272784
Jan Beulich committed -
The affine transformations are not commutative (the two source operands have entirely different meaning). Also the nonimmediate_operand predicate can better be vector_operand. From-SVN: r272783
Jan Beulich committed -
A recent RTX cost commit has changed the costs for ARC700 leading to errors in slsr-13.c test. This commit fixes this issue by reverting the cost computation for short instructions. 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_rtx_costs): All short instructions are having a lower cost regardless of the speed option. From-SVN: r272782
Claudiu Zissulescu committed -
From-SVN: r272781
Jan Beulich committed -
With just an "m" constraint misaligned memory operands won't be forced into a register, and hence cause #GP. So far this was guaranteed only in the case that CVT{,T}PD2DQ were chosen (which looks to be the case on x86-64 only). Switch the second alternative to Bm and also replace nonimmediate_operand by vector_operand. From-SVN: r272780
Jan Beulich committed -
A number of Arm define_expand patterns have specified constraints for their operands. But the constraint strings are ignored at expand time and are therefore redundant/useless. We now avoid specifying constraints in new define_expands, but we should clean up the existing define_expand definitions. 2019-06-28 Dennis Zhang <dennis.zhang@arm.com> * config/arm/arm.md: Remove redundant constraints from define_expand but leave reload_inm and reload_outm patterns untouched since they need special constraints to work. * config/arm/arm-fixed.md: Remove redundant constraints from define_expand. * config/arm/iwmmxt.md: Likewise. * config/arm/neon.md: Likewise. * config/arm/sync.md: Likewise. * config/arm/thumb1.md: Likewise. * config/arm/vec-common.md: Likewise. From-SVN: r272779
Dennis Zhang committed -
From-SVN: r272774
GCC Administrator committed
-
- 27 Jun, 2019 15 commits
-
-
This patch adds libgcc configuration option to disable TM clone registry. This option helps to reduce code size for embedded targets which do not need transactional memory support. gcc/ * doc/install.texi: Document --disable-tm-clone-registry. libgcc/ * Makefile.in (USE_TM_CLONE_REGISTRY): New. (CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY. * configure.ac: Add --disable-tm-clone-registry option. * configure: Regenerate. From-SVN: r272769
Ilia Diachkov committed -
This testcase in the PR is extremely recursive, and therefore uses a huge amount of memory on caching the results of individual calls. We no longer need to track all calls to catch infinite recursion, as we have other limits on maximum depth and operations count. So let's only cache a few calls at the top level: 8 seems to be a reasonable compromise. gcc/c-family/ * c.opt (fconstexpr-loop-limit): New. gcc/cp/ * constexpr.c (push_cx_call_context): Return depth. (cxx_eval_call_expression): Don't cache past constexpr_cache_depth. From-SVN: r272765
Jason Merrill committed -
PR c++/91024 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT statements. * g++.dg/warn/Wimplicit-fallthrough-4.C: New test. From-SVN: r272764
Jakub Jelinek committed -
PR tree-optimization/91010 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2, return true. Otherwise, don't call operand_equal_p if offset1 or offset2 is NULL and just return false. * g++.dg/vect/simd-10.cc: New test. From-SVN: r272763
Jakub Jelinek committed -
The default for the kernel is soft-float, however a user writing a kernel extension might want to make use of hard float. This change makes " -mkernel -mhard-float " work as expected. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour user-specified float mode choice for kernel mode code. From-SVN: r272760
Iain Sandoe committed -
A recent merge dropped whitespace in the endfile specs, which affects transactional memory cases. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the spec. From-SVN: r272759
Iain Sandoe committed -
The linker [ld64] that supports 64Bit does not need the JBSR longcall optimisation, and will not work with the most generic case (where the symbol is undefined external, but there is no symbl stub). So switch the longcall option off. ld64 will generate branch islands as needed. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not use longcall for 64b code. From-SVN: r272758
Iain Sandoe committed -
2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90987 * match.c (gfc_match_common): Adjust parsing of fixed and free form source code containing, e.g., COMMONI. 2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90987 * gfortran.dg/common_1.f: new test. * gfortran.dg/common_26.f90: Ditto. From-SVN: r272756
Steven G. Kargl committed -
2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com> * builtins.c (get_memory_rtx): Fix comment. * optabs.def (movmem_optab): Change to cpymem_optab. * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. (emit_block_move_hints): Change movmem to cpymem. * defaults.h: Change movmem to cpymem. * targhooks.c (get_move_ratio): Change movmem to cpymem. (default_use_by_pieces_infrastructure_p): Ditto. * config/aarch64/aarch64-protos.h: Change movmem to cpymem. * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem to cpymem. * config/aarch64/aarch64.h: Change movmem to cpymem. * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. * config/alpha/alpha.h: Change movmem to cpymem in comment. * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change movmem to cpymem. * config/arc/arc-protos.h: Change movmem to cpymem. * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. * config/arc/arc.h: Change movmem to cpymem in comment. * config/arc/arc.md (movmemsi): Change movmem to cpymem. * config/arm/arm-protos.h: Change movmem to cpymem in names. * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. * config/arm/arm.md (movmemqi): Change movmem to cpymem. * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. * config/avr/avr-protos.h: Change movmem to cpymem. * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, avr_out_movmem): Change movmem to cpymem. * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>): Change movmem to cpymem. * config/bfin/bfin-protos.h: Change movmem to cpymem. * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): Change movmem to cpymem. * config/bfin/bfin.h: Change movmem to cpymem in comment. * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. * config/c6x/c6x-protos.h: Change movmem to cpymem. * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. * config/frv/frv.md (movmemsi): Change name to cpymemsi. * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, expand_set_or_movmem_via_rep, expand_movmem_epilogue, expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, expand_small_cpymem_or_setmem, expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, expand_set_or_cpymem_constant_prologue, ix86_expand_set_or_cpymem): Change movmem to cpymem. * config/i386/i386-protos.h: Change movmem to cpymem. * config/i386/i386.h: Change movmem to cpymem in comment. * config/i386/i386.md (movmem<mode>): Change name to cpymem. (setmem<mode>): Change expansion function name. * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. * config/m32c/m32c-protos.h: Change movmem to cpymem. * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem to cpymem. * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. * config/microblaze/microblaze.c: Change movmem to cpymem in comment. * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): Change movmem to cpymem. * config/mips/mips.h: Change movmem to cpymem. * config/mips/mips.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-memory-manipulation.c (nds32_expand_movmemsi_loop_unknown_size, nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, nds32_expand_movmemsi_unroll, nds32_expand_movmemsi): Change movmem to cpymem. * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-protos.h: Change movmem to cpymem. * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. (pa_adjust_insn_length): Change call to compute_movmem_length. * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, movmemdi, movmemdi_prereload, movmemdi_postreload): Change movmem to cpymem. * config/pdp11/pdp11.md (movmemhi, movmemhi1, movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. * config/riscv/riscv.c: Change movmem to cpymem in comment. * config/riscv/riscv.h: Change movmem to cpymem. * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change movmem to cpymem. * config/s390/s390-protos.h: Change movmem to cpymem. * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, s390_expand_insv): Change movmem to cpymem. * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short, movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. * config/sh/sh.md (movmemsi): Change name to cpymemsi. * config/sparc/sparc.h: Change movmem to cpymem in comment. * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype for nonexistent function. * config/vax/vax.h: Change movmem to cpymem in comment. * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. * config/visium/visium.h: Change movmem to cpymem in comment. * config/visium/visium.md (movmemsi): Change name to cpymemsi. * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. * doc/md.texi: Change movmem to cpymem and update description to match. * doc/rtl.texi: Change movmem to cpymem. * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. * doc/tm.texi: Regenerate. From-SVN: r272755
Aaron Sawdey committed -
2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com> * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable -fvariable-expansion-in-unroller by default. * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new default for Power. From-SVN: r272754
Bill Schmidt committed -
Revert 2019-06-26 David Edelsohn <dje.gcc@gmail.com> * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. * config.gcc(rs6000-*-*): Define target_gtfiles. From-SVN: r272753
David Edelsohn committed -
* lto-common.c: tree-pretty-print.h (type_streaming_finished): New static var. (gimple_register_canonical_type_1): Return updated hash; handle ODR types. (iterative_hash_canonical_type): Update use of gimple_register_canonical_type_1. From-SVN: r272750
Jan Hubicka committed -
* class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base type copy. * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag. (add_type_duplicate): When odr hash is not allocated, to nothing. (odr_based_tbaa_p): New function. (set_type_canonical_for_odr_type): New function. * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p, set_type_canonical_for_odr_type): New. * tree.c (gimple_canonical_types_compatible_p): ODR types with ODR based TBAA are not equivalent to non-ODR types. * lto-common.c: Include demangle.h and tree-pretty-print.h (type_streaming_finished): New static var. (gimple_register_canonical_type_1): Return updated hash; handle ODR types. (iterative_hash_canonical_type): Update use of gimple_register_canonical_type_1. * g++.dg/lto/alias-2_0.C: New testcase. * g++.dg/lto/alias-2_1.C: New testcase. From-SVN: r272749
Jan Hubicka committed -
2019-06-27 Martin Liska <mliska@suse.cz> PR tree-optimization/90974 PR rtl-optimization/90975 PR rtl-optimization/90976 PR target/91016 PR tree-optimization/91017 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove unused tmp. * lra.c (lra_set_insn_recog_data): Remove a leftover from initial commit of IRA. * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead of op0 and op1. * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove unused mode1. * tree-vect-stmts.c (vectorizable_call): Remove dead assignment to new_stmt_info. From-SVN: r272746
Martin Liska committed -
re PR target/90991 (_mm_loadu_ps instrinsic translates to vmovaps in combination with _mm512_insertf32x4) PR target/90991 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand instead of register_operand for operands[1], add m to its constraints if operands[2] uses "C" constraint. Ensure in condition that if operands[2] is not 0, then operands[1] is not a MEM. For last two alternatives, use unaligned loads instead of aligned if operands[1] is misaligned_operand. * gcc.target/i386/avx2-pr90991-1.c: New test. * gcc.target/i386/avx512dq-pr90991-2.c: New test. From-SVN: r272745
Jakub Jelinek committed
-