- 27 Nov, 2017 5 commits
-
-
* g++.dg/ubsan/null-8.C (bar): New function. (foo): Use bar instead of __builtin_printf. From-SVN: r255162
Jakub Jelinek committed -
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, 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 -
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 -
From-SVN: r255158
GCC Administrator committed
-
- 26 Nov, 2017 3 commits
-
-
* 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 -
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 -
From-SVN: r255153
GCC Administrator committed
-
- 25 Nov, 2017 4 commits
-
-
PR rtl-optimization/81553 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z) to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP is a shift where C1 has different mode than the whole shift, use C1's mode for MULT rather than the shift's mode. * gcc.c-torture/compile/pr81553.c: New test. From-SVN: r255150
Jakub Jelinek committed -
* g++.dg/abi/structret1.C (FrameworkObject::action): Return a value. From-SVN: r255149
Andreas Schwab committed -
PR target/82848 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold builtins not enabled in the currently selected ISA. * gcc.target/powerpc/pr82848.c: New test. From-SVN: r255148
Jakub Jelinek committed -
From-SVN: r255147
GCC Administrator committed
-
- 24 Nov, 2017 14 commits
-
-
re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max') PR fortran/81304 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set attr.implicit_type in intrinsic_sym to avoid undesirable warning. * testsuite/libgomp.fortran/pr81304.f90: New test. From-SVN: r255144
Jakub Jelinek committed -
This patch implements the some of the division optimizations discussed in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026. The division reciprocal optimization now handles divisions by squares: x / (y * y) -> x * (1 / y) * (1 / y) This requires at least one more division by y before it triggers - the 3 divisions of (1/ y) are then CSEd into a single division. Overall this changes 1 division into 1 multiply, which is generally much faster. 2017-11-24 Jackson Woodruff <jackson.woodruff@arm.com> gcc/ PR tree-optimization/71026 * tree-ssa-math-opts (is_division_by_square, is_square_of): New. (insert_reciprocals): Change to insert reciprocals before a division by a square and to insert the square of a reciprocal. (execute_cse_reciprocals_1): Change to consider division by a square. (register_division_in): Add importance parameter. testsuite/ PR tree-optimization/71026 * gfortran.dg/extract_recip_1.f: New test. * gcc.dg/extract_recip_3.c: New test. * gcc.dg/extract_recip_4.c: New test. From-SVN: r255141
Jackson Woodruff committed -
2017-11-24 Richard Biener <rguenther@suse.de> PR tree-optimization/82402 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly set SSA_NAME_OCCURS_IN_ABNORMAL_PHI. * gcc.dg/torture/pr82402.c: New testcase. From-SVN: r255140
Richard Biener committed -
2017-11-24 Marc Glisse <marc.glisse@inria.fr> * match.pd (0-ptr): New transformation. From-SVN: r255139
Marc Glisse committed -
PR bootstrap/83015 * ipa-inline.c (inline_small_functions): Set current badnes correctly when skipping checking. From-SVN: r255138
Jan Hubicka committed -
From-SVN: r255137
Janne Blomqvist committed -
2017-11-24 Richard Biener <rguenther@suse.de> PR tree-optimization/83128 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs. (vn_reference_lookup_3): Likewise. * gcc.dg/tree-ssa/ssa-fre-62.c: New testcase. From-SVN: r255136
Richard Biener committed -
Still some prototypes that didn't match the implementation. 2017-11-24 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/36313 * m4/maxloc2s.m4: Replace int with gfc_charlen_type, take 3. * m4/minloc2s.m4: Likewise. * generated/maxloc2_16_s1.c: Regenerated. * generated/maxloc2_16_s4.c: Regenerated. * generated/maxloc2_4_s1.c: Regenerated. * generated/maxloc2_4_s4.c: Regenerated. * generated/maxloc2_8_s1.c: Regenerated. * generated/maxloc2_8_s4.c: Regenerated. * generated/minloc2_16_s1.c: Regenerated. * generated/minloc2_16_s4.c: Regenerated. * generated/minloc2_4_s1.c: Regenerated. * generated/minloc2_4_s4.c: Regenerated. * generated/minloc2_8_s1.c: Regenerated. * generated/minloc2_8_s4.c: Regenerated. From-SVN: r255135
Janne Blomqvist committed -
PR sanitizer/83014 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling tree_to_uhwi twice. * gcc.dg/ubsan/pr83014.c: New test. From-SVN: r255134
Jakub Jelinek committed -
tree-object-size.c (pass_through_call): Use gimple_call_return_flags ERF_RETURN*ARG* for builtins other than... * tree-object-size.c (pass_through_call): Use gimple_call_return_flags ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED, check for the latter with gimple_call_builtin_p. Do not handle BUILT_IN_STPNCPY_CHK which is not a pass through call. * gcc.dg/builtin-object-size-18.c: New test. From-SVN: r255133
Jakub Jelinek committed -
From-SVN: r255132
Kirill Yukhin committed -
From-SVN: r255131
Kirill Yukhin committed -
From-SVN: r255130
GCC Administrator committed -
* libsupc++/new (launder): Add nodiscard attribute. * testsuite/18_support/launder/nodiscard.cc: New test. From-SVN: r255127
Jonathan Wakely committed
-
- 23 Nov, 2017 14 commits
-
-
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 -
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 -
* 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 * 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 -
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 -
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 -
* 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 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. * gcc.dg/gomp/declare-simd-1.c (f9): Remove. * gcc.dg/gomp/declare-simd-5.c: New test. From-SVN: r255116
Jakub Jelinek committed -
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 -
* 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 -
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. 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 -
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
-