1. 27 Nov, 2017 5 commits
    • null-8.C (bar): New function. · 8cb71598
      	* g++.dg/ubsan/null-8.C (bar): New function.
      	(foo): Use bar instead of __builtin_printf.
      
      From-SVN: r255162
      Jakub Jelinek committed
    • re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs) · b8cb3096
      	PR debug/81307
      	* dbxout.c (lastlineno): New variable.
      	(dbx_debug_hooks): Use dbxout_switch_text_section as
      	switch_text_section debug hook.
      	(dbxout_function_end): Switch to current_function_section
      	rather than function_section.  If crtl->has_bb_partition,
      	output just one N_FUN, depending on in_cold_section_p.
      	(dbxout_source_line): Remember last lineno in lastlineno.
      	(dbxout_switch_text_section): New function.
      	(dbxout_function_decl): Adjust dbxout_block caller.
      	(dbx_block_with_cold_children): New function.
      	(dbxout_block): Return true if any LBRAC/RBRAC have been
      	emitted.  Use dbx_block_with_cold_children at depth == 0
      	in second partition.  Add PARENT_BLOCKNUM argument, pass
      	it optionally adjusted to children.  Output LBRAC/RBRAC
      	around recursive call only if the block is in the current
      	partition, if not and anything was output, emit empty
      	range LBRAC/RBRAC.
      	* final.c (final_scan_insn): Compute cold_function_name
      	before calling switch_text_section debug hook.  Call
      	that hook even if dwarf2out_do_frame if not emitting
      	dwarf debug info.
      
      	* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
      	workaround.
      
      From-SVN: r255161
      Jakub Jelinek committed
    • re PR target/83100 (powerpc: internal compiler error: in get_variable_section,… · 9adeb64a
      re PR target/83100 (powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections)
      
      	PR target/83100
      	* varasm.c (bss_initializer_p): Return true for DECL_COMMON
      	TREE_READONLY decls.
      
      	* gcc.dg/pr83100-1.c: New test.
      	* gcc.dg/pr83100-2.c: New test.
      	* gcc.dg/pr83100-3.c: New test.
      	* gcc.dg/pr83100-4.c: New test.
      
      From-SVN: r255160
      Jakub Jelinek committed
    • Fix PR82488 - signed integer overflow in expr.c · 99282f81
      bootstrap-ubsan shows:
       gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int'
      
      Fix by handling the saw_unknown case earlier.
      
      	PR rtl-optimization/82488
      	* expr.c (fixup_args_size_notes): Avoid signed integer overflow.
      
      diff --git a/gcc/expr.c b/gcc/expr.c
      index ee07de5aaa44..e9d8555c9452 100644
      --- a/gcc/expr.c
      +++ b/gcc/expr.c
      @@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size)
             if (STACK_GROWS_DOWNWARD)
       	this_delta = -(unsigned HOST_WIDE_INT) this_delta;
      
      -      args_size -= this_delta;
      +      if (saw_unknown)
      +	args_size = INT_MIN;
      +      else
      +	args_size -= this_delta;
           }
      
      -  return saw_unknown ? INT_MIN : args_size;
      +  return args_size;
       }
      
       #ifdef PUSH_ROUNDING
      --
      Markus
      
      From-SVN: r255159
      Markus Trippelsdorf committed
    • Daily bump. · 62e8530c
      From-SVN: r255158
      GCC Administrator committed
  2. 26 Nov, 2017 3 commits
    • i386.c (processor_target_table): Add skylake_cost for skylake-avx512. · c234d831
      	* config/i386/i386.c (processor_target_table): Add skylake_cost for
      	skylake-avx512.
      	* config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
      	skylake_cost): New.
      
      	* config/i386/driver-i386.c (host_detect_local_cpu):
      	Detect skylake-avx512.
      
      	* config.gcc: Add -march=cannonlake.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
      	* config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
      	(PTA_CANNONLAKE): New.
      	(processor_target_table): Add cannonlake.
      	(ix86_option_override_internal): Ditto.
      	(fold_builtin_cpu): Ditto.
      	(get_builtin_code_for_version): Handle cannonlake.
      	(M_INTEL_COREI7_CANNONLAKE): New.
      	* config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
      	* doc/invoke.texi: Add -march=cannonlake.
      
      gcc/testsuite/
      
      	* gcc.target/i386/funcspec-56.inc: Handle new march.
      	* g++.dg/ext/mv16.C: Ditto.
      
      libgcc/
      
      	* config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake.
      	* config/i386/cpuinfo.h (processor_subtypes): Add
      	INTEL_COREI7_CANNONLAKE.
      
      From-SVN: r255155
      Uros Bizjak committed
    • Plugin support on Windows/MinGW · 8c7dbea9
      config/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* gcc-plugin.m4: Add support for MinGW.
      
      gcc/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* plugin.c (add_new_plugin): Use platform-specific library extensions.
      	(try_init_one_plugin): Alternative implementation for MinGW.
      	* Makefile.in (plugin_implib): New.
      	(gengtype-lex.c): Fix broken AIX workaround.
      	* configure: Regenerate.
      	* doc/plugins.texi: Document support for MinGW.
      
      gcc/c/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c.install-plugin): Install backend import library.
      
      gcc/cp/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* Make-lang.in (c++.install-plugin): Install backend import library.
      
      libcc1/ChangeLog:
      2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>
      
      	* configure: Regenerate.
      
      From-SVN: r255154
      Boris Kolpackov committed
    • Daily bump. · 44dfb822
      From-SVN: r255153
      GCC Administrator committed
  3. 25 Nov, 2017 4 commits
  4. 24 Nov, 2017 14 commits
  5. 23 Nov, 2017 14 commits
    • [ARM] Fix Dot Product NEON intrinsics · 117e6b50
      2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* config/arm/arm_neon.h: Fix pragma GCC push_options before
      	vdot_u32.
      
      From-SVN: r255126
      Christophe Lyon committed
    • re PR ada/83091 (ICE with -g in arm-eabi compilation) · 773076a5
      	PR ada/83091
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
      	type for the implementation type of a packed array.
      
      From-SVN: r255125
      Eric Botcazou committed
    • Add [[nodiscard]] attribute to C++17 components · d69f1ec7
      	* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
      	* include/bits/range_access.h (empty): Likewise.
      	* include/std/string_view (basic_string_view::empty): Likewise.
      	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
      	test.
      	* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
      	* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.
      
      From-SVN: r255124
      Jonathan Wakely committed
    • PR libstdc++/83134 Ensure std::__not_ converts B::value to bool · 4b9840f2
      	PR libstdc++/83134
      	* include/std/type_traits (__not_): Explicitly convert to bool.
      	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
      	* testsuite/20_util/logical_traits/83134.cc: New test.
      	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
      	dg-error.
      	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
      	Likewise.
      
      From-SVN: r255122
      Jonathan Wakely committed
    • Enable VBMI2 support [3/7] · de860379
      gcc/
      	config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
      	_mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
      	_mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
      	_mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
      	_mm512_maskz_expandloadu_epi16): New intrinsics.
      	config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
      	_mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
      	_mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
      	_mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
      	_mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
      	_mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
      	_mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
      	_mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
      	_mm256_maskz_expandloadu_epi8): New intrinsics.
      	config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
      	V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
      	V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
      	V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
      	config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
      	config/i386/sse.md (VI248_VLBW): New iterator.
      	(expand<mode>_mask, expand<mode>_maskz): New patterns.
      
      gcc/testsuite/
      	gcc.target/i386/avx512f-vpexpandb-1.c: New test.
      	gcc.target/i386/avx512f-vpexpandb-2.c: Ditto.
      	gcc.target/i386/avx512f-vpexpandw-1.c: Ditto.
      	gcc.target/i386/avx512f-vpexpandw-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandb-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandb-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandw-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpexpandw-2.c: Ditto.
      
      From-SVN: r255121
      Julia Koval committed
    • Enable VBMI2 support [2/7] · 11cca3ca
      gcc/
      	config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
      	config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
      	_mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
      	_mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
      	_mm512_mask_compressstoreu_epi16): New.
      	config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
      	_mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
      	_mm_mask_compress_epi16, _mm_maskz_compress_epi16,
      	_mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
      	_mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
      	_mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
      	_mm256_mask_compressstoreu_epi8): New.
      	config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
      	VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
      	VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
      	VOID_FTYPE_PV8HI_V8HI_UQI): New types.
      	config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
      	__builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
      	__builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
      	__builtin_ia32_compresshi128_mask,
      	__builtin_ia32_compressstoreuqi512_mask,
      	__builtin_ia32_compressstoreuhi512_mask,
      	__builtin_ia32_compressstoreuqi256_mask,
      	__builtin_ia32_compressstoreuqi128_mask,
      	__builtin_ia32_compressstoreuhi256_mask,
      	__builtin_ia32_compressstoreuhi128_mask): New builtins.
      	config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
      	array for flags2.
      	(ix86_expand_special_args_builtin): Handle new types.
      	(s4fma_expand): Handle new builtin array.
      	config/i386/immintrin.h: Include new headers.
      	config/i386/sse.md (VI12_AVX512VLBW): New iterator.
      	(compress<mode>_mask, compressstore<mode>_mask): New patterns.
      
      gcc/testsuite/
      	gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit.
      	gcc.target/i386/avx512f-vpcompressb-1.c: New test.
      	gcc.target/i386/avx512f-vpcompressb-2.c: Ditto.
      	gcc.target/i386/avx512f-vpcompressw-1.c: Ditto.
      	gcc.target/i386/avx512f-vpcompressw-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto.
      	gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto.
      	gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New.
      
      From-SVN: r255119
      Julia Koval committed
    • rs6000.c (rs6000_gimple_fold_builtin): Formatting fixes. · cd761692
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
      	fixes.  Declare temp and g variables at the top in order to avoid
      	{} in most of the cases.
      
      From-SVN: r255118
      Jakub Jelinek committed
    • parser.c (cp_parser_omp_declare): Change return type to bool from void, return… · 9c378aa9
      parser.c (cp_parser_omp_declare): Change return type to bool from void, return true for declare simd.
      
      	* parser.c (cp_parser_omp_declare): Change return type to bool from
      	void, return true for declare simd.
      	(cp_parser_pragma): Return cp_parser_omp_declare returned value
      	rather than always false.
      
      From-SVN: r255117
      Jakub Jelinek committed
    • c-parser.c (c_parser_omp_declare_simd): Reject declare simd in pragma_stmt context. · 41521dee
      	* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
      	pragma_stmt context.
      
      	* gcc.dg/gomp/declare-simd-1.c (f9): Remove.
      	* gcc.dg/gomp/declare-simd-5.c: New test.
      
      From-SVN: r255116
      Jakub Jelinek committed
    • re PR fortran/81841 (THREADPRIVATE (OpenMP) wrongly rejected in BLOCK DATA) · 3b575376
      	PR fortran/81841
      	* parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of
      	BLOCK DATA.
      
      	* libgomp.fortran/pr81841.f90: New test.
      
      From-SVN: r255115
      Jakub Jelinek committed
    • pr65240-1.C: Add -Wno-return-type to dg-options. · 11aa5637
      	* g++.dg/pr65240-1.C: Add -Wno-return-type to dg-options.
      	* g++.dg/pr65240-2.C: Likewise.
      	* g++.dg/pr65240-3.C: Likewise.
      	* g++.dg/pr65240-4.C: Likewise.
      
      From-SVN: r255114
      Jakub Jelinek committed
    • Simplify ptr - 0 · d43177ad
      2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
      
      	* match.pd (ptr-0): New transformation.
      
      From-SVN: r255113
      Marc Glisse committed
    • This patch adds support for modelling the varying costs of different addressing modes. · 612ea540
      This patch adds support for modelling the varying costs of
      different addressing modes. The generic cost table treats
      all addressing modes as having equal cost.
      
      gcc/ChangeLog:
      
      2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
      
              * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
              (struct addr_mode_cost_table): New.
              (struct tune_params): Add field addr_mode_costs.
              * config/arm/arm.c (generic_addr_mode_costs): New.
              (arm_slowmul_tune): Initialise addr_mode_costs field.
              (arm_fastmul_tune): Likewise.
              (arm_strongarm_tune): Likewise.
              (arm_xscale_tune): Likewise.
              (arm_9e_tune): Likewise.
              (arm_marvell_pj4_tune): Likewise.
              (arm_v6t2_tune): Likewise.
              (arm_cortex_tune): Likewise.
              (arm_cortex_a8_tune): Likewise.
              (arm_cortex_a7_tune): Likewise.
              (arm_cortex_a15_tune): Likewise.
              (arm_cortex_a35_tune): Likewise.
              (arm_cortex_a53_tune): Likewise.
              (arm_cortex_a57_tune): Likewise.
              (arm_exynosm1_tune): Likewise.
              (arm_xgene1_tune): Likewise.
              (arm_cortex_a5_tune): Likewise.
              (arm_cortex_a9_tune): Likewise.
              (arm_cortex_a12_tune): Likewise.
              (arm_cortex_a73_tune): Likewise.
              (arm_v7m_tune): Likewise.
              (arm_cortex_m7_tune): Likewise.
              (arm_v6m_tune): Likewise.
              (arm_fa726te_tune): Likewise.
              (arm_mem_costs): Use table lookup to calculate cost of addressing
              mode.
      
      From-SVN: r255112
      Charles Baylis committed
    • [ARM] Refactor costs calculation for MEM. · c138eb5c
      This patch moves the calculation of costs for MEM into a
      separate function, and reforms the calculation into two
      parts. Firstly any additional cost of the addressing mode
      is calculated, and then the cost of the memory access itself
      is added.
      
      In this patch, the calculation of the cost of the addressing
      mode is omitted, to be added in a subsequent patch.
      
      gcc/ChangeLog:
      
      <date>  Charles Baylis  <charles.baylis@linaro.org>
      
              * config/arm/arm.c (arm_mem_costs): New function.
              (arm_rtx_costs_internal): Use arm_mem_costs.
      
      gcc/testsuite/ChangeLog:
      
      <date>  Charles Baylis  <charles.baylis@linaro.org>
      
              * gcc.target/arm/addr-modes-float.c: New test.
              * gcc.target/arm/addr-modes-int.c: New test.
              * gcc.target/arm/addr-modes.h: New header.
      
      From-SVN: r255111
      Charles Baylis committed