1. 12 Jun, 2018 17 commits
    • Document IntegerRange in internal documentation. · 9f51da53
      2018-06-12  Martin Liska  <mliska@suse.cz>
      
      	* doc/options.texi: Document IntegerRange.
      
      From-SVN: r261498
      Martin Liska committed
    • Come up with Deprecated option flag. · 3713f2e2
      2018-06-12  Martin Liska  <mliska@suse.cz>
      
      	* doc/options.texi: Document Deprecated option flag.
      2018-06-12  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.opt: Make MPX-related options as Deprecated.
      	* opt-functions.awk: Handle Deprecated flag.
      	* opts-common.c (decode_cmdline_option): Handle cl_deprecated
              and report error.
      	(read_cmdline_option): Report warning for a deprecated option.
      	* opts.h (struct cl_option): Add new field cl_deprecated.
      	(CL_ERR_DEPRECATED): New.
      2018-06-12  Martin Liska  <mliska@suse.cz>
      
      	* c.opt: Make MPX-related options as Deprecated.
      2018-06-12  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/opt/mpx.C: New test.
      	* gcc.target/i386/mpx.c: New test.
      
      From-SVN: r261497
      Martin Liska committed
    • [PATCH] [ARC][QuarkSE] Update · 09d69286
      QuarkSE has lp_count width set to 16 bits. Update the compiler to
      consider it.
      
      gcc/
      2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-arch.h (arc_extras): New enum.
      	(arc_cpu_t):Add field extra.
      	(arc_cpu_types): Consider the extras.
      	* config/arc/arc-cpus.def: Add extras info.
      	* config/arc/arc-opts.h (processor_type): Consider extra field.
      	* config/arc/arc.c (arc_override_options): Handle extra field.
      
      From-SVN: r261496
      Claudiu Zissulescu committed
    • [ARC] Update warning messges. · d65485c5
      When we pass an mcpu to the compiler we have two types of (hardware
      configuration) flags that are set:
      
      1. Architecture specific, for example code-density is always enabled
      for ARCHS architectures. These options are overwriting whatever the
      corresponding user options with the preset ones.
      
      2. CPU specific, for example archs is using LL64 option by
      default. These options can be freely enabled or disabled.
      
      Because of the above complexity, we need to throw some errors for the
      user to know when he/she does something which goes against the above
      rules. Thus, I came up with the following set of rules:
      
      1. Overwriting default architecture specific hardware option: it is
      ignored, a warning is thrown;
      
      2. Overwriting default CPU specific hardware option: it is taken into
      account, a warning is thrown.
      
      gcc/
      2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc-arch.h: Update ARC_OPTX macro.
      	* config/arc/arc-options.def (ARC_OPTX): Introduce a new doc
      	field.
      	* config/arc/arc.c (arc_init): Update pic warning.
      	(irq_range): Update irq range parsing warnings.
      	(arc_override_options): Update various warning messages.
      	(arc_handle_aux_attribute): Likewise.
      
      gcc/testsuite
      2018-06-12  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/builtin_simdarc.c: Update test.
      	* gcc.target/arc/mulsi3_highpart-2.c: Likewise.
      	* gcc.target/arc/tumaddsidi4.c: Likewise.
      
      From-SVN: r261495
      Claudiu Zissulescu committed
    • MIPS: Fix build after r261489. · 5def02b7
      gcc/
      	* config/mips/i6400.md (i6400_fpu_fadd): Remove frint.
      
      From-SVN: r261494
      Robert Suchanek committed
    • sourcebuild.texi: Document usage of line number 0 in verify compiler messages directives. · 09c4cadd
      	* doc/sourcebuild.texi: Document usage of line number 0 in verify
      	compiler messages directives.
      
      From-SVN: r261493
      Jozef Lawrynowicz committed
    • libitm/x86: Correct offsets of __private_tm and pointer_guard · 97cad511
      In glibc, sysdeps/i386/nptl/tls.h has
      
      typedef struct
      {
        void *tcb;            /* Pointer to the TCB.  Not necessarily the
                                 thread descriptor used by libpthread.  */
        dtv_t *dtv;
        void *self;           /* Pointer to the thread descriptor.  */
        int multiple_threads;
        uintptr_t sysinfo;
        uintptr_t stack_guard;
        uintptr_t pointer_guard;
        int gscope_flag;
        int __glibc_reserved1;
        /* Reservation of some values for the TM ABI.  */
        void *__private_tm[4];
        /* GCC split stack support.  */
        void *__private_ss;
      } tcbhead_t;
      
      and sysdeps/x86_64/nptl/tls.h has
      
      typedef struct
      {
        void *tcb;            /* Pointer to the TCB.  Not necessarily the
                                 thread descriptor used by libpthread.  */
        dtv_t *dtv;
        void *self;           /* Pointer to the thread descriptor.  */
        int multiple_threads;
        int gscope_flag;
        uintptr_t sysinfo;
        uintptr_t stack_guard;
        uintptr_t pointer_guard;
        unsigned long int vgetcpu_cache[2];
        int __glibc_reserved1;
        int __glibc_unused1;
        /* Reservation of some values for the TM ABI.  */
        void *__private_tm[4];
        /* GCC split stack support.  */
        void *__private_ss;
        long int __glibc_reserved2;
        /* Must be kept even if it is no longer used by glibc since programs,
           like AddressSanitizer, depend on the size of tcbhead_t.  */
        __128bits __glibc_unused2[8][4] __attribute__ ((aligned (32)));
      
        void *__padding[8];
      } tcbhead_t;
      
      The offsets of __private_tm are
      
      i386:   36 bytes
      x32:    48 bytes
      x86_64: 80 bytes
      
      and the offsets of pointer_guard are:
      
      i386:   24 bytes
      x32:    28 bytes
      x86_64: 48 bytes
      
      But config/linux/x86/tls.h had
      
       #ifdef __x86_64__
       #ifdef __LP64__
       # define SEG_READ(OFS)          "movq\t%%fs:(" #OFS "*8),%0"
       # define SEG_WRITE(OFS)         "movq\t%0,%%fs:(" #OFS "*8)"
       # define SEG_DECODE_READ(OFS)   SEG_READ(OFS) "\n\t" \
                                       "rorq\t$17,%0\n\t" \
                                       "xorq\t%%fs:48,%0"
       # define SEG_ENCODE_WRITE(OFS)  "xorq\t%%fs:48,%0\n\t" \
                                       "rolq\t$17,%0\n\t" \
                                       SEG_WRITE(OFS)
       #else
       // For X32.
       # define SEG_READ(OFS)          "movl\t%%fs:(" #OFS "*4),%0"
       # define SEG_WRITE(OFS)         "movl\t%0,%%fs:(" #OFS "*4)"
       # define SEG_DECODE_READ(OFS)   SEG_READ(OFS) "\n\t" \
                                       "rorl\t$9,%0\n\t" \
                                       "xorl\t%%fs:24,%0"
       # define SEG_ENCODE_WRITE(OFS)  "xorl\t%%fs:24,%0\n\t" \
                                       "roll\t$9,%0\n\t" \
                                       SEG_WRITE(OFS)
       #endif
       #else
       # define SEG_READ(OFS)  "movl\t%%gs:(" #OFS "*4),%0"
       # define SEG_WRITE(OFS) "movl\t%0,%%gs:(" #OFS "*4)"
       # define SEG_DECODE_READ(OFS)   SEG_READ(OFS) "\n\t" \
                                       "rorl\t$9,%0\n\t" \
                                       "xorl\t%%gs:24,%0"
       # define SEG_ENCODE_WRITE(OFS)  "xorl\t%%gs:24,%0\n\t" \
                                       "roll\t$9,%0\n\t" \
                                       SEG_WRITE(OFS)
       #endif
      
      static inline struct gtm_thread *gtm_thr(void)
      {
        struct gtm_thread *r;
        asm volatile (SEG_READ(10) : "=r"(r));
        return r;
      }
      
      static inline void set_gtm_thr(struct gtm_thread *x)
      {
        asm volatile (SEG_WRITE(10) : : "r"(x));
      }
      
      static inline struct abi_dispatch *abi_disp(void)
      {
        struct abi_dispatch *r;
        asm volatile (SEG_DECODE_READ(11) : "=r"(r));
        return r;
      }
      
      static inline void set_abi_disp(struct abi_dispatch *x)
      {
        void *scratch;
        asm volatile (SEG_ENCODE_WRITE(11) : "=r"(scratch) : "0"(x));
      }
      
      SEG_READ, SEG_WRITE, SEG_DECODE_READ and SEG_ENCODE_WRITE were correct
      only for x86-64.
      
      Update SEG_READ and SEG_WRITE to use the offset of __private_tm as base
      and correct the offset of pointer_guard for x32.  This patch doesn't
      change ABI of libitm.
      
      	PR libitm/85988
      	* config/linux/x86/tls.h (SEG_READ): Use the offset of
      	__private_tm as base.
      	(SEG_WRITE): Likewise.
      	(SEG_ENCODE_WRITE): Correct the offset of pointer_guard for x32.
      	(gtm_thr): Replace SEG_READ(10) with SEG_READ(0).
      	(set_gtm_thr): Replace SEG_WRITE(10) with SEG_WRITE(0).
      	(abi_disp): Replace SEG_DECODE_READ(11) with SEG_DECODE_READ(1).
      	(set_abi_disp): Replace SEG_ENCODE_WRITE(11) with
      	SEG_ENCODE_WRITE(1).
      
      From-SVN: r261491
      H.J. Lu committed
    • MIPS: Add i6500 processor as an alias for i6400. · 6a3361e8
      gcc/ChangeLog:
      
      2018-06-12  Matthew Fortune  <mfortune@gmail.com>
      
      	* config/mips/mips-cpus.def: New MIPS_CPU for i6500.
      	* config/mips/mips-tables.opt: Regenerate.
      	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as
      	mips64r6.
      	* doc/invoke.texi: Document -march=i6500.
      
      From-SVN: r261490
      Matthew Fortune committed
    • MIPS: Update I6400 scheduler. · b74161d0
      gcc/ChangeLog:
      
      2018-06-12  Prachi Godbole  <prachi.godbole@imgtec.com>
      
      	* config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit.
      	(i6400_gpmul): Add cpu_unit.
      	(i6400_gpdiv): Likewise.
      	(i6400_msa_add_d): Update reservations.
      	(i6400_msa_int_add) Likewise.
      	(i6400_msa_short_logic3) Likewise.
      	(i6400_msa_short_logic2) Likewise.
      	(i6400_msa_short_logic) Likewise.
      	(i6400_msa_move) Likewise.
      	(i6400_msa_cmp) Likewise.
      	(i6400_msa_short_float2) Likewise.
      	(i6400_msa_div_d) Likewise.
      	(i6400_msa_long_logic1) Likewise.
      	(i6400_msa_long_logic2) Likewise.
      	(i6400_msa_mult) Likewise.
      	(i6400_msa_long_float2) Likewise.
      	(i6400_msa_long_float4) Likewise.
      	(i6400_msa_long_float5) Likewise.
      	(i6400_msa_long_float8) Likewise.
      	(i6400_fpu_fadd): Include frint type.
      	(i6400_fpu_store): New define_insn_reservation.
      	(i6400_fpu_load): Likewise.
      	(i6400_fpu_move): Likewise.
      	(i6400_fpu_fcmp): Likewise.
      	(i6400_fpu_fmadd): Likewise.
      	(i6400_int_mult): Include imul3nc type and update reservation.
      	(i6400_int_div): Include idiv3 type and update reservation.
      	(i6400_int_load): Update to check type not move_type.
      	(i6400_int_store): Likewise.
      	(i6400_int_prefetch): Set zero latency.
      
      From-SVN: r261489
      Prachi Godbole committed
    • ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from using TYPE_LANG_FLAG_4 to… · 57d0f7c6
      ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0.
      
      	* gcc-interface/ada-tree.h (TYPE_RETURN_BY_DIRECT_REF_P): Change from
      	using TYPE_LANG_FLAG_4 to using TYPE_LANG_FLAG_0.
      	(TYPE_ALIGN_OK): Move around.
      	(TYPE_PADDING_FOR_COMPONENT): Remove superfluous parentheses.
      	* gcc-interface/decl.c (change_qualified_type): Move to...
      	(gnat_to_gnu_entity): Adjust comment.
      	* gcc-interface/gigi.h (change_qualified_type): ...here; make inline.
      	(ceil_pow2): Use ceil_log2.
      	* gcc-interface/utils.c (finish_subprog_decl): Add couple of comments
      	and do not set TREE_SIDE_EFFECTS.
      	(handle_noreturn_attribute): Use change_qualified_type.
      
      From-SVN: r261486
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Do not get the expression of a dispatch table that… · 541bb35d
      decl.c (gnat_to_gnu_entity): Do not get the expression of a dispatch table that is not being defined.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Do not get
      	the expression of a dispatch table that is not being defined.
      	<E_Record_Subtype>: Remove obsolete kludge.
      
      From-SVN: r261483
      Eric Botcazou committed
    • decl.c (warn_on_field_placement): Use specific wording for discriminants. · 81034751
      	* gcc-interface/decl.c (warn_on_field_placement): Use specific wording
      	for discriminants.
      	(warn_on_list_placement): New static function.
      	(components_to_record): Use it to warn on multiple fields in list.
      
      From-SVN: r261480
      Eric Botcazou committed
    • decl.c (variant_desc): Add AUX field. · cd8ad459
      	* gcc-interface/decl.c (variant_desc): Add AUX field.
      	(gnat_to_gnu_entity) <discrete_type>: Do not call compute_record_mode
      	directly.
      	(reverse_sort_field_list): New static function.
      	(components_to_record): Place the variant part at the beginning of the
      	field list when there is an obvious order of increasing position.
      	(build_variant_list): Initialize it.
      	(create_variant_part_from): Do not call compute_record_mode directly.
      	(copy_and_substitute_in_layout): Likewise.  Always sort the fields with
      	fixed position in order of increasing position, in the record and all
      	the variants, in any.  Call reverse_sort_field_list.
      	* gcc-interface/utils.c (make_packable_type): Compute the sizes before
      	calling finish_record_type.  Do not call compute_record_mode directly.
      	(finish_record_type): Overhaul final processing depending on REP_LEVEL
      	and call finish_bitfield_layout if it is equal to one or two.
      
      From-SVN: r261479
      Eric Botcazou committed
    • [testsuite] Add gcc.dg-selftests/dg-final.exp · 835d4173
      2018-06-12  Tom de Vries  <tdevries@suse.de>
      
      	* gcc.dg-selftests/dg-final.exp: New file.
      
      From-SVN: r261476
      Tom de Vries committed
    • Remove me from Write After Approval. · d23fa2ee
      From-SVN: r261475
      Martin Liska committed
    • gcc.c: Document new %@{...} sequence. · e7208389
      	* gcc.c: Document new %@{...} sequence.
      	(LINK_COMMAND_SPEC): Use it for the -L switches.
      	(cpp_unique_options): Use it for the -I switches.
      	(at_file_argbuf): New global variable.
      	(in_at_file): Likewise.
      	(alloc_args): Create at_file_argbuf.
      	(clear_args): Truncate at_file_argbuf.
      	(store_arg): If in_at_file, push the argument onto at_file_argbuf.
      	(open_at_file): New function.
      	(close_at_file): Likewise.
      	(create_at_file): Delete.
      	(do_spec_1) <'i'>: Use open_at_file/close_at_file.
      	<'o'>: Likewise.
      	<'@'>: New case.
      	(validate_switches_from_spec): Deal with %@{...} sequence.
      	(validate_switches): Likewise.
      	(driver::finalize): Call clear_args.
      
      From-SVN: r261474
      Eric Botcazou committed
    • Daily bump. · bfad8f66
      From-SVN: r261472
      GCC Administrator committed
  2. 11 Jun, 2018 23 commits
    • PR c++/85792 -Wctor-dtor-privacy and inherited constructor. · ee7ae7ae
      	* class.c (maybe_warn_about_overly_private_class): Handle inherited
      	constructors.
      
      From-SVN: r261459
      Jason Merrill committed
    • PR c++/85963 - -Wunused-but-set with ?: in template. · c7e2d7ad
      	* pt.c (tsubst_copy_and_build) [COND_EXPR]: Call mark_rvalue_use.
      
      From-SVN: r261458
      Jason Merrill committed
    • vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0. · 8731c0fb
      2018-06-11  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
      
      	* config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0.
      
      From-SVN: r261457
      Rasmus Villemoes committed
    • decl.c (grok_op_properties): Consistently use the location of the decl... · dc327375
      /cp
      2018-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (grok_op_properties): Consistently use the location
      	of the decl; remove special casing of POSTINCREMENT_EXPR and
      	POSTDECREMENT_EXPR wrt default arguments.
      
      /testsuite
      2018-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/lookup/new2.C: Test locations too.
      	* g++.dg/other/ellipsis1.C: Likewise.
      	* g++.dg/other/operator1.C: Likewise.
      	* g++.dg/other/operator2.C: Likewise.
      	* g++.dg/overload/operator2.C: Likewise.
      	* g++.dg/parse/defarg11.C: Likewise.
      	* g++.dg/parse/operator4.C: Likewise.
      	* g++.dg/template/error30.C: Likewise.
      	* g++.dg/template/explicit-args3.C: Likewise.
      	* g++.dg/warn/effc1.C: Likewise.
      	* g++.old-deja/g++.brendan/prepost2.C: Likewise.
      	* g++.old-deja/g++.brendan/prepost3.C: Likewise.
      	* g++.old-deja/g++.bugs/900215_01.C: Likewise.
      	* g++.old-deja/g++.jason/conversion5.C: Likewise.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r261456
      Paolo Carlini committed
    • decl.c (grok_op_properties): Consistently use the location of the decl... · fafd0db1
      /cp
      2018-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (grok_op_properties): Consistently use the location
      	of the decl; remove special casing of POSTINCREMENT_EXPR and
      	POSTDECREMENT_EXPR wrt default arguments.
      
      /testsuite
      2018-06-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/lookup/new2.C: Test locations too.
      	* g++.dg/other/ellipsis1.C: Likewise.
      	* g++.dg/other/operator1.C: Likewise.
      	* g++.dg/other/operator2.C: Likewise.
      	* g++.dg/overload/operator2.C: Likewise.
      	* g++.dg/parse/defarg11.C: Likewise.
      	* g++.dg/parse/operator4.C: Likewise.
      	* g++.dg/template/error30.C: Likewise.
      	* g++.dg/template/explicit-args3.C: Likewise.
      	* g++.dg/warn/effc1.C: Likewise.
      	* g++.old-deja/g++.brendan/prepost2.C: Likewise.
      	* g++.old-deja/g++.brendan/prepost3.C: Likewise.
      	* g++.old-deja/g++.bugs/900215_01.C: Likewise.
      	* g++.old-deja/g++.jason/conversion5.C: Likewise.
      	* g++.old-deja/g++.jason/operator.C: Likewise.
      
      From-SVN: r261455
      Paolo Carlini committed
    • Fix ptrmem comparison for unions. · 9b0607de
      	* constexpr.c (cxx_eval_binary_expression): Special case comparison
      	of pointers to members of the same union.
      
      From-SVN: r261454
      Jason Merrill committed
    • invoke.texi (-Wall): List -Wc++17-compat. · 960a58b9
      gcc/ChangeLog:
      
      	* doc/invoke.texi (-Wall): List -Wc++17-compat.
      	(Wno-class-memaccess): Add @opindex.
      	(Wno-templates, Wno-multiple-inheritance): Same.
      	(Wno-virtual-inheritance, Wno-namespaces): Same.
      	(Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same.
      	(Wno-format-overflow, Wno-format-truncation): Same.
      	(Wno-unused-local-typedefs, Walloc-size-larger-than): Same.
      	(Wno-alloc-size-larger-than, Wframe-larger-than): Same
      	(Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same.
      	(Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same.
      	(Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same.
      	(Wno-misspelled-isr): Same.
      
      From-SVN: r261453
      Martin Sebor committed
    • PR tree-optimization/86083 - handle non-constant assignments in strlen · 223c63e6
      gcc/ChangeLog:
      
      	PR tree-optimization/86083
      	* tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/86083
      	* gcc.dg/strlenopt-44.c: New test.
      
      From-SVN: r261452
      Martin Sebor committed
    • libgo: add riscv and js/wasm as known targets · 87cbbc45
          
          Incorporates cut down versions of https://golang.org/cl/102835 and
          https://golang.org/cl/106256 from the master sources.
          
          This will tell go/build to skip files with those tags.
          
          Reviewed-on: https://go-review.googlesource.com/117996
      
      From-SVN: r261451
      Ian Lance Taylor committed
    • tree-eh.c (lower_eh_constructs_2): Add a comma to comment. · c5ce6f30
      2018-06-11 Zhouyi Zhou <zhouzhouyi@gmail.com>
      
      	* tree-eh.c (lower_eh_constructs_2): Add a comma to comment.
      
      From-SVN: r261450
      Zhouyi Zhou committed
    • re PR fortran/45521 ([F08] GENERIC resolution with ALLOCATABLE/POINTER and PROCEDURE) · c7927c3b
      2018-06-11  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/45521
      	* interface.c (compare_ptr_alloc): New function.
      	(generic_correspondence): Call it.
      
      
      2018-06-11  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/45521
      	* gfortran.dg/generic_32.f90: New test.
      	* gfortran.dg/generic_33.f90: New test.
      
      From-SVN: r261448
      Janus Weil committed
    • PR c++/86094 - wrong code with defaulted move ctor. · 46e318cf
      	* tree.c (type_has_nontrivial_copy_init): Fix move ctor handling.
      
      From-SVN: r261444
      Jason Merrill committed
    • * doc/invoke.texi: Document -fabi-version=12. · 641c8da2
      From-SVN: r261443
      Jason Merrill committed
    • * fr.po: Update. · 61362140
      From-SVN: r261439
      Joseph Myers committed
    • altivec-7.c (main): Remove tests vec_unpackh(vecubi[0]) and… · 26029dbe
      altivec-7.c (main): Remove tests vec_unpackh(vecubi[0]) and vec_unpackl(vecubi[0]) returning long...
      
      gcc/testsuite/ChangeLog:
      
      2018-06-11  Carl Love  <cel@us.ibm.com>
      	* gcc.target/powerpc/altivec-7.c (main): Remove tests
      	vec_unpackh(vecubi[0]) and vec_unpackl(vecubi[0]) returning
      	long long bool.  Remove duplicate dg-final for xxlxor.  Update
      	dg-final instruction counts.
      	* gcc.target/powerpc/altivec-37.c (main): New file for
      	tests vec_unpackh and vec_unpackl returning long long bool and
      	long long int.
      
      From-SVN: r261438
      Carl Love committed
    • rs6000: Put constraints on the correct operand in movdi (PR85755) · ee6760c2
      Some of the mov* patterns use ^ and $ constraint modifiers, which mean
      give a penalty to this alternative if this operand needs a reload.  They
      are meant here to give a penalty if a register operand needs reloading
      (because it needs to be in a different kind of register), not when a
      memory operand needs reloading (which is easy and cheap to do).
      
      This patch fixes the movdi patterns.  This fixes PR85755.
      
      The following are changed (name, old constraints, new constraints):
      FPR store   ^m := d     m := ^d
      FPR move    ^d := d     ^d := ^d
      AVX store   ^wY := wb   wY := ^wb
      AVX store   $Z := wv    Z := $wv
      VSX move    ^wi := wi   ^wi := ^wi
      
      
      	PR target/85755
      	* config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
      	on the correct operand.
      	(*movdi_internal64): Ditto.
      
      ---
       gcc/config/rs6000/rs6000.md | 24 ++++++++++++------------
       1 file changed, 12 insertions(+), 12 deletions(-)
      
      diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
      index a2605a0..f06591f 100644
      --- a/gcc/config/rs6000/rs6000.md
      +++ b/gcc/config/rs6000/rs6000.md
      @@ -8567,16 +8567,16 @@ (define_insn_and_split "reload_gpr_from_vsxsf"
       
       (define_insn "*movdi_internal32"
         [(set (match_operand:DI 0 "nonimmediate_operand"
      -         "=Y,        r,         r,         ^m,        ^d,         ^d,
      -          r,         ^wY,       $Z,        ^wb,       $wv,        ^wi,
      +         "=Y,        r,         r,         m,         ^d,         ^d,
      +          r,         wY,        Z,         ^wb,       $wv,        ^wi,
                 *wo,       *wo,       *wv,       *wi,       *wi,        *wv,
                 *wv")
       
       	(match_operand:DI 1 "input_operand"
      -          "r,        Y,         r,         d,         m,          d,
      -           IJKnGHF,  wb,        wv,        wY,        Z,          wi,
      -           Oj,       wM,        OjwM,      Oj,        wM,         wS,
      -           wB"))]
      +         "r,         Y,         r,         ^d,        m,          ^d,
      +          IJKnGHF,   ^wb,       $wv,       wY,        Z,          ^wi,
      +          Oj,        wM,        OjwM,      Oj,        wM,         wS,
      +          wB"))]
       
         "! TARGET_POWERPC64
          && (gpc_reg_operand (operands[0], DImode)
      @@ -8643,17 +8643,17 @@ (define_split
       (define_insn "*movdi_internal64"
         [(set (match_operand:DI 0 "nonimmediate_operand"
                      "=YZ,       r,         r,         r,         r,          r,
      -                ^m,        ^d,        ^d,        ^wY,       $Z,         $wb,
      +                m,         ^d,        ^d,        wY,        Z,          $wb,
                       $wv,       ^wi,       *wo,       *wo,       *wv,        *wi,
                       *wi,       *wv,       *wv,       r,         *h,         *h,
                       ?*r,       ?*wg,      ?*r,       ?*wj")
       
       	(match_operand:DI 1 "input_operand"
      -                "r,        YZ,        r,         I,         L,          nF,
      -                 d,        m,         d,         wb,        wv,         wY,
      -                 Z,        wi,        Oj,        wM,        OjwM,       Oj,
      -                 wM,       wS,        wB,        *h,        r,          0,
      -                 wg,       r,         wj,        r"))]
      +               "r,         YZ,        r,         I,         L,          nF,
      +                ^d,        m,         ^d,        ^wb,       $wv,        wY,
      +                Z,         ^wi,       Oj,        wM,        OjwM,       Oj,
      +                wM,        wS,        wB,        *h,        r,          0,
      +                wg,        r,         wj,        r"))]
       
         "TARGET_POWERPC64
          && (gpc_reg_operand (operands[0], DImode)
      -- 
      1.8.3.1
      
      From-SVN: r261435
      Segher Boessenkool committed
    • Fix typo done in MPX removal (PR tree-optimization/86089). · 2dcab30b
      2018-06-11  Martin Liska  <mliska@suse.cz>
      
              PR tree-optimization/86089
      	* tree-ssa-strlen.c (get_string_length): Move back removed hunk.
      2018-06-11  Martin Liska  <mliska@suse.cz>
      
              PR tree-optimization/86089
      	* gcc.dg/tree-ssa/pr86089.c: New test.
      
      From-SVN: r261434
      Martin Liska committed
    • Remove redundant intrinsics · 0c5a38a5
      gcc/
      	* config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128)
      	_mm_aesenc_epi128, _mm_aesenclast_epi128: Remove.
      	* config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
      gcc/testsuite/
      	* gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test.
      	* gcc.target/i386/vpclmulqdq.c: Ditto.
      
      From-SVN: r261433
      Julia Koval committed
    • dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 for Ada with strict dwarf2. · 5cfcd771
      2018-06-11  Olivier Hainque  <hainque@adacore.com>
      
              * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83
              for Ada with strict dwarf2.
      
      	testsuite/
      
              * gnat.dg/lang-dw2.adb: New test.
              * gnat.dg/lang-dw3.adb: New test.
      
      From-SVN: r261432
      Olivier Hainque committed
    • [Ada] Fix wrong code for initialization of fat pointer with -Og · 259cc9a7
      2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Reuse the
      	existing fields of a dummy fat pointer type, if any.  Clear the
      	TYPE_DECL_SUPPRESS_DEBUG on the fat pointer type after completing it.
      
      From-SVN: r261431
      Eric Botcazou committed
    • [Ada] Suppress the expansion of ignored assertion pragmas · a8531f71
      This patch suppresses the expansion of ignored assertion pragmas.
      
      2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* contracts.adb (Process_Body_Postconditions): Expand only checked
      	postconditions.
      	(Process_Contract_Cases_For): Expand only checked contract cases.
      	(Process_Inherited_Preconditions): Ignored class-wide preconditions are
      	partially expanded because some of their semantic checks are tied to
      	the expansion.
      	(Process_Preconditions_For): Expand only checked preconditions.
      	(Process_Spec_Postconditions): Expand only checked preconditions.
      	Ignored class-wide preconditions are partially expanded because some of
      	their semantic checks are tied to the expansion.
      	* exp_prag.adb (Expand_N_Pragma): Suppress the expansion of ignored
      	assertion pragmas.
      	* exp_util.adb (Add_Inherited_Invariants): Code clean up.
      	* sem_util.adb (Propagate_Invariant_Attributes): Code clean up.
      
      gcc/testsuite/
      
      	* gnat.dg/assertion_policy1.adb, gnat.dg/assertion_policy1_pkg.adb,
      	gnat.dg/assertion_policy1_pkg.ads: New testcase.
      
      From-SVN: r261430
      Hristian Kirtchev committed
    • [Ada] Minor reformatting · 1985767d
      2018-06-11  Hristian Kirtchev  <kirtchev@adacore.com>
      
      gcc/ada/
      
      	* exp_ch9.adb, exp_unst.adb, inline.adb, libgnat/a-ciorma.adb,
      	libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-coorma.adb,
      	libgnat/a-coormu.adb, libgnat/a-coorse.adb, sem_prag.adb: Minor
      	reformatting.
      
      From-SVN: r261429
      Hristian Kirtchev committed
    • [Ada] Typo fixes and minor reformatting · ed6a6b4e
      2018-06-11  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.ads, exp_unst.adb: Typo fixes and minor reformatting.
      
      From-SVN: r261428
      Gary Dismukes committed