1. 10 Dec, 2017 5 commits
  2. 09 Dec, 2017 5 commits
  3. 08 Dec, 2017 28 commits
    • [multiple changes] · 4692a783
      2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/83317
      	* lra-constraints.c (process_address_1): Add insn code check.
      
      2017-12-08  Jakub Jelinek  <jakub@redhat.com>
      
      	PR rtl-optimization/83317
      	* gcc.target/i386/pr83317.c: New test.
      
      From-SVN: r255517
      Vladimir Makarov committed
    • re PR rtl-optimization/81595 (ICE: verify_flow_info failed (error: multiple… · d5910e08
      re PR rtl-optimization/81595 (ICE: verify_flow_info failed (error: multiple hot/cold transitions found))
      
      	PR rtl-optimization/81595
      	* gcc.c-torture/compile/pr81595.c: New test.
      
      From-SVN: r255516
      Jakub Jelinek committed
    • re PR tree-optimization/83323 (186.crafty miscompares) · dc236397
      Fix PR83323
      
      	* gimple-loop-jam (unroll_jam_possible_p): Correct test for
      	head-controlled loops and loop BBs.
      	* common.opt (funroll-and-jam): Remove, instead ...
      	(floop-unroll-and-jam): ... reuse this option.
      	* opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
      	* doc/invoke.texi (-funroll-and-jam): Move docu to ...
      	(-floop-unroll-and-jam): ... this option.
      
      testsuite/
      	* gcc.dg/pr83323.c: New test.
      	* gcc.dg/unroll-and-jam.c: Use -floop-unroll-and-jam.
      
      From-SVN: r255514
      Michael Matz committed
    • ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix a comment typo,… · 450aa0ee
      ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
      
      	* ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
      	a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
      	* ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
      
      From-SVN: r255513
      Jakub Jelinek committed
    • re PR middle-end/81782 (Yet another -Wmaybe-uninitialized false positive with empty array) · 68e6d5a6
      2017-12-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/81782
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Properly
      	handle accesses outside of zero-sized vars.
      
      	* gcc.dg/uninit-pr81782.c: New testcase.
      
      From-SVN: r255512
      Richard Biener committed
    • Disable hwcap on Solaris in g++.dg/opt/pr83252.C · 4f29e040
      	* g++.dg/opt/pr83252.C: Add -mclear-hwcap on *-*-solaris*.
      
      From-SVN: r255511
      Rainer Orth committed
    • Prevent SRA from removing type changing assignment · d90ffcfb
      2017-12-08  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/83141
      	* tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
      	test for MEM_REFs implicitely changing types with padding.  Remove
      	inline keyword.
      	(build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
      
      testsuite/
      	* gcc.dg/tree-ssa/pr83141.c: New test.
      	* gcc.dg/guality/pr54970.c: XFAIL tests querying a[0].
      
      From-SVN: r255510
      Martin Jambor committed
    • arc.c (arc_attribute_table): Add exclusions to the comment. · 0123db8e
      	* config/arc/arc.c (arc_attribute_table): Add exclusions to
      	the comment.
      	* config/avr/avr.c (avr_attribute_table): Likewise.
      	* config/msp430/msp430.c (msp430_attribute_table): Likewise.
      	* config/rl78/rl78.c (rl78_attribute_table): Likewise.
      	* config/nds32/nds32.c (nds32_attribute_table): Likewise.
      	* config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
      	of struct attribute_spec.
      	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
      ada/
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Add
      	exclusions to the comment.
      brig/
      	* brig-lang.c (brig_attribute_table): Fix up comment.
      
      From-SVN: r255509
      Jakub Jelinek committed
    • re PR target/82960 (spu_machine_dependent_reorg does not handle jump_table_data insn) · deb8237f
      
      gcc/
      	PR target/82960
      	* config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
      
      From-SVN: r255508
      Ulrich Weigand committed
    • re PR tree-optimization/83609 (ICE in read_complex_part at gcc/expr.c:3202) · f6422f23
      
      	* profile-count.c (profile_count::from_gcov_type): Move from
      	profile-count.h; handle overflow.
      	* profile-count. (profile_count::from_gcov_type): Move offline.
      
      	PR middle-end/83609
      	* gcc.c-torture/compile/pr83069.c: New testcase.
      
      From-SVN: r255507
      Jan Hubicka committed
    • combine: Fix PR83304 · b1cf8293
      In PR83304 two insns are combined, where the I2 uses a register that
      has a REG_DEAD note on an insn after I2 but before I3.  In such a case
      move_deaths should move that death note.  But move_deaths only looks
      at the reg_stat[regno].last_death insn, and that field can be zeroed
      out (previously, use_crosses_set_p would prevent the combination in
      this case).
      
      If the last_death field is zero it means "unknown", not "no death", so
      we have to find if there is a REG_DEAD note.
      
      
      	PR rtl-optimization/83304
      	* combine.c (move_deaths): If we do not know where a register died,
      	search for it.
      
      From-SVN: r255506
      Segher Boessenkool committed
    • gimple-loop-interchange.cc (tree_loop_interchange::interchange): Provide… · da472c1b
      gimple-loop-interchange.cc (tree_loop_interchange::interchange): Provide -fopt-info-loop feedback when we interchange in a nest.
      
      2017-12-08  Richard Biener  <rguenther@suse.de>
      
      	* gimple-loop-interchange.cc (tree_loop_interchange::interchange):
      	Provide -fopt-info-loop feedback when we interchange in a nest.
      
      From-SVN: r255505
      Richard Biener committed
    • [arm] PR target/83206: Make native driver select fp-capable armv6 cores · 801840e1
      A quirk in the historical naming of some ARMv6 products means that the
      main CPU name implies the presence or otherwise of the floating point unit.
      This causes problems when using -mfpu=auto with -mcpu=native: the driver is
      picking a CPU that does not support a floating-point unit, even though
      one may well exist.
      
      This patch addresses this by selecting the FP-capable names so that FP
      instructions will be generated if the other options suggest this is
      permitted.
      
      Note that a more complete fix is really needed here to look up the
      FP/simd capabilities and append the appropriate capability extensions.
      This will be the subject of some follow-up patches.
      
      	* config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
      	for armv6 ARM CPU IDs.
      
      From-SVN: r255504
      Richard Earnshaw committed
    • [arm] Don't strip off all architecture features from -march passed to assembler · 24531cd6
      When GCC invokes the assembler it generates a sanitized version of the
      user-specified -march option to pass through, since the assembler does
      not understand all the new FPU-related architectural options.
      Unfortunately it goes too far and strips off all the architectural
      extensions, including some that are unrelated to the -mfpu variant
      selected.
      
      Again, this doesn't really matter when compiling C code because the
      compiler will override the command-line specified architecture with
      directives in the assembly file itself, but when using the compiler
      driver to invoke the assembler the only indiciation of the desired
      architecture might come from the command line.
      
      We fix this by adjusting the canonicalization pass to remove any
      option that only specifies features that can be expressed by -mfpu
      (any that go beyond that are already supported by the assembler).  We
      do have to take care to re-order the options, though as the assembler
      expects feature options to be in a canonical order (unlike the
      compiler, where ordering is handled left-to-right: there's only a
      difference if there are negation options, but a canonicalized
      architecture string shouldn't have any of those).  We do this by
      recording which options we need and then sorting the final list
      alphabetically.
      
      	* common/config/arm/arm-common.c: Include <algorithm>.
      	(INCLUDE_VECTOR): Define.
      	(compare_opt_names): New function.
      	(arm_rewrite_selected_arch): Only strip out extensions that can be
      	expressed through -mfpu.  Sort the remaining extensions
      	alphabetically.
      
      From-SVN: r255503
      Richard Earnshaw committed
    • [arm] Generate a -mfpu= option for passing to the assembler · 940269b6
      When gcc runs with the new -mfpu=auto option (either explicitly or
      when that's the default behaviour) then this option is not passed
      through to the assembler as we cannot rely on the assembler
      understanding it (currently it doesn't understand it at all, but in
      future that might change).  That means that the assembler falls back
      to its builtin default, which may not correspond to what the user
      expected based on the command-line options they passed.
      
      Normally that wouldn't matter because assembler files generated by the
      compiler will contain explicit directives that set the FPU type
      directly and override any internal defaults; but when the compiler
      driver is used to invoke the assembler directly (because the source
      file ends in .s or .S) then this might cause a problem if that assumes
      the FPU matches the compiler.
      
      To address this, this patch makes the driver construct a -mfpu= option
      for the assembler in the same way as the compiler generates an
      internal .fpu directive.  As mentioned, this makes no difference if
      the assembler file explicitly overrides the command line options, but
      helps in the case where this is implicit.
      
      
      	* config/arm/arm.h (arm_asm_auto_mfpu): Declare.
      	(ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
      	(ASM_CPU_SPEC): Use it if -mfpu is set to auto.
      	* common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
      -- This line, and those below, will be ignored--
      
      M    gcc/ChangeLog
      M    gcc/common/config/arm/arm-common.c
      M    gcc/config/arm/arm.h
      
      From-SVN: r255502
      Richard Earnshaw committed
    • re PR bootstrap/81470 (Bootstrap comparison failures in gcc/ada) · 4a53066d
      2017-06-08  Tristan Gingold  <gindold@adacore.com>
      
      	PR ada/81470
      	* dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
      	.cfi_personality or .cfi_lsda if the eh data format is dwarf2.
      
      From-SVN: r255501
      Tristan Gingold committed
    • Initialize new member of SOLARIS_ATTRIBUTE_TABLE · 1db9ce24
      	* config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
      	of struct attribute_spec.
      
      From-SVN: r255500
      Rainer Orth committed
    • re PR tree-optimization/81303 (410.bwaves regression caused by r249919) · becb7a36
      2017-12-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81303
      	* gfortran.dg/pr81303.f: New testcase.
      	* gfortran.dg/vect/pr81303.f: Likewise.
      
      From-SVN: r255499
      Richard Biener committed
    • Enable VNNI support [5/5] · 3e4a6f9d
      gcc/
      	* config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
      	_mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
      	* config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
      	_mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
      	_mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
      	_mm_maskz_dpwssds_epi32): Ditto.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-vnni-1.c: Add checks for vdpdwssds.
      	* gcc.target/i386/avx512vl-vnni-1.c: Ditto.
      	* gcc.target/i386/avx512f-vpdpwssds-2.c: New test.
      	* gcc.target/i386/avx512vl-vpdpwssds-2.c: Ditto.
      
      From-SVN: r255498
      Julia Koval committed
    • re PR tree-optimization/81303 (410.bwaves regression caused by r249919) · 8da4c8d8
      2017-12-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/81303
      	* tree-vect-stmts.c (vect_is_simple_cond): For invariant
      	conditions try to create a comparison vector type matching
      	the data vector type.
      	(vectorizable_condition): Adjust.
      	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
      	Leave invariant conditions alone in case we can vectorize those.
      
      	* gcc.target/i386/vectorize9.c: New testcase.
      	* gcc.target/i386/vectorize10.c: New testcase.
      
      From-SVN: r255497
      Richard Biener committed
    • Enable VNNI support [4/5] · 5cb7ca60
      gcc/
      	* config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
      	_mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
      	* config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
      	_mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
      	_mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512f-vnni-1.c: Add vdpwssd checks.
      	* gcc.target/i386/avx512vl-vnni-1.c: Ditto.
      	* gcc.target/i386/avx512f-vpdpwssd-2.c: New.
      	* gcc.target/i386/avx512vl-vpdpwssd-2.c: Ditto.
      
      From-SVN: r255496
      Julia Koval committed
    • Enable VAES support [2/5] · 17ecc36e
      gcc/
      	* config.gcc: Add vaesintrin.h.
      	* config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): New type.
      	* config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
      	__builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): New builtins.
      	* config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
      	* config/i386/immintrin.h: Include vaesintrin.h.
      	* config/i386/sse.md (vaesdec_<mode>): New pattern.
      	* config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
      	_mm_aesdec_epi128): New intrinsics.
      
      gcc/testsuite/
      	* gcc.target/i386/avx512-check.h: Handle bit_VAES.
      	* gcc.target/i386/avx512f-aesdec-2.c: New test.
      	* gcc.target/i386/avx512fvl-vaes-1.c: Ditto.
      	* gcc.target/i386/avx512vl-aesdec-2.c: Ditto.
      	* gcc.target/i386/i386.exp (check_effective_target_avx512vaes): New.
      
      From-SVN: r255495
      Julia Koval committed
    • const-addr-1.c: New. · 2632371c
      2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* gcc.target/nios2/const-addr-1.c: New.
      	* gcc.target/nios2/const-addr-2.c: New.
      	* gcc.target/nios2/const-addr-3.c: New.
      
      From-SVN: r255494
      Sandra Loosemore committed
    • nios2.md (ld<bhw_uns>io): Add splitter for memory operand. · e0727ae5
      2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
      	operand.
      	(ld<bh>io_signed): Likewise.
      	(st<bhw>io): Likewise.
      	* config/nios2/predicates.md (ldstio_memory_operand): Allow
      	SMALL_INT12 constant integer operand.
      
      From-SVN: r255493
      Sandra Loosemore committed
    • nios2.c (nios2_symbolic_constant_allowed): Rename to... · df8ceba6
      2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/nios2.c (nios2_symbolic_constant_allowed):
      	Rename to...
      	(nios2_large_constant_allowed): ...this.  Adjust uses.
      	(nios2_plus_symbolic_constant_p): Rename to...
      	(nios2_plus_large_constant_p): ...this.  Adjust uses.
      	(nios2_legitimate_address_p): Correct CONST_INT handling.
      	(nios2_symbolic_memory_operand_p): Rename to...
      	(nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
      	(nios2_large_constant_p): Check for large constant integers too.
      	(nios2_split_large_constant): Handle constant integers.
      	(nios2_split_symbolic_memory_operand): Rename to...
      	(nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
      	(nios2_legitimize_constant_address): Handle constant integers.
      	(r0rel_constant_p): Handle small constant integers.
      	(nios2_print_operand_address): Handle r0-relative integer addresses.
      	* config/nios2/nios2-protos.h: Adjust for renamed functions.
      	* config/nios2/nios2.md: Adjust for renamed functions.
      
      From-SVN: r255492
      Sandra Loosemore committed
    • Add srodata section support to riscv port. · 6cb0725c
      	2017-12-07  Andrew Waterman  <andrew@sifive.com>
      	gcc/
      	* config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
      	(TARGET_HAVE_SRODATA_SECTION): New define.
      	(riscv_select_section): New function.
      
      From-SVN: r255491
      Andrew Waterman committed
    • Daily bump. · 68a97003
      From-SVN: r255490
      GCC Administrator committed
    • re PR target/83252 (Wrong code with "-march=skylake-avx512 -O3") · 5bac1edb
      	PR target/83252
      	* gcc.target/i386/i386.exp (check_effective_target_bmi2): Moved to ...
      	* lib/target-supports.exp (check_effective_target_bmi2): ... here.  Guard with
      	i?86-*-* x86_64-*-*.
      	* g++.dg/opt/pr83252.C: New test.
      
      From-SVN: r255487
      Jakub Jelinek committed
  4. 07 Dec, 2017 2 commits