| 2017-12-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/83536 |
| * config/i386/i386.c (ix86_attribute_table): Remove excess |
| initializer for "shared" attribute. |
| |
| 2017-12-30 Tom de Vries <tom@codesourcery.com> |
| |
| PR libgomp/83046 |
| * omp-expand.c (expand_omp_target): If in_lto_p, mark offload_funcs with |
| DECL_PRESERVE_P. |
| * lto-streamer-out.c (prune_offload_funcs): New function. Remove |
| offload_funcs entries that no longer have a corresponding cgraph_node. |
| Mark the remaining ones as DECL_PRESERVE_P. |
| (output_lto): Call prune_offload_funcs. |
| |
| 2017-12-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, |
| vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>, |
| vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, |
| vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, |
| vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, |
| vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1, vpdpbusd_<mode>, |
| vpdpbusd_<mode>_mask, vpdpbusd_<mode>_maskz, vpdpbusd_<mode>_maskz_1, |
| vpdpbusds_<mode>, vpdpbusds_<mode>_mask, vpdpbusds_<mode>_maskz, |
| vpdpbusds_<mode>_maskz_1, vpdpwssd_<mode>, vpdpwssd_<mode>_mask, |
| vpdpwssd_<mode>_maskz, vpdpwssd_<mode>_maskz_1, vpdpwssds_<mode>, |
| vpdpwssds_<mode>_mask, vpdpwssds_<mode>_maskz, |
| vpdpwssds_<mode>_maskz_1, vaesdec_<mode>, vaesdeclast_<mode>, |
| vaesenc_<mode>, vpclmulqdq_<mode>, |
| avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Formatting fixes. |
| |
| 2017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add |
| _Float<N> and _Float<N>X variants for rounding built-in |
| functions. |
| (_Float<N> and _Float<N>X BUILT_IN_FLOOR): Likewise. |
| (_Float<N> and _Float<N>X BUILT_IN_NEARBYINT): Likewise. |
| (_Float<N> and _Float<N>X BUILT_IN_RINT): Likewise. |
| (_Float<N> and _Float<N>X BUILT_IN_ROUND): Likewise. |
| (_Float<N> and _Float<N>X BUILT_IN_TRUNC): Likewise. |
| * builtins.c (mathfn_built_in_2): Likewise. |
| * internal-fn.def (CEIL): Likewise. |
| (FLOOR): Likewise. |
| (NEARBYINT): Likewise. |
| (RINT): Likewise. |
| (ROUND): Likewise. |
| (TRUNC): Likewise. |
| * convert.c (convert_to_integer_1): Likewise. |
| * fold-const.c (tree_call_nonnegative_warnv_p): Likewise. |
| (integer_valued_real_call_p): Likewise. |
| * fold-const-call.c (fold_const_call_ss): Likewise. |
| * gencfn-macros.c (print_case_cfn): Change CFN and operator |
| printers to take a const char * suffix instead of a bool. |
| (print_define_operator_list): Likewise. |
| (fltall_suffixes): New list of suffixes, that include the |
| traditional suffixes as well as all of the _Float<N> and |
| _Float<N>X suffixes. |
| (main): For _Float<N> and _Float<N>X functions, emit both |
| <name>_FN and <name>_ALL variants. The <macro>_FN variant only |
| has the _Float<N> and _Float<N>X case names or operators. The |
| <name>_ALL variant has both the traditional and the |
| _Float<N>/_Float<N>X case names or operators. |
| * match.pd (COPYSIGN optimizations): Provide optimizations for |
| _Float<N> and _Float<N>X types where possible. |
| (MIN/MAX optimizations): Likewise. |
| (sqrt optimizations): Likewise. |
| (rounding optimizations): Likewise. |
| |
| 2017-12-28 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use |
| gen_int_mode rather than GEN_INT. |
| * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise. |
| |
| 2017-12-28 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p |
| instead of CONSTANT_P. |
| (gen_vec_series): Likewise. |
| * simplify-rtx.c (simplify_binary_operation_1): Likewise. |
| |
| 2017-12-28 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add |
| CC_STATUS_INIT. |
| |
| 2017-12-27 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New. |
| (aarch64_ld1x2<VDC:mode>): Likewise. |
| (aarch64_simd_ld1<mode>_x2): Likewise. |
| (aarch64_simd_ld1<mode>_x2): Likewise. |
| * config/aarch64/arm_neon.h (vld1_u8_x2): New. |
| (vld1_s8_x2): Likewise. |
| (vld1_u16_x2): Likewise. |
| (vld1_s16_x2): Likewise. |
| (vld1_u32_x2): Likewise. |
| (vld1_s32_x2): Likewise. |
| (vld1_u64_x2): Likewise. |
| (vld1_s64_x2): Likewise. |
| (vld1_f16_x2): Likewise. |
| (vld1_f32_x2): Likewise. |
| (vld1_f64_x2): Likewise. |
| (vld1_p8_x2): Likewise. |
| (vld1_p16_x2): Likewise. |
| (vld1_p64_x2): Likewise. |
| (vld1q_u8_x2): Likewise. |
| (vld1q_s8_x2): Likewise. |
| (vld1q_u16_x2): Likewise. |
| (vld1q_s16_x2): Likewise. |
| (vld1q_u32_x2): Likewise. |
| (vld1q_s32_x2): Likewise. |
| (vld1q_u64_x2): Likewise. |
| (vld1q_s64_x2): Likewise. |
| (vld1q_f16_x2): Likewise. |
| (vld1q_f32_x2): Likewise. |
| (vld1q_f64_x2): Likewise. |
| (vld1q_p8_x2): Likewise. |
| (vld1q_p16_x2): Likewise. |
| (vld1q_p64_x2): Likewise. |
| |
| 2017-12-27 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/83552 |
| * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result |
| of get_string_lenth to a SSA_NAME if not a GIMPLE value. |
| |
| 2017-12-27 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_option_override): Disable |
| -gstatement-frontiers. |
| |
| 2017-12-26 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/83513 |
| * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness |
| before priority comparison. |
| |
| 2017-12-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/83488 |
| * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from |
| ix86_isa_flags2 to ix86_isa_flags. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Test |
| OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in |
| isa_flags rather than isa_flags2. |
| * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq |
| and -mavx512bitalg from isa2_opts to isa_opts. |
| (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ |
| in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit |
| and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2. |
| Formatting fixes. |
| (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or |
| OPTION_MASK_ISA_AVX512F ored with another option similarly to |
| OPTION_MASK_ISA_AVX512VL. Even for OPTION_MASK_ISA_AVX512VL don't |
| clear it if mask is just OPTION_MASK_ISA_AVX512VL itself. |
| (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and |
| OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle |
| OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way. |
| * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG |
| builtins from bdesc_args2 to bdesc_args section. |
| (__builtin_ia32_compressstoreuqi512_mask, |
| __builtin_ia32_compressstoreuhi512_mask, |
| __builtin_ia32_compressstoreuqi256_mask, |
| __builtin_ia32_expandloadqi512_mask, |
| __builtin_ia32_expandloadqi512_maskz, |
| __builtin_ia32_expandloadhi512_mask, |
| __builtin_ia32_expandloadhi512_maskz, |
| __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask, |
| __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask, |
| __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask, |
| __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask, |
| __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask, |
| __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask, |
| __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask, |
| __builtin_ia32_vpshldv_v32hi_maskz, |
| __builtin_ia32_vpopcountb_v64qi_mask, |
| __builtin_ia32_vpopcountw_v32hi_mask, |
| __builtin_ia32_vpshufbitqmb512_mask, |
| __builtin_ia32_vpshufbitqmb256_mask): Add |
| " | OPTION_MASK_ISA_AVX512BW". |
| (__builtin_ia32_expandloadqi256_mask, |
| __builtin_ia32_expandloadqi256_maskz, |
| __builtin_ia32_vpopcountb_v32qi_mask): Add |
| " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW". |
| (__builtin_ia32_expandloadhi256_mask, |
| __builtin_ia32_expandloadhi256_maskz, |
| __builtin_ia32_expandloadqi128_mask, |
| __builtin_ia32_expandloadqi128_maskz, |
| __builtin_ia32_expandloadhi128_mask, |
| __builtin_ia32_expandloadhi128_maskz, |
| __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask, |
| __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask, |
| __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask, |
| __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask, |
| __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask, |
| __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask, |
| __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask, |
| __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask, |
| __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask, |
| __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask, |
| __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask, |
| __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask, |
| __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask, |
| __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi, |
| __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz, |
| __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask, |
| __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si, |
| __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz, |
| __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask, |
| __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di, |
| __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz, |
| __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, |
| __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, |
| __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, |
| __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask, |
| __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si, |
| __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz, |
| __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, |
| __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, |
| __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz, |
| __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi, |
| __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi, |
| __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, |
| __builtin_ia32_vpopcountw_v8hi_mask): Add |
| " | OPTION_MASK_ISA_AVX512VL". |
| * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, |
| _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, |
| _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64, |
| _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32, |
| _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64, |
| _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32, |
| _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, |
| _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16, |
| _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, |
| _mm512_shldv_epi64, _mm512_mask_shldv_epi64, |
| _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics. |
| * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask, |
| _mm_mask_bitshuffle_epi64_mask): Likewise. |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, |
| OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET. |
| (OPTION_MASK_ISA_AVX512F_UNSET): Or in |
| OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and |
| OPTION_MASK_ISA_AVX512BITALG_UNSET. |
| (OPTION_MASK_ISA2_AVX512F_UNSET, |
| OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define. |
| (ix86_handle_option): For -mno-general-regs-only, clear from |
| ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than |
| just OPTION_MASK_ISA_MPX. For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and |
| -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from |
| ix86_isa_flags2. For -mno-avx512f likewise, instead of masking |
| individually listed ISAs. For -m{,no-}avx512{vpopcntdq,bitalg} adjust |
| for moving from ix86_isa_flags2 to ix86_isa_flags. |
| |
| 2017-12-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/83553 |
| * fold-const.c (struct contains_label_data): New type. |
| (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless |
| inside of a SWITCH_BODY seen during the walk. |
| (contains_label_p): Use walk_tree instead of |
| walk_tree_without_duplicates, prepare data for contains_label_1 and |
| provide own pset. |
| |
| 2017-12-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/83547 |
| * tree-iterator.c (alloc_stmt_list): Start with cleared |
| TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated |
| or old one reused. |
| |
| PR target/83488 |
| * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor |
| enable avx512f explicitly in #pragma GCC target. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si, |
| __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz, |
| __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask, |
| __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si, |
| __builtin_ia32_vpdpbusds_v8si_mask, |
| __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si, |
| __builtin_ia32_vpdpbusds_v4si_mask, |
| __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si, |
| __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz, |
| __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask, |
| __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si, |
| __builtin_ia32_vpdpwssds_v8si_mask, |
| __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si, |
| __builtin_ia32_vpdpwssds_v4si_mask, |
| __builtin_ia32_vpdpwssds_v4si_maskz): Use |
| OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of |
| just OPTION_MASK_ISA_AVX512VNNI. |
| |
| 2017-12-22 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/82027 |
| * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former |
| clones. |
| |
| 2017-12-22 Julia Koval <julia.koval@intel.com> |
| Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET, |
| OPTION_MASK_ISA_AVX512BITALG_UNSET): New. |
| (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting. |
| * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h. |
| * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16, |
| _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16, |
| _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8, |
| _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8, |
| _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16, |
| _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, |
| _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8, |
| _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8, |
| _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics. |
| * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64, |
| _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32, |
| _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64, |
| _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64, |
| _mm256_maskz_popcnt_epi64): New intrinsics. |
| * config/i386/cpuid.h (bit_AVX512BITALG): New bit. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg. |
| * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI, |
| V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI, |
| V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di, |
| __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di, |
| __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si, |
| __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si, |
| __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi, |
| __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi, |
| __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi, |
| __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi, |
| __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi, |
| __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, |
| __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask, |
| __builtin_ia32_vpshufbitqmb256_mask, |
| __builtin_ia32_vpshufbitqmb512_mask): New builtins. |
| * config/i386/i386-c.c (__AVX512BITALG__): New. |
| * config/i386/i386.c (isa2_opts): Add -mavx512bitalg. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| (ix86_expand_args_builtin): Handle new types. |
| * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New. |
| * config/i386/i386.opt: Add -mavx512bitalg. |
| * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and |
| avx512bitalgintrin.h. |
| * config/i386/sse.md (VI48_AVX512VLBW): New iterator. |
| (vpopcount<mode><mask_name>): Add more types. |
| (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New. |
| * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq. |
| |
| 2017-12-22 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET): |
| Or in OPTION_MASK_ISA_AVX512F_SET. |
| (OPTION_MASK_ISA_AVX512F_UNSET): Or in |
| OPTION_MASK_ISA_AVX512VNNI_UNSET. |
| (ix86_handle_option): Adjust for |
| OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags. |
| * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2 |
| section to ARGS. |
| * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in |
| isa_flag instead of isa_flag2. |
| * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from |
| isa_opts2 to isa_opts. |
| * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2 |
| to ix86_isa_flags. |
| |
| 2017-12-22 Mike Stump <mikestump@comcast.net> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll. |
| |
| 2017-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/83487 |
| * config/i386/i386.c (ix86_function_arg_boundary): Return |
| PARM_BOUNDARY for TYPE_EMPTY_P types. |
| |
| PR c/83448 |
| * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index |
| if navail is >= dir.len. |
| |
| 2017-12-21 Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix |
| triplet for ilp32. |
| |
| 2017-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/80747 |
| PR rtl-optimization/83512 |
| * cfgrtl.c (force_nonfallthru_and_redirect): When splitting |
| succ edge from ENTRY, copy partition from e->dest to the newly |
| created bb. |
| * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is |
| ENTRY, use BB_PARTITION of its successor block as current_partition. |
| Don't copy partition when splitting succ edge from ENTRY. |
| |
| PR tree-optimization/83523 |
| * tree-ssa-math-opts.c (is_widening_mult_p): Return false if |
| for INTEGER_TYPE TYPE_OVERFLOW_TRAPS. |
| (convert_mult_to_fma): Likewise. |
| |
| PR tree-optimization/83521 |
| * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use |
| gimple_build_assign without code on result of |
| fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create |
| a VIEW_CONVERT_EXPR. |
| |
| 2017-12-21 Andrew Pinski <apinski@cavium.com> |
| Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle |
| multi-arch for ilp32. |
| |
| 2017-12-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/83467 |
| * config/i386/i386.md (*ashl<mode>3_mask): Add operand |
| constraints to operand 2. |
| (*ashl<mode>3_mask_1): Ditto. |
| (*<shift_insn><mode>3_mask): Ditto. |
| (*<shift_insn><mode>3_mask_1): Ditto. |
| (*<rotate_insn><mode>3_mask): Ditto. |
| (*<rotate_insn><mode>3_mask_1): Ditto. |
| |
| 2017-12-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| * reorg.c (make_return_insns): Reemit each insn with its own location. |
| |
| 2017-12-21 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code |
| generation for cases where splatting a value is not useful. |
| * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge |
| across a vec_duplicate and a paradoxical subreg forming a vector |
| mode to a vec_concat. |
| |
| 2017-12-21 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * combine.c (simplify_set): Do not transform subregs to zero_extends |
| if the destination is not a scalar int mode. |
| |
| 2017-12-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c++/82872 |
| * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the |
| shared zero if the input has overflowed. |
| |
| 2017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod |
| support for Cortex-A55 and Cortex-A75. |
| |
| 2017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * common/config/arm/arm-common.c (compare_opt_names): Add function |
| comment. Use strcmp instead of manual loop. |
| |
| 2017-12-21 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/83509 |
| * gcov-dump.c (dump_gcov_file): Do not read info about |
| support_unexecuted_blocks for gcda files. |
| |
| 2017-12-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/82973 |
| * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ... |
| (valid_for_const_vector_p): ... this. |
| * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ... |
| (valid_for_const_vector_p): ... this. Adjust function comment. |
| (gen_vec_duplicate): Adjust caller. |
| * optabs.c (expand_vector_broadcast): Likewise. |
| * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into |
| CONST_VECTOR if some element isn't simplified valid_for_const_vector_p |
| constant. |
| (simplify_const_binary_operation): Likewise. Use CONST_FIXED_P macro |
| instead of GET_CODE == CONST_FIXED. |
| (simplify_subreg): Use CONST_FIXED_P macro instead of |
| GET_CODE == CONST_FIXED. |
| |
| PR target/83488 |
| * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and |
| -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe, |
| -mclzero and -mmwaitx entries from isa_opts to isa_opts2. |
| (ix86_option_override_internal): Adjust for |
| OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2 |
| and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags. |
| (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks. |
| (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling. |
| Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX |
| and OPTION_MASK_ISA_CLZERO builtins. Use def_builtin instead of |
| def_builtin2 for CET builtins. |
| (ix86_expand_builtin): Remove bdesc_special_args2 handling. Fix |
| up formatting in IX86_BUILTIN_RDPID code. |
| * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2 |
| section to SPECIAL_ARGS and from ARGS2 section to ARGS. |
| * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from |
| ix86_isa_flags2 to ix86_isa_flags. |
| (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to |
| ix86_isa_flags2. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Check for |
| OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag. |
| Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead |
| of isa_flag2. |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET): |
| Or in OPTION_MASK_ISA_AVX512F_SET. |
| (OPTION_MASK_ISA_AVX512F_UNSET): Or in |
| OPTION_MASK_ISA_AVX512VBMI2_UNSET. |
| (ix86_handle_option): Adjust for |
| OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags |
| and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-data-ref.h (prune_runtime_alias_test_list): Take the |
| factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT. |
| * tree-data-ref.c (prune_runtime_alias_test_list): Likewise. |
| Track polynomial offsets. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): |
| Treat drb->init as a poly_int. Fail if its misalignment wrt |
| vector_alignment isn't known. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold |
| field. |
| (LOOP_VINFO_VERSIONING_THRESHOLD): New macro |
| (vect_loop_versioning): Take the loop versioning threshold as a |
| separate parameter. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| versioning_threshold. |
| (vect_analyze_loop_2): Compute the loop versioning threshold |
| whenever loop versioning is needed, and store it in the new |
| field rather than combining it with the cost model threshold. |
| (vect_transform_loop): Update call to vect_loop_versioning. |
| Try to combine the loop versioning and cost thresholds here. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as |
| poly_uint64_pod rather than an unsigned HOST_WIDE_INT. |
| * tree-loop-distribution.c (classify_builtin_st): Update accordingly. |
| * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from |
| an unsigned HOST_WIDE_INT to a poly_uint64_pod. |
| (group_compare_offset): Update accordingly. |
| (split_small_address_groups_p): Likewise. |
| (record_use): Take addr_offset as a poly_uint64 rather than |
| an unsigned HOST_WIDE_INT. |
| (strip_offset): Return the offset as a poly_uint64 rather than |
| an unsigned HOST_WIDE_INT. |
| (record_group_use, split_address_groups): Track polynomial offsets. |
| (add_iv_candidate_for_use): Likewise. |
| (addr_offset_valid_p): Take the offset as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (strip_offset_1): Return the offset as a poly_int64 rather than |
| a HOST_WIDE_INT. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (get_binfo_at_offset): Take the offset as a poly_int64 |
| rather than a HOST_WIDE_INT. |
| * tree.c (get_binfo_at_offset): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64 |
| rather than a HOST_WIDE_INT. |
| * tree-sra.c (build_ref_for_offset): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * fold-const.h (mem_ref_offset): Return a poly_offset_int rather |
| than an offset_int. |
| * tree.c (mem_ref_offset): Likewise. |
| (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints. |
| * builtins.c (get_object_alignment_2): Likewise. |
| * expr.c (get_inner_reference, expand_expr_real_1): Likewise. |
| * gimple-fold.c (get_base_constructor): Likewise. |
| * gimple-ssa-strength-reduction.c (restructure_reference): Likewise. |
| * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): |
| Likewise. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. |
| * ipa-prop.c (compute_complex_assign_jump_func): Likewise. |
| (get_ancestor_addr_info): Likewise. |
| * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise. |
| * match.pd: Likewise. |
| * tree-data-ref.c (dr_analyze_innermost): Likewise. |
| * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. |
| * tree-eh.c (tree_could_trap_p): Likewise. |
| * tree-object-size.c (addr_object_size): Likewise. |
| * tree-ssa-address.c (copy_ref_info): Likewise. |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. |
| (indirect_refs_may_alias_p): Likewise. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. |
| * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. |
| (non_rewritable_mem_ref_base): Likewise. |
| * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. |
| * tree-vrp.c (vrp_prop::check_array_ref): Likewise. |
| * varasm.c (decode_addr_const): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial |
| offsets for MEM_REFs. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment |
| as a poly_uint64 rather than an unsigned int. |
| * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * varasm.c (addr_const::offset): Change from HOST_WIDE_INT |
| to poly_int64. |
| (decode_addr_const): Update accordingly. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (bit_field_size, bit_field_offset): New functions. |
| * hsa-gen.c (gen_hsa_addr): Use them. |
| * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise. |
| (simplify_vector_constructor): Likewise. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. |
| * tree-cfg.c (verify_expr): Require the sizes and offsets of a |
| BIT_FIELD_REF to be poly_uint64s rather than uhwis. |
| * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with |
| tree_fits_uhwi_p. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.h (emit_group_load, emit_group_load_into_temps) |
| (emit_group_store): Take the size as a poly_int64 rather than an int. |
| * expr.c (emit_group_load_1, emit_group_load): Likewise. |
| (emit_group_load_into_temp, emit_group_store): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * ira-int.h (ira_spilled_reg_stack_slot::width): Change from |
| an unsigned int to a poly_uint64. |
| * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the |
| sizes as poly_uint64s rather than unsigned ints. |
| * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): |
| Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * lra-constraints.c (emit_inc): Change inc_amount from an int |
| to a poly_int64. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT |
| to a poly_uint64. |
| (add_stack_var, stack_var_cmp, partition_stack_vars) |
| (dump_stack_var_partition): Update accordingly. |
| (alloc_stack_frame_space): Take the size as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes. |
| (defer_stack_allocation, estimated_stack_frame_size): Likewise. |
| (account_stack_vars, expand_one_var): Likewise. Return a poly_uint64 |
| rather than a HOST_WIDE_INT. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (return_pops_args): Treat both the input and output |
| sizes as poly_int64s rather than HOST_WIDE_INTS. |
| * targhooks.h (default_return_pops_args): Update accordingly. |
| * targhooks.c (default_return_pops_args): Likewise. |
| * doc/tm.texi: Regenerate. |
| * emit-rtl.h (incoming_args): Change pops_args, size and |
| outgoing_args_size from int to poly_int64_pod. |
| * function.h (expr_status): Change x_pending_stack_adjust and |
| x_stack_pointer_delta from int to poly_int64. |
| (args_size::constant): Change from HOST_WIDE_INT to poly_int64. |
| (ARGS_SIZE_RTX): Update accordingly. |
| * calls.c (highest_outgoing_arg_in_use): Change from int to |
| unsigned int. |
| (stack_usage_watermark, stored_args_watermark): New variables. |
| (stack_region_maybe_used_p, mark_stack_region_used): New functions. |
| (emit_call_1): Change the stack_size and rounded_stack_size |
| parameters from HOST_WIDE_INT to poly_int64. Track n_popped |
| as a poly_int64. |
| (save_fixed_argument_area): Check stack_usage_watermark. |
| (initialize_argument_information): Change old_pending_adj from |
| a HOST_WIDE_INT * to a poly_int64_pod *. |
| (compute_argument_block_size): Return the size as a poly_int64 |
| rather than an int. |
| (finalize_must_preallocate): Track polynomial argument sizes. |
| (compute_argument_addresses): Likewise. |
| (internal_arg_pointer_based_exp): Track polynomial offsets. |
| (mem_overlaps_already_clobbered_arg_p): Rename to... |
| (mem_might_overlap_already_clobbered_arg_p): ...this and take the |
| size as a poly_uint64 rather than an unsigned HOST_WIDE_INT. |
| Check stored_args_used_watermark. |
| (load_register_parameters): Update accordingly. |
| (check_sibcall_argument_overlap_1): Likewise. |
| (combine_pending_stack_adjustment_and_call): Take the unadjusted |
| args size as a poly_int64 rather than an int. Return a bool |
| indicating whether the optimization was possible and return |
| the new adjustment by reference. |
| (check_sibcall_argument_overlap): Track polynomail argument sizes. |
| Update stored_args_watermark. |
| (can_implement_as_sibling_call_p): Handle polynomial argument sizes. |
| (expand_call): Likewise. Maintain stack_usage_watermark and |
| stored_args_watermark. Update calls to |
| combine_pending_stack_adjustment_and_call. |
| (emit_library_call_value_1): Handle polynomial argument sizes. |
| Call stack_region_maybe_used_p and mark_stack_region_used. |
| Maintain stack_usage_watermark. |
| (store_one_arg): Likewise. Update call to |
| mem_overlaps_already_clobbered_arg_p. |
| * config/arm/arm.c (arm_output_function_prologue): Add a cast to |
| HOST_WIDE_INT. |
| * config/avr/avr.c (avr_outgoing_args_size): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_prologue): |
| Likewise. |
| * config/cr16/cr16.c (cr16_return_pops_args): Update for new |
| TARGET_RETURN_POPS_ARGS interface. |
| (cr16_compute_frame, cr16_initial_elimination_offset): Add casts |
| to HOST_WIDE_INT. |
| * config/ft32/ft32.c (ft32_compute_frame): Likewise. |
| * config/i386/i386.c (ix86_return_pops_args): Update for new |
| TARGET_RETURN_POPS_ARGS interface. |
| (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT. |
| * config/moxie/moxie.c (moxie_compute_frame): Likewise. |
| * config/m68k/m68k.c (m68k_return_pops_args): Update for new |
| TARGET_RETURN_POPS_ARGS interface. |
| * config/vax/vax.c (vax_return_pops_args): Likewise. |
| * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64. |
| (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size. |
| * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise. |
| * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise. |
| * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust |
| and x_stack_pointer_delta from int to poly_int64. |
| * dojump.c (do_pending_stack_adjust): Update accordingly. |
| * explow.c (allocate_dynamic_stack_space): Handle polynomial |
| stack_pointer_deltas. |
| * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64. |
| (pad_to_arg_alignment): Track polynomial offsets. |
| (assign_parm_find_stack_rtl): Likewise. |
| (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes. |
| * toplev.c (output_stack_usage): Update reference to |
| current_function_pushed_stack_size. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * function.c (in_arg_offset, var_offset, dynamic_offset) |
| (out_arg_offset, cfa_offset): Change from int to poly_int64. |
| (instantiate_new_reg): Return the new offset as a poly_int64_pod |
| rather than a HOST_WIDE_INT. |
| (instantiate_virtual_regs_in_rtx): Track polynomial offsets. |
| (instantiate_virtual_regs_in_insn): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (get_args_size, add_args_size_note): New functions. |
| (find_args_size_adjust): Return a poly_int64 rather than a |
| HOST_WIDE_INT. |
| (fixup_args_size_notes): Likewise. Make the same change to the |
| end_args_size parameter. |
| * rtlanal.c (get_args_size, add_args_size_note): New functions. |
| * builtins.c (expand_builtin_trap): Use add_args_size_note. |
| * calls.c (emit_call_1): Likewise. |
| * explow.c (adjust_stack_1): Likewise. |
| * cfgcleanup.c (old_insns_match_p): Update use of |
| find_args_size_adjust. |
| * combine.c (distribute_notes): Track polynomial arg sizes. |
| * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size, |
| end_true_args_size, beg_delay_args_size and end_delay_args_size |
| from HOST_WIDE_INT to poly_int64. |
| (add_cfi_args_size): Take the args_size as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (notice_args_size, notice_eh_throw, maybe_record_trace_start) |
| (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track |
| polynomial arg sizes. |
| * emit-rtl.c (try_split): Use get_args_size. |
| * recog.c (peep2_attempt): Likewise. |
| * reload1.c (reload_as_needed): Likewise. |
| * expr.c (find_args_size_adjust): Return the adjustment as a |
| poly_int64 rather than a HOST_WIDE_INT. |
| (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT |
| to a poly_int64 and change the return type in the same way. |
| (emit_single_push_insn): Track polynomial arg sizes. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.h (push_block, emit_push_insn): Change the "extra" parameter |
| from HOST_WIDE_INT to poly_int64. |
| * expr.c (push_block, emit_push_insn): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * function.h (frame_space): Change start and length from HOST_WIDE_INT |
| to poly_int64. |
| (get_frame_size): Return the size as a poly_int64 rather than a |
| HOST_WIDE_INT. |
| (frame_offset_overflow): Take the offset as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) |
| (assign_stack_temp): Likewise for the size. |
| * function.c (get_frame_size): Return a poly_int64 rather than |
| a HOST_WIDE_INT. |
| (frame_offset_overflow): Take the offset as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (try_fit_stack_local): Take the start, length and size as poly_int64s |
| rather than HOST_WIDE_INTs. Return the offset as a poly_int64_pod |
| rather than a HOST_WIDE_INT. |
| (add_frame_space): Take the start and end as poly_int64s rather than |
| HOST_WIDE_INTs. |
| (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) |
| (assign_stack_temp): Likewise for the size. |
| (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT |
| to poly_int64. |
| (find_temp_slot_from_address): Handle polynomial offsets. |
| (combine_temp_slots): Likewise. |
| * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT |
| to poly_int64. |
| * cfgexpand.c (alloc_stack_frame_space): Return the offset as a |
| poly_int64 rather than a HOST_WIDE_INT. |
| (expand_one_stack_var_at): Take the offset as a poly_int64 rather |
| than a HOST_WIDE_INT. |
| (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle |
| polynomial frame offsets. |
| * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size |
| as a poly_int64 rather than an int. |
| * config/m32r/m32r.c (m32r_compute_frame_size): Likewise. |
| * config/v850/v850-protos.h (compute_frame_size): Likewise. |
| * config/v850/v850.c (compute_frame_size): Likewise. |
| * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise. |
| * config/xtensa/xtensa.c (compute_frame_size): Likewise. |
| * config/pa/pa-protos.h (pa_compute_frame_size): Likewise. |
| * config/pa/pa.c (pa_compute_frame_size): Likewise. |
| * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64 |
| rather than a HOST_WIDE_INT. |
| * explow.c (get_dynamic_stack_base): Likewise. |
| * final.c (final_start_function): Use the constant lower bound |
| of the frame size for -Wframe-larger-than. |
| * ira.c (do_reload): Adjust for new get_frame_size return type. |
| * lra.c (lra): Likewise. |
| * reload1.c (reload): Likewise. |
| * config/avr/avr.c (avr_asm_function_end_prologue): Likewise. |
| * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise. |
| * rtlanal.c (get_initial_register_offset): Return the offset as |
| a poly_int64 rather than a HOST_WIDE_INT. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * reload1.c (elim_table): Change initial_offset, offset and |
| previous_offset from HOST_WIDE_INT to poly_int64_pod. |
| (offsets_at): Change the target array's element type from |
| HOST_WIDE_INT to poly_int64_pod. |
| (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn) |
| (elimination_costs_in_insn, update_eliminable_offsets) |
| (verify_initial_elim_offsets, set_offsets_for_label) |
| (init_eliminable_invariants): Update after above changes. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * reload.h (reload::inc): Change from an int to a poly_int64_pod. |
| * reload.c (combine_reloads, debug_reload_to_stream): Likewise. |
| (decomposition): Change start and end from HOST_WIDE_INT |
| to poly_int64_pod. |
| (decompose, immune_p): Update accordingly. |
| (find_inc_amount): Return a poly_int64 rather than an int. |
| * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64 |
| rather than an int. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (get_inner_reference): Return the bitsize and bitpos |
| as poly_int64_pods rather than HOST_WIDE_INT. |
| * fold-const.h (ptr_difference_const): Return the pointer difference |
| as a poly_int64_pod rather than a HOST_WIDE_INT. |
| * expr.c (get_inner_reference): Return the bitsize and bitpos |
| as poly_int64_pods rather than HOST_WIDE_INT. |
| (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial |
| offsets and sizes. |
| * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64 |
| rather than a HOST_WIDE_INT. Update call to get_inner_reference. |
| (optimize_bit_field_compare): Update call to get_inner_reference. |
| (decode_field_reference): Likewise. |
| (fold_unary_loc): Track polynomial offsets and sizes. |
| (split_address_to_core_and_offset): Return the bitpos as a |
| poly_int64_pod rather than a HOST_WIDE_INT. |
| (ptr_difference_const): Likewise for the pointer difference. |
| * asan.c (instrument_derefs): Track polynomial offsets and sizes. |
| * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise. |
| * dbxout.c (dbxout_expand_expr): Likewise. |
| * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref) |
| (loc_list_from_tree_1, fortran_common): Likewise. |
| * gimple-laddress.c (pass_laddress::execute): Likewise. |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise. |
| * gimplify.c (gimplify_scan_omp_clauses): Likewise. |
| * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. |
| * tree-affine.c (tree_to_aff_combination): Likewise. |
| (get_inner_reference_aff): Likewise. |
| * tree-data-ref.c (split_constant_offset_1): Likewise. |
| (dr_analyze_innermost): Likewise. |
| * tree-scalar-evolution.c (interpret_rhs_expr): Likewise. |
| * tree-sra.c (ipa_sra_check_caller): Likewise. |
| * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. |
| * ubsan.c (maybe_instrument_pointer_overflow): Likewise. |
| (instrument_bool_enum_load, instrument_object_size): Likewise. |
| * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call |
| to get_inner_reference. |
| * hsa-gen.c (gen_hsa_addr): Likewise. |
| * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. |
| * tsan.c (instrument_expr): Likewise. |
| * match.pd: Update call to ptr_difference_const. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * fold-const.c (fold_comparison): Track sizes and offsets as |
| poly_int64s rather than HOST_WIDE_INTs when folding address |
| comparisons. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.h (get_bit_range): Return the bitstart and bitend as |
| poly_uint64s rather than unsigned HOST_WIDE_INTs. Return the bitpos |
| as a poly_int64 rather than a HOST_WIDE_INT. |
| * expr.c (get_bit_range): Likewise. |
| (expand_assignment): Update call accordingly. |
| * fold-const.c (optimize_bit_field_compare): Likewise. |
| |
| 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum. |
| (aarch64_legitimate_address_p): Use it instead of an rtx code, |
| as an optional final parameter. |
| * config/aarch64/aarch64.c (aarch64_classify_address): Likewise. |
| (aarch64_legitimate_address_p): Likewise. |
| (aarch64_print_address_internal): Take an aarch64_addr_query_type |
| instead of an rtx code. |
| (aarch64_address_valid_for_prefetch_p): Update calls accordingly. |
| (aarch64_legitimate_address_hook_p): Likewise. |
| (aarch64_print_ldpstp_address): Likewise. |
| (aarch64_print_operand_address): Likewise. |
| (aarch64_address_cost): Likewise. |
| * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise. |
| * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise. |
| (aarch64_mem_pair_lanes_operand): Likewise. |
| |
| 2017-12-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call |
| update_stmt_if_modified. |
| |
| 2017-12-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR tree-optimization/83491 |
| * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME |
| before walking uses. Improve coding style and comments. |
| |
| 2017-12-20 Tom de Vries <tom@codesourcery.com> |
| |
| * gimple-fold.c (fold_internal_goacc_dim): Simplify. |
| |
| 2017-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/83506 |
| * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for |
| todo_flags_finish. |
| (pass_ipa_free_fn_summary): Add small_p private data member, |
| initialize to false in the ctor. |
| (pass_ipa_free_fn_summary::clone, |
| pass_ipa_free_fn_summary::set_pass_param, |
| pass_ipa_free_fn_summary::gate): New methods. |
| (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions |
| | TODO_dump_symtab if small_p. |
| * passes.def: Add true parm for the existing pass_ipa_free_fn_summary |
| entry and add another instance of the pass with false parm after |
| ipa-pure-const. |
| * ipa-pure-const.c (pass_ipa_pure_const): Don't call |
| ipa_free_fn_summary here. |
| |
| 2017-12-20 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check. |
| |
| 2017-12-20 Martin Sebor <msebor@redhat.com> |
| |
| PR testsuite/83131 |
| * builtins.c (expand_builtin_strlen): Use get_callee_fndecl. |
| (expand_builtin_strcmp): Call maybe_warn_nonstring_arg. |
| (expand_builtin_strncmp): Same. |
| |
| 2017-12-20 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR bootstrap/83396 |
| * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that |
| allowed debug stmts before labels. |
| (expand_gimple_basic_block): Likewise. |
| * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise. |
| * gimple-iterator.h (gsi_after_labels): Likewise. |
| * tree-cfgcleanup (remove_forwarder_block): Likewise, but |
| rename reused variable, and simplify using gsi_move_before. |
| * tree-ssa-tail-merge.c (find_duplicate): Likewise. |
| * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise. |
| (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise. |
| (gimple_verify_flow_info, gimple_block_label): Likewise. |
| (make_blocks): Move debug markers after adjacent labels. |
| * cfgrtl.c (skip_insns_after_block): Revert SFN changes that |
| allowed debug insns outside blocks. |
| * df-scan.c (df_insn_delete): Likewise. |
| * lra-constraints.c (update_ebb_live_info): Likewise. |
| * var-tracking.c (get_first_insn, vt_emit_notes): Likewise. |
| (vt_initialize, delete_vta_debug_insns): Likewise. |
| (reemit_marker_as_note): Drop BB parm. Adjust callers. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * poly-int-types.h (round_down_to_byte_boundary): New macro. |
| (round_up_to_byte_boundary): Likewise. |
| * expr.h (get_bit_range): Add temporary shim. |
| * gimple-ssa-store-merging.c (store_operand_info): Change the |
| bitsize, bitpos, bitregion_start and bitregion_end fields from |
| unsigned HOST_WIDE_INT to poly_uint64. |
| (merged_store_group): Likewise load_align_base. |
| (compatible_load_p, compatible_load_p): Update accordingly. |
| (imm_store_chain_info::coalesce_immediate_stores): Likewise. |
| (split_group, imm_store_chain_info::output_merged_store): Likewise. |
| (mem_valid_for_store_merging): Return the bitsize, bitpos, |
| bitregion_start and bitregion_end as poly_uint64s rather than |
| unsigned HOST_WIDE_INTs. Track polynomial offsets internally. |
| (handled_load): Take the bitsize, bitpos, |
| bitregion_start and bitregion_end as poly_uint64s rather than |
| unsigned HOST_WIDE_INTs. |
| (pass_store_merging::process_store): Update call to |
| mem_valid_for_store_merging. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * builtins.c (get_object_alignment_2): Track polynomial offsets |
| and sizes. Update the alignment handling. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (get_inner_reference): Add a version that returns the |
| offset and size as poly_int64_pods rather than HOST_WIDE_INTs. |
| * cfgexpand.c (expand_debug_expr): Track polynomial offsets. Simply |
| the case in which bitpos is not associated with the first byte. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-affine.h (get_inner_reference_aff): Return the size as a |
| poly_widest_int. |
| * tree-affine.c (get_inner_reference_aff): Likewise. |
| * tree-data-ref.c (dr_may_alias_p): Update accordingly. |
| * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * fold-const.c (pointer_may_wrap_p): Take the offset as a |
| HOST_WIDE_INT rather than a poly_int64. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from |
| HOST_WIDE_INT to poly_int64_pod. |
| (perform_symbolic_merge): Update accordingly. |
| (bswap_replace): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-affine.h (aff_tree::offset): Change from widest_int |
| to poly_widest_int. |
| (wide_int_ext_for_comb): Delete. |
| (aff_combination_const, aff_comb_cannot_overlap_p): Take the |
| constants as poly_widest_int rather than widest_int. |
| (aff_combination_constant_multiple_p): Return the multiplier |
| as a poly_widest_int. |
| (aff_combination_zero_p, aff_combination_singleton_var_p): Handle |
| polynomial offsets. |
| * tree-affine.c (wide_int_ext_for_comb): Make original widest_int |
| version static and add an overload for poly_widest_int. |
| (aff_combination_const, aff_combination_add_cst) |
| (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take |
| the constants as poly_widest_int rather than widest_int. |
| (tree_to_aff_combination): Generalize INTEGER_CST case to |
| poly_int_tree_p. |
| (aff_combination_to_tree): Track offsets as poly_widest_ints. |
| (aff_combination_add_product, aff_combination_mult): Handle |
| polynomial offsets. |
| (aff_combination_constant_multiple_p): Return the multiplier |
| as a poly_widest_int. |
| * tree-predcom.c (determine_offset): Return the offset as a |
| poly_widest_int. |
| (split_data_refs_to_components, suitable_component_p): Update |
| accordingly. |
| (valid_initializer_p): Update call to |
| aff_combination_constant_multiple_p. |
| * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets. |
| * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step |
| as a poly_int64 rather than a HOST_WIDE_INT. |
| (get_address_cost): Handle polynomial offsets. |
| (iv_elimination_compare_lt): Likewise. |
| (rewrite_use_nonlinear_expr): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset |
| as a poly_int64_pod rather than a HOST_WIDE_INT. |
| (get_addr_base_and_unit_offset): Likewise. |
| * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. |
| (get_addr_base_and_unit_offset): Likewise. |
| * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT |
| to poly_int64 in example. |
| * fold-const.c (fold_binary_loc): Update call to |
| get_addr_base_and_unit_offset. |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. |
| (maybe_canonicalize_mem_ref_addr): Likewise. |
| (gimple_fold_stmt_to_constant_1): Likewise. |
| * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): |
| Likewise. |
| * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. |
| * match.pd: Likewise. |
| * omp-low.c (lower_omp_target): Likewise. |
| * tree-sra.c (build_ref_for_offset): Likewise. |
| (build_debug_ref_for_model): Likewise. |
| * tree-ssa-address.c (maybe_fold_tmr): Likewise. |
| * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise. |
| * tree-ssa-ccp.c (optimize_memcpy): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. |
| (constant_pointer_difference): Likewise. |
| * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. |
| * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise. |
| * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. |
| * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. |
| (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise. |
| (set_ssa_val_to): Likewise. |
| * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr) |
| (maybe_diag_stxncpy_trunc): Likewise. |
| * tree-vrp.c (vrp_prop::check_array_ref): Likewise. |
| * tree.c (build_simple_mem_ref_loc): Likewise. |
| (array_at_struct_end_p): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-dfa.h (get_ref_base_and_extent): Return the base, size and |
| max_size as poly_int64_pods rather than HOST_WIDE_INTs. |
| (get_ref_base_and_extent_hwi): Declare. |
| * tree-dfa.c (get_ref_base_and_extent): Return the base, size and |
| max_size as poly_int64_pods rather than HOST_WIDE_INTs. |
| (get_ref_base_and_extent_hwi): New function. |
| * cfgexpand.c (expand_debug_expr): Update call to |
| get_ref_base_and_extent. |
| * dwarf2out.c (add_var_loc_to_decl): Likewise. |
| * gimple-fold.c (get_base_constructor): Return the offset as a |
| poly_int64_pod rather than a HOST_WIDE_INT. |
| (fold_const_aggregate_ref_1): Track polynomial sizes and offsets. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::set_by_invariant) |
| (extr_type_from_vtbl_ptr_store): Track polynomial offsets. |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context) |
| (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi |
| rather than get_ref_base_and_extent. |
| (ipa_polymorphic_call_context::get_dynamic_type): Likewise. |
| * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func) |
| (get_ancestor_addr_info, determine_locally_known_aggregate_parts): |
| Likewise. |
| * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update |
| call to get_ref_base_and_extent. |
| * tree-sra.c (create_access, get_access_for_expr): Likewise. |
| * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p) |
| (stmt_kills_ref_p): Likewise. |
| * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. |
| * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p): |
| Likewise. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. |
| Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent |
| when calling native_encode_expr. |
| * tree-ssa-structalias.c (get_constraint_for_component_ref): Update |
| call to get_ref_base_and_extent. |
| (do_structure_copy): Use get_ref_base_and_extent_hwi rather than |
| get_ref_base_and_extent. |
| * var-tracking.c (track_expr_p): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from |
| HOST_WIDE_INT to poly_int64_pod. |
| * ipa-param-manipulation.c (ipa_modify_call_arguments): Track |
| polynomail parameter offsets. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gengtype.c (main): Handle poly_int64_pod. |
| * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type. |
| (dw_cfi_oprnd::dw_cfi_cfa_loc): New field. |
| (dw_cfa_location::offset, dw_cfa_location::base_offset): Change |
| from HOST_WIDE_INT to poly_int64_pod. |
| * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise. |
| (copy_cfa): New function. |
| (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists. |
| (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc. |
| (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa) |
| (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr) |
| (initial_return_save): Treat offsets as poly_ints. |
| (def_cfa_0): Likewise. Cache the CFA in dw_cfi_cfa_loc if either |
| offset is nonconstant. |
| (reg_save): Take the offset as a poly_int64. Fall back to |
| DW_CFA_expression for nonconstant offsets. |
| (queue_reg_save): Take the offset as a poly_int64. |
| * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (operand_subword, operand_subword_force): Take the offset |
| as a poly_uint64 an unsigned int. |
| * emit-rtl.c (operand_subword, operand_subword_force): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/rtl.texi: Update documentation of SUBREG_BYTE. Document the |
| 'p' format code. Use INT_LIST rather than SUBREG as the example of |
| a code with an XINT and an XEXP. Remove the implication that |
| accessing an rtx field using XINT is expected to work. |
| * rtl.def (SUBREG): Change format from "ei" to "ep". |
| * rtl.h (rtunion::rt_subreg): New field. |
| (XCSUBREG): New macro. |
| (SUBREG_BYTE): Use it. |
| (subreg_shape): Change offset from an unsigned int to a poly_uint16. |
| Update constructor accordingly. |
| (subreg_shape::operator ==): Update accordingly. |
| (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather |
| than an unsigned int. |
| (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return |
| a poly_uint64 rather than an unsigned int. |
| (subreg_lsb_1): Likewise. Take the offset as a poly_uint64 rather |
| than an unsigned int. |
| (subreg_size_offset_from_lsb, subreg_size_lowpart_offset) |
| (subreg_size_highpart_offset): Return a poly_uint64 rather than |
| an unsigned int. Take the sizes as poly_uint64s. |
| (subreg_offset_from_lsb): Return a poly_uint64 rather than |
| an unsigned int. Take the shift as a poly_uint64 rather than |
| an unsigned int. |
| (subreg_regno_offset, subreg_offset_representable_p): Take the offset |
| as a poly_uint64 rather than an unsigned int. |
| (simplify_subreg_regno): Likewise. |
| (byte_lowpart_offset): Return the memory offset as a poly_int64 |
| rather than an int. |
| (subreg_memory_offset): Likewise. Take the subreg offset as a |
| poly_uint64 rather than an unsigned int. |
| (simplify_subreg, simplify_gen_subreg, subreg_get_info) |
| (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a |
| poly_uint64 rather than an unsigned int. |
| * rtl.c (rtx_format): Describe 'p' in comment. |
| (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'. |
| * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg |
| offset as a poly_uint64 rather than an unsigned int. |
| (byte_lowpart_offset): Return the memory offset as a poly_int64 |
| rather than an int. |
| (subreg_memory_offset): Likewise. Take the subreg offset as a |
| poly_uint64 rather than an unsigned int. |
| (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the |
| mode sizes as poly_uint64s rather than unsigned ints. Return a |
| poly_uint64 rather than an unsigned int. |
| (subreg_lowpart_p): Treat subreg offsets as poly_ints. |
| (copy_insn_1): Handle 'p'. |
| * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s. |
| (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than |
| an unsigned int. Return the shift in the same way. |
| (subreg_lsb): Return the shift as a poly_uint64 rather than an |
| unsigned int. |
| (subreg_size_offset_from_lsb): Take the sizes and shift as |
| poly_uint64s rather than unsigned ints. Return the offset as |
| a poly_uint64. |
| (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p) |
| (simplify_subreg_regno): Take the offset as a poly_uint64 rather than |
| an unsigned int. |
| * rtlhash.c (add_rtx): Handle 'p'. |
| * genemit.c (gen_exp): Likewise. |
| * gengenrtl.c (type_from_format, gendef): Likewise. |
| * gensupport.c (subst_pattern_match, get_alternatives_number) |
| (collect_insn_data, alter_predicate_for_insn, alter_constraints) |
| (subst_dup): Likewise. |
| * gengtype.c (adjust_field_rtx_def): Likewise. |
| * genrecog.c (find_operand, find_matching_operand, validate_pattern) |
| (match_pattern_2): Likewise. |
| (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum. |
| (rtx_test::subreg_field): New function. |
| (operator ==, safe_to_hoist_p, transition_parameter_type) |
| (print_nonbool_test, print_test): Handle SUBREG_FIELD. |
| * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled. |
| * genpeep.c (match_rtx): Likewise. |
| * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too. |
| (rtx_writer::print_rtx_operand): Handle 'p'. |
| (print_value): Handle SUBREG. |
| * read-rtl.c (apply_int_iterator): Likewise. |
| (rtx_reader::read_rtx_operand): Handle 'p'. |
| * alias.c (rtx_equal_for_memref_p): Likewise. |
| * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise. |
| * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets |
| as poly_ints. |
| * calls.c (expand_call): Likewise. |
| * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise. |
| (make_extraction, gen_lowpart_for_combine): Likewise. |
| * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p): |
| Likewise. |
| * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64 |
| rather than an unsigned int. Treat subreg offsets as poly_ints. |
| (exp_equiv_p): Handle 'p'. |
| (hash_rtx_cb): Likewise. Treat subreg offsets as poly_ints. |
| (equiv_constant, cse_insn): Treat subreg offsets as poly_ints. |
| * dse.c (find_shift_sequence): Likewise. |
| * dwarf2out.c (rtl_for_decl_location): Likewise. |
| * expmed.c (extract_low_bits): Likewise. |
| * expr.c (emit_group_store, undefined_operand_subword_p): Likewise. |
| (expand_expr_real_2): Likewise. |
| * final.c (alter_subreg): Likewise. |
| (leaf_renumber_regs_insn): Handle 'p'. |
| * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack): |
| Treat subreg offsets as poly_ints. |
| * fwprop.c (forward_propagate_and_simplify): Likewise. |
| * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise. |
| * ira.c (get_subreg_tracking_sizes): Likewise. |
| * ira-conflicts.c (go_through_subreg): Likewise. |
| * ira-lives.c (process_single_reg_class_operands): Likewise. |
| * jump.c (rtx_renumbered_equal_p): Likewise. Handle 'p'. |
| * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset |
| as a poly_uint64 rather than an unsigned int. |
| (simplify_gen_subreg_concatn, resolve_simple_move): Treat |
| subreg offsets as poly_ints. |
| * lra-constraints.c (operands_match_p): Handle 'p'. |
| (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints. |
| * lra-spills.c (assign_mem_slot): Likewise. |
| * postreload.c (move2add_valid_value_p): Likewise. |
| * recog.c (general_operand, indirect_operand): Likewise. |
| * regcprop.c (copy_value, maybe_mode_change): Likewise. |
| (copyprop_hardreg_forward_1): Likewise. |
| * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs) |
| (record_subregs_of_mode): Likewise. |
| * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise. |
| * reload.c (operands_match_p): Handle 'p'. |
| (find_reloads_subreg_address): Treat subreg offsets as poly_ints. |
| * reload1.c (alter_reg, choose_reload_regs): Likewise. |
| (compute_reload_subreg_offset): Likewise, and return an poly_int64. |
| * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1): |
| (test_vector_ops_duplicate): Treat subreg offsets as poly_ints. |
| (simplify_const_poly_int_tests<N>::run): Likewise. |
| (simplify_subreg, simplify_gen_subreg): Take the subreg offset as |
| a poly_uint64 rather than an unsigned int. |
| * valtrack.c (debug_lowpart_subreg): Likewise. |
| * var-tracking.c (var_lowpart): Likewise. |
| (loc_cmp): Handle 'p'. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * ira.c (get_subreg_tracking_sizes): New function. |
| (init_live_subregs): Take an integer size rather than a register. |
| (build_insn_chain): Use get_subreg_tracking_sizes. Update calls |
| to init_live_subregs. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (store_constructor_field): Change bitsize from a |
| unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a |
| HOST_WIDE_INT to a poly_int64. |
| (store_constructor): Change size from a HOST_WIDE_INT to |
| a poly_int64. |
| (store_field): Likewise bitsize and bitpos. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.h (store_bit_field): Change bitregion_start and |
| bitregion_end from unsigned HOST_WIDE_INT to poly_uint64. |
| * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p) |
| (store_bit_field_1, store_integral_bit_field, store_bit_field) |
| (store_fixed_bit_field, store_split_bit_field): Likewise. |
| * expr.c (store_constructor_field, store_field): Likewise. |
| (optimize_bitfield_assignment_op): Likewise. Make the same change |
| to bitsize and bitpos. |
| * machmode.h (bit_field_mode_iterator): Change m_bitregion_start |
| and m_bitregion_end from HOST_WIDE_INT to poly_int64. Make the |
| same change in the constructor arguments. |
| (get_best_mode): Change bitregion_start and bitregion_end from |
| unsigned HOST_WIDE_INT to poly_uint64. |
| * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): |
| Change bitregion_start and bitregion_end from HOST_WIDE_INT to |
| poly_int64. |
| (bit_field_mode_iterator::next_mode): Update for new types |
| of m_bitregion_start and m_bitregion_end. |
| (get_best_mode): Change bitregion_start and bitregion_end from |
| unsigned HOST_WIDE_INT to poly_uint64. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (simplify_gen_subreg): Add a temporary overload that |
| accepts poly_uint64 offsets. |
| * expmed.h (extract_bit_field): Take bitsize and bitnum as |
| poly_uint64s rather than unsigned HOST_WIDE_INTs. |
| * expmed.c (lowpart_bit_field_p): Likewise. |
| (extract_bit_field_as_subreg): New function, split out from... |
| (extract_bit_field_1): ...here. Take bitsize and bitnum as |
| poly_uint64s rather than unsigned HOST_WIDE_INTs. For vector |
| extractions, check that BITSIZE matches the size of the extracted |
| value and that BITNUM is an exact multiple of that size. |
| If all else fails, try forcing the value into memory if |
| BITNUM is variable, and adjusting the address so that the |
| offset is constant. Split the part that can only handle constant |
| bitsize and bitnum out into... |
| (extract_integral_bit_field): ...this new function. |
| (extract_bit_field): Take bitsize and bitnum as poly_uint64s |
| rather than unsigned HOST_WIDE_INTs. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.h (store_bit_field): Take bitsize and bitnum as |
| poly_uint64s rather than unsigned HOST_WIDE_INTs. |
| * expmed.c (simple_mem_bitfield_p): Likewise. Add a parameter |
| that returns the byte size. |
| (store_bit_field_1): Take bitsize and bitnum as |
| poly_uint64s rather than unsigned HOST_WIDE_INTs. Update call |
| to simple_mem_bitfield_p. Split the part that can only handle |
| constant bitsize and bitnum out into... |
| (store_integral_bit_field): ...this new function. |
| (store_bit_field): Take bitsize and bitnum as poly_uint64s rather |
| than unsigned HOST_WIDE_INTs. |
| (extract_bit_field_1): Update call to simple_mem_bitfield_p. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * lra-int.h (lra_reg): Change offset from int to poly_int64. |
| (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT |
| to poly_int64. |
| (lra_eliminate_regs_1, eliminate_regs_in_insn): Change |
| update_sp_offset from a HOST_WIDE_INT to a poly_int64. |
| (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the |
| offset as a poly_int64 rather than an int. |
| * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets. |
| (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. |
| * lra-constraints.c (equiv_address_substitution): Track offsets |
| as poly_int64s. |
| (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P. |
| (curr_insn_transform): Handle the new form of sp_offset. |
| * lra-eliminations.c (lra_elim_table): Change previous_offset |
| and offset from HOST_WIDE_INT to poly_int64. |
| (print_elim_table, update_reg_eliminate): Update accordingly. |
| (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod. |
| (get_elimination): Update accordingly. |
| (form_sum): Check poly_int_rtx_p instead of CONST_INT_P. |
| (lra_eliminate_regs_1, eliminate_regs_in_insn): Change |
| update_sp_offset from a HOST_WIDE_INT to a poly_int64. Handle |
| poly_int64 offsets generally. |
| (curr_sp_change): Change from HOST_WIDE_INT to poly_int64. |
| (mark_not_eliminable, init_elimination): Update accordingly. |
| (remove_reg_equal_offset_note): Return a bool and pass the new |
| offset back by pointer as a poly_int64. |
| * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64 |
| rather than a HOST_WIDE_INT. |
| (do_remat): Track offsets poly_int64s. |
| * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (mem_attrs): Add a default constructor. Change size and |
| offset from HOST_WIDE_INT to poly_int64. |
| * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1) |
| (adjust_automodify_address_1, set_mem_attributes_minus_bitpos) |
| (widen_memory_access): Take the sizes and offsets as poly_int64s |
| rather than HOST_WIDE_INTs. |
| * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET. |
| (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs |
| and ints. |
| (adjust_offset_for_component_ref): Change the offset from a |
| HOST_WIDE_INT to a poly_int64. |
| (nonoverlapping_memrefs_p): Track polynomial offsets and sizes. |
| * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes. |
| * dce.c (find_call_stack_args): Likewise. |
| * dse.c (record_store): Likewise. |
| * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise. |
| * print-rtl.c (rtx_writer::print_rtx): Likewise. |
| * read-rtl-function.c (test_loading_mem): Likewise. |
| * rtlanal.c (may_trap_p_1): Likewise. |
| * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. |
| * var-tracking.c (int_mem_offset, track_expr_p): Likewise. |
| * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise. |
| (mem_attrs::mem_attrs): New function. |
| (set_mem_attributes_minus_bitpos): Change bitpos from a |
| HOST_WIDE_INT to poly_int64. |
| (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr) |
| (clear_mem_offset, clear_mem_size, change_address) |
| (get_spill_slot_decl, set_mem_attrs_for_spill): Directly |
| initialize mem_attrs. |
| (set_mem_offset, set_mem_size, adjust_address_1) |
| (adjust_automodify_address_1, offset_address, widen_memory_access): |
| Likewise. Take poly_int64s rather than HOST_WIDE_INT. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size |
| as poly_int64s rather than HOST_WIDE_INTs. Use a size of -1 |
| rather than 0 to represent an unknown size. Assert that the size |
| is known when the mode isn't BLKmode. |
| (may_trap_p_1): Use -1 for unknown sizes. |
| (rtx_addr_can_trap_p): Likewise. Pass BLKmode rather than VOIDmode. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dse.c (store_info): Change offset and width from HOST_WIDE_INT |
| to poly_int64. Update commentary for positions_needed.large. |
| (read_info_type): Change offset and width from HOST_WIDE_INT |
| to poly_int64. |
| (set_usage_bits): Likewise. |
| (canon_address): Return the offset as a poly_int64 rather than |
| a HOST_WIDE_INT. Use strip_offset_and_add. |
| (set_all_positions_unneeded, any_positions_needed_p): Use |
| positions_needed.large to track stores with non-constant widths. |
| (all_positions_needed_p): Likewise. Take the offset and width |
| as poly_int64s rather than ints. Assert that rhs is nonnull. |
| (record_store): Cope with non-constant offsets and widths. |
| Nullify the rhs of an earlier store if we can't tell which bytes |
| of it are needed. |
| (find_shift_sequence): Take the access_size and shift as poly_int64s |
| rather than ints. |
| (get_stored_val): Take the read_offset and read_width as poly_int64s |
| rather than HOST_WIDE_INTs. |
| (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle |
| non-constant offsets and widths. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * inchash.h (inchash::hash::add_poly_int): New function. |
| * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size): |
| Use poly_int64 rather than HOST_WIDE_INT. |
| (ao_ref::max_size_known_p): New function. |
| * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod |
| rather than HOST_WIDE_INT. |
| * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent |
| to temporaries until its interface is adjusted to match. |
| (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes. |
| (aliasing_component_refs_p, decl_refs_may_alias_p) |
| (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take |
| the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs. |
| (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to |
| ao_ref fields. |
| * alias.c (ao_ref_from_mem): Likewise. |
| * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. |
| * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref) |
| (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims) |
| (maybe_trim_complex_store, maybe_trim_constructor_store) |
| (live_bytes_read, dse_classify_store): Likewise. |
| * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq): |
| (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference) |
| (fully_constant_vn_reference_p, valueize_refs_1): Likewise. |
| (vn_reference_lookup_3): Likewise. |
| * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p) |
| (indirect_refs_may_alias_p): Use ranges_may_overlap_p |
| instead of ranges_overlap_p. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and |
| sizes as poly_int64s rather than HOST_WIDE_INTs. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gimple-fold.h (fold_ctor_reference): Take the offset and size |
| as poly_uint64 rather than unsigned HOST_WIDE_INT. |
| * gimple-fold.c (fold_ctor_reference): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (dwarf_poly_indeterminate_value): New hook. |
| * targhooks.h (default_dwarf_poly_indeterminate_value): Declare. |
| * targhooks.c (default_dwarf_poly_indeterminate_value): New function. |
| * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document. |
| * doc/tm.texi: Regenerate. |
| * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the |
| offset as a poly_int64. |
| * dwarf2out.c (new_reg_loc_descr): Move later in file. Take the |
| offset as a poly_int64. |
| (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc): |
| Take the offset as a poly_int64. |
| (build_cfa_loc): Likewise. Use loc_descr_plus_const. |
| (frame_pointer_fb_offset): Change to a poly_int64. |
| (int_loc_descriptor): Take the offset as a poly_int64. Use |
| targetm.dwarf_poly_indeterminate_value for polynomial offsets. |
| (based_loc_descr): Take the offset as a poly_int64. |
| Use strip_offset_and_add to handle (plus X (const)). |
| Use new_reg_loc_descr instead of an open-coded version of the |
| previous implementation. |
| (mem_loc_descriptor): Handle CONST_POLY_INT. |
| (compute_frame_pointer_to_fb_displacement): Take the offset as a |
| poly_int64. Use strip_offset_and_add to handle (plus X (const)). |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64. |
| (gen_rtx_REG_offset): Take the offset as a poly_int64. |
| * inchash.h (inchash::hash::add_poly_hwi): New function. |
| * gengtype.c (main): Register poly_int64. |
| * emit-rtl.c (reg_attr_hasher::hash): Use inchash. Treat the |
| offset as a poly_int. |
| (reg_attr_hasher::equal): Use must_eq to compare offsets. |
| (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the |
| offset as a poly_int64. |
| (set_reg_attrs_from_value): Treat the offset as a poly_int64. |
| * print-rtl.c (print_poly_int): New function. |
| (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as |
| a poly_int. |
| * var-tracking.c (track_offset_p, get_tracked_reg_offset): New |
| functions. |
| (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them. |
| (same_variable_part_p, track_loc_p): Take the offset as a poly_int64. |
| (vt_get_decl_and_offset): Return the offset as a poly_int64. |
| Enforce track_offset_p for parts of a PARALLEL. |
| (vt_add_function_parameter): Use const_offset for the final |
| offset to track. Use get_tracked_reg_offset for the parts |
| of a PARALLEL. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (truly_noop_truncation): Take poly_uint64s instead of |
| unsigned ints. Change default to hook_bool_puint64_puint64_true. |
| * doc/tm.texi: Regenerate. |
| * hooks.h (hook_bool_uint_uint_true): Delete. |
| (hook_bool_puint64_puint64_true): Declare. |
| * hooks.c (hook_bool_uint_uint_true): Delete. |
| (hook_bool_puint64_puint64_true): New function. |
| * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s |
| instead of unsigned ints. |
| * config/spu/spu.c (spu_truly_noop_truncation): Likewise. |
| * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs.h (expand_operand): Add an int_value field. |
| (create_expand_operand): Add an int_value parameter and use it |
| to initialize the new expand_operand field. |
| (create_integer_operand): Replace with a declaration of a function |
| that accepts poly_int64s. Move the implementation to... |
| * optabs.c (create_integer_operand): ...here. |
| (maybe_legitimize_operand): For EXPAND_INTEGER, check whether |
| the mode preserves the value of int_value, instead of calling |
| const_int_operand on the rtx. Use gen_int_mode to generate |
| the new rtx. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dumpfile.h (dump_dec): Declare. |
| * dumpfile.c (dump_dec): New function. |
| * pretty-print.h (pp_wide_integer): Turn into a function and |
| declare a poly_int version. |
| * pretty-print.c (pp_wide_integer): New function for poly_ints. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/generic.texi (POLY_INT_CST): Document. |
| * tree.def (POLY_INT_CST): New tree code. |
| * treestruct.def (TS_POLY_INT_CST): New tree layout. |
| * tree-core.h (tree_poly_int_cst): New struct. |
| (tree_node): Add a poly_int_cst field. |
| * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros. |
| (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref |
| instead of a wide_int_ref. |
| (build_int_cst, build_int_cst_type): Take a poly_int64 instead |
| of a HOST_WIDE_INT. |
| (build_int_cstu, build_array_type_nelts): Take a poly_uint64 |
| instead of an unsigned HOST_WIDE_INT. |
| (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p) |
| (ptrdiff_tree_p): Declare. |
| (tree_to_poly_int64, tree_to_poly_uint64): Likewise. Provide |
| extern inline implementations if the target doesn't use POLY_INT_CST. |
| (poly_int_tree_p): New function. |
| (wi::unextended_tree): New class. |
| (wi::int_traits <unextended_tree>): New override. |
| (wi::extended_tree): Add a default constructor. |
| (wi::extended_tree::get_tree): New function. |
| (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs. |
| (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them. |
| (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref) |
| (wi::tree_to_poly_wide_ref): New typedefs. |
| (wi::ints_for): Provide overloads for extended_tree and |
| unextended_tree. |
| (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset) |
| (wi::to_wide): New functions. |
| (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints. |
| * tree.c (poly_int_cst_hasher): New struct. |
| (poly_int_cst_hash_table): New variable. |
| (tree_node_structure_for_code, tree_code_size, simple_cst_equal) |
| (valid_constant_size_p, add_expr, drop_tree_overflow): Handle |
| POLY_INT_CST. |
| (initialize_tree_contains_struct): Handle TS_POLY_INT_CST. |
| (init_ttree): Initialize poly_int_cst_hash_table. |
| (build_int_cst, build_int_cst_type, build_invariant_address): Take |
| a poly_int64 instead of a HOST_WIDE_INT. |
| (build_int_cstu, build_array_type_nelts): Take a poly_uint64 |
| instead of an unsigned HOST_WIDE_INT. |
| (wide_int_to_tree): Rename to... |
| (wide_int_to_tree_1): ...this. |
| (build_new_poly_int_cst, build_poly_int_cst): New functions. |
| (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref. |
| (wide_int_to_tree): New function that takes a poly_wide_int_ref. |
| (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64) |
| (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle |
| TS_POLY_INT_CST. |
| * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise. |
| (streamer_read_tree_body): Likewise. |
| * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise. |
| (streamer_write_tree_body): Likewise. |
| * tree-streamer.c (streamer_check_handled_ts_structures): Likewise. |
| * asan.c (asan_protect_global): Require the size to be an INTEGER_CST. |
| * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST. |
| * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise. |
| * gimple-expr.h (is_gimple_constant): Likewise. |
| * gimplify.c (maybe_with_size_expr): Likewise. |
| * print-tree.c (print_node): Likewise. |
| * tree-data-ref.c (data_ref_compare_tree): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-ssa-address.c (addr_for_mem_ref): Likewise. |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise. |
| * tree-vrp.c (compare_values_warnv): Likewise. |
| * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of) |
| (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1) |
| (force_expr_to_var_cost): Likewise. |
| * tree-ssa-loop.c (for_each_index): Likewise. |
| * fold-const.h (build_invariant_address, size_int_kind): Take a |
| poly_int64 instead of a HOST_WIDE_INT. |
| * fold-const.c (fold_negate_expr_1, const_binop, const_unop) |
| (fold_convert_const, multiple_of_p, fold_negate_const): Handle |
| POLY_INT_CST. |
| (size_binop_loc): Likewise. Allow int_const_binop_1 to fail. |
| (int_const_binop_2): New function, split out from... |
| (int_const_binop_1): ...here. Handle POLY_INT_CST. |
| (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT. |
| * expmed.c (make_tree): Handle CONST_POLY_INT_P. |
| * gimple-ssa-strength-reduction.c (slsr_process_add) |
| (slsr_process_mul): Check for INTEGER_CSTs before using them |
| as candidates. |
| * stor-layout.c (bits_from_bytes): New function. |
| (bit_from_pos): Use it. |
| (layout_type): Likewise. For vectors, multiply the TYPE_SIZE_UNIT |
| by BITS_PER_UNIT to get the TYPE_SIZE. |
| * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow |
| MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/rtl.texi (const_poly_int): Document. Also document the |
| rtl sharing behavior. |
| * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT. |
| * rtl.h (const_poly_int_def): New struct. |
| (rtx_def::u): Add a cpi field. |
| (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT. |
| (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros. |
| (wi::rtx_to_poly_wide_ref): New typedef |
| (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64) |
| (poly_int_rtx_p): New functions. |
| (trunc_int_for_mode): Declare a poly_int64 version. |
| (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. |
| (immed_wide_int_const): Take a poly_wide_int_ref rather than |
| a wide_int_ref. |
| (strip_offset): Declare. |
| (strip_offset_and_add): New function. |
| * rtl.def (CONST_POLY_INT): New rtx code. |
| * rtl.c (rtx_size): Handle CONST_POLY_INT. |
| (shared_const_p): Use poly_int_rtx_p. |
| * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a |
| HOST_WIDE_INT. |
| (gen_int_shift_amount): Likewise. |
| * emit-rtl.c (const_poly_int_hasher): New class. |
| (const_poly_int_htab): New variable. |
| (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1. |
| (const_poly_int_hasher::hash): New function. |
| (const_poly_int_hasher::equal): Likewise. |
| (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT. |
| (immed_wide_int_const): Rename to... |
| (immed_wide_int_const_1): ...this and make static. |
| (immed_wide_int_const): New function, taking a poly_wide_int_ref |
| instead of a wide_int_ref. |
| (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT. |
| (gen_lowpart_common): Handle CONST_POLY_INT. |
| * cse.c (hash_rtx_cb, equiv_constant): Likewise. |
| * cselib.c (cselib_hash_rtx): Likewise. |
| * dwarf2out.c (const_ok_for_output_1): Likewise. |
| * expr.c (convert_modes): Likewise. |
| * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise. |
| * rtlhash.c (add_rtx): Likewise. |
| * explow.c (trunc_int_for_mode): Add a poly_int64 version. |
| (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. |
| Handle existing CONST_POLY_INT rtxes. |
| * expmed.h (expand_shift): Take a poly_int64 instead of a |
| HOST_WIDE_INT. |
| * expmed.c (expand_shift): Likewise. |
| * rtlanal.c (strip_offset): New function. |
| (commutative_operand_precedence): Give CONST_POLY_INT the same |
| precedence as CONST_DOUBLE and put CONST_WIDE_INT between that |
| and CONST_INT. |
| * rtl-tests.c (const_poly_int_tests): New struct. |
| (rtl_tests_c_tests): Use it. |
| * simplify-rtx.c (simplify_const_unary_operation): Handle |
| CONST_POLY_INT. |
| (simplify_const_binary_operation): Likewise. |
| (simplify_binary_operation_1): Fold additions of symbolic constants |
| and CONST_POLY_INTs. |
| (simplify_subreg): Handle extensions and truncations of |
| CONST_POLY_INTs. |
| (simplify_const_poly_int_tests): New struct. |
| (simplify_rtx_c_tests): Use it. |
| * wide-int.h (storage_ref): Add default constructor. |
| (wide_int_ref_storage): Likewise. |
| (trailing_wide_ints): Use GTY((user)). |
| (trailing_wide_ints::operator[]): Add a const version. |
| (trailing_wide_ints::get_precision): New function. |
| (trailing_wide_ints::extra_size): Likewise. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * emit-rtl.h (gen_int_shift_amount): Declare. |
| * emit-rtl.c (gen_int_shift_amount): New function. |
| * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount |
| instead of GEN_INT. |
| * calls.c (shift_return_value): Likewise. |
| * cse.c (fold_rtx): Likewise. |
| * dse.c (find_shift_sequence): Likewise. |
| * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1) |
| (expand_shift, expand_smod_pow2): Likewise. |
| * lower-subreg.c (shift_cost): Likewise. |
| * optabs.c (expand_superword_shift, expand_doubleword_mult) |
| (expand_unop, expand_binop, shift_amt_for_vec_perm_mask) |
| (expand_vec_perm_var): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| (simplify_binary_operation_1): Likewise. |
| * combine.c (try_combine, find_split_point, force_int_to_mode) |
| (simplify_shift_const_1, simplify_shift_const): Likewise. |
| (change_zero_ext): Likewise. Use simplify_gen_binary. |
| |
| 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * poly-int.h (multiple_p): Fix handling of two non-poly_ints. |
| |
| 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/invoke.texi (ARM Options): Document accepted extension options |
| for -march=armv8.3-a. |
| |
| 2017-12-20 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/83105 |
| * config.gcc (arm*-*-linux*): When configured with --with-float=hard |
| or --with-float=softfp, set the default CPU to arm10e. |
| |
| 2017-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/constraints.md (J, K, L): Use IN_RANGE macro. |
| * config/visium/predicates.md (const_shift_operand): Likewise. |
| * config/visium/visium.c (visium_legitimize_address): Fix oversight. |
| (visium_legitimize_reload_address): Likewise. |
| |
| 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/82975 |
| * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830. |
| |
| 2017-12-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/83490 |
| * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments. |
| |
| 2017-12-20 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET, |
| OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New. |
| (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2. |
| * config.gcc: Include vpclmulqdqintrin.h. |
| * config/i386/cpuid.h: Handle bit_VPCLMULQDQ. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Handle |
| -mvpclmulqdq. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di, |
| __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New. |
| * config/i386/i386-c.c (__VPCLMULQDQ__): New. |
| * config/i386/i386.c (isa2_opts): Add -mcx16. |
| (isa_opts): Add -mpclmulqdq, remove -mcx16. |
| (ix86_option_override_internal): Move mcx16 to flags2. |
| (ix86_valid_target_attribute_inner_p): Add vpclmulqdq. |
| (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ. |
| * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New. |
| * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2. |
| * config/i386/immintrin.h: Include vpclmulqdqintrin.h. |
| * config/i386/sse.md (vpclmulqdq_<mode>): New pattern. |
| * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128, |
| _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics. |
| * doc/invoke.texi: Add -mvpclmulqdq. |
| |
| 2017-12-20 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/83423 |
| * config/i386/i386.c (ix86_static_chain): Move |
| DECL_STATIC_CHAIN test ... |
| * calls.c (rtx_for_static_chain): ... here. New function. |
| * calls.h (rtx_for_static_chain): Declare. |
| * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain |
| instead of targetm.calls.static_chain. |
| * df-scan.c (df_get_entry_block_def_set): Same. |
| |
| 2017-12-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/83493 |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub |
| and lb. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of |
| inform with hardcoded english plural handling. |
| |
| 2017-12-18 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/83477 |
| * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For |
| a non-virtual PHI, always push a new range. |
| |
| 2017-12-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/77608 |
| * builtins.c (compute_objsize): Handle non-constant offsets. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83444 |
| * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the |
| character load case, if get_stridx on MEM_REF's operand doesn't |
| look usable, retry with get_addr_stridx. |
| |
| 2017-12-19 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/83422 |
| * var-tracking.c (vt_debug_insns_local): Do not drop markers. |
| (variable_tracking_main_1): Keep markers even when VTA fails. |
| |
| PR bootstrap/83396 |
| * cfgexpand.c (expand_gimple_basic_block): Expand label first, |
| even if there are markers before it. |
| * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with |
| typical order conditions. |
| * sel-sched.c (extract_new_fences_from): Likewise. |
| * config/visium/constraints.md (J, K, L): Likewise. |
| * config/visium/predicates.md (const_shift_operand): Likewise. |
| * config/visium/visium.c (visium_legitimize_address, |
| visium_legitimize_reload_address): Likewise. |
| * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise. |
| * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise. |
| * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise. |
| * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log, |
| SET_DUMP_DETAIL): Likewise. |
| * config/avr/predicates.md (const_8_16_24_operand): Likewise. |
| * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte, |
| avr_is_casesi_sequence, avr_casei_sequence_check_operands, |
| avr_set_core_architecture, avr_set_current_function, |
| avr_legitimize_reload_address, avr_asm_len, avr_print_operand, |
| output_movqi, output_movsisf, avr_out_plus, avr_out_bitop, |
| avr_out_fract, avr_adjust_insn_length, avr_encode_section_info, |
| avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf, |
| avr_map_decompose, avr_fold_builtin): Likewise. |
| * config/avr/driver-avr.c (avr_devicespecs_file): Likewise. |
| * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise. |
| * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise. |
| * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise. |
| * config/m32c/m32c.c (m32c_conditional_register_usage, |
| m32c_address_cost): Likewise. |
| * config/m32c/predicates.md (shiftcount_operand, |
| longshiftcount_operand): Likewise. |
| * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. |
| * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option, |
| can_use_cdx_ldstw): Likewise. |
| * config/nios2/nios2.h (CDX_REG_P): Likewise. |
| * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P): |
| Likewise. |
| * config/cr16/cr16.md (*mov<mode>_double): Likewise. |
| * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise. |
| * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise. |
| * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise. |
| * config/vax/vax.c (adjacent_operands_p): Likewise. |
| * config/ft32/constraints.md (L, b, KA): Likewise. |
| * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue): |
| Likewise. |
| * cfgexpand.c (expand_stack_alignment): Likewise. |
| * gcse.c (insert_expr_in_table): Likewise. |
| * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise. |
| * cgraphunit.c (cgraph_node::expand): Likewise. |
| * ira-build.c (setup_min_max_allocno_live_range_point): Likewise. |
| * emit-rtl.c (add_insn): Likewise. |
| * input.c (dump_location_info): Likewise. |
| * passes.c (NEXT_PASS): Likewise. |
| * read-rtl-function.c (parse_note_insn_name, |
| function_reader::read_rtx_operand_r, function_reader::parse_mem_expr): |
| Likewise. |
| * sched-rgn.c (sched_rgn_init): Likewise. |
| * diagnostic-show-locus.c (layout::show_ruler): Likewise. |
| * combine.c (find_split_point, simplify_if_then_else, force_to_mode, |
| if_then_else_cond, simplify_shift_const_1, simplify_comparison): |
| Likewise. |
| * explow.c (eliminate_constant_term): Likewise. |
| * final.c (leaf_renumber_regs_insn): Likewise. |
| * cfgrtl.c (print_rtl_with_bb): Likewise. |
| * genhooks.c (emit_init_macros): Likewise. |
| * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise. |
| * tree-data-ref.c (conflict_fn): Likewise. |
| * selftest.c (assert_streq): Likewise. |
| * expr.c (store_constructor_field, expand_expr_real_1): Likewise. |
| * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor, |
| fold_binary_loc, multiple_of_p): Likewise. |
| * reload.c (push_reload, find_equiv_reg): Likewise. |
| * et-forest.c (et_nca, et_below): Likewise. |
| * dbxout.c (dbxout_symbol_location): Likewise. |
| * reorg.c (relax_delay_slots): Likewise. |
| * dojump.c (do_compare_rtx_and_jump): Likewise. |
| * gengtype-parse.c (type): Likewise. |
| * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational, |
| simplify_const_relational_operation): Likewise. |
| * reload1.c (do_output_reload): Likewise. |
| * dumpfile.c (get_dump_file_info_by_switch): Likewise. |
| * gengtype.c (type_for_name): Likewise. |
| * gimple-ssa-sprintf.c (format_directive): Likewise. |
| |
| 2017-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/82975 |
| * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before |
| accessing it. Adjust comment. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/81914 |
| * predict.c (zero_one_minusone): New function. |
| (apply_return_prediction): Avoid return prediction for functions |
| returning only -1, 0 and 1 values, unless they only return -1 and 0 |
| or 0 and 1. |
| |
| 2017-12-19 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (legitimate_scaled_address_p): Clean |
| fall-through warning. |
| (arc_compute_frame_size): Remove unused variables. |
| (arc_print_operand): Fix fprintif format. |
| (arc_can_follow_jump): Clean fall-through warning. |
| |
| 2017-12-19 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/83489 |
| * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P |
| on an error node. |
| |
| 2017-12-19 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (overriderregs): New variable. |
| (arc_override_options): Track fixed/call saved/call options. |
| (arc_conditional_register_usage): Check against overrideregs |
| variable whenever we change register properties. |
| |
| 2017-12-19 Nathan Sidwell <nathan@acm.org> |
| |
| * opts.c (finish_options): Don't prefix dump_base_name if it |
| already contains directories. |
| |
| 2017-12-19 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/82675 |
| * loop-unroll.c (unroll_loop_constant_iterations): Allocate one |
| more element in sbitmap. |
| |
| 2017-12-19 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * gimplify.c (gimplify_expr): Use error_operand_p. |
| |
| 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| PR target/83387 |
| * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float |
| multilib. |
| |
| 2017-12-19 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure |
| the jump is to a label. |
| |
| 2017-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83444 |
| * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize |
| character loads. |
| |
| PR ipa/82801 |
| PR ipa/83346 |
| * ipa-inline.c (flatten_remove_node_hook): New function. |
| (ipa_inline): Keep only nodes with flatten attribute at the end of |
| the array in the order from ipa_reverse_postorder, only walk that |
| portion of array for flattening, if there is more than one such |
| node, temporarily register a removal hook and ignore removed nodes. |
| |
| PR tree-optimization/80631 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare |
| induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against |
| IFN_REDUC_MAX or IFN_REDUC_MIN. |
| |
| 2017-12-18 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_phis): Do not |
| record symbolic equivalences from backedges in the CFG. |
| |
| Revert |
| 2017-11-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling |
| of degenerates resulting from ignoring an edge. |
| |
| 2017-12-18 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/83373 |
| PR tree-optimization/78450 |
| * tree-ssa-strlen.c (maybe_set_strlen_range): New function. |
| (handle_builtin_strlen): Call it. |
| |
| 2017-12-18 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83424 |
| * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET. |
| |
| 2017-12-18 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/83463 |
| * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): |
| Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max |
| values. |
| |
| 2017-12-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern. |
| (umaddsidi4, umaddsidi_split): Likewise. |
| |
| 2017-12-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_legitimate_constant_p): Always check all |
| constants. |
| |
| 2017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/83420 |
| * config/s390/s390.c (s390_option_override): Avoid strncpy. |
| |
| 2017-12-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81877 |
| * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters. |
| (outermost_indep_loop): Adjust. |
| (ref_indep_loop_p_1): Likewise. Remove safelen handling again. |
| (can_sm_ref_p): Adjust. |
| |
| 2017-12-18 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/77291 |
| * tree.c (array_at_struct_end_p): Return true if the underlying |
| object has space for at least one element in excess of what |
| the array domain specifies. |
| |
| 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/extend.texi (x86 Function Attributes): Reformat nocf_check |
| example to avoid overfull hbox. |
| * doc/invoke.texi (Option Summary): Add missing @gol. |
| (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid |
| overfull hbox. |
| |
| 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> |
| Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump |
| to AArch64 and ARM lists, plus missing -mflip-thumb for ARM. |
| (AArch64 Options): Document -mverbose-cost-dump. |
| (ARM Options): Likewise, plus -mflip-thumb. |
| |
| 2017-12-17 Martin Sebor <msebor@redhat.com> |
| |
| PR bootstrap/83446 |
| * gimple-ssa-warn-restrict.c |
| (builtin_memref::offset_out_of_bounds): Correct the handling of |
| anti-ranges. |
| |
| 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi (ARC Options): Add missing -mlra entry. |
| |
| 2017-12-17 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_som_asm_init_sections): Fix comment. |
| |
| 2017-12-17 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply |
| latencies. |
| |
| 2017-12-16 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi: Fix some typos. |
| |
| 2017-12-16 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78918 |
| * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o. |
| * builtins.c (check_sizes): Rename... |
| (check_access): ...to this. Rename function arguments for clarity. |
| (check_memop_sizes): Adjust names. |
| (expand_builtin_memchr, expand_builtin_memcpy): Same. |
| (expand_builtin_memmove, expand_builtin_mempcpy): Same. |
| (expand_builtin_strcat, expand_builtin_stpncpy): Same. |
| (check_strncat_sizes, expand_builtin_strncat): Same. |
| (expand_builtin_strncpy, expand_builtin_memset): Same. |
| (expand_builtin_bzero, expand_builtin_memcmp): Same. |
| (expand_builtin_memory_chk, maybe_emit_chk_warning): Same. |
| (maybe_emit_sprintf_chk_warning): Same. |
| (expand_builtin_strcpy): Adjust. |
| (expand_builtin_stpcpy): Same. |
| (expand_builtin_with_bounds): Detect out-of-bounds accesses |
| in pointer-checking forms of memcpy, memmove, and mempcpy. |
| (gcall_to_tree_minimal, max_object_size): Define new functions. |
| * builtins.h (max_object_size): Declare. |
| * calls.c (alloc_max_size): Call max_object_size instead of |
| hardcoding ssizetype limit. |
| (get_size_range): Handle new argument. |
| * calls.h (get_size_range): Add a new argument. |
| * cfgexpand.c (expand_call_stmt): Propagate no-warning bit. |
| * doc/invoke.texi (-Wrestrict): Adjust, add example. |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping |
| operations. |
| (gimple_fold_builtin_memory_chk): Same. |
| (gimple_fold_builtin_stxcpy_chk): New function. |
| * gimple-ssa-warn-restrict.c: New source. |
| * gimple-ssa-warn-restrict.h: New header. |
| * gimple.c (gimple_build_call_from_tree): Propagate location. |
| * passes.def (pass_warn_restrict): Add new pass. |
| * tree-pass.h (make_pass_warn_restrict): Declare. |
| * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping |
| operations. |
| (handle_builtin_strcat): Same. |
| (strlen_optimize_stmt): Rename... |
| (strlen_check_and_optimize_stmt): ...to this. Handle strncat, |
| stpncpy, strncpy, and their checking forms. |
| |
| 2017-12-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR rtl-optimization/82849 |
| * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int |
| and get_max_loop_iterations_int. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size) |
| (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode |
| size as a poly_uint64. |
| (mode_for_vector, mode_for_int_vector): Take the number of vector |
| elements as a poly_uint64. |
| * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode |
| size as a poly_uint64. |
| (mode_for_vector, mode_for_int_vector): Take the number of vector |
| elements as a poly_uint64. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (MACRO_MODE): New macro. |
| * addresses.h (base_reg_class, ok_for_base_p_1): Use it. |
| * targhooks.c (default_libcall_value, default_secondary_reload) |
| (default_memory_move_cost, default_register_move_cost) |
| (default_class_max_nregs): Likewise. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi: Document IN_TARGET_CODE. |
| * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the |
| target C file. |
| * genautomata.c (main): Likewise. |
| * genconditions.c (write_header): Likewise. |
| * genemit.c (main): Likewise. |
| * genextract.c (print_header): Likewise. |
| * genopinit.c (main): Likewise. |
| * genoutput.c (output_prologue): Likewise. |
| * genpeep.c (main): Likewise. |
| * genpreds.c (write_insn_preds_c): Likewise. |
| * genrecog.c (writer_header): Likewise. |
| * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define. |
| * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise. |
| * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise. |
| * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise. |
| * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise. |
| * config/alpha/alpha.c (IN_TARGET_CODE): Likewise. |
| * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise. |
| * config/arc/arc-c.c (IN_TARGET_CODE): Likewise. |
| * config/arc/arc.c (IN_TARGET_CODE): Likewise. |
| * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise. |
| * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise. |
| * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise. |
| * config/arm/arm-c.c (IN_TARGET_CODE): Likewise. |
| * config/arm/arm.c (IN_TARGET_CODE): Likewise. |
| * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise. |
| * config/avr/avr-c.c (IN_TARGET_CODE): Likewise. |
| * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise. |
| * config/avr/avr-log.c (IN_TARGET_CODE): Likewise. |
| * config/avr/avr.c (IN_TARGET_CODE): Likewise. |
| * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise. |
| * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise. |
| * config/bfin/bfin.c (IN_TARGET_CODE): Likewise. |
| * config/c6x/c6x.c (IN_TARGET_CODE): Likewise. |
| * config/cr16/cr16.c (IN_TARGET_CODE): Likewise. |
| * config/cris/cris.c (IN_TARGET_CODE): Likewise. |
| * config/darwin.c (IN_TARGET_CODE): Likewise. |
| * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise. |
| * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise. |
| * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise. |
| * config/fr30/fr30.c (IN_TARGET_CODE): Likewise. |
| * config/frv/frv.c (IN_TARGET_CODE): Likewise. |
| * config/ft32/ft32.c (IN_TARGET_CODE): Likewise. |
| * config/h8300/h8300.c (IN_TARGET_CODE): Likewise. |
| * config/i386/djgpp.c (IN_TARGET_CODE): Likewise. |
| * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise. |
| * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise. |
| * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise. |
| * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise. |
| * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise. |
| * config/i386/i386-c.c (IN_TARGET_CODE): Likewise. |
| * config/i386/i386.c (IN_TARGET_CODE): Likewise. |
| * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise. |
| * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise. |
| * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise. |
| * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise. |
| * config/i386/winnt.c (IN_TARGET_CODE): Likewise. |
| * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise. |
| * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise. |
| * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise. |
| * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise. |
| * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise. |
| * config/ia64/ia64.c (IN_TARGET_CODE): Likewise. |
| * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise. |
| * config/lm32/lm32.c (IN_TARGET_CODE): Likewise. |
| * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise. |
| * config/m32c/m32c.c (IN_TARGET_CODE): Likewise. |
| * config/m32r/m32r.c (IN_TARGET_CODE): Likewise. |
| * config/m68k/m68k.c (IN_TARGET_CODE): Likewise. |
| * config/mcore/mcore.c (IN_TARGET_CODE): Likewise. |
| * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise. |
| * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise. |
| * config/mips/driver-native.c (IN_TARGET_CODE): Likewise. |
| * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise. |
| * config/mips/mips.c (IN_TARGET_CODE): Likewise. |
| * config/mmix/mmix.c (IN_TARGET_CODE): Likewise. |
| * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise. |
| * config/moxie/moxie.c (IN_TARGET_CODE): Likewise. |
| * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise. |
| * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise. |
| * config/msp430/msp430.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise. |
| * config/nds32/nds32.c (IN_TARGET_CODE): Likewise. |
| * config/nios2/nios2.c (IN_TARGET_CODE): Likewise. |
| * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise. |
| * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise. |
| * config/pa/pa.c (IN_TARGET_CODE): Likewise. |
| * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise. |
| * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise. |
| * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise. |
| * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise. |
| * config/riscv/riscv.c (IN_TARGET_CODE): Likewise. |
| * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise. |
| * config/rl78/rl78.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise. |
| * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise. |
| * config/rx/rx.c (IN_TARGET_CODE): Likewise. |
| * config/s390/driver-native.c (IN_TARGET_CODE): Likewise. |
| * config/s390/s390-c.c (IN_TARGET_CODE): Likewise. |
| * config/s390/s390.c (IN_TARGET_CODE): Likewise. |
| * config/sh/sh-c.c (IN_TARGET_CODE): Likewise. |
| * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise. |
| * config/sh/sh.c (IN_TARGET_CODE): Likewise. |
| * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise. |
| * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise. |
| * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise. |
| * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise. |
| * config/sparc/sparc.c (IN_TARGET_CODE): Likewise. |
| * config/spu/spu-c.c (IN_TARGET_CODE): Likewise. |
| * config/spu/spu.c (IN_TARGET_CODE): Likewise. |
| * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise. |
| * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise. |
| * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise. |
| * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise. |
| * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise. |
| * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise. |
| * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise. |
| * config/v850/v850-c.c (IN_TARGET_CODE): Likewise. |
| * config/v850/v850.c (IN_TARGET_CODE): Likewise. |
| * config/vax/vax.c (IN_TARGET_CODE): Likewise. |
| * config/visium/visium.c (IN_TARGET_CODE): Likewise. |
| * config/vms/vms-c.c (IN_TARGET_CODE): Likewise. |
| * config/vms/vms-f.c (IN_TARGET_CODE): Likewise. |
| * config/vms/vms.c (IN_TARGET_CODE): Likewise. |
| * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated |
| checks for MEM_REF. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/generic.texi (VEC_SERIES_EXPR): Document. |
| * doc/md.texi (vec_series@var{m}): Document. |
| * tree.def (VEC_SERIES_EXPR): New tree code. |
| * tree.h (build_vec_series): Declare. |
| * tree.c (build_vec_series): New function. |
| * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * gimple-pretty-print.c (dump_binary_rhs): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * expr.c (expand_expr_real_2): Likewise. |
| * optabs-tree.c (optab_for_tree_code): Likewise. |
| * tree-cfg.c (verify_gimple_assign_binary): Likewise. |
| * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants. |
| * expmed.c (make_tree): Handle VEC_SERIES. |
| * optabs.def (vec_series_optab): New optab. |
| * optabs.h (expand_vec_series_expr): Declare. |
| * optabs.c (expand_vec_series_expr): New function. |
| * tree-vect-generic.c (expand_vector_operations_1): Check that |
| the operands also have vector type. |
| |
| 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hawyard@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/generic.texi (VEC_DUPLICATE_EXPR): Document. |
| (VEC_COND_EXPR): Add missing @tindex. |
| * doc/md.texi (vec_duplicate@var{m}): Document. |
| * tree.def (VEC_DUPLICATE_EXPR): New tree codes. |
| * tree.c (build_vector_from_val): Add stubbed-out handling of |
| variable-length vectors, using VEC_DUPLICATE_EXPR. |
| (uniform_vector_p): Handle VEC_DUPLICATE_EXPR. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * tree-cfg.c (verify_gimple_assign_unary): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-vect-generic.c (ssa_uniform_vector_p): Likewise. |
| * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant. |
| (test_vec_duplicate_folding): New function. |
| (fold_const_c_tests): Call it. |
| * optabs.def (vec_duplicate_optab): New optab. |
| * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR. |
| * optabs.h (expand_vector_broadcast): Declare. |
| * optabs.c (expand_vector_broadcast): Make non-static. Try using |
| vec_duplicate_optab. |
| * expr.c (store_constructor): Try using vec_duplicate_optab for |
| uniform vectors. |
| (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR. |
| |
| 2017-12-15 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR target/83358 |
| * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase |
| div/mod latencies a bit. |
| |
| 2017-12-15 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/36550 |
| * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New. |
| (mark_threaded_blocks): Rewrite code to avoid block copying when |
| optimizing for size. Don't pessimize blocks which will be |
| copied, but all the statements will be dead. |
| |
| 2017-12-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR tree-optimization/81165 |
| * tree-ssa-threadupdate.c (uses_in_bb): New. |
| (estimate_threading_killed_stmts): New. |
| * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype. |
| * tree-ssa-threadedge.c |
| (record_temporary_equivalences_from_stmts_at_dest): Expand limit |
| when its hit. |
| |
| 2017-12-15 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/83410 |
| * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump |
| threads when parallelizing loops. |
| |
| 2017-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (struct attribute_spec): Swap affects_type_identity and |
| handler fields. |
| * config/alpha/alpha.c (vms_attribute_table): Swap |
| affects_type_identity and handler fields, adjust comments. |
| * config/mips/mips.c (mips_attribute_table): Likewise. |
| * config/visium/visium.c (visium_attribute_table): Likewise. |
| * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise. |
| * config/microblaze/microblaze.c (microblaze_attribute_table): |
| Likewise. |
| * config/spu/spu.c (spu_attribute_table): Likewise. |
| * config/mcore/mcore.c (mcore_attribute_table): Likewise. |
| * config/arc/arc.c (arc_attribute_table): Likewise. |
| * config/m68k/m68k.c (m68k_attribute_table): Likewise. |
| * config/v850/v850.c (v850_handle_interrupt_attribute, |
| v850_handle_data_area_attribute): Formatting fixes. |
| (v850_attribute_table): Swap affects_type_identity and handler |
| fields, adjust comments. |
| * config/m32r/m32r.c (m32r_attribute_table): Likewise. |
| * config/arm/arm.c (arm_attribute_table): Likewise. |
| * config/avr/avr.c (avr_attribute_table): Likewise. |
| * config/s390/s390.c (s390_attribute_table): Likewise. |
| * config/sh/sh.c (sh_attribute_table): Likewise. |
| * config/i386/i386.c (ix86_handle_cconv_attribute, |
| ix86_handle_callee_pop_aggregate_return): Formatting fixes. |
| (ix86_attribute_table): Swap affects_type_identity and handler |
| fields, adjust comments. |
| * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. |
| * config/sparc/sparc.c (sparc_attribute_table): Likewise. |
| * config/m32c/m32c.c (m32c_attribute_table): Likewise. |
| * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise. |
| * config/ia64/ia64.c (ia64_attribute_table): Likewise. |
| * config/msp430/msp430.c (msp430_attribute_table): Likewise. |
| * config/rx/rx.c (rx_attribute_table): Likewise. |
| * config/cr16/cr16.c (cr16_attribute_table): Likewise. |
| * config/h8300/h8300.c (h8300_attribute_table): Likewise. |
| * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise. |
| * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise. |
| * config/bfin/bfin.c (bfin_attribute_table): Likewise. |
| * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. |
| * config/rl78/rl78.c (rl78_attribute_table): Likewise. |
| * config/nds32/nds32.c (nds32_attribute_table): Likewise. |
| * doc/plugins.texi (user_attr): Likewise. Add NULL for |
| exclude. |
| * attribs.c (empty_attribute_table): Swap affects_type_identity and |
| handler fields. |
| (register_scoped_attributes, decl_attributes): Formatting fixes. |
| |
| PR tree-optimization/83269 |
| * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A |
| subtraction in arg0's type if type is signed and arg0 is unsigned. |
| Formatting fix. |
| |
| PR sanitizer/81281 |
| * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and |
| convert? on @0 instead of convert. Check type of @1, not @0. |
| ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and |
| convert? on @0 instead of convert. Check type of @1, not @0. |
| ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0, |
| only optimize if either both @1 and @2 types are narrower |
| precision, or both are wider or equal precision, and in the former |
| case only if both have undefined overflow. |
| |
| 2017-12-15 Richard Biener <rguenther@suse.de> |
| |
| PR lto/83388 |
| * internal-fn.def (IFN_NOP): Add. |
| * internal-fn.c (expand_NOP): Do nothing. |
| * lto-streamer-in.c (input_function): Instead of removing |
| sanitizer calls replace them with IFN_NOP calls. |
| |
| 2017-12-15 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dse.c (store_info, read_info_type): Replace begin and end with |
| offset and width. |
| (print_range): New function. |
| (set_all_positions_unneeded, any_positions_needed_p) |
| (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update |
| accordingly. |
| (record_store): Likewise. Optimize the case in which all positions |
| are unneeded. |
| (get_stored_val): Replace read_begin and read_end with read_offset |
| and read_width. |
| (replace_read): Update call accordingly. |
| |
| 2017-12-15 Bin Cheng <bin.cheng@arm.com> |
| |
| * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro. |
| (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members. |
| (loop_cand::loop_cand): Initialize above members. |
| (loop_cand::supported_operations): Delete. |
| (loop_cand::can_interchange_p): Inline above function. |
| (loop_cand::classify_simple_reduction): Record number of constant |
| initialized simple reductions. |
| (should_interchange_loops): New parameters. Check stmt cost of loops |
| to be interchange. |
| (tree_loop_interchange::interchange): Prepare stmt cost of outer loop. |
| Update call to should_interchange_loops. |
| (should_interchange_loop_nest): Update call to |
| should_interchange_loops. |
| |
| 2017-12-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/66488 |
| * ggc-page.c (HOST_BITS_PER_PTR): Do not define here... |
| * hwint.h (HOST_BITS_PER_PTR): ...but here instead. |
| * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete. |
| |
| 2017-12-15 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi, |
| __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): |
| New. |
| * config/i386/sse.md (vaesenclast_<mode>): New pattern. |
| * config/i386/vaesintrin.h (_mm256_aesenclast_epi128, |
| _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics. |
| |
| 2017-12-15 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi, |
| __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New. |
| * config/i386/sse.md (vaesenc_<mode>): New pattern. |
| * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128, |
| _mm_aesenc_epi128): New intrinsics. |
| |
| 2017-12-15 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi, |
| __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): |
| New. |
| * config/i386/sse.md (vaesdeclast_<mode>): New pattern. |
| * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128, |
| _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics. |
| |
| 2017-12-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * gimple-ssa-strength-reduction.c (analyze_increments): |
| Distinguish replacement costs for constant strides from those for |
| unknown strides. |
| |
| 2017-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * var-tracking.c (variable_tracking_main_1): Formatting fix. |
| |
| 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * doc/invoke.texi: Document -Wcast-function-type. |
| * recog.h (stored_funcptr): Change signature. |
| * tree-dump.c (dump_node): Avoid warning. |
| * typed-splay-tree.h (typed_splay_tree): Avoid warning. |
| |
| 2017-12-14 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR middle_end/79538 |
| * gimple-fold.c (get_range_strlen): Add the handling of non-member |
| array. |
| |
| 2017-12-14 David Malcolm <dmalcolm@redhat.com> |
| |
| PR tree-optimization/83312 |
| * domwalk.h (dom_walker::dom_walker): Fix typo in comment. |
| * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for |
| "val" param, and to cope with arbitrary basic blocks. |
| (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to |
| handle NULL_TREE for "val", dropping "bb" param. |
| (find_taken_edge_switch_expr): Make "switch_stmt" param const and |
| drop "bb" param. Handle NULL_TREE for "val". |
| (find_case_label_for_value): Make "switch_stmt" param const. |
| * tree-vrp.c (class check_array_bounds_dom_walker): New subclass |
| of dom_walker. |
| (vrp_prop::check_all_array_refs): Reimplement as... |
| (check_array_bounds_dom_walker::before_dom_children): ...this new |
| vfunc. Replace linear search through BB block list, excluding |
| those with non-executable in-edges via dominator walk. |
| |
| 2017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.opt (mverbose-cost-dump): New option. |
| * config/arm/arm.c (arm_rtx_costs): Use it. |
| |
| 2017-12-14 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR bootstrap/83396 |
| * reload1.c (emit_input_reload_insns): Skip debug markers. |
| |
| 2017-12-14 Alexandre Oliva <aoliva@redhat.com> |
| |
| * config/i386/i386.c (rest_of_insert_endbranch): Use call loc |
| for its nop_endbr. |
| |
| PR bootstrap/83396 |
| * config/arc/arc.c (hwloop_optimize): Skip debug insns. |
| * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust. |
| * config/sh/sh.c: Skip debug insns besides notes. |
| * config/sh/sh.md: Likewise. |
| * config/sh/sh_treg_combine.cc: Likewise. |
| * config/sh/sync.md: Likewise. |
| |
| 2017-12-14 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): |
| Add item for weak_undefined. |
| |
| 2017-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/67842 |
| * sese.h (bb_in_region): Remove #if 0'ed code. |
| |
| 2017-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83326 |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add |
| may_be_zero parameter and handle it by not marking the first |
| peeled copy as not exiting the loop. |
| (try_peel_loop): Likewise. |
| (canonicalize_loop_induction_variables): Use number_of_iterations_exit |
| to handle the case of constant or zero iterations and perform |
| loop header copying on-the-fly. |
| |
| 2017-12-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83418 |
| * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): |
| Instead of asserting we don't get unfolded comparisons deal with them. |
| |
| 2017-12-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/83396 |
| * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of |
| basic blocks. Assert debug bind insns don't appear outside of bbs, |
| don't reset them. Assert insns without BLOCK_FOR_INSN are outside of |
| bb. Simplify. |
| |
| PR tree-optimization/83198 |
| * gimple-ssa-sprintf.c (format_floating): Set type solely based on |
| dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST |
| value if arg is a REAL_CST with incompatible type. |
| |
| 2017-12-14 Sudakshina Das <sudi.das@arm.com> |
| Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/81228 |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT |
| to CCFPEmode. |
| * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add |
| LTGT. |
| |
| 2017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75, |
| cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features. |
| |
| 2017-12-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * poly-int.h: New file. |
| * poly-int-types.h: Likewise. |
| * coretypes.h: Include them. |
| (POLY_INT_CONVERSION): Define. |
| * target.def (estimated_poly_value): New hook. |
| * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook. |
| * doc/tm.texi: Regenerate. |
| * doc/poly-int.texi: New file. |
| * doc/gccint.texi: Include it. |
| * doc/rtl.texi: Describe restrictions on subreg modes. |
| * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi. |
| * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition. |
| (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS. |
| * targhooks.h (default_estimated_poly_value): Declare. |
| * targhooks.c (default_estimated_poly_value): New function. |
| * target.h (estimated_poly_value): Likewise. |
| * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits. |
| (wi::unary_traits): Delete. |
| (wi::binary_traits::signed_shift_result_type): Define for |
| offset_int << HOST_WIDE_INT, etc. |
| (generic_wide_int::operator <<=): Define for all types and use |
| wi::lshift instead of <<. |
| (wi::hwi_with_prec): Add a default constructor. |
| (wi::ints_for): New class. |
| (operator <<): Define for all wide-int types. |
| (operator /): New function. |
| (operator %): Likewise. |
| * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE) |
| (ASSERT_MAYBE_NE_AT): New macros. |
| |
| 2017-12-13 Eric Botcazou <ebotcazou@adacore.com> |
| Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR middle-end/78468 |
| * emit-rtl.c (init_emit): Remove ??? comment. |
| * explow.c (get_dynamic_stack_size): Take known alignment of stack |
| pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY. |
| * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the |
| alignment of 3 virtual registers to BITS_PER_WORD. |
| |
| * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. |
| |
| 2017-12-13 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define. |
| * config/rs6000/rs6000.c (cpu_supports_info): Use it. |
| |
| 2017-12-13 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR bootstrap/83396 |
| * reload1.c (eliminate_regs_in_insn): Skip debug markers. |
| |
| 2017-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts |
| with the exception of debug begin stmt markers appear before |
| labels. |
| |
| PR bootstrap/83396 |
| * final.c (rest_of_handle_final): Call variable_tracking_main only |
| if !flag_var_tracking. |
| |
| 2017-12-13 Alexandre Oliva <aoliva@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/83396 |
| PR debug/83391 |
| * tree-cfgcleanup.c (remove_forwarder_block): Keep after |
| labels debug stmts that can only appear after labels. |
| |
| 2017-12-13 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/82398 |
| * sel-sched.c (sel_rank_for_schedule): Fix check for zero |
| EXPR_USEFULNESS in priority comparison. |
| |
| 2017-12-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83393 |
| * combine.c (move_deaths): If reg_stat points to a too new insn in |
| last_death, do not use it: find the proper insn instead. |
| |
| 2017-12-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/82190 |
| * config/rs6000/rs6000-string.c (expand_block_compare, |
| expand_strn_compare): Fix set_mem_size() calls. |
| |
| 2017-12-12 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/83298 |
| PR tree-optimization/83362 |
| PR tree-optimization/83383 |
| * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make |
| push_value_range a public interface. Add new argument to |
| record_ranges_from_stmt. |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::record_ranges_from_stmt): Add new argument. |
| Update comments. Handle recording temporary equivalences. |
| * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add |
| new argument to call to evrp_range_analyzer::record_ranges_from_stmt. |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise. |
| * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and |
| gimple-ssa-evrp-analyze.h. |
| (record_temporary_equivalences_from_phis): Add new argument. When |
| the PHI arg is an SSA_NAME, set the result's range to the range |
| of the PHI arg. |
| (record_temporary_equivalences_from_stmts_at_dest): Record ranges |
| from statements too. |
| (thread_through_normal_block): Accept new argument, evrp_range_analyzer. |
| Pass it down to children as needed. |
| (thread_outgoing_edges): Likewise. |
| (thread_across_edge): Likewise. Push/pop range state as needed. |
| * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype. |
| |
| 2017-12-12 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB. |
| (PTA_CANNONLAKE): Remove PTA_CLWB. |
| |
| 2017-12-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/83332 |
| * config/rs6000/vector.md (vcondv2dfv2di): New define_expand. |
| (vcondv2div2df): Likewise. |
| (vconduv2dfv2di): Likewise. |
| |
| 2017-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF, |
| BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF, |
| BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of |
| ATTR_MATHFN_FPROUNDING_ERRNO. |
| |
| 2017-12-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83385 |
| * graphite-scop-detection.c (get_order, order): Remove. |
| (bb_to_rpo): New global. |
| (cmp_pbbs): Adjust. |
| (build_scops): Sort pbbs in RPO order. |
| |
| 2017-12-12 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * combine.c (simplify_set): Do not transform subregs to zero_extends |
| if the destination mode is a vector mode. |
| |
| 2017-12-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83359 |
| * tree-cfg.h (fold_loop_internal_call): Declare. |
| * tree-vectorizer.c (fold_loop_internal_call): Moved to ... |
| * tree-cfg.c (fold_loop_internal_call): ... here. No longer static. |
| (find_loop_dist_alias): New function. |
| (move_sese_region_to_fn): If any dloop->orig_loop_num value is |
| updated, also adjust any corresponding LOOP_DIST_ALIAS internal |
| calls. |
| |
| PR tree-optimization/80631 |
| * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo. |
| (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE |
| arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of |
| hardcoding zero as the value if COND_EXPR is never true. For |
| INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if |
| INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of |
| hardcoding MAX_EXPR as the reduction operation. |
| (is_nonwrapping_integer_induction): Allow negative step. |
| (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for |
| vect_create_epilog_for_reduction, if no value is suitable, don't |
| use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes. |
| |
| 2017-12-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81889 |
| * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use |
| range info from the non-wrapping IV instead of just the range |
| of the type. |
| |
| 2017-12-12 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-12-12 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET, |
| OPTION_MASK_ISA_VAES_UNSET): New. |
| (ix86_handle_option): Handle -mvaes. |
| * config/i386/cpuid.h: Define bit_VAES. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes. |
| * config/i386/i386-c.c (__VAES__): New. |
| * config/i386/i386.c (ix86_target_string): Add -mvaes. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New. |
| * config/i386/i386.opt: Add -mvaes. |
| * doc/invoke.texi: Ditto. |
| |
| 2017-12-12 Alexandre Oliva <aoliva@redhat.com> |
| |
| * debug.h (gcc_debug_hooks): Add inline_entry. |
| * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. |
| * debug.c (do_nothing_debug_hooks): Likewise. |
| * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. |
| * dwarf2out.c (dwarf2_debug_hooks): Likewise. |
| (dwarf2_lineno_debug_hooks): Likewise. |
| |
| * common.opt (gstatement-frontiers): New, setting |
| debug_nonbind_markers_p. |
| * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate. |
| * toplev.c (process_options): Autodetect value for debug statement |
| frontiers option. |
| * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate. |
| * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New. |
| |
| * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt |
| markers. Integrate source bind into debug stmt expand loop. |
| (pass_expand::execute): Check debug marker limit. Avoid deep |
| TER and expand debug locations for debug bind insns only. |
| * cse.c (insn_live_p): Keep nonbind markers and debug bindings |
| followed by them. |
| * df-scan.c (df_insn_delete): Accept out-of-block debug insn. |
| * final.c (reemit_insn_block_notes): Take current block from |
| nonbind markers. Declare note where it's first set. |
| (final_scan_insn): Handle begin stmt notes. Emit is_stmt according to |
| begin stmt markers if enabled. |
| (notice_source_line): Handle nonbind markers. Fail if their |
| location is unknown or that of builtins. |
| (rest_of_handle_final): Convert begin stmt markers to notes if |
| var-tracking didn't run. |
| (rest_of_clean_state): Skip begin stmt markers. |
| * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt |
| markers. |
| * function.c (allocate_struct_function): Set begin_stmt_markers. |
| * function.h (struct function): Add debug_marker_count counter |
| and debug_nonbind_markers flag. |
| * gimple-iterator.c (gsi_remove): Adjust debug_marker_count. |
| * gimple-low.c (lower_function_body): Adjust |
| debug_nonbind_markers. |
| (lower_stmt): Drop or skip gimple debug stmts. |
| (lower_try_catch): Skip debug stmts. |
| * gimple.c (gimple_build_debug_begin_stmt): New. |
| (gimple_copy): Increment debug_marker_count if copying one. |
| * gimple.h (gimple_build_debug_begin_stmt): Declare. |
| * gimplify.c (rexpr_location): New. |
| (rexpr_has_location): New. |
| (warn_switch_unreachable_r): Handle gimple debug stmts. |
| (shortcut_cond_r): Call expr_location. |
| (find_goto): New. |
| (find_goto_label): New. |
| (shortcut_cond_expr): Call expr_has_location, expr_location, and |
| find_goto_label. |
| (gimplify_cond_expr): Call find_goto_label, expr_has_location, and |
| expr_location. |
| (gimplify_expr): Handle begin stmt markers. Reject debug expr decls. |
| * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New. Add to... |
| (LANG_HOOKS_INITIALIZER): ... this. |
| * langhooks.h (struct lang_hooks): Add emits_begin_stmt. |
| * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks |
| debug insns. |
| (update_ebb_live_info): Skip debug insn markers. |
| * lra.c (debug_insn_static_data): Rename to... |
| (debug_bind_static_data): ... this. |
| (debug_marker_static_data): New. |
| (lra_set_insn_recog_data): Select one of the above depending |
| on debug insn kind. |
| (lra_update_isn_regno_info): Don't assume debug insns have |
| freqs. |
| (push_insns): Skip debug insns. |
| * lto-streamer-in.c (input_function): Drop debug stmts |
| depending on active options. Adjust debug_nonbind_markers. |
| * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New. |
| * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle |
| begin stmt marker notes. |
| (print_insn): Likewise. |
| * recog.c (extract_insn): Recognize rtl for debug markers. |
| * rtl.def (DEBUG_MARKER): New. |
| * tree-inline.c: Include params.h. |
| (remap_gimple_stmt): Handle nonbind markers. |
| (maybe_move_debug_stmts_to_successors): Likewise. |
| (copy_debug_stmt): Likewise. |
| * tree-iterator.c (append_to_statement_list_1): Append begin stmt |
| markers regardless of no side effects. |
| (tsi_link_before): Don't update container's side effects when adding |
| a begin stmt marker. |
| (tsi_link_after): Likewise. |
| (expr_first): Skip begin stmt markers. |
| (expr_last): Likewise. |
| * tree-pretty-print (dump_generic_node): Handle begin stmt markers. |
| * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): |
| Disregard nonbind markers. |
| * tree.c (make_node_stat): Don't set side effects for begin stmt |
| markers. |
| (build1_stat): Likewise. |
| * tree.def (DEBUG_BEGIN_STMT): New. |
| * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR. |
| * var-tracking.c (delete_debug_insns): Renamed to... |
| (delete_vta_debug_insns): ... this. |
| (reemit_marker_as_note): New. |
| (vt_initialize): Reemit markers. |
| (delete_vta_debug_insns): Likewise. |
| (vt_debug_insns_local): Reemit or delete markers. |
| (variable_tracking_main_1): Likewise. |
| * doc/generic.texi (DEBUG_BEGIN_STMT): Document. |
| * doc/gimple.texi (gimple_debug_begin_stmt_p): New. |
| (gimple_debug_nonbind_marker_p): New. |
| (gimple_build_debug_bind): Adjust. |
| (gimple_build_debug_begin_stmt): New. |
| * doc/invoke.texi (max-debug-marker-count): New param. |
| * doc/rtl.texi (debug_implicit_ptr, entry_value): New. |
| (debug_parameter_ref, debug_marker): New. |
| (NOTE_INSN_BEGIN_STMT): New. |
| (DEBUG_INSN): Describe begin stmt markers. |
| |
| * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if, |
| without debug insns, we wouldn't, but clean up debug insns |
| after a control flow insn nevertheless. |
| |
| * cfgcleanup.c (delete_unreachable_blocks): Use alternate |
| block removal order if MAY_HAVE_DEBUG_BIND_INSNS. |
| * cfgexpand.c (label_rtx_for_bb): Skip debug insns. |
| * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns. |
| (rtl_tidy_fallthru_edge): Likewise. |
| (rtl_verify_fallthru): Likewise. |
| (rtl_verify_bb_layout): Likewise. |
| (skip_insns_after_block): Likewise. |
| (duplicate_insn_chain): Use DEBUG_BIND_INSN_P. |
| * dwarf2out.c: Include print-rtl.h. |
| (dwarf2out_next_real_insn): New. |
| (dwarf2out_var_location): Call it. Disregard begin stmt markers. |
| Dump debug binds in asm comments. |
| * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts. |
| * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust |
| callers to use gsi_start_nondebug_bb instead. |
| (gsi_after_labels): Skip gimple debug stmts. |
| (gsi_start_nondebug): New. |
| * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust. |
| (proper_loop_form_for_interchange): Adjust. |
| * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt. |
| * gimple.h (gimple_seq_last_nondebug_stmt): New. |
| * gimplify.c (last_stmt_in_scope): Skip debug stmts. |
| (collect_fallthrough_labels): Likewise. |
| (should_warn_for_implicit_fallthrough): Likewise. |
| (warn_implicit_fallthrough_r): Likewise. |
| (expand_FALLTHROUGH_r): Likewise. |
| * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust. |
| (graphite_copy_stmts_from_block): Skip nonbind markers. |
| * haifa-sched.c (sched_extend_bb): Skip debug insns. |
| * ipa-icf-gimple.c (func_checker::compare_bb): Adjust. |
| * jump.c (clean_barriers): Skip debug insns. |
| * omp-expand.c (expand_parallel_call): Skip debug insns. |
| (expand_task_call): Likewise. |
| (remove_exit_barrier): Likewise. |
| (expand_omp_taskreg): Likewise. |
| (expand_omp_for_init_counts): Likewise. |
| (expand_omp_for_generic): Likewise. |
| (expand_omp_for_static_nochunk): Likewise. |
| (expand_omp_for_static_chunk): Likewise. |
| (expand_omp_simd): Likewise. |
| (expand_omp_taskloop_for_outer): Likewise. |
| (expand_omp_taskloop_for_inner): Likewise. |
| (expand_oacc_for): Likewise. |
| (expand_omp_sections): Likewise. |
| (expand_omp_single): Likewise. |
| (expand_omp_synch): Likewise. |
| (expand_omp_atomic_load): Likewise. |
| (expand_omp_atomic_store): Likewise. |
| (expand_omp_atomic_fetch_op): Likewise. |
| (expand_omp_atomic_pipeline): Likewise. |
| (expand_omp_atomic_mutex): Likewise. |
| (expand_omp_target): Likewise. |
| (grid_expand_omp_for_loop): Likewise. |
| (grid_expand_target_grid_body): Likewise. |
| (build_omp_regions_1): Likewise. |
| * omp-low.c (check_combined_parallel): Skip debug stmts. |
| * postreload.c (fixup_debug_insns): Skip nonbind debug insns. |
| * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo. |
| * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in |
| test. |
| * tree-cfg.c (make_blobs_1): Skip debug stmts. |
| (make_edges): Likewise. |
| (cleanup_dead_labels): Likewise. |
| (gimple_can_merge_blocks_p): Likewise. |
| (stmt_starts_bb_p): Likewise. |
| (gimple_block_label): Likewise. |
| (gimple_redirect_edge_and_branch): Likewise. |
| * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping |
| of debug stmts. |
| (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with |
| TDF_SLIM. |
| * tree-pretty-print (print_declaration): Omit initializer in slim |
| dumps. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt |
| markers. |
| (eliminate_unnecessary_stmts): Stabilize block removal order. |
| * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts. |
| * var-tracking.c (get_first_insn): New. |
| (vt_emit_notes): Call it. |
| (vt_initialize): Walk any insns before the first BB. |
| (delete_debug_insns): Likewise. |
| |
| * gimple.h (enum gimple_debug_subcode): Add |
| GIMPLE_DEBUG_BEGIN_STMT. |
| (gimple_debug_begin_stmt_p): New. |
| (gimple_debug_nonbind_marker_p): New. |
| * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New. |
| (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from.... |
| (MAY_HAVE_DEBUG_STMTS): ... this. Check both. |
| * insn-notes.def (BEGIN_STMT): New. |
| * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New. |
| (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from.... |
| (MAY_HAVE_DEBUG_INSNS): ... this. Check both. |
| (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New. |
| (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New. |
| (INSN_DEBUG_MARKER_KIND): New. |
| (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New. |
| (INSN_VAR_LOCATION): Check for VAR_LOCATION. |
| (INSN_VAR_LOCATION_PTR): New. |
| * cfgexpand.c (expand_debug_locations): Handle debug bind insns |
| only. |
| (expand_gimple_basic_block): Likewise. Emit debug temps for TER |
| deps only if debug bind insns are enabled. |
| (pass_expand::execute): Avoid deep TER and expand |
| debug locations for debug bind insns only. |
| * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow |
| debug stmts special handling down to debug bind stmts. |
| * combine.c (try_combine): Narrow debug insns special handling |
| down to debug bind insns. |
| * cse.c (delete_trivially_dead_insns): Handle debug bindings. |
| Narrow debug insns preexisting special handling down to debug |
| bind insns. |
| * dce.c (rest_of_handle_ud_dce): Narrow debug insns special |
| handling down to debug bind insns. |
| * function.c (instantiate_virtual_regs): Skip debug markers, |
| adjust handling of debug binds. |
| * gimple-ssa-backprop.c (backprop::prepare_change): Try debug |
| temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS. |
| * haifa-sched.c (schedule_insn): Narrow special handling of debug |
| insns to debug bind insns. |
| * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow |
| special handling of debug stmts to debug bind stmts. |
| * ipa-split.c (split_function): Likewise. |
| * ira.c (combine_and_move_insns): Adjust debug bind insns only. |
| * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind |
| debug insns. |
| * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P. |
| * regrename.c (build_def_use): Likewise. |
| * regcprop.c (copyprop_hardreg_forward_1): Likewise. |
| (pass_cprop_hardreg): Narrow special casing of debug insns to |
| debug bind insns. |
| * regstat.c (regstat_init_n_sets_and_refs): Likewise. |
| * reload1.c (reload): Likewise. |
| * sese.c (sese_insert_phis_for_liveouts): Narrow special |
| casing of debug stmts to debug bind stmts. |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. |
| * ssa-iterators.h (num_imm_uses): Likewise. |
| * tree-cfg.c (gimple_merge_blocks): Narrow special casing of |
| debug stmts to debug bind stmts. |
| * tree-inline.c (tree_function_versioning): Narrow special casing |
| of debug stmts to debug bind stmts. |
| * tree-loop-distribution.c (generate_loops_for_partition): |
| Narrow special casing of debug stmts to debug bind stmts. |
| * tree-sra.c (analyze_access_subtree): Narrow special casing |
| of debug stmts to debug bind stmts. |
| * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug |
| stmts to debug bind stmts. |
| * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special |
| casing of debug stmts to debug bind stmts. |
| * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. |
| * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special |
| casing of debug stmts to debug bind stmts. |
| * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): |
| Likewise. |
| * tree-ssa.c (flush_pending_stmts): Narrow special casing of |
| debug stmts to debug bind stmts. |
| (gimple_replace_ssa_lhs): Likewise. |
| (insert_debug_temp_for_var_def): Likewise. |
| (insert_debug_temps_for_defs): Likewise. |
| (reset_debug_uses): Likewise. |
| * tree-ssanames.c (release_ssa_name_fn): Likewise. |
| * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise. |
| (adjust_debug_stmts): Likewise. |
| (adjust_phi_and_debug_stmts): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-loop.c (vect_transform_loop): Likewise. |
| * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P. |
| * var-tracking.c (adjust_mems): Narrow special casing of debug |
| insns to debug bind insns. |
| (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise. |
| (compute_bb_dataflow, vt_find_locations): Likewise. |
| (vt_expand_loc, emit_notes_for_changes): Likewise. |
| (vt_init_cfa_base): Likewise. |
| (vt_emit_notes): Likewise. |
| (vt_initialize): Likewise. |
| (vt_finalize): Likewise. |
| |
| * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder. |
| (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder. |
| (next_nonnote_nondebug_insn_bb): New. |
| (prev_nonnote_nondebug_insn_bb): New. |
| (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove. |
| * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls. |
| (prev_nonnote_nondebug_insn_bb): Declare. |
| (next_nonnote_nondebug_insn_bb): Declare. |
| * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns. |
| * cfgrtl.c (get_last_bb_insn): Likewise. |
| * lra.c (push_insns): Likewise. |
| |
| 2017-12-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/82050 |
| * selftest-run-tests.c (selftest::run_tests): Move start/finish code |
| to... |
| * selftest.c (selftest::test_runner::test_runner): New ctor. |
| (selftest::test_runner::~test_runner): New dtor. |
| * selftest.h (class selftest::test_runner): New class. |
| |
| 2017-12-11 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_extract_fp32_from_shorth, |
| vec_extract_fp32_from_shortl]): Add #defines. |
| * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion. |
| * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH, |
| ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND, |
| ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL, |
| ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD, |
| ALTIVEC_BUILTIN_VEC_SLL): Add expansions. |
| * doc/extend.texi: Add documentation for the added builtins. |
| |
| 2017-12-11 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR rtl-optimization/80693 |
| PR rtl-optimization/81019 |
| PR rtl-optimization/81020 |
| * combine.c (distribute_notes): Reset any REG_UNUSED REGs that |
| are not mentioned in i3. Place the REG_UNUSED note on i2, |
| possibly modified to REG_DEAD, if it did not originate in i3. |
| |
| 2017-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * recog.c (store_data_bypass_p_1): New function. |
| (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER. Use |
| store_data_bypass_p_1 to avoid code duplication. Formatting fixes. |
| |
| 2017-12-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83361 |
| * ifcvt.c (if_convert): Call fixup_partitions. |
| |
| 2017-12-11 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for |
| early folding of splat_u{8,16,32}. |
| |
| 2017-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_print_operand): Don't start |
| output_operand_lossage first argument with capital letter. |
| (aarch64_override_options): Don't start error and sorry first argument |
| with capital letter. |
| |
| 2017-12-11 Andi Kleen <ak@linux.intel.com> |
| |
| PR gcov-profile/83355 |
| * auto-profile.c (string_table::get_index_by_decl): Don't |
| recurse when abstract origin points to itself. |
| |
| 2017-12-11 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/83320 |
| * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete. |
| (prune_datarefs_not_in_loop): Ditto. |
| |
| 2017-12-10 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific): Tweak link to mkssoftware.com. |
| |
| 2017-12-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83337 |
| * gimple-loop-interchange.cc (compute_access_stride): Handle |
| bitfield DRs properly. |
| |
| 2017-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83338 |
| * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR |
| vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from |
| vector of unsigned integers to vector of signed integers. |
| |
| 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 Michael Matz <matz@suse.de> |
| |
| Fix PR tree-optimization/83323 |
| * 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. |
| |
| 2017-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * 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. |
| |
| 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. |
| |
| 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. |
| |
| 2017-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * 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. |
| |
| 2017-12-08 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| PR target/82960 |
| * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true. |
| |
| 2017-12-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/83609 |
| * profile-count.c (profile_count::from_gcov_type): Move from |
| profile-count.h; handle overflow. |
| * profile-count.h (profile_count::from_gcov_type): Move offline. |
| |
| 2017-12-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83304 |
| * combine.c (move_deaths): If we do not know where a register died, |
| search for it. |
| |
| 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. |
| |
| 2017-06-08 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names |
| for armv6 ARM CPU IDs. |
| |
| 2017-06-08 Richard Earnshaw <rearnsha@arm.com> |
| |
| * 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. |
| |
| 2017-06-08 Richard Earnshaw <rearnsha@arm.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2017-12-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member |
| of struct attribute_spec. |
| |
| 2017-12-08 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2017-12-08 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-12-08 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32, |
| _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New. |
| * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32, |
| _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32, |
| _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32, |
| _mm_maskz_dpbusds_epi32): New intrinsics. |
| |
| 2017-12-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * 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. |
| |
| 2017-12-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * 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. |
| |
| 2017-12-07 Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define. |
| (TARGET_HAVE_SRODATA_SECTION): New define. |
| (riscv_select_section): New function. |
| |
| 2017-12-08 Joseph Myers <joseph@codesourcery.com> |
| Alexander Monakov <amonakov@ispras.ru> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81906 |
| * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_print_address_internal): Return |
| a bool success value. Don't call output_operand_lossage here. |
| (aarch64_print_ldpstp_address): Return a bool success value. |
| (aarch64_print_operand_address): Call output_addr_const if |
| aarch64_print_address_internal fails. |
| (aarch64_print_operand): Don't assert that the mode is 16 bytes for |
| 'y'; call output_operand_lossage instead. Call output_operand_lossage |
| if aarch64_print_ldpstp_address fails. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vector-builder.h |
| (tree_vector_builder::binary_encoded_nelts): Declare. |
| * tree-vector-builder.c |
| (tree_vector_builder::binary_encoded_nelts): New function. |
| * fold-const.c (negate_expr_p): Likewise. |
| (operand_equal_p, fold_checksum_tree): Likewise. |
| * tree-loop-distribution.c (const_with_all_bytes_same): Likewise. |
| * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop) |
| (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise. |
| (uniform_vector_p): Likewise. |
| * varasm.c (const_hash_1, compare_constant): Likewise. |
| * tree-ssa-ccp.c: Include tree-vector-builder.h. |
| (valid_lattice_transition): Operate directly on the VECTOR_CST |
| encoding. |
| * ipa-icf.c: Include tree-vector-builder.h. |
| (sem_variable::equals): Operate directly on the VECTOR_CST encoding. |
| * print-tree.c (print_node): Print encoding of VECTOR_CSTs. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.c (build_vector): Delete. |
| * tree.h (build_vector): Make static and move into the self-testing |
| block. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * vector-builder.h (vector_builder::derived): New const overload. |
| (vector_builder::elt): New function. |
| * tree-vector-builder.h (tree_vector_builder::type): New function. |
| (tree_vector_builder::apply_step): Declare. |
| * tree-vector-builder.c (tree_vector_builder::apply_step): New |
| function. |
| * gimple-fold.h (tree_vector_builder): Declare. |
| (gimple_build_vector): Take a tree_vector_builder instead of a |
| type and vector of elements. |
| * gimple-fold.c (gimple_build_vector): Likewise. |
| * tree-vect-loop.c (get_initial_def_for_reduction): Update call |
| accordingly. |
| (get_initial_defs_for_reduction): Likewise. |
| (vectorizable_induction): Likewise. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vector-builder.h |
| (tree_vector_builder::new_binary_operation): Declare. |
| * tree-vector-builder.c |
| (tree_vector_builder::new_binary_operation): New function. |
| * fold-const.c (fold_relational_const): Use it. |
| (const_binop): Likewise. Check that both input vectors have |
| the same number of elements, thus excluding things like WIDEN_SUM. |
| Check whether it is possible to operate directly on the encodings |
| of stepped inputs. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and |
| new_unary_operation, operating only on the encoded elements. |
| (const_unop): Likewise. |
| (exact_inverse): Likewise. |
| (distributes_over_addition_p): New function. |
| (const_binop): Use tree_vector_builder and new_unary_operation |
| for combinations of VECTOR_CST and INTEGER_CST. Operate only |
| on the encoded elements unless the encoding is strided and the |
| operation does not distribute over addition. |
| (fold_convert_const): Use tree_vector_builder and |
| new_unary_operation. Operate only on the encoded elements |
| for truncating integer conversions, or for non-stepped encodings. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/sparc/sparc.c: Include tree-vector-builder.h. |
| (sparc_fold_builtin): Use tree_vector_builder instead of build_vector. |
| * expmed.c: Include tree-vector-builder.h. |
| (make_tree): Use tree_vector_builder instead of build_vector. |
| * fold-const.c: Include tree-vector-builder.h. |
| (const_binop): Use tree_vector_builder instead of build_vector. |
| (const_unop): Likewise. |
| (native_interpret_vector): Likewise. |
| (fold_vec_perm): Likewise. |
| (fold_ternary_loc): Likewise. |
| * gimple-fold.c: Include tree-vector-builder.h. |
| (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead |
| of build_vector. |
| * tree-ssa-forwprop.c: Include tree-vector-builder.h. |
| (simplify_vector_constructor): Use tree_vector_builder instead |
| of build_vector. |
| * tree-vect-generic.c: Include tree-vector-builder.h. |
| (add_rshift): Use tree_vector_builder instead of build_vector. |
| (expand_vector_divmod): Likewise. |
| (optimize_vector_constructor): Likewise. |
| * tree-vect-loop.c: Include tree-vector-builder.h. |
| (vect_create_epilog_for_reduction): Use tree_vector_builder instead |
| of build_vector. Explicitly use a stepped encoding for |
| { 1, 2, 3, ... }. |
| * tree-vect-slp.c: Include tree-vector-builder.h. |
| (vect_get_constant_vectors): Use tree_vector_builder instead |
| of build_vector. |
| (vect_transform_slp_perm_load): Likewise. |
| (vect_schedule_slp_instance): Likewise. |
| * tree-vect-stmts.c: Include tree-vector-builder.h. |
| (vectorizable_bswap): Use tree_vector_builder instead of build_vector. |
| (vect_gen_perm_mask_any): Likewise. |
| (vectorizable_call): Likewise. Explicitly use a stepped encoding. |
| * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead |
| of build_vector. |
| (build_vector_from_val): Likewise. Explicitly use a duplicate |
| encoding. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/generic.texi (VECTOR_CST): Describe new representation of |
| vector constants. |
| * vector-builder.h: New file. |
| * tree-vector-builder.h: Likewise. |
| * tree-vector-builder.c: Likewise. |
| * Makefile.in (OBJS): Add tree-vector-builder.o. |
| * tree.def (VECTOR_CST): Update comment to refer to generic.texi. |
| * tree-core.h (tree_base): Add a vector_cst field to the u union. |
| (tree_vector): Change the number of elements to |
| vector_cst_encoded_nelts. |
| * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS. |
| (VECTOR_CST_ELTS): Delete. |
| (VECTOR_CST_ELT): Redefine using vector_cst_elt. |
| (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros. |
| (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise. |
| (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise. |
| (VECTOR_CST_ENCODED_ELT): Likewise. |
| (vector_cst_encoded_nelts): New function. |
| (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and |
| VECTOR_CST_NELTS_PER_PATTERN as arguments. |
| (vector_cst_int_elt, vector_cst_elt): Declare. |
| * tree.c: Include tree-vector-builder.h. |
| (tree_code_size): Abort if passed VECTOR_CST. |
| (tree_size): Update for new VECTOR_CST layout. |
| (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and |
| VECTOR_CST_NELTS_PER_PATTERN as arguments. |
| (build_vector): Use tree_vector_builder. |
| (vector_cst_int_elt, vector_cst_elt): New functions. |
| (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the |
| encoded elements and then create the vector in the canonical form. |
| (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill) |
| (check_vector_cst_stepped, test_vector_cst_patterns): New functions. |
| (tree_c_tests): Call test_vector_cst_patterns. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new |
| VECTOR_CST fields. |
| (hash_tree): Likewise. |
| * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise. |
| (streamer_write_tree_header): Likewise. |
| * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise. |
| (streamer_alloc_tree): Likewise. Update call to make_vector. |
| * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS. |
| |
| 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT) |
| (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names |
| * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise. |
| |
| 2017-12-07 Bin Cheng <bin.cheng@arm.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81303 |
| * Makefile.in (gimple-loop-interchange.o): New object file. |
| * common.opt (floop-interchange): Reuse the option from graphite. |
| * doc/invoke.texi (-floop-interchange): Ditto. New document for |
| -floop-interchange and mention it for -O3. |
| * opts.c (default_options_table): Enable -floop-interchange at -O3. |
| * gimple-loop-interchange.cc: New file. |
| * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter. |
| (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter. |
| * passes.def (pass_linterchange): New pass. |
| * timevar.def (TV_LINTERCHANGE): New time var. |
| * tree-pass.h (make_pass_linterchange): New declaration. |
| * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external |
| interchange. Record IV before/after increment in new parameters. |
| * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration. |
| * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction |
| path check into... |
| (check_reduction_path): ...New function here. |
| * tree-vectorizer.h (check_reduction_path): New declaration. |
| |
| 2017-12-07 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/83252 |
| PR rtl-optimization/80818 |
| * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER |
| always early clobbered. |
| * lra-lives.c (process_bb_lives): Check input hard regs for early |
| clobbered non-operand hard reg. |
| |
| 2017-12-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/83164 |
| * tree-cfg.c (verify_gimple_assign_binary): Don't require |
| types_compatible_p, just that TYPE_MODE is the same. |
| |
| 2017-12-07 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81544 |
| * attribs.c (empty_attribute_table): Initialize new member of |
| struct attribute_spec. |
| (decl_attributes): Add argument. Handle mutually exclusive |
| combinations of attributes. |
| (selftests::test_attribute_exclusions): New function. |
| (selftests::attribute_c_tests): Ditto. |
| * attribs.h (decl_attributes): Add default argument. |
| * selftest.h (attribute_c_tests): Declare. |
| * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests. |
| * tree-core.h (attribute_spec::exclusions, exclude): New type and |
| member. |
| * doc/extend.texi (Common Function Attributes): Update const and pure. |
| * config/alpha/alpha.c (vms_attribute_table): Initialize new member |
| of struct attribute_spec. |
| * config/arc/arc.c (arc_attribute_table): Same. |
| * config/arm/arm.c (arm_attribute_table): Same. |
| * config/avr/avr.c ( avr_attribute_table): Same. |
| * config/bfin/bfin.c (bfin_attribute_table): Same. |
| * config/cr16/cr16.c (cr16_attribute_table): Same. |
| * config/epiphany/epiphany.c (epiphany_attribute_table): Same. |
| * config/h8300/h8300.c (h8300_attribute_table): Same. |
| * config/i386/i386.c (ix86_attribute_table): Same. |
| * config/ia64/ia64.c (ia64_attribute_table): Same. |
| * config/m32c/m32c.c (m32c_attribute_table): Same. |
| * config/m32r/m32r.c (m32r_attribute_table): Same. |
| * config/m68k/m68k.c (m68k_attribute_table): Same. |
| * config/mcore/mcore.c (mcore_attribute_table): Same. |
| * config/microblaze/microblaze.c (microblaze_attribute_table): Same. |
| * config/mips/mips.c (mips_attribute_table): Same. |
| * config/msp430/msp430.c (msp430_attribute_table): Same. |
| * config/nds32/nds32.c (nds32_attribute_table): Same. |
| * config/nvptx/nvptx.c (nvptx_attribute_table): Same. |
| * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same. |
| * config/rl78/rl78.c (rl78__attribute_table): Same. |
| * config/rs6000/rs6000.c (rs6000_attribute_table): Same. |
| * onfig/rx/rx.c (rx_attribute_table): Same. |
| * config/s390/s390.c (s390_handle_vectorbool_attribute): Same. |
| * config/sh/sh.c (sh_attribute_table): Same. |
| * config/sparc/sparc.c (sparc_attribute_table): Same. |
| * config/spu/spu.c (spu_attribute_table): Same. |
| * config/stormy16/stormy16.c (xstormy16_attribute_table): Same. |
| * config/v850/v850.c (v850_attribute_table): Same. |
| * config/visium/visium.c (visium_attribute_table): Same. |
| |
| 2017-12-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/82641 |
| * config/arm/arm.c (INCLUDE_STRING): Define. |
| (arm_last_printed_arch_string, arm_last_printed_fpu_string): New. |
| (arm_declare_function_name): Conservatively emit .arch, .arch_extensions |
| and .fpu. |
| |
| 2017-12-07 Michael Matz <matz@suse.de> |
| |
| Add unroll and jam pass |
| |
| * gimple-loop-jam.c: New file. |
| * Makefile.in (OBJS): Add gimple-loop-jam.o. |
| * common.opt (funroll-and-jam): New option. |
| * opts.c (default_options_table): Add unroll-and-jam at -O3. |
| * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param. |
| (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto. |
| * passes.def: Add pass_loop_jam. |
| * timevar.def (TV_LOOP_JAM): Add. |
| * tree-pass.h (make_pass_loop_jam): Declare. |
| * cfgloop.c (flow_loop_tree_node_add): Add AT argument. |
| * cfgloop.h (flow_loop_tree_node_add): Adjust declaration. |
| * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call |
| to flow_loop_tree_node_add. |
| (duplicate_subloops, copy_loops_to): Append to sibling list. |
| * cfgloopmanip.h: (duplicate_loop): Adjust declaration. |
| * doc/invoke.texi (-funroll-and-jam): Document new option. |
| (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params. |
| |
| 2017-12-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83296 |
| PR tree-optimization/67769 |
| * tree-ssa-phiopt.c (conditional_replacement): Do not reset |
| flow sensitive info in an unrelated BB. |
| (value_replacement): Use reset_flow_sensitive_info. |
| (minmax_replacement): Reset flow sensitive info on the def |
| we move. Do not reset flow sensitive info in the whole BB |
| we move the stmt to. |
| (abs_replacement): Likewise. |
| |
| 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/43871 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Set |
| rs6000_cpu to the given -mcpu=, or to the default processor. |
| |
| 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete. |
| * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune |
| instead of rs6000_cpu_attr. |
| (rs6000_adjust_cost): Ditto. |
| (is_microcoded_insn): Ditto. |
| (rs6000_adjust_priority): Ditto. |
| (rs6000_issue_rate): Ditto. |
| (rs6000_use_sched_lookahead): Ditto. |
| (rs6000_use_sched_lookahead_guard): Ditto. |
| (rs6000_sched_reorder): Ditto. |
| (force_new_group): Ditto. |
| * config/rs6000/rs6000.md (cpu attribute): Ditto. |
| (group_ending_nop): Ditto. |
| |
| 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.opt (rs6000_tune): New variable. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set |
| rs6000_tune. Use rs6000_tune instead of rs6000_cpu where appropriate. |
| (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where |
| appropriate. |
| (rs6000_reassociation_width): Ditto. |
| (rs6000_emit_epilogue): Ditto. |
| (rs6000_adjust_cost): Ditto. |
| (is_microcoded_insn): Ditto. |
| (is_cracked_insn): Ditto. |
| (rs6000_adjust_priority): Ditto. |
| (rs6000_sched_reorder): Ditto. |
| (rs6000_sched_reorder2): Ditto. |
| (insn_must_be_first_in_group): Ditto. |
| (insn_must_be_last_in_group): Ditto. |
| (rs6000_register_move_cost): Ditto. |
| * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of |
| rs6000_cpu. |
| |
| 2017-12-07 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-12-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o. |
| * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to |
| c-family/c-spellcheck.cc. |
| (best_macro_match::best_macro_match): Likewise. |
| * spellcheck-tree.h |
| (struct edit_distance_traits<cpp_hashnode *>): Move to |
| c-family/c-spellcheck.h. |
| (class best_macro_match): Likewise. |
| |
| 2017-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83293 |
| * gimple-ssa-strength-reduction.c (insert_initializers): Use |
| GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that |
| might insert into empty bb. |
| |
| PR sanitizer/81281 |
| * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate |
| simplify for plus with :c added, and pointer_plus without that. |
| ((T)P - (T)(P + A) -> -(T) A): Likewise. If type is integral |
| with undefined overflow and the conversion is not widening, |
| perform negation in utype and only convert to type afterwards. |
| ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate |
| simplify for plus with :c added, and pointer_plus without that. |
| If type is integral with undefined overflow and the conversion is |
| not widening, perform minus in utype and only convert to type |
| afterwards. Move the last pointer_diff_expr simplify into the |
| two outermost ifs. |
| |
| 2017-12-06 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/82646 |
| * builtins.c (maybe_emit_chk_warning): Use size as the bound for |
| strncpy, not maxlen. |
| |
| 2017-12-06 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (-Wstringop-truncation): Mention attribute |
| nonstring. |
| |
| PR tree-optimization/83075 |
| * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming |
| strncat/strncpy don't change length of source string. |
| |
| 2017-12-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| Revert |
| 2017-11-29 Martin Aberg <maberg@gaisler.com> |
| |
| * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length |
| to prevent b2bst errata sequence. |
| (sqrtdf2_fix): Likewise. |
| |
| 2017-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81945 |
| * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn. |
| * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved |
| to dest_cfun has orig_loop_num set, either remap it to the new |
| loop number if the loop got moved too, or clear it. |
| |
| 2017-12-05 Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap |
| to reservation. |
| (thunderx2t99_nothing): New insn reservation. |
| (thunderx2t99_mrs): New insn reservation. |
| (thunderx2t99_multiple): New insn reservation. |
| (thunderx2t99_alu_basi): Add bfx to reservation. |
| (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation. |
| |
| 2017-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/82248 |
| * config/arm/arm.md (probe_stack) : Use the 'o' constraint. |
| |
| 2017-12-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from |
| tree-ssa-pre.c::remove_dead_inserted_code. |
| * tree-ssa-dce.h: New file. |
| * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file. |
| (remove_dead_inserted_code): Move and rename to function |
| tree-ssa-dce.c::simple_dce_from_worklist. |
| (pass_pre::execute): Update use. |
| |
| 2017-12-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83277 |
| * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure |
| to code-gen liveout vars. |
| |
| 2017-12-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal) |
| (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P. |
| (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to |
| split condition. |
| |
| 2017-12-05 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New |
| function. |
| (TARGET_ASAN_SHADOW_OFFSET): New macro definition. |
| * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if |
| ASAN is enabled. |
| |
| 2017-12-05 Richard Biener <rguenther@suse.de> |
| |
| * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add. |
| * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP. |
| (pass_data_cse_sincos): Use TV_TREE_SINCOS. |
| (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL. |
| |
| 2017-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * dbxout.c (dbxout_block): Grow buf to 30 bytes. |
| |
| 2017-12-05 Martin Liska <mliska@suse.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi: Document the options. |
| * flag-types.h (enum sanitize_code): Add |
| SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. |
| * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling |
| of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. |
| * opts.c: Define new sanitizer options. |
| * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise. |
| (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise. |
| |
| 2017-12-05 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET, |
| OPTION_MASK_ISA_AVX512VNNI_UNSET): New. |
| (ix86_handle_option): Handle -mavx512vnni. |
| * config/i386/cpuid.h (bit_AVX512VNNI): New bit. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. |
| * config/i386/i386-c (__AVX512VNNI__): New. |
| * config/i386/i386.c (ix86_target_string): Handle new option. |
| (ix86_valid_target_attribute_inner_p): Handle new option. |
| * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New. |
| * config/i386/i386.opt (mavx512vnni): New option. |
| |
| 2017-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/81616 |
| * athlon.md: Disable for generic. |
| * haswell.md: Enable for generic. |
| * i386.c (ix86_sched_init_global): Add core hooks for generic. |
| * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic |
| to 4. |
| (ix86_adjust_cost): Move generic to haswell path. |
| |
| 2017-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref |
| instead of MEM_P in a couple more places. Fix formatting issues. |
| |
| 2017-12-04 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST |
| instead of GP_REG_LAST-1. |
| (riscv_adjust_libcall_cfi_prologue): Likewise. |
| (riscv_adjust_libcall_cri_epilogue): Likewise. |
| * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in |
| comment. |
| |
| 2017-12-04 Luis Machado <luis.machado@linaro.org> |
| |
| * ipa-pure-const.c (check_decl): Add missing newline. |
| (state_from_flags): Likewise. |
| |
| 2017-12-04 Jeff Law <law@redhat.com> |
| |
| PR tree-optimizatin/78496 |
| * gimple-ssa-evrp-analyze.h |
| (evrp_range_analyzer::get_vr_values): Simplify. |
| * gimple-ssa-evrp-analyze.c: Corresponding changes. |
| * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h |
| and gimple-ssa-evrp-analyze.h. |
| (dom_opt_dom_walker class): Add evrp_range_analyzer member. |
| (simplify_stmt_for_jump_threading): Copy a blob of code from |
| tree-vrp.c to use ranges to simplify statements. |
| (dom_opt_dom_walker::before_dom_children): Call |
| evrp_range_analyzer::{enter,record_ranges_from_stmt} methods. |
| (dom_opt_dom_walker::after_dom_children): Similarly for |
| evrp_range_analyzer::leave. |
| (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize |
| conditionals. |
| |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::extract_range_from_stmt): Always use |
| vr_values::update_value_range so preexisting range info is |
| medged with new range info, even if the new range is VR_VARYING. |
| |
| 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c: Adjust comment. |
| (use_crosses_set_p): Delete. |
| (can_combine_p): Use modified_between_p instead of use_crosses_set_p. |
| (try_combine): Ditto. |
| |
| 2017-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83255 |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): |
| Re-add zero-iteration check. |
| |
| 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83245 |
| * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand |
| hard registers as earlyclobber, also if not in an asm. |
| |
| 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR bootstrap/83265 |
| Revert |
| 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/43871 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Set |
| rs6000_cpu based on cpu_index, not tune_index. |
| |
| 2017-12-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83238 |
| * graphite-scop-detection.c (scop_detection::merge_sese): Make |
| code match comment, rejecting invalid SESE regions. |
| |
| 2017-12-03 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing, |
| require base operand is a REG_POINTER prior to reload on targets |
| with non-equivalent space registers. |
| |
| 2017-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping. |
| (update_specialized_profile): Fix updating of counts. |
| (perhaps_add_new_callers): Likewise. |
| |
| 2017-12-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/81616 |
| * x86-tune.def: Remove obsolette FIXMEs. |
| (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic |
| (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64, |
| X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH): |
| Enable for generic. |
| (X86_TUNE_PAD_RETURNS): Disable for generic. |
| |
| 2017-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83170 |
| PR tree-optimization/83241 |
| * gimple-ssa-store-merging.c |
| (imm_store_chain_info::try_coalesce_bswap): Update vuse field from |
| gimple_vuse (ins_stmt) in case it has changed. |
| (imm_store_chain_info::output_merged_store): Likewise. |
| |
| * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle |
| POINTER_DIFF_EXPR. |
| |
| PR c++/81212 |
| * tree-cfg.c (pass_warn_function_return::execute): Handle |
| __builtin_ubsan_handle_missing_return like __builtin_unreachable |
| with BUILTINS_LOCATION. |
| |
| PR target/78643 |
| PR target/80583 |
| * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield |
| is BLKmode for vector field with vector raw mode, use TYPE_MODE |
| instead of DECL_MODE. |
| |
| * config/i386/i386-protos.h (standard_sse_constant_opcode): Change |
| last argument to rtx pointer. |
| * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument |
| with OPERANDS. For AVX+ 128-bit VEX encoded instructions over 256-bit |
| or 512-bit. If setting EXT_REX_SSE_REG_P, use EVEX encoded insn |
| depending on the chosen ISAs. |
| * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx, |
| *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal, |
| *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode |
| callers. |
| * config/i386/sse.md (mov<mode>_internal): Likewise. |
| * config/i386/mmx.md (*mov<mode>_internal): Likewise. |
| |
| 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/invoke.texi (-dp): Say that instruction cost is printed as well. |
| |
| 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two |
| parameters from prototype. |
| * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two |
| parameters. Don't print a comment. |
| (emit_fusion_gpr_load): Adjust. |
| (emit_fusion_load_store): Adjust. |
| * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust. |
| * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion" |
| comment on the second line. |
| |
| 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/43871 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Set |
| rs6000_cpu based on cpu_index, not tune_index. |
| |
| 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * final.c (output_asm_name): Print insn_cost. Shorten output. Print |
| which_alternative instead of which_alternative + 1. |
| (output_asm_insn): Print an extra tab if the template is short. |
| |
| 2017-12-01 Jim Wilson <jimw@sifive.com> |
| |
| * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from |
| comment. |
| * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef. |
| * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG |
| reference. |
| * doc/tm.texi: Regenerate. |
| |
| 2017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/81959 |
| * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for |
| whether we can allocate pseudos before trying to fix an address. |
| * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the |
| memory address is indexed or indirect. |
| (floatuns_<mode>si2_hw2): Likewise. |
| |
| 2017-12-01 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in (TAGS): Add c-family/*.cc. |
| |
| 2017-12-01 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (call_insn): Use %c rather than %a. |
| (call_value_insn): Likewise. |
| (sibcall_insn): Likewise. |
| (sibcall_value_insn): Likewise. |
| (movsi_aarch64): Likewise. |
| (movdi_aarch64): Likewise. |
| (add_losym_): Likewise. |
| (ldr_got_small_): Likewise. |
| (ldr_got_small_sidi): Likewise. |
| (ldr_got_small_28k_): Likewise. |
| (ldr_got_small_28k_sidi): Likewise. |
| * config/aarch64/aarch64.c (aarch64_print_address_internal): |
| Move output_addr_const to symbolic case. Add error check. |
| |
| 2017-12-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md (plus16_Q_operand): New predicate. |
| * config/s390/s390.md: Disable MVC merging peephole if it would |
| disable operand forwarding. |
| (new peephole2): Split MVCs if it would turn them into up to 2 |
| forwardable MVCs. |
| |
| 2017-12-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83232 |
| * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix |
| detection of same access. Instead of breaking the group here |
| do not consider the duplicate. Add comment explaining real fix. |
| |
| 2017-12-01 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo. |
| |
| 2017-12-01 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute. |
| |
| 2017-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * function.h (struct function): Remove cilk_frame_decl, |
| is_cilk_function and calls_cilk_spawn fields. |
| * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk |
| field. |
| * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear |
| cilk_elemental field. |
| * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field. |
| * target.def: Adjust comment. |
| * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): |
| Don't test cilk_elemental. |
| |
| PR tree-optimization/83233 |
| * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use |
| bswap_stat name for the struct. |
| |
| PR c/79153 |
| * tree.h (SWITCH_BREAK_LABEL_P): Define. |
| * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND |
| starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with |
| SWITCH_BREAK_LABEL_P set on the label. |
| (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label |
| added for default case if it was missing and not all cases covered. |
| Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if |
| switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P |
| set on the label. |
| * tree-chrec.c (evolution_function_is_univariate_p): Add return true; |
| to avoid -Wimplicit-fallthrough warning. |
| * config/i386/i386.c (ix86_expand_special_args_builtin): Add |
| FALLTHRU comment to avoid -Wimplicit-fallthrough warning. |
| |
| PR tree-optimization/83221 |
| * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank |
| down by 16. |
| (init_reassoc): Formatting fix. |
| |
| PR sanitizer/81275 |
| * tree-cfg.c (group_case_labels_stmt): Don't optimize away |
| C++ FE implicitly added __builtin_unreachable () until -Wreturn-type |
| is diagnosed. |
| |
| PR sanitizer/83219 |
| * tree-cfg.c: Include asan.h. |
| (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable. |
| |
| 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction. |
| |
| 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for |
| vpcmpeqd instruction. |
| |
| 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.c (standard_sse_constant_opcode): Fix |
| registers type for 128bit mode. |
| |
| 2017-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * spellcheck-tree.c (test_find_closest_identifier): Use ; instead |
| of ;;. |
| * gengtype-state.c (read_state_pair): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise. |
| * sel-sched-dump.c (dump_insn_rtx_1): Likewise. |
| * ipa-cp.c (intersect_aggregates_with_edge): Likewise. |
| * ifcvt.c (noce_try_store_flag_constants): Likewise. |
| * tree-ssa-ccp.c (ccp_finalize): Likewise. |
| * omp-grid.c (grid_process_kernel_body_copy): Likewise. |
| * builtins.c (fold_builtin_3): Likewise. |
| * graphite-scop-detection.c |
| (scop_detection::stmt_has_simple_data_refs_p): Likewise. |
| * hsa-gen.c (hsa_function_representation::hsa_function_representation): |
| Likewise. |
| |
| 2017-12-01 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR sanitizer/81697 |
| * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p |
| parameter. Return true if ignore_decl_rtl_set_p is true and other |
| conditions are satisfied. |
| * asan.h (asan_protect_global): Add new parameter. |
| * varasm.c (categorize_decl_for_section): Pass true as second parameter |
| to asan_protect_global calls. |
| |
| 2017-11-30 Jim Wilson <jimw@sifive.com> |
| |
| * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and |
| -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and |
| -mstrict-align, add info on default value. Delete redundant lines for |
| -mabi. Add missing -mexplicit-relocs docs. |
| |
| 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (trap): New pattern. |
| |
| 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL |
| instruction to end into a delay slot. |
| * config/arc/arc.md (cond_delay_insn): Check if the instruction |
| can be placed into a delay slot against reg_note. |
| |
| 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start |
| labels number of usages. |
| |
| 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New |
| function. |
| (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. |
| |
| 2017-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/83210 |
| * internal-fn.c (expand_mul_overflow): Optimize unsigned |
| multiplication by power of 2 constant into two shifts + comparison. |
| |
| 2017-11-30 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/81616 |
| * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs. |
| |
| 2017-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83202 |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add |
| allow_peel argument and guard peeling. |
| (canonicalize_loop_induction_variables): Likewise. |
| (canonicalize_induction_variables): Pass false. |
| (tree_unroll_loops_completely_1): Pass unroll_outer to disallow |
| peeling from cunrolli. |
| |
| 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Print a message to dump file whenever |
| I0, I1, or I2 cannot be combined into I3. |
| |
| 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/83156 |
| PR rtl-optimization/82621 |
| * combine.c (try_combine): Don't split an I2 if one of the dests is |
| set again before I3. Allow unused dests. |
| |
| 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New. |
| |
| 2017-11-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/80818 |
| * lra.c (collect_non_operand_hard_regs): New arg insn. Pass it |
| recursively. Use insn code for clobber. |
| (lra_set_insn_recog_data): Pass the new arg to |
| collect_non_operand_hard_regs. |
| (add_regs_to_insn_regno_info): Pass insn instead of uid. Use insn |
| code for clobber. |
| (lra_update_insn_regno_info): Pass insn to |
| add_regs_to_insn_regno_info. |
| |
| 2017-11-29 Jim Wilson <jimw@sifive.com> |
| Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv.c (SINGLE_SHIFT_COST): New. |
| (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return |
| SINGLE_SHIFT_COST. Case LT and ZERO_EXTEND, likewise. Case ASHIFT, |
| use SINGLE_SHIFT_COST. |
| * config/riscv/riscv.md (lshrsi3_zero_extend_1): New. |
| (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New. |
| |
| 2017-11-29 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16, |
| _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32, |
| _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64, |
| _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics. |
| * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16, |
| _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32, |
| _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64, |
| _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16, |
| _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32, |
| _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64, |
| _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi, |
| __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz, |
| __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, |
| __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, |
| __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, |
| __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask, |
| __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si, |
| __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz, |
| __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask, |
| __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di, |
| __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz, |
| __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, |
| __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, |
| __builtin_ia32_vpshldv_v2di_mask, |
| __builtin_ia32_vpshldv_v2di_maskz): New builtins. |
| * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask, |
| vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns. |
| |
| 2017-11-29 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16, |
| _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32, |
| _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, |
| _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics. |
| * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16, |
| _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32, |
| _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64, |
| _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16, |
| _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32, |
| _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64, |
| _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto. |
| * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI, |
| V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, |
| V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, |
| V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI, |
| V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, |
| V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, |
| V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types. |
| * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. |
| * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask, |
| vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern. |
| |
| 2017-11-29 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the |
| movsi_pic_gotdata_op instruction as a load for the UT699 errata |
| workaround. |
| |
| 2017-11-29 Martin Aberg <maberg@gaisler.com> |
| |
| * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length |
| to prevent b2bst errata sequence. |
| (sqrtdf2_fix): Likewise. |
| |
| 2017-11-29 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (fpop_reg_depend_p): New function. |
| (div_sqrt_insn_p): New function. |
| (sparc_do_work_around_errata): Insert NOP instructions to |
| prevent sequences that could trigger the TN-0013 errata for |
| certain LEON3 processors. |
| (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt. |
| (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately. |
| * config/sparc/sparc.md (fix_lost_divsqrt): New attribute. |
| (in_branch_delay): Prevent div and sqrt in delay slot if |
| fix_lost_divsqrt. |
| * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable. |
| |
| 2017-11-29 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (atomic_insn_p): New function. |
| (sparc_do_work_around_errata): Insert NOP instructions to |
| prevent sequences that could trigger the TN-0010 errata for |
| UT700. |
| * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make |
| instruction referable in atomic_insns_p. |
| |
| 2017-11-29 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc. |
| (atomic_compare_and_swap_leon3_1): Likewise. |
| (ldstub): Likewise. |
| |
| 2017-11-29 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (fpop_insn_p): New function. |
| (sparc_do_work_around_errata): Insert NOP instructions to |
| prevent sequences that could trigger the TN-0012 errata for |
| GR712RC. |
| (pass_work_around_errata::gate): Also test sparc_fix_gr712rc. |
| * config/sparc/sparc.md (fix_gr712rc): New attribute. |
| (in_branch_annul_delay): Prevent floating-point instructions |
| in delay slot of annulled integer branch. |
| |
| 2017-11-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83202 |
| * tree-vect-slp.c (scalar_stmts_set_t): New typedef. |
| (bst_fail): Use it. |
| (vect_analyze_slp_cost_1): Add visited set, do not account SLP |
| nodes vectorized to the same stmts multiple times. |
| (vect_analyze_slp_cost): Allocate a visited set and pass it down. |
| (vect_analyze_slp_instance): Adjust. |
| (scalar_stmts_to_slp_tree_map_t): New typedef. |
| (vect_schedule_slp_instance): Add a map recording the SLP node |
| representing the vectorized stmts for a set of scalar stmts. |
| Avoid code-generating redundancies. |
| (vect_schedule_slp): Allocate map and pass it down. |
| |
| 2017-11-29 Nathan Sidwell <nathan@acm.org> |
| |
| PR c++/83187 |
| * tree.c (build_complex_type): Fix canonicalization. Only fill in |
| type if it is new. |
| |
| 2017-11-29 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_print_operand): Add new |
| cases for printing LDP/STP memory addresses. |
| (aarch64_print_address_internal): Renamed from |
| aarch64_print_operand_address, added parameter, add Pmode check. |
| (aarch64_print_ldpstp_address): New function for LDP/STP addresses. |
| (aarch64_print_operand_address): Indirect to |
| aarch64_print_address_internal. |
| * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new |
| 'y' operand output specifier. |
| |
| 2017-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/83185 |
| * tree.c (build_simple_mem_ref_loc): Handle |
| get_addr_base_and_unit_offset returning a MEM_REF. |
| |
| PR middle-end/80929 |
| * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost. |
| |
| PR target/80819 |
| * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm) |
| alternative. |
| |
| 2017-11-28 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle |
| m_x_offset. |
| (layout::move_to_column): Likewise. |
| |
| 2017-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81275 |
| * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P |
| is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()). |
| |
| 2017-11-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/82808 |
| * tree.h (expr_type_first_operand_type_p): Declare |
| * tree.c (expr_type_first_operand_type_p): New function. |
| * ipa-prop.h (ipa_get_type): Allow i to be out of bounds. |
| (ipa_value_from_jfunc): Adjust declaration. |
| * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE. |
| Use it as result type for arithmetics, unless it is NULL in which case |
| be more conservative. |
| (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to |
| ipa_get_jf_pass_through_result. |
| (propagate_vals_across_pass_through): Likewise. |
| (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass |
| is to propagate_vals_across_pass_through. |
| (propagate_constants_across_call): Pass PARM_TYPE to |
| propagate_scalar_across_jump_function. |
| (find_more_scalar_values_for_callers_subset): Pass parameter type to |
| ipa_value_from_jfunc. |
| (cgraph_edge_brings_all_scalars_for_node): Likewise. |
| * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info |
| to caller_parms_info, pass parameter type to ipa_value_from_jfunc. |
| * ipa-prop.c (try_make_edge_direct_simple_call): New parameter |
| target_type, pass it to ipa_value_from_jfunc. |
| (update_indirect_edges_after_inlining): Pass parameter type to |
| try_make_edge_direct_simple_call. |
| |
| 2017-11-28 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to |
| refine ranges if scev_initialized_p returns true. |
| * vr-values.c (vr_values::extract_range_from_phi_node): Likewise. |
| |
| 2017-11-28 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, |
| _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, |
| _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64, |
| _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics. |
| * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16, |
| _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16, |
| _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32, |
| _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64, |
| _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16, |
| _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32, |
| _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi, |
| __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi, |
| __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi, |
| __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si, |
| __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si, |
| __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si, |
| __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di, |
| __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di, |
| __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di, |
| __builtin_ia32_vpshrd_v2di_mask): New builtins. |
| * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern. |
| |
| 2017-11-28 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16, |
| _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32, |
| _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, |
| _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics. |
| * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16, |
| _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, |
| _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32, |
| _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64, |
| _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16, |
| _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32, |
| _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto. |
| * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT, |
| V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT, |
| V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT, |
| V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT, |
| V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT, |
| V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT, |
| V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT, |
| V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT, |
| V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi, |
| __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi, |
| __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi, |
| __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si, |
| __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si, |
| __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si, |
| __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di, |
| __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di, |
| __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di, |
| __builtin_ia32_vpshld_v2di_mask): New builtins. |
| * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. |
| * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern. |
| |
| 2017-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80776 |
| * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info): |
| Declare. |
| * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): |
| New function. |
| (evrp_range_analyzer::record_ranges_from_incoming_edges): |
| If the incoming edge is an effective fallthru because the other |
| edge only reaches a __builtin_unreachable () then record ranges |
| derived from the controlling condition in SSA info. |
| (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info. |
| (evrp_range_analyzer::record_ranges_from_stmt): Likewise. |
| |
| 2017-11-28 Olivier Hainque <hainque@adacore.com> |
| |
| * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null |
| on mingw build hosts. |
| |
| 2017-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/81307 |
| * dbxout.c (dbx_block_with_cold_children): Fix function comment. |
| |
| 2017-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/83141 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate |
| copies generated from memcpy use a character array as reference |
| type. |
| |
| 2017-11-28 Julia Koval <julia.koval@intel.com> |
| Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, |
| c-family/c-cilkplus.o, c-family/array-notation-common.o, |
| cilk-common.o, cilk.h, cilk-common.c): Remove. |
| * builtin-types.def |
| (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove. |
| * builtins.c (is_builtin_name): Remove cilkplus condition. |
| (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove. |
| * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN, |
| cilk-builtins.def, cilkplus.def): Remove. |
| * cif-code.def (CILK_SPAWN): Remove. |
| * cilk-builtins.def: Delete. |
| * cilk-common.c: Ditto. |
| * cilk.h: Ditto. |
| * cilkplus.def: Ditto. |
| * config/darwin.h (fcilkplus): Delete. |
| * cppbuiltin.c: Ditto. |
| * doc/extend.texi: Remove cilkplus doc. |
| * doc/generic.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| * doc/passes.texi: Ditto. |
| * gcc.c (fcilkplus): Remove. |
| * gengtype.c (cilk.h): Remove. |
| * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus |
| support. |
| * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): |
| Remove. |
| * gimplify.c (gimplify_return_expr, maybe_fold_stmt, |
| gimplify_call_expr, |
| is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses, |
| gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove |
| cilkplus conditions. |
| * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary, |
| inline_read_section): Ditto. |
| * ipa-inline-analysis.c (cilk.h): Remove. |
| * ira.c (ira_setup_eliminable_regset): Remove cilkplus support. |
| * lto-wrapper.c (merge_and_complain, append_compiler_options, |
| append_linker_options): Remove condition for fcilkplus. |
| * lto/lto-lang.c (cilk.h): Remove. |
| (lto_init): Remove condition for fcilkplus. |
| * omp-expand.c (expand_cilk_for_call): Delete. |
| (expand_omp_taskreg, expand_omp_for_static_chunk, |
| expand_omp_for): Remove cilkplus |
| conditions. |
| (expand_cilk_for): Delete. |
| * omp-general.c (omp_extract_for_data): Remove cilkplus support. |
| * omp-low.c (scan_sharing_clauses, create_omp_child_function, |
| execute_lower_omp, diagnose_sb_0): Ditto. |
| * omp-simd-clone.c (simd_clone_clauses_extract): Ditto. |
| * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. |
| * tree-nested.c: Ditto. |
| * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support. |
| (dump_generic_node): Ditto. |
| * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. |
| * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt): |
| Delete. |
| * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete. |
| |
| 2017-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT. |
| * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit |
| for vector mode and !TARGET_SIMD. |
| |
| 2017-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. |
| Adjust comment. |
| * tree.h (SWITCH_LABELS): Remove. |
| * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS, |
| assert SWITCH_BODY is non-NULL. |
| * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS |
| handling. |
| * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR. |
| |
| PR tree-optimization/80788 |
| * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res |
| has TREE_OVERFLOW set, call drop_tree_overflow. |
| |
| 2017-11-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83158 |
| * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases. |
| |
| 2017-11-28 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR 81288/target |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle |
| TARGET_ISEL && !TARGET_MFCRF differently. Simplify code. |
| |
| 2017-11-27 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change |
| LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible. |
| |
| 2017-11-27 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR middle_end/82333 |
| * varasm.c (compare_constant): Take the mode of the constants into |
| account when comparing floating point constants. |
| |
| 2017-11-27 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier |
| from explicit instantiation of debug_helper. |
| * vec.h (DEFINE_DEBUG_VEC): Ditto. |
| |
| 2017-11-27 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, |
| refactor a bit. |
| |
| 2017-11-27 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (wide_int_to_tree): Free discarded INTEGER_CST. |
| (type_hash_canon): Also clear int_cst_hash_table entry for |
| TYPE_MIN/MAX_VALUE. |
| (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs. |
| |
| 2017-11-27 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). |
| * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A). |
| * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A). |
| |
| 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * hash-map.h (gt_cleare_cache): Avoid UB. |
| |
| 2017-11-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. |
| * loop-unroll.c (decide_unroll_constant_iterations): Implement it. |
| (decide_unroll_runtime_iterations): Likewise. |
| (decide_unroll_stupid): Likewise. |
| |
| 2017-11-27 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| PR target/83109 |
| * config/i386/i386.md: Add a loop with incssp. |
| |
| 2017-11-27 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/81248 |
| * tree-sra.c (splice_param_accesses): Remove size check. |
| (decide_one_param_reduction): Fix size check. |
| * gimple-pretty-print.c (dump_profile): Silence warning. |
| * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description. |
| |
| 2017-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| 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. |
| |
| PR target/83100 |
| * varasm.c (bss_initializer_p): Return true for DECL_COMMON |
| TREE_READONLY decls. |
| |
| 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR rtl-optimization/82488 |
| * expr.c (fixup_args_size_notes): Avoid signed integer overflow. |
| |
| 2017-11-26 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-11-26 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): |
| Detect skylake-avx512. |
| |
| 2017-11-26 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 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. |
| |
| 2017-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| 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. |
| |
| PR target/82848 |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold |
| builtins not enabled in the currently selected ISA. |
| |
| 2017-11-24 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| 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. |
| |
| 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. |
| |
| 2017-11-24 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (0-ptr): New transformation. |
| |
| 2017-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/83015 |
| * ipa-inline.c (inline_small_functions): Set current badnes correctly |
| when skipping checking. |
| |
| 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. |
| |
| 2017-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| 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. |
| |
| * 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. |
| |
| 2017-11-24 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/arm/arm_neon.h: Fix pragma GCC push_options before |
| vdot_u32. |
| |
| 2017-11-23 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-11-23 Julia Koval <julia.koval@intel.com> |
| |
| * 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. |
| |
| 2017-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * 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. |
| |
| 2017-11-23 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (ptr-0): New transformation. |
| |
| 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. |
| |
| 2017-11-23 Charles Baylis <charles.baylis@linaro.org> |
| |
| * config/arm/arm.c (arm_mem_costs): New function. |
| (arm_rtx_costs_internal): Use arm_mem_costs. |
| |
| 2017-11-23 Mark Wielaard <mark@klomp.org> |
| |
| * dwarf2out.c (init_sections_and_labels): Use generation to create |
| unique ranges_section_label and ranges_base_label. Return generation. |
| (output_rnglists): Add generation argument. Use generation to create |
| unique ranges labels. |
| (dwarf2out_finish): Get generation from init_sections_and_labels |
| and pass generation to output_rnglists. |
| |
| 2017-11-23 Mike Stump <mikestump@comcast.net> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand. |
| * cfgloop.h (struct loop): Add unroll field. |
| * function.h (struct function): Add has_unroll bitfield. |
| * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind. |
| (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand. |
| * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll. |
| (pass_rtl_unroll_loops::gate): Likewise. |
| * loop-unroll.c (decide_unrolling): Tweak note message. Skip loops |
| for which loop->unroll==1. |
| (decide_unroll_constant_iterations): Use note for consistency and |
| take loop->unroll into account. Return early if loop->unroll is set. |
| Fix thinko in existing test. |
| (decide_unroll_runtime_iterations): Use note for consistency and |
| take loop->unroll into account. |
| (decide_unroll_stupid): Likewise. |
| * lto-streamer-in.c (input_cfg): Read loop->unroll. |
| * lto-streamer-out.c (output_cfg): Write loop->unroll. |
| * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>: |
| New case. |
| (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise. |
| (print_loop): Print loop->unroll if set. |
| * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind. |
| * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll. |
| * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>: |
| New case. |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if |
| loop->unroll is set and smaller than the trip count. Otherwise bypass |
| entirely the heuristics if loop->unroll is set. Remove dead note. |
| Fix off-by-one bug in other note. |
| (try_peel_loop): Bail out if loop->unroll is set. Fix formatting. |
| (tree_unroll_loops_completely_1): Force unrolling if loop->unroll |
| is greater than 1. |
| (tree_unroll_loops_completely): Make static. |
| (pass_complete_unroll::execute): Use correct type for variable. |
| (pass_complete_unrolli::execute): Fix formatting. |
| * tree.def (ANNOTATE_EXPR): Add 3rd operand. |
| |
| 2017-11-23 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.h (TARGET_PREFER_AVX256): Also |
| enable when TARGET_PREFER_AVX128 is set. |
| |
| 2017-11-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of |
| frequency. |
| * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies. |
| (cgraph_edge::maybe_hot_p): Use sreal frequencies. |
| |
| 2017-11-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (record_modified_bb_info): Use sreal |
| frequencies. Fix estimation of aggregate parameters. |
| |
| 2017-11-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile |
| when inlining. |
| |
| 2017-11-23 Tom de Vries <tom@codesourcery.com> |
| |
| * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)". |
| |
| 2017-11-23 Tom de Vries <tom@codesourcery.com> |
| |
| * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after |
| macro. |
| |
| 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org> |
| |
| PR target/83111 |
| * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel, |
| sibcall_value_pcrel_fdpic): Use local variable instead of |
| operands[3]. |
| (calli_tbr_rel): Add missing operand 2. |
| (call_valuei_tbr_rel): Add missing operand 3. |
| |
| 2017-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/82253 |
| * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and |
| bitpos/bitsize covering the whole destination, use store_expr only if |
| the complex mode is the same. Otherwise, use expand_normal and if |
| it returns CONCAT, subreg each part separately instead of trying to |
| subreg the whole result. |
| |
| 2017-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/23094 |
| * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we |
| come here from walking over backedges in the first iteration. |
| (vn_reference_lookup_3): Skip clobbers that store the same value. |
| |
| 2017-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81403 |
| * tree-ssa-pre.c (get_representative_for): Add parameter specifying |
| a block we need a leader relative to. |
| (phi_translate_1): For nary processing require a leader from |
| get_representative_for given we run expression simplification |
| using match-and-simplify. Remove previous fix. |
| |
| 2017-11-22 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): |
| Use new method allocate_value_range rather than accessing the |
| vrp_value_range_pool data member directly. |
| * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly |
| to use extract_range_from_stmt method to avoid need for |
| extract_range_from_assignment method. |
| (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete |
| method rather than setting values_propgated data member directly. |
| * vr-values.h (class vr_values): Privatize vrp_value_range_pool, |
| and values propagated data members and extract_range_from_assignment |
| method. Reorder private data members to conform to standards. |
| Add new methods set_lattice_propagation_complete and |
| allocate_value_range. |
| |
| 2017-11-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/83030 |
| * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry |
| for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs. |
| (Insns): Delete entry for REG_CROSSING_JUMP in register notes. |
| * bb-reorder.c (update_crossing_jump_flags): Do not test whether the |
| CROSSING_JUMP_P flag is already set before setting it. |
| * cfgrtl.c (fixup_partition_crossing): Likewise. |
| * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P |
| insn as useless. |
| |
| 2017-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>: |
| Handle the case where both arguments are using gen_const_vec_series. |
| |
| 2017-11-22 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/62170 |
| * pretty-print.c (pp_format): Move quoting implementation to |
| pp_begin_quote and pp_end_quote. Update pp_format_decoder call |
| to pass address of "quote" local. |
| (pp_begin_quote): New function. |
| (pp_end_quote): New function. |
| * pretty-print.h (printer_fn): Convert penultimate param from bool |
| to bool *. |
| (pp_begin_quote): New decl. |
| (pp_end_quote): New decl. |
| * tree-diagnostic.c (default_tree_printer): Convert penultimate |
| param from bool to bool *. |
| * tree-diagnostic.h (default_tree_printer): Likewise. |
| |
| 2017-11-22 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) |
| Initialize vr_values. |
| (evrp_range_analyzer::try_find_new_range): Call methods attached to |
| vr_values via vr_values class instance rather than delegators. |
| (evrp_range_analyzer::record_ranges_from_phis): Likewise. |
| (evrp_range_analyzer::record_ranges_from_stmt): Likewise. |
| (evrp_range_analyzer::push_value_range): Likewise. |
| (evrp_range_analyzer::pop_value_range): Likewise. |
| * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove |
| most delegators. Those remaining are exposed as public interfaces. |
| Make vr_values a pointer and private. |
| (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached |
| vr_values. |
| (evrp_range_analyzer::get_vr_value): New method. |
| * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN. |
| (evrp_folder::evrp_folder): New ctor to initialize vr_values. |
| (class evrp_dom_walker): Attach evrp_folder class, initialize |
| it in the ctor. Remove temporary delegators. |
| (evrp_dom_walker::before_dom_children): Call methods in attached |
| evrp_range_analyzer class via class instance pointer. Use |
| free value_range_constant_singleton to remove need for |
| op_with_constant_singleton_value delegator method. Do not |
| create a vrp_prop class instance for every call! Narrow |
| scope of a couple variables. |
| (evrp_dom_walker::cleanup): Call methods in attached |
| evrp_range_analyzer class via class instance pointer. |
| * vr-values.h (class vr_values): Privatize many methods and |
| data members. |
| |
| 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete. |
| * cfgexpand.c (expand_debug_expr): Remove handling for them. |
| * expr.c (expand_expr_real_2): Likewise. |
| * fold-const.c (const_unop): Likewise. |
| * optabs-tree.c (optab_for_tree_code): Likewise. |
| * tree-cfg.c (verify_gimple_assign_unary): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| (op_code_prio): Likewise. |
| (op_symbol_code): Likewise. |
| * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define. |
| (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions. |
| * internal-fn.c (direct_internal_fn_optab): New function. |
| (direct_internal_fn_array, direct_internal_fn_supported_p |
| (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN. |
| * fold-const-call.c (fold_const_reduction): New function. |
| (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and |
| CFN_REDUC_MIN. |
| * tree-vect-loop.c: Include internal-fn.h. |
| (reduction_code_for_scalar_code): Rename to... |
| (reduction_fn_for_scalar_code): ...this and return an internal |
| function. |
| (vect_model_reduction_cost): Take an internal_fn rather than |
| a tree_code. |
| (vect_create_epilog_for_reduction): Likewise. Build calls rather |
| than assignments. |
| (vectorizable_reduction): Use internal functions rather than tree |
| codes for the reduction operation. Update calls to the functions |
| above. |
| * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): |
| Use calls to internal functions rather than REDUC tree codes. |
| * config/aarch64/aarch64-simd.md: Update comment accordingly. |
| |
| 2017-11-22 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.c (vxworks_override_options): Pick default |
| dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT. |
| * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and |
| DWARF_GNAT_ENCODINGS_DEFAULT. |
| * config/vxworksae.h: Likewise. |
| |
| 2017-11-22 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/83104 |
| * vr-values.c (simplify_stmt_using_ranges): Check integral argument, |
| not result. |
| |
| 2017-11-22 Marek Polacek <polacek@redhat.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| Jason Merrill <jason@redhat.com> |
| |
| PR c++/60336 |
| PR middle-end/67239 |
| PR target/68355 |
| * calls.c (initialize_argument_information): Call |
| warn_parameter_passing_abi target hook. |
| (store_one_arg): Use 0 for empty record size. Don't push 0 size |
| argument onto stack. |
| (must_pass_in_stack_var_size_or_pad): Return false for empty types. |
| * common.opt: Update -fabi-version description. |
| * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty. |
| (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of |
| int_size_in_bytes. |
| (ix86_is_empty_record): New function. |
| (ix86_warn_parameter_passing_abi): New function. |
| (TARGET_EMPTY_RECORD_P): Redefine. |
| (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine. |
| * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in (TARGET_EMPTY_RECORD_P, |
| TARGET_WARN_PARAMETER_PASSING_ABI): Add. |
| * dwarf2out.c (get_ultimate_context): Move to tree.c. |
| * explow.c (hard_function_value): Call arg_int_size_in_bytes |
| instead of int_size_in_bytes. |
| * expr.c (copy_blkmode_to_reg): Likewise. |
| * function.c (aggregate_value_p): Return 0 for empty types. |
| (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi |
| target hook. |
| (locate_and_pad_parm): Call arg size_in_bytes instead |
| size_in_bytes. |
| * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P. |
| * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P. |
| * target.def (empty_record_p, warn_parameter_passing_abi): New target |
| hooks. |
| * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook. |
| (std_gimplify_va_arg_expr): Skip empty records. Call |
| arg_size_in_bytes instead size_in_bytes. |
| * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare. |
| * tree-core.h (tree_type_common): Add empty_flag. |
| (tree_decl_common): Update comments. |
| * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream |
| DECL_PADDING_P. |
| (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. |
| * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream |
| DECL_PADDING_P. |
| (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. |
| * tree.c (default_is_empty_type): New function. |
| (default_is_empty_record): New function. |
| (arg_int_size_in_bytes): New function. |
| (arg_size_in_bytes): New function. |
| (get_ultimate_context): New function. |
| * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and |
| TRANSLATION_UNIT_WARN_EMPTY_P. |
| (default_is_empty_record, arg_int_size_in_bytes, |
| arg_size_in_bytes, get_ultimate_context): Declare. |
| |
| 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (cmse_clear_registers): New function. |
| (cmse_nonsecure_call_clear_caller_saved): Replace register clearing |
| code by call to cmse_clear_registers. |
| (cmse_nonsecure_entry_clear_before_return): Likewise. |
| |
| 2017-11-22 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h (vdot_u32, vdotq_u32) |
| (vdot_s32, vdotq_s32): New. |
| (vdot_lane_u32, vdotq_lane_u32): New. |
| (vdot_lane_s32, vdotq_lane_s32): New. |
| |
| |
| 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR middle-end/82547 |
| * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection |
| for unsigned values with fewer HWIs than the precision. |
| (test_overflow): New function. |
| (wide_int_cc_tests): Call it. |
| |
| 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode |
| has the same mode class as Pmode. |
| |
| 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of |
| padding_bits_to_clear_ptr. |
| (cmse_nonsecure_entry_clear_before_return): Likewise. |
| |
| 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use |
| auto_sbitap instead of integer bitfield to control register needing |
| clearing. |
| |
| 2017-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83044 |
| * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not |
| INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests |
| that need the upper bound. Subtract offset from |
| get_addr_base_and_unit_offset only if positive and subtract it |
| before division by eltsize rather than after it. |
| |
| PR debug/83084 |
| * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset |
| debug insns if they would contain UNSPEC_VOLATILE or volatile asm. |
| (dead_debug_insert_temp): Likewise, but also ignore even non-volatile |
| asm. |
| |
| PR middle-end/82875 |
| * optabs.c (expand_doubleword_mult, expand_binop): Before calling |
| expand_binop with *mul_widen_optab, make sure at least one of the |
| operands doesn't have VOIDmode. |
| |
| PR debug/83034 |
| * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES. |
| |
| PR rtl-optimization/82044 |
| PR tree-optimization/82042 |
| * dse.c (record_store): Check for overflow. |
| (check_mem_read_rtx): Properly check for overflow if width == -1, call |
| add_wild_read instead of clear_rhs_from_active_local_stores on |
| overflow and log it into dump_file. |
| |
| 2017-11-22 Richard Biener <rguenther@suse.de> |
| |
| * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore |
| fake edges to exit when looking for a place to insert. |
| * tree-ssa-pre.c (clear_expression_ids): Inline into callers |
| and remove. |
| (insert_into_preds_of_block): Commit edge insertion immediately, |
| assert that doesn't require new BBs. |
| (fini_pre): Release expressions. |
| (pass_pre::execute): Shuffle things around a bit, if the fn |
| is too large do not compute AVAIL either as this is really the |
| quadratic bit. |
| |
| 2017-11-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83089 |
| * tree-if-conv.c (pass_if_conversion::execute): If anything |
| changed reset SCEV and free the number of iteration estimates. |
| |
| 2017-11-21 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/82945 |
| * calls.h (warn_nonstring_bound): Remove unused function. |
| |
| 2017-11-21 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/82945 |
| * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg. |
| * calls.h (maybe_warn_nonstring_arg): Declare new function. |
| * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New |
| functions. |
| (initialize_argument_information): Call maybe_warn_nonstring_arg. |
| * calls.h (get_attr_nonstring_decl): Declare new function. |
| * doc/extend.texi (attribute nonstring): Update. |
| * gimple-fold.c (gimple_fold_builtin_strncpy): Call |
| get_attr_nonstring_decl and handle it. |
| * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. Improve |
| detection of nul-termination. |
| (strlen_to_stridx): Change to a pointer. |
| (handle_builtin_strlen, handle_builtin_stxncpy): Adjust. |
| (pass_strlen::execute): Same. |
| |
| 2017-11-21 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum |
| for the new option -mprefer-vector-width=[none|128|256|512]. |
| * config/i386/i386.c (ix86_target_string): remove old style options |
| -mprefer-avx256 and make -mprefer-avx128 as alias. |
| (ix86_option_override_internal): Apply defaults for the |
| -mprefer-vector-width=[128|256] option. |
| * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256): |
| Implement macros to work with -mprefer-vector-width=. |
| * config/i386/i386.opt: Implemented option |
| -mprefer-vector-width=[none|128|256|512]. |
| * doc/invoke.texi: Documentation for |
| -mprefer-vector-width=[none|128|256|512]. |
| |
| 2017-11-21 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/ppc-asm.h (f50, vs50): Fix values. |
| |
| 2017-11-21 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity. |
| |
| 2017-11-21 Marc Glisse <marc.glisse@inria.fr> |
| |
| * doc/generic.texi: Document POINTER_DIFF_EXPR, update |
| POINTER_PLUS_EXPR. |
| * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR. |
| * expr.c (expand_expr_real_2): Likewise. |
| * fold-const.c (const_binop, fold_addr_of_array_ref_difference, |
| fold_binary_loc): Likewise. |
| * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N), |
| P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y), |
| (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on |
| MINUS_EXPR transformations. |
| * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR. |
| * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise. |
| * tree-inline.c (estimate_operator_cost): Likewise. |
| * tree-pretty-print.c (dump_generic_node, op_code_prio, |
| op_symbol_code): Likewise. |
| * tree-vect-stmts.c (vectorizable_operation): Likewise. |
| * vr-values.c (extract_range_from_binary_expr): Likewise. |
| * varasm.c (initializer_constant_valid_p_1): Likewise. |
| * tree.def: New tree code POINTER_DIFF_EXPR. |
| |
| 2017-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*bswap<mode>2_movbe): Add |
| integer suffix to movbe mnemonic. |
| (*bswaphi2_movbe): Ditto. |
| (bswaphi_lowpart): Merge with *bswaphi_lowpart_1. |
| |
| 2017-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/83045 |
| * tree-cfg.c (pass_warn_function_return::execute): Formatting fix. |
| Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION. |
| Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION. |
| |
| 2017-11-21 Martin Liska <mliska@suse.cz> |
| |
| * tree-inline.c (expand_call_inline): Remove not needed |
| xstrdup_for_dump. |
| |
| 2017-11-21 James Cowgill <James.Cowgill@imgtec.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82880 |
| * config/mips/frame-header-opt.c (mips_register_frame_header_opt): |
| Remove static keyword from f variable. |
| |
| 2017-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83086 |
| * gimple-ssa-store-merging.c |
| (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr |
| rather than n.base_addr. |
| |
| 2017-11-21 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/82044 |
| PR tree-optimization/82042 |
| * dse.c (check_mem_read_rtx): Check for overflow. |
| |
| 2017-11-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix |
| typo in comment. |
| |
| 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call |
| and its corresponding call arg location note. |
| |
| 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com> |
| Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc-protos.h (arc_compute_frame_size): Delete |
| declaration. |
| (arc_return_slot_offset): Likewise. |
| (arc_eh_return_address_location): New declaration. |
| * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. |
| (MUST_SAVE_REGISTER): Add exception handler case. |
| (MUST_SAVE_RETURN_ADDR): Likewise. |
| (arc_frame_pointer_required): Likewise. |
| (arc_frame_pointer_needed): New function. |
| (arc_compute_frame_size): Changed. |
| (arc_expand_prologue): Likewise. |
| (arc_expand_epilogue): Likewise. |
| (arc_initial_elimination_offset): Likewise. |
| (arc_return_slot_offset): Delete. |
| (arc_eh_return_address_location): New function. |
| (arc_builtin_setjmp_frame_value): Likewise. |
| * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers. |
| (EH_RETURN_STACKADJ_RTX): Define. |
| (EH_RETURN_HANDLER_RTX): Likewise. |
| * config/arc/arc.md (eh_return): Delete. |
| |
| 2017-11-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * print-tree.h (debug_vec_tree): Remove prototype. |
| * gdbinit.in (pvt): Remove macro. |
| |
| 2017-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/83047 |
| * gimple-ssa-store-merging.c |
| (imm_store_chain_info::output_merged_store): If the loads with the |
| same vuse are in different basic blocks, for load_gsi pick a load |
| location that is dominated by the other loads. |
| |
| PR c++/83059 |
| * config/i386/i386.c (ix86_memmodel_check): Start |
| -Winvalid-memory-model diagnostics with lowercase letter. |
| |
| PR debug/82718 |
| * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily |
| set in_cold_section_p to the partition containing loc_list->first. |
| When seeing loc_list->last_before_switch node, update secname and |
| perform range_across_switch second partition handling only after that. |
| |
| PR debug/82933 |
| * run-rtl-passes.c: Include debug.h. |
| (run_rtl_passes): Call debug_hooks->assembly_start. |
| * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked |
| multiple times. |
| |
| PR target/82981 |
| * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of |
| OPTAB_DIRECT in calls to expand_simple_binop. |
| |
| 2017-11-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/81404 |
| * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o. |
| |
| 2017-11-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/72786 |
| * spellcheck.h (best_match::blithely_get_best_candidate): New |
| accessor. |
| |
| 2017-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics |
| with lower case letter. |
| |
| 2017-11-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (bswaphi2): New expander. |
| (*bswaphi2_movbe): New insn pattern. |
| (bswaphi -> rorhi pepehole2): New peephole pattern. |
| |
| 2017-11-20 Jeff Law <law@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o. |
| * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c. |
| * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c. |
| * gimple-ssa-evrp.c: Remove bits moved into new files. Include |
| gimple-ssa-evrp-analyze.h. |
| |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not |
| set BB_VISITED here. |
| (evrp_range_analyzer::enter): Set BB_VISITED here instead. |
| |
| 2017-11-20 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c: Add general comment on Store-Store chains. |
| (split_data_refs_to_components): Postpone clearing eliminate_store_p |
| flag in component. |
| (get_chain_last_ref_at): Rename into... |
| (get_chain_last_write_at): ...this. |
| (get_chain_last_write_before_load): New function. |
| (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to |
| CT_STORE_STORE when write reference is added. |
| (determine_roots_comp): Support load ref in CT_STORE_STORE chains. |
| (is_inv_store_elimination_chain): Update get_chain_last_write_at call. |
| (initialize_root_vars_store_elim_1): Ditto. |
| (initialize_root_vars_store_elim_2): Ditto. Replace rhs once default |
| definition is created. |
| (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE |
| chain by replacing it with dominant stored value. |
| |
| 2017-11-20 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (add_ref_to_chain): Remove check on distance. |
| |
| 2017-11-20 Marc Glisse <marc.glisse@inria.fr> |
| |
| * vr-values.c (extract_range_from_binary_expr): Use a full range |
| for VR_VARYING. |
| |
| 2017-11-20 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.md (R4_REGNUM): Define constant. |
| (nonsecure_call_internal): Remove r4 clobber. |
| (nonsecure_call_value_internal): Likewise. |
| * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second |
| clobber and resequence match_operands. |
| (nonsecure_call_value_reg_thumb1_v5): Likewise. |
| * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise. |
| (nonsecure_call_value_reg_thumb2): Likewise. |
| |
| 2017-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78821 |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up |
| if base is TARGET_MEM_REF. If base is not MEM_REF, set base_addr |
| to the address of the base rather than the base itself. |
| (find_bswap_or_nop_1): Just use pointer comparison for vuse check. |
| (find_bswap_or_nop_finalize): New function. |
| (find_bswap_or_nop): Use it. |
| (bswap_replace): Return a tree rather than bool, change first |
| argument from gimple * to gimple_stmt_iterator, allow inserting |
| into an empty sequence, allow ins_stmt to be NULL - then emit |
| all stmts into gsi. Fix up MEM_REF address gimplification. |
| (pass_optimize_bswap::execute): Adjust bswap_replace caller. |
| (struct store_immediate_info): Add N and INS_STMT non-static |
| data members. |
| (store_immediate_info::store_immediate_info): Initialize them |
| from newly added ctor args. |
| (merged_store_group::apply_stores): Formatting fixes. Sort by |
| bitpos at the end. |
| (stmts_may_clobber_ref_p): For stores call also |
| refs_anti_dependent_p. |
| (gather_bswap_load_refs): New function. |
| (imm_store_chain_info::try_coalesce_bswap): New method. |
| (imm_store_chain_info::coalesce_immediate_stores): Use it. |
| (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially. |
| (imm_store_chain_info::output_merged_store): Fail if number of |
| new estimated stmts is bigger or equal than old. Handle LROTATE_EXPR |
| and NOP_EXPR rhs_code. |
| (pass_store_merging::process_store): Compute n and ins_stmt, if |
| ins_stmt is non-NULL and the store rhs is otherwise invalid, use |
| LROTATE_EXPR rhs_code. Pass n and ins_stmt to store_immediate_info |
| ctor. |
| (pass_store_merging::execute): Calculate dominators. |
| |
| * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number, |
| BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP, |
| CMPXCHG, do_shift_rotate, verify_symbolic_number_p, |
| init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, |
| find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap, |
| class pass_optimize_bswap, bswap_replace, |
| pass_optimize_bswap::execute): Moved to ... |
| * gimple-ssa-store-merging.c: ... this file. |
| Include optabs-tree.h. |
| (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p, |
| init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, |
| find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into |
| anonymous namespace, remove static keywords. |
| (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here... |
| (pass_optimize_bswap::execute): ... rather than here. Formatting fix. |
| |
| 2017-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/83062 |
| * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch. |
| |
| 2017-11-20 Aldy Hernandez <aldyh@redhat.com> |
| |
| * vec.h (debug_helper): New function. |
| (DEFINE_DEBUG_VEC): New macro. |
| * hash-set.h (debug_helper): New function. |
| (DEFINE_DEBUG_HASH_SET): New macro. |
| * cfg.c (debug_slim (edge)): New function. |
| Call DEFINE_DEBUG_VEC for edges. |
| Call DEFINE_DEBUG_HASH_SET for edges. |
| * cfghooks.c (debug_slim (basic_block)): New function. |
| Call DEFINE_DEBUG_VEC for basic blocks. |
| Call DEFINE_DEBUG_HASH_SET for basic blocks. |
| * print-tree.c (debug_slim): New function to handle trees. |
| Call DEFINE_DEBUG_VEC for trees. |
| Call DEFINE_DEBUG_HASH_SET for trees. |
| (debug (vec<tree, va_gc>) &): Remove. |
| (debug (<vec<tree, va_gc>) *): Remove. |
| * print-rtl.c (debug_slim): New function to handle const_rtx. |
| Call DEFINE_DEBUG_VEC for rtx_def. |
| Call DEFINE_DEBUG_VEC for rtx_insn. |
| Call DEFINE_DEBUG_HASH_SET for rtx_def. |
| Call DEFINE_DEBUG_HASH_SET for rtx_insn. |
| * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove. |
| (debug (vec<rtx_insn *> *ptr): Remove. |
| (debug_insn_vector): Remove. |
| * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree. |
| |
| 2017-11-20 Tom de Vries <tom@codesourcery.com> |
| |
| PR rtl-optimization/82020 |
| * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of |
| IF_THEN_ELSE condition. |
| |
| 2017-11-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling |
| of degenerates resulting from ignoring an edge. |
| |
| 2017-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/81360 |
| * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized |
| |
| 2017-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/83001 |
| * profile-count.c (profile_count::to_sreal_scale): Fix return value |
| for uninitialied counts. |
| |
| 2017-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/60243 |
| * tree-inline.c (estimate_num_insns): Set to 1 at least. |
| |
| 2017-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR target/82713 |
| * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types. |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after |
| "do while (0)". |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after |
| "do {} while (0)". |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after |
| macro body. |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after |
| "do {} while (0)". |
| * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same. |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after |
| "do {} while (0)". |
| * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing |
| semicolon after MCORE_EXPORT_NAME call. |
| |
| 2017-11-19 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/82961 |
| * vmsdbgout.c (vmsdbgout_early_finish): New function. |
| (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish. |
| |
| 2017-11-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. |
| (cgraph_edge::clone): Cleanup updating of profile. |
| * ipa-cp.c (update_profiling_info): Likewise. |
| * ipa-inline-transform.c (inline_transform): Likewise. |
| * ipa-inline.c (inline_small_functions): Add missing space to dump. |
| * ipa-split.c (execute_split_functions): Do not split when function |
| is cold. |
| * predict.c (estimate_bb_frequencies): Cleanup updating of profile. |
| * profile-count.c (profile_count::dump): Add global0. |
| (profile_count::to_cgraph_frequency): Do not ICE when entry is |
| undefined. |
| (profile_count::to_sreal_scale): Likewise. |
| (profile_count::adjust_for_ipa_scaling): Fix typo in comment. |
| (profile_count::combine_with_ipa_count): New function. |
| * profile-count.h (profile_guessed_global0adjusted): New. |
| (profile_count::adjusted_zero): New. |
| (profile_count::global0adjusted): New. |
| (profile_count::combine_with_ipa_count): New. |
| * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment; |
| correct profile of return block of split functions. |
| (copy_cfg_body): Remove unused profile_count. |
| (copy_body): Likewise. |
| (expand_call_inline): Update. |
| (tree_function_versioning): Update. |
| |
| 2017-11-18 Aldy Hernandez <aldyh@redhat.com> |
| |
| * hash-set.h (hash_set::empty): New. |
| * tree-ssa-threadbackward.h: Delete. |
| * tree-ssa-threadbackward.c (class thread_jumps): New. |
| Move max_threaded_paths into class. |
| (fsm_find_thread_path): Remove arguments that are now in class. |
| (profitable_jump_thread_path): Rename to... |
| (thread_jumps::profitable_jump_thread_path): ...this. |
| (convert_and_register_jump_thread_path): Rename to... |
| (thread_jumps::convert_and_register_current_path): ...this. |
| (check_subpath_and_update_thread_path): Rename to... |
| (thread_jumps::check_subpath_and_update_thread_path): ...this. |
| (register_jump_thread_path_if_profitable): Rename to... |
| (thread_jumps::register_jump_thread_path_if_profitable): ...this. |
| (handle_phi): Rename to... |
| (thread_jumps::handle_phi): ...this. |
| (handle_assignment): Rename to... |
| (thread_jumps::handle_assignment): ...this. |
| (fsm_find_control_statement_thread_paths): Rename to... |
| (thread_jumps::fsm_find_control_statement_thread_paths): ...this. |
| (find_jump_threads_backwards): Rename to... |
| (thread_jumps::find_jump_threads_backwards): ...this. |
| Initialize path local data. |
| (pass_thread_jumps::execute): Call find_jump_threads_backwards |
| from within thread_jumps class. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts. |
| |
| 2017-11-17 Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator |
| to canonical location. |
| |
| 2017-11-17 Steve Ellcey <sellcey@cavium.com> |
| |
| PR target/81356 |
| * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p): |
| Remove. |
| (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define. |
| |
| 2017-11-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use |
| rcrt1.o%s/grcrt1.o%s for -static-pie. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (ix86_multiplication_cost, ix86_division_cost, |
| ix86_shift_rotate_cost): Break out from ... |
| (ix86_rtx_costs): ... here. |
| (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of |
| vector operations. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (determine_unlikely_bbs): Set cgraph node count to 0 |
| when entry block was promoted unlikely. |
| (estimate_bb_frequencies): Increase frequency scale. |
| * profile-count.h (profile_count): Export precision info. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-tailcall.c (eliminate_tail_call): Be more careful about not |
| disturbin profile of entry block. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for |
| roundoff errors. |
| |
| 2017-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (update_profiling_info): Handle conversion to local profile. |
| * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does. |
| |
| 2017-11-17 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted |
| from evrp_dom_walker class. Various methods moved into new class. |
| (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class. |
| (evrp_range_analyzer::enter): New method. |
| (evrp_range_analyzer::leave): New method. |
| (evrp_dom_walker): Remove delegators no longer needed by this class. |
| Replace vr_values data member with evrp_range_analyzer |
| |
| * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New |
| method extracted from evrp_dom_walker::before_dom_children. |
| (evrp_dom_walker::record_ranges_from_stmt): Likewise. |
| (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise. |
| |
| * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method. |
| Add private copy constructor and move assignment operators. |
| Privatize methods and class data where trivially possible. |
| (evrp_dom_walker::cleanup): New function, extracted from |
| execute_early_vrp. Simplify access to class data. |
| |
| * vr-values.h (get_output_for_vrp): Prototype. |
| * vr-values.c (get_output_for_vrp): New function extracted from |
| vrp_visit_assignment_or_call and extract_range_from_stmt. |
| (vrp_visit_assignment_or_call): Use get_output_for_vrp. Simplify. |
| |
| 2017-11-17 Luis Machado <luis.machado@linaro.org> |
| |
| * config/aarch64/aarch64.c |
| (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1. |
| (qdf24xx_tunings) <autoprefetcher_model>: Set to |
| tune_params::AUTOPREFETCHER_WEAK. |
| |
| 2017-11-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/82641 |
| * config/arm/arm.c (arm_valid_target_attribute_rec): |
| Parse "arch=" and "+<ext>". |
| (arm_valid_target_attribute_tree): Re-init global options. |
| (arm_option_override): Make non-static. |
| (arm_options_perform_arch_sanity_checks): Make errors fatal. |
| * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef. |
| (__ARM_FEATURE_CRC32): Support undef. |
| * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma. |
| * doc/extend.texi (ARM Function Attributes): Add pragma and target. |
| |
| 2017-11-17 David Malcolm <dmalcolm@redhat.com> |
| |
| * gdbinit.in (break-on-diagnostic): New command. |
| |
| 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * config/i386/i386.c (ix86_expand_epilogue): Change simple |
| return to indirect jump for EH return if control-flow |
| protection is enabled. Change explicit 'false' argument in |
| pro_epilogue_adjust_stack with a value of |
| flag_cf_protection. |
| * config/i386/i386.md (simple_return_indirect_internal): |
| Remove SImode restriction to support 64-bit. |
| |
| 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (added_notes_insn): New. |
| (try_combine): Handle added_notes_insn like added_links_insn. |
| Rewrite return value code. |
| (distribute_notes): Set added_notes_insn to the earliest insn we added |
| a note to. |
| |
| 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/82621 |
| * combine.c (try_combine): Do not split PARALLELs of two SETs if the |
| dest of one of those SETs is unused. |
| |
| 2017-11-17 Richard Biener <rguenther@suse.de> |
| |
| PR fortran/83017 |
| * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind. |
| * tree-pretty-print.c (dump_generic_node): Handle |
| annot_expr_parallel_kind. |
| * tree-cfg.c (replace_loop_annotate_in_block): Likewise. |
| * gimplify.c (gimple_boolify): Likewise. |
| |
| 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * config.gcc (extra_headers): Add cet.h for x86 targets. |
| * config/i386/cet.h: New file. |
| * doc/install.texi: Add --enable-cet/--disable-cet. |
| |
| 2017-11-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83017 |
| * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread. |
| (gen_parallel_loop): Properly count iterations. |
| (parallelize_loops): Handle loop->can_be_parallel independent |
| of flag_loop_parallelize_all. Make static profitability test match |
| the runtime one. |
| * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New. |
| * invoke.texi (parloops-min-per-thread): Document. |
| |
| 2017-11-17 Vineet Gupta <vgupta@synopsys.com> |
| |
| * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc |
| upstreaming review comments. |
| |
| 2017-11-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * expr.c (copy_blkmode_to_reg): Fix bitsize for targets |
| with fast unaligned access. |
| * doc/sourcebuild.texi (word_mode_no_slow_unalign): New. |
| |
| 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate |
| to_clear_arg_regs_bitmap to the same size as to_clear_bitmap. |
| |
| 2017-11-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (phi_translate_1): Remove redundant constant |
| folding of references. |
| |
| 2017-11-17 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR middle-end/78809 |
| * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling |
| of replacing call to strncmp with corresponding call to strcmp when |
| meeting conditions. |
| |
| 2017-11-17 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning |
| option prefer-avx256 for skylake-avx512 configuration. |
| * config/i386/i386.c (ix86_option_override_internal): Ditto. |
| (get_builtin_code_for_version): Ditto. |
| |
| 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> |
| Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify. |
| (FIXED_REGISTERS): Reserve more register numbers. |
| (CALL_USED_REGISTERS): Likewise. |
| (REG_ALLOC_ORDER): Likewise. |
| (REG_CLASS_CONTENTS): Likewise. |
| (REGISTER_NAMES): Likewise. |
| |
| 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> |
| Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI |
| V2SI. |
| * config/nds32/iterators.md: Add vector mode iterators and attributes. |
| |
| 2017-11-16 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct |
| parameter list for vec_splats. |
| |
| 2017-11-16 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/invoke.texi (-std=c17): Refer to 2018 expected publication |
| date of C17. |
| (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases. |
| |
| 2017-11-16 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR bootstrap/82856 |
| * doc/install.texi: Document incompatibility of Perl >=5.6.26 |
| with the required version of automake 1.11.6. |
| |
| 2017-11-16 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined |
| for it. |
| (DU_C2_3_power9): Correct reservation combinations. |
| (FP_DIV_power9, VEC_DIV_power9): New. |
| (power9-alu): Split out rotate/shift... |
| (power9-rot): ...to here, correct dispatch resource. |
| (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch |
| resource. |
| (power9-fp): Correct latency. |
| (power9-sdiv): Add div/sqrt resource. |
| (power9-ddiv): Correct latency, add div/sqrt resource. |
| (power9-sqrt, power9-dsqrt): Add div/sqrt resource. |
| (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt |
| resource. |
| (power9-qpdiv, power9-qpmul): Adjust resource usage. |
| |
| 2017-11-15 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the |
| switch statement mapping KF built-ins to TF built-ins if we don't |
| have the proper ISA 3.0 assembler support. |
| |
| 2017-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-emutls.c (lower_emutls_data): Remove unused bb_freq. |
| (lower_emutls_function_body): Do not compute it. |
| |
| 2017-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-split.c (split_bb_info): Turn time to sreal. |
| (split_point): Likewise. |
| (dump_split_point): Likewise. |
| (fine_split_points): Likewise. |
| (execute_split_functions): Only zero split_bbs; turn time to sreals. |
| |
| 2017-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently |
| in sreal. |
| |
| 2017-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (combine_predictions_for_bb): Preserve zero predicted |
| edges. |
| (expensive_function_p): Remove useless assert. |
| (determine_unlikely_bbs): Propagate also forward; determine cold blocks |
| |
| 2017-11-16 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/82588 |
| PR tree-optimization/82583 |
| * tree-vrp.c (check_array_ref): Handle flexible array members, |
| string literals, and inner indices. |
| (search_for_addr_array): Add detail to diagnostics. |
| |
| 2017-11-16 Nathan Sidwell <nathan@acm.org> |
| |
| PR c++/82836 |
| PR c++/82737 |
| * tree.h (COPY_DECL_RTL): Rename parms for clarity. |
| (SET_DECL_ASSEMBLER_NAME): Forward to |
| overwrite_decl_assembler_name. |
| (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity. |
| (overwrite_decl_assembler_name): Declare. |
| * tree.c (overwrite_decl_assembler_name): New. |
| * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare. |
| (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default. |
| (LANG_HOOKS_INITIALIZER): Add it. |
| * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name. |
| * langhooks.c (lhd_set_decl_assembler_name): Use |
| SET_DECL_ASSEMBLER_NAME. |
| (lhd_overwrite_decl_assembler_name): Default implementation. |
| |
| 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com> |
| Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| PR tree-optimization/71026 |
| * match.pd: Canonicalize constant multiplies in division. |
| |
| 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry. |
| * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE): |
| Remove OPT_fomit_frame_pointer entry. |
| * common/config/arc/arc-common.c: Likewise. |
| * common/config/arm/arm-common.c: Likewise. |
| * common/config/avr/avr-common.c: Likewise. |
| * common/config/c6x/c6x-common.c: Likewise. |
| * common/config/cr16/cr16-common.c: Likewise. |
| * common/config/cris/cris-common.c: Likewise. |
| * common/config/epiphany/epiphany-common.c: Likewise. |
| * common/config/fr30/fr30-common.c: Likewise. |
| * common/config/frv/frv-common.c: Likewise. |
| * common/config/ia64/ia64-common.c: Likewise. |
| * common/config/iq2000/iq2000-common.c: Likewise. |
| * common/config/lm32/lm32-common.c: Likewise. |
| * common/config/m32r/m32r-common.c: Likewise. |
| * common/config/mcore/mcore-common.c: Likewise. |
| * common/config/microblaze/microblaze-common.c: Likewise. |
| * common/config/mips/mips-common.c: Likewise. |
| * common/config/mmix/mmix-common.c: Likewise. |
| * common/config/mn10300/mn10300-common.c: Likewise. |
| * common/config/nios2/nios2-common.c: Likewise. |
| * common/config/pa/pa-common.c: Likewise. |
| * common/config/pdp11/pdp11-common.c: Likewise. |
| * common/config/powerpcspe/powerpcspe-common.c: Likewise. |
| * common/config/riscv/riscv-common.c: Likewise. |
| * common/config/rs6000/rs6000-common.c: Likewise. |
| * common/config/rx/rx-common.c: Likewise. |
| * common/config/s390/s390-common.c: Likewise. |
| * common/config/sh/sh-common.c: Likewise. |
| * common/config/sparc/sparc-common.c: Likewise. |
| * common/config/tilegx/tilegx-common.c: Likewise. |
| * common/config/tilepro/tilepro-common.c: Likewise. |
| * common/config/v850/v850-common.c: Likewise. |
| * common/config/visium/visium-common.c: Likewise. |
| * common/config/xstormy16/xstormy16-common.c: Likewise. |
| * common/config/xtensa/xtensa-common.c: Likewise. |
| * invoke.texi (-fomit-frame-pointer): Update documentation. |
| |
| 2017-11-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfg.c (scale_bbs_frequencies_int, |
| cale_bbs_frequencies_gcov_type): Remove. |
| * cfg.h (scale_bbs_frequencies_int, |
| cale_bbs_frequencies_gcov_type): Remove. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-manip.c |
| (scale_dominated_blocks_in_loop): Update to profile counts. |
| (tree_transform_and_unroll_loop): Likewise. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-vect-loop-manip.c (vect_do_peeling): Do not use |
| scale_bbs_frequencies_int. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * final.c (compute_alignments): Use counts rather than frequencies. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgloopanal.c: Include sreal.h |
| (average_num_loop_insns): Use counts and sreal for accounting. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile |
| manipulation. |
| |
| 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/nds32/constraints.md: Provide more constraints. |
| * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES, |
| REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to |
| support constraints usage. |
| |
| 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove. |
| |
| 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string. |
| * config/nds32/nds32.opt: Refine the layout. |
| * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2, |
| TARGET_EXT_STRING): Support new options. |
| * config/nds32/nds32.h: Likewise. |
| * config/nds32/nds32.md: Likewise. |
| * config/nds32/nds32-predicates.c: Likewise. |
| * config/nds32/constraints.md: Likewise. |
| * common/config/nds32/nds32-common.c: Likewise. |
| |
| 2017-11-16 Julia Koval <julia.koval@intel.com> |
| |
| PR target/82983 |
| * config/i386/gfniintrin.h: Add sse check. |
| * config/i386/i386.c (ix86_expand_builtin): Fix gfni check. |
| |
| 2017-11-16 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET, |
| OPTION_MASK_ISA_AVX512VBMI2_UNSET): New. |
| (ix86_handle_option): Handle -mavx512vbmi2. |
| * config/i386/cpuid.h: Add bit_AVX512VBMI2. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. |
| * config/i386/i386-c.c (__AVX512VBMI2__): New. |
| * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New. |
| * config/i386/i386.opt (mavx512vbmi2): New option. |
| * doc/invoke.texi: Add new option. |
| |
| 2017-11-16 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8, |
| _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8, |
| _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8, |
| _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8, |
| _mm512_gf2p8mul_epi8): New intrinsics. |
| * config/i386/i386-builtin-types.def |
| (V64QI_FTYPE_V64QI_V64QI): New type. |
| * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi, |
| __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi, |
| __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi, |
| __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins. |
| * config/i386/sse.md (vgf2p8mulb_*): New pattern. |
| * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. |
| |
| 2017-11-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop |
| explicitly as a stream of bytes. |
| |
| 2017-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_xst_be): New #define. |
| * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename |
| and externalize from *altivec_vperm_<mode>_internal. |
| * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro |
| instantiation. |
| (XL_BE_V8HI): Likewise. |
| (XL_BE_V4SI): Likewise. |
| (XL_BE_V4SI): Likewise. |
| (XL_BE_V2DI): Likewise. |
| (XL_BE_V4SF): Likewise. |
| (XL_BE_V2DF): Likewise. |
| (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct |
| all array entries with these keys: VSX_BUILTIN_VEC_XL, |
| VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST. Add entries for key |
| VSX_BUILTIN_VEC_XST_BE. |
| * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove. |
| (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_* |
| built-ins. |
| (altivec_init_builtins): Replace conditional calls to def_builtin |
| for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and |
| __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR |
| with unconditional calls. Remove calls to def_builtin for |
| __builtin_vsx_le_be_<mode>. Add a call to def_builtin for |
| __builtin_vec_xst_be. |
| * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn |
| to define_expand, and add alternate RTL generation for P8. |
| (*vsx_ld_elemrev_v8hi_internal): New define_insn based on |
| vsx_ld_elemrev_v8hi. |
| (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and |
| add alternate RTL generation for P8. |
| (*vsx_ld_elemrev_v16qi_internal): New define_insn based on |
| vsx_ld_elemrev_v16qi. |
| (vsx_st_elemrev_v8hi): Convert define_insn |
| to define_expand, and add alternate RTL generation for P8. |
| (*vsx_st_elemrev_v8hi_internal): New define_insn based on |
| vsx_st_elemrev_v8hi. |
| (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and |
| add alternate RTL generation for P8. |
| (*vsx_st_elemrev_v16qi_internal): New define_insn based on |
| vsx_st_elemrev_v16qi. |
| |
| 2017-11-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/82990 |
| * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove |
| TARGET_AVX512ER check. |
| (ix86_option_override_internal): Set MASK_VZEROUPPER if |
| neither -mzeroupper nor -mno-zeroupper is used and |
| TARGET_EMIT_VZEROUPPER is set. |
| * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New. |
| * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. |
| |
| 2017-11-15 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for |
| folding of vector compares. |
| (fold_build_vec_cmp): New helper function. |
| (fold_compare_helper): New helper function. |
| (builtin_function_type): Add compare builtins to the list of functions |
| having unsigned arguments. Cosmetic updates to comment indentation. |
| * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify |
| the not+eq combination. |
| |
| 2017-11-15 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/82726 |
| PR tree-optimization/70754 |
| * tree-predcom.c (order_drefs_by_pos): New function. |
| (combine_chains): Move code setting has_max_use_after to... |
| (try_combine_chains): ...here. New parameter. Sort combined chains |
| according to position information. |
| (tree_predictive_commoning_loop): Update call to above function. |
| (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New. |
| |
| 2017-11-15 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/82726 |
| Revert |
| 2017-01-23 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/70754 |
| * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. |
| (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert |
| combined stmt before it if not NULL. |
| (combine_chains): Process refs reversely and compute dominance point |
| for root ref. |
| |
| Revert |
| 2017-02-23 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/79663 |
| * tree-predcom.c (combine_chains): Process refs in reverse order |
| only for ZERO length chains, and add explaining comment. |
| |
| 2017-11-15 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New |
| * config/arm/arm-tables.opt (armv8.3-a): Regenerated. |
| * doc/invoke.texi (ARM Options): Add armv8.3-a. |
| |
| 2017-11-15 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2. |
| |
| 2017-11-15 Martin Liska <mliska@suse.cz> |
| |
| * tree-cfg.c (pass_warn_function_return::execute): |
| Compare warn_return_type for greater than zero. |
| |
| 2017-11-15 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| PR target/82941 |
| PR target/82942 |
| * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition |
| to return true on Xeon and not on Xeon Phi. |
| (ix86_check_avx256_register): Changed to ... |
| (ix86_check_avx_upper_register): ... this. Add extra check for |
| VALID_AVX512F_REG_OR_XI_MODE. |
| (ix86_avx_u128_mode_needed): Changed |
| ix86_check_avx256_register to ix86_check_avx_upper_register. |
| (ix86_check_avx256_stores): Changed to ... |
| (ix86_check_avx_upper_stores): ... this. Changed |
| ix86_check_avx256_register to ix86_check_avx_upper_register. |
| (ix86_avx_u128_mode_after): Changed |
| avx_reg256_found to avx_upper_reg_found. Changed |
| ix86_check_avx256_stores to ix86_check_avx_upper_stores. |
| (ix86_avx_u128_mode_entry): Changed |
| ix86_check_avx256_register to ix86_check_avx_upper_register. |
| (ix86_avx_u128_mode_exit): Ditto. |
| * config/i386/i386.h: (host_detect_local_cpu): New define. |
| |
| 2017-11-15 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> |
| |
| * config/arm/xgene1.md (xgene1): Split into automatons |
| xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd. |
| (xgene1_f_load): Adjust reservations and/or types. |
| (xgene1_f_store): Likewise. |
| (xgene1_load_pair): Likewise. |
| (xgene1_store_pair): Likewise. |
| (xgene1_fp_load1): Likewise. |
| (xgene1_load1): Likewise. |
| (xgene1_store1): Likewise. |
| (xgene1_move): Likewise. |
| (xgene1_alu): Likewise. |
| (xgene1_simd): Likewise. |
| (xgene1_bfm): Likewise. |
| (xgene1_neon_load1): Likewise. |
| (xgene1_neon_store1): Likewise. |
| (xgene1_neon_logic): Likewise. |
| (xgene1_neon_st1): Likewise. |
| (xgene1_neon_ld1r): Likewise. |
| (xgene1_alu_cond): Added. |
| (xgene1_shift_reg): Likwise. |
| (xgene1_bfx): Likewise. |
| (xgene1_mul): Split into xgene1_mul32, xgene1_mul64. |
| |
| 2017-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82981 |
| * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and |
| ssa-iterators.h. |
| (can_widen_mult_without_libcall): New function. |
| (expand_mul_overflow): If only checking unsigned mul overflow, |
| not result, and can do efficiently MULT_HIGHPART_EXPR, emit that. |
| Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless |
| no other way works. Add MULT_HIGHPART_EXPR + MULT_EXPR support. |
| (expand_DIVMOD): Formatting fix. |
| * expmed.h (expand_mult): Add NO_LIBCALL argument. |
| * expmed.c (expand_mult): Likewise. Use OPTAB_WIDEN rather |
| than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail. |
| |
| PR tree-optimization/82977 |
| * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy |
| constructed temporary to strlen_to_stridx.put. |
| |
| 2017-11-15 Martin Liska <mliska@suse.cz> |
| |
| * configure.ac: Remove -fkeep-inline-functions from coverage_flags. |
| * configure: Regenerate. |
| |
| 2017-11-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/82927 |
| * config/sh/sh-mem.cc: Use proper probability for |
| REG_BR_PROB_NOTE. |
| |
| 2017-11-14 Jeff Law <law@redhat.com> |
| |
| * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing |
| the red zone for stack_clash_protection_final_dynamic_probe targets |
| when the total dynamic stack size is zero bytes. |
| |
| * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread |
| blocks is post order. |
| |
| 2017-11-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| * dumpfile.h (TDF_COMPARE_DEBUG): New. |
| * final.c (rest_of_clean_state): Set it for the |
| -fcompare-debug dump. |
| * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF |
| class when TDF_COMPARE_DEBUG is set. |
| |
| * dwarf2out.c (gen_producer_string): Discard |
| OPT_fcompare_debug. |
| |
| 2017-11-15 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/81156 |
| * doc/extend.texi (Other Builtins): Document __builtin_tgmath. |
| * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose) |
| (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2) |
| (__TGMATH_REAL_2_3): Remove macros. |
| (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2) |
| (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using |
| __builtin_tgmath. |
| (frexp, ldexp, nexttoward, scalbn, scalbln): Define using |
| __TGMATH_REAL_2. |
| (remquo): Define using __TGMATH_REAL_3. |
| |
| 2017-11-14 Jeff Law <law@redhat.com> |
| |
| * vr-values.c: New file with contents extracted from tree-vrp.c. |
| * Makefile.in (OBJS): Add vr-values.o |
| * tree-vrp.h (set_value_range_to_nonnull): Prototype. |
| (set_value_range, set_and_canonicalize_value_range): Likewise. |
| (vrp_bitmap_equal_p, range_is_nonnull): Likewise. |
| (value_range_constant_singleton, symbolic_range_p): Likewise. |
| (compare_values, compare_values_warnv, vrp_val_is_min): Likewise. |
| (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise. |
| (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise. |
| (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise. |
| (find_case_label_range, find_case_label_index): Likewise. |
| (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise. |
| (range_int_cst_singleton_p, value_inside_range): Likewise. |
| (get_single_symbol): Likewise. |
| (switch_update): Move structure definition here. |
| (to_remove_edges, to_update_switch_stmts): Provide externs. |
| * tree-vrp.c: Move all methods for vr-values class to vr-values.c |
| (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible. |
| (vrp_val_is_min, set_value_range): Likewise. |
| (set_and_canonicalize_value_range, copy_value_range): Likewise. |
| (set_value_range_to_value, set_value_range_to_nonnull): Likewise. |
| (set_value_range_to_null, vrp_bitmap_equal_p): Likewise. |
| (range_is_nonnull, range_int_cst_p): Likewwise. |
| (range_int_cst_singleton_p, symbolic_range_p): Likewise. |
| (get_single_symbol, operand_less_p): Likewise |
| (compare_values_warnv, compare_values): Likewise. |
| (value_inside_range, value_range_constant_singleton): Likewise. |
| (zero_nonzero_bitgs_from_vr): Likewise. |
| (extract_range_from_binary_expr_1): Likewise. |
| (overflow_comparison_p): Likewise. |
| (to_remove_edges, to_update_switch_stmts): Likewise. |
| (find_case_label-index, find_case_label_range): Likewise. |
| (switch_update, set_value_range_to_nonnegative): Remove. |
| (set_value_range_to_truthvalue): Likewise. |
| (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise. |
| (gimple_stmt_nonzero_p, compare_ranges): Likewise. |
| (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise. |
| (find_case_label_ranges, test_for_singularity): Likewise. |
| (range_fits_type_p, simplify_conversion_using_ranges): LIkewise. |
| (x_vr_values): Move to its remaining use site. |
| |
| 2017-11-10 Jeff Law <law@redhat.com> |
| |
| * vr-values.h (VR_INITIALIZER): Move #define here. |
| * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c |
| * Makefile.in (OBJS): Add tree-evrp.o |
| * tree-vrp.h (assert_info): Move structure definition here. |
| (set_value_range_to_varying): Prototype. |
| (vrp_operand_equal_p, range_includes_zero_p): Likewise. |
| (infer_value_range, register_edge_assert_for): Likewise. |
| (stmt_interesting_for_vrp): Likewise. |
| * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c. |
| (set_value_range_to_varying): No longer static. |
| (vrp_operand_equal_p, range_includes_zero_p): Likewise. |
| (infer_value_range, register_edge_assert_for): Likewise. |
| |
| 2017-11-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't |
| generate the XXBRD instruction. |
| |
| * config/rs6000/rs6000-c.c (is_float128_p): New helper function. |
| (rs6000_builtin_type_compatible): Treat _Float128 and long double |
| as being compatible if -mabi=ieeelongdouble. |
| * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros |
| to setup float128 built-ins with hardware support. |
| (BU_FLOAT128_HW_2): Likewise. |
| (BU_FLOAT128_HW_3): Likewise. |
| (BU_FLOAT128_HW_VSX_1): Likewise. |
| (BU_FLOAT128_HW_VSX_2): Likewise. |
| (scalar_extract_expq): Change float128 built-in functions to |
| accommodate having both KFmode and TFmode functions. Use the |
| KFmode variant as the default. |
| (scalar_extract_sigq): Likewise. |
| (scalar_test_neg_qp): Likewise. |
| (scalar_insert_exp_q): Likewise. |
| (scalar_insert_exp_qp): Likewise. |
| (scalar_test_data_class_qp): Likewise. |
| (sqrtf128_round_to_odd): Delete processing the round to odd |
| built-in functions as special built-in functions, and define them |
| as float128 built-ins. Use the KFmode variant as the default. |
| (truncf128_round_to_odd): Likewise. |
| (addf128_round_to_odd): Likewise. |
| (subf128_round_to_odd): Likewise. |
| (mulf128_round_to_odd): Likewise. |
| (divf128_round_to_odd): Likewise. |
| (fmaf128_round_to_odd): Likewise. |
| * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add |
| support for KFmode and TFmode xststdcqp calls. |
| (rs6000_expand_builtin): If long double is IEEE 128-bit floating |
| point, switch the built-in handlers for the get/set float128 |
| exponent, get float128 mantissa, float128 test built-ins, and the |
| float128 round to odd built-in functions. Eliminate creating the |
| float128 round to odd built-in functions as special built-ins. |
| (rs6000_init_builtins): Eliminate special creation of the float128 |
| round to odd built-in functions. |
| * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in |
| function insns to support both TFmode and KFmode variants. |
| (xsxsigqp_<mode>): Likewise. |
| (xsiexpqpf_<mode>): Likewise. |
| (xsiexpqp_<mode>): Likewise. |
| (xststdcqp_<mode>): Likewise. |
| (xststdcnegqp_<mode>): Likewise. |
| (xststdcqp_<mode>): Likewise. |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-threadupdate.c (compute_path_counts): Remove |
| unused path_in_freq_ptr parameter. |
| (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq |
| |
| 2017-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (edge_badness): Dump sreal frequency. |
| (compute_inlined_call_time): Match natural implementaiton ... |
| * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove |
| forgotten division by CGRAPH_FREQ_BASE. |
| |
| 2017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since |
| Solaris 11. Update comment. |
| * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12 |
| renaming. |
| * config/sol2.h (STARTFILE_SPEC): Likewise. |
| * configure: Regenerate. |
| |
| 2017-11-14 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove |
| le_ and be_ prefixes to swap* variables. Remove |
| if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case |
| statements. |
| |
| 2017-11-14 Jason Merrill <jason@redhat.com> |
| |
| Support GTY((cache)) on hash_map. |
| * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function. |
| (ggc_cache_remove): Override it instead of ggc_mx. |
| * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx. |
| (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx. |
| * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member. |
| (simple_cache_map_traits): Override maybe_mx. |
| * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry. |
| (hash_map): Friend gt_cleare_cache. |
| (gt_cleare_cache): New. |
| * tree.h (tree_cache_traits): New hash_map traits class. |
| (tree_cache_map): New typedef. |
| |
| 2017-11-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p |
| paramter and handling. |
| (cleanup_control_flow_bb): Likewise. |
| (cleanup_control_flow_pre): New helper performing a DFS walk |
| to call cleanup_control_flow_bb in PRE order. |
| (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb |
| via cleanup_control_flow_pre. |
| |
| 2017-11-14 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_simd_bsl<mode>_internal): Remove DImode. |
| (*aarch64_simd_bsl<mode>_alt): Likewise. |
| (aarch64_simd_bsldi_internal): New. |
| (aarch64_simd_bsldi_alt): Likewise. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tracer.c (better_p): Do not compare frequencies. |
| * reg-stack.c (better_edge): Likewise. |
| * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts |
| and back. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. |
| * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count. |
| * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count. |
| * lto-streamer-in.c (input_function): Use update_max_bb_count. |
| * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count. |
| * predict.c (maybe_hot_frequency_p): Inline to ... |
| (maybe_hot_count_p): ... here; rewrite to counts. |
| (counts_to_freqs): Rename to ... |
| (update_max_bb_count): ... this one. |
| (expensive_function_p): Use counts. |
| (estimate_bb_frequencies): Update. |
| (rebuild_frequencies): Update. |
| * predict.h (counts_to_freqs): Rename to ... |
| (update_max_bb_count): ... this one. |
| * profile.c (compute_branch_probabilities): Add debug info |
| * tree-inline.c (expand_call_inline): Update debug info. |
| (optimize_inline_calls): Use update_max_bb_count.. |
| (tree_function_versioning): Use update_max_bb_count.. |
| * value-prof.c (gimple_value_profile_transformations): |
| Do not use update_max_bb_count. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time): |
| always use frequencies. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c: Remove frequencies from comments. |
| (better_edge_p): Use profile counts. |
| (find_traces): Dump profile counts. |
| (rotate_loop): Use profile counts. |
| (find_traces_1_round): Likewise. |
| (connect_better_edge_p): Use counts instead of probabilities for |
| reverse walk. |
| (copy_bb_p): Drop early check for non-0 frequency. |
| (sanitize_hot_paths): Update comments. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-split.c (struct split_point): Add count. |
| (consider_split): Do not compute incoming frequency; compute incoming |
| count and store it to split_point. |
| (split_function): Set count of the call to split part correctly. |
| |
| 2017-11-13 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand. |
| |
| 2017-11-13 Tom Tromey <tom@tromey.com> |
| |
| * doc/cpp.texi (Variadic Macros): Document __VA_OPT__. |
| |
| 2017-11-13 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): |
| Add support for builtins: |
| unsigned int vec_first_{,miss}_match_{,or_eos}index, |
| vector {un,}signed {char,int,short}, |
| vector {un,}signed {char,int,short}) arguments. |
| * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX, |
| VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX): |
| Add BU_P9V_AV_2 expansions for the builtins. |
| * config/rs6000/altivec.h (vec_first_match_index, |
| vec_first_mismatch_index, vec_first_match_or_eos_index, |
| vec_first_mismatch_or_eos_index): Add #defines for the builtins. |
| * config/rs6000/rs6000-protos.h (bytes_in_mode): Add |
| new extern declaration. |
| * config/rs6000/rs6000.c (bytes_in_mode): Add new function. |
| * config/rs6000/vsx.md (first_match_index_<mode>, |
| first_match_or_eos_index_<mode>, first_mismatch_index_<mode>, |
| first_mismatch_or_eos_index_<mode>): Add define expand. |
| (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb. |
| * doc/extend.texi: Update the built-in documenation file for the new |
| built-in functions. |
| |
| 2017-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x |
| into the min/max operations for _Float<N> and _Float<N>X types. |
| |
| 2017-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/81351 |
| * dwarf2out.c (do_eh_frame): New static variable. |
| (dwarf2out_begin_prologue): Set it. |
| (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-coalesce.c (coalesce_cost): Fix formating. |
| |
| * tree-ssa-sink.c (select_best_block): Do not use frequencies. |
| |
| 2017-11-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR lto/81351 |
| * debug.h (dwarf2out_do_eh_frame): Declare. |
| * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate. |
| (dwarf2out_do_frame): Use it. |
| (dwarf2out_do_cfi_asm): Likewise. |
| * dwarf2out.c (dwarf2out_frame_finish): Likewise. |
| (dwarf2out_assembly_start): Likewise. |
| (dwarf2out_begin_prologue): Fix comment. |
| * toplev.c (compile_file): Always call dwarf2out_frame_finish |
| if the target needs either debug or unwind DWARF2 info. |
| * lto-opts.c (lto_write_options): Do not save -fexceptions, |
| -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros, |
| -ftrapping-math, -ftrapv and -fwrapv. |
| |
| 2017-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_edge::sreal_frequency): New function. |
| * cgraph.h (cgraph_edge::sreal_frequency): Declare. |
| * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency. |
| (estimate_edge_size_and_time): Likewise. |
| (ipa_merge_fn_summary_after_inlining): Likewise. |
| * ipa-inline.c (cgraph_freq_base_rec): Remove. |
| (compute_uninlined_call_time): Use sreal_frequency. |
| (compute_inlined_call_time): Likewise. |
| (ipa_inline): Do not initialize cgraph_freq_base_rec. |
| * profile-count.c: Include sreal.h. |
| (profile_count::to_sreal_scale): New. |
| * profile-count.h: Forward declare sreal. |
| (profile_count::to_sreal_scale): Declare. |
| |
| 2017-11-13 Nathan Sidwell <nathan@acm.org> |
| |
| * diagnostic.c (maybe_line_and_column): New. |
| (diagnostic_get_location_text): Use it. |
| (diagnostic_report_current_module): Likewise. |
| (test_diagnostic_get_location_text): Add tests. |
| |
| 2017-11-13 Luis Machado <luis.machado@linaro.org> |
| |
| * doc/md.texi (Specifying processor pipeline description): Fix |
| incorrect latency for the div instruction example. |
| |
| 2017-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78821 |
| * gimple-ssa-store-merging.c (compatible_load_p): Don't require |
| that bit_not_p is the same. |
| (imm_store_chain_info::coalesce_immediate_stores): Likewise. |
| (split_group): Count precisely bit_not_p bits in each statement. |
| (invert_op): New function. |
| (imm_store_chain_info::output_merged_store): Use invert_op to |
| emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some |
| but not all orig_stores have BIT_NOT_EXPR in the corresponding spots. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct coverage_info): Remove typedef of coverage_t. |
| (struct source_info): Likewise. |
| (add_branch_counts): Likewise. |
| (add_line_counts): Likewise. |
| (function_summary): Likewise. |
| (output_intermediate_line): Likewise. |
| (generate_results): Likewise. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct block_info): Remove typedef for block_t. |
| (struct line_info): Likewise. |
| (line_info::has_block): Likewise. |
| (EXIT_BLOCK): Likewise. |
| (unblock): Likewise. |
| (circuit): Likewise. |
| (get_cycles_count): Likewise. |
| (process_file): Likewise. |
| (read_graph_file): Likewise. |
| (solve_flow_graph): Likewise. |
| (find_exception_blocks): Likewise. |
| (add_line_counts): Likewise. |
| (accumulate_line_info): Likewise. |
| (output_line_details): Likewise. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct arc_info): Remove typedef for arc_t. |
| (struct line_info): Likewise. |
| (add_branch_counts): Likewise. |
| (output_branch_count): Likewise. |
| (function_info::~function_info): Likewise. |
| (circuit): Likewise. |
| (output_intermediate_line): Likewise. |
| (read_graph_file): Likewise. |
| (solve_flow_graph): Likewise. |
| (find_exception_blocks): Likewise. |
| (add_line_counts): Likewise. |
| (accumulate_line_info): Likewise. |
| (output_line_details): Likewise. |
| (output_function_details): Likewise. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct function_info): Remove typedef for function_t. |
| (struct source_info): Likewise. |
| (source_info::get_functions_at_location): Likewise. |
| (solve_flow_graph): Likewise. |
| (find_exception_blocks): Likewise. |
| (add_line_counts): Likewise. |
| (output_intermediate_file): Likewise. |
| (process_file): Likewise. |
| (generate_results): Likewise. |
| (release_structures): Likewise. |
| (read_graph_file): Likewise. |
| (read_count_file): Likewise. |
| (accumulate_line_counts): Likewise. |
| (output_lines): Likewise. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (function_info::function_info): Remove num_counts |
| and add vector<gcov_type>. |
| (function_info::~function_info): Use the vector. |
| (process_file): Likewise. |
| (read_graph_file): Likewise. |
| (read_count_file): Likewise. |
| (solve_flow_graph): Likewise. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (function_info::is_artificial): New function. |
| (process_file): Erase all artificial early. |
| (generate_results): Skip as all artificial are already |
| removed. |
| |
| 2017-11-13 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (read_graph_file): Store to global vector of functions. |
| (read_count_file): Iterate the vector. |
| (process_file): Likewise. |
| (generate_results): Likewise. |
| (release_structures): Likewise. |
| |
| 2017-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82954 |
| * gimple-ssa-store-merging.c |
| (imm_store_chain_info::coalesce_immediate_stores): If |
| !infof->ops[N].base_addr, split group if info->ops[N].base_addr. |
| |
| 2017-11-13 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): |
| Upddate call to ENDIAN_LANE_N. |
| (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx. |
| (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. |
| (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N |
| and use aarch64_endian_lane_rtx. |
| (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise. |
| |
| 2017-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0). |
| |
| 2017-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body. |
| |
| 2017-11-12 Tom de Vries <tom@codesourcery.com> |
| |
| * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro |
| body. |
| * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same. |
| * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same. |
| * defaults.h (ASM_OUTPUT_LABELREF): Same. |
| |
| 2017-11-11 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * doc/extend.texi (attribute nonstring): Remove spurious argument. |
| |
| PR bootstrap/82948 |
| * prefic.c (translate_name): Replace strncpy with memcpy to |
| avoid -Wstringop-truncation. |
| |
| 2017-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum. |
| |
| 2017-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (maybe_hot_frequency_p): Do not use cfun. |
| |
| 2017-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile |
| merging. |
| |
| 2017-11-10 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems, |
| enable generating XXBRH if the value is in a vector register. |
| (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the |
| value is in a vector register. |
| (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do |
| register to register bswap64's instead of doing the GPR sequence |
| used on previous machines. |
| (bswapdi2_xxbrd): New insn. |
| (bswapdi2_reg): Disallow on ISA 3.0. |
| (register to register bswap64 splitter): Do not split the insn on |
| ISA 3.0 systems that use XXBRD. |
| |
| 2017-11-10 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * config/darwin-c.c (framework_construct_pathname): Replace strncpy |
| with memcpy. |
| (find_subframework_file): Same. |
| |
| 2017-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.c (afdo_indirect_call): Drop frequency. |
| * cgraph.c (symbol_table::create_edge): Drop frequency argument. |
| (cgraph_node::create_edge): Drop frequency argument. |
| (cgraph_node::create_indirect_edge): Drop frequency argument. |
| (cgraph_edge::make_speculative): Drop frequency arguments. |
| (cgraph_edge::resolve_speculation): Do not update frequencies |
| (cgraph_edge::dump_edge_flags): Do not dump frequency. |
| (cgraph_node::dump): Check consistency in IPA mode. |
| (cgraph_edge::maybe_hot_p): Use IPA counter. |
| (cgraph_edge::verify_count_and_frequency): Rename to ... |
| (cgraph_edge::verify_count): ... this one; drop frequency checking. |
| (cgraph_node::verify_node): Update. |
| * cgraph.h (struct cgraph_edge): Drop frequency. |
| (cgraph_edge::frequency): New function. |
| * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass |
| frequencies. |
| (cgraph_edge::rebuild_edges): Likewise. |
| * cgraphclones.c (cgraph_edge::clone): Scale only counts. |
| (duplicate_thunk_for_node): Do not pass frequency. |
| (cgraph_node::create_clone): Scale only counts. |
| (cgraph_node::create_virtual_clone): Do not pass frequency. |
| (cgraph_node::create_edge_including_clones): Do not pass frequency. |
| (cgraph_node::create_version_clone): Do not pass frequency. |
| * cgraphunit.c (cgraph_node::analyze): Do not pass frequency. |
| (cgraph_node::expand_thunk): Do not pass frequency. |
| (cgraph_node::create_wrapper): Do not pass frequency. |
| * gimple-iterator.c (update_call_edge_frequencies): Do not pass |
| frequency. |
| * gimple-streamer-in.c (input_bb): Scale only IPA counts. |
| * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency. |
| * ipa-cp.c (ipcp_lattice::print): Use frequency function. |
| (gather_caller_stats): Use frequency function. |
| (ipcp_cloning_candidate_p): Use frequency function. |
| (ipcp_propagate_stage): Use frequency function. |
| (get_info_about_necessary_edges): Use frequency function. |
| (update_profiling_info): Update only IPA profile. |
| (update_specialized_profile): Use frequency functoin. |
| (perhaps_add_new_callers): Update only IPA profile. |
| * ipa-devirt.c (ipa_devirt): Use IPA profile. |
| * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency. |
| (dump_ipa_call_summary): Use frequency function. |
| (estimate_edge_size_and_time): Use frequency function. |
| (ipa_merge_fn_summary_after_inlining): Use frequency function. |
| * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile. |
| * ipa-inline-transform.c (update_noncloned_frequencies): Rename to .. |
| (update_noncloned_counts): ... ths one; scale counts only. |
| (clone_inlined_nodes): Do not scale frequency. |
| (inline_call): Do not pass frequency. |
| * ipa-inline.c (compute_uninlined_call_time): Use IPA profile. |
| (compute_inlined_call_time): Use IPA profile. |
| (want_inline_small_function_p): Use IPA profile. |
| (want_inline_self_recursive_call_p): Use IPA profile. |
| (edge_badness): Use IPA profile. |
| (lookup_recursive_calls): Use IPA profile. |
| (recursive_inlining): Do not pass frequency. |
| (resolve_noninline_speculation): Do not update frequency. |
| (inline_small_functions): Collect max of IPA profile. |
| (dump_overall_stats): Dump IPA porfile. |
| (dump_inline_stats): Dump IPA porfile. |
| (ipa_inline): Collect IPA stats. |
| * ipa-inline.h (clone_inlined_nodes): Update prototype. |
| * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function. |
| (ipa_propagate_frequency): Use frequency function. |
| (ipa_profile): Cleanup. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency |
| * ipa-utils.c (ipa_merge_profiles): Merge all profiles. |
| * lto-cgraph.c (lto_output_edge): Do not stream frequency. |
| (input_node): Do not stream frequency. |
| (input_edge): Do not stream frequency. |
| (merge_profile_summaries): Scale only IPA profiles. |
| * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency. |
| * predict.c (drop_profile): Do not recompute frequency. |
| * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency. |
| (ipa_tm_insert_gettmclone_call): Do not pass frequency. |
| * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed. |
| * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency. |
| * tree-emutls.c (gen_emutls_addr): Do not pass frequency. |
| * tree-inline.c (copy_bb): Do not scale frequency. |
| (expand_call_inline): Do not scale frequency. |
| (tree_function_versioning): Do not scale frequency. |
| * ubsan.c (ubsan_create_edge): Do not pass frequency. |
| |
| 2017-11-10 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8) |
| (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8) |
| (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8) |
| (_mm256_maskz_gf2p8affine_epi64_epi8) |
| (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8) |
| (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics. |
| * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi) |
| (__builtin_ia32_vgf2p8affineqb_v32qi) |
| (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins. |
| * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern. |
| |
| 2017-11-10 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/82641 |
| * config/arm/arm.c |
| (arm_option_override): Refactor. |
| (arm_option_reconfigure_globals): New. |
| (arm_options_perform_arch_sanity_checks): New. |
| * config/arm/arm-protos.h (arm_option_reconfigure_globals): |
| New prototype. |
| (arm_options_perform_arch_sanity_checks): Likewise |
| |
| 2017-11-10 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage. |
| (power9-qpmul): New. |
| * rs6000/rs6000.md ("type" attr): Add qmul. |
| (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, |
| *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd, |
| *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul. |
| |
| 2017-11-10 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * builtins.c (compute_objsize): Handle arrays that |
| compute_builtin_object_size likes to fail for. Make extern. |
| * builtins.h (compute_objsize): Declare. |
| (check_strncpy_sizes): New function. |
| (expand_builtin_strncpy): Call check_strncpy_sizes. |
| * gimple-fold.c (gimple_fold_builtin_strncpy): Implement |
| -Wstringop-truncation. |
| (gimple_fold_builtin_strncat): Same. |
| * gimple.c (gimple_build_call_from_tree): Set call location. |
| * tree-ssa-strlen.c (strlen_to_stridx): New global variable. |
| (maybe_diag_bound_equal_length, is_strlen_related_p): New functions. |
| (handle_builtin_stxncpy, handle_builtin_strncat): Same. |
| (handle_builtin_strlen): Use strlen_to_stridx. |
| (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and |
| stpncpy. |
| Use strlen_to_stridx. |
| (pass_strlen::execute): Release strlen_to_stridx. |
| * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement. |
| (-Wstringop-truncation): Document new option. |
| |
| 2017-11-10 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/82702 |
| * gcov.c (main): Handle intermediate files in a different |
| way. |
| (get_gcov_intermediate_filename): New function. |
| (output_gcov_file): Remove support of intermediate files. |
| (generate_results): Allocate intermediate file. |
| (release_structures): Clean-up properly fn_end. |
| (output_intermediate_file): Start iterating with line 1. |
| |
| 2017-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82929 |
| * gimple-ssa-store-merging.c (struct store_immediate_info): Add |
| ops_swapped_p non-static data member. |
| (store_immediate_info::store_immediate_info): Clear it. |
| (imm_store_chain_info::coalesce_immediate_stores): If swapping |
| ops set ops_swapped_p. |
| (count_multiple_uses): Handle ops_swapped_p. |
| |
| 2017-11-10 Martin Liska <mliska@suse.cz> |
| |
| * coverage.c (coverage_init): Stream information about |
| support of has_unexecuted_blocks. |
| * doc/gcov.texi: Document that. |
| * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool. |
| * gcov.c (read_graph_file): Likewise. |
| (output_line_beginning): Fix a small issue with |
| color output. |
| |
| 2017-11-10 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing |
| reference of trivial component. |
| |
| 2017-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/82916 |
| * gimple-ssa-store-merging.c |
| (pass_store_merging::terminate_all_aliasing_chains): For |
| gimple_store_p stmts also call refs_output_dependent_p. |
| |
| PR rtl-optimization/82913 |
| * compare-elim.c (try_merge_compare): Punt if def_insn is not |
| single set. |
| |
| 2017-11-09 Jeff Law <law@redhat.com> |
| |
| * vr-values.h: New file with vr_values class. |
| * tree-vrp.c: Include vr-values.h |
| (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static |
| data objects into the vr_values class. |
| (vr_value, values_propagated, vr_phi_edge_counts): Likewise. |
| (get_value_range): Make it a member function within vr_values class. |
| (set_defs_to_varying, update_value_range, add_equivalence): Likewise. |
| (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise. |
| (op_with_constant_singleton_value_range): Likewise. |
| (extract_range_for_var_from_comparison_expr): Likewise. |
| (extract_range_from_assert, extract_range_from_ssa_name): Likewise. |
| (extract_range_from_binary_expr): Likewise. |
| (extract_range_from_unary_expr): Likewise. |
| (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise. |
| (check_for_binary_op_overflow, extract_range_basic): Likewise. |
| (extract_range_from_assignment, adjust_range_with_scev): Likewise. |
| (dump_all_value_ranges, get_vr_for_comparison): Likewise. |
| (compare_name_with_value, compare_names): Likewise. |
| (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise. |
| (vrp_evaluate_conditional_warnv_with_ops): Likewise. Remove prototype. |
| (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise. |
| (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise. |
| (extract_range_from_phi_node): Likewise. |
| (simplify_truth_ops_using_ranges): Likewise. |
| (simplify_div_or_mod_using_ranges): Likewise. |
| (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise. |
| (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise. |
| (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise. |
| (simplify_float_conversion_using_ranges): Likewise. |
| (simplify_internal_call_using_ranges): Likewise. |
| (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise. |
| (vrp_visit_assignment_or_call): Likewise. Smuggle class instance |
| poitner via x_vr_values for calls into gimple folder. |
| (vrp_initialize_lattice): Make this the vr_values ctor. |
| (vrp_free_lattice): Make this the vr_values dtor. |
| (set_vr_value): New function. |
| (class vrp_prop): Add vr_values data member. Add various member |
| functions as well as member functions that delegate to vr_values. |
| (check_array_ref): Make a member function within vrp_prop class. |
| (search_for_addr_array, vrp_initialize): Likewise. |
| (vrp_finalize): Likewise. Revamp to avoid direct access to |
| vr_value, values_propagated, etc. |
| (check_array_bounds): Extract vrp_prop class instance pointer from |
| walk info structure. Use it to call member functions. |
| (check_all_array_refs): Make a member function within vrp_prop class. |
| Smuggle class instance pointer via walk info structure. |
| (x_vr_values): New local static. |
| (vrp_valueize): Use x_vr_values to get class instance. |
| (vr_valueize_1): Likewise. |
| (class vrp_folder): Add vr_values data member. Add various member |
| functions as well as member functions that delegate to vr_values. |
| (fold_predicate_in): Make a mber fucntion within vrp_folder class. |
| (simplify_stmt_for_jump_threading): Extract smuggled vr_values |
| class instance from vr_values. Use it to call member functions. |
| (vrp_dom_walker): Add vr_values data member. |
| (vrp_dom_walker::after_dom_children): Smuggle vr_values class |
| instance via x_vr_values. |
| (identify_jump_threads): Accept vr_values as argument. Store |
| it into the walker structure. |
| (evrp_dom_walker): Add vr_values class data member. Add various |
| delegators. |
| (evrp_dom_walker::try_find_new_range): Use vr_values data |
| member to access the memory allocator. |
| (evrp_dom_walker::before_dom_children): Store vr_values class |
| instance into the vrp_folder class. |
| (evrp_dom_walker::push_value_range): Rework to avoid direct |
| access to num_vr_values and vr_value. |
| (evrp_dom_walker::pop_value_range): Likewise. |
| (execute_early_vrp): Remove call to vrp_initialize_lattice. |
| Use vr_values to get to dump_all_value_ranges member function. |
| Remove call to vrp_free_lattice. Call vrp_initialize, vrp_finalize, |
| and simplify_cond_using_ranges_2 via vrp_prop class instance. |
| Pass vr_values class instance down to identify_jump_threads. |
| Remove call to vrp_free_lattice. |
| (debug_all_value_ranges): Remove. |
| |
| * tree-vrp.c (vrp_prop): Move class to earlier point in the file. |
| (vrp_folder): Likewise. |
| |
| * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack. |
| Get it from the existing bitmap instead. |
| (vrp_intersect_ranges_1): Likewise. |
| |
| 2017-11-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-store-merging.c (struct store_immediate_info): Add |
| bit_not_p field. |
| (store_immediate_info::store_immediate_info): Add bitnotp argument, |
| set bit_not_p to it. |
| (imm_store_chain_info::coalesce_immediate_stores): Break group |
| if bit_not_p is different. |
| (count_multiple_uses, split_group, |
| imm_store_chain_info::output_merged_store): Handle info->bit_not_p. |
| (handled_load): Avoid multiple chained BIT_NOT_EXPRs. |
| (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR |
| result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it |
| to store_immediate_info ctor. |
| |
| 2017-11-09 Jim Wilson <jimw@sifive.com> |
| |
| * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support. |
| (scan_prog_file): Likewise. |
| |
| 2017-11-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (max_entry_frequency): Remove. |
| (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p, |
| connect_traces, push_to_next_round_p): Remove prototypes. |
| (find_traces_1_round): Use counts only. |
| (push_to_next_round_p): Likewise. |
| (find_traces): Likewise. |
| (rotate_loop): Likewise. |
| (find_traces_1_round): Likewise. |
| (connect_traces): Likewise. |
| (edge_order): Likewise. |
| |
| 2017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (output_return_instruction): Add comments to |
| indicate requirement for cmse_nonsecure_entry return to account |
| for the size of clearing instruction output here. |
| (thumb_exit): Likewise. |
| * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for |
| return in hardfloat mode. |
| |
| 2017-11-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (machine_function): Add a bool, |
| "toc_is_wrapped_separately". |
| (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT |
| if it wasn't explicitly set or unset, we are optimizing for speed, and |
| doing separate shrink-wrapping. |
| (rs6000_get_separate_components): Enable the TOC component if |
| saving the TOC register in the prologue. |
| (rs6000_components_for_bb): Handle the TOC component. |
| (rs6000_emit_prologue_components): Store the TOC register where needed. |
| (rs6000_set_handled_components): Mark TOC as handled, if handled. |
| (rs6000_emit_prologue): Don't save the TOC if that is already done. |
| |
| 2017-11-09 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-param-manipulation.c: New file. |
| * ipa-param-manipulation.h: Likewise. |
| * Makefile.in (OBJS): Add ipa-param-manipulation.o. |
| (PLUGIN_HEADERS): Addded ipa-param-manipulation.h |
| * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h. |
| (ipa_parm_adjustment): Likewise. |
| (ipa_parm_adjustment_vec): Likewise. |
| (ipa_get_vector_of_formal_parms): Moved declaration to |
| ipa-param-manipulation.h. |
| (ipa_get_vector_of_formal_parm_types): Likewise. |
| (ipa_modify_formal_parameters): Likewise. |
| (ipa_modify_call_arguments): Likewise. |
| (ipa_combine_adjustments): Likewise. |
| (ipa_dump_param_adjustments): Likewise. |
| (ipa_modify_expr): Likewise. |
| (ipa_get_adjustment_candidate): Likewise. |
| * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to |
| ipa-param-manipulation.c. |
| (ipa_get_vector_of_formal_parm_types): Likewise. |
| (ipa_modify_formal_parameters): Likewise. |
| (ipa_modify_call_arguments): Likewise. |
| (ipa_modify_expr): Likewise. |
| (get_ssa_base_param): Likewise. |
| (ipa_get_adjustment_candidate): Likewise. |
| (index_in_adjustments_multiple_times_p): Likewise. |
| (ipa_combine_adjustments): Likewise. |
| (ipa_dump_param_adjustments): Likewise. |
| * tree-sra.c: Also include ipa-param-manipulation.h |
| * omp-simd-clone.c: Include ipa-param-manipulation.h instead of |
| ipa-param.h. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_masked_store): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_align_stack_vars): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_variable_length): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_unaligned_possible): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_element_align_preferred): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document |
| previously undocumented selectors. |
| (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/rtl.texi (const_vector): Say that elements can be |
| const_wide_ints too. |
| * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare. |
| * emit-rtl.c (valid_for_const_vec_duplicate_p): New function. |
| (gen_vec_duplicate): Use it instead of CONSTANT_P. |
| * optabs.c (expand_vector_broadcast): Likewise. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_address_cost): Try using a |
| scaled index even if the unscaled address was invalid. |
| Don't increase the complexity of using a scale in that case. |
| |
| 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/rtl.texi: Rewrite the subreg rules so that they partition |
| the inner register into REGMODE_NATURAL_SIZE bytes rather than |
| UNITS_PER_WORD bytes. |
| * emit-rtl.c (validate_subreg): Divide subregs into blocks |
| based on REGMODE_NATURAL_SIZE of the inner mode. |
| (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and |
| !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter. |
| * expmed.c (lowpart_bit_field_p): Divide the value up into |
| chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD. |
| * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test |
| whether something is likely to occupy more than one register. |
| |
| 2017-11-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/82879 |
| * ipa-inline-transform.c (update_noncloned_frequencies): Use |
| profile_count::adjust_for_ipa_scaling. |
| * tree-inline.c (copy_bb, copy_cfg_body): Likewise. |
| * profile-count.c (profile_count::adjust_for_ipa_scaling): New member |
| function. |
| * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare. |
| |
| 2017-11-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-store-merging.c (count_multiple_uses): New function. |
| (split_group): Add total_orig and total_new arguments, estimate the |
| number of statements related to the store group without store merging |
| and with store merging. |
| (imm_store_chain_info::output_merged_store): Adjust split_group |
| callers, punt if estimated number of statements with store merging |
| is not smaller than estimated number of statements without it. |
| Formatting fix. |
| (handled_load): Remove has_single_use checks. |
| (pass_store_merging::process_store): Likewise. |
| |
| 2017-11-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82902 |
| * tree-ssa-phiprop.c (propagate_with_phi): Test proper type. |
| |
| 2017-11-09 Martin Liska <mliska@suse.cz> |
| |
| PR target/82863 |
| * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to |
| uninitialized. |
| |
| 2017-11-09 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/82669 |
| * sbitmap.h (bmp_iter_set_init): Remove non needed check. |
| |
| 2017-11-09 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/48463 |
| * coverage.c (coverage_begin_function): Output also end locus |
| of a function and information whether the function is |
| artificial. |
| * gcov-dump.c (tag_function): Parse and print the information. |
| * gcov.c (INCLUDE_MAP): Add include. |
| (INCLUDE_SET): Likewise. |
| (struct line_info): Move earlier in the source file because |
| of vector<line_info> in function_info structure. |
| (line_info::line_info): Likewise. |
| (line_info::has_block): Likewise. |
| (struct source_info): Add new member index. |
| (source_info::get_functions_at_location): New function. |
| (function_info::group_line_p): New function. |
| (output_intermediate_line): New function. |
| (output_intermediate_file): Use the mentioned function. |
| (struct function_start): New. |
| (struct function_start_pair_hash): Likewise. |
| (process_file): Add code that identifies group functions. |
| Assign lines either to global or function scope. |
| (generate_results): Skip artificial functions. |
| (find_source): Assign index for each source file. |
| (read_graph_file): Read new flag artificial and end_line. |
| (add_line_counts): Assign it either to global of function scope. |
| (accumulate_line_counts): Isolate core of the function to |
| accumulate_line_info and call it for both function and global |
| scope lines. |
| (accumulate_line_info): New function. |
| (output_line_beginning): Fix GNU coding style. |
| (print_source_line): New function. |
| (output_line_details): Likewise. |
| (output_function_details): Likewise. |
| (output_lines): Iterate both source (global) scope and function |
| scope. |
| (struct function_line_start_cmp): New class. |
| * doc/gcov.texi: Reflect changes in documentation. |
| |
| 2017-11-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/82837 |
| * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT. |
| (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...))) |
| and similarly for not instead of neg. |
| |
| 2017-11-08 Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/i386.opt: Add -mforce-indirect-call. |
| * config/i386/predicates.md: Check for flag_force_indirect_call. |
| * doc/invoke.texi: Document -mforce-indirect-call |
| |
| 2017-11-08 Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p): |
| New extern. |
| (MOVE_RATIO): Use riscv_slow_unaligned_access_p. |
| config/riscv/riscv.c (predict.h): New include. |
| (riscv_slow_unaligned_access_p): No longer static. |
| (riscv_block_move_straight): Add require. |
| * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. |
| |
| 2017-11-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82855 |
| * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use |
| nonimmediate_operand predicate for operand 1 instead of |
| register_operand. |
| |
| 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>): |
| New pattern. |
| * config/aarch64/constraints.md (Uml): New constraint. |
| * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New |
| predicate. |
| |
| 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge |
| of two vec_duplicates into a vec_concat. |
| |
| 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): |
| Simplify vec_merge of vec_duplicate and vec_concat. |
| * config/aarch64/constraints.md (Utq): New constraint. |
| * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New |
| define_insn. |
| |
| 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): |
| Simplify vec_merge of vec_duplicate and const_vector. |
| * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero): |
| New predicate. |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC |
| mode iterator. Update predicate on operand 1 to |
| handle non-const_vec constants. Delete constraints. |
| (*aarch64_combinez_be<mode>): Likewise for operand 2. |
| |
| 2017-11-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78821 |
| * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p |
| data member. |
| (store_operand_info::store_operand_info): Initialize it to false. |
| (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use |
| ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each |
| store in the group, and if chain_info is non-NULL, to ignore altogether |
| that chain. |
| (compatible_load_p): Fail if bit_not_p does not match. |
| (imm_store_chain_info::output_merged_store): Handle bit_not_p loads. |
| (handled_load): Fill in bit_not_p. Handle BIT_NOT_EXPR. |
| (pass_store_merging::process_store): Adjust |
| terminate_all_aliasing_chains calls to pass NULL in all current spots, |
| call terminate_all_aliasing_chains newly when adding a store into |
| a chain with non-NULL chain_info. |
| |
| 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic. |
| |
| 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_frame_pointer_required) |
| Remove. |
| (aarch64_layout_frame): Initialise emit_frame_chain. |
| (aarch64_can_eliminate): Remove omit leaf frame pointer code. |
| (TARGET_FRAME_POINTER_REQUIRED): Remove define. |
| |
| 2017-11-08 Martin Liska <mliska@suse.cz> |
| |
| * gimplify.c (expand_FALLTHROUGH_r): Simplify usage |
| of gimple_call_internal_p. |
| |
| 2017-11-07 Tom de Vries <tom@codesourcery.com> |
| |
| * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)". |
| |
| 2017-11-07 Tom de Vries <tom@codesourcery.com> |
| |
| * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after |
| "do {} while (0)". |
| |
| 2017-11-08 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/82792 |
| * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK. |
| |
| 2017-11-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-pretty-print.c (dump_profile): Return "" instead of NULL. |
| |
| 2017-11-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82855 |
| * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator. |
| (*cmp<mode>_ccz_1): New insn with $k alternative. |
| |
| PR target/82855 |
| * config/i386/i386.c (ix86_swap_binary_operands_p): Treat |
| RTX_COMM_COMPARE as commutative as well. |
| (ix86_binary_operator_ok): Formatting fix. |
| * config/i386/sse.md (*mul<mode>3<mask_name><round_name>, |
| *<code><mode>3<mask_name><round_saeonly_name>, |
| *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>, |
| *<s>mul<mode>3_highpart<mask_name>, |
| *vec_widen_umult_even_v16si<mask_name>, |
| *vec_widen_umult_even_v8si<mask_name>, |
| *vec_widen_umult_even_v4si<mask_name>, |
| *vec_widen_smult_even_v16si<mask_name>, |
| *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>, |
| *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>, |
| *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>, |
| *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3, |
| *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3, |
| *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>, |
| *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>, |
| *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use |
| !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of |
| ix86_binary_operator_ok. Formatting fixes. |
| (*<plusminus_insn><mode>3<mask_name><round_name>, |
| *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting |
| fixes. |
| |
| 2017-11-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (GPR2): New mode_iterator. |
| ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for |
| eq and ne if TARGET_ISEL. |
| (cmp): New code_iterator. |
| (UNS, UNSU_, UNSIK): New code_attrs. |
| (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split. |
| ("eq<mode>3"): New define_expand, rename the define_insn_and_split |
| to... |
| ("eq<mode>3"): ... this. |
| ("ne<mode>3"): New define_expand, rename the define_insn_and_split |
| to... |
| ("ne<mode>3"): ... this. |
| |
| 2017-11-07 Julia Koval <julia.koval@intel.com> |
| |
| PR target/82812 |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag. |
| (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Ditto. |
| * config/i386/i386.opt: Ditto. |
| * config/i386/i386.c (ix86_target_string): Ditto. |
| (ix86_option_override_internal): Ditto. |
| (ix86_init_mpx_builtins): Move MPX to args2. |
| (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI. |
| * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi, |
| __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, |
| __builtin_ia32_vgf2p8affineinvqb_v32qi, |
| __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, |
| __builtin_ia32_vgf2p8affineinvqb_v16qi, |
| __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array. |
| |
| 2017-11-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80425 |
| * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r) |
| and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m). |
| (zero-extendsidi peephole2): Remove peephole. |
| |
| 2017-11-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c/53037 |
| * stor-layout.c: Include attribs.h. |
| (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with |
| explicit lookup of "aligned" attribute. |
| |
| 2017-11-07 Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype. |
| (riscv_expand_block_move): Likewise. |
| * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi |
| implementation. |
| (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define. |
| (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define. |
| * config/riscv/riscv.c (riscv_block_move_straight): New function. |
| (riscv_adjust_block_mem): Likewise. |
| (riscv_block_move_loop): Likewise. |
| (riscv_expand_block_move): Likewise. |
| * config/riscv/riscv.md (movmemsi): New pattern. |
| |
| 2017-11-07 Michael Clark <michaeljclark@mac.com> |
| |
| * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define. |
| (MUSL_DYNAMIC_LINKER): Likewise. |
| |
| 2017-11-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3) |
| (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of |
| nonmmory_operand. |
| |
| 2017-11-07 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Fix build. |
| |
| 2017-11-07 Wilco Dijkstra <wdijkstr@arm.com> |
| Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| PR tree-optimization/71026 |
| * match.pd: Canonicalize negate in division. |
| |
| 2017-11-07 Sudakshina Das <sudi.das@arm.com> |
| |
| PR middle-end/80131 |
| * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1. |
| |
| 2017-11-07 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b), |
| (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations. |
| |
| 2017-11-07 Marc Glisse <marc.glisse@inria.fr> |
| |
| * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle |
| non-scalar integral types. |
| * match.pd (negate_expr_p): Handle MINUS_EXPR. |
| (-(A-B), -(~A)): New transformations. |
| |
| 2017-11-07 Tom de Vries <tom@codesourcery.com> |
| |
| * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove |
| semicolon after "do {} while (0)". |
| * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| |
| 2017-11-07 Tom de Vries <tom@codesourcery.com> |
| |
| * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon |
| after "do {} while (0)". |
| * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. |
| |
| 2017-11-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/82784 |
| * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after |
| "while {} do (0)". |
| (arm_rtx_costs_internal): Add missing semicolon after |
| HANDLE_NARROW_SHIFT_ARITH call. |
| |
| 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't |
| disable isel if it was not set explicitly. |
| |
| 2017-11-06 James Bowman <james.bowman@ftdichip.com> |
| |
| * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers. |
| (add_type_attribute) likewise. |
| |
| 2017-11-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference |
| of struct ix86_frame. |
| (ix86_initial_elimination_offset): Likewise. |
| (ix86_expand_split_stack_prologue): Likewise. |
| |
| 2017-11-06 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree-vrp.h (enum value_range_type): Update stale comment. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm) |
| (aarch64_expand_vec_perm_const): Take the number of units too. |
| * config/aarch64/aarch64.c (aarch64_expand_vec_perm) |
| (aarch64_expand_vec_perm_const): Likewise. |
| * config/aarch64/aarch64-simd.md (vec_perm_const<mode>) |
| (vec_perm<mode>): Update accordingly. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half): |
| Take the number of units too. |
| * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise. |
| (aarch64_simd_check_vect_par_cnst_half): Update call accordingly, |
| but check for a vector mode before rather than after the call. |
| * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) |
| (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>) |
| (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>) |
| (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>) |
| (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>) |
| (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3) |
| (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>) |
| (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>) |
| (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>) |
| (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>) |
| (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>) |
| (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>) |
| (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>) |
| (aarch64_sqdmull2_n<mode>): Update accordingly. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take |
| the number of units too. |
| * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise. |
| * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>) |
| (vec_store_lanesoi<mode>, vec_load_lanesci<mode>) |
| (vec_store_lanesci<mode>, vec_load_lanesxi<mode>) |
| (vec_store_lanesxi<mode>): Update accordingly. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare. |
| * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function. |
| * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number |
| of units rather than the mode. |
| * config/aarch64/iterators.md (nunits): New mode attribute. |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): |
| Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...). |
| * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>) |
| (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>) |
| (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. |
| (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise. |
| (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>) |
| (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>) |
| (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise. |
| (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise. |
| (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. |
| (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise. |
| (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise. |
| (reduc_<maxmin_uns>_scal_<mode>): Likewise. |
| (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. |
| (*aarch64_get_lane_zero_extendsi<mode>): Likewise. |
| (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>) |
| (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise. |
| (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>) |
| (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise. |
| (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise. |
| (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise. |
| (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise. |
| (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. |
| (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise. |
| (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise. |
| (aarch64_sqdmull2_lane<mode>_internal): Likewise. |
| (aarch64_sqdmull2_laneq<mode>_internal): Likewise. |
| (aarch64_vec_load_lanesoi_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesoi_lane<mode>): Likewise. |
| (aarch64_vec_load_lanesci_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesci_lane<mode>): Likewise. |
| (aarch64_vec_load_lanesxi_lane<mode>): Likewise. |
| (aarch64_vec_store_lanesxi_lane<mode>): Likewise. |
| (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N. |
| (aarch64_simd_vec_setv2di): Likewise. |
| |
| 2017-11-06 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 |
| definitions. |
| (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions. |
| * config/rs6000/altivec.h (vec_revb): Change the #define from power 9 |
| to power 8. |
| * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new |
| extern declaration. |
| * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function. |
| * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1): |
| Add power 8 macro expansions. |
| (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion. |
| * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate |
| power 8 instructions. (VSX_XXBR): Add iterator. |
| |
| 2017-11-06 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.md (predicable_short_it): Change default to "no", |
| improve documentation, remove uses that are identical to the default. |
| (enabled_for_depr_it): Rename to enabled_for_short_it. |
| * gcc/config/arm/arm-fixed.md (predicable_short_it): |
| Remove default uses. |
| * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise. |
| * gcc/config/arm/sync.md (predicable_short_it): Likewise. |
| * gcc/config/arm/thumb2.md (predicable_short_it): Likewise. |
| * gcc/config/arm/vfp.md (predicable_short_it): Likewise. |
| |
| 2017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/82748 |
| * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete |
| float128 helper macros, which are no longer used after deleting |
| the old 'q' built-in functions, and moving the round to odd |
| built-in functions to being special built-in functions. |
| (BU_FLOAT128_2): Likewise. |
| (BU_FLOAT128_1_HW): Likewise. |
| (BU_FLOAT128_2_HW): Likewise. |
| (BU_FLOAT128_3_HW): Likewise. |
| (FABSQ): Delete old 'q' built-in functions. |
| (COPYSIGNQ): Likewise. |
| (SQRTF128_ODD): Move round to odd built-in functions to be |
| special built-in functions, so that we can handle |
| -mabi=ieeelongdouble. |
| (TRUNCF128_ODD): Likewise. |
| (ADDF128_ODD): Likewise. |
| (SUBF128_ODD): Likewise. |
| (MULF128_ODD): Likewise. |
| (DIVF128_ODD): Likewise. |
| (FMAF128_ODD): Likewise. |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q' |
| built-in names to 'f128'. |
| * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the |
| old 'q' built-in functions, as the machine independent code for |
| 'f128' built-in functions handles this. |
| (rs6000_expand_builtin): Add expansion for float128 round to odd |
| functions, keying off on -mabi=ieeelongdouble of whether to use |
| the KFmode or TFmode variant. |
| (rs6000_init_builtins): Initialize the _Float128 round to odd |
| built-in functions. |
| * doc/extend.texi (PowerPC Built-in Functions): Document the old |
| _Float128 'q' built-in functions are now mapped into the new |
| 'f128' built-in functions. |
| |
| 2017-11-06 David Edelsohn <dje.gcc@gmail.com> |
| |
| * collect2.c (add_lto_object): Compile for OBJECT_COFF. |
| (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects. |
| |
| 2017-11-06 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/82826 |
| * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function. |
| * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl. |
| * toplev.c: Include "ipa-fnsummary.h". |
| (toplev::finalize): Call ipa_fnsummary_c_finalize. |
| |
| 2017-11-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82838 |
| * gimple-ssa-store-merging.c |
| (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1 |
| on a separate gimple_seq which is then appended to seq. |
| |
| 2017-11-06 Jeff Law <law@redhat.com> |
| |
| PR target/82788 |
| * config/i386/i386.c (PROBE_INTERVAL): Remove. |
| (get_probe_interval): New functions. |
| (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval. |
| (ix86_adjust_stack_and_probe): Likewise. |
| (output_adjust_stack_and_probe): Likewise. |
| (ix86_emit_probe_stack_range): Likewise. |
| (ix86_expand_prologue): Likewise. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/82816 |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Return false |
| if the modes of the two types are the same. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to |
| p9_vadu<mode>3. |
| (usadv16qi): New define_expand. |
| (usadv8hi): New define_expand. |
| |
| 2017-11-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/82832 |
| * ipa-inline-transform.c (update_noncloned_frequencies): Always |
| scale. |
| (inline_transform): Likewise. |
| * predict.c (counts_to_freqs): Remove useless conditional. |
| * profile-count.h (profile_count::apply_scale): Move sanity check. |
| * tree-inline.c (copy_bb): Always scale. |
| (copy_cfg_body): Likewise. |
| |
| 2017-11-06 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/67591 |
| * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it |
| attribute. |
| (*cmp_ite0): Add enabled_for_depr_it attribute. |
| (*cmp_ite1): Likewise. |
| |
| 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and |
| TYPE_MFCRF. |
| |
| 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vrp.c (vrp_int_const_binop): Return true on success and |
| return the value by pointer. |
| (extract_range_from_multiplicative_op_1): Update accordingly. |
| Return as soon as an operation fails. |
| |
| 2017-11-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/82784 |
| * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ... |
| (DEF_SANITIZER_BUILTIN): ... here. |
| (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of |
| DEF_SANITIZER_BUILTIN in if stmt. Add missing semicolon. |
| |
| 2017-11-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/82784 |
| * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after |
| macro body. |
| (ASM_OUTPUT_CASE_LABEL): Add semicolon after |
| ASM_OUTPUT_BEFORE_CASE_LABEL call. |
| * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon |
| after macro body. |
| * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. |
| * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. |
| * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. |
| |
| 2017-11-05 Tom de Vries <tom@codesourcery.com> |
| |
| PR other/82784 |
| * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after |
| "do {} while (0)". |
| |
| 2017-11-04 Michael Clark <michaeljclark@mac.com> |
| |
| * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format. |
| config/riscv/riscv.md (addsi3): Use 'i' for immediates. |
| (adddi3): Likewise. |
| (*addsi3_extended): Likewise. |
| (*addsi3_extended2): Likewise. |
| (<optab>si3): Likewise. |
| (<optab>di3): Likewise. |
| (<optab><mode>3): Likewise. |
| (<*optabe>si3_internal): Likewise. |
| (zero_extendqi<SUPERQI:mode>2): Likewise. |
| (*add<mode>hi3): Likewise. |
| (*xor<mode>hi3): Likewise. |
| (<optab>di3): Likewise. |
| (*<optab>si3_extend): Likewise. |
| (*sge<u>_<X:mode><GPR:mode>): Likewise. |
| (*slt<u>_<X:mode><GPR:mode>): Likewise. |
| (*sle<u>_<X:mode><GPR:mode>): Likewise. |
| |
| 2017-11-04 Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_option_override): Conditionally set |
| TARGET_STRICT_ALIGN based upon -mtune argument. |
| |
| 2017-11-04 Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1. |
| |
| 2017-11-04 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.c (choose_basereg): Use optional scratch |
| register and add assertion. |
| (x86_emit_outlined_ms2sysv_save): Use scratch register when |
| needed, and don't allocate stack. |
| (ix86_expand_prologue): Rearrange where SSE saves/stub call is |
| emitted, correct wrong allocation with -mcall-ms2sysv-xlogues. |
| (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets. |
| |
| 2017-11-03 Jeff Law <law@redhat.com> |
| |
| * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype. |
| (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence |
| to probe at the start of a noreturn function. |
| |
| 2017-11-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78821 |
| * gimple-ssa-store-merging.c: Update the file comment. |
| (MAX_STORE_ALIAS_CHECKS): Define. |
| (struct store_operand_info): New type. |
| (store_operand_info::store_operand_info): New constructor. |
| (struct store_immediate_info): Add rhs_code and ops data members. |
| (store_immediate_info::store_immediate_info): Add rhscode, op0r |
| and op1r arguments to the ctor, initialize corresponding data members. |
| (struct merged_store_group): Add load_align_base and load_align |
| data members. |
| (merged_store_group::merged_store_group): Initialize them. |
| (merged_store_group::do_merge): Update them. |
| (merged_store_group::apply_stores): Pick the constant for |
| encode_tree_to_bitpos from one of the two operands, or skip |
| encode_tree_to_bitpos if neither operand is a constant. |
| (class pass_store_merging): Add process_store method decl. Remove |
| bool argument from terminate_all_aliasing_chains method decl. |
| (pass_store_merging::terminate_all_aliasing_chains): Remove |
| var_offset_p argument and corresponding handling. |
| (stmts_may_clobber_ref_p): New function. |
| (compatible_load_p): New function. |
| (imm_store_chain_info::coalesce_immediate_stores): Terminate group |
| if there is overlap and rhs_code is not INTEGER_CST. For |
| non-overlapping stores terminate group if rhs is not mergeable. |
| (get_alias_type_for_stmts): Change first argument from |
| auto_vec<gimple *> & to vec<gimple *> &. Add IS_LOAD, CLIQUEP and |
| BASEP arguments. If IS_LOAD is true, look at rhs1 of the stmts |
| instead of lhs. Compute *CLIQUEP and *BASEP in addition to the |
| alias type. |
| (get_location_for_stmts): Change first argument from |
| auto_vec<gimple *> & to vec<gimple *> &. |
| (struct split_store): Remove orig_stmts data member, add orig_stores. |
| (split_store::split_store): Create orig_stores rather than orig_stmts. |
| (find_constituent_stmts): Renamed to ... |
| (find_constituent_stores): ... this. Change second argument from |
| vec<gimple *> * to vec<store_immediate_info *> *, push pointers |
| to info structures rather than the statements. |
| (split_group): Rename ALLOW_UNALIGNED argument to |
| ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle |
| it. Adjust find_constituent_stores caller. |
| (imm_store_chain_info::output_merged_store): Handle rhs_code other |
| than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and |
| get_location_for_stmts callers. Set MR_DEPENDENCE_CLIQUE and |
| MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores. |
| (mem_valid_for_store_merging): New function. |
| (handled_load): New function. |
| (pass_store_merging::process_store): New method. |
| (pass_store_merging::execute): Use process_store method. Adjust |
| terminate_all_aliasing_chains caller. |
| |
| 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): |
| Return true for more constants, symbols and label references. |
| (aarch64_valid_floating_const): Remove unused function. |
| |
| 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/82786 |
| * config/aarch64/aarch64.c (aarch64_layout_frame): |
| Undo forcing of LR at bottom of frame. |
| |
| 2017-11-03 Jeff Law <law@redhat.com> |
| |
| PR target/82823 |
| * config/i386/i386.c (ix86_expand_prologue): Tighten assert |
| for int_registers_saved. |
| |
| * cfganal.c (single_pred_edge_ignoring_loop_edges): New function |
| extracted from tree-ssa-dom.c. |
| * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype. |
| * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove. |
| (record_equivalences_from_incoming_edge): Add additional argument |
| to single_pred_edge_ignoring_loop_edges call. |
| * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove. |
| (uncprop_dom_walker::before_dom_children): Add additional argument |
| to single_pred_edge_ignoring_loop_edges call. |
| * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use |
| single_pred_edge_ignoring_loop_edges rather than open coding. |
| * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly. |
| |
| 2017-11-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (-(-A)): Rewrite. |
| |
| 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete. |
| (rs6000_emit_int_cmove): New declaration. |
| * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration. |
| (rs6000_emit_sISEL): Delete. |
| (rs6000_emit_int_cmove): Make non-static. |
| * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove |
| instead of rs6000_emit_sISEL. |
| |
| 2017-11-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * asan.c (create_cond_insert_point): Maintain profile. |
| * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are |
| merged. |
| * basic-block.h (struct basic_block_def): Remove frequency. |
| (EDGE_FREQUENCY): Use to_frequency |
| * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global |
| heuristics. |
| (find_traces): Update to use to_frequency. |
| (find_traces_1_round): Likewise; use only IPA counts. |
| (bb_to_key): Likewise. |
| (connect_traces): Use IPA counts only. |
| (copy_bb_p): Update to use to_frequency. |
| (fix_up_crossing_landing_pad): Likewise. |
| (sanitize_hot_paths): Likewise. |
| * bt-load.c (basic_block_freq): Likewise. |
| * cfg.c (init_flow): Set count_max to uninitialized. |
| (check_bb_profile): Remove frequencies; check counts. |
| (dump_bb_info): Do not dump frequencies. |
| (update_bb_profile_for_threading): Update counts only. |
| (scale_bbs_frequencies_int): Likewise. |
| (MAX_SAFE_MULTIPLIER): Remove. |
| (scale_bbs_frequencies_gcov_type): Update counts only. |
| (scale_bbs_frequencies_profile_count): Update counts only. |
| (scale_bbs_frequencies): Update counts only. |
| * cfg.h (struct control_flow_graph): Add count-max. |
| (update_bb_profile_for_threading): Update prototype. |
| * cfgbuild.c (find_bb_boundaries): Do not update frequencies. |
| (find_many_sub_basic_blocks): Likewise. |
| * cfgcleanup.c (try_forward_edges): Likewise. |
| (try_crossjump_to_edge): Likewise. |
| * cfgexpand.c (expand_gimple_cond): Likewise. |
| (expand_gimple_tailcall): Likewise. |
| (construct_init_block): Likewise. |
| (construct_exit_block): Likewise. |
| * cfghooks.c (verify_flow_info): Check consistency of counts. |
| (dump_bb_for_graph): Do not dump frequencies. |
| (split_block_1): Do not update frequencies. |
| (split_edge): Do not update frequencies. |
| (make_forwarder_block): Do not update frequencies. |
| (duplicate_block): Do not update frequencies. |
| (account_profile_record): Do not update frequencies. |
| * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts |
| for global heuristics. |
| * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency. |
| (expected_loop_iterations_unbounded): Use counts only. |
| * cfgloopmanip.c (scale_loop_profile): Simplify. |
| (create_empty_loop_on_edge): Simplify |
| (loopify): Simplify |
| (duplicate_loop_to_header_edge): Simplify |
| * cfgrtl.c (force_nonfallthru_and_redirect): Update profile. |
| (update_br_prob_note): Take care of removing note when profile |
| becomes undefined. |
| (relink_block_chain): Do not dump frequency. |
| (rtl_account_profile_record): Use to_frequency. |
| * cgraph.c (symbol_table::create_edge): Convert count to ipa count. |
| (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count. |
| (cgraph_update_edges_for_call_stmt_node): Likewise. |
| (cgraph_edge::verify_count_and_frequency): Update. |
| (cgraph_node::verify_node): Temporarily disable frequency verification. |
| * cgraphbuild.c (compute_call_stmt_bb_frequency): Use |
| to_cgraph_frequency. |
| (cgraph_edge::rebuild_edges): Convert to ipa counts. |
| * cgraphunit.c (init_lowered_empty_function): Do not initialize |
| frequencies. |
| (cgraph_node::expand_thunk): Update profile. |
| * except.c (dw2_build_landing_pads): Do not update frequency. |
| * final.c (compute_alignments): Use to_frequency. |
| (dump_basic_block_info): Do not dump frequency. |
| * gimple-pretty-print.c (dump_profile): Do not dump frequency. |
| (dump_gimple_bb_header): Do not dump frequency. |
| * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency; |
| do update count. |
| * gimple-streamer-in.c (input_bb): Do not stream frequency. |
| * gimple-streamer-out.c (output_bb): Do not stream frequency. |
| * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency. |
| (init_before_recovery): Do not update frequency. |
| (sched_create_recovery_edges): Do not update frequency. |
| * hsa-gen.c (convert_switch_statements): Do not update frequency. |
| * ipa-cp.c (ipcp_propagate_stage): Update search for max_count. |
| (ipa_cp_c_finalize): Set max_count to uninitialized. |
| * ipa-fnsummary.c (get_minimal_bb): Use counts. |
| (param_change_prob): Use counts. |
| * ipa-profile.c (ipa_profile_generate_summary): Do not summarize |
| local profiles. |
| * ipa-split.c (consider_split): Use to_frequency. |
| (split_function): Use to_frequency. |
| * ira-build.c (loop_compare_func): Likewise. |
| (mark_loops_for_removal): Likewise. |
| (mark_all_loops_for_removal): Likewise. |
| * loop-doloop.c (doloop_modify): Do not update frequency. |
| * loop-unroll.c (unroll_loop_runtime_iterations): Do not update |
| frequency. |
| * lto-streamer-in.c (input_function): Update count_max. |
| * omp-expand.c (expand_omp_taskreg): Update count_max. |
| * omp-simd-clone.c (simd_clone_adjust): Update profile. |
| * predict.c (maybe_hot_frequency_p): Use to_frequency. |
| (maybe_hot_count_p): Use ipa counts only. |
| (maybe_hot_bb_p): Simplify. |
| (maybe_hot_edge_p): Simplify. |
| (probably_never_executed): Do not take frequency argument. |
| (probably_never_executed_bb_p): Do not pass frequency. |
| (probably_never_executed_edge_p): Likewise. |
| (combine_predictions_for_bb): Check that profile is nonzero. |
| (propagate_freq): Do not set frequency. |
| (drop_profile): Simplify. |
| (counts_to_freqs): Simplify. |
| (expensive_function_p): Use to_frequency. |
| (propagate_unlikely_bbs_forward): Simplify. |
| (determine_unlikely_bbs): Simplify. |
| (estimate_bb_frequencies): Add hack to silence graphite issues. |
| (compute_function_frequency): Use ipa counts. |
| (pass_profile::execute): Update. |
| (rebuild_frequencies): Use counts only. |
| (force_edge_cold): Use counts only. |
| * profile-count.c (profile_count::dump): Dump new count types. |
| (profile_count::differs_from_p): Check compatiblity. |
| (profile_count::to_frequency): New function. |
| (profile_count::to_cgraph_frequency): New function. |
| * profile-count.h (struct function): Declare. |
| (enum profile_quality): Add profile_guessed_local and |
| profile_guessed_global0. |
| (class profile_proability): Decrease number of bits to 29; |
| update from_reg_br_prob_note and to_reg_br_prob_note. |
| (class profile_count: Update comment; decrease number of bits |
| to 61. Check compatibility. |
| (profile_count::compatible_p): New private member function. |
| (profile_count::ipa_p): New member function. |
| (profile_count::operator<): Handle global zero correctly. |
| (profile_count::operator>): Handle global zero correctly. |
| (profile_count::operator<=): Handle global zero correctly. |
| (profile_count::operator>=): Handle global zero correctly. |
| (profile_count::nonzero_p): New member function. |
| (profile_count::force_nonzero): New member function. |
| (profile_count::max): New member function. |
| (profile_count::apply_scale): Handle IPA scalling. |
| (profile_count::guessed_local): New member function. |
| (profile_count::global0): New member function. |
| (profile_count::ipa): New member function. |
| (profile_count::to_frequency): Declare. |
| (profile_count::to_cgraph_frequency): Declare. |
| * profile.c (OVERLAP_BASE): Delete. |
| (compute_frequency_overlap): Delete. |
| (compute_branch_probabilities): Do not use compute_frequency_overlap. |
| * regs.h (REG_FREQ_FROM_BB): Use to_frequency. |
| * sched-ebb.c (rank): Use counts only. |
| * shrink-wrap.c (handle_simple_exit): Use counts only. |
| (try_shrink_wrapping): Use counts only. |
| (place_prologue_for_one_component): Use counts only. |
| * tracer.c (find_best_predecessor): Use to_frequency. |
| (find_trace): Use to_frequency. |
| (tail_duplicate): Use to_frequency. |
| * trans-mem.c (expand_transaction): Do not update frequency. |
| * tree-call-cdce.c: Do not update frequency. |
| * tree-cfg.c (gimple_find_sub_bbs): Likewise. |
| (gimple_merge_blocks): Likewise. |
| (gimple_split_edge): Likewise. |
| (gimple_duplicate_sese_region): Likewise. |
| (gimple_duplicate_sese_tail): Likewise. |
| (move_sese_region_to_fn): Likewise. |
| (gimple_account_profile_record): Likewise. |
| (insert_cond_bb): Likewise. |
| * tree-complex.c (expand_complex_div_wide): Likewise. |
| * tree-eh.c (lower_resx): Update profile. |
| * tree-inline.c (copy_bb): Simplify count scaling; do not scale |
| frequencies. |
| (initialize_cfun): Do not initialize frequencies |
| (freqs_to_counts): Delete. |
| (copy_cfg_body): Ignore count parameter. |
| (copy_body): Update. |
| (expand_call_inline): Update count_max. |
| (optimize_inline_calls): Update count_max. |
| (tree_function_versioning): Update count_max. |
| * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency. |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update |
| frequency. |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only. |
| * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency. |
| (try_peel_loop): Likewise. |
| * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use |
| to_frequency. |
| * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1. |
| (tree_transform_and_unroll_loop): Do not use frequencies |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): |
| Use reliable prediction only. |
| * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies. |
| * tree-ssa-sink.c (select_best_block): Use to_frequency. |
| * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable |
| probability scaling. |
| * tree-ssa-threadupdate.c (create_block_for_threading): Do |
| not update frequency |
| (any_remaining_duplicated_blocks): Likewise. |
| (update_profile): Likewise. |
| (estimated_freqs_path): Delete. |
| (freqs_to_counts_path): Delete. |
| (clear_counts_path): Delete. |
| (ssa_fix_duplicate_block_edges): Likewise. |
| (duplicate_thread_path): Likewise. |
| * tree-switch-conversion.c (gen_inbound_check): Use counts. |
| * tree-tailcall.c (decrease_profile): Do not update frequency. |
| (eliminate_tail_call): Likewise. |
| * tree-vect-loop-manip.c (vect_do_peeling): Likewise. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise. |
| (optimize_mask_stores): Likewise. |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. |
| * ubsan.c (ubsan_expand_null_ifn): Update profile. |
| (ubsan_expand_ptr_ifn): Update profile. |
| * value-prof.c (gimple_ic): Simplify. |
| * value-prof.h (gimple_ic): Update prototype. |
| * ipa-inline-transform.c (inline_transform): Fix scaling conditoins. |
| * ipa-inline.c (compute_uninlined_call_time): Be sure that |
| counts are nonzero. |
| (want_inline_self_recursive_call_p): Likewise. |
| (resolve_noninline_speculation): Only cummulate defined counts. |
| (inline_small_functions): Use nonzero_p. |
| (ipa_inline): Do not access freed node. |
| |
| 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL. |
| |
| 2017-11-03 Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/riscv/riscv.c (riscv_legitimize_move): Handle |
| non-legitimate address. |
| |
| 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*lt0_disi): Delete. |
| (*lt0_<mode>di, *lt0_<mode>si): New. |
| |
| 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to |
| TARGET_PAIRED_FLOAT. |
| |
| 2017-11-03 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org> |
| Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/aarch64/aarch64-cores.def (saphira): New CPU. |
| * config/aarch64/aarch64-tune.md: Regenerated. |
| * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira". |
| * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table. |
| |
| 2017-11-03 Cupertino Miranda <cmiranda@synopsys.com> |
| |
| * config/arc/arc.c (arc_save_restore): Corrected CFA note. |
| (arc_expand_prologue): Restore blink for millicode. |
| * config/arc/linux.h (LINK_EH_SPEC): Defined. |
| |
| 2017-11-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR target/82809 |
| * config/i386/i386.c (ix86_vector_duplicate_value): Use |
| gen_vec_duplicate after forcing the scalar into a register. |
| |
| 2017-11-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine (try_combine): Print the insns input to try_combine to the |
| dump file. |
| |
| 2017-11-02 Steve Ellcey <sellcey@cavium.com> |
| |
| PR target/79868 |
| * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): |
| Remove second argument from aarch64_process_target_attr call. |
| * config/aarch64/aarch64-protos.h (aarch64_process_target_attr): |
| Ditto. |
| * config/aarch64/aarch64.c (aarch64_attribute_info): Change |
| field type. |
| (aarch64_handle_attr_arch): Remove second argument. |
| (aarch64_handle_attr_cpu): Ditto. |
| (aarch64_handle_attr_tune): Ditto. |
| (aarch64_handle_attr_isa_flags): Ditto. |
| (aarch64_process_one_target_attr): Ditto. |
| (aarch64_process_target_attr): Ditto. |
| (aarch64_option_valid_attribute_p): Remove second argument. |
| on aarch64_process_target_attr call. |
| |
| 2017-11-02 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c: Include "selftest-diagnostic.h". |
| (selftest::assert_location_text): New function. |
| (selftest::test_diagnostic_get_location_text): New function. |
| (selftest::diagnostic_c_tests): Call it. |
| |
| 2017-11-02 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o. |
| * diagnostic-show-locus.c: Include "selftest-diagnostic.h". |
| (class selftest::test_diagnostic_context): Move to... |
| * selftest-diagnostic.c: New file. |
| * selftest-diagnostic.h: New file. |
| |
| 2017-11-02 James Bowman <james.bowman@ftdichip.com> |
| |
| * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase |
| offset range for FT32B. |
| * config/ft32/ft32.h: option "mcompress" enables relaxation. |
| * config/ft32/ft32.md: Add TARGET_NOPM. |
| * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm. |
| * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm. |
| |
| 2017-11-02 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define. |
| |
| 2017-11-02 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove |
| virtual keyword on FINAL OVERRIDE members. |
| |
| * tree-ssa-propagate.h (ssa_propagation_engine): Group |
| virtuals together. Add virtual destructor. |
| (substitute_and_fold_engine): Similarly. |
| |
| 2017-11-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+. |
| |
| 2017-11-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82795 |
| * tree-if-conv.c (predicate_mem_writes): Remove bogus assert. |
| |
| 2017-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require |
| gcc_SUN_LD_VERSION. |
| (gcc_GAS_CHECK_FEATURE): Remove. |
| * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from |
| gcc_AC_INITFINI_ARRAY here. Update for Solaris 11.4 changes. |
| * configure: Regenerate. |
| |
| 2017-11-02 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (hwloop_optimize): Account for empty |
| body loops. |
| |
| 2017-11-02 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/82765 |
| * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT. |
| Truncate ARRAY_REF index and element size. |
| |
| 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB". |
| |
| 2017-11-01 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-ccp.c (ccp_folder): New class derived from |
| substitute_and_fold_engine. |
| (ccp_folder::get_value): New member function. |
| (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt. |
| (ccp_fold_stmt): Remove prototype. |
| (ccp_finalize): Call substitute_and_fold from the ccp_class. |
| * tree-ssa-copy.c (copy_folder): New class derived from |
| substitute_and_fold_engine. |
| (copy_folder::get_value): Renamed from get_value. |
| (fini_copy_prop): Call substitute_and_fold from copy_folder class. |
| * tree-vrp.c (vrp_folder): New class derived from |
| substitute_and_fold_engine. |
| (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt. |
| (vrp_folder::get_value): New member function. |
| (vrp_finalize): Call substitute_and_fold from vrp_folder class. |
| (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in. |
| * tree-ssa-propagate.h (substitute_and_fold_engine): New class to |
| provide a class interface to folder/substitute routines. |
| (ssa_prop_fold_stmt_fn): Remove typedef. |
| (ssa_prop_get_value_fn): Likewise. |
| (subsitute_and_fold): Remove prototype. |
| (replace_uses_in): Likewise. |
| * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): |
| Renamed from replace_uses_in. Call the virtual member function |
| (substitute_and_fold_engine::replace_phi_args_in): Similarly. |
| (substitute_and_fold_dom_walker): Remove initialization of |
| data member entries for calbacks. Add substitute_and_fold_engine |
| member and initialize it. |
| (substitute_and_fold_dom_walker::before_dom_children0: Use the |
| member functions for get_value, replace_phi_args_in c |
| replace_uses_in, and fold_stmt calls. |
| (substitute_and_fold_engine::substitute_and_fold): Renamed from |
| substitute_and_fold. Remove assert. Update ctor call. |
| |
| * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef. |
| (ssa_prop_visit_phi_fn): Likewise. |
| (class ssa_propagation_engine): New class to provide an interface |
| into ssa_propagate. |
| * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped |
| variable. |
| (ssa_prop_visit_phi): Likewise. |
| (ssa_propagation_engine::simulate_stmt): Moved into class. |
| Call visit_phi/visit_stmt from the class rather than via |
| file scoped static variables. |
| (ssa_propagation_engine::simulate_block): Moved into class. |
| (ssa_propagation_engine::process_ssa_edge_worklist): Similarly. |
| (ssa_propagation_engine::ssa_propagate): Similarly. No longer |
| set file scoped statics for the visit_stmt/visit_phi callbacks. |
| * tree-complex.c (complex_propagate): New class derived from |
| ssa_propagation_engine. |
| (complex_propagate::visit_stmt): Renamed from complex_visit_stmt. |
| (complex_propagate::visit_phi): Renamed from complex_visit_phi. |
| (tree_lower_complex): Call ssa_propagate via the complex_propagate |
| class. |
| * tree-ssa-ccp.c: (ccp_propagate): New class derived from |
| ssa_propagation_engine. |
| (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node. |
| (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt. |
| (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class. |
| * tree-ssa-copy.c (copy_prop): New class derived from |
| ssa_propagation_engine. |
| (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt. |
| (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node. |
| (execute_copy_prop): Call ssa_propagate from the copy_prop class. |
| * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine. |
| (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt. |
| (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node. |
| (execute_vrp): Call ssa_propagate from the vrp_prop class. |
| |
| 2017-11-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/82778 |
| PR rtl-optimization/82597 |
| * compare-elim.c (struct comparison): Add in_a_setter field. |
| (find_comparison_dom_walker::before_dom_children): Remove killed |
| bitmap and df_simulate_find_defs call, instead walk the defs. |
| Compute last_setter and initialize in_a_setter. Merge definitions |
| with first initialization for a few variables. |
| (try_validate_parallel): Use insn_invalid_p instead of |
| recog_memoized. Return insn rather than just the pattern. |
| (try_merge_compare): Fix up comment. Don't uselessly test if |
| in_a is a REG_P. Use cmp->in_a_setter instead of walking UD |
| chains. |
| (execute_compare_elim_after_reload): Remove df_chain_add_problem |
| call. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Use |
| aarch64_hard_regno_nregs to get the number of registers |
| in a mode. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/constraints.md (Upl): Rename to... |
| (Uaa): ...this. |
| * config/aarch64/aarch64.md |
| (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw): |
| Update accordingly. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_add_constant_internal) |
| (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move |
| earlier in file. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp) |
| (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev) |
| (aarch64_evpc_dup): Generate rtl direcly, rather than using |
| named expanders. |
| (aarch64_expand_vec_perm_const_1): Explicitly check for permutes |
| of a single element. |
| * config/aarch64/iterators.md: Add a comment above the permute |
| unspecs to say that they are generated directly by |
| aarch64_expand_vec_perm_const. |
| * config/aarch64/aarch64-simd.md: Likewise the permute instructions. |
| |
| 2017-11-01 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P. |
| |
| 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * doc/invoke.texi (RISC-V Options): Explicitly name the medlow |
| and medany code models, and describe what they do. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| Revert accidental duplicate: |
| |
| * combine.c (can_change_dest_mode): Reject changes in |
| REGMODE_NATURAL_SIZE. |
| |
| 2017-11-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/64682 |
| PR rtl-optimization/69567 |
| PR rtl-optimization/69737 |
| PR rtl-optimization/82683 |
| * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same |
| register mentioned in the note, drop the note, unless it came from I3, |
| in which case it should go to I3 again. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap |
| and return false if not. |
| (clear_bytes_written_by, live_bytes_read): Update accordingly. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-ssa-alias.h (ranges_overlap_p): Return false if either |
| range is known to be empty. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS |
| and CONST_VECTOR_NUNITS instead of computing the number of units from |
| the byte sizes of the vector and element. |
| (simplify_binary_operation_1): Likewise. |
| (simplify_const_binary_operation): Likewise. |
| (simplify_ternary_operation): Likewise. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * var-tracking.c (INT_MEM_OFFSET): Replace with... |
| (int_mem_offset): ...this new function. |
| (var_mem_set, var_mem_delete_and_set, var_mem_delete) |
| (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs) |
| (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset): |
| Update accordingly. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * lower-subreg.c (interesting_mode_p): New function. |
| (compute_costs, find_decomposable_subregs, decompose_register) |
| (simplify_subreg_concatn, can_decompose_p, resolve_simple_move) |
| (resolve_clobber, dump_choices): Use it. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * alias.c (find_base_value, find_base_term): Only process integer |
| truncations. Check the precision rather than the size. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (is_narrower_int_mode): New function |
| * optabs.c (expand_float, expand_fix): Use it. |
| * dwarf2out.c (rotate_loc_descriptor): Likewise. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (narrower_subreg_mode): New function. |
| * ira-color.c (update_costs_from_allocno): Use it. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs-query.h (convert_optab_p): New function, split out from... |
| (convert_optab_handler): ...here. |
| (widening_optab_handler): Delete. |
| (find_widening_optab_handler): Remove permit_non_widening parameter. |
| (find_widening_optab_handler_and_mode): Likewise. Provide an |
| override that operates on mode class wrappers. |
| * optabs-query.c (widening_optab_handler): Delete. |
| (find_widening_optab_handler_and_mode): Remove permit_non_widening |
| parameter. Assert that the two modes are the same class and that |
| the "from" mode is narrower than the "to" mode. Use |
| convert_optab_handler instead of widening_optab_handler. |
| * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler |
| instead of widening_optab_handler. |
| * expr.c (expand_expr_real_2): Update calls to |
| find_widening_optab_handler. |
| * optabs.c (expand_widen_pattern_expr): Likewise. |
| (expand_binop_directly): Take the insn_code as a parameter. |
| (expand_binop): Only call find_widening_optab_handler for |
| conversion optabs; use optab_handler otherwise. Update calls |
| to find_widening_optab_handler and expand_binop_directly. |
| Use convert_optab_handler instead of widening_optab_handler. |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to |
| find_widening_optab_handler and use scalar_mode rather than |
| machine_mode. |
| (convert_plusminus_to_widen): Likewise. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (fixed_size_mode): New class. |
| * rtl.h (get_pool_mode): Return fixed_size_mode. |
| * gengtype.c (main): Add fixed_size_mode. |
| * target.def (get_raw_result_mode): Return a fixed_size_mode. |
| (get_raw_arg_mode): Likewise. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode. |
| * targhooks.c (default_get_reg_raw_mode): Likewise. |
| * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise. |
| * config/mips/mips.c (mips_get_reg_raw_mode): Likewise. |
| * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise. |
| (msp430_get_raw_result_mode): Likewise. |
| * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode> |
| * dbxout.c (dbxout_parms): Require fixed-size modes. |
| * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise. |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. |
| * omp-low.c (lower_oacc_reductions): Likewise. |
| * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes. |
| (simplify_subreg): Update accordingly. |
| * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode. |
| (force_const_mem): Update accordingly. Return NULL_RTX for modes |
| that aren't fixed-size. |
| (get_pool_mode): Return a fixed_size_mode. |
| (output_constant_pool_2): Take a fixed_size_mode. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/rtl.texi (vec_series): Document. |
| (const): Say that the operand can be a vec_series. |
| * rtl.def (VEC_SERIES): New rtx code. |
| * rtl.h (const_vec_series_p_1): Declare. |
| (const_vec_series_p): New function. |
| * emit-rtl.h (gen_const_vec_series): Declare. |
| (gen_vec_series): Likewise. |
| * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series) |
| (gen_vec_series): Likewise. |
| * optabs.c (expand_mult_highpart): Use gen_const_vec_series. |
| * simplify-rtx.c (simplify_unary_operation): Handle negations |
| of vector series. |
| (simplify_binary_operation_series): New function. |
| (simplify_binary_operation_1): Use it. Handle VEC_SERIES. |
| (test_vector_ops_series): New function. |
| (test_vector_ops): Call it. |
| * config/powerpcspe/altivec.md (altivec_lvsl): Use |
| gen_const_vec_series. |
| (altivec_lvsr): Likewise. |
| * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * doc/rtl.texi (const): Update description of address constants. |
| Say that vector constants are allowed too. |
| * common.md (E, F): Use CONSTANT_P instead of checking for |
| CONST_VECTOR. |
| * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of |
| checking for CONST_VECTOR. |
| * expmed.c (make_tree): Use build_vector_from_val for a CONST |
| VEC_DUPLICATE. |
| * expr.c (expand_expr_real_2): Check for vector modes instead |
| of checking for CONST_VECTOR. |
| * rtl.h (const_vec_p): New function. |
| (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE. |
| (unwrap_const_vec_duplicate): Handle them here too. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| David Malcolm <dmalcolm@redhat.com> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (vec_duplicate_p): New function. |
| * selftest-rtl.c (assert_rtx_eq_at): New function. |
| * selftest-rtl.h (ASSERT_RTX_EQ): New macro. |
| (assert_rtx_eq_at): Declare. |
| * selftest.h (selftest::simplify_rtx_c_tests): Declare. |
| * selftest-run-tests.c (selftest::run_tests): Call it. |
| * simplify-rtx.c: Include selftest.h and selftest-rtl.h. |
| (simplify_unary_operation_1): Recursively handle vector duplicates. |
| (simplify_binary_operation_1): Likewise. Handle VEC_SELECTs of |
| vector duplicates. |
| (simplify_subreg): Handle subregs of vector duplicates. |
| (make_test_reg, test_vector_ops_duplicate, test_vector_ops) |
| (selftest::simplify_rtx_c_tests): New functions. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * emit-rtl.h (gen_const_vec_duplicate): Declare. |
| (gen_vec_duplicate): Likewise. |
| * emit-rtl.c (gen_const_vec_duplicate_1): New function, split |
| out from... |
| (gen_const_vector): ...here. |
| (gen_const_vec_duplicate, gen_vec_duplicate): New functions. |
| (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants |
| whose elements are all equal. |
| * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate. |
| * simplify-rtx.c (simplify_const_unary_operation): Likewise. |
| (simplify_relational_operation): Likewise. |
| * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): |
| Likewise. |
| (aarch64_simd_dup_constant): Use gen_vec_duplicate. |
| (aarch64_expand_vector_init): Likewise. |
| * config/arm/arm.c (neon_vdup_constant): Likewise. |
| (neon_expand_vector_init): Likewise. |
| (arm_expand_vec_perm): Use gen_const_vec_duplicate. |
| (arm_block_set_unaligned_vect): Likewise. |
| (arm_block_set_aligned_vect): Likewise. |
| * config/arm/neon.md (neon_copysignf<mode>): Likewise. |
| * config/i386/i386.c (ix86_expand_vec_perm): Likewise. |
| (expand_vec_perm_even_odd_pack): Likewise. |
| (ix86_vector_duplicate_value): Use gen_vec_duplicate. |
| * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX. |
| * config/ia64/ia64.c (ia64_expand_vecint_compare): Use |
| gen_const_vec_duplicate. |
| * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX. |
| * config/mips/mips.c (mips_gen_const_int_vector): Use |
| gen_const_vec_duplicate. |
| (mips_expand_vector_init): Use CONST0_RTX. |
| * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise. |
| (define_split): Use gen_const_vec_duplicate. |
| * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX. |
| (define_split): Use gen_const_vec_duplicate. |
| * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise. |
| (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise. |
| * config/spu/spu.c (spu_const): Likewise. |
| |
| 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (can_change_dest_mode): Reject changes in |
| REGMODE_NATURAL_SIZE. |
| |
| 2017-10-31 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * configure.ac (--enable-libssp): New. |
| (gcc_cv_libc_provides_ssp): Check for explicit setting before |
| trying to determine target-specific default. Adjust indentation. |
| * configure: Regenerated. |
| * doc/install.texi (Configuration): Expand --disable-libssp |
| documentation. |
| |
| 2017-10-31 Daniel Santos <daniel.santos@pobox.com> |
| |
| config/i386/i386.c (ix86_expand_epilogue): Correct stack |
| calculation. |
| |
| 2017-10-31 Martin Jambor <mjambor@suse.cz> |
| |
| PR c++/81702 |
| * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert. |
| |
| 2017-10-31 David Malcolm <dmalcolm@redhat.com> |
| |
| * auto-profile.c (autofdo_source_profile::read): Use |
| UNKNOWN_LOCATION rather than 0. |
| * diagnostic-core.h (warning_at_rich_loc): Rename to... |
| (warning_at): ...this overload. |
| (warning_at_rich_loc_n): Rename to... |
| (warning_n): ...this overload. |
| (error_at_rich_loc): Rename to... |
| (error_at): ...this overload. |
| (pedwarn_at_rich_loc): Rename to... |
| (pedwarn): ...this overload. |
| (permerror_at_rich_loc): Rename to... |
| (permerror): ...this overload. |
| (inform_at_rich_loc): Rename to... |
| (inform): ...this overload. |
| * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl. |
| (diagnostic_n_impl_richloc): Rename to... |
| (diagnostic_n_impl): ...this rich_location *-based decl. |
| (inform_at_rich_loc): Rename to... |
| (inform): ...this, and add an assertion. |
| (inform_n): Update for removal of location_t-based diagnostic_n_impl. |
| (warning_at_rich_loc): Rename to... |
| (warning_at): ...this, and add an assertion. |
| (warning_at_rich_loc_n): Rename to... |
| (warning_n): ...this, and add an assertion. |
| (warning_n): Update location_t-based implementation for removal of |
| location_t-based diagnostic_n_impl. |
| (pedwarn_at_rich_loc): Rename to... |
| (pedwarn): ...this, and add an assertion. |
| (permerror_at_rich_loc): Rename to... |
| (permerror): ...this, and add an assertion. |
| (error_n): Update for removal of location_t-based diagnostic_n_impl. |
| (error_at_rich_loc): Rename to... |
| (error_at): ...this, and add an assertion. |
| * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0. |
| (driver::do_spec_on_infiles): Likewise. |
| * substring-locations.c (format_warning_va): Update for renaming |
| of inform_at_rich_loc. |
| |
| 2017-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and |
| _Float<N>X built-in functions so that the variant without the |
| "__builtin_" prefix is only enabled for the GNU C and Objective C |
| languages when they are in non-strict ANSI/ISO mode. |
| (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise. |
| * target.def (floatn_builtin_p): Add a target hook to control |
| whether _Float<N> and _Float<N>X built-in functions without the |
| "__builtin_" prefix are enabled, and return true for C and |
| Objective C in the default hook. Include langhooks.h in |
| targhooks.c. |
| * targhooks.h (default_floatn_builtin_p): Likewise. |
| * targhooks.c (default_floatn_builtin_p): Likewise. |
| * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the |
| floatn_builtin_p target hook. |
| * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise. |
| |
| 2017-10-31 Matthew Fortune <matthew.fortune@imgtec.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/81803 |
| * lra-constraints.c (curr_insn_transform): Also reload the whole |
| register for a strict subreg no wider than a word if this is for |
| a WORD_REGISTER_OPERATIONS target. |
| |
| 2017-10-31 Jason Merrill <jason@redhat.com> |
| |
| * gdbinit.in: Skip over inlines from timevar.h. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * doc/gcov.texi: Document new option. |
| * gcov.c (print_usage): Likewise print it. |
| (process_args): Support the argument. |
| (format_count): New function. |
| (format_gcov): Use the function. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct name_map): do not use typedef. |
| Define operator== and operator<. |
| (name_search): Remove. |
| (name_sort): Remove. |
| (main): Do not allocate names. |
| (process_file): Add vertical space. |
| (generate_results): Use std::find. |
| (release_structures): Do not release memory. |
| (find_source): Use std::find. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct line_info): Remove it's typedef. |
| (line_info::line_info): Add proper ctor. |
| (line_info::has_block): Do not use a typedef. |
| (struct source_info): Do not use typedef. |
| (circuit): Likewise. |
| (get_cycles_count): Likewise. |
| (output_intermediate_file): Iterate via vector iterator. |
| (add_line_counts): Use std::vector methods. |
| (accumulate_line_counts): Likewise. |
| (output_lines): Likewise. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct source_info): Remove typedef. |
| (source_info::source_info): Add proper ctor. |
| (accumulate_line_counts): Use struct, not it's typedef. |
| (output_gcov_file): Likewise. |
| (output_lines): Likewise. |
| (main): Do not allocate an array. |
| (output_intermediate_file): Use size of vector container. |
| (process_file): Resize the vector. |
| (generate_results): Do not preallocate, use newly added vector |
| lines. |
| (release_structures): Do not release sources. |
| (find_source): Use vector methods. |
| (add_line_counts): Do not use typedef. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * doc/gcov.texi: Document that. |
| * gcov.c (add_line_counts): Mark lines with a non-executed |
| statement. |
| (output_line_beginning): Handle such lines. |
| (output_lines): Pass new argument. |
| (output_intermediate_file): Print it in intermediate format. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| * color-macros.h: New file. |
| * diagnostic-color.c: Factor out color related to macros to |
| color-macros.h. |
| * doc/gcov.texi: Document -k option. |
| * gcov.c (INCLUDE_STRING): Include string.h. |
| (print_usage): Add -k option. |
| (process_args): Parse it. |
| (pad_count_string): New function. |
| (output_line_beginning): Likewise. |
| (DEFAULT_LINE_START): New macro. |
| (output_lines): Support color output. |
| |
| 2017-10-31 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/82633 |
| * doc/gcov.texi: Document -fkeep-{static,inline}-functions and |
| their interaction with GCOV infrastructure. |
| * configure.ac: Add -fkeep-{inline,static}-functions to |
| coverage_flags. |
| * configure: Regenerate. |
| |
| 2017-10-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82772 |
| * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM". |
| |
| 2017-10-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/82674 |
| * config/rs6000/rs6000.md (allocate_stack): Force update interval |
| into a register if it does not fit into an immediate offset field. |
| |
| 2017-10-31 Olivier Hainque <hainque@adacore.com> |
| |
| * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well. |
| |
| 2017-10-31 Julia Koval <julia.koval@intel.com> |
| |
| * config.gcc: Add gfniintrin.h. |
| * config/i386/gfniintrin.h: New. |
| * config/i386/i386-builtin-types.def |
| (__builtin_ia32_vgf2p8affineinvqb_v64qi, |
| __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, |
| __builtin_ia32_vgf2p8affineinvqb_v32qi, |
| __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, |
| __builtin_ia32_vgf2p8affineinvqb_v16qi, |
| __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins. |
| * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI, |
| V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI, |
| V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI, |
| V64QI_FTYPE_V64QI_V64QI_INT): New types. |
| * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. |
| * config/i386/immintrin.h: Include gfniintrin.h. |
| * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern. |
| |
| 2017-10-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge. |
| |
| 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.md (ashldi3): Remove shift by 1 expansion. |
| (arm_ashldi3_1bit): Remove pattern. |
| (ashrdi3): Remove shift by 1 expansion. |
| (arm_ashrdi3_1bit): Remove pattern. |
| (lshrdi3): Remove shift by 1 expansion. |
| (arm_lshrdi3_1bit): Remove pattern. |
| * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase |
| cost of ashldi3 by 1. |
| * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion. |
| (<shift>di3_neon): Likewise. |
| |
| 2017-10-30 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename |
| both identically named patterns to (*aarch64_simd_mov<VD:mode>) |
| and (*aarch64_simd_mov<VQ:mode>). |
| (*aarch64_simd_mov<VD:mode>): Change type attribute to match |
| pattern alternative. |
| (*aarch64_simd_mov<VQ:mode>): Re-order and change type |
| attributes to match pattern alternative. |
| |
| 2017-10-30 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config.gcc (powerpc*-*-*): Add emmintrin.h. |
| * config/rs6000/emmintrin.h: New file. |
| * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h. |
| |
| 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8. |
| * (movdi_vfp_cortexa8): Remove pattern. |
| |
| 2017-10-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1 |
| etc. reference. |
| (Specific, alpha*-dec-osf5.1): Remove. |
| (Specific, mips-sgi-irix5): Remove. |
| (Specific, mips-sgi-irix6): Remove. |
| |
| 2017-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/22141 |
| * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix |
| arguments to clear_bit_region_be. |
| |
| 2017-10-30 Jim Wilson <wilson@tuliptree.org> |
| |
| * gimplify.c: Include memmodel.h. |
| |
| 2017-10-30 Martin Jambor <mjambor@suse.cz> |
| |
| * omp-grid.c (grid_attempt_target_gridification): Also insert a |
| condition whether loop should be executed at all. |
| |
| 2017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for |
| gimple folding of vec_madd() intrinsics. |
| * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to |
| fmav8hi4. (altivec_vmladduhm): Rename to fmav8hi4. |
| * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4 |
| |
| 2017-10-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82762 |
| Revert |
| 2017-10-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82129 |
| Revert |
| 2017-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81181 |
| * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... |
| (compute_antic): ... end of iteration here. |
| |
| 2017-10-30 Joseph Myers <joseph@codesourcery.com> |
| |
| * doc/invoke.texi (C Dialect Options): Document -std=c17, |
| -std=iso9899:2017 and -std=gnu17. |
| * doc/standards.texi (C Language): Document C17 support. |
| * doc/cpp.texi (Overview): Mention -std=c17. |
| (Standard Predefined Macros): Document C11 and C17 values of |
| __STDC_VERSION__. Do not refer to C99 support as incomplete. |
| * doc/extend.texi (Inline): Do not list individual options for |
| standards newer than C99. |
| * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle |
| "GNU C17". |
| * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17" |
| language name. |
| |
| 2017-10-30 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| * asan.c (asan_finish_file): Align asan globals array by shadow |
| granularity. |
| |
| 2017-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/22141 |
| * gimple-ssa-store-merging.c: Include rtl.h and expr.h. |
| (struct store_immediate_info): Add bitregion_start and bitregion_end |
| fields. |
| (store_immediate_info::store_immediate_info): Add brs and bre |
| arguments and initialize bitregion_{start,end} from those. |
| (struct merged_store_group): Add bitregion_start, bitregion_end, |
| align_base and mask fields. Drop unnecessary struct keyword from |
| struct store_immediate_info. Add do_merge method. |
| (clear_bit_region_be): Use memset instead of loop storing zeros. |
| (merged_store_group::do_merge): New method. |
| (merged_store_group::merge_into): Use do_merge. Allow gaps in between |
| stores as long as the surrounding bitregions have no gaps. |
| (merged_store_group::merge_overlapping): Use do_merge. |
| (merged_store_group::apply_stores): Test that bitregion_{start,end} |
| is byte aligned, rather than requiring that start and width are |
| byte aligned. Drop unnecessary struct keyword from |
| struct store_immediate_info. Allocate and populate also mask array. |
| Make start of the arrays relative to bitregion_start rather than |
| start and size them according to bitregion_{end,start} difference. |
| (struct imm_store_chain_info): Drop unnecessary struct keyword from |
| struct store_immediate_info. |
| (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8. |
| (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary |
| struct keyword from struct store_immediate_info. |
| (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in |
| between stores as long as the surrounding bitregions have no gaps. |
| Formatting fixes. |
| (struct split_store): Add orig non-static data member. |
| (split_store::split_store): Initialize orig to false. |
| (find_constituent_stmts): Return store_immediate_info *, non-NULL |
| if there is exactly a single original stmt. Change stmts argument |
| to pointer from reference, if NULL, don't push anything to it. Add |
| first argument, use it to optimize skipping over orig stmts that |
| are known to be before bitpos already. Simplify. |
| (split_group): Return unsigned int count how many stores are or |
| would be needed rather than a bool. Add allow_unaligned argument. |
| Change split_stores argument from reference to pointer, if NULL, |
| only do a dry run computing how many stores would be produced. |
| Rewritten algorithm to use both alignment and misalign if |
| !allow_unaligned and handle bitfield stores with gaps. |
| (imm_store_chain_info::output_merged_store): Set start_byte_pos |
| from bitregion_start instead of start. Compute allow_unaligned |
| here, if true, do 2 split_group dry runs to compute which one |
| produces fewer stores and prefer aligned if equal. Punt if |
| new count is bigger or equal than original before emitting any |
| statements, rather than during that. Remove no longer needed |
| new_ssa_names tracking. Replace num_stmts with |
| split_stores.length (). Use 32-bit stack allocated entries |
| in split_stores auto_vec. Try to reuse original store lhs/rhs1 |
| if possible. Handle bitfields with gaps. |
| (pass_store_merging::execute): Ignore bitsize == 0 stores. |
| Compute bitregion_{start,end} for the stores and construct |
| store_immediate_info with that. Formatting fixes. |
| |
| 2017-10-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82725 |
| * config/i386/i386.c (legitimate_pic_address_disp_p): Allow |
| UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset. |
| |
| 2017-10-29 Jim Wilson <wilson@tuliptree.org> |
| |
| * gimplify.c: Include tm_p.h. |
| |
| * common.opt (gcoff): Re-add as ignored option. |
| (gcoff1, gcoff2, gcoff3): Likewise. |
| |
| * Makefile.in (OBJS): Delete sdbout.o. |
| (GTFILES): Delete $(srcdir)/sdbout.c. |
| * debug.h: Delete sdb_debug_hooks. |
| * final.c: Delete sdbout.h include. |
| (final_scan_insn): Delete SDB_DEBUG check. |
| (rest_of_clean_state): Likewise. |
| * output.h: Delete sdb_begin_function_line. |
| * sdbout.c: Delete. |
| * sdbout.h: Delete. |
| * toplev.c: Delete sdbout.h include. |
| (process_options): Delete SDB_DEBUG check. |
| * tree-core.h (tree_type_common): Delete pointer field of |
| tree_type_symtab. |
| * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of |
| TYPE_SYMTAB_POINTER. |
| * tree.h (TYPE_SYMTAB_POINTER): Delete. |
| (TYPE_SYMTAB_IS_POINTER): Delete. |
| (TYPE_SYMTAB_IS_DIE): Renumber. |
| * xcoffout.c: Refer to former sdbout.c file. |
| (xcoffout_begin_prologue): Use past tense for sdbout.c reference. |
| |
| * doc/install.texi (--with-stabs): Delete COFF and ECOFF info. |
| * doc/invoke.texi (SEEALSO): Delete adb and sdb references. |
| (Debugging Options): Delete -gcoff. |
| (-gstabs): Delete SDB reference. |
| (-gcoff): Delete. |
| (-gcoff@var{level}): Delete. |
| * doc/passes.texi (Debugging information output): Delete SDB and |
| sdbout.c references. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref. |
| (SDB and DWARF): Change node name to DWARF and delete SDB and COFF |
| references. |
| (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references. |
| (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references. |
| (SDB_DEBUGGING_INFO): Delete. |
| (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES) |
| SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete. |
| * target.def (output_source_filename): Delete COFF reference. |
| |
| * common.opt (gcoff): Delete. |
| (gxcoff+): Update Negative chain. |
| * defaults.h: Delete all references to SDB_DEBUGGING_INFO and |
| SDB_DEBUG. |
| * dwarf2out.c (gen_array_type_die): Change SDB to debuggers. |
| * flag-types.h (enum debug_info_type): Delete SDB_DEBUG. |
| * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG, |
| and SDB references. |
| (expand_function_start): Change sdb reference to past tense. |
| (expand_function_end): Change sdb reference to past tense. |
| * gcc.c (cpp_unique_options): Delete gcoff3 reference. |
| * opts.c (debug_type_names): Delete coff entry. |
| (common_handle_option): Delete OPT_gcoff case. |
| * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison. |
| |
| * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG. |
| * config/cris/cris.h: Delete SDB reference in comment. |
| * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO. |
| (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment. |
| * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO. |
| * config/i386/i386.c (svr4_dbx_register_map): Change SDB references |
| to past tense. |
| (ix86_expand_prologue): Likewise. |
| * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG. |
| * config/ia64/ia64.h: Likewise. |
| * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference. |
| * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff* |
| support. |
| * config/mmix/mmix.h: Likewise. |
| * config/nds32/nds32.c: Likewise. |
| * config/stormy/storym16.h: Likewise. |
| * config/visium/visium.h: Likewise. |
| * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef. |
| |
| 2017-10-28 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1. |
| * config/nios2/nios2.c (nios2_initial_elimination_offset): Make |
| FRAME_POINTER_REGNUM point at high end of local var area. |
| |
| 2017-10-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * bb-reorder.c (find_traces_1_round): Fix off-by-one index. |
| Move comment around. Do not reset best_edge for a copiable |
| destination if the copy would cause a partition change. |
| (better_edge_p): Remove redundant check. |
| |
| 2017-10-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype. |
| |
| 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases |
| for math functions that have _Float<N> and _Float<N>X variants. |
| (mathfn_built_in_2): Add support for math functions that have |
| _Float<N> and _Float<N>X variants. |
| (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro. |
| (expand_builtin_mathfn_ternary): Add support for fma with |
| _Float<N> and _Float<N>X variants. |
| (expand_builtin): Likewise. |
| (fold_builtin_3): Likewise. |
| * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to |
| create math function _Float<N> and _Float<N>X variants as external |
| library builtins. |
| (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use |
| DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using |
| the __builtin_ prefix and if not strict ansi, without the prefix. |
| (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise. |
| (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise. |
| (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise. |
| (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise. |
| (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise. |
| (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise. |
| * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New |
| function signatures for fma _Float<N> and _Float<N>X variants. |
| (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise. |
| (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise. |
| (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise. |
| (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise. |
| (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise. |
| (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise. |
| * gencfn-macros.c (print_case_cfn): Add support for math functions |
| that have _Float<N> and _Float<N>X variants. |
| (print_define_operator_list): Likewise. |
| (fltfn_suffixes): Likewise. |
| (main): Likewise. |
| * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro |
| for math functions that have _Float<N> and _Float<N>X variants. |
| (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N> |
| and _Float<N>X variants. |
| (COPYSIGN): Likewise. |
| (FMIN): Likewise. |
| (FMAX): Likewise. |
| * fold-const.c (tree_call_nonnegative_warnv_p): Add support for |
| copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X |
| variants. |
| (integer_valued_read_call_p): Likewise. |
| * fold-const-call.c (fold_const_call_ss): Likewise. |
| (fold_const_call_sss): Add support for copysign, fmin, and fmax |
| _Float<N> and _Float<N>X variants. |
| (fold_const_call_ssss): Add support for fma _Float<N> and |
| _Float<N>X variants. |
| * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add |
| support for copysign and fma _Float<N> and _Float<N>X variants. |
| (backprop::process_builtin_call_use): Likewise. |
| * tree-call-cdce.c (can_test_argument_range); Add support for |
| sqrt _Float<N> and _Float<N>X variants. |
| (edom_only_function): Likewise. |
| (get_no_error_domain): Likewise. |
| * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise. |
| * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for |
| copysign _Float<N> and _Float<N>X variants. |
| * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now |
| handled by machine independent code. |
| (FMAF128): Likewise. |
| * doc/cpp.texi (Common Predefined Macros): Document defining |
| __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports |
| fma _Float<N> and _Float<N>X variants. |
| |
| 2017-10-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82692 |
| * config/i386/i386-modes.def (CCFPU): Remove definition. |
| * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling. |
| (ix86_cc_modes_compatible): Ditto. |
| (ix86_expand_carry_flag_compare): Ditto. |
| (ix86_expand_int_movcc): Ditto. |
| (ix86_expand_int_addcc): Ditto. |
| (ix86_reverse_condition): Ditto. |
| (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode. |
| Return true/false for unordered/ordered fp comparisons. |
| (ix86_cc_mode): Always return CCFPmode for float mode comparisons. |
| (ix86_prepare_fp_compare_args): Update for rename. |
| (ix86_expand_fp_compare): Update for rename. Generate unordered |
| compare RTXes wrapped with UNSPEC_NOTRAP unspec. |
| (ix86_expand_sse_compare_and_jump): Ditto. |
| * config/i386/predicates.md (fcmov_comparison_operator): |
| Remove CCFPU mode handling. |
| (ix86_comparison_operator): Ditto. |
| (ix86_carry_flag_operator): Ditto. |
| * config/i386/i386.md (UNSPEC_NOTRAP): New unspec. |
| (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec. |
| (*cmpu<mode>_cc_i387): Ditto. |
| (FPCMP): Remove mode iterator. |
| (unord): Remove mode attribute. |
| (unord_subst): New define_subst transformation |
| (unord): New define_subst attribute. |
| (unordered): Ditto. |
| (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation. |
| (*cmpi<unord>xf_i387): Ditto. |
| * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge |
| from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name> |
| using unord_subst transformation. |
| * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes. |
| (round_saeonly): Also handle CCFP mode. |
| * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec. |
| Remove UNSPEC_SAHF unspec handling. |
| |
| 2017-10-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen. |
| |
| 2017-10-27 Jeff Law <law@redhat.com> |
| |
| * gimple-ssa-sprintf.c: Include domwalk.h. |
| (class sprintf_dom_walker): New class, derived from dom_walker. |
| (sprintf_dom_walker::before_dom_children): New function. |
| (struct call_info): Moved into sprintf_dom_walker class |
| (compute_formath_length, handle_gimple_call): Likewise. |
| (sprintf_length::execute): Call the dominator walker rather |
| than walking the statements. |
| |
| * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle |
| gimple statement locations. |
| (check_array_bounds): Corresponding changes. Get the statement's |
| location directly from wi->stmt. |
| |
| 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| PR target/82717 |
| * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve. |
| |
| 2017-10-27 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, |
| X86_TUNE_MOVX): Disable for Haswell and newer CPUs. |
| |
| 2017-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82703 |
| * config/i386/i386-protos.h (maybe_get_pool_constant): Removed. |
| * config/i386/i386.c (maybe_get_pool_constant): Removed. |
| (ix86_split_to_parts): Use avoid_constant_pool_reference instead of |
| maybe_get_pool_constant. |
| * config/i386/predicates.md (zero_extended_scalar_load_operand): |
| Likewise. |
| |
| 2017-10-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas |
| 2.26 caveat. Update gas and gld versions. |
| (Specific, *-*-solaris2*): Update binutils version. Remove caveat |
| reference. |
| |
| 2017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * cgraph.h (set_malloc_flag): Declare. |
| * cgraph.c (set_malloc_flag_1): New function. |
| (set_malloc_flag): Likewise. |
| * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee. |
| * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to |
| false. |
| (read_ipa_call_summary): Add support for reading is_return_callee. |
| (write_ipa_call_summary): Stream is_return_callee. |
| * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary. |
| * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h, |
| ipa-prop.h, ipa-fnsummary.h. |
| (pure_const_names): Change to static. |
| (malloc_state_e): Define. |
| (malloc_state_names): Define. |
| (funct_state_d): Add field malloc_state. |
| (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM. |
| (check_retval_uses): New function. |
| (malloc_candidate_p): Likewise. |
| (analyze_function): Add support for malloc attribute. |
| (pure_const_write_summary): Stream malloc_state. |
| (pure_const_read_summary): Add support for reading malloc_state. |
| (dump_malloc_lattice): New function. |
| (propagate_malloc): New function. |
| (warn_function_malloc): New function. |
| (ipa_pure_const::execute): Call propagate_malloc and |
| ipa_free_fn_summary. |
| (pass_local_pure_const::execute): Add support for malloc attribute. |
| * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro. |
| * doc/invoke.texi: Document Wsuggest-attribute=malloc. |
| |
| 2017-10-27 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/82457 |
| * doc/invoke.texi: Document that one needs a non-strict ISO mode |
| for fork-like functions to be properly instrumented. |
| |
| 2017-10-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81659 |
| * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator |
| info when we redirected EH. |
| |
| 2017-10-26 Michael Collison <michael.collison@arm.com> |
| |
| * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2): |
| New pattern. |
| (<optab>_trunchf<GPI:mode>2: New pattern. |
| (<optab>_trunc<vgp><GPI:mode>2: New pattern. |
| * config/aarch64/iterators.md (wv): New mode attribute. |
| (vf, VF): New mode attributes. |
| (vgp, VGP): New mode attributes. |
| (s): Update attribute with SImode and DImode prefixes. |
| |
| 2017-10-26 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/constraints.md ("S"): Match r0rel_constant_p too. |
| * config/nios2/nios2-protos.h (r0rel_constant_p): Declare. |
| * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New. |
| (nios2_option_overide): Initialize it. Don't allow R0-relative |
| addressing with PIC. |
| (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p. |
| (nios2_symbolic_constant_p): Likewise. |
| (nios2_legitimate_address_p): Likewise. |
| (nios2_r0rel_section_name_p): New. |
| (nios2_symbol_ref_in_r0rel_data_p): New. |
| (nios2_emit_move_sequence): Handle r0rel_constant_p. |
| (r0rel_constant_p): New. |
| (nios2_print_operand_address): Handle r0rel_constant_p. |
| (nios2_cdx_narrow_form_p): Likewise. |
| * config/nios2/nios2.opt (mr0rel-sec=): New option. |
| * doc/invoke.texi (Option Summary): Add -mr0rel-sec. |
| (Nios II Options): Document -mr0rel-sec. |
| |
| 2017-10-26 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c: Include xregex.h. |
| (nios2_gprel_sec_regex): New. |
| (nios2_option_overide): Initialize it. Don't allow GP-relative |
| addressing with PIC. |
| (nios2_small_section_name_p): Check for regex match. |
| * config/nios2/nios2.opt (mgprel-sec=): New option. |
| * doc/invoke.texi (Option Summary): Add -mgprel-sec. |
| (Nios II Options): Document -mgprel-sec. |
| |
| 2017-10-26 Jim Wilson <wilson@tuliptree.org> |
| |
| * doc/invoke.texi (-fdebug-prefix-map): Expand documentation. |
| |
| 2017-10-26 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/82707 |
| * gimple.c (gimple_copy): Fix unsharing of |
| GIMPLE_OMP_{SINGLE,TARGET,TEAMS}. |
| |
| 2017-10-26 Olga Makhotina <olga.makhotina@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, |
| _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, |
| _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, |
| _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, |
| _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, |
| _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, |
| _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, |
| _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, |
| _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask, |
| _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, |
| _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, |
| _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, |
| _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, |
| _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, |
| _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, |
| _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, |
| _mm512_mask_cmpunord_ps_mask): New intrinsics. |
| |
| 2017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double |
| default to IBM. |
| * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise. |
| * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the |
| warning to rs6000.c. Remove the Undocumented flag, since it has |
| been documented. |
| (-mabi=ibmlongdouble): Likewise. |
| * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not |
| already set, set the default format for long double. |
| (rs6000_debug_reg_global): Print whether long double is IBM or |
| IEEE. |
| (rs6000_option_override_internal): Rework setting long double |
| format. Only warn if the user is changing the long double default |
| and they did not use -Wno-psabi. |
| * doc/invoke.texi (PowerPC options): Update the documentation for |
| -mabi=ieeelongdouble and -mabi=ibmlongdouble. |
| |
| 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (wider_subreg_mode): New function. |
| * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode * |
| rather than an unsigned int *. |
| * ira-color.c (regno_max_ref_width): Replace with... |
| (regno_max_ref_mode): ...this new variable. |
| (coalesced_pseudo_reg_slot_compare): Update accordingly. |
| Use wider_subreg_mode. |
| (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode * |
| rather than an unsigned int *. |
| * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode. |
| (process_alt_operands): Likewise. |
| (invariant_p): Likewise. |
| * lra-spills.c (assign_mem_slot): Likewise. |
| (add_pseudo_to_slot): Likewise. |
| * lra.c (collect_non_operand_hard_regs): Likewise. |
| (add_regs_to_insn_regno_info): Likewise. |
| * reload1.c (regno_max_ref_width): Replace with... |
| (regno_max_ref_mode): ...this new variable. |
| (reload): Update accordingly. Update call to |
| ira_sort_regnos_for_alter_reg. |
| (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode. |
| (init_eliminable_invariants): Update to use regno_max_ref_mode. |
| (scan_paradoxical_subregs): Likewise. |
| |
| 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used. |
| (aarch64_frame): Add emit_frame_chain boolean. |
| * config/aarch64/aarch64.c (aarch64_frame_pointer_required) |
| Move eh_return case to aarch64_layout_frame. |
| (aarch64_layout_frame): Initialize emit_frame_chain. |
| (aarch64_expand_prologue): Use emit_frame_chain. |
| |
| 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_layout_frame): |
| Ensure LR is always stored at the bottom of the callee-saves. |
| Remove rarely used frame layout which saves callee-saves at top of |
| frame, so the store of LR can be used as a valid probe in all cases. |
| |
| 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): |
| Improve unaligned TImode/TFmode base/offset split. |
| |
| 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p. |
| * combine.c (find_single_use_1): Likewise. |
| (expand_field_assignment): Likewise. |
| (move_deaths): Likewise. |
| * lra-constraints.c (simplify_operand_subreg): Likewise. |
| (curr_insn_transform): Likewise. |
| * lra.c (collect_non_operand_hard_regs): Likewise. |
| (add_regs_to_insn_regno_info): Likewise. |
| * rtlanal.c (reg_referenced_p): Likewise. |
| (covers_regno_no_parallel_p): Likewise. |
| |
| 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * wide-int-print.cc (print_hex): Loop based on extract_uhwi. |
| Don't print any bits outside the precision of the value. |
| * wide-int.cc (test_printing): Add some new tests. |
| |
| 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler |
| supports -xbrace_comment option. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define. |
| (ASM_CPU_SPEC): Use it. |
| |
| 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (static_rtx_alignment): New hook. |
| * targhooks.h (default_static_rtx_alignment): Declare. |
| * targhooks.c (default_static_rtx_alignment): New function. |
| * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook. |
| * doc/tm.texi: Regenerate. |
| * varasm.c (force_const_mem): Use targetm.static_rtx_alignment |
| instead of targetm.constant_alignment. Remove call to |
| set_mem_attributes. |
| * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. |
| (cris_preferred_mininum_alignment): New function, split out from... |
| (cris_constant_alignment): ...here. |
| (cris_static_rtx_alignment): New function. |
| * config/i386/i386.c (ix86_static_rtx_alignment): New function, |
| split out from... |
| (ix86_constant_alignment): ...here. |
| (TARGET_STATIC_RTX_ALIGNMENT): Redefine. |
| * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. |
| (mmix_static_rtx_alignment): New function. |
| * config/spu/spu.c (spu_static_rtx_alignment): New function. |
| (TARGET_STATIC_RTX_ALIGNMENT): Redefine. |
| |
| 2017-10-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/81800 |
| * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): |
| Add flag_trapping_math and flag_fp_int_builtin_inexact. |
| |
| 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. |
| * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, |
| mark as a sign-extending load. |
| (local_pic_load_u): Define. |
| |
| 2017-10-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/82062 |
| * fold-const.c (operand_equal_for_comparison_p): Also return true |
| if ARG0 is a simple variant of ARG1 with narrower precision. |
| (fold_ternary_loc): Always pass unstripped operands to the predicate. |
| |
| 2017-10-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather |
| cost correctly. |
| * i386.h (processor_costs): Add gather_static, gather_per_elt, |
| scatter_static, scatter_per_elt. |
| * x86-tune-costs.h: Add new cost entries. |
| |
| 2017-10-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (vn_eliminate): Declare. |
| * tree-ssa-pre.c (class eliminate_dom_walker, eliminate, |
| class pass_fre): Move to ... |
| * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate, |
| class pass_fre): ... here and adjust for statistics. |
| |
| 2017-10-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libstdc++/81706 |
| * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal |
| for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}. |
| (duplicate_one_attribute, copy_attributes_to_builtin): New functions. |
| * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New |
| declarations. |
| |
| 2017-10-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove, |
| el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail, |
| eliminate_push_avail, eliminate_insert): Move inside... |
| (class eliminate_dom_walker): ... this class in preparation |
| of move. |
| (fini_eliminate): Remove by merging with ... |
| (eliminate): ... this function. Adjust for class changes. |
| (pass_pre::execute): Remove fini_eliminate call. |
| (pass_fre::execute): Likewise. |
| |
| 2017-10-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82460 |
| * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove. |
| (VPERMI2, VPERMI2I): New mode iterators. |
| (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns. |
| (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn |
| patterns. |
| (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2 |
| mode iterator. Remove 3 old define_insn patterns. |
| (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns. |
| (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use |
| VPERMI2 mode iterator, remove the other two expanders. |
| (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn |
| to use VPERMI2 mode iterator, add another alternative for vpermi2* |
| instructions, remove the other two patterns. |
| (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2 |
| mode iterator, remove the other two patterns. |
| * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ... |
| (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0 |
| arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2* |
| and adjust argument order accordingly. |
| (ix86_expand_vec_perm): Adjust caller. |
| (expand_vec_perm_1): Likewise. |
| (expand_vec_perm_vpermi2_vpshub2): Rename to ... |
| (expand_vec_perm_vpermt2_vpshub2): ... this. |
| (ix86_expand_vec_perm_const_1): Adjust caller. |
| (ix86_vectorize_vec_perm_const_ok): Adjust comments. |
| |
| PR target/82370 |
| * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode. |
| (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators. |
| (vec_shl_<mode>): Remove unused expander. |
| (avx512bw_<shift_insn><mode>3): New define_insn. |
| (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ... |
| (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn. |
| |
| 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR c++/82466 |
| * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend |
| description. |
| |
| 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/82396 |
| * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround. |
| (autopref_multipass_init): Simplify initialization. |
| (autopref_rank_data): Simplify sort order. |
| * gcc/sched-int.h (autopref_multipass_data_): Remove |
| multi_mem_insn_p, min_offset and max_offset. |
| |
| 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/60580 |
| * config/aarch64/aarch64.c (aarch64_frame_pointer_required) |
| Check special value of flag_omit_frame_pointer. |
| (aarch64_can_eliminate): Likewise. |
| (aarch64_override_options_after_change_1): Simplify handling of |
| -fomit-frame-pointer and -fomit-leaf-frame-pointer. |
| |
| 2017-10-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82697 |
| * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set |
| zero for conditional load and unconditional store. |
| |
| 2017-10-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * doc/install.texi: Document bootstrap-cet. |
| |
| 2017-10-24 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/82659 |
| * config/i386/i386.c (rest_of_insert_endbranch): Don't insert |
| ENDBR instruction at function entrance if function is only |
| called directly. |
| |
| 2017-10-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82628 |
| * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change |
| patterns to better describe from which operation the CF is computed. |
| (addcarry<mode>_0, subborrow<mode>_0): New patterns. |
| * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass |
| one LTU with [DT]Imode and another one with [SD]Imode. If arg0 |
| is 0, use _0 suffixed expanders instead of emitting a comparison |
| before it. |
| |
| 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.md(*movsf_internal, *movdf_internal): |
| Avoid 512-bit AVX modes for TARGET_PREFER_AVX256. |
| |
| 2017-10-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/82569 |
| * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete. |
| * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change. |
| * loop-iv.c (iv_get_reaching_def): Likewise. |
| * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the |
| variable is promoted and the partition contains undefined values. |
| |
| 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_rtx_costs): Make costs better |
| reflect reality. |
| (nios2_address_cost): Define. |
| (nios2_legitimize_address): Recognize (exp + constant) directly. |
| (TARGET_ADDRESS_COST): Define. |
| |
| 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare. |
| (nios2_symbolic_memory_operand_p): Declare. |
| (nios2_split_large_constant): Declare. |
| (nios2_split_symbolic_memory_operand): Declare. |
| * config/nios2/nios2.c: Adjust includes. |
| (nios2_symbolic_constant_allowed): New. |
| (nios2_symbolic_constant_p): New. |
| (nios2_plus_symbolic_constant_p): New. |
| (nios2_valid_addr_expr_p): Recognize addresses involving |
| symbolic constants. |
| (nios2_legitimate_address_p): Likewise, also LO_SUM. |
| (nios2_symbolic_memory_operand_p): New. |
| (nios2_large_constant_p): New. |
| (nios2_split_large_constant): New. |
| (nios2_split_plus_large_constant): New. |
| (nios2_split_symbolic_memory_operand): New. |
| (nios2_legitimize_address): Code refactoring. Handle addresses |
| involving symbolic constants. |
| (nios2_emit_move_sequence): Likewise. |
| (nios2_print_operand): Improve error output. |
| (nios2_print_operand_address): Handle LO_SUM. |
| (nios2_cdx_narrow_form_p): Likewise. |
| * config/nios2/nios2.md (movqi_internal): Add splitter for memory |
| operands involving symbolic constants. |
| (movhi_internal, movsi_internal): Likewise. |
| (zero_extendhisi2, zero_extendqi<mode>2): Likewise. |
| (extendhisi2, extendqi<mode>2): Likewise. |
| |
| 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * tree-pass.h (PROP_rtl_split_insns): Define. |
| * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns. |
| |
| 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (TARGET_LRA_P): Don't override. |
| |
| 2017-10-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/82630 |
| * target.def (const_not_ok_for_debug_p): Default to |
| default_const_not_ok_for_debug_p instead of hook_bool_rtx_false. |
| * targhooks.h (default_const_not_ok_for_debug_p): New declaration. |
| * targhooks.c (default_const_not_ok_for_debug_p): New function. |
| * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for |
| which targetm.const_not_ok_for_debug_p returned true. |
| * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true |
| for UNSPECs. |
| * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise. |
| * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize |
| UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol |
| if !base_term_p. |
| (ix86_const_not_ok_for_debug_p): New function. |
| (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF. |
| (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine. |
| |
| 2017-10-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR bootstrap/82610 |
| * system.h: Conditionally include "unique-ptr.h" if |
| INCLUDE_UNIQUE_PTR is defined. |
| * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor |
| of defining INCLUDE_UNIQUE_PTR before including "system.h". |
| |
| 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com> |
| |
| * config/rl78/rl78.md: New define_expand "subdi3". |
| |
| 2017-10-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/82673 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip |
| DF_REF_INSN if DF_REF_INSN_INFO is false. |
| |
| 2017-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (dimode_scalar_chain::compute_convert_gain): Use |
| xmm_move instead of sse_move. |
| (sse_store_index): New function. |
| (ix86_register_move_cost): Be more sensible about mismatch stall; |
| model AVX moves correctly; make difference between sse->integer and |
| integer->sse. |
| (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned |
| moves; make difference between SSE and AVX. |
| * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move |
| and zmm_move. Increase size of sse load and store tables; |
| add unaligned load and store tables; add ssemmx_to_integer. |
| * x86-tune-costs.h: Update all entries according to real |
| move latencies from Agner Fog's manual and chip documentation. |
| |
| 2017-10-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82628 |
| * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New. |
| * config/i386/constraints.md (Wf): New constraint. |
| * config/i386/i386.md (UNSPEC_SBB): New unspec. |
| (cmp<dwi>_doubleword): Removed. |
| (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns. |
| (sub<mode>3_carry_ccgz): Use unspec instead of compare. |
| * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't |
| expand with cmp<dwi>_doubleword. For LTU and GEU use |
| sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode. |
| |
| * common.opt (gcolumn-info): Enable by default. |
| * doc/invoke.texi (gcolumn-info): Document new default. |
| |
| 2017-10-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82672 |
| * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block): |
| Fold the stmt if we propagated into it. |
| |
| 2017-10-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (bitmap_remove_from_set): Rename to... |
| (bitmap_remove_expr_from_set): ... this. All callers call this |
| for non-constant values. |
| (bitmap_set_subtract): Rename to... |
| (bitmap_set_subtract_expressions): ... this. Adjust and |
| optimize. |
| (bitmap_set_contains_value): Remove superfluous check. |
| (bitmap_set_replace_value): Inline into single caller ... |
| (bitmap_value_replace_in_set): ... here and simplify. |
| (dependent_clean): Merge into ... |
| (clean): ... this using an overload. Adjust. |
| (prune_clobbered_mems): Adjust. |
| (compute_antic_aux): Likewise. |
| (compute_partial_antic_aux): Likewise. |
| |
| 2017-10-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82129 |
| Revert |
| 2017-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81181 |
| * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... |
| (compute_antic): ... end of iteration here. |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (starting_frame_offset): New hook. |
| * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of... |
| (TARGET_STARTING_FRAME_OFFSET): ...this new hook. |
| * doc/tm.texi.in: Regenerate. |
| * hooks.h (hook_hwi_void_0): Declare. |
| * hooks.c (hook_hwi_void_0): New function. |
| * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of |
| STARTING_FRAME_OFFSET. |
| * builtins.c (expand_builtin_setjmp_receiver): Likewise. |
| * reload1.c (reload): Likewise. |
| * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset |
| instead of STARTING_FRAME_OFFSET. |
| * function.c (try_fit_stack_local): Likewise. |
| (assign_stack_local_1): Likewise |
| (instantiate_virtual_regs): Likewise. |
| * rtlanal.c (rtx_addr_can_trap_p_1): Likewise. |
| * config/avr/avr.md (nonlocal_goto_receiver): Likewise. |
| * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete. |
| * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/sparc/sparc.c (sparc_compute_frame_size): Likewise. |
| * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise. |
| * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise. |
| * config/avr/avr.c (avr_starting_frame_offset): Make static and |
| return a HOST_WIDE_INT. |
| (avr_builtin_setjmp_frame_value): Use it instead of |
| STARTING_FRAME_OFFSET. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete. |
| * config/epiphany/epiphany.c (epiphany_starting_frame_offset): |
| New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete. |
| * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete. |
| * config/lm32/lm32.c (lm32_starting_frame_offset): New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete. |
| * config/m32r/m32r.c (m32r_starting_frame_offset): New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete. |
| * config/microblaze/microblaze.c (microblaze_starting_frame_offset): |
| New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete. |
| * config/mips/mips.c (mips_compute_frame_info): Refer to |
| TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. |
| (mips_starting_frame_offset): New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete. |
| * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete. |
| * config/mmix/mmix.c (mmix_starting_frame_offset): Make static |
| and return a HOST_WIDE_INT. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| (mmix_initial_elimination_offset): Refer to |
| TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. |
| * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete. |
| * config/pa/pa.c (pa_starting_frame_offset): New function. |
| (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET. |
| (pa_expand_prologue): Likewise. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET): |
| Redefine. |
| (rs6000_starting_frame_offset): New function. |
| * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out |
| !FRAME_GROWS_DOWNWARD handling to... |
| (RS6000_STARTING_FRAME_OFFSET): ...this new macro. |
| * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine. |
| (rs6000_starting_frame_offset): New function. |
| * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete. |
| * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete. |
| * config/vax/vax.c (vax_starting_frame_offset): New function. |
| (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete. |
| * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function. |
| (TARGET_STARTING_FRAME_OFFSET): Redefine. |
| * system.h (STARTING_FRAME_OFFSET): Poison. |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Use |
| SCALAR_TYPE_MODE instead of TYPE_MODE. |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode. |
| |
| 2017-10-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82129 |
| * tree-ssa-pre.c (bitmap_set_and): Remove. |
| (compute_antic_aux): Compute ANTIC_OUT intersection in a way |
| canonicalizing expressions in the set to those with lowest |
| ID rather than taking that from the first edge. |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * combine.c (rtx_equal_for_field_assignment_p): Use |
| byte_lowpart_offset. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * internal-fn.c (expand_direct_optab_fn): Don't assign directly |
| to a SUBREG_PROMOTED_VAR. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION. |
| (expand_debug_source_expr): Likewise. |
| * combine.c (combine_simplify_rtx): Likewise. |
| * cse.c (fold_rtx): Likewise. |
| * optabs.c (expand_float): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| (simplify_binary_operation_1): Likewise. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P. |
| (record_promoted_value): Likewise. |
| * expr.c (expand_expr_real_2): Likewise. |
| * ree.c (update_reg_equal_equiv_notes): Likewise. |
| (combine_set_extension): Likewise. |
| * rtlanal.c (low_bitmask_len): Likewise. |
| * simplify-rtx.c (neg_const_int): Likewise. |
| (simplify_binary_operation_1): Likewise. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset. |
| * regcprop.c (maybe_mode_change): Likewise. |
| * reload1.c (alter_reg): Likewise. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * inchash.h (inchash::hash::add_wide_int): New function. |
| * lto-streamer-out.c (hash_tree): Use it. |
| |
| 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * inchash.h (inchash::hash::add_wide_int): Rename to... |
| (inchash::hash::add_hwi): ...this. |
| * ipa-devirt.c (hash_odr_vtable): Update accordingly. |
| (polymorphic_call_target_hasher::hash): Likewise. |
| * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise. |
| (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash) |
| (sem_item_optimizer::update_hash_by_addr_refs): Likewise. |
| * lto-streamer-out.c (hash_tree): Likewise. |
| * optc-save-gen.awk: Likewise. |
| * tree.c (add_expr): Likewise. |
| |
| 2017-10-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/52451 |
| * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode |
| for ordered inequality comparisons even with TARGET_IEEE_FP. |
| |
| 2017-10-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82628 |
| * config/i386/i386.md (cmp<dwi>_doubleword): New pattern. |
| * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: |
| Expand with cmp<dwi>_doubleword. |
| |
| 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * extend.texi: Add x86 specific to 'nocf_check' attribute. |
| List CET intrinsics. |
| * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86 |
| specific to -fcf-protection option. |
| |
| 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New. |
| (OPTION_MASK_ISA_SHSTK_SET): Likewise. |
| (OPTION_MASK_ISA_IBT_UNSET): Likewise. |
| (OPTION_MASK_ISA_SHSTK_UNSET): Likewise. |
| (ix86_handle_option): Add -mibt, -mshstk, -mcet handling. |
| * config.gcc (extra_headers): Add cetintrin.h for x86 targets. |
| (extra_objs): Add cet.o for Linux/x86 targets. |
| (tmake_file): Add i386/t-cet for Linux/x86 targets. |
| * config/i386/cet.c: New file. |
| * config/i386/cetintrin.h: Likewise. |
| * config/i386/t-cet: Likewise. |
| * config/i386/cpuid.h (bit_SHSTK): New. |
| (bit_IBT): Likewise. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect and |
| pass IBT and SHSTK bits. |
| * config/i386/i386-builtin-types.def |
| (VOID_FTYPE_UNSIGNED_PVOID): New. |
| (VOID_FTYPE_UINT64_PVOID): Likewise. |
| * config/i386/i386-builtin.def: Add CET intrinsics. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Add |
| OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling. |
| * config/i386/i386-passes.def: Add pass_insert_endbranch pass. |
| * config/i386/i386-protos.h (make_pass_insert_endbranch): New |
| prototype. |
| * config/i386/i386.c (rest_of_insert_endbranch): New. |
| (pass_data_insert_endbranch): Likewise. |
| (pass_insert_endbranch): Likewise. |
| (make_pass_insert_endbranch): Likewise. |
| (ix86_notrack_prefixed_insn_p): Likewise. |
| (ix86_target_string): Add -mibt, -mshstk flags. |
| (ix86_option_override_internal): Add flag_cf_protection |
| processing. |
| (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk. |
| (ix86_print_operand): Add 'notrack' prefix output. |
| (ix86_init_mmx_sse_builtins): Add CET intrinsics. |
| (ix86_expand_builtin): Expand CET intrinsics. |
| (x86_output_mi_thunk): Add 'endbranch' instruction. |
| * config/i386/i386.h (TARGET_IBT): New. |
| (TARGET_IBT_P): Likewise. |
| (TARGET_SHSTK): Likewise. |
| (TARGET_SHSTK_P): Likewise. |
| * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP, |
| UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP, |
| UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY. |
| (builtin_setjmp_setup): New pattern. |
| (builtin_longjmp): Likewise. |
| (rdssp<mode>): Likewise. |
| (incssp<mode>): Likewise. |
| (saveprevssp): Likewise. |
| (rstorssp): Likewise. |
| (wrss<mode>): Likewise. |
| (wruss<mode>): Likewise. |
| (setssbsy): Likewise. |
| (clrssbsy): Likewise. |
| (nop_endbr): Likewise. |
| * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch |
| options. |
| * config/i386/immintrin.h: Include <cetintrin.h>. |
| * config/i386/linux-common.h |
| (file_end_indicate_exec_stack_and_cet): New prototype. |
| (TARGET_ASM_FILE_END): New. |
| |
| 2017-10-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost |
| latencies instead of having separate table; make difference between |
| integer and float costs. |
| * i386.h (processor_costs): Remove scalar_stmt_cost, |
| scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, |
| scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost, |
| vec_store_cost. |
| * x86-tune-costs.h: Remove entries which has been removed in |
| procesor_costs from all tables; make cond_taken_branch_cost |
| and cond_not_taken_branch_cost COST_N_INSNS based. |
| |
| 2017-10-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs. |
| |
| 2017-10-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.md (isa): Remove fma_avx512f. |
| * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, |
| <avx512>_fmadd_<mode>_mask3<round_name>, |
| <avx512>_fmsub_<mode>_mask<round_name>, |
| <avx512>_fmsub_<mode>_mask3<round_name>, |
| <avx512>_fnmadd_<mode>_mask<round_name>, |
| <avx512>_fnmadd_<mode>_mask3<round_name>, |
| <avx512>_fnmsub_<mode>_mask<round_name>, |
| <avx512>_fnmsub_<mode>_mask3<round_name>, |
| <avx512>_fmaddsub_<mode>_mask<round_name>, |
| <avx512>_fmaddsub_<mode>_mask3<round_name>, |
| <avx512>_fmsubadd_<mode>_mask<round_name>, |
| <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute. |
| (*vec_widen_umult_even_v16si<mask_name>, |
| *vec_widen_smult_even_v16si<mask_name>): Likewise. |
| (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise. |
| |
| 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * extend.texi: Add 'nocf_check' documentation. |
| * gimple.texi: Add second parameter to |
| gimple_build_call_from_tree. |
| * invoke.texi: Add -fcf-protection documentation. |
| * rtl.texi: Add REG_CALL_NOTRACK documenation. |
| |
| 2017-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82473 |
| * tree-vect-loop.c (vectorizable_reduction): Properly get at |
| the largest input type. |
| |
| 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> |
| |
| * c-attribs.c (handle_nocf_check_attribute): New function. |
| (c_common_attribute_table): Add 'nocf_check' handling. |
| * gimple-parser.c: Add second argument NULL to |
| gimple_build_call_from_tree. |
| * attrib.c (comp_type_attributes): Check nocf_check attribute. |
| * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for |
| call insn. |
| * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling. |
| * common.opt: Add fcf-protection flag. |
| * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling. |
| * flag-types.h: Add enum cf_protection_level. |
| * gimple.c (gimple_build_call_from_tree): Add second parameter. |
| Add 'nocf_check' attribute propagation to gimple call. |
| * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK. |
| (gimple_build_call_from_tree): Update prototype. |
| (gimple_call_nocf_check_p): New function. |
| (gimple_call_set_nocf_check): Likewise. |
| * gimplify.c: Add second argument to gimple_build_call_from_tree. |
| * ipa-icf.c: Add nocf_check attribute in statement hash. |
| * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling. |
| * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK). |
| * toplev.c (process_options): Add flag_cf_protection handling. |
| |
| 2017-10-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies. |
| |
| 2017-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82603 |
| * tree-if-conv.c (predicate_mem_writes): Make sure to only |
| remove false predicated stores. |
| |
| 2017-10-20 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): |
| Remove return value and simplify, dump copied stmt after lhs |
| adjustment. |
| (translate_isl_ast_to_gimple::translate_isl_ast_node_user): |
| Reduce dump verbosity. |
| (gsi_insert_earliest): Likewise. |
| (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust. |
| * graphite.c (print_global_statistics): Adjust dumping. |
| (print_graphite_scop_statistics): Likewise. |
| (print_graphite_statistics): Do not dump loops here. |
| (graphite_transform_loops): But here. |
| |
| 2017-10-20 Nicolas Roche <roche@adacore.com> |
| |
| * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir. |
| * configure: Regenerate. |
| |
| 2017-10-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82158 |
| * tree-cfg.c (pass_warn_function_return::execute): In noreturn |
| functions when optimizing replace GIMPLE_RETURN stmts with |
| calls to __builtin_unreachable (). |
| |
| PR sanitizer/82595 |
| * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o |
| for -fsanitize=thread link of executables. |
| (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak |
| link of executables. |
| |
| PR target/82370 |
| * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2): |
| New mode iterators. |
| (<shift_insn><mode>3<mask_name>): Change the last of the 3 |
| define_insns for logical vector shifts to use VI248_AVX512BW |
| iterator instead of VI48_AVX512, remove <mask_mode512bit_condition> |
| condition, useless isa and prefix attributes. Change the first |
| 2 of these define_insns to ... |
| (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new |
| define_insn for avx512vl. |
| (<shift_insn><mode>3): ... and this, new define_insn without |
| masking for non-avx512vl. |
| |
| PR target/82370 |
| * config/i386/sse.md (*andnot<mode>3, |
| <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split |
| (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit |
| and 256-bit vectors, the (=x,x,xm) alternative and when mask is |
| not applied use empty suffix even for TARGET_AVX512VL. |
| * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask |
| is applied, supply evex,evex or evex,evex,evex instead of just |
| evex. |
| |
| 2017-10-20 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET, |
| (OPTION_MASK_ISA_GFNI_UNSET): New. |
| (ix86_handle_option): Handle OPT_mgfni. |
| * config/i386/cpuid.h (bit_GFNI): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__. |
| * config/i386/i386.c (ix86_target_string): Add -mgfni. |
| (ix86_valid_target_attribute_inner_p): Add OPT_mgfni. |
| * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New. |
| * config/i386/i386.opt: Add mgfni. |
| |
| 2017-10-20 Orlando Arias <oarias@knights.ucf.edu> |
| |
| * config/msp430/msp430.c (msp430_option_override): Disable |
| -fdelete-null-pointer-checks. |
| * doc/invoke.text (-fdelete-null-pointer-checks): Document that. |
| |
| 2017-10-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune-costs.h (generic_cost, core_cost): Correct costs |
| of x87 and SSE instructions. |
| |
| 2017-10-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * asan.c (create_cond_insert_point): Do not update edge count. |
| * auto-profile.c (afdo_propagate_edge): Update for edge count removal. |
| (afdo_propagate_circuit): Likewise. |
| (afdo_calculate_branch_prob): Likewise. |
| (afdo_annotate_cfg): Likewise. |
| * basic-block.h (struct edge_def): Remove count. |
| (edge_def::count): New accessor. |
| * bb-reorder.c (rotate_loop): Update. |
| (find_traces_1_round): Update. |
| (connect_traces): Update. |
| (sanitize_hot_paths): Update. |
| * cfg.c (unchecked_make_edge): Update. |
| (make_single_succ_edge): Update. |
| (check_bb_profile): Update. |
| (dump_edge_info): Update. |
| (update_bb_profile_for_threading): Update. |
| (scale_bbs_frequencies_int): Update. |
| (scale_bbs_frequencies_gcov_type): Update. |
| (scale_bbs_frequencies_profile_count): Update. |
| (scale_bbs_frequencies): Update. |
| * cfganal.c (connect_infinite_loops_to_exit): Update. |
| * cfgbuild.c (compute_outgoing_frequencies): Update. |
| (find_many_sub_basic_blocks): Update. |
| * cfgcleanup.c (try_forward_edges): Update. |
| (try_crossjump_to_edge): Update |
| * cfgexpand.c (expand_gimple_cond): Update |
| (expand_gimple_tailcall): Update |
| (construct_exit_block): Update |
| * cfghooks.c (verify_flow_info): Update |
| (redirect_edge_succ_nodup): Update |
| (split_edge): Update |
| (make_forwarder_block): Update |
| (duplicate_block): Update |
| (account_profile_record): Update |
| * cfgloop.c (find_subloop_latch_edge_by_profile): Update. |
| * cfgloopanal.c (expected_loop_iterations_unbounded): Update. |
| * cfgloopmanip.c (scale_loop_profile): Update. |
| (loopify): Update. |
| (lv_adjust_loop_entry_edge): Update. |
| * cfgrtl.c (try_redirect_by_replacing_jump): Update. |
| (force_nonfallthru_and_redirect): Update. |
| (purge_dead_edges): Update. |
| (rtl_flow_call_edges_add): Update. |
| * cgraphunit.c (init_lowered_empty_function): Update. |
| (cgraph_node::expand_thunk): Update. |
| * gimple-pretty-print.c (dump_probability): Update. |
| (dump_edge_probability): Update. |
| * gimple-ssa-isolate-paths.c (isolate_path): Update. |
| * haifa-sched.c (sched_create_recovery_edges): Update. |
| * hsa-gen.c (convert_switch_statements): Update. |
| * ifcvt.c (dead_or_predicable): Update. |
| * ipa-inline-transform.c (inline_transform): Update. |
| * ipa-split.c (split_function): Update. |
| * ipa-utils.c (ipa_merge_profiles): Update. |
| * loop-doloop.c (add_test): Update. |
| * loop-unroll.c (unroll_loop_runtime_iterations): Update. |
| * lto-streamer-in.c (input_cfg): Update. |
| (input_function): Update. |
| * lto-streamer-out.c (output_cfg): Update. |
| * modulo-sched.c (sms_schedule): Update. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Update. |
| * predict.c (maybe_hot_edge_p): Update. |
| (unlikely_executed_edge_p): Update. |
| (probably_never_executed_edge_p): Update. |
| (dump_prediction): Update. |
| (drop_profile): Update. |
| (propagate_unlikely_bbs_forward): Update. |
| (determine_unlikely_bbs): Update. |
| (force_edge_cold): Update. |
| * profile.c (compute_branch_probabilities): Update. |
| * reg-stack.c (better_edge): Update. |
| * shrink-wrap.c (handle_simple_exit): Update. |
| * tracer.c (better_p): Update. |
| * trans-mem.c (expand_transaction): Update. |
| (split_bb_make_tm_edge): Update. |
| * tree-call-cdce.c: Update. |
| * tree-cfg.c (gimple_find_sub_bbs): Update. |
| (gimple_split_edge): Update. |
| (gimple_duplicate_sese_region): Update. |
| (gimple_duplicate_sese_tail): Update. |
| (gimple_flow_call_edges_add): Update. |
| (insert_cond_bb): Update. |
| (execute_fixup_cfg): Update. |
| * tree-cfgcleanup.c (cleanup_control_expr_graph): Update. |
| * tree-complex.c (expand_complex_div_wide): Update. |
| * tree-eh.c (lower_resx): Update. |
| (unsplit_eh): Update. |
| (cleanup_empty_eh_move_lp): Update. |
| * tree-inline.c (copy_edges_for_bb): Update. |
| (freqs_to_counts): Update. |
| (copy_cfg_body): Update. |
| * tree-ssa-dce.c (remove_dead_stmt): Update. |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Update. |
| * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. |
| (unloop_loops): Update. |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. |
| * tree-ssa-loop-split.c (connect_loops): Update. |
| (split_loop): Update. |
| * tree-ssa-loop-unswitch.c (hoist_guard): Update. |
| * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. |
| * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. |
| * tree-ssa-reassoc.c (branch_fixup): Update. |
| * tree-ssa-tail-merge.c (replace_block_by): Update. |
| * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. |
| (compute_path_counts): Update. |
| (update_profile): Update. |
| (recompute_probabilities): Update. |
| (update_joiner_offpath_counts): Update. |
| (estimated_freqs_path): Update. |
| (freqs_to_counts_path): Update. |
| (clear_counts_path): Update. |
| (ssa_fix_duplicate_block_edges): Update. |
| (duplicate_thread_path): Update. |
| * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. |
| (case_bit_test_cmp): Update. |
| (collect_switch_conv_info): Update. |
| (gen_inbound_check): Update. |
| (do_jump_if_equal): Update. |
| (emit_cmp_and_jump_insns): Update. |
| * tree-tailcall.c (decrease_profile): Update. |
| (eliminate_tail_call): Update. |
| * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. |
| (vect_do_peeling): Update. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): Update. |
| * ubsan.c (ubsan_expand_null_ifn): Update. |
| (ubsan_expand_ptr_ifn): Update. |
| * value-prof.c (gimple_divmod_fixed_value): Update. |
| (gimple_mod_pow2): Update. |
| (gimple_mod_subtract): Update. |
| (gimple_ic): Update. |
| (gimple_stringop_fixed_value): Update. |
| |
| 2017-10-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82618 |
| * config/i386/i386.md (sub to cmp): New peephole2 pattern. |
| |
| 2017-10-19 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/82395 |
| * ira-color.c (allocno_priority_compare_func): Fix comparison step |
| based on non_spilled_static_chain_regno_p. |
| |
| 2017-10-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (output_387_binary_op): Rewrite SSE part. |
| (ix86_emit_mode_set): Rewrite insn mnemonic construction. |
| (ix86_prepare_fp_compare_args): Redefine is_sse as bool. |
| |
| 2017-10-19 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/82596 |
| * tree.c (array_at_struct_end_p): Handle STRING_CST. |
| |
| 2017-10-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * asan.c (handle_builtin_alloca): Deal with all alloca variants. |
| (get_mem_refs_of_builtin_call): Likewise. |
| * builtins.c (expand_builtin_apply): Adjust call to |
| allocate_dynamic_stack_space. |
| (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass |
| the third argument to allocate_dynamic_stack_space, otherwise -1. |
| (expand_builtin): Deal with all alloca variants. |
| (is_inexpensive_builtin): Likewise. |
| * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New. |
| * calls.c (special_function_p): Deal with all alloca variants. |
| (initialize_argument_information): Adjust call to |
| allocate_dynamic_stack_space. |
| (expand_call): Likewise. |
| * cfgexpand.c (expand_call_stmt): Deal with all alloca variants. |
| * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max |
| * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and |
| use it for the stack usage computation. |
| * explow.h (allocate_dynamic_stack_space): Adjust prototype. |
| * function.c (gimplify_parameters): Call build_alloca_call_expr. |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow. |
| Take into account 3rd argument of __builtin_alloca_with_align_and_max. |
| (in_loop_p): Remove first argument and useless check. |
| (pass_walloca::execute): Remove useless test and adjust call to above. |
| * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants |
| * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr. |
| (gimplify_call_expr): Deal with all alloca variants. |
| * hsa-gen.c (gen_hsa_alloca): Likewise. |
| (gen_hsa_insns_for_call): Likewise. |
| * ipa-pure-const.c (special_builtin_state): Likewise. |
| * tree-chkp.c (chkp_build_returned_bound): Likewise. |
| * tree-object-size.c (alloc_object_size): Likewise. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. |
| (call_may_clobber_ref_p_1): Likewise. |
| * tree-ssa-ccp.c (evaluate_stmt): Likewise. |
| (ccp_fold_stmt): Likewise. |
| (optimize_stack_restore): Likewise. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. |
| (mark_all_reaching_defs_necessary_1): Likewise. |
| (propagate_necessity): Likewise. |
| (eliminate_unnecessary_stmts): Likewise. |
| * tree.c (build_common_builtin_nodes): Build |
| BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX. |
| (build_alloca_call_expr): New function. |
| * tree.h (ALLOCA_FUNCTION_CODE_P): New macro. |
| (CASE_BUILT_IN_ALLOCA): Likewise. |
| (build_alloca_call_expr): Declare. |
| * varasm.c (incorporeal_function_p): Deal with all alloca variants. |
| |
| 2017-10-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/82509 |
| * dwarf2out.c (new_die_raw): New static inline function. |
| (new_die): Use it to create the DIE. |
| (add_AT_external_die_ref): Likewise. |
| (clone_die): Likewise. |
| (clone_as_declaration): Likewise. |
| (dwarf2out_vms_debug_main_pointer): Likewise. |
| (base_type_die): Likewise. Remove early return for corner cases. |
| Do not call add_pubtype on the DIE here. |
| (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE. |
| (modified_type_die): Adjust the lookup for reverse order DIEs. Skip |
| typedefs for base types with DW_AT_endianity. Make sure a DIE with |
| native order exists for base types, attach the DIE manually and call |
| add_pubtype on it. Do not equate a reverse order DIE to the type. |
| |
| 2017-10-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.c (align_ok_ldrd_strd): New function. |
| (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of |
| the mem into it. |
| (gen_operands_ldrd_strd): Validate the alignment of the accesses. |
| |
| 2017-10-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or |
| SANITIZE_BUILTIN into SANITIZE_UNDEFINED. |
| * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN, |
| BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins. |
| * opts.c (sanitizer_opts): Add builtin. |
| * ubsan.c (instrument_builtin): New function. |
| (pass_ubsan::execute): Call it. |
| (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN. |
| * doc/invoke.texi: Document -fsanitize=builtin. |
| |
| * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch |
| builtins, store max (log2 (align), 0) into uchar field instead of |
| align into uptr field. |
| (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins, |
| store uchar 0 field instead of uptr 0 field. |
| (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin, |
| instead of passing one address of struct with 2 locations pass |
| two addresses of structs with 1 location each. |
| * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH, |
| BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed. |
| (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, |
| BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, |
| BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins. |
| |
| 2017-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR driver/81829 |
| * file-find.c (remove_prefix): Remove. |
| * file-find.h (remove_prefix): Likewise. |
| * gcc-ar.c: Remove smartness of lookup. |
| |
| 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (*call_indirect_aix<mode>, |
| *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>, |
| *call_value_indirect_elfv2<mode>): Add correct mode to the unspec. |
| |
| 2017-10-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82580 |
| * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2. |
| (setcc + and to xor + setcc): New peephole2. |
| |
| 2017-10-19 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Test Directives, Variants of |
| dg-require-support): Add dg-require-stack-size. |
| |
| 2017-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/82517 |
| * gimplify.c (gimplify_decl_expr): Do not instrument variables |
| that have a large alignment. |
| (gimplify_target_expr): Likewise. |
| |
| 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/82602 |
| * ira.c (rtx_moveable_p): Return false for volatile asm. |
| |
| 2017-10-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82580 |
| * config/i386/i386-modes.def (CCGZ): New CC mode. |
| * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern. |
| * config/i386/predicates.md (ix86_comparison_operator): |
| Handle CCGZmode. |
| * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: |
| Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons |
| with double-word subtraction. |
| (put_condition_code): Handle CCGZmode. |
| |
| 2017-10-18 Aldy Hernandez <aldyh@redhat.com> |
| |
| * wide-int.cc (debug (const wide_int &)): New. |
| (debug (const wide_int *)): New. |
| (debug (const widest_int &)): New. |
| (debug (const widest_int *)): New. |
| |
| 2017-10-18 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/82556 |
| * lra-constraints.c (curr_insn_transform): Use non-input operand |
| instead of output one for matched reload. |
| |
| 2017-10-18 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. |
| (tree-ssa-loop-ivopts.h): New header file. |
| (struct builtin_info): New fields. |
| (classify_builtin_1): Compute and record base and offset parts for |
| memset builtin partition by calling strip_offset. |
| (offset_cmp, fuse_memset_builtins): New functions. |
| (finalize_partitions): Fuse adjacent memset partitions by calling |
| above function. |
| * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration. |
| Expose the interface. |
| * tree-ssa-loop-ivopts.h (strip_offset): New declaration. |
| |
| 2017-10-18 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/82574 |
| * tree-loop-distribution.c (find_single_drs): New parameter. Check |
| that data reference must be executed exactly once per iteration |
| against the outermost loop in nest. |
| (classify_partition): Update call to above function. |
| |
| 2017-10-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82591 |
| * graphite.c (graphite_transform_loops): Move code gen message |
| printing ... |
| * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): |
| Here. Handle scop_to_isl_ast failing. |
| (scop_to_isl_ast): Limit the number of ISL operations. |
| |
| 2017-10-18 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::set_rename): Simplify. |
| (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline... |
| (graphite_copy_stmts_from_block): ... here. |
| (copy_bb_and_scalar_dependences): Simplify. |
| (add_parameters_to_ivs_params): Canonicalize. |
| (generate_entry_out_of_ssa_copies): Simplify. |
| * graphite-sese-to-poly.c (extract_affine_name): Simplify |
| by passing in ISL dimension. |
| (parameter_index_in_region_1): Rename to ... |
| (parameter_index_in_region): ... this. |
| (extract_affine): Adjust assert, pass down parameter index. |
| (add_param_constraints): Use range-info when available. |
| (build_scop_context): Adjust. |
| * sese.c (new_sese_info): Adjust. |
| (free_sese_info): Likewise. |
| * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t): |
| Remove unused typedefs. |
| (struct sese_info_t): Simplify rename_map, remove incomplete_phis. |
| |
| 2017-10-18 Martin Liska <mliska@suse.cz> |
| |
| * combine.c (simplify_compare_const): Add gcc_fallthrough. |
| |
| 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function. |
| (s390_sched_init): Do not reset s390_sched_state if we entered the |
| current basic block via a fallthru edge and all others are unlikely. |
| |
| 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (NUM_SIDES): New variable. |
| (LONGRUNNING_THRESHOLD): New variable. |
| (LATENCY_FACTOR): New variable. |
| (s390_sched_score): Decrease score for long-running instructions on |
| wrong side. |
| (s390_sched_variable_issue): Perform bookkeeping for long-running |
| instructions. |
| |
| 2017-10-18 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): |
| Simplify with removal of the parameter rename map. |
| (set_rename): Likewise. |
| (should_copy_to_new_region): Likewise. |
| (graphite_copy_stmts_from_block): Likewise. |
| (copy_bb_and_scalar_dependences): Remove initialization of |
| unused copied_bb_map. |
| (copy_def): Remove. |
| (copy_internal_parameters): Likewise. |
| (graphite_regenerate_ast_isl): Do not call copy_internal_parameters. |
| * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): |
| Use INTEGRAL_TYPE_P. |
| (parameter_index_in_region_1): Rename to ... |
| (assign_parameter_index_in_region): ... this. Assert we have |
| a parameter we handle. |
| (scan_tree_for_params): Adjust. |
| * sese.h (parameter_rename_map_t): Remove. |
| (struct sese_info_t): Remove unused parameter_rename_map and |
| copied_bb_map members. |
| * sese.c (new_sese_info): Adjust. |
| (free_sese_info): Likewise. |
| |
| 2017-10-18 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/82545 |
| * asan.c (asan_expand_poison_ifn): Do not put gimple stmt |
| on an abnormal edge. |
| |
| 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * doc/invoke.texi (ffunction-sections and fdata-sections): |
| Update. |
| |
| 2017-10-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if |
| the use statement can throw internally. |
| |
| 2017-10-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/visium.c (visium_select_cc_mode): Return CCmode for |
| any RTX present on the RHS of a SET. |
| * compare-elim.c (try_eliminate_compare): Restore comment. |
| |
| 2017-10-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * langhooks.h (struct lang_hooks): Document that tree_size langhook |
| may be also called on tcc_type nodes. |
| * langhooks.c (lhd_tree_size): Likewise. |
| |
| 2017-10-17 David Malcolm <dmalcolm@redhat.com> |
| |
| * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of |
| format_warning_at_substring. |
| (maybe_warn): Convert source_range * param to a location_t. Pass |
| UNKNOWN_LOCATION rather than NULL to fmtwarn. |
| (format_directive): Remove code to extract source_ranges and |
| source_range * in favor of just a location_t. |
| (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to |
| fmtwarn. |
| * substring-locations.c (format_warning_va): Convert |
| source_range * param to a location_t. |
| (format_warning_at_substring): Likewise. |
| * substring-locations.h (format_warning_va): Likewise. |
| (format_warning_at_substring): Likewise. |
| |
| 2017-10-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * target.h (enum vect_cost_for_stmt): Add vec_gather_load and |
| vec_scatter_store |
| * tree-vect-stmts.c (record_stmt_cost): Make difference between normal |
| and scatter/gather ops. |
| |
| * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add |
| vec_gather_load and vec_scatter_store. |
| * arm/arm.c (arm_builtin_vectorization_cost): Likewise. |
| * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise. |
| * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise. |
| * s390/s390.c (s390_builtin_vectorization_cost): Likewise. |
| * spu/spu.c (spu_builtin_vectorization_cost): Likewise. |
| * i386/i386.c (x86_builtin_vectorization_cost): Likewise. |
| |
| 2017-10-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * reg-stack.c (compare_for_stack_reg): Add bool argument. |
| Detect FTST instruction and handle its register pops. Only pop |
| second operand if can_pop_second_op is true. |
| (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to |
| set can_pop_second_op to false in the compare_for_stack_reg call. |
| |
| * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call |
| output_fp_compare for stack register operands. |
| * config/i386/i386.c (output_fp_compare): Do not output SSE compare |
| instructions here. Do not emit stack register pops here. Assert |
| that FCOMPP pops next to top stack register. Rewrite function. |
| |
| 2017-10-17 Nathan Sidwell <nathan@acm.org> |
| |
| PR middle-end/82577 |
| * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P, |
| use DECL_ASSEMBLER_NAME_RAW. |
| |
| PR middle-end/82546 |
| * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown |
| TYPE nodes. |
| |
| 2017-10-17 Qing Zhao <qing.zhao@oracle.com> |
| Wilco Dijkstra <wilco.dijkstra@arm.com> |
| |
| * builtins.c (expand_builtin_update_setjmp_buf): Add a |
| converstion to Pmode from the buf_addr. |
| |
| 2017-10-17 Richard Biener <rguenther@suse.de> |
| |
| * graphite-dependences.c (scop_get_reads_and_writes): Change |
| output parameters to references. |
| |
| 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| PR 71026/tree-optimization |
| * fold-const.c (distribute_real_division): Removed. |
| (fold_binary_loc): Remove calls to distribute_real_divison. |
| |
| 2017-10-17 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c |
| (scop_detection::stmt_has_simple_data_refs_p): Always use |
| the full nest as region. |
| (try_generate_gimple_bb): Likewise. |
| * sese.c (scalar_evolution_in_region): Simplify now that |
| SCEV can handle instantiation in regions. |
| * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate |
| in the non-loop part of a function if requested. |
| |
| 2017-10-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82563 |
| * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies): |
| New function. |
| (graphite_regenerate_ast_isl): Call it. |
| * graphite-scop-detection.c (build_scops): Remove entry edge split. |
| |
| 2017-10-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82549 |
| * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1): |
| Formatting fixes. Instead of calling make_bit_field_ref with negative |
| bitpos return 0. |
| |
| 2017-10-17 Olga Makhotina <olga.makhotina@intel.com> |
| |
| * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd, |
| _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20 |
| _mm_maskz_reduce_ss): New. |
| * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask, |
| __builtin_ia32_reducess_mask): Ditto.. |
| (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove. |
| * config/i386/sse.md (reduces<mode>): Renamed to ... |
| (reduces<mode><mask_scalar_name>): ... this. |
| (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): |
| Changed to ... |
| (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>| |
| %0<mask_scalar_operand4>, %1, %2, %3}): ... this. |
| |
| 2017-10-16 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Add unique-ptr-tests.o. |
| * selftest-run-tests.c (selftest::run_tests): Call |
| selftest::unique_ptr_tests_cc_tests. |
| * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl. |
| * unique-ptr-tests.cc: New file. |
| |
| 2017-10-16 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR sanitizer/82353 |
| * lra.c (collect_non_operand_hard_regs): Don't ignore operator |
| locations. |
| * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. |
| (make_hard_regno_born, make_hard_regno_dead): Update |
| bb_killed_pseudos and bb_gen_pseudos for fixed regs. |
| |
| 2017-10-16 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dse.c (live_bytes_read): Fix thinko. |
| |
| 2017-10-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune-costs.h (znver1_cost): Fix move cost tables. |
| |
| 2017-10-16 Olivier Hainque <hainque@adacore.com> |
| |
| * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default |
| with_cpu if we were configured for an e500v2 target cpu name. |
| |
| 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-m33): Add nodsp option. |
| * doc/invoke.texi: Document +nodsp as a valid extension for |
| -mcpu=cortex-m33. |
| |
| 2017-10-16 Martin Liska <mliska@suse.cz> |
| |
| * sbitmap.c (bitmap_bit_in_range_p_checking): New function. |
| (test_set_range): Likewise. |
| (test_range_functions): Rename to ... |
| (test_bit_in_range): ... this. |
| (sbitmap_c_tests): Add new test. |
| |
| 2017-10-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): |
| New. |
| (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New. |
| (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New. |
| |
| 2017-10-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_types_quadopu_lane_qualifiers): New. |
| (TYPES_QUADOPU_LANE): New. |
| * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New. |
| (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New. |
| (aarch64_<sur>dot_laneq<vsi2qi>): New. |
| * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New. |
| (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New. |
| * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT. |
| (Vdottype, DOTPROD): New. |
| (sur): Add SDOT and UDOT. |
| |
| 2017-10-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New. |
| (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): |
| Add TARGET_DOTPROD. |
| * config/aarch64/aarch64-option-extensions.def (dotprod): New. |
| * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): |
| Enable TARGET_DOTPROD. |
| (cortex-a75.cortex-a55): Likewise. |
| * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod. |
| |
| 2017-10-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New. |
| (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): |
| New. |
| * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): |
| New. |
| * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New. |
| (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New. |
| * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New. |
| (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New. |
| * config/arm/types.md (neon_dot, neon_dot_q): New. |
| * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U. |
| |
| 2017-10-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm.h (TARGET_DOTPROD): New. |
| * config/arm/arm.c (arm_arch_dotprod): New. |
| (arm_option_reconfigure_globals): Add arm_arch_dotprod. |
| * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New. |
| * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod. |
| (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New. |
| (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL. |
| * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod. |
| * doc/invoke.texi (armv8.2-a): Document dotprod |
| |
| 2017-10-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (ix86_vec_cost): New function. |
| (ix86_rtx_costs): Handle vector operations better. |
| * i386.h (struct processor_costs): Add sse_op, fmasd, fmass. |
| * x86-tune-costs.h: Add new costs to all tables. |
| |
| 2017-10-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386.c (ix86_rtx_costs): Make difference between x87 and SSE |
| operations. |
| * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss, |
| divsd, sqrtss and sqrtsd |
| * x86-tune-costs.h: Add new entries to all costs. |
| (znver1_cost): Fix to match real instruction latencies. |
| |
| 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| Michael Collison <michael.collison@arm.com> |
| |
| * compare-elim.c: Include emit-rtl.h. |
| (can_merge_compare_into_arith): New function. |
| (try_validate_parallel): Likewise. |
| (try_merge_compare): Likewise. |
| (try_eliminate_compare): Call the above when no previous clobber |
| is available. |
| (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN |
| dataflow problems. |
| |
| 2017-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/62263 |
| PR middle-end/82498 |
| * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle |
| up to 2 preparation statements for ASSIGN in MIDDLE_BB. |
| |
| PR middle-end/62263 |
| PR middle-end/82498 |
| * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N] |
| to be any operand_equal_p operands. For & (B - 1) require |
| B to be power of 2. Recognize |
| (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns. |
| |
| 2017-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR bootstrap/82553 |
| * optabs.c (expand_memory_blockage): Fix call of |
| targetm.have_memory_blockage. |
| |
| 2017-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/82548 |
| * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*, |
| x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append |
| objects to extra_objs instead of overwriting it. |
| |
| 2017-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): |
| Use any_fp_register_operand as operand[3] predicate. Simplify |
| equality test for operands[2] and operands[4] memory location. |
| (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. |
| (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New. |
| (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. |
| (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use |
| any_fp_register_operand as operand[1] predicate. Simplify |
| equality test for operands[0] and operands[3] memory location. |
| (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. |
| (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New. |
| (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto. |
| |
| 2017-10-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * target-insns.def: Add memory_blockage. |
| * optabs.c (expand_memory_blockage): New function. |
| (expand_asm_memory_barrier): Rename ... |
| (expand_asm_memory_blockage): ... to this. |
| (expand_mem_thread_fence): Call expand_memory_blockage |
| instead of expand_asm_memory_barrier. |
| (expand_mem_singnal_fence): Ditto. |
| (expand_atomic_load): Ditto. |
| (expand_atomic_store): Ditto. |
| * doc/md.texi (Standard Pattern Names For Generation): |
| Document memory_blockage instruction pattern. |
| |
| 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com> |
| |
| * config/rl78/rl78.c (rl78_emit_libcall): New function. |
| * config/rl78/rl78-protos.h (rl78_emit_libcall): New function. |
| * config/rl78/rl78.md: New define_expand "adddi3". |
| |
| 2017-10-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfghooks.c (verify_flow_info): Disable check that all probabilities |
| are set correctly. |
| |
| 2017-10-13 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly. |
| |
| 2017-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82274 |
| * internal-fn.c (expand_mul_overflow): If both operands have |
| the same highpart of -1 or 0 and the topmost bit of lowpart |
| is different, overflow is if res <= 0 rather than res < 0. |
| |
| 2017-10-13 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove |
| TARGET_P9_VECTOR code for unaligned_load case. |
| |
| 2017-10-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfghooks.c (verify_flow_info): Check that edge probabilities are set. |
| |
| 2017-10-13 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-core.h (tree_contains_struct): Make bool. |
| * tree.c (tree_contains_struct): Likewise. |
| * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom. |
| (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON, |
| MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL, |
| MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS, |
| MARK_TS_DECL_NON_COMMON): Likewise, use comma operator. |
| |
| 2017-10-13 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused |
| parameters and dominance check. |
| (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust. |
| (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise. |
| (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl): |
| Do not update SSA form here or do intermediate IL verification. |
| * graphite.c: Include tree-ssa.h and tree-into-ssa.h. |
| (graphite_initialize): Remove check on the number of loops in |
| the function and inline into graphite_transform_loops. |
| (graphite_finalize): Inline into graphite_transform_loops. |
| (graphite_transform_loops): Perform SSA update and IL verification |
| here. |
| * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove. |
| |
| 2017-10-13 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (max_mode_int_precision, |
| graphite_expression_type_precision): Avoid global constructor |
| by moving ... |
| (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here. |
| (translate_isl_ast_to_gimple::graphite_expr_type): Add type member. |
| (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it. |
| (translate_isl_ast_to_gimple::build_iv_mapping): Likewise. |
| (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise. |
| * graphite-sese-to-poly.c (build_original_schedule): Return nothing. |
| |
| 2017-10-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/82499 |
| * config/i386/i386.h (ix86_red_zone_size): New. |
| * config/i386/i386.md (push peephole2s): Replace |
| "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0". |
| |
| 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (can_change_dest_mode): Reject changes in |
| REGMODE_NATURAL_SIZE. |
| |
| 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE. |
| (expand_debug_source_expr): Likewise. |
| * combine.c (combine_simplify_rtx): Likewise. |
| * cse.c (fold_rtx): Likewise. |
| * fwprop.c (canonicalize_address): Likewise. |
| * targhooks.c (default_shift_truncation_mask): Likewise. |
| |
| 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE. |
| (widened_mode): Likewise. |
| (expand_unop): Likewise. |
| * ree.c (transform_ifelse): Likewise. |
| (merge_def_and_ext): Likewise. |
| (combine_reaching_defs): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset. |
| * combine.c (gen_lowpart_for_combine): Likewise. |
| * dwarf2out.c (rtl_for_decl_location): Likewise. |
| * final.c (alter_subreg): Likewise. |
| * rtlhooks.c (gen_lowpart_general): Likewise. |
| (gen_lowpart_if_possible): Likewise. |
| |
| 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * calls.c (expand_call): Use subreg_lowpart_offset. |
| * cse.c (cse_insn): Likewise. |
| * regcprop.c (copy_value): Likewise. |
| (copyprop_hardreg_forward_1): Likewise. |
| |
| 2017-10-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82524 |
| * config/i386/i386.md (addqi_ext_1, andqi_ext_1, |
| *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change |
| =Q constraints to +Q and into insn condition add check |
| that operands[0] and operands[1] are equal. |
| (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change |
| =Q constraints to +Q and into insn condition add check |
| that operands[0] is equal to either operands[1] or operands[2]. |
| |
| PR target/82498 |
| * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups, |
| instead of handling MINUS_EXPR twice (once for each argument), |
| canonicalize operand order and handle just once, use rtype where |
| possible. Handle (A << B) | (A >> (-B & (Z - 1))). |
| |
| PR target/82498 |
| * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow |
| any values of __C while still being pattern recognizable as a simple |
| rotate instruction. |
| |
| 2017-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82451 |
| Revert |
| 2017-10-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82355 |
| * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build |
| a mapping for the enclosing loop but avoid generating one for |
| the loop tree root. |
| (copy_bb_and_scalar_dependences): Remove premature codegen |
| error on PHIs in blocks duplicated into multiple places. |
| * graphite-scop-detection.c |
| (scop_detection::stmt_has_simple_data_refs_p): For a loop not |
| in the region use it as loop and nest to analyze the DR in. |
| (try_generate_gimple_bb): Likewise. |
| * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. |
| (add_loop_constraints): For blocks in a loop not in the region |
| create a dimension with a single iteration. |
| * sese.h (gbb_loop_at_index): Remove assert. |
| |
| * cfgloop.c (loop_preheader_edge): For the loop tree root |
| return the single successor of the entry block. |
| * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): |
| Reset the SCEV hashtable and niters. |
| * graphite-scop-detection.c |
| (scop_detection::graphite_can_represent_scev): Add SCOP parameter, |
| assert that we only have POLYNOMIAL_CHREC that vary in loops |
| contained in the region. |
| (scop_detection::graphite_can_represent_expr): Adjust. |
| (scop_detection::stmt_has_simple_data_refs_p): For loops |
| not in the region set loop to NULL. The nest is now the |
| entry edge to the region. |
| (try_generate_gimple_bb): Likewise. |
| * sese.c (scalar_evolution_in_region): Adjust for |
| instantiate_scev change. |
| * tree-data-ref.h (graphite_find_data_references_in_stmt): |
| Make nest parameter the edge into the region. |
| (create_data_ref): Likewise. |
| * tree-data-ref.c (dr_analyze_indices): Make nest parameter an |
| entry edge into a region and adjust instantiate_scev calls. |
| (create_data_ref): Likewise. |
| (graphite_find_data_references_in_stmt): Likewise. |
| (find_data_references_in_stmt): Pass the loop preheader edge |
| from the nest argument. |
| * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below |
| parameter the edge into the region. |
| (instantiate_parameters): Use the loop preheader edge as entry. |
| * tree-scalar-evolution.c (analyze_scalar_evolution): Handle |
| NULL loop. |
| (get_instantiated_value_entry): Make instantiate_below parameter |
| the edge into the region. |
| (instantiate_scev_name): Likewise. Adjust dominance checks, |
| when we cannot use loop-based instantiation instantiate by |
| walking use-def chains. |
| (instantiate_scev_poly): Adjust. |
| (instantiate_scev_binary): Likewise. |
| (instantiate_scev_convert): Likewise. |
| (instantiate_scev_not): Likewise. |
| (instantiate_array_ref): Remove. |
| (instantiate_scev_3): Likewise. |
| (instantiate_scev_2): Likewise. |
| (instantiate_scev_1): Likewise. |
| (instantiate_scev_r): Do not blindly handle N-operand trees. |
| Do not instantiate array-refs. Handle all constants and invariants. |
| (instantiate_scev): Make instantiate_below parameter |
| the edge into the region. |
| (resolve_mixers): Use the loop preheader edge for the region |
| parameter to instantiate_scev_r. |
| * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust. |
| |
| 2017-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82525 |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split |
| out from ... |
| (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here. |
| Fail code generation when we cannot represent the isl integer. |
| (binary_op_to_tree): Elide modulo operations that are no-ops |
| in the type we code generate. Remove now superfluous code |
| generation errors. |
| |
| 2017-10-13 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove. |
| (scop_detection::harmful_loop_in_region): Remove premature |
| IV type restriction. |
| (scop_detection::graphite_can_represent_scev): We can handle |
| pointer IVs just fine. |
| |
| 2017-10-13 Alan Modra <amodra@gmail.com> |
| |
| * doc/extend.texi (Extended Asm <Clobbers>): Rename to |
| "Clobbers and Scratch Registers". Add paragraph on |
| alternative to clobbers for scratch registers and OpenBLAS |
| example. |
| |
| 2017-10-13 Alan Modra <amodra@gmail.com> |
| |
| * doc/extend.texi (Clobbers): Correct vax example. Delete old |
| example of a memory input for a string of known length. Move |
| commentary out of table. Add a number of new examples |
| covering array memory inputs. |
| |
| 2017-10-12 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/82493 |
| * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation. |
| (test_range_functions): New function. |
| (sbitmap_c_tests): Likewise. |
| * selftest-run-tests.c (selftest::run_tests): Run new tests. |
| * selftest.h (sbitmap_c_tests): New function. |
| |
| * tree-ssa-dse.c (live_bytes_read): Fix thinko. |
| |
| 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/amo.h: Fix spacing issue. |
| |
| 2017-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82498 |
| * config/i386/i386.md (*ashl<mode>3_mask_1, |
| *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1, |
| *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split |
| patterns. |
| |
| 2017-10-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.h (safe_scale_64bit): Fix GCC4.x path. |
| (profile_probability): Set max_probability |
| to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows |
| in temporaries. |
| * profile-count.c (profile_probability::differs_from_p): Do not |
| rely on max_probaiblity == 10000 |
| |
| 2017-10-12 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with |
| negative offsets. |
| |
| 2017-10-12 Martin Sebor <msebor@redhat.com> |
| |
| PR other/82301 |
| PR c/82435 |
| * cgraphunit.c (maybe_diag_incompatible_alias): New function. |
| (handle_alias_pairs): Call it. |
| * common.opt (-Wattribute-alias): New option. |
| * doc/extend.texi (ifunc attribute): Discuss C++ specifics. |
| * doc/invoke.texi (-Wattribute-alias): Document. |
| |
| 2017-10-12 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert |
| 2017-10-11 Vladimir Makarov <vmakarov@redhat.com> |
| PR sanitizer/82353 |
| * lra.c (collect_non_operand_hard_regs): Don't ignore operator |
| locations. |
| * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. |
| (make_hard_regno_born, make_hard_regno_dead): Update |
| bb_killed_pseudos and bb_gen_pseudos. |
| |
| 2017-10-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support. |
| |
| 2017-10-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_split_conditional_move): |
| Use std::swap instead of manually swapping. |
| (alpha_stdarg_optimize_hook): Ditto. |
| (alpha_canonicalize_comparison): Ditto. |
| |
| 2017-10-12 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (struct builtin_info): New struct. |
| (struct partition): Refactor fields into struct builtin_info. |
| (partition_free): Free struct builtin_info. |
| (build_size_arg_loc, build_addr_arg_loc): Delete. |
| (generate_memset_builtin, generate_memcpy_builtin): Get memory range |
| information from struct builtin_info. |
| (find_single_drs): New function refactored from classify_partition. |
| Also moved builtin validity checks to this function. |
| (compute_access_range, alloc_builtin): New functions. |
| (classify_builtin_st, classify_builtin_ldst): New functions. |
| (classify_partition): Refactor code into functions find_single_drs, |
| classify_builtin_st and classify_builtin_ldst. |
| (distribute_loop): Don't do runtime alias check when distributing |
| loop nest. |
| (find_seed_stmts_for_distribution): New function. |
| (pass_loop_distribution::execute): Refactor code finding seed |
| stmts into above function. Support distribution for the innermost |
| two-level loop nest. Adjust dump information. |
| |
| 2017-10-12 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c: Adjust the general comment. |
| (NUM_PARTITION_THRESHOLD): New macro. |
| (ssa_name_has_uses_outside_loop_p): Support loop nest distribution. |
| (classify_partition): Skip builtin pattern of loop nest's inner loop. |
| (merge_dep_scc_partitions): New parameter ignore_alias_p and use it |
| in call to build_partition_graph. |
| (finalize_partitions): New parameter. Make loop distribution more |
| conservative by fusing more partitions. |
| (distribute_loop): Don't do runtime alias check in case of loop nest |
| distribution. |
| (find_seed_stmts_for_distribution): New function. |
| (prepare_perfect_loop_nest): New function. |
| (pass_loop_distribution::execute): Refactor code finding seed stmts |
| and loop nest into above functions. Support loop nest distribution. |
| Adjust dump information accordingly. |
| |
| 2017-10-12 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (break_alias_scc_partitions): Add comment |
| and set PTYPE_SEQUENTIAL for merged partition. |
| |
| 2017-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/69728 |
| Revert |
| 2017-09-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/69728 |
| * graphite-sese-to-poly.c (schedule_error): New global. |
| (add_loop_schedule): Handle empty domain by failing the |
| schedule. |
| (build_original_schedule): Handle schedule_error. |
| |
| * graphite-sese-to-poly.c (add_loop_schedule): Handle empty |
| domain by returning an unchanged schedule. |
| |
| 2017-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * genrecog.c (validate_pattern): For VEC_SELECT verify that |
| CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1. |
| |
| 2017-10-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (TAGS): Merge all the *.def files into one pattern. |
| Handle params.def. |
| |
| 2017-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/82159 |
| * expr.c (store_field): Don't optimize away bitsize == 0 store |
| from CALL_EXPR with addressable return type. |
| |
| 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (TARGET_ISEL64): Delete. |
| * config/rs6000/rs6000.md (sel): Delete mode attribute. |
| (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>, |
| *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use |
| TARGET_ISEL instead of TARGET_ISEL<sel>. |
| |
| 2017-10-11 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c |
| (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl. |
| |
| 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (zero_constant, all_ones_constant): |
| Move up in file. |
| (reg_or_cint_operand): Fix comment. |
| (reg_or_zero_operand): New predicate. |
| * config/rs6000/rs6000-protos.h (output_isel): Delete. |
| * config/rs6000/rs6000.c (output_isel): Delete. |
| * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand |
| instead of reg_or_cint_operand. Output instruction directly (not via |
| output_isel). |
| (isel_unsigned_<mode>): Ditto. |
| (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of |
| gpc_reg_operand. Add an instruction alternative for this. Output |
| instruction directly. |
| (*isel_reversed_unsigned_<mode>): Ditto. |
| |
| 2017-10-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_canonicalize_comparison): New function. |
| (TARGET_CANONICALIZE_COMPARISON): Define. |
| |
| 2017-10-11 Qing Zhao <qing.zhao@oracle.com> |
| |
| PR target/81422 |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): |
| Check whether the dest is REG before adding REG_EQUIV note. |
| |
| 2017-10-11 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR sanitizer/82353 |
| * lra.c (collect_non_operand_hard_regs): Don't ignore operator |
| locations. |
| * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. |
| (make_hard_regno_born, make_hard_regno_dead): Update |
| bb_killed_pseudos and bb_gen_pseudos. |
| |
| 2017-10-11 Nathan Sidwell <nathan@acm.org> |
| |
| * incpath.h (enum incpath_kind): Name enum, prefix values. |
| (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind. |
| * incpath.c (heads, tails): Use INC_MAX. |
| (add_env_var_paths, add_standard_paths): Use incpath_kind. |
| (merge_include_chains, split_quote_chain, |
| register_include_chains): Update incpath_kind names. |
| (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind. |
| * config/darwin-c.c (add_system_framework_path): Update incpath_kind |
| names. |
| (add_framework_path, darwin_register_objc_includes): Likewise. |
| * config/vms/vms-c.c (vms_c_register_includes): Likewise. |
| |
| 2017-10-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): |
| Do not use float_operator operator predicate. |
| (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. |
| * config/i386/predicates.md (float_operator): Remove predicate. |
| |
| 2017-10-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern. |
| (*jccxf_i387): Ditto. |
| (*jcc<mode>_i387): Ditto. |
| (*jccu<mode>_i387): Ditto. |
| (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto. |
| (*jcc_*_i387 splitters): Remove. |
| * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype. |
| * config/i386/i386.c (ix86_split_fp_branch): Remove. |
| * config/i386/predicates.md (ix86_swapped_fp_comparison_operator): |
| Remove predicate. |
| |
| 2017-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.h (slow_safe_scale_64bit): New function. |
| (safe_scale_64bit): New inline. |
| (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit. |
| * profile-count.c: Include wide-int.h |
| (slow_safe_scale_64bit): New. |
| |
| 2017-10-11 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check |
| HAS_DECL_ASSEMBLER_NAME_P. |
| * gimple-expr.c (gimple_decl_printable_name: Check |
| HAS_DECL_ASSEMBLER_NAME_P too. |
| * ipa-utils.h (type_in_anonymous_namespace_p): Check |
| DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME. |
| (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL. |
| * passes.c (rest_of_decl_compilation): Check |
| HAS_DECL_ASSEMBLER_NAME_P too. |
| * recog.c (verify_changes): Likewise. |
| * tree-pretty-print.c (dump_decl_name): Likewise. |
| * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement. |
| |
| * tree.h (DECL_ASSEMBLER_NAME_RAW): New. |
| (SET_DECL_ASSEMBLER_NAME): Use it. |
| (DECL_ASSEMBLER_NAME_SET_P): Likewise. |
| (COPY_DECL_ASSEMBLER_NAME): Likewise. |
| * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW. |
| |
| 2017-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config.gcc (i386, x86_64): Add extra objects. |
| * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare. |
| (ix86_min_insn_size): Declare. |
| (ix86_issue_rate): Declare. |
| (ix86_adjust_cost): Declare. |
| (ia32_multipass_dfa_lookahead): Declare. |
| (ix86_macro_fusion_p): Declare. |
| (ix86_macro_fusion_pair_p): Declare. |
| (ix86_bd_has_dispatch): Declare. |
| (ix86_bd_do_dispatch): Declare. |
| (ix86_core2i7_init_hooks): Declare. |
| (ix86_atom_sched_reorder): Declare. |
| * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h. |
| (COSTS_N_BYTES): Move to x86-tune-costs.h. |
| (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h. |
| (rip_relative_addr_p): Rename to ... |
| (ix86_rip_relative_addr_p): ... this one; export. |
| (memory_address_length): Update. |
| (ix86_issue_rate): Move to x86-tune-sched.c. |
| (ix86_flags_dependent): Move to x86-tune-sched.c. |
| (ix86_agi_dependent): Move to x86-tune-sched.c. |
| (exact_dependency_1): Move to x86-tune-sched.c. |
| (exact_store_load_dependency): Move to x86-tune-sched.c. |
| (ix86_adjust_cost): Move to x86-tune-sched.c. |
| (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c. |
| (ix86_macro_fusion_p): Move to x86-tune-sched.c. |
| (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c. |
| (do_reorder_for_imul): Move to x86-tune-sched-atom.c. |
| (swap_top_of_ready_list): Move to x86-tune-sched-atom.c. |
| (ix86_sched_reorder): Move to x86-tune-sched-atom.c. |
| (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c. |
| (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c. |
| (min_insn_size): Rename to ... |
| (ix86_min_insn_size): ... this one; export. |
| (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c. |
| (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c. |
| (core2i7_first_cycle_multipass_backtrack): Move to |
| x86-tune-sched-core.c. |
| (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c. |
| (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c. |
| (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks. |
| (ix86_avoid_jump_mispredicts): Update. |
| (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c. |
| (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c. |
| (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c. |
| (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c. |
| (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c. |
| (MAX_INSN): Move to ix86-tune-sched-bd.c. |
| (MAX_IMM): Move to ix86-tune-sched-bd.c. |
| (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c. |
| (MAX_IMM_32): Move to ix86-tune-sched-bd.c. |
| (MAX_IMM_64): Move to ix86-tune-sched-bd.c. |
| (MAX_LOAD): Move to ix86-tune-sched-bd.c. |
| (MAX_STORE): Move to ix86-tune-sched-bd.c. |
| (BIG): Move to ix86-tune-sched-bd.c. |
| (enum dispatch_group): Move to ix86-tune-sched-bd.c. |
| (enum insn_path): Move to ix86-tune-sched-bd.c. |
| (get_mem_group): Move to ix86-tune-sched-bd.c. |
| (is_cmp): Move to ix86-tune-sched-bd.c. |
| (dispatch_violation): Move to ix86-tune-sched-bd.c. |
| (is_branch): Move to ix86-tune-sched-bd.c. |
| (is_prefetch): Move to ix86-tune-sched-bd.c. |
| (init_window): Move to ix86-tune-sched-bd.c. |
| (allocate_window): Move to ix86-tune-sched-bd.c. |
| (init_dispatch_sched): Move to ix86-tune-sched-bd.c. |
| (is_end_basic_block): Move to ix86-tune-sched-bd.c. |
| (process_end_window): Move to ix86-tune-sched-bd.c. |
| (allocate_next_window): Move to ix86-tune-sched-bd.c. |
| (find_constant): Move to ix86-tune-sched-bd.c. |
| (get_num_immediates): Move to ix86-tune-sched-bd.c. |
| (has_immediate): Move to ix86-tune-sched-bd.c. |
| (get_insn_path): Move to ix86-tune-sched-bd.c. |
| (get_insn_group): Move to ix86-tune-sched-bd.c. |
| (count_num_restricted): Move to ix86-tune-sched-bd.c. |
| (fits_dispatch_window): Move to ix86-tune-sched-bd.c. |
| (add_insn_window): Move to ix86-tune-sched-bd.c. |
| (add_to_dispatch_window): Move to ix86-tune-sched-bd.c. |
| (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c. |
| (debug_dispatch_window): Move to ix86-tune-sched-bd.c. |
| (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c. |
| (debug_ready_dispatch): Move to ix86-tune-sched-bd.c. |
| (do_dispatch): Move to ix86-tune-sched-bd.c. |
| (has_dispatch): Move to ix86-tune-sched-bd.c. |
| * config/i386/t-i386: Add new object files. |
| * config/i386/x86-tune-costs.h: New file. |
| * config/i386/x86-tune-sched-atom.c: New file. |
| * config/i386/x86-tune-sched-bd.c: New file. |
| * config/i386/x86-tune-sched-core.c: New file. |
| * config/i386/x86-tune-sched.c: New file. |
| |
| 2017-10-11 Liu Hao <lh_mouse@126.com> |
| |
| * pretty-print.c [_WIN32] (colorize_init): Remove. Use |
| the generic version below instead. |
| (should_colorize): Recognize Windows consoles as terminals |
| for MinGW targets. |
| * pretty-print.c [__MINGW32__] (write_all): New function. |
| [__MINGW32__] (find_esc_head): Likewise. |
| [__MINGW32__] (find_esc_terminator): Likewise. |
| [__MINGW32__] (eat_esc_sequence): Likewise. |
| [__MINGW32__] (mingw_ansi_fputs): New function that handles |
| ANSI escape codes. |
| (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs |
| for MinGW targets. |
| |
| 2017-10-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): |
| Properly call analyze_scalar_evolution with the loop of the stmt. |
| |
| 2017-10-11 Richard Biener <rguenther@suse.de> |
| |
| * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. |
| * tree-core.h (tree_base): Add chrec_var union member. |
| * tree.h (CHREC_VAR): Remove. |
| (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust. |
| * tree-chrec.h (build_polynomial_chrec): Adjust. |
| * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec. |
| * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE. |
| |
| 2017-10-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ... |
| * match.pd: ... here. |
| ((T) X == (T) Y): Relax condition. |
| |
| 2017-10-11 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/82472 |
| * tree-loop-distribution.c (sort_partitions_by_post_order): Refine |
| comment. |
| (break_alias_scc_partitions): Update postorder number. |
| |
| 2017-10-11 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/82490 |
| * opts.c (parse_no_sanitize_attribute): Do not use error_value |
| variable. |
| * opts.h (parse_no_sanitize_attribute): Remove last argument. |
| |
| 2017-10-11 Martin Liska <mliska@suse.cz> |
| |
| * print-rtl.c (print_insn): Move declaration of idbuf |
| to same scope as name. |
| |
| 2017-10-11 Martin Liska <mliska@suse.cz> |
| |
| Revert r253637: |
| |
| PR sanitizer/82484 |
| * sanopt.c (sanitize_rewrite_addressable_params): Do not handle |
| volatile arguments. |
| |
| 2017-10-11 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/82484 |
| * sanopt.c (sanitize_rewrite_addressable_params): Do not handle |
| volatile arguments. |
| |
| 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org> |
| |
| * config.gcc (default_gnu_indirect_function): Default to yes for |
| arm*-*-linux* with glibc. |
| |
| 2017-10-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-scalar-evolution.c (get_scalar_evolution): Handle |
| default-defs and types we do not want to analyze. |
| (interpret_loop_phi): Replace unreachable code with an assert. |
| (compute_scalar_evolution_in_loop): Remove and inline ... |
| (analyze_scalar_evolution_1): ... here, replacing condition with |
| what makes the intent clearer. Remove handling of cases |
| get_scalar_evolution now handles. |
| |
| 2017-10-10 Jim Wilson <wilson@tuliptree.org> |
| |
| PR rtl-optimization/81434 |
| * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update |
| comment for main loop. In sched_group_found if, also add checks for |
| pass and min_cost_group. |
| |
| 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (TARGET_INSN_COST): New. |
| (rs6000_insn_cost): New function. |
| * config/rs6000/rs6000.md (cost): New attribute. |
| |
| 2017-10-10 Jakub Jelinek <jakub@redhat.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/79565 |
| PR target/82483 |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add |
| OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq, |
| __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi. |
| (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly |
| to OPTION_MASK_ISA_AVX512VL - builtins that have both |
| OPTION_MASK_ISA_MMX and some other bit set require both |
| mmx and the ISAs without the mmx bit. |
| * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi, |
| __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps, |
| __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw, |
| __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub, |
| __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb, |
| __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi, |
| __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd, |
| __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw, |
| __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd, |
| __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd, |
| __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw, |
| __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb, |
| __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq, |
| __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr): |
| Add OPTION_MASK_ISA_MMX. |
| |
| 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config.gcc (armv7*-*-freebsd*): New target. |
| (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define. |
| |
| 2017-10-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, |
| X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right |
| spot in the file. |
| |
| 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * wide-int.h (wide_int_ref_storage): Make host_dependent_precision |
| a template parameter. |
| (WIDE_INT_REF_FOR): Update accordingly. |
| * tree.h (wi::int_traits <const_tree>): Delete. |
| (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs. |
| (wi::to_widest, wi::to_offset): Use them. Expand commentary. |
| (wi::tree_to_wide_ref): New typedef. |
| (wi::to_wide): New function. |
| * calls.c (get_size_range): Use wi::to_wide when operating on |
| trees as wide_ints. |
| * cgraph.c (cgraph_node::create_thunk): Likewise. |
| * config/i386/i386.c (ix86_data_alignment): Likewise. |
| (ix86_local_alignment): Likewise. |
| * dbxout.c (stabstr_O): Likewise. |
| * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise. |
| * expr.c (const_vector_from_tree): Likewise. |
| * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise. |
| * fold-const.c (may_negate_without_overflow_p, negate_expr_p) |
| (fold_negate_expr_1, int_const_binop_1, const_binop) |
| (fold_convert_const_int_from_real, optimize_bit_field_compare) |
| (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1) |
| (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr) |
| (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc) |
| (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const) |
| (fold_not_const, round_up_loc): Likewise. |
| * gimple-fold.c (gimple_fold_indirect_ref): Likewise. |
| * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise. |
| (alloca_call_type): Likewise. |
| * gimple.c (preprocess_case_label_vec_for_gimple): Likewise. |
| * godump.c (go_output_typedef): Likewise. |
| * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. |
| * internal-fn.c (get_min_precision): Likewise. |
| * ipa-cp.c (ipcp_store_vr_results): Likewise. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. |
| * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise. |
| (ipa_modify_call_arguments): Likewise. |
| * match.pd: Likewise. |
| * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise. |
| * print-tree.c (print_node_brief, print_node): Likewise. |
| * stmt.c (expand_case): Likewise. |
| * stor-layout.c (layout_type): Likewise. |
| * tree-affine.c (tree_to_aff_combination): Likewise. |
| * tree-cfg.c (group_case_labels_stmt): Likewise. |
| * tree-data-ref.c (dr_analyze_indices): Likewise. |
| (prune_runtime_alias_test_list): Likewise. |
| * tree-dump.c (dequeue_and_dump): Likewise. |
| * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise. |
| * tree-predcom.c (is_inv_store_elimination_chain): Likewise. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. |
| (simple_iv_with_niters): Likewise. |
| * tree-ssa-address.c (addr_for_mem_ref): Likewise. |
| * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise. |
| * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise. |
| * tree-ssa-loop-niter.c (split_to_var_and_offset) |
| (refine_value_range_using_guard, number_of_iterations_ne_max) |
| (number_of_iterations_lt_to_ne, number_of_iterations_lt) |
| (get_cst_init_from_scev, record_nonwrapping_iv) |
| (scev_var_range_cant_overflow): Likewise. |
| * tree-ssa-phiopt.c (minmax_replacement): Likewise. |
| * tree-ssa-pre.c (compute_avail): Likewise. |
| * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. |
| (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise. |
| * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. |
| * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise. |
| * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise. |
| * tree-switch-conversion.c (collect_switch_conv_info, array_value_type) |
| (dump_case_nodes, try_switch_expansion): Likewise. |
| * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise. |
| (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise. |
| (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise. |
| (overflow_comparison_p_1, register_edge_assert_for_2): Likewise. |
| (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits) |
| (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise. |
| (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise. |
| (evrp_dom_walker::before_dom_children): Likewise. |
| * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop) |
| (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2) |
| (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit) |
| (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise. |
| (get_type_static_bounds, num_ending_zeros, drop_tree_overflow) |
| (get_range_pos_neg): Likewise. |
| * ubsan.c (ubsan_expand_ptr_ifn): Likewise. |
| * config/darwin.c (darwin_mergeable_constant_section): Likewise. |
| * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise. |
| * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. |
| * config/avr/avr.c (avr_fold_builtin): Likewise. |
| * config/bfin/bfin.c (bfin_local_alignment): Likewise. |
| * config/msp430/msp430.c (msp430_attr): Likewise. |
| * config/nds32/nds32.c (nds32_insert_attributes): Likewise. |
| * config/powerpcspe/powerpcspe-c.c |
| (altivec_resolve_overloaded_builtin): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate) |
| (rs6000_expand_ternop_builtin): Likewise. |
| * config/rs6000/rs6000-c.c |
| (altivec_resolve_overloaded_builtin): Likewise. |
| * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise. |
| (rs6000_expand_ternop_builtin): Likewise. |
| * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise. |
| |
| 2017-10-10 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes |
| when copying loop nest with only one inner loop. |
| |
| 2017-10-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting |
| blocks if SCEV is active. |
| * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove |
| dead code. |
| (analyze_scalar_evolution): Handle cached evolutions the obvious way. |
| (scev_initialize): Assert we are not yet initialized. |
| |
| 2017-10-10 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (generate_loops_for_partition): Remove |
| inner loop's exit stmt by making it always exit the loop, otherwise |
| we would generate an infinite empty loop. |
| |
| 2017-10-10 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip |
| renaming variables in new preheader if it's deleted. |
| |
| 2017-10-10 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (struct partition): Remove unused field |
| loops of the structure. |
| (partition_alloc, partition_free): Ditto. |
| (build_rdg_partition_for_vertex): Ditto. |
| |
| 2017-10-09 Jeff Law <law@redhat.com> |
| |
| * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix |
| return type to match prototype and documentation. |
| |
| 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (processor_costs): Move to ... |
| * config/rs6000/rs6000.h: ... here. |
| (rs6000_cost): Declare. |
| |
| 2017-10-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * except.c (setjmp_fn): New global variable. |
| (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined. |
| (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP |
| if DONT_USE_BUILTIN_SETJMP is defined. |
| |
| 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * target.def (insn_cost): New hook. |
| * doc/tm.texi.in (TARGET_INSN_COST): New hook. |
| * doc/tm.texi: Regenerate. |
| * rtlanal.c (insn_cost): Use the new hook. |
| |
| 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (combine_validate_cost): Compute the new insn_cost, |
| not just pattern_cost. |
| (try_combine): Adjust comment. |
| |
| 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with |
| insn_cost. |
| * combine.c (uid_insn_cost): Adjust comment. |
| (combine_validate_cost): Adjust comment. Use pattern_cost instead |
| of insn_rtx_cost |
| (combine_instructions): Use insn_cost instead of insn_rtx_cost. |
| * dse.c (find_shift_sequence): Ditto. |
| * ifcvt.c (cheap_bb_rtx_cost_p): Ditto. |
| (bb_valid_for_noce_process_p): Use pattern_cost. |
| * rtl.h (insn_rtx_cost): Delete. |
| (pattern_cost): New prototype. |
| (insn_cost): New prototype. |
| * rtlanal.c (insn_rtx_cost): Rename to... |
| (pattern_cost): ... this. |
| (insn_cost): New. |
| |
| 2017-10-09 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*jcc_2): Remove insn pattern. |
| (*jcc<mode>_0_r_i387): Ditto. |
| (*jccxf_r_i387): Ditto. |
| (*jcc<mode>_r_i387): Ditto. |
| (*jccu<mode>_r_i387): Ditto. |
| (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto. |
| (*jcc): Rename from *jcc_1. |
| |
| 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process |
| deferred rescans after the lvx/stvx recombination pre-pass. |
| |
| 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic |
| memory operation instruction support. |
| * config.gcc (powerpc*-*-*): Include amo.h as an extra header. |
| (rs6000-ibm-aix[789]*): Likewise. |
| * doc/extend.texi (PowerPC Atomic Memory Operation Functions): |
| Document new functions. |
| |
| 2017-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82397 |
| * tree-data-ref.c (data_ref_compare_tree): Make sure to return |
| equality only for semantically equal trees. |
| |
| 2017-10-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82449 |
| * sese.c (scev_analyzable_p): Check whether the SCEV is linear. |
| * tree-chrec.h (evolution_function_is_constant_p): Adjust to |
| allow constant addresses. |
| * tree-chrec.c (scev_is_linear_expression): Constant evolutions |
| are linear. |
| |
| 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin |
| flags. |
| |
| 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/82463 |
| * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro |
| definitions. |
| |
| 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/82465 |
| * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags. |
| |
| 2017-10-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82464 |
| * config/s390/s390-builtins.def (s390_vec_xor_flt_a, |
| s390_vec_xor_flt_b, s390_vec_xor_flt_c): New. |
| |
| 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro. |
| (WI_BINARY_PREDICATE_RESULT): Likewise. |
| (wi::binary_traits::operator_result): New type. |
| (wi::binary_traits::predicate_result): Likewise. |
| (generic_wide_int::operator~, unary generic_wide_int::operator-) |
| (generic_wide_int::operator==, generic_wide_int::operator!=) |
| (generic_wide_int::operator&, generic_wide_int::and_not) |
| (generic_wide_int::operator|, generic_wide_int::or_not) |
| (generic_wide_int::operator^, generic_wide_int::operator+ |
| (binary generic_wide_int::operator-, generic_wide_int::operator*): |
| Delete. |
| (operator~, unary operator-, operator==, operator!=, operator&) |
| (operator|, operator^, operator+, binary operator-, operator*): New |
| functions. |
| * expr.c (get_inner_reference): Use wi::bit_and_not. |
| * fold-const.c (fold_binary_loc): Likewise. |
| * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise. |
| * tree-ssa-ccp.c (get_value_from_alignment): Likewise. |
| (bit_value_binop): Likewise. |
| * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise. |
| * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise. |
| (extract_range_from_binary_expr_1): Likewise. |
| (masked_increment): Likewise. |
| (simplify_bit_ops_using_ranges): Likewise. |
| |
| 2017-10-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/82416 |
| * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit. |
| * hsa-gen.c (hsa_extend_inttype_to_32bit): New function. |
| (hsa_type_for_scalar_tree_type): Use it. Always force min32int for |
| COMPLEX types. |
| (hsa_fixup_mov_insn_type): New function. |
| (hsa_op_with_type::get_in_type): Use it. |
| (hsa_build_append_simple_mov): Likewise. Allow sub-32bit |
| immediates in an assert. |
| (hsa_op_with_type::extend_int_to_32bit): New method. |
| (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary |
| types. Convert to dest type if necessary. |
| (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary. |
| (reg_for_gimple_ssa): Pass false as min32int to |
| hsa_type_for_scalar_tree_type. |
| (gen_hsa_addr): Fixup type when creating addresable temporary. |
| (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary. |
| (gen_hsa_unary_operation): Extend operands and convert to dest type if |
| necessary. Call hsa_fixup_mov_insn_type. |
| (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type, |
| extend operands and convert to dest type if necessary. |
| (gen_hsa_insns_for_operation_assignment): Extend operands and convert |
| to dest type if necessary. |
| (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest |
| if conversion nt necessary and size matches. |
| (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert |
| to dest type if necessary. |
| (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type. |
| (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if |
| necessary. |
| (gen_hsa_clrsb): Likewise. |
| (gen_hsa_ffs): Likewise. |
| (gen_hsa_divmod): Extend operands and convert to dest type if |
| necessary. |
| (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type. |
| |
| 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (conditional branch): Clean up formatting. |
| Remove empty default arguments. Use a brace block as output |
| statement. |
| (conditional return): Ditto. |
| (jump): Ditto. |
| (indirect_jump): Ditto. Use b%T0 instead of bctr/blr. |
| (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1): |
| Ditto. |
| (group_ending_nop): Ditto. |
| (doloop_end): Ditto. |
| (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto. |
| (splitters for those): Ditto. |
| |
| 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert |
| a conditional jump (and the compare for it) so that pc_rtx is the |
| last operand. |
| * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust |
| for the deleted and renamed ctr<mode>_internal[234] patterns. |
| * config/rs6000/rs6000.md: Delete second conditional branch pattern. |
| Delete second conditional return pattern. |
| (ctr<mode>_internal2): Delete this second bdnz pattern. |
| (ctr<mode>_internal3): Rename to ctr<mode>_internal2. |
| (ctr<mode>_internal4): Delete this second bdz pattern. |
| |
| 2017-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. |
| (always_initialized_rtx_for_ssa_name_p): New predicate. |
| * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA. |
| (finish_out_of_ssa): Free new field of SA. |
| * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare. |
| * tree-ssa-coalesce.c: Include tree-ssa.h. |
| (get_parm_default_def_partitions): Remove extern keyword. |
| (get_undefined_value_partitions): New function. |
| * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do |
| not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain |
| uninitialized bits. |
| * loop-iv.c (iv_get_reaching_def): Disqualify all subregs. |
| |
| 2017-10-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * builtins.def (BUILT_IN_SETJMP): Revert latest change. |
| |
| 2017-10-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops |
| for targets that preffer 128bit. |
| |
| 2017-10-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (has_dispatch): Disable for Ryzen. |
| |
| 2017-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P |
| on the target mem instead of RTX_FRAME_RELATED_P on the insn to |
| prevent DSE. |
| (thumb_set_return_address): Likewise. |
| |
| 2017-10-08 Olivier Hainque <hainque@adacore.com> |
| |
| * common/config/arm/arm-common.c (arm_except_unwind_info): |
| Handle DWARF2_UNWIND_INFO. |
| |
| 2017-10-07 Michael Collison <michael.collison@arm.com> |
| |
| * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3): |
| New pattern. |
| |
| 2017-10-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead |
| of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. |
| * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is |
| defined, force the creation of a new block for a dispatch label. |
| |
| 2017-10-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * invoke.texi (Wsuggest-attribute=cold): Document. |
| * common.opt (Wsuggest-attribute=cold): New |
| * ipa-pure-const.c (warn_function_cold): New function. |
| * predict.c (compute_function_frequency): Use it. |
| * predict.h (warn_function_cold): Declare. |
| |
| 2017-10-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns): |
| Update profile. |
| |
| 2017-10-06 Martin Liska <mliska@suse.cz> |
| |
| * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline |
| keyword for member functions. |
| (struct sanopt_tree_couple): New struct. |
| (struct sanopt_tree_couple_hash): New function. |
| (struct sanopt_ctx): Add new hash_map. |
| (has_dominating_ubsan_ptr_check): New function. |
| (record_ubsan_ptr_check_stmt): Likewise. |
| (maybe_optimize_ubsan_ptr_ifn): Likewise. |
| (sanopt_optimize_walker): Handle IFN_UBSAN_PTR. |
| (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW. |
| |
| 2017-10-06 Sudakshina Das <sudi.das@arm.com> |
| |
| PR target/82440 |
| * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call |
| aarch64_simd_valid_immediate on CONST_VECTORs. |
| (aarch64_reg_or_bic_imm): Likewise. |
| |
| 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/82396 |
| * haifa-sched.c (ready_sort_real): Disable qsort checking. |
| |
| 2017-10-06 Sebastian Pop <sebpop@gmail.com> |
| |
| * graphite-dependences.c (scop_get_reads): Move code to... |
| (scop_get_must_writes): Move code to... |
| (scop_get_may_writes): Move code to... |
| (scop_get_reads_and_writes): ... here. |
| (scop_get_dependences): Call scop_get_reads_and_writes. |
| |
| 2017-10-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82434 |
| * fold-const.h (can_native_encode_type_p, |
| can_native_encode_string_p): Remove. |
| * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL, |
| don't encode anything, just return what would be otherwise returned. |
| (native_encode_fixed, native_encode_complex, native_encode_vector): |
| Likewise. |
| (native_encode_string): Likewise. Inline by hand |
| can_native_encode_string_p. |
| (can_native_encode_type_p): Remove. |
| (can_native_encode_string_p): Remove. |
| * tree-vect-stmts.c (vectorizable_store): Instead of testing just |
| STRING_CSTs using can_native_encode_string_p, test all |
| CONSTANT_CLASS_P values using native_encode_expr with NULL ptr. |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last |
| argument from native_encode_expr. |
| (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr. |
| (pass_store_merging::execute): Don't unnecessarily look for 3 stmts, |
| but just 2. |
| |
| 2017-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82397 |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use |
| operand_equal_p but rely on data_ref_compare_tree for detecting |
| equalities. |
| (vect_analyze_data_ref_accesses): Use data_ref_compare_tree |
| to match up with dr_group_sort_cmp. |
| |
| 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/82322 |
| * config/s390/s390-builtins.def (s390_vfi): Define new overloaded |
| builtin. |
| * config/s390/s390-builtin-types.def: Regenerate. |
| |
| 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/82317 |
| * config/s390/s390-builtin-types.def: Regenerate. |
| * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4): |
| Change flag from B_VXE to B_VX. |
| (s390_vec_min_dbl): Remove B_VXE flag. |
| |
| 2017-10-06 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. |
| (translate_isl_ast_to_gimple::translate_pending_phi_nodes, |
| translate_isl_ast_to_gimple::is_valid_rename, |
| translate_isl_ast_to_gimple::get_rename, |
| translate_isl_ast_to_gimple::get_def_bb_for_const, |
| translate_isl_ast_to_gimple::get_new_name, |
| translate_isl_ast_to_gimple::collect_all_ssa_names, |
| translate_isl_ast_to_gimple::copy_loop_phi_args, |
| translate_isl_ast_to_gimple::collect_all_ssa_names, |
| translate_isl_ast_to_gimple::copy_loop_phi_args, |
| translate_isl_ast_to_gimple::copy_loop_phi_nodes, |
| translate_isl_ast_to_gimple::add_close_phis_to_merge_points, |
| translate_isl_ast_to_gimple::add_close_phis_to_outer_loops, |
| translate_isl_ast_to_gimple::copy_loop_close_phi_args, |
| translate_isl_ast_to_gimple::copy_loop_close_phi_nodes, |
| translate_isl_ast_to_gimple::copy_cond_phi_args, |
| translate_isl_ast_to_gimple::copy_cond_phi_nodes, |
| translate_isl_ast_to_gimple::edge_for_new_close_phis, |
| translate_isl_ast_to_gimple::add_phi_arg_for_new_expr, |
| translate_isl_ast_to_gimple::rename_uses, |
| translate_isl_ast_to_gimple::rename_all_uses): Remove. |
| (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify. |
| (set_rename_for_each_def): Likewise. |
| (graphite_copy_stmts_from_block): Handle debug stmt resetting |
| here. Handle rewriting SCEV analyzable uses here. |
| (copy_bb_and_scalar_dependences): Generate code for PHI |
| copy-in/outs. |
| (graphite_regenerate_ast_isl): Adjust. |
| * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch]. |
| (add_write, add_read): New functions. |
| (build_cross_bb_scalars_def): Use it and simplify. |
| (build_cross_bb_scalars_use): Likewise. |
| (graphite_find_cross_bb_scalar_vars): Inline into... |
| (try_generate_gimple_bb): ...here. Add dependences for PHIs, |
| simulating out-of-SSA. Compute liveout and add dependencies. |
| (build_scops): Force an empty entry block. |
| * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New |
| members. |
| (sese_build_liveouts): Declare. |
| (sese_trivially_empty_bb_p): Likewise. |
| * sese.c (sese_build_liveouts_bb): Properly handle PHIs, |
| compute liveout and debug_liveout. |
| (sese_bad_liveouts_use): Remove. |
| (sese_reset_debug_liveouts_bb): Likewise. |
| (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout. |
| (sese_build_liveouts): Build liveout and debug_liveout and store |
| it in region. |
| (new_sese_info): Adjust. |
| (free_sese_info): Likewise. |
| (sese_insert_phis_for_liveouts): Reset debug stmts from here, |
| do not build liveout here. |
| (move_sese_in_condition): Adjust region entry. |
| (scev_analyzable_p): Match up with chrec_apply requirements. |
| (sese_trivially_empty_bb_p): New. |
| * tree-into-ssa.c (get_reaching_def): Properly support generating |
| default-defs for incremental rewrite of anonymous names. |
| |
| 2017-10-06 Richard Biener <rguenther@suse.de> |
| |
| * graphite-sese-to-poly.c (extract_affine): For casts increasing |
| precision do not perform modulo reduction. |
| |
| 2017-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82436 |
| * tree-vect-slp.c (vect_supported_load_permutation_p): More |
| conservatively choose the vectorization factor when checking |
| whether we can perform the required load permutation. |
| (vect_transform_slp_perm_load): Assert when we may not fail. |
| |
| 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error |
| message for incompatible -msdata=* and -mcall-* options. |
| |
| 2017-10-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue |
| rate for post-reload scheduling. |
| |
| 2017-10-05 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New. |
| |
| 2017-10-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2) |
| to improve monte carlo in scimark. |
| |
| 2017-10-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost, |
| pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost, |
| athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost, |
| pentium4_cost, nocona_cost): Set reassociation width to 1. |
| (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation |
| width to 2 for fp operations and 1 otherwise. |
| (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6 |
| for int and fp. |
| (atom_cost): Set reassociation width to 2. |
| (slm_cost, generic_cost): Set fp reassociation width |
| to 2 and 1 otherwise. |
| (intel_cost): Set fp reassociation width to 4 and 1 otherwise. |
| (core_cost): Set fp reassociation width to 4 and vector to 2. |
| (ix86_reassociation_width): Rewrite using cost table; special case |
| plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS |
| and TARGET_AVX128_OPTIMAL. |
| * config/i386/i386.h (processor_costs): Add |
| reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp. |
| (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL, |
| TARGET_REASSOC_FP_TO_PARALLEL): Remove. |
| * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove. |
| (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove. |
| (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove. |
| |
| 2017-10-05 Nathan Sidwell <nathan@acm.org> |
| |
| * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour. |
| |
| 2017-10-05 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm.c (arm_test_fpu_data): New. |
| (arm_run_selftests): Call arm_test_fpu_data. |
| |
| 2017-10-04 Nathan Sidwell <nathan@acm.org> |
| |
| * toplev.c (toplev::main): Remove excess parens on pretty_printer |
| decl. |
| * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm. |
| |
| 2017-10-04 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New |
| check type for aarch64_simd_valid_immediate. |
| (aarch64_output_simd_mov_immediate): Update prototype. |
| (aarch64_simd_valid_immediate): Update prototype. |
| * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add |
| support for ORR-immediate. |
| (and<mode>3): modified pattern to add support for BIC-immediate. |
| * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function |
| now checks for valid immediate for BIC and ORR based on new enum |
| argument. |
| (aarch64_output_simd_mov_immediate): Function now used to output |
| BIC/ORR imm as well based on new enum argument. |
| * config/aarch64/constraints.md (Do): New vector immediate constraint. |
| (Db) : Likewise. |
| * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate. |
| (aarch64_reg_or_bic_imm): Likewise. |
| |
| 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vec_mergeh<mode>") |
| ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE. |
| |
| 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| Revert r253399: |
| |
| PR rtl-optimization/82396 |
| * haifa-sched.c (autopref_multipass_init): Simplify |
| initialization. |
| (autopref_rank_data): Simplify sort order. |
| * sched-int.h (autopref_multipass_data_): Remove |
| multi_mem_insn_p, min_offset and max_offset. |
| |
| 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * doc/sourcebuild.texi: Document vect_peeling_profitable. |
| |
| 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * doc/sourcebuild.texi: Document vect_intdouble_cvt and |
| vect_doubleint_cvt. |
| |
| 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * doc/sourcebuild.texi: Document vect_long_mult. |
| |
| 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/82413 |
| * fold-const.c (build_range_check): Use widest_int when comparing |
| the maximum ETYPE value with HIGH. |
| |
| 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/82396 |
| * haifa-sched.c (autopref_multipass_init): Simplify |
| initialization. |
| (autopref_rank_data): Simplify sort order. |
| * sched-int.h (autopref_multipass_data_): Remove |
| multi_mem_insn_p, min_offset and max_offset. |
| |
| 2017-10-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82381 |
| * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different |
| oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other |
| is not. |
| |
| PR tree-optimization/82374 |
| * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES, |
| DECL_FUNCTION_SPECIFIC_OPTIMIZATION, |
| DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from |
| current_function_decl to the new decl. |
| |
| 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new |
| helper macro for IEEE float128 hardware built-in functions. |
| (SQRTF128_ODD): Add built-in functions with the round-to-odd |
| semantics. |
| (TRUNCF128_ODD): Likewise. |
| (ADDF128_ODD): Likewise. |
| (SUBF128_ODD): Likewise. |
| (MULF128_ODD): Likewise. |
| (DIVF128_ODD): Likewise. |
| (FMAF128_ODD): Likewise. |
| * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to |
| UNSPEC_TRUNC_ROUND_TO_ODD. |
| (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise. |
| (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit |
| floating point round to odd instructions. |
| (UNSPEC_SUB_ROUND_TO_ODD): Likewise. |
| (UNSPEC_MUL_ROUND_TO_ODD): Likewise. |
| (UNSPEC_DIV_ROUND_TO_ODD): Likewise. |
| (UNSPEC_FMA_ROUND_TO_ODD): Likewise. |
| (UNSPEC_SQRT_ROUND_TO_ODD): Likewise. |
| (trunc<mode>sf2_hw): Change the truncate with round to odd |
| expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. |
| (add<mode>3_odd): Add insns for IEEE 128-bit floating point round |
| to odd hardware instructions. |
| (sub<mode>3_odd): Likewise. |
| (mul<mode>3_odd): Likewise. |
| (div<mode>3_odd): Likewise. |
| (sqrt<mode>2_odd): Likewise. |
| (fma<mode>4_odd): Likewise. |
| (fms<mode>4_odd): Likewise. |
| (nfma<mode>4_odd): Likewise. |
| (nfms<mode>4_odd): Likewise. |
| (trunc<mode>df2_odd): Change the truncate with round to odd |
| expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator |
| function. |
| * doc/extend.texi (PowerPC built-in functions): Update documentation |
| for existing IEEE float128-bit built-in functions. Add built-in |
| functions that generate the IEEE 128-bit floating point round to |
| odd instructions. |
| |
| 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/77729 |
| * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2 |
| to (X&(C1&~C2))|C2 transformations. |
| |
| 2017-10-03 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/82363 |
| * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable |
| mismatch, mark lacc written regardless of racc. |
| |
| 2017-10-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/82381 |
| * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check |
| stmt_to_insert nor wheather SSA_NAMEs are default defs. |
| Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal, |
| fallthrough into reassoc_stmt_dominates_stmt_p. |
| |
| PR target/82386 |
| * combine.c (combine_instructions): Don't combine in unreachable |
| basic blocks. |
| |
| 2017-10-02 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/80210 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite |
| function to not use the have_cpu variable. Do not set cpu_index, |
| rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT |
| or the default cpu. |
| (rs6000_valid_attribute_p): Remove duplicate initializations of |
| old_optimize and func_optimize. |
| (rs6000_pragma_target_parse): Call rs6000_activate_target_options (). |
| (rs6000_activate_target_options): Make global. |
| * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add |
| prototype. |
| |
| 2017-10-02 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 |
| if *poffset + *pmax_size overflows in HOST_WIDE_INT. |
| Set *poffset to 0 and *psize and *pmax_size to -1 if |
| *poffset + *psize overflows in HOST_WIDE_INT. |
| |
| PR tree-optimization/82387 |
| PR tree-optimization/82388 |
| PR tree-optimization/82389 |
| * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled |
| instead of live_bytes non-NULL. |
| |
| 2017-10-02 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/41076 |
| * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0" |
| alternative. |
| |
| 2017-10-02 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (set_codegen_error): With |
| -fchecking and --param graphite-allow-codegen-errors=0 ICE. |
| * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param. |
| |
| 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.h (wi::int_traits <const_tree>::decompose): Assert that the |
| requested precision matches the type's. |
| * calls.c (alloc_max_size): Calculate the new candidate size as |
| a widest_int and use wi::to_widest when comparing it with the |
| current candidate size. |
| * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with |
| zero rather than integer_zero_node. |
| * match.pd: Check for a no-op conversion before using wi::add |
| rather than after. Use tree_to_uhwi when summing small shift |
| counts into an unsigned int. |
| |
| 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| PR target/71307 |
| * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. |
| * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle |
| POINTER_AND_FP_REGS. |
| |
| 2017-10-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82355 |
| * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build |
| a mapping for the enclosing loop but avoid generating one for |
| the loop tree root. |
| (copy_bb_and_scalar_dependences): Remove premature codegen |
| error on PHIs in blocks duplicated into multiple places. |
| * graphite-scop-detection.c |
| (scop_detection::stmt_has_simple_data_refs_p): For a loop not |
| in the region use it as loop and nest to analyze the DR in. |
| (try_generate_gimple_bb): Likewise. |
| * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. |
| (add_loop_constraints): For blocks in a loop not in the region |
| create a dimension with a single iteration. |
| * sese.h (gbb_loop_at_index): Remove assert. |
| |
| 2017-10-01 Kevin Buettner <kevinb@redhat.com> |
| |
| * omp-expand.c (adjust_context_scope): New function. |
| (expand_parallel_call): Call adjust_context_scope. |
| |
| 2017-10-01 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Make this a method within the |
| dom_opt_dom_walker class with direct access to private members. |
| Add comments. Call test_for_singularity. |
| (dom_opt_dom_walker::before_dom_children): Corresponding changes. |
| (dom_opt_dom_walker::after_dom_children): Do not lazily initialize |
| m_dummy_cond anymore. |
| (class dom_opt_dom_walker): Initialize m_dummy_cond member in the |
| class ctor. |
| (pass_dominator:execute): Build the dummy_cond here and pass it |
| to the dom_opt_dom_walker ctor. |
| (test_for_singularity): New function. |
| |
| 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com> |
| Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing |
| netbsd.h, netbsd-stdint.h, and netbsd-elf.h. |
| (alpha*-*-netbsd*) Use nbsd_tm_file. |
| (arm*-*-netbsdelf*) Likewise. |
| (i[34567]86-*-netbsdelf*) Likewise. |
| (x86_64-*-netbsd*) Likewise. |
| (mips*-*-netbsd*) Likewise. |
| (powerpc-*-netbsd*) Likewise. |
| (sh*-*-netbsd*) Likewise. |
| (sparc-*-netbsdelf*) Likewise. |
| (sparc64-*-netbsd*) Likewise. |
| (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16 |
| to tm_defines. |
| (vax-*-netbsdelf*) Likewise. |
| * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8. |
| (UINT_FAST8_TYPE) Likewise. |
| (INT_FAST16_TYPE) Check CHAR_FAST16. |
| (UINT_FAST16_TYPE) Likewise. |
| |
| 2017-09-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82361 |
| * config/i386/i386.md |
| (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split. |
| (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1, |
| *divmodsi4_zext_2): New define_insn_and_split. |
| (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn. |
| (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split. |
| (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1, |
| *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2): |
| New define_insn_and_split. |
| (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn. |
| * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or |
| operands[1] having DImode when mode is SImode. |
| |
| * config/i386/i386.c (ix86_split_idivmod): Use mode instead of |
| always SImode for DIV and MOD in REG_EQUAL notes. |
| |
| 2017-09-29 Yury Gribov <tetra2005@gmail.com> |
| |
| PR middle-end/82319 |
| * match.pd: Fix handling of NaNs in pattern. |
| |
| 2017-09-29 Jeff Law <law@redhat.com> |
| |
| * sbitmap.c (bitmap_bit_in_range_p): New function. |
| * sbitmap.h (bitmap_bit_in_range_p): Prototype. |
| * tree-ssa-dse.c (live_bytes_read): New function. |
| (dse_classify_store): Ignore reads of dead bytes. |
| |
| * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix |
| typos and whitespace errors. |
| * config/i386/predicates.md (address_no_seg_operand): Likewise. |
| * config/s390/s390.c (s390_emit_prologue): Likewise. |
| |
| 2017-09-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/81481 |
| * ira-costs.c (scan_one_insn): Don't take into account PIC equiv |
| with a symbol for LRA. |
| |
| 2017-09-29 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/82338 |
| * lra-constraints.c (inherit_in_ebb): Check usage_insns check. |
| |
| 2017-09-29 Alexander Monakov <amonakov@ispras.ru> |
| |
| * genmodes.c (calc_wider_mode): Suppress qsort macro. |
| * system.h [CHECKING_P] (qsort): Redirect to qsort_chk. |
| (qsort_chk): Declare. |
| * vec.c [CHECKING_P] (qsort_chk_error): New static function. |
| (qsort_chk): New function. |
| |
| 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/82337 |
| * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a |
| phi definition if the PHI result appears in an abnormal PHI. |
| (find_basis_for_base_expr): Don't record a basis if the LHS of the |
| basis appears in an abnormal PHI. |
| |
| 2017-09-29 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::set_codegen_error): New function. |
| (binary_op_to_tree): Use it. |
| (get_rename_from_scev): Likewise. |
| (copy_loop_phi_nodes): Likewise. |
| (copy_bb_and_scalar_dependences): Likewise. |
| (translate_pending_phi_nodes): Likewise. |
| |
| 2017-09-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82339 |
| * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole |
| for movabsq $(i32 << shift), r64. |
| |
| 2017-09-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_print_operand_address_as): Do not check |
| index when encoding %esp as %rsp to avoid 0x67 prefix. |
| |
| 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com> |
| |
| * config/i386/i386.md (*movsf_internal, *movdf_internal): |
| Return 256-bit AVX modes for TARGET_PREFER_AVX256. |
| |
| 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security |
| Extensions with more than 16 double VFP registers. |
| (cmse_nonsecure_entry_clear_before_return): Remove second entry of |
| to_clear_mask and all code related to it. Replace the remaining |
| entry by a sbitmap and adapt code accordingly. |
| |
| 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brig-builtins.def: Change pure attributes to const. |
| |
| 2017-09-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * config.gcc (default_gnu_indirect_function): Default to yes for |
| sparc*-*-linux* with glibc. |
| |
| 2017-09-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/aarch64/aarch64.c (aarch64_elf_asm_constructor) |
| (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section |
| when creating .init_array and .fini_array sections with priority |
| specified. |
| |
| 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/71727 |
| * config/aarch64/aarch64.c |
| (aarch64_builtin_support_vector_misalignment): Always return false |
| when misalignment is unknown. |
| |
| 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise |
| this function to return false if the definition used by the swap |
| instruction is artificial, or if the memory address from which the |
| constant value is loaded is not represented by a base address held |
| in a register or if the base address register is a frame or stack |
| pointer. Additionally, return false if the base address of the |
| loaded constant is a SYMBOL_REF but is not considered to be a |
| constant. |
| (replace_swapped_load_constant): New function. |
| (rs6000_analyze_swaps): Add a new pass to replace a swap of a |
| loaded constant vector with a load of a swapped constant vector. |
| |
| 2017-09-27 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. |
| (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. |
| * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the |
| fctiw instruction. |
| |
| 2017-09-27 Alexander Monakov <amonakov@ispras.ru> |
| |
| * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns |
| first, always call autopref_rank_data otherwise. |
| |
| 2017-09-27 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c (find_scop_parameters): Move |
| loop bound handling ... |
| (gather_bbs::before_dom_children): ... here, avoiding the need |
| to build scop_info->loop_nest. |
| (record_loop_in_sese): Remove. |
| * sese.h (sese_info_t::loop_nest): Remove. |
| * sese.c (new_sese_info): Do not allocate loop_nest. |
| (free_sese_info): Do not free loop_nest. |
| |
| 2017-09-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/82159 |
| * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized |
| lhs from calls if the lhs has addressable type. |
| |
| 2017-09-27 Richard Biener <rguenther@suse.de> |
| |
| * graphite.h (scop::max_alias_set): New member. |
| * graphite-scop-detection.c: Remove references to non-existing |
| --param in comments. |
| (build_alias_sets): Record the maximum alias set used for drs. |
| (build_scops): Support zero as unlimited for |
| --param graphite-max-arrays-per-scop. |
| * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove |
| and inline into ... |
| (build_poly_sr_1): ... here. Compute alias set based on the |
| maximum alias set used for drs rather than |
| PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP |
| |
| 2017-09-27 Richard Biener <rguenther@suse.de> |
| |
| * graphite-optimize-isl.c (get_schedule_for_node_st): Allow |
| --param loop-block-tile-size=0 to disable tiling. |
| |
| 2017-09-27 Richard Biener <rguenther@suse.de> |
| |
| * doc/invoke.texi (graphite-max-bbs-per-function): Remove. |
| (graphite-max-nb-scop-params): Document special value zero. |
| * domwalk.h (dom_walker::STOP): New symbolical constant. |
| (dom_walker::dom_walker): Add optional parameter for bb to |
| RPO mapping. |
| (dom_walker::~dom_walker): Declare. |
| (dom_walker::before_dom_children): Document STOP return value. |
| (dom_walker::m_user_bb_to_rpo): New member. |
| (dom_walker::m_bb_to_rpo): Likewise. |
| * domwalk.c (dom_walker::dom_walker): Compute bb to RPO |
| mapping here if not provided by the user. |
| (dom_walker::~dom_walker): Free bb to RPO mapping if not |
| provided by the user. |
| (dom_walker::STOP): Define. |
| (dom_walker::walk): Do not compute bb to RPO mapping here. |
| Support STOP return value from before_dom_children to stop |
| walking. |
| * graphite-optimize-isl.c (optimize_isl): If the schedule |
| is the same still generate code if -fgraphite-identity |
| or -floop-parallelize-all are given. |
| * graphite-scop-detection.c: Include cfganal.h. |
| (gather_bbs::gather_bbs): Get and pass through bb to RPO |
| mapping. |
| (gather_bbs::before_dom_children): Return STOP for BBs |
| not in the region. |
| (build_scops): Compute bb to RPO mapping and pass it to |
| the domwalk. Treat --param graphite-max-nb-scop-params=0 |
| as not limiting the number of params. |
| * graphite.c (graphite_initialize): Remove limit on the |
| number of basic-blocks in a function. |
| * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove. |
| (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented |
| default value of 10. |
| |
| 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): |
| Adjust code to eliminate needing to do the shift right 32-bits |
| operation after XSCVDPSPN. |
| |
| 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * match.pd ((X / Y) == 0 -> X < Y): New pattern. |
| ((X / Y) != 0 -> X >= Y): Likewise. |
| |
| 2017-09-26 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, |
| P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins |
| vector unsigned char vec_xl_len_r (unsigned char *, size_t); |
| void vec_xst_len_r (vector unsigned char, unsigned char *, size_t); |
| * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines. |
| * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add |
| definitions and overloading. |
| * config/rs6000/rs6000.c (altivec_expand_builtin): Add case |
| statement for P9V_BUILTIN_XST_LEN_R. |
| (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL. |
| * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add |
| define_expand and define_insn for the instructions and builtins. |
| * doc/extend.texi: Update the built-in documentation file for the new |
| built-in functions. |
| * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add |
| define_insn for the instructions |
| |
| 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| PR target/39570 |
| * gcc/config/netbsd-protos.h: New file. |
| * gcc/config/netbsd.c: New file. |
| * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define. |
| * gcc/config/t-netbsd: New file. |
| * gcc/config.gcc (tm_p_file): Add netbsd-protos.h. |
| (tmake_file) Add t-netbsd. |
| (extra_objs) Add netbsd.o. |
| |
| 2017-09-26 Janus Weil <janus@gcc.gnu.org> |
| |
| PR fortran/82143 |
| PR fortran/82324 |
| * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16. |
| |
| 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do |
| sign extension from a vector register to a GPR by doing a 32-bit |
| direct move and then an EXTSW. |
| (extendsi<mode>2 splitter): Likewise. |
| (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift |
| right or vector extract after doing XSCVDPSPN. Use |
| zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to |
| the GPRs. |
| (movdi_from_sf_zero_ext): Likewise. |
| (reload_gpr_from_vsxsf): Likewise. |
| (p8_mfvsrd_4_disf): Delete, no longer used. |
| (movsi_from_df): Optimize converting a DFmode to a SFmode, and |
| then needing to move the SFmode to a GPR to use the XSCVDPSP |
| instruction instead of FRSP and XSCVDPSPN. |
| * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that |
| it is adjacent to the other XSCVSPDP insns. |
| (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow |
| SFmode to be in traditional Altivec registers. |
| (vsx_xscvdpspn): Eliminate useless alternative constraint. |
| (vsx_xscvspdpn): Likewise. |
| (vsx_xscvspdpn_scalar): Likewise. |
| |
| 2017-09-26 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (compare_access_positions): Put integral types first, |
| stabilize sorting of integral types, remove conditions putting |
| non-full-precision integers last. |
| (sort_and_splice_var_accesses): Disable scalarization if a |
| non-integert would be represented by a non-full-precision integer. |
| |
| 2017-09-26 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise. |
| * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise. |
| * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise. |
| * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end. |
| Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL] |
| conditionals inside the function instead of around it. Call |
| file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK. |
| (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end. |
| |
| 2017-09-26 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, |
| fold in ... |
| (scop_detection::build_scop_breadth): ... this. Removed. |
| (scop_detection::loop_is_valid_in_scop): Fold into single caller. |
| (scop_detection::harmful_stmt_in_bb): Likewise. |
| (scop_detection::graphite_can_represent_stmt): Likewise. |
| (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion. |
| (scop_detection::can_represent_loop): Remove recursion, fold in ... |
| (scop_detection::can_represent_loop_1): ... this. Removed. |
| (scop_detection::harmful_loop_in_region): Simplify after inlining |
| the above and remove more quadraticness. |
| (build_scops): Adjust. |
| * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless |
| quadraticness. |
| |
| 2017-09-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82267 |
| * config/i386/i386.c (ix86_print_operand_address_as): Only test |
| REGNO (base) == SP_REG if base is a REG. |
| |
| PR middle-end/35691 |
| * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time |
| if it is different SSA_NAME. |
| (optimize_range_tests_cmp_bitwise): New function. |
| (optimize_range_tests): Call it. |
| |
| 2017-09-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82321 |
| * graphite.c (canonicalize_loop_closed_ssa): Properly check |
| for the def being inside the loop. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vmslg"): Add missing operand in |
| assembler output. |
| * config/s390/s390-builtins.def: Fix constraint on op4. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_vec_compare): Use the new mode |
| independent expanders. |
| * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt") |
| ("vec_ordered", "vec_unordered"): New expanders. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode |
| for SFmode. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to |
| vec_unpacks_lo_v16qi. |
| ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("vec_unpacks_lo_v4sf") |
| ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df") |
| ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md ("const_shift_by_byte_operand"): New |
| predicate. |
| * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128 |
| and V16QI. |
| ("*vec_slb<mode>"): New insn pattern. |
| ("vec_shr_<mode>"): New expander. |
| * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander |
| and force the shift count operand to V16QImode. |
| ("vec_srb<mode>"): Set shift count mode to V16QI. |
| |
| 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("vec_widen_umult_lo_<mode>") |
| ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>") |
| ("vec_widen_smult_hi_<mode>"): New expander definitions. |
| |
| 2017-09-26 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/82175 |
| * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas. |
| |
| 2017-09-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82320 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef |
| isn't a change. |
| |
| 2017-09-25 Jeff Law <law@redhat.com> |
| |
| * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update |
| prototype for new argument. |
| * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function, |
| mostly extracted from rs6000_emit_allocate_stack. |
| (rs6000_emit_probe_stack_range_stack_clash): New function. |
| (rs6000_emit_allocate_stack): Call |
| rs6000_emit_probe_stack_range_stack_clash as needed. |
| (rs6000_emit_probe_stack_range): Add additional argument |
| to call to gen_probe_stack_range{si,di}. |
| (output_probe_stack_range): New. |
| (output_probe_stack_range_1): Renamed from output_probe_stack_range. |
| (output_probe_stack_range_stack_clash): New. |
| (rs6000_emit_prologue): Emit notes into dump file as requested. |
| * rs6000.md (allocate_stack): Handle -fstack-clash-protection. |
| (probe_stack_range<P:mode>): Operand 0 is now early-clobbered. |
| Add additional operand and pass it to output_probe_stack_range. |
| |
| 2017-09-25 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/82163 |
| * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter. |
| (checking_verify_loop_closed_ssa): New parameter. |
| * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete. |
| (check_loop_closed_ssa_stmt): Delete. |
| (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions. |
| (verify_loop_closed_ssa): Check loop closed ssa form for LOOP. |
| (tree_transform_and_unroll_loop): Check loop closed ssa form only for |
| changed loops. |
| |
| 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com> |
| |
| * brig-builtins.def: Treat HSAIL barrier builtins as |
| setjmp/longjump style functions. |
| |
| 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (constant_alignment): New hook. |
| * defaults.h (CONSTANT_ALIGNMENT): Delete. |
| * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with... |
| (TARGET_CONSTANT_ALIGNMENT): ...this new hook. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_constant_alignment): Declare. |
| (constant_alignment_word_strings): Likewise. |
| * targhooks.c (default_constant_alignment): New function. |
| (constant_alignment_word_strings): Likewise. |
| * builtins.c (get_object_alignment_2): Use targetm.constant_alignment |
| instead of CONSTANT_ALIGNMENT. |
| * varasm.c (align_variable, get_variable_align, build_constant_desc) |
| (force_const_mem): Likewise. |
| * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete. |
| * config/aarch64/aarch64.c (aarch64_constant_alignment): New function. |
| (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out |
| definition. |
| * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete. |
| * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete. |
| (CONSTANT_ALIGNMENT): Likewise. |
| * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (arm_constant_alignment): New function. |
| * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete. |
| * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete. |
| * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete. |
| * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (cris_constant_alignment): New function. |
| * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete. |
| * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (epiphany_constant_alignment): New function. |
| * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete. |
| * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete. |
| * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete. |
| * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete. |
| * config/i386/i386-protos.h (ix86_constant_alignment): Delete. |
| * config/i386/i386.c (ix86_constant_alignment): Make static. |
| Use the same interface as the target hook. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete. |
| * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete. |
| * config/iq2000/iq2000.c (iq2000_constant_alignment): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete. |
| * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete. |
| * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete. |
| * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete. |
| * config/microblaze/microblaze.c (microblaze_constant_alignment): |
| New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete. |
| * config/mips/mips.c (mips_constant_alignment): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete. |
| * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete. |
| * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (mmix_constant_alignment): Make static. Use the same interface |
| as the target hook. |
| * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete. |
| * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete. |
| * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete. |
| * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete. |
| * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (rs6000_constant_alignment): New function. |
| * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete. |
| * config/riscv/riscv.c (riscv_constant_alignment): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete. |
| * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (rs6000_constant_alignment): New function. |
| * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete. |
| * config/s390/s390.c (s390_constant_alignment): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete. |
| * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete. |
| * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (sparc_constant_alignment): New function. |
| * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete. |
| * config/spu/spu.c (spu_constant_alignment): New function. |
| (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete. |
| * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete. |
| * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete. |
| * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to |
| constant_alignment_word_strings. |
| * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete. |
| * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (visium_constant_alignment): New function. |
| * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete. |
| * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine. |
| (xtensa_constant_alignment): New function. |
| * system.h (CONSTANT_ALIGNMENT): Poison. |
| |
| 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling |
| for early folding of vector stores (ALTIVEC_BUILTIN_ST_*). |
| (rs6000_builtin_valid_without_lhs): New helper function. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST. |
| |
| 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.h (vec_perm_indices): Use unsigned short rather than |
| unsigned char. |
| (auto_vec_perm_indices): Likewise. |
| * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok): |
| Use unsigned int rather than unsigned char. |
| * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise. |
| |
| 2017-09-25 Richard Biener <rguenther@suse.de> |
| |
| * cfgloop.h (sort_sibling_loops): Declare. |
| * cfgloop.c (sort_sibling_loops_cmp): New helper. |
| (sort_sibling_loops): New function sorting the sibling loop list |
| in RPO order. |
| * graphite.c (graphite_transform_loops): Sort sibling loops. |
| |
| 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org> |
| |
| * target.def (vec_perm_const_ok): Change sel parameter to |
| vec_perm_indices. |
| * optabs-query.c (can_vec_perm_p): Update accordingly. |
| * doc/tm.texi: Regenerate. |
| * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to |
| auto_vec_perm_indices and remove separate nelt field. |
| (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) |
| (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup) |
| (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1) |
| (aarch64_expand_vec_perm_const): Update accordingly. |
| (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel |
| to vec_perm_indices. |
| * config/arm/arm.c (expand_vec_perm_d): Change perm to |
| auto_vec_perm_indices and remove separate nelt field. |
| (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev) |
| (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl) |
| (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update |
| accordingly. |
| (arm_vectorize_vec_perm_const_ok): Likewise. Change sel |
| to vec_perm_indices. |
| * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change |
| sel to vec_perm_indices. |
| * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise. |
| * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok): |
| Likewise. |
| |
| 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| PR debug/82155 |
| * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl |
| on the FUNCTION_DECL function context if it has a DIE that is a |
| declaration. |
| |
| 2017-09-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82285 |
| * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle |
| enumeral types. |
| |
| 2017-09-25 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/80035 |
| PR target/81069 |
| * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to |
| noreturn function. |
| |
| 2017-09-25 Richard Biener <rguenther@suse.de> |
| |
| * graphite-optimize-isl.c (optimize_isl): Fail and dump if |
| ISL errors other than isl_error_quota happen. Dump if the |
| schedule is the same. |
| * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL |
| errors instead of aborting inside ISL. |
| |
| 2017-09-25 Iain Sandoe <iain@codesourcery.com> |
| |
| PR target/80556 |
| * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead |
| of libgcc_eh for m64. |
| * config/i386/darwin64.h: Likewise. |
| |
| 2017-09-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/82144 |
| * dwarf2out.c (gen_enumeration_type_die): Do not add alignment |
| attribute for incomplete types nor twice for complete ones. |
| |
| 2017-09-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82267 |
| * config/i386/i386.c (ix86_print_operand_address_as): Encode |
| %esp as %rsp to avoid 0x67 prefix if there is no index or base |
| register. |
| |
| 2017-09-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR bootstrap/82306 |
| * config/i386/i386.opt (mprefer-avx256): Use |
| ix86_target_flags variable. |
| * config/i386/i386.c (ix86_target_string): Move |
| -mprefer-avx256 to flag2_opts. |
| |
| 2017-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/35691 |
| * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1 |
| and x != -1 | y != -1 into (x & y) != -1. |
| |
| 2017-09-22 Steve Ellcey <sellcey@cavium.com> |
| |
| * config.gcc: Add new case statement to set |
| default_gnu_indirect_function. Remove it from x86_64-*-linux*, |
| i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*, |
| s390x-*-linux* case statements. Added aarch64 to the list of |
| supported architectures. |
| |
| 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/82289 |
| * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check |
| STMT_VINFO_RELEVANT_P. |
| |
| 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert |
| for VR_RANGE only; don't allow VR_ANTI_RANGE. |
| (extract_range_from_binary_expr_1): Don't call |
| extract_range_from_multiplicative_op_1 if !range_int_cst_p. |
| |
| 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (preferred_vector_alignment): New hook. |
| * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New |
| hook. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_preferred_vector_alignment): Declare. |
| * targhooks.c (default_preferred_vector_alignment): New function. |
| * tree-vectorizer.h (dataref_aux): Add a target_alignment field. |
| Expand commentary. |
| (DR_TARGET_ALIGNMENT): New macro. |
| (aligned_access_p): Update commentary. |
| (vect_known_alignment_in_bytes): New function. |
| * tree-vect-data-refs.c (vect_calculate_required_alignment): New |
| function. |
| (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT. |
| Calculate the misalignment based on the target alignment rather than |
| the vector size. |
| (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT |
| rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment. |
| (vect_enhance_data_refs_alignment): Mask the byte misalignment with |
| the target alignment, rather than masking the element misalignment |
| with the number of elements in a vector. Also use the target |
| alignment when calculating the maximum number of peels. |
| (vect_find_same_alignment_drs): Use vect_calculate_required_alignment |
| instead of TYPE_ALIGN_UNIT. |
| (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter. |
| Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT. |
| (vect_create_addr_base_for_vector_ref): Update call accordingly. |
| (vect_create_data_ref_ptr): Likewise. |
| (vect_setup_realignment): Realign by ANDing with |
| -DR_TARGET_MISALIGNMENT. |
| * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate |
| the number of peels based on DR_TARGET_ALIGNMENT. |
| * tree-vect-stmts.c (get_group_load_store_type): Compare the gap |
| with the guaranteed alignment boundary when deciding whether |
| overrun is OK. |
| (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT |
| relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT. |
| (ensure_base_align): Remove stmt_info parameter. Get the |
| target base alignment from DR_TARGET_ALIGNMENT. |
| (vectorizable_store): Update call accordingly. Interpret |
| DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of |
| TYPE_ALIGN_UNIT. |
| (vectorizable_load): Likewise. |
| |
| 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (vect_get_scalar_dr_size): New function. |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it. |
| (vect_enhance_data_refs_alignment): Likewise. |
| |
| 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> |
| |
| * config/arm/parsecpu.awk (fatal): Note that we've encountered an |
| error. Only quit immediately if parsing is complete. |
| (BEGIN): Initialize fatal_err and parse_done. |
| (begin fpu, end fpu): Check number of arguments. |
| (begin arch, end arch): Likewise. |
| (begin cpu, end cpu): Likewise. |
| (cname, tune for, tune flags, architecture, fpu, option): Likewise. |
| (optalias): Likewise. |
| |
| 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> |
| |
| * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. |
| * config/arm/arm-isa.h: Delete. Move definitions to ... |
| * arm-cpus.in: ... here. Use new feature and fgroup values. |
| * config/arm/arm.c (arm_option_override): Use lower case for feature |
| bit names. |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. |
| (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. |
| * config/arm/parsecpu.awk (END): Add new command 'isa'. |
| (isa_pfx): Delete. |
| (print_isa_bits_for): New function. |
| (gen_isa): New function. |
| (gen_comm_data): Use print_isa_bits_for. |
| (define feature): New keyword. |
| (define fgroup): New keyword. |
| * config/arm/t-arm (TM_H): Remove. |
| (GTM_H): Add arm-isa.h. |
| (arm-isa.h): Add rule to generate file. |
| * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower |
| case for feature bit names. |
| |
| 2017-09-22 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into |
| single caller. |
| (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug |
| print of no dependency loops ... |
| * graphite.c (graphite_transform_loops): ... here. |
| (canonicalize_loop_closed_ssa_form): Work from inner to outer |
| loops. |
| (same_close_phi_node, remove_duplicate_close_phi, |
| make_close_phi_nodes_unique, defined_in_loop_p): Fold into ... |
| (canonicalize_loop_closed_ssa): ... here and simplify. |
| * graphite-optimize-isl.c: Include tree-vectorizer.h. |
| (optimize_isl): Use dump_printf_loc to tell when we stopped |
| optimizing because of an ISL timeout. |
| |
| 2017-09-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82291 |
| * tree-if-conv.c (predicate_mem_writes): Make sure to |
| remove writes in blocks predicated with false. |
| |
| 2017-09-22 Richard Biener <rguenther@suse.de> |
| |
| * sese.c: Include cfganal.h. |
| (if_region_set_false_region): Remove. |
| (create_if_region_on_edge): Likewise. |
| (move_sese_in_condition): Re-implement without destroying |
| dominators. |
| |
| 2017-09-22 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): |
| Verify both BBs contain loop PHI nodes before dispatching to |
| copy_loop_phi_args. |
| (graphite_regenerate_ast_isl): Do not recompute dominators, |
| do not verify three times. Restructure for clarity. |
| * graphite-scop-detection.c (same_close_phi_node, |
| remove_duplicate_close_phi, make_close_phi_nodes_unique, |
| defined_in_loop_p, canonicalize_loop_closed_ssa, |
| canonicalize_loop_closed_ssa_form): Simplify, remove excess |
| checking and SSA rewrite, move to ... |
| * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h. |
| (graphite_initialize): Do not pass in ctx, do not reset the |
| SCEV cache, compute only dominators. |
| (graphite_transform_loops): Allocate ISL ctx after |
| graphite_initialize. Call canonicalize_loop_closed_ssa_form. |
| Maintain post-dominators only around build_scops. |
| * sese.c (if_region_set_false_region): Make static. Free |
| and recompute dominators. |
| (move_sese_in_condition): Assert we don't get called with |
| post-dominators computed. |
| * sese.h (if_region_set_false_region): Remove. |
| |
| 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com> |
| |
| * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode> |
| mode attribute for TARGET_AVX512VL. |
| |
| 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com> |
| |
| * config/i386/i386.opt (mprefer-avx256): New option. |
| * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256 |
| to flag_opts. |
| (ix86_preferred_simd_mode): Return 256-bit AVX modes |
| for TARGET_PREFER_AVX256. |
| * doc/invoke.texi (x86 Options): Document -mprefer-avx256. |
| |
| 2017-09-21 Jeff Law <law@redhat.com> |
| |
| * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): |
| Fix dump output if the only stack space is for pushed registers. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming |
| of insn_cost. |
| |
| 2017-09-21 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81882 |
| * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed |
| code (in C++) or code that triggers warnings. |
| |
| 2017-09-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stor-layout.c (bit_from_pos): Do not distribute the conversion. |
| |
| 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * haifa-sched.c: Rename insn_cost to insn_sched_cost. |
| * sched-rgn.c: Ditto. |
| * sel-sched-ir.c: Ditto. |
| |
| 2017-09-21 Alexander Monakov <amonakov@ispras.ru> |
| |
| * toplev.h (set_random_seed): Adjust return type. |
| * toplev.c (init_local_tick): Move eager initialization of random_seed |
| to get_random_seed. Adjust comment. |
| (init_random_seed): Inline to get_random_seed, delete. |
| (get_random_seed): Initialize random_seed lazily. |
| (set_random_seed): Do not return previous value. |
| (print_switch_value): Do not call get_random_seed. |
| |
| 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru> |
| |
| * cgraph.c (delete_function_version): New, broken out from... |
| (cgraph_node::delete_function_version): ...here. Rename to |
| cgraph_node::delete_function_version_by_decl. Update all uses. |
| (cgraph_node::remove): Call delete_function_version. |
| |
| 2017-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81715 |
| * tree-inline.c (expand_call_inline): Emit clobber stmts for |
| VAR_DECLs to which addressable non-volatile parameters are mapped |
| and for id->retvar after the return value assignment. Clear |
| id->retval and id->retbnd after inlining. |
| |
| 2017-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82276 |
| PR tree-optimization/82244 |
| * tree-vrp.c (build_assert_expr_for): Set |
| SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on |
| has it set. |
| (remove_range_assertions): Revert earlier change. |
| |
| 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/71951 |
| * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. |
| |
| 2017-09-21 Richard Biener <rguenther@suse.de> |
| |
| * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): |
| Restore valid IL after code generation errors. |
| * graphite.c (graphite_transform_loops): Diagnose code |
| generation issues as MSG_MISSED_OPTIMIZATION and continue |
| with processing SCOPs. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * calls.c (compute_argument_addresses): Use simplify_gen_binary |
| rather than choosing between plus_constant and gen_rtx_<CODE>. |
| * expr.c (emit_push_insn): Likewise. |
| (expand_expr_real_2): Likewise. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * loop-unroll.c (split_iv): Call copy_rtx on the step. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before |
| calling tree_to_uhwi. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for |
| INTEGER_CST rather than a negative test for ADDR_EXPR. |
| |
| 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr_1): Check |
| int_cst_rangeN before calling value_range_constant_singleton (&vrN). |
| |
| 2017-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71351 |
| * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple:: |
| graphite_create_new_loop_guard): Remove, fold remaining parts |
| into caller ... |
| (translate_isl_ast_node_for): ... here and simplify. |
| |
| 2017-09-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82260 |
| * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative |
| with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the |
| latter two for 64-bit, renumber alternatives, for -Os imov (=q,n) |
| alternative always use QI mode, for -Os imov (=R,R) alternative |
| always use SI mode, for imov (=Q,Q) or (=r,r) alternatives |
| ignore -Os. |
| |
| 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| Jeff Law <law@redhat.com> |
| |
| * config/s390/s390.c (MIN_UNROLL_PROBES): Define. |
| (allocate_stack_space): New function, partially extracted from |
| s390_emit_prologue. |
| (s390_emit_prologue): Track offset to most recent stack probe. |
| Code to allocate space moved into allocate_stack_space. |
| Dump actions when no stack is allocated. |
| (s390_prologue_plus_offset): New function. |
| (s390_emit_stack_probe): Likewise. |
| |
| 2017-09-20 Alexandre Oliva <aoliva@redhat.com> |
| |
| * common.opt (Wa, Wl, Wp, g, gz=): Add |
| RejectNegative. |
| (gno-column-info): Remove. |
| (gcolumn-info): Drop RejectNegative. |
| (gno-): New prefix. |
| (gno-record-gcc-switches): Remove. |
| (grecord-gcc-switches): Drop RejectNegative. |
| (gno-split-dwarf): Remove. |
| (gsplit-dwarf): Drop RejectNegative. |
| (gno-strict-dwarf): Remove. |
| (gstrict-dwarf): Drop RejectNegative. |
| * config/darwin.opt (gfull, gused): Add RejectNegative. |
| * dwarf2out.c (gen_producer_string): Drop |
| gno-record-gcc-switches handler. |
| * optc-gen.awk: Add g to prefixes with negative forms. |
| * opts-common.c (remapping_prefix_p): New. |
| (find_opt): Check it. |
| (generate_canonical_option): Test g prefix. |
| (option_map): Add -gno- mapping. |
| (add_misspelling_candidates): Check remapping_prefix_p. |
| |
| 2017-09-20 Jeff Law <law@redhat.com> |
| |
| * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix |
| thinko in stack clash protection support. |
| |
| * explow.c (compute_stack_clash_protection_loop_data): Use |
| CONST_INT_P instead of explicit test. Verify object is a |
| CONST_INT_P before looking at INTVAL. |
| (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P |
| instead of explicit test. |
| |
| 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/77687 |
| * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch |
| address instead of to r1 and r11. |
| |
| 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config.gcc: Support "knm". |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm". |
| * config/i386/i386-c.c (ix86_target_macros_internal): Handle |
| PROCESSOR_KNM. |
| * config/i386/i386.c (m_KNM): Define. |
| (processor_target_table): Add "knm". |
| (PTA_KNM): Define. |
| (ix86_option_override_internal): Add "knm". |
| (ix86_issue_rate): Add PROCESSOR_KNM. |
| (ix86_adjust_cost): Ditto. |
| (ia32_multipass_dfa_lookahead): Ditto. |
| (get_builtin_code_for_version): Handle PROCESSOR_KNM. |
| (fold_builtin_cpu): Add M_INTEL_KNM. |
| * config/i386/i386.h (processor_costs): Define TARGET_KNM. |
| (processor_type): Add PROCESSOR_KNM. |
| * config/i386/x86-tune.def: Add m_KNM. |
| * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type. |
| |
| 2017-09-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80213 |
| * graphite-scop-detection.c (trivially_empty_bb_p): Labels |
| are allowed in empty BBs as well. |
| (canonicalize_loop_closed_ssa): Also look for other complex |
| edges. |
| (scop_detection::get_sese): Include the loop-closed PHI block |
| in loop SESEs. |
| (scop_detection::merge_sese): Remove code adding extra blocks. |
| (scop_detection::region_has_one_loop): Adjust for get_sese changes. |
| (build_scops): Assert the final returned scop is invalid. |
| |
| 2017-09-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82264 |
| * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check |
| for GIMPLE_CONDs. |
| (vn_phi_lookup): Likewise. |
| (vn_phi_insert): Likewise. |
| |
| 2017-09-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST |
| that fits into uhwi or shwi, add DW_AT_const_value regardless |
| of early_dwarf without going through RTL, using add_AT_unsigned |
| or add_AT_int. |
| |
| * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines. |
| (DEBUG_LTO_ABBREV_SECTION): Likewise. |
| (DEBUG_LTO_MACINFO_SECTION): Likewise. |
| (DEBUG_MACRO_SECTION): Likewise. |
| (DEBUG_LTO_MACRO_SECTION): Likewise. |
| (DEBUG_STR_DWO_SECTION): Likewise. |
| (DEBUG_LTO_STR_DWO_SECTION): Likewise. |
| (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name. |
| (DEBUG_LTO_DWO_LINE_SECTION): Define. |
| (DEBUG_LTO_LINE_STR_SECTION): Define. |
| (init_sections_and_labels): Initialize debug_line_str_section |
| variable. Initialize debug_loc_section for -gdwarf-5 to |
| DEBUG_LOCLISTS_SECTION. Formatting fixes. |
| |
| 2017-09-20 Richard Biener <rguenther@suse.de> |
| |
| * graphite-sese-to-poly.c (extract_affine): Properly handle |
| POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed. |
| |
| 2017-09-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81373 |
| * graphite-scop-detection.c (build_cross_bb_scalars_def): |
| Force SESE live-out defs to be handled even if they are |
| scev_analyzable_p. |
| |
| 2017-09-19 Jeff Law <law@redhat.com> |
| |
| * combine-stack-adj.c (combine_stack_adjustments_for_block): Do |
| nothing for stack adjustments with REG_STACK_CHECK. |
| * sched-deps.c (parse_add_or_inc): Reject insns with |
| REG_STACK_CHECK from dependency breaking. |
| * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn. |
| (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs. |
| * reg-notes.def (STACK_CHECK): New note. |
| |
| * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New. |
| (ix86_expand_prologue): Dump stack clash info as needed. |
| Call ix86_adjust_stack_and_probe_stack_clash as needed. |
| |
| * function.c (dump_stack_clash_frame_info): New function. |
| * function.h (dump_stack_clash_frame_info): Prototype. |
| (enum stack_clash_probes): New enum. |
| |
| * config/alpha/alpha.c (alpha_expand_prologue): Also check |
| flag_stack_clash_protection. |
| * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise. |
| (arm_expand_prologue, thumb1_expand_prologue): Likewise. |
| (arm_frame_pointer_required): Likewise. |
| * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. |
| (ia64_expand_prologue): Likewise. |
| * config/mips/mips.c (mips_expand_prologue): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise. |
| * config/sparc/sparc.c (sparc_expand_prologue): Likewise. |
| (sparc_flat_expand_prologue): Likewise. |
| * config/spu/spu.c (spu_expand_prologue): Likewise. |
| |
| * explow.c: Include "params.h". |
| (anti_adjust_stack_and_probe_stack_clash): New function. |
| (get_stack_check_protect): Likewise. |
| (compute_stack_clash_protection_loop_data): Likewise. |
| (emit_stack_clash_protection_loop_start): Likewise. |
| (emit_stack_clash_protection_loop_end): Likewise. |
| (allocate_dynamic_stack_space): Use get_stack_check_protect. |
| Use anti_adjust_stack_and_probe_stack_clash. |
| * explow.h (compute_stack_clash_protection_loop_data): Prototype. |
| (emit_stack_clash_protection_loop_start): Likewise. |
| (emit_stack_clash_protection_loop_end): Likewise. |
| * rtl.h (get_stack_check_protect): Prototype. |
| * target.def (stack_clash_protection_final_dynamic_probe): New hook. |
| * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New. |
| * targhooks.h (default_stack_clash_protection_final_dynamic_probe): |
| Prototype. |
| * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): |
| Add @hook. |
| * doc/tm.texi: Rebuilt. |
| * config/aarch64/aarch64.c (aarch64_expand_prologue): Use |
| get_stack_check_protect. |
| * config/alpha/alpha.c (alpha_expand_prologue): Likewise. |
| * config/arm/arm.c (arm_expand_prologue): Likewise. |
| (arm_frame_pointer_required): Likewise. |
| * config/i386/i386.c (ix86_expand_prologue): Likewise. |
| * config/ia64/ia64.c (ia64_expand_prologue): Likewise. |
| * config/mips/mips.c (mips_expand_prologue): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise. |
| * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. |
| * config/sparc/sparc.c (sparc_expand_prologue): Likewise. |
| (sparc_flat_expand_prologue): Likewise. |
| |
| * common.opt (-fstack-clash-protection): New option. |
| * flag-types.h (enum stack_check_type): Note difference between |
| -fstack-check= and -fstack-clash-protection. |
| * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM. |
| (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise. |
| * toplev.c (process_options): Issue warnings/errors for cases |
| not handled with -fstack-clash-protection. |
| * doc/invoke.texi (-fstack-clash-protection): Document new option. |
| (-fstack-check): Note additional problem with -fstack-check=generic. |
| Note that -fstack-check is primarily for Ada and refer users |
| to -fstack-clash-protection for stack-clash-protection. |
| Document new params for stack clash protection. |
| |
| 2017-09-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_split_long_move): Do not handle |
| address used for LEA in a special way. |
| |
| 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment. |
| |
| 2017-09-19 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81854 |
| * cgraphunit.c (handle_alias_pairs): Reject aliases between functions |
| of incompatible types. |
| |
| 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling |
| for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*). |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD. |
| |
| 2017-09-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82244 |
| * tree-vrp.c (remove_range_assertions): Do not propagate |
| a constant to abnormals but replace the assert with a copy. |
| |
| 2017-09-19 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/57878 |
| PR rtl-optimization/68988 |
| * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation |
| avoidance test involving non_reload_pseudos. Move frequency test |
| below the general fragmentation avoidance test. |
| |
| 2017-09-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/69728 |
| * graphite-sese-to-poly.c (schedule_error): New global. |
| (add_loop_schedule): Handle empty domain by failing the |
| schedule. |
| (build_original_schedule): Handle schedule_error. |
| |
| 2017-09-19 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c (scop_detection::can_represent_loop): |
| Do not iterate to sibling loops but only to siblings of inner |
| loops. |
| |
| 2017-09-18 Andreas Schwab <schwab@linux-m68k.org> |
| |
| PR target/81613 |
| * config/m68k/m68k.md (moveq feeding equality comparison): Check |
| that the registers are different. |
| |
| 2017-09-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H |
| to processor_model and "amdfam17h" to arch_names_table. |
| * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name. |
| |
| 2017-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/82234 |
| * doc/extend.texi: Add @findex entry for __builtin_shuffle. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters |
| with a vec_info *. |
| * tree-vect-loop.c (vect_analyze_loop_operations): Update call |
| accordingly. |
| * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info * |
| parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in |
| vect_schedule_slp_instance. |
| (vect_slp_analyze_operations): Replace parameters with a vec_info *. |
| Update call to vect_slp_analyze_node_operations. Simplify return |
| value. |
| (vect_slp_analyze_bb_1): Update call accordingly. |
| (vect_schedule_slp_instance): Remove vectorization_factor parameter. |
| Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here. |
| (vect_schedule_slp): Update call accordingly. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope |
| with types that aren't in fact scalar. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-slp.c (vect_record_max_nunits): New function, |
| split out from... |
| (vect_build_slp_tree_1): ...here. |
| (vect_build_slp_tree_2): Call it for phis too. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype |
| to vect_get_vec_def_for_operand when getting the mask operand. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-loop.c (vectorizable_live_operation): Fix type of |
| bitstart. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-loop.c (vectorizable_live_operation): Fix element size |
| calculation for vector booleans. |
| |
| 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-stmts.c (can_vectorize_live_stmts): New function, |
| split out from... |
| (vect_transform_stmt): ...here. |
| (vect_analyze_stmt): Use it instead of calling |
| vectorizable_live_operation directly. |
| |
| 2017-09-18 Cesar Philippidis <cesar@codesourcery.com> |
| |
| * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on |
| non-SIMT targets in acc vector loops. |
| |
| 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * configure.ac: Add arc and check if assembler supports gdwarf2. |
| * configure: Regenerate. |
| |
| 2017-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82220 |
| * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude |
| epilogue niters from the min_profitable_iters compute. |
| |
| 2017-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82145 |
| * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01 |
| changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately. |
| (ix86_init_pic_reg): Revert 2017-09-01 changes. |
| |
| 2017-09-18 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/81361 |
| * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after |
| switching to a new text section. |
| |
| 2017-09-18 Richard Biener <rguenther@suse.de> |
| |
| * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref): |
| Simplify. |
| (build_alias_set): Reject aliases with no access function. |
| |
| 2017-09-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79622 |
| * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly |
| handle PHIs. |
| (build_cross_bb_scalars_use): Likewise. |
| |
| 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * cgraph.h (cgraph_thunk_info): Fix a typo in a comment. |
| |
| 2017-09-18 Alan Modra <amodra@gmail.com> |
| |
| PR target/81996 |
| * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use |
| stack_pointer_rtx for count 0. Update comments. Break up |
| large rtl expression. |
| |
| 2017-09-17 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN): |
| Increase to 20 bytes. |
| (xlogue_layout::s_stub_names): Add an additional size-2 diminsion. |
| (xlogue_layout::get_stub_name): Modify to select the appropairate sse |
| or avx version of the stub. |
| |
| 2017-09-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/82166 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly |
| compute the minimum stack alignment. Also update preferred stack |
| boundary for leaf functions. |
| |
| 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/82228 |
| * tree-vect-loop.c (vectorizable_live_operation): Move initialization |
| of ncopies. |
| |
| 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * common/config/nds32/nds32-common.c |
| (nds32_option_optimization_table): Refine formatting. |
| (nds32_option_optimization_table): Use -fsched-pressure and |
| -fomit-frame-pointer for specific optimization level. |
| |
| 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c: Refine formatting and comments. |
| * config/nds32/nds32.h: Likewise. |
| * config/nds32/nds32.md: Likewise. |
| * config/nds32/nds32-cost.c: Likewise. |
| * config/nds32/nds32-isr.c: Likewise. |
| * config/nds32/nds32-md-auxiliary.c: Likewise. |
| * config/nds32/nds32-multiple.md: Likewise. |
| * config/nds32/nds32-predicates.c: Likewise. |
| |
| 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| Add support for -std=c++2a. |
| * doc/cpp.texi (__cplusplus): Document value for -std=c++2a |
| or -std=gnu+2a. |
| * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a. |
| |
| 2017-09-15 Steve Ellcey <sellcey@cavium.com> |
| |
| PR target/82066 |
| * doc/extend.texi (Common Function Attributes): Add |
| references to ARM, AArch64, and S/390 specific attributes. |
| (Function Specific Option Pragmas): Add AArch64 and S/390 |
| to list of back ends that support the target pragma. |
| |
| 2017-09-15 Nathan Sidwell <nathan@acm.org> |
| |
| * doc/standards.texi: Fix C++17 description. Update URLs for |
| C++11 & 14. |
| |
| 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * common.opt (Wcast-align=strict): New warning option. |
| * doc/invoke.texi: Document -Wcast-align=strict. |
| |
| 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * cgraph.h (cgraph_thunk_info): Add comments. |
| * cgraph.c (cgraph_node::create_thunk): Adjust comment, make |
| assert for VIRTUAL_* arguments stricter. |
| |
| 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| PR tree-optimization/71026 |
| * match.pd: Move RDIV patterns from fold-const.c |
| * fold-const.c (distribute_real_division): Removed. |
| (fold_binary_loc): Remove calls to distribute_real_divison. |
| |
| 2017-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document |
| c++1z and gnu++1z as deprecated. Change other references to |
| -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17. |
| Change -Wc++1z-compat to -Wc++17-compat. |
| * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L. |
| * dwarf2out.c (highest_c_language): Handle C++17. |
| (gen_compile_unit_die): Likewise. |
| |
| 2017-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/82192 |
| * combine.c (make_extraction): Don't look through non-paradoxical |
| SUBREGs or TRUNCATE if pos + len is or might be bigger than |
| inner's mode. |
| |
| 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (function_arg_offset): New hook. |
| * targhooks.h (default_function_arg_offset): Declare. |
| * targhooks.c (default_function_arg_offset): New function. |
| * function.c (locate_and_pad_parm): Use |
| targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET. |
| * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with... |
| (TARGET_FUNCTION_ARG_OFFSET): ...this. |
| * doc/tm.texi: Regenerate. |
| * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete. |
| * config/spu/spu.c (spu_function_arg_offset): New function. |
| (TARGET_FUNCTION_ARG_OFFSET): Redefine. |
| * system.h (FUNCTION_ARG_OFFSET): Poison. |
| |
| 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayard <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (truly_noop_truncation): New hook. |
| (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather |
| than TRULY_NOOP_TRUNCATION. |
| * hooks.h (hook_bool_uint_uint_true): Declare. |
| * hooks.c (hook_bool_uint_uint_true): New function. |
| * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with... |
| (TARGET_TRULY_NOOP_TRUNCATION): ...this. |
| * doc/tm.texi: Regenerate. |
| * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION |
| rather than TRULY_NOOP_TRUNCATION in comments. |
| (simplify_comparison): Likewise. |
| (record_truncated_value): Likewise. |
| * expmed.c (extract_bit_field_1): Likewise. |
| (extract_split_bit_field): Likewise. |
| * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation |
| instead of TRULY_NOOP_TRUNCATION. |
| * function.c (assign_parm_setup_block): Likewise. |
| * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise. |
| * rtlhooks.c: Include target.h. |
| * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/mips/mips.c (mips_truly_noop_truncation): New function. |
| (TARGET_TRULY_NOOP_TRUNCATION): Redefine. |
| * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION |
| rather than TRULY_NOOP_TRUNCATION in comments. |
| * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION |
| rather than TRULY_NOOP_TRUNCATION in comments. |
| * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove |
| TRULY_NOOP_TRUNCATION condition. |
| (MAYBE_INDEX_REGISTER_RTX_P): Likewise. |
| (TRULY_NOOP_TRUNCATION): Delete. |
| * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/spu/spu.c (spu_truly_noop_truncation): New function. |
| (TARGET_TRULY_NOOP_TRUNCATION): Redefine. |
| * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction. |
| (TARGET_TRULY_NOOP_TRUNCATION): Redefine. |
| * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION |
| rather than TRULY_NOOP_TRUNCATION in comments. |
| * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete. |
| * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete. |
| * system.h (TRULY_NOOP_TRUNCATION): Poison. |
| |
| 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/67591 |
| * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute. |
| (*cmp_ior): Likewise. |
| (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute. |
| (*ior_scc_scc_cmp): Likewise. |
| (*and_scc_scc): Likewise. |
| (*and_scc_scc_cmp): Likewise. |
| |
| 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayard <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (can_change_mode_class): New hook. |
| (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS. |
| (hard_regno_nregs): Likewise. |
| * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare. |
| * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function. |
| * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with... |
| (TARGET_CAN_CHANGE_MODE_CLASS): ...this. |
| (LOAD_EXTEND_OP): Update accordingly. |
| * doc/tm.texi: Regenerate. |
| * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of |
| CANNOT_CHANGE_MODE_CLASS. |
| * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with... |
| (REG_CAN_CHANGE_MODE_P): ...this new macro. |
| * combine.c (simplify_set): Update accordingly. |
| * emit-rtl.c (validate_subreg): Likewise. |
| * recog.c (general_operand): Likewise. |
| * regcprop.c (mode_change_ok): Likewise. |
| * reload1.c (choose_reload_regs): Likewise. |
| (inherit_piecemeal_p): Likewise. |
| * rtlanal.c (simplify_subreg_regno): Likewise. |
| * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P |
| instead of CANNOT_CHANGE_MODE_CLASS. |
| (reload_cse_simplify_operands): Likewise. |
| * reload.c (push_reload): Use targetm.can_change_mode_class |
| instead of CANNOT_CHANGE_MODE_CLASS. |
| (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of |
| REG_CANNOT_CHANGE_MODE_P. |
| * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/alpha/alpha.c (alpha_can_change_mode_class): New function. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (arm_can_change_mode_class): New function. |
| * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather |
| than CANNOT_CHANGE_MODE_CLASS in comments. |
| * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete. |
| * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with... |
| (ix86_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (ia64_can_change_mode_class): New function. |
| * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete. |
| * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with... |
| (m32c_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete. |
| * config/mips/mips.c (mips_cannot_change_mode_class): Replace with... |
| (mips_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (msp430_can_change_mode_class): New function. |
| * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete. |
| * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (pa_cannot_change_mode_class): Replace with... |
| (pa_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather |
| than CANNOT_CHANGE_MODE_CLASS in comments. |
| * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete. |
| * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (pdp11_cannot_change_mode_class): Replace with... |
| (pdp11_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/powerpcspe/powerpcspe-protos.h |
| (rs6000_cannot_change_mode_class_ptr): Delete. |
| * config/powerpcspe/powerpcspe.c |
| (rs6000_cannot_change_mode_class_ptr): Delete. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (rs6000_option_override_internal): Assign to |
| targetm.can_change_mode_class instead of |
| rs6000_cannot_change_mode_class_ptr. |
| (rs6000_cannot_change_mode_class): Replace with... |
| (rs6000_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (rs6000_debug_cannot_change_mode_class): Replace with... |
| (rs6000_debug_can_change_mode_class): ...this new function. |
| * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/riscv/riscv.c (riscv_can_change_mode_class): New function. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (rs6000_option_override_internal): Assign to |
| targetm.can_change_mode_class instead of |
| rs6000_cannot_change_mode_class_ptr. |
| (rs6000_cannot_change_mode_class): Replace with... |
| (rs6000_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (rs6000_debug_cannot_change_mode_class): Replace with... |
| (rs6000_debug_can_change_mode_class): ...this new function. |
| * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete. |
| * config/s390/s390.c (s390_cannot_change_mode_class): Replace with... |
| (s390_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete. |
| * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (sh_cannot_change_mode_class): Replace with... |
| (sh_can_change_mode_class): ...this new function, inverting the |
| sense of the return value. |
| * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (sparc_can_change_mode_class): New function. |
| * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/spu/spu.c (spu_can_change_mode_class): New function. |
| (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete. |
| * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. |
| (visium_can_change_mode_class): New function. |
| * system.h (CANNOT_CHANGE_MODE_CLASS): Poison. |
| |
| 2017-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82217 |
| * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP |
| but not undefined case. |
| |
| 2017-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82145 |
| * postreload.c (reload_cse_simplify_operands): Skip |
| NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL. |
| |
| 2017-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/68823 |
| * graphite-scop-detection.c (build_alias_set): If we have a |
| possible dependence check whether we can handle them by just |
| looking at the DRs DR_ACCESS_FNs. |
| (build_scops): If build_alias_set fails, fail the SCOP. |
| |
| 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros |
| to support float128 built-in functions that require the ISA 3.0 |
| hardware. |
| (BU_FLOAT128_3_HW): Likewise. |
| (SQRTF128): Add support for the IEEE 128-bit square root and fma |
| built-in functions. |
| (FMAF128): Likewise. |
| (FMAQ): Likewise. |
| * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add |
| support for built-in functions that need the ISA 3.0 IEEE 128-bit |
| floating point instructions. |
| (rs6000_invalid_builtin): Likewise. |
| (rs6000_builtin_mask_names): Likewise. |
| * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise. |
| (RS6000_BTM_FLOAT128_HW): Likewise. |
| (RS6000_BTM_COMMON): Likewise. |
| * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator |
| function. |
| * doc/extend.texi (RS/6000 built-in functions): Document the |
| IEEE 128-bit floating point square root and fused multiply-add |
| built-in functions. |
| |
| 2017-09-14 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC |
| reg (r2) isn't in the set of registers defined in the prologue. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor. |
| (LOOP_VINFO_MAX_VECT_FACTOR): New macro. |
| (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with... |
| (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update |
| accordingly. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| max_vectorization_factor. |
| (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (vect_min_worthwhile_factor): Delete. |
| (vect_worthwhile_without_simd_p): Declare. |
| * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function. |
| (vectorizable_reduction): Use it. |
| * tree-vect-stmts.c (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vectorizer.h (vect_get_num_copies): New function. |
| * tree-vect-data-refs.c (vect_get_data_access_cost): Use it. |
| * tree-vect-loop.c (vectorizable_reduction): Likewise. |
| (vectorizable_induction): Likewise. |
| (vectorizable_live_operation): Likewise. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. |
| (vectorizable_bswap): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison): Likewise. |
| (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead |
| of vect_init_vector. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide |
| an inline wrapper that provides a location. |
| (gimple_build_vector): Likewise. |
| * gimple-fold.c (gimple_build_vector_from_val): New function. |
| (gimple_build_vector): Likewise. |
| * tree-vect-loop.c (get_initial_def_for_reduction): Use the new |
| functions to build the initial value. Always return a gimple value. |
| (get_initial_defs_for_reduction): Likewise. Only compute |
| neutral_vec once. |
| (vect_create_epilog_for_reduction): Don't call force_gimple_operand or |
| vect_init_vector on the results from get_initial_def(s)_for_reduction. |
| (vectorizable_induction): Use gimple_build_vector rather than |
| vect_init_vector. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.h (vec_perm_indices): New typedef. |
| (auto_vec_perm_indices): Likewise. |
| * optabs-query.h: Include target.h |
| (can_vec_perm_p): Take a vec_perm_indices *. |
| * optabs-query.c (can_vec_perm_p): Likewise. |
| (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices. |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. |
| * tree-vect-generic.c (lower_vec_perm): Likewise. |
| * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. |
| (vect_grouped_load_supported): Likewise. |
| (vect_shift_permute_load_chain): Likewise. |
| (vect_permute_store_chain): Use auto_vec_perm_indices. |
| (vect_permute_load_chain): Likewise. |
| * fold-const.c (fold_vec_perm): Take vec_perm_indices. |
| (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices. |
| Update uses of can_vec_perm_p. |
| * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the |
| mode with a number of elements. Take a vec_perm_indices *. |
| (vect_create_epilog_for_reduction): Update accordingly. |
| Use auto_vec_perm_indices. |
| (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p. |
| * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. |
| (vect_transform_slp_perm_load): Likewise. |
| (vect_schedule_slp_instance): Use auto_vec_perm_indices. |
| * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices. |
| (vect_gen_perm_mask_checked): Likewise. |
| * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices. |
| (vect_gen_perm_mask_checked): Likewise. |
| (vectorizable_mask_load_store): Use auto_vec_perm_indices. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p. |
| (vectorizable_bswap): Likewise. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (build_vector): Take a vec<tree> instead of a tree *. |
| * tree.c (build_vector): Likewise. |
| (build_vector_from_ctor): Update accordingly. |
| (build_vector_from_val): Likewise. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. |
| * tree-vect-generic.c (add_rshift): Likewise. |
| (expand_vector_divmod): Likewise. |
| (optimize_vector_constructor): Likewise. |
| * tree-vect-slp.c (vect_get_constant_vectors): Likewise. |
| (vect_transform_slp_perm_load): Likewise. |
| (vect_schedule_slp_instance): Likewise. |
| * tree-vect-stmts.c (vectorizable_bswap): Likewise. |
| (vectorizable_call): Likewise. |
| (vect_gen_perm_mask_any): Likewise. Add elements in order. |
| * expmed.c (make_tree): Likewise. |
| * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building |
| a vector passed to build_vector. |
| (fold_convert_const): Likewise. |
| (exact_inverse): Likewise. |
| (fold_ternary_loc): Likewise. |
| (fold_relational_const): Likewise. |
| (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating |
| on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array. |
| (const_unop): Likewise. Store the reduction accumulator in a |
| variable rather than an array. |
| (vec_cst_ctor_to_array): Take the number of elements as a parameter. |
| (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for |
| the new vector, rather than constructing it after the input arrays. |
| (native_interpret_vector): Use auto_vec<tree> when building |
| a vector passed to build_vector. Add elements in order. |
| * tree-vect-loop.c (get_initial_defs_for_reduction): Use |
| auto_vec<tree> when building a vector passed to build_vector. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_induction): Likewise. |
| (get_initial_def_for_reduction): Likewise. Fix indentation of |
| case statements. |
| * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts |
| to a vec<tree> *. |
| (sparc_fold_builtin): Use auto_vec<tree> when building a vector |
| passed to build_vector. |
| |
| 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-core.h (tree_base::u): Add an "nelts" field. |
| (tree_vector): Use VECTOR_CST_NELTS as the length. |
| * tree.c (tree_size): Likewise. |
| (make_vector): Initialize VECTOR_CST_NELTS. |
| * tree.h (VECTOR_CST_NELTS): Use the u.nelts field. |
| * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of |
| TYPE_VECTOR_SUBPARTS. |
| * expr.c (const_vector_mask_from_tree): Consistently use "units" |
| as the number of units, setting it from VECTOR_CST_NELTS. |
| (const_vector_from_tree): Likewise. |
| * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of |
| TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST. |
| (fold_negate_expr_1): Likewise. |
| (fold_convert_const): Likewise. |
| (const_binop): Likewise. Differentiate the number of output and |
| input elements. |
| (const_unop): Likewise. |
| (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements |
| in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS |
| in cases that did the opposite. |
| |
| 2017-09-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar |
| to VN_TOP. |
| |
| 2017-09-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (dwarf2out_source_line): Remove superfluous test. |
| |
| 2017-09-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81325 |
| * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions |
| if and where to split a bb, except for splitting before debug insn |
| sequences followed by non-label real insn. Delete debug insns |
| in between basic blocks. |
| |
| * combine.c (make_compound_operation_int): Formatting fixes. |
| |
| * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support. |
| * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * config/netbsd.h (LINK_EH_SPEC): Likewise. |
| * config/sol2.h (LINK_EH_SPEC): Likewise. |
| * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * config/s390/linux.h (LINK_SPEC): Likewise. |
| * config/freebsd.h (LINK_EH_SPEC): Likewise. |
| * config/openbsd.h (LINK_EH_SPEC): Likewise. |
| * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise. |
| * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise. |
| * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo. |
| * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix. |
| |
| 2017-09-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie |
| support. |
| (ENDFILE_LINUX_SPEC): Likewise. |
| (LINK_EH_SPEC): Likewise. |
| * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise. |
| (LINK_OS_LINUX_SPEC32): Likewise. |
| (LINK_OS_LINUX_SPEC64): Likewise. |
| * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise. |
| (LINK_OS_LINUX_SPEC): Likewise. |
| |
| 2017-09-13 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/82154 |
| * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when |
| CASE_HIGH is NULL_TREE. |
| |
| 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (secondary_memory_needed): New hook. |
| (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED |
| instead of SECONDARY_MEMORY_NEEDED. |
| (secondary_memory_needed_mode): Likewise. |
| * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare. |
| * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function. |
| * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with... |
| (TARGET_SECONDARY_MEMORY_NEEDED): ...this. |
| (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly. |
| * doc/tm.texi: Regenerate. |
| * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/alpha/alpha.c (alpha_secondary_memory_needed): New function. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete. |
| * config/i386/i386.c (inline_secondary_memory_needed): Put the |
| mode argument first and change the reg_class arguments to reg_class_t. |
| (ix86_secondary_memory_needed): Likewise. Remove the strict parameter. |
| Make static. Update the call to inline_secondary_memory_needed. |
| (ix86_register_move_cost): Update the call to |
| inline_secondary_memory_needed. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out |
| definition. |
| * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to |
| TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED |
| in comment. |
| * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete. |
| * config/mips/mips.c (mips_secondary_memory_needed): Make static |
| and match hook interface. Add comment from mips.h. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| * config/mmix/mmix.md (truncdfsf2): Refer to |
| TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED |
| in comment. |
| * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to... |
| (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first. |
| * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| (pa_secondary_memory_needed): New function. |
| * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete. |
| * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| (pdp11_secondary_memory_needed): Make static and match hook interface. |
| * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/powerpcspe/powerpcspe-protos.h |
| (rs6000_secondary_memory_needed_ptr): Delete. |
| * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr): |
| Delete. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| (rs6000_option_override_internal): Assign to |
| targetm.secondary_memory_needed rather than |
| rs6000_secondary_memory_needed_ptr. |
| (rs6000_secondary_memory_needed): Match hook interface. |
| (rs6000_debug_secondary_memory_needed): Likewise. |
| * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/riscv/riscv.c (riscv_secondary_memory_needed): New function. |
| (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| (rs6000_option_override_internal): Assign to |
| targetm.secondary_memory_needed rather than |
| rs6000_secondary_memory_needed_ptr. |
| (rs6000_secondary_memory_needed): Match hook interface. |
| (rs6000_debug_secondary_memory_needed): Likewise. |
| * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/s390/s390.c (s390_secondary_memory_needed): New function. |
| (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete. |
| * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. |
| (sparc_secondary_memory_needed): New function. |
| * lra-constraints.c (check_and_process_move): Refer to |
| TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED |
| in comment. |
| (curr_insn_transform): Likewise. |
| (process_alt_operands): Use targetm.secondary_memory_needed |
| instead of TARGET_SECONDARY_MEMORY_NEEDED. |
| (check_secondary_memory_needed_p): Likewise. |
| (choose_split_class): Likewise. |
| * reload.c: Unconditionally include code that was previously |
| conditional on SECONDARY_MEMORY_NEEDED. |
| (push_secondary_reload): Use targetm.secondary_memory_needed |
| instead of TARGET_SECONDARY_MEMORY_NEEDED. |
| (push_reload): Likewise. |
| * reload1.c: Unconditionally include code that was previously |
| conditional on SECONDARY_MEMORY_NEEDED. |
| (choose_reload_regs): Use targetm.secondary_memory_needed |
| instead of TARGET_SECONDARY_MEMORY_NEEDED. |
| (gen_reload): Likewise. |
| * system.h (SECONDARY_MEMORY_NEEDED): Poison. |
| |
| 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (secondary_memory_needed_mode): New hook: |
| * targhooks.c (default_secondary_memory_needed_mode): Declare. |
| * targhooks.h (default_secondary_memory_needed_mode): New function. |
| * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with... |
| (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this. |
| * doc/tm.texi: Regenerate. |
| * lra-constraints.c (check_and_process_move): Use |
| targetm.secondary_memory_needed_mode instead of |
| TARGET_SECONDARY_MEMORY_NEEDED_MODE. |
| (curr_insn_transform): Likewise. |
| * reload.c (get_secondary_mem): Likewise. |
| * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. |
| * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New |
| function. |
| (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. |
| * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. |
| * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function. |
| (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. |
| * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE): |
| Delete. |
| * config/powerpcspe/powerpcspe-protos.h |
| (rs6000_secondary_memory_needed_mode): Delete. |
| * config/powerpcspe/powerpcspe.c |
| (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. |
| (rs6000_secondary_memory_needed_mode): Make static. |
| * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. |
| * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode): |
| Delete. |
| * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): |
| Redefine. |
| (rs6000_secondary_memory_needed_mode): Make static. |
| * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. |
| * config/s390/s390.c (s390_secondary_memory_needed_mode): New function. |
| (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. |
| * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): |
| Redefine. |
| (sparc_secondary_memory_needed_mode): New function. |
| * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison. |
| |
| 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| * config/aarch64/constraints.md (Umq): New constraint. |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): |
| Change to use Umq. |
| (mov<mode>): Update condition. |
| |
| 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order |
| when bitposition is the same. |
| |
| 2017-09-13 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (output_die_symbol): Remove. |
| (output_die): Do not output a DIEs symbol. |
| |
| 2017-09-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/82128 |
| * gimple-fold.c (gimple_fold_call): Update SSA name in-place to |
| default-def to avoid breaking iterator update with the weird |
| interaction with cgraph_update_edges_for_call_stmt_node. |
| |
| 2017-09-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (verify_gimple_assign_binary): Add verification |
| for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR, |
| VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR. |
| (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR. |
| |
| 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_after_change_1): |
| Disable pc relative literal load irrespective of |
| TARGET_FIX_ERR_A53_84341 for default. |
| |
| 2017-09-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (output_return): Output the source location of |
| the insn in the delay slot, if any. |
| (output_sibcall): Likewise. |
| |
| 2017-09-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/81498 |
| * common.opt (-static-pie): New alias. |
| (shared): Negate static-pie. |
| (-no-pie): Update help text. |
| (-pie): Likewise. |
| (static-pie): New option. |
| * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add |
| -static-pie support. |
| (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. |
| (LINK_EH_SPEC): Likewise. |
| (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise. |
| * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise. |
| * gcc.c (LINK_COMMAND_SPEC): Likewise. |
| (init_gcc_specs): Likewise. |
| (init_spec): Likewise. |
| (display_help): Update help message for -pie. |
| * doc/invoke.texi: Update -pie, -no-pie and -static. Document |
| -static-pie. |
| |
| 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. |
| (movdi_aarch64): Likewise. |
| (movti_aarch64): Likewise. |
| |
| 2017-09-12 Simon Wright <simon@pushface.org> |
| |
| PR target/80204 |
| * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate |
| calculation of the minor version, always output as 0. |
| |
| 2017-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82112 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For |
| ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion |
| on it early, rather than manual conversion late. For |
| ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion |
| instead of performing manual conversion. |
| |
| 2017-09-12 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/altivec.md (vec_widen_umult_even_v4si, |
| vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw, |
| vmulouw, vmulosw. |
| * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, |
| VMULOSW): Add definitions. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, |
| ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, |
| builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. |
| |
| 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.md (movdi_aarch64): Set load/store |
| types correctly. |
| (movti_aarch64): Likewise. |
| (movdf_aarch64): Likewise. |
| (movtf_aarch64): Likewise. |
| (load_pairdi): Likewise. |
| (store_pairdi): Likewise. |
| (load_pairdf): Likewise. |
| (store_pairdf): Likewise. |
| (loadwb_pair<GPI:mode>_<P:mode>): Likewise. |
| (storewb_pair<GPI:mode>_<P:mode>): Likewise. |
| (ldr_got_small_<mode>): Likewise. |
| (ldr_got_small_28k_<mode>): Likewise. |
| (ldr_got_tiny): Likewise. |
| * config/aarch64/iterators.md (ldst_sz): New. |
| (ldpstp_sz): Likewise. |
| * config/aarch64/thunderx.md (thunderx_storepair): Split store_8 |
| to store_16. |
| (thunderx_load): Split load_8 to load_16. |
| * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split |
| load_8 to load_16. |
| (thunderx2t99_storepair_basic): Split store_8 to store_16. |
| * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16. |
| (xgene1_store_pair): Split store_8 to store_16. |
| * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16. |
| (falkor_st_0_st_sd): Split store_8 to store_16. |
| |
| 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16 |
| and store1/2/3/4 to store_4/8/12/16. |
| * config/aarch64/aarch64.md: Update for rename. |
| * config/arm/arm.md: Likewise.: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/arm/thumb1.md: Likewise. |
| * config/arm/thumb2.md: Likewise. |
| * config/arm/vfp.md: Likewise. |
| * config/arm/arm-generic.md: Likewise. |
| * config/arm/arm1020e.md: Likewise. |
| * config/arm/arm1026ejs.md: Likewise. |
| * config/arm/arm1136jfs.md: Likewise. |
| * config/arm/arm926ejs.md: Likewise. |
| * config/arm/cortex-a15.md: Likewise. |
| * config/arm/cortex-a17.md: Likewise. |
| * config/arm/cortex-a5.md: Likewise. |
| * config/arm/cortex-a53.md: Likewise. |
| * config/arm/cortex-a57.md: Likewise. |
| * config/arm/cortex-a7.md: Likewise. |
| * config/arm/cortex-a8.md: Likewise. |
| * config/arm/cortex-a9.md: Likewise. |
| * config/arm/cortex-m4.md: Likewise. |
| * config/arm/cortex-m7.md: Likewise. |
| * config/arm/cortex-r4.md: Likewise. |
| * config/arm/exynos-m1.md: Likewise. |
| * config/arm/fa526.md: Likewise. |
| * config/arm/fa606te.md: Likewise. |
| * config/arm/fa626te.md: Likewise. |
| * config/arm/fa726te.md: Likewise. |
| * config/arm/fmp626.md: Likewise. |
| * config/arm/iwmmxt.md: Likewise. |
| * config/arm/ldmstm.md: Likewise. |
| * config/arm/marvell-pj4.md: Likewise. |
| * config/arm/xgene1.md: Likewise. |
| * config/aarch64/thunderx.md: Likewise. |
| * config/aarch64/thunderx2t99.md: Likewise. |
| * config/aarch64/falkor.md: Likewise. |
| |
| 2017-09-12 Martin Liska <mliska@suse.cz> |
| |
| * attribs.c (private_lookup_attribute): New function. |
| * attribs.h (private_lookup_attribute): Declared here. |
| (lookup_attribute): Called from this place. |
| |
| 2017-09-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82157 |
| * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove |
| stmts with side-effects. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (hard_regno_nregs): New hook. |
| (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS. |
| * targhooks.h (default_hard_regno_nregs): Declare. |
| * targhooks.c (default_hard_regno_nregs): New function. |
| * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with... |
| (TARGET_HARD_REGNO_NREGS): ...this hook. |
| (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly. |
| (CLASS_MAX_NREGS): Likewise. |
| * doc/tm.texi: Regenerate. |
| * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs |
| instead of HARD_REGNO_NREGS. |
| * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than |
| HARD_REGNO_NREGS in the comment. |
| * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete. |
| * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete. |
| * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static. |
| Return an unsigned int. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete. |
| * config/arc/arc.h (HARD_REGNO_NREGS): Delete. |
| * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (arc_hard_regno_nregs): New function. |
| * config/arm/arm.h (HARD_REGNO_NREGS): Delete. |
| * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (arm_hard_regno_nregs): New function. |
| * config/avr/avr.h (HARD_REGNO_NREGS): Delete. |
| * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete. |
| * config/bfin/bfin.c (bfin_hard_regno_nregs): New function. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete. |
| * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs. |
| (HARD_REGNO_NREGS): Delete. |
| * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (cr16_hard_regno_nregs): New function. |
| (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS. |
| * config/cris/cris.h (HARD_REGNO_NREGS): Delete. |
| * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (cris_hard_regno_nregs): New function. |
| * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete. |
| * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete. |
| (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. |
| * config/frv/frv.h (HARD_REGNO_NREGS): Delete. |
| (CLASS_MAX_NREGS): Remove outdated copy of documentation. |
| * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete. |
| * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (frv_hard_regno_nregs): Make static. Take and return an |
| unsigned int. |
| (frv_class_max_nregs): Remove outdated copy of documentation. |
| * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete. |
| * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete. |
| * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete. |
| * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete. |
| * config/i386/i386.h (HARD_REGNO_NREGS): Delete. |
| * config/i386/i386.c (ix86_hard_regno_nregs): New function. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete. |
| (CLASS_MAX_NREGS): Update comment. |
| * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (ia64_hard_regno_nregs): New function. |
| * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete. |
| * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete. |
| * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete. |
| * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete. |
| * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return |
| an unsigned int. |
| (m32c_hard_regno_nregs): Likewise. Make static. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete. |
| * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete. |
| * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (m68k_hard_regno_nregs): New function. |
| * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete. |
| * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete. |
| * config/mips/mips.h (HARD_REGNO_NREGS): Delete. |
| * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete. |
| * config/mips/mips.c (mips_hard_regno_nregs): Make static. |
| Take and return an unsigned int. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete. |
| (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. |
| * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete. |
| * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete. |
| * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete. |
| * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete. |
| * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (msp430_hard_regno_nregs): Make static. Take and return an |
| unsigned int. |
| * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete. |
| * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete. |
| * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete. |
| (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs. |
| * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete. |
| * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete. |
| * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to... |
| (PA_HARD_REGNO_NREGS): ...this. |
| * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to... |
| (PA_HARD_REGNO_NREGS): ...this. |
| * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (pa_hard_regno_nregs): New function. |
| * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete. |
| * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (pdp11_hard_regno_nregs): New function. |
| * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete. |
| * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (rs6000_hard_regno_nregs_hook): New function. |
| * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete. |
| * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. |
| * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static. |
| Take and return an unsigned int. Move earlier in file. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete. |
| * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete. |
| * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine. |
| (rl78_hard_regno_nregs): Make static. Take and return an |
| unsigned int. |
| * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete. |
| * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (rs6000_hard_regno_nregs_hook): New function. |
| * config/rx/rx.h (HARD_REGNO_NREGS): Delete. |
| * config/rx/rx.c (rx_hard_regno_nregs): New function. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/s390/s390.h (HARD_REGNO_NREGS): Delete. |
| * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs |
| instead of HARD_REGNO_NREGS. |
| (s390_hard_regno_nregs): New function. |
| (s390_hard_regno_mode_ok): Add comment from s390.h. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/sh/sh.h (HARD_REGNO_NREGS): Delete. |
| * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (sh_hard_regno_nregs): New function. |
| (sh_pass_in_reg_p): Use it. |
| * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete. |
| * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (sparc_hard_regno_nregs): New function. |
| * config/spu/spu.h (HARD_REGNO_NREGS): Delete. |
| * config/spu/spu.c (spu_hard_regno_nregs): New function. |
| (spu_function_arg_advance): Use it, supplying a valid register number. |
| (TARGET_HARD_REGNO_NREGS): Redefine. |
| * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete. |
| * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete. |
| * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete. |
| * config/v850/v850.h (HARD_REGNO_NREGS): Delete. |
| * config/vax/vax.h (HARD_REGNO_NREGS): Delete. |
| * config/visium/visium.h (HARD_REGNO_NREGS): Delete. |
| (CLASS_MAX_NREGS): Remove copy of old documentation. |
| * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| (visium_hard_regno_nregs): New function. |
| (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS. |
| * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete. |
| * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine. |
| xtensa_hard_regno_nregs): New function. |
| * system.h (HARD_REGNO_NREGS): Poison. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use |
| hard_regno_nregs instead of HARD_REGNO_NREGS. |
| (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. |
| * config/c6x/c6x.c (c6x_expand_prologue): Likewise. |
| (c6x_expand_epilogue): Likewise. |
| * config/frv/frv.c (frv_alloc_temp_reg): Likewise. |
| (frv_read_iacc_argument): Likewise. |
| * config/sh/sh.c: Include regs.h. |
| (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS. |
| (regs_used): Likewise. |
| (output_stack_adjust): Likewise. |
| * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise. |
| * expmed.c: Include regs.h. |
| (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS. |
| * ree.c: Include regs.h. |
| (combine_reaching_defs): Use hard_regno_nregs instead of |
| HARD_REGNO_NREGS. |
| (add_removable_extension): Likewise. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * regs.h (hard_regno_nregs): Turn into a function. |
| (end_hard_regno): Update accordingly. |
| * caller-save.c (setup_save_areas): Likewise. |
| (save_call_clobbered_regs): Likewise. |
| (replace_reg_with_saved_mem): Likewise. |
| (insert_restore): Likewise. |
| (insert_save): Likewise. |
| * combine.c (can_change_dest_mode): Likewise. |
| (move_deaths): Likewise. |
| (distribute_notes): Likewise. |
| * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class) |
| (rs6000_split_multireg_move): Likewise. |
| (rs6000_register_move_cost): Likewise. |
| (rs6000_memory_move_cost): Likewise. |
| * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise. |
| (rs6000_split_multireg_move): Likewise. |
| (rs6000_register_move_cost): Likewise. |
| (rs6000_memory_move_cost): Likewise. |
| * cselib.c (cselib_reset_table): Likewise. |
| (cselib_lookup_1): Likewise. |
| * emit-rtl.c (set_mode_and_regno): Likewise. |
| * function.c (aggregate_value_p): Likewise. |
| * ira-color.c (setup_profitable_hard_regs): Likewise. |
| (check_hard_reg_p): Likewise. |
| (calculate_saved_nregs): Likewise. |
| (assign_hard_reg): Likewise. |
| (improve_allocation): Likewise. |
| (calculate_spill_cost): Likewise. |
| * ira-emit.c (modify_move_list): Likewise. |
| * ira-int.h (ira_hard_reg_set_intersection_p): Likewise. |
| (ira_hard_reg_in_set_p): Likewise. |
| * ira.c (setup_reg_mode_hard_regset): Likewise. |
| (clarify_prohibited_class_mode_regs): Likewise. |
| (check_allocation): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| (lra_setup_reg_renumber): Likewise. |
| (setup_try_hard_regno_pseudos): Likewise. |
| (spill_for): Likewise. |
| (assign_hard_regno): Likewise. |
| (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. |
| * lra-constraints.c (in_class_p): Likewise. |
| (lra_constraint_offset): Likewise. |
| (simplify_operand_subreg): Likewise. |
| (lra_constraints): Likewise. |
| (split_reg): Likewise. |
| (split_if_necessary): Likewise. |
| (invariant_p): Likewise. |
| (inherit_in_ebb): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * lra-remat.c (reg_overlap_for_remat_p): Likewise. |
| (get_hard_regs): Likewise. |
| (do_remat): Likewise. |
| * lra-spills.c (assign_spill_hard_regs): Likewise. |
| * mode-switching.c (create_pre_exit): Likewise. |
| * postreload.c (reload_combine_recognize_pattern): Likewise. |
| * recog.c (peep2_find_free_register): Likewise. |
| * regcprop.c (kill_value_regno): Likewise. |
| (set_value_regno): Likewise. |
| (copy_value): Likewise. |
| (maybe_mode_change): Likewise. |
| (find_oldest_value_reg): Likewise. |
| (copyprop_hardreg_forward_1): Likewise. |
| * regrename.c (check_new_reg_p): Likewise. |
| (regrename_do_replace): Likewise. |
| * reload.c (push_reload): Likewise. |
| (combine_reloads): Likewise. |
| (find_dummy_reload): Likewise. |
| (operands_match_p): Likewise. |
| (find_reloads): Likewise. |
| (find_equiv_reg): Likewise. |
| (reload_adjust_reg_for_mode): Likewise. |
| * reload1.c (count_pseudo): Likewise. |
| (count_spilled_pseudo): Likewise. |
| (find_reg): Likewise. |
| (clear_reload_reg_in_use): Likewise. |
| (free_for_value_p): Likewise. |
| (allocate_reload_reg): Likewise. |
| (choose_reload_regs): Likewise. |
| (reload_adjust_reg_for_temp): Likewise. |
| (emit_reload_insns): Likewise. |
| (delete_output_reload): Likewise. |
| * rtlanal.c (subreg_get_info): Likewise. |
| * sched-deps.c (sched_analyze_reg): Likewise. |
| * sel-sched.c (init_regs_for_mode): Likewise. |
| (mark_unavailable_hard_regs): Likewise. |
| (choose_best_reg_1): Likewise. |
| (verify_target_availability): Likewise. |
| * valtrack.c (dead_debug_insert_temp): Likewise. |
| * var-tracking.c (track_loc_p): Likewise. |
| (emit_note_insn_var_location): Likewise. |
| * varasm.c (make_decl_rtl): Likewise. |
| * reginfo.c (choose_hard_reg_mode): Likewise. |
| (init_reg_modes_target): Refer directly to |
| this_target_regs->x_hard_regno_nregs. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p |
| instead of hard_regno_nregs. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use |
| end_hard_regno instead of hard_regno_nregs. |
| * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. |
| * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise. |
| * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise. |
| * ira-color.c (improve_allocation): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * lra-lives.c (mark_regno_live): Likewise. |
| (mark_regno_dead): Likewise. |
| * lra-remat.c (operand_to_remat): Likewise. |
| * lra.c (collect_non_operand_hard_regs): Likewise. |
| * postreload.c (reload_combine_note_store): Likewise. |
| (move2add_valid_value_p): Likewise. |
| * reload.c (regno_clobbered_p): Likewise. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of |
| hard_regno_nregs. |
| * config/v850/v850.c (v850_reorg): Likewise. |
| * reload.c (refers_to_regno_for_reload_p): Likewise. |
| (find_equiv_reg): Likewise. |
| * reload1.c (reload_reg_reaches_end_p): Likewise. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * caller-save.c (add_used_regs): Use REG_NREGS instead of |
| hard_regno_nregs. |
| * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise. |
| * config/arm/arm.c (output_move_neon): Likewise. |
| (arm_attr_length_move_neon): Likewise. |
| (neon_split_vcombine): Likewise. |
| * config/c6x/c6x.c (c6x_mark_reg_read): Likewise. |
| (c6x_mark_reg_written): Likewise. |
| (c6x_dwarf_register_span): Likewise. |
| * config/i386/i386.c (ix86_save_reg): Likewise. |
| * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise. |
| (rws_access_reg): Likewise. |
| * config/s390/s390.c (s390_call_saved_register_used): Likewise. |
| * mode-switching.c (create_pre_exit): Likewise. |
| * ree.c (combine_reaching_defs): Likewise. |
| (add_removable_extension): Likewise. |
| * regcprop.c (find_oldest_value_reg): Likewise. |
| (copyprop_hardreg_forward_1): Likewise. |
| * reload.c (reload_inner_reg_of_subreg): Likewise. |
| (push_reload): Likewise. |
| (combine_reloads): Likewise. |
| (find_dummy_reload): Likewise. |
| (reload_adjust_reg_for_mode): Likewise. |
| * reload1.c (find_reload_regs): Likewise. |
| (forget_old_reloads_1): Likewise. |
| (reload_reg_free_for_value_p): Likewise. |
| (reload_adjust_reg_for_temp): Likewise. |
| (emit_reload_insns): Likewise. |
| (delete_output_reload): Likewise. |
| * sel-sched.c (choose_best_reg_1): Likewise. |
| (choose_best_pseudo_reg): Likewise. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * defaults.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * target.def (slow_unaligned_access): New hook. |
| * targhooks.h (default_slow_unaligned_access): Declare. |
| * targhooks.c (default_slow_unaligned_access): New function. |
| * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with... |
| (TARGET_SLOW_UNALIGNED_ACCESS): ...this. |
| * doc/tm.texi: Regenerate. |
| * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out |
| definition. |
| * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS): |
| Redefine. |
| (rs6000_slow_unaligned_access): New function. |
| (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. |
| (expand_block_compare): Likewise. |
| (expand_strn_compare): Likewise. |
| (rs6000_rtx_costs): Likewise. |
| * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete. |
| (riscv_slow_unaligned_access): Likewise. |
| * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to... |
| (riscv_slow_unaligned_access_p): ...this and make static. |
| (riscv_option_override): Update accordingly. |
| (riscv_slow_unaligned_access): New function. |
| (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. |
| * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. |
| (rs6000_slow_unaligned_access): New function. |
| (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. |
| (rs6000_rtx_costs): Likewise. |
| * config/rs6000/rs6000-string.c (expand_block_compare) |
| (expand_strn_compare): Use targetm.slow_unaligned_access instead |
| of SLOW_UNALIGNED_ACCESS. |
| * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete. |
| * calls.c (expand_call): Use targetm.slow_unaligned_access instead |
| of SLOW_UNALIGNED_ACCESS. |
| * expmed.c (simple_mem_bitfield_p): Likewise. |
| * expr.c (alignment_for_piecewise_move): Likewise. |
| (emit_group_load_1): Likewise. |
| (emit_group_store): Likewise. |
| (copy_blkmode_from_reg): Likewise. |
| (emit_push_insn): Likewise. |
| (expand_assignment): Likewise. |
| (store_field): Likewise. |
| (expand_expr_real_1): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. |
| * lra-constraints.c (simplify_operand_subreg): Likewise. |
| * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. |
| * gimple-ssa-store-merging.c: Likewise in block comment at start |
| of file. |
| * tree-ssa-strlen.c: Include target.h. |
| (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead |
| of SLOW_UNALIGNED_ACCESS. |
| * system.h (SLOW_UNALIGNED_ACCESS): Poison. |
| |
| 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR rtl-optimization/82185 |
| * expmed.c (emit_store_flag_int): Only test tem if it has been |
| initialized. |
| |
| 2017-09-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/82149 |
| * match.pd ((FTYPE) N CMP CST): Fix typo. |
| |
| 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com> |
| |
| * config/mips/mips.c (mips_attribute_table): Add 'short_call' |
| attribute. |
| (mips_near_type_p): Add 'short_call' attribute as a synonym |
| for 'near'. |
| * doc/extend.texi (short_call): Document new function attribute. |
| |
| 2017-09-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/82112 |
| * c-common.c (sync_resolve_size): Instead of c_dialect_cxx () |
| assertion check that in the condition. |
| (get_atomic_generic_size): Likewise. Before testing if parameter |
| has pointer type, if it has array type, call for C++ |
| default_conversion to perform array-to-pointer conversion. |
| |
| 2017-09-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Do nothing |
| for operations we cannot scalarize. |
| |
| 2017-09-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC |
| vectors heap vectors. Clean up comments. |
| Make visited_bbs a reference. |
| (profitable_jump_thread_path): Make GC |
| vectors heap vectors. Clean up comments. |
| Misc cleanups. |
| (convert_and_register_jump_thread_path): Make GC vectors heap |
| vectors. |
| (check_subpath_and_update_thread_path): Same. Clean up comments. |
| Make visited_bbs a reference. |
| (handle_phi): Abstract common code to to |
| register_jump_thread_path_if_profitable. |
| Rename VAR_BB to DEF_BB. |
| Update comments. |
| Make GC vectors heap vectors. |
| Make visited_bbs a reference. |
| (handle_assignment): Same. |
| (register_jump_thread_path_if_profitable): New. |
| (fsm_find_control_statement_thread_paths): Rename VAR_BB to |
| DEF_BB. |
| Make GC vectors heap vectors. Clean up comments. |
| Make visited_bbs a reference. |
| (find_jump_threads_backwards): Make visited_bbs live in the stack. |
| * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in |
| comment. |
| |
| 2017-09-11 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/82181 |
| * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both |
| words of E_DImode object are reachable by xtensa_uimm8x4 access. |
| |
| 2017-09-11 Vidya Praveen <vidyapraveen@arm.com> |
| |
| Revert r251800 and r251799. |
| |
| 2017-09-11 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/82119 |
| * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in |
| arguments in advance. |
| * hsa-regalloc.c (naive_process_phi): New parameter predecessors, |
| use it to find predecessor edges. |
| (naive_outof_ssa): Collect vector of predecessors. |
| |
| 2017-09-08 Jason Merrill <jason@redhat.com> |
| |
| PR c++/70029 - ICE with ref-qualifier and -flto |
| * langhooks.h (struct lang_hooks_for_types): Add |
| copy_lang_qualifiers. |
| * attribs.c (build_type_attribute_qual_variant): Use it. |
| * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to |
| NULL. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. |
| * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check. |
| |
| 2017-09-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/81988 |
| * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32. |
| (*mulsi3_sp64): New instruction. |
| (mulsi3): New expander. |
| |
| 2017-09-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove. |
| |
| 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * sancov.c: Include memmodel.h. |
| |
| 2017-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/80897 |
| * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too |
| large offsets. |
| |
| 2017-09-07 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to |
| the sldi instruction. |
| |
| 2017-09-07 David Edelsohn <dje.gcc@gmail.com> |
| |
| * sancov.c: Include tm_p.h. |
| |
| 2017-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81979 |
| * output.h (switch_to_other_text_partition): New declaration. |
| * varasm.c (switch_to_other_text_partition): New function. |
| * config/rs6000/rs6000.c (uses_TOC): Return 2 if |
| NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn. |
| (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch |
| to the other text partition before emitting LCL label and switch back |
| after emitting the word after it. |
| |
| 2017-09-07 Richard Biener <rguenther@suse.de> |
| |
| * passes.def (pass_split_crit_edges): Remove instance before PRE. |
| * tree-ssa-pre.c (pass_pre::execute): Instead manually split |
| critical edges here, after loop init. |
| (pass_data_pre): Remove PROP_no_crit_edges flags. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize |
| for valueization of call args to avoid leaking VN_TOP. |
| (visit_use): Assert we do not visit default defs. |
| (init_scc_vn): Use build_decl for VN_TOP to make name nicer. |
| Use error_mark_node to more easily detect leaking VN_TOP. |
| All default-defs are varying, not VN_TOP. Mark them visited. |
| (run_scc_vn): Make code match comment. |
| |
| 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete |
| OPTION_MASK_FLOAT128_KEYWORD. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete |
| support for the -mfloat128-type option, and make -mfloat128 |
| default on PowerPC Linux systems. Define or undefine |
| __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options. |
| Define __float128 to be __ieee128 if IEEE 128-bit support is |
| enabled, or undefine it. |
| (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here. |
| Delete defining __FLOAT128_TYPE__. |
| * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the |
| -mfloat128-type option and make -mfloat128 default on PowerPC |
| Linux systems. |
| (TARGET_FLOAT128_TYPE): Likewise. |
| (-mfloat128-type): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): |
| Delete the -mfloat128-type option and make -mfloat128 default on |
| PowerPC Linux systems. Always use __ieee128 to be the keyword for |
| the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE |
| 128-bit floating point is enabled. Change tests from using |
| -mfloat128-type to -mfloat128. |
| (rs6000_mangle_type): Use the correct mangling for the __float128 |
| type even if normal long double is restricted to 64-bits. |
| (floatn_mode): Enable the _Float128 type by default on VSX Linux |
| systems. |
| * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete. |
| (MASK_FLOAT128_KEYWORD): Define new shortcut macro. |
| (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not |
| -mfloat128-type. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Update |
| documentation for -mfloat128. |
| |
| 2017-09-06 Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe. |
| |
| 2017-09-06 Wish Wu <wishwu007@gmail.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * asan.c (initialize_sanitizer_builtins): Add |
| BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16, |
| BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64, |
| BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and |
| BT_FN_VOID_UINT64_PTR variables. |
| * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type. |
| (BT_FN_VOID_UINT16_UINT16): Likewise. |
| (BT_FN_VOID_UINT32_UINT32): Likewise. |
| (BT_FN_VOID_FLOAT_FLOAT): Likewise. |
| (BT_FN_VOID_DOUBLE_DOUBLE): Likewise. |
| (BT_FN_VOID_UINT64_PTR): Likewise. |
| * common.opt (flag_sanitize_coverage): New variable. |
| (fsanitize-coverage=trace-pc): Remove. |
| (fsanitize-coverage=): Add. |
| * flag-types.h (enum sanitize_coverage_code): New enum. |
| * fold-const.c (fold_range_test): Disable non-short-circuit |
| optimization if flag_sanitize_coverage. |
| (fold_truth_andor): Likewise. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. |
| * opts.c (COVERAGE_SANITIZER_OPT): Define. |
| (coverage_sanitizer_opts): New array. |
| (get_closest_sanitizer_option): Add OPTS argument, handle also |
| OPT_fsanitize_coverage_. |
| (parse_sanitizer_options): Adjusted to also handle |
| OPT_fsanitize_coverage_. |
| (common_handle_option): Add OPT_fsanitize_coverage_. |
| * sancov.c (instrument_comparison, instrument_switch): New function. |
| (sancov_pass): Add trace-cmp support. |
| * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1, |
| BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4, |
| BUILT_IN_SANITIZER_COV_TRACE_CMP8, |
| BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1, |
| BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2, |
| BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4, |
| BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8, |
| BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD, |
| BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins. |
| * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp. |
| |
| 2017-09-06 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/parsecpu.awk (fatal): Note that we've encountered an |
| error. Only quit immediately if parsing is complete. |
| (BEGIN): Initialize fatal_err and parse_done. |
| (begin fpu, end fpu): Check number of arguments. |
| (begin arch, end arch): Likewise. |
| (begin cpu, end cpu): Likewise. |
| (cname, tune for, tune flags, architecture, fpu, option): Likewise. |
| (optalias): Likewise. |
| |
| 2017-09-06 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. |
| * config/arm/arm-isa.h: Delete. Move definitions to ... |
| * arm-cpus.in: ... here. Use new feature and fgroup values. |
| * config/arm/arm.c (arm_option_override): Use lower case for feature |
| bit names. |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. |
| (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. |
| * config/arm/parsecpu.awk (END): Add new command 'isa'. |
| (isa_pfx): Delete. |
| (print_isa_bits_for): New function. |
| (gen_isa): New function. |
| (gen_comm_data): Use print_isa_bits_for. |
| (define feature): New keyword. |
| (define fgroup): New keyword. |
| * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h |
| (arm-isa.h): Add rule to generate file. |
| * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower |
| case for feature bit names. |
| |
| 2017-09-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (NECESSARY): Remove. |
| (create_expression_by_pieces): Do not touch pass-local flags. |
| (insert_into_preds_of_block): Likewise. |
| (do_pre_regular_insertion): Likewise. |
| (eliminate_insert): Likewise. |
| (eliminate_dom_walker::before_dom_children): Likewise. |
| (fini_eliminate): Do not look at inserted_exprs. |
| (mark_operand_necessary): Remove. |
| (remove_dead_inserted_code): Replace with simple work-list |
| algorithm based on inserted_exprs and SSA uses. |
| (pass_pre::execute): Re-order fini_eliminate and |
| remove_dead_inserted_code. |
| |
| 2017-09-06 Olivier Hainque <hainque@adacore.com> |
| |
| * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition |
| for VxWorks 7. Adjust surrounding comments. |
| |
| 2017-09-06 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-strength-reduction.c |
| (find_candidates_dom_walker::before_dom_children): Also allow |
| pointer types. |
| |
| 2017-09-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82108 |
| * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment |
| for gap in the non-permutation SLP case. |
| |
| 2017-09-06 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/82078 |
| * tree-sra.c (sort_and_splice_var_accesses): Move call to |
| add_access_to_work_queue... |
| (build_accesses_from_assign): ...here. |
| (propagate_all_subaccesses): Make sure racc is the group |
| representative, if there is one. |
| |
| 2017-09-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/82095 |
| * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with |
| NULL DECL_INITIAL. |
| |
| 2017-09-06 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-strength-reduction.c |
| (find_candidates_dom_walker::before_doom_children): Use a |
| type and not a mode check. |
| |
| 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR target/77308 |
| * config/arm/predicates.md (arm_general_adddi_operand): Create new |
| non-vfp predicate. |
| * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates. |
| |
| 2017-09-05 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/64910 |
| * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to |
| cases where we have 3 or more operands. |
| |
| 2017-09-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/81768 |
| * omp-low.c (lower_omp_for): Recompute tree invariant if |
| gimple_omp_for_initial/final is ADDR_EXPR. |
| |
| PR middle-end/81768 |
| * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR |
| into gimple val before gimplification fo the COND_EXPR. |
| |
| 2017-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused |
| REGION_COPY argument. |
| (thread_through_all_blocks): Remove unused argument to |
| duplicate_thread_path. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): |
| Take a scalar_mode rather than a machine_mode. |
| (aarch64_operands_adjust_ok_for_ldpstp): Likewise. |
| * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise. |
| (aarch64_operands_adjust_ok_for_ldpstp): Likewise. |
| (aarch64_gen_adjusted_ldpstp): Likewise. |
| (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract): |
| Take a scalar_int_mode instead of a machine_mode. |
| (aarch64_mask_and_shift_for_ubfiz_p): Likewise. |
| (aarch64_output_scalar_simd_mov_immediate): Likewise. |
| (aarch64_simd_scalar_immediate_valid_for_move): Likewise. |
| (aarch64_simd_attr_length_rglist): Delete. |
| * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take |
| a scalar_int_mode instead of a machine_mode. |
| (aarch64_add_offset): Likewise. |
| (aarch64_internal_mov_immediate): Likewise |
| (aarch64_add_constant_internal): Likewise. |
| (aarch64_add_constant): Likewise. |
| (aarch64_movw_imm): Likewise. |
| (aarch64_rtx_arith_op_extract_p): Likewise. |
| (aarch64_mask_and_shift_for_ubfiz_p): Likewise. |
| (aarch64_simd_scalar_immediate_valid_for_move): Likewise. |
| Remove assert that the mode isn't a vector. |
| (aarch64_output_scalar_simd_mov_immediate): Likewise. |
| (aarch64_expand_mov_immediate): Update calls after above changes. |
| (aarch64_output_casesi): Use as_a <scalar_int_mode>. |
| (aarch64_and_bitmask_imm): Check for scalar integer modes. |
| (aarch64_move_imm): Likewise. |
| (aarch64_can_const_movi_rtx_p): Likewise. |
| (aarch64_strip_extend): Likewise. |
| (aarch64_extr_rtx_p): Likewise. |
| (aarch64_rtx_costs): Likewise, using wode_mode as the mode of |
| a CONST_INT when the mode parameter is VOIDmode. |
| (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * machmode.h (bitwise_mode_for_mode): Return opt_mode. |
| * stor-layout.c (bitwise_mode_for_mode): Likewise. |
| (bitwise_type_for_mode): Update accordingly. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * stor-layout.h (mode_for_size_tree): Return an opt_mode. |
| * stor-layout.c (mode_for_size_tree): Likewise. |
| (mode_for_array): Update accordingly. |
| (layout_decl): Likewise. |
| (compute_record_mode): Likewise. Only set the mode once. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * target.def (get_mask_mode): Change return type to opt_mode. |
| Expand commentary. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_get_mask_mode): Return an opt_mode. |
| * targhooks.c (default_get_mask_mode): Likewise. |
| * config/i386/i386.c (ix86_get_mask_mode): Likewise. |
| * optabs-query.c (can_vec_mask_load_store_p): Update use of |
| targetm.get_mask_mode. |
| * tree.c (build_truth_vector_type): Likewise. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * machmode.h (mode_for_vector): Return an opt_mode. |
| * stor-layout.c (mode_for_vector): Likewise. |
| (mode_for_int_vector): Update accordingly. |
| (layout_type): Likewise. |
| * config/i386/i386.c (emit_memmov): Likewise. |
| (ix86_expand_set_or_movmem): Likewise. |
| (ix86_expand_vector_init): Likewise. |
| (ix86_get_mask_mode): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise. |
| * expmed.c (extract_bit_field_1): Likewise. |
| * expr.c (expand_expr_real_2): Likewise. |
| * optabs-query.c (can_vec_perm_p): Likewise. |
| (can_vec_mask_load_store_p): Likewise. |
| * optabs.c (expand_vec_perm): Likewise. |
| * targhooks.c (default_get_mask_mode): Likewise. |
| * tree-vect-stmts.c (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| (get_vectype_for_scalar_type_and_size): Likewise. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * machmode.h (mode_for_int_vector): New function. |
| * stor-layout.c (mode_for_int_vector): Likewise. |
| * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it. |
| * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise. |
| * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. |
| * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. |
| (s390_expand_vcond): Likewise. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * machmode.h (opt_machine_mode): New type. |
| (opt_mode<T>): Allow construction from anything that can be |
| converted to a T. |
| (is_a, as_a, dyn_cast): Add overloads for opt_mode. |
| (mode_for_size): Return an opt_machine_mode. |
| * stor-layout.c (mode_for_size): Likewise. |
| (mode_for_size_tree): Update call accordingly. |
| (bitwise_mode_for_mode): Likewise. |
| (make_fract_type): Likewise. |
| (make_accum_type): Likewise. |
| * caller-save.c (replace_reg_with_saved_mem): Update call |
| accordingly. |
| * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. |
| * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. |
| * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. |
| * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. |
| * expmed.c (extract_bit_field_1): Likewise. |
| * reload.c (get_secondary_mem): Likewise. |
| * varasm.c (assemble_integer): Likewise. |
| * lower-subreg.c (simplify_subreg_concatn): Likewise. Move |
| early-out. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * machmode.h (decimal_float_mode_for_size): New function. |
| * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size. |
| (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. |
| (REAL_VALUE_TO_TARGET_SINGLE): Likewise. |
| (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size. |
| (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise. |
| (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * builtins.c (expand_builtin_powi): Use int_mode_for_size. |
| (get_builtin_sync_mode): Likewise. |
| (expand_ifn_atomic_compare_exchange): Likewise. |
| (expand_builtin_atomic_clear): Likewise. |
| (expand_builtin_atomic_test_and_set): Likewise. |
| (fold_builtin_atomic_always_lock_free): Likewise. |
| * calls.c (compute_argument_addresses): Likewise. |
| (emit_library_call_value_1): Likewise. |
| (store_one_arg): Likewise. |
| * combine.c (combine_instructions): Likewise. |
| * config/aarch64/aarch64.c (aarch64_function_value): Likewise. |
| * config/arm/arm.c (arm_function_value): Likewise. |
| (aapcs_allocate_return_reg): Likewise. |
| * config/c6x/c6x.c (c6x_expand_movmem): Likewise. |
| * config/i386/i386.c (construct_container): Likewise. |
| (ix86_gimplify_va_arg): Likewise. |
| (ix86_expand_sse_cmp): Likewise. |
| (emit_memmov): Likewise. |
| (emit_memset): Likewise. |
| (expand_small_movmem_or_setmem): Likewise. |
| (ix86_expand_pextr): Likewise. |
| (ix86_expand_pinsr): Likewise. |
| * config/lm32/lm32.c (lm32_block_move_inline): Likewise. |
| * config/microblaze/microblaze.c (microblaze_block_move_straight): |
| Likewise. |
| * config/mips/mips.c (mips_function_value_1) Likewise. |
| (mips_block_move_straight): Likewise. |
| (mips_expand_ins_as_unaligned_store): Likewise. |
| * config/powerpcspe/powerpcspe.c |
| (rs6000_darwin64_record_arg_advance_flush): Likewise. |
| (rs6000_darwin64_record_arg_flush): Likewise. |
| * config/rs6000/rs6000.c |
| (rs6000_darwin64_record_arg_advance_flush): Likewise. |
| (rs6000_darwin64_record_arg_flush): Likewise. |
| * config/sparc/sparc.c (sparc_function_arg_1): Likewise. |
| (sparc_function_value_1): Likewise. |
| * config/spu/spu.c (adjust_operand): Likewise. |
| (spu_emit_branch_or_set): Likewise. |
| (arith_immediate_p): Likewise. |
| * emit-rtl.c (gen_lowpart_common): Likewise. |
| * expr.c (expand_expr_real_1): Likewise. |
| * function.c (assign_parm_setup_block): Likewise. |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. |
| * reload1.c (alter_reg): Likewise. |
| * stor-layout.c (mode_for_vector): Likewise. |
| (layout_type): Likewise. |
| |
| 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode. |
| (spu_convert_move): Likewise. |
| * lower-subreg.c (resolve_simple_move): Likewise. |
| |
| 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/81833 |
| * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a |
| define_insn to a define_expand. |
| (altivec_vsum2sws_direct): New define_insn. |
| (altivec_vsumsws): Convert from a define_insn to a define_expand. |
| |
| 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.c (arm_option_params_internal): Improve setting of |
| max_insns_skipped. |
| |
| 2017-09-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/59501 |
| PR target/81624 |
| PR target/81769 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't |
| realign stack if stack alignment needed is less than incoming |
| stack boundary. |
| |
| 2017-09-05 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/82072 |
| * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan |
| check earlier. |
| |
| 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * explow.c (get_dynamic_stack_size): Improve dynamic alignment. |
| |
| 2017-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82084 |
| * fold-const.c (can_native_encode_string_p): Handle wide characters. |
| |
| 2017-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82102 |
| * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL. |
| |
| 2017-09-05 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/82032 |
| * tree-cfg.c (generate_range_test): New function. |
| * tree-cfg.h (generate_range_test): Declared here. |
| * tree-cfgcleanup.c (convert_single_case_switch): New function. |
| (cleanup_control_expr_graph): Use it. |
| * tree-switch-conversion.c (try_switch_expansion): Remove |
| assert. |
| (emit_case_nodes): Use generate_range_test. |
| |
| 2017-09-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/82098 |
| * config/i386/i386.md (*<btsc><mode>_mask): Add |
| TARGET_USE_BT to insn constraint. |
| (*btr<mode>_mask): Ditto. |
| |
| 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.c (arm_legitimate_index_p): Add comment. |
| (thumb2_legitimate_index_p): Use correct range for DI/DF mode. |
| |
| 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR target/77308 |
| * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for |
| TARGET_NEON and TARGET_IWMMXT. |
| (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for |
| TARGET_NEON and TARGET_IWMMXT. |
| (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here. |
| |
| 2017-09-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype. |
| (ix86_rewrite_tls_address): Ditto. |
| * config/i386/i386.c (ix86_tls_address_pattern_p) New function. |
| (ix86_rewrite_tls_address_1): Ditto. |
| (ix86_rewrite_tls_address): Ditto. |
| * config/i386/predicates.md (tls_address_pattern): New predicate. |
| * config/i386/i386.md (TLS address splitter): New splitter. |
| |
| 2017-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82084 |
| * fold-const.h (can_native_encode_string_p): Declare. |
| * fold-const.c (can_native_encode_string_p): Factor out from ... |
| (native_encode_string): ... here. |
| * tree-vect-stmts.c (vectorizable_store): Call it to avoid |
| vectorizing stores from constants we later cannot handle. |
| |
| 2017-09-04 Marek Polacek <polacek@redhat.com> |
| |
| PR c/81783 |
| * doc/invoke.texi: Update -Wtautological-compare documentation. |
| |
| 2017-09-04 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/64910 |
| * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops, |
| swap the first and last operand if the last is a constant. |
| |
| 2017-09-04 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/82072 |
| * convert.c (do_narrow): When sanitizing signed integer overflows, |
| bail out for signed types. |
| (convert_to_integer_1) <case NEGATE_EXPR>: Likewise. |
| |
| 2017-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/82060 |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): |
| Move devirtualization after stmt folding and before EH/AB/noreturn |
| cleanup to get the stmt refs canonicalized. Use a bool instead |
| of gimple_modified_p since that doesn't work for NOPs. Schedule |
| NOPs generated by folding for removal. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (pad_direction): New enum. |
| * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete. |
| (FUNCTION_ARG_PADDING): Likewise. |
| * target.def (function_arg_padding): New hook. |
| * targhooks.h (default_function_arg_padding): Declare. |
| * targhooks.c (default_function_arg_padding): New function. |
| * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with... |
| (TARGET_FUNCTION_ARG_PADDING): ...this. |
| * doc/tm.texi: Regenerate. |
| * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction |
| instead of direction. |
| (compute_argument_addresses): Likewise. |
| (load_register_parameters): Likewise. |
| (emit_library_call_value_1): Likewise. |
| (store_one_arg): Use targetm.calls.function_arg_padding instead |
| of FUNCTION_ARG_PADDING. |
| (must_pass_in_stack_var_size_or_pad): Likewise. |
| * expr.c (emit_group_load_1): Use pad_direction instead of direction. |
| (emit_group_store): Likewise. |
| (emit_single_push_insn_1): Use targetm.calls.function_arg_padding |
| instead of FUNCTION_ARG_PADDING. |
| (emit_push_insn): Likewise, and propagate enum change throughout |
| function. |
| * function.h (direction): Delete. |
| (locate_and_pad_arg_data::where_pad): Use pad_direction instead |
| of direction. |
| * function.c (assign_parm_find_stack_rtl): Likewise. |
| (assign_parm_setup_block_p): Likewise. |
| (assign_parm_setup_block): Likewise. |
| (gimplify_parameters): Likewise. |
| (locate_and_pad_parm): Use targetm.calls.function_arg_padding |
| instead of FUNCTION_ARG_PADDING, and propagate enum change throughout |
| function. |
| * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete. |
| (BLOCK_REG_PADDING): Use pad_direction instead of direction. |
| * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete. |
| * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with... |
| (aarch64_function_arg_padding): ...this new function. |
| (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction. |
| (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete. |
| (BLOCK_REG_PADDING): Use pad_direction instead of direction. |
| * config/arm/arm-protos.h (arm_pad_arg_upward): Delete. |
| * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (arm_pad_arg_upward): Replace with... |
| (arm_function_arg_padding): ...this new function. |
| * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead |
| of direction. |
| * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete. |
| * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete. |
| * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (ia64_hpux_function_arg_padding): Replace with... |
| (ia64_function_arg_padding): ...this new function. Use pad_direction |
| instead of direction. Check for TARGET_HPUX. |
| * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete. |
| * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (iq2000_function_arg_padding): New function. |
| * config/mips/mips-protos.h (mips_pad_arg_upward): Delete. |
| * config/mips/mips.c (mips_pad_arg_upward): Replace with... |
| (mips_function_arg_padding): ...this new function. |
| (mips_pad_reg_upward): Update accordingly. |
| (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| * config/mips/mips.h (PAD_VARARGS_DOWN): Use |
| targetm.calls.function_arg_padding. |
| (FUNCTION_ARG_PADDING): Delete. |
| (BLOCK_REG_PADDING): Use pad_direction instead of direction. |
| * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete. |
| (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. |
| * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete. |
| (nios2_block_reg_padding): Return pad_direction instead of direction. |
| * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction |
| instead of direction. |
| (nios2_function_arg_padding): Likewise. Make static. |
| (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete. |
| (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding. |
| * config/pa/pa-protos.h (pa_function_arg_padding): Delete. |
| * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (pa_function_arg_padding): Make static. Return pad_direction instead |
| of direction. |
| * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete. |
| (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. |
| * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction |
| instead of direction. Use targetm.calls.function_arg_padding. |
| * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise. |
| * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise. |
| * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise. |
| * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete. |
| * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING): |
| Redefine. |
| (function_arg_padding): Rename to... |
| (rs6000_function_arg_padding): ...this. Make static. Return |
| pad_direction instead of direction. |
| (rs6000_return_in_msb): Use rs6000_function_arg_padding. |
| * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete. |
| (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. |
| * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction |
| instead of direction. Use targetm.calls.function_arg_padding. |
| * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise. |
| * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise. |
| * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise. |
| * config/rs6000/rs6000-protos.h (function_arg_padding): Delete. |
| * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (function_arg_padding): Rename to... |
| (rs6000_function_arg_padding): ...this. Make static. Return |
| pad_direction instead of direction. |
| (rs6000_return_in_msb): Use rs6000_function_arg_padding. |
| * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete. |
| * config/s390/s390.c (s390_function_arg_padding): New function. |
| (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete. |
| * config/sparc/sparc-protos.h (function_arg_padding): Delete. |
| * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| (function_arg_padding): Rename to... |
| (sparc_function_arg_padding): ...this. Make static. Return |
| pad_direction instead of direction. |
| * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete. |
| * config/spu/spu.c (spu_function_arg_padding): New function. |
| (TARGET_FUNCTION_ARG_PADDING): Redefine. |
| * system.h (FUNCTION_ARG_PADDING): Poison. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (modes_tieable_p): New hook. |
| * doc/tm.texi (MODES_TIEABLE_P): Replace with... |
| (TARGET_MODES_TIEABLE_P): ...this. |
| * doc/tm.texi.in: Regenerate. |
| * hooks.h (hook_bool_mode_mode_true): Declare. |
| * hooks.c (hook_bool_mode_mode_true): New function. |
| * combine.c (subst): Use targetm.modes_tieable_p instead of |
| MODES_TIEABLE_P. |
| * dse.c (find_shift_sequence): Likewise. |
| * expmed.c (extract_low_bits): Likewise. |
| * lower-subreg.c: Include target.h. |
| (find_decomposable_subregs): Use targetm.modes_tieable_p instead of |
| MODES_TIEABLE_P. |
| * rtlanal.c (rtx_cost): Likewise. |
| * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete. |
| * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete. |
| * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/alpha/alpha.h (MODES_TIEABLE_P): Delete. |
| * config/alpha/alpha.c (alpha_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/arc/arc.h (MODES_TIEABLE_P): Delete. |
| * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (arc_modes_tieable_p): New function. |
| * config/arm/arm.h (MODES_TIEABLE_P): Delete. |
| * config/arm/arm-protos.h (arm_modes_tieable_p): Delete. |
| * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (arm_modes_tieable_p): Make static. |
| * config/avr/avr.h (MODES_TIEABLE_P): Delete. |
| * config/bfin/bfin.h (MODES_TIEABLE_P): Delete. |
| * config/bfin/bfin.c (bfin_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/c6x/c6x.h (MODES_TIEABLE_P): Delete. |
| * config/c6x/c6x.c (c6x_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/cr16/cr16.h (MODES_TIEABLE_P): Delete. |
| * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (cr16_modes_tieable_p): New function. |
| * config/cris/cris.h (MODES_TIEABLE_P): Delete. |
| * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete. |
| * config/fr30/fr30.h (MODES_TIEABLE_P): Delete. |
| (TRULY_NOOP_TRUNCATION): Update comment. |
| * config/frv/frv.h (MODES_TIEABLE_P): Delete. |
| (TRULY_NOOP_TRUNCATION): Update comment. |
| * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (frv_modes_tieable_p): New function. |
| * config/ft32/ft32.h (MODES_TIEABLE_P): Delete. |
| * config/h8300/h8300.h (MODES_TIEABLE_P): Delete. |
| * config/h8300/h8300.c (h8300_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/i386/i386.h (MODES_TIEABLE_P): Delete. |
| * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete. |
| * config/i386/i386.c (ix86_modes_tieable_p): Make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/ia64/ia64.h (MODES_TIEABLE_P): Delete. |
| * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (ia64_modes_tieable_p): New function. |
| * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete. |
| * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (iq2000_modes_tieable_p): New function. |
| * config/lm32/lm32.h (MODES_TIEABLE_P): Delete. |
| * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (lm32_modes_tieable_p): New function. |
| * config/m32c/m32c.h (MODES_TIEABLE_P): Delete. |
| * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete. |
| * config/m32c/m32c.c (m32c_modes_tieable_p): Make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/m32r/m32r.h (MODES_TIEABLE_P): Delete. |
| * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (m32r_modes_tieable_p): New function. |
| * config/m68k/m68k.h (MODES_TIEABLE_P): Delete. |
| * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (m68k_modes_tieable_p): New function. |
| * config/mcore/mcore.h (MODES_TIEABLE_P): Delete. |
| * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (mcore_modes_tieable_p): New function. |
| * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete. |
| * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New |
| function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/mips/mips.h (MODES_TIEABLE_P): Delete. |
| * config/mips/mips-protos.h (mips_modes_tieable_p): Delete. |
| * config/mips/mips.c (mips_modes_tieable_p): Make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/mmix/mmix.h (MODES_TIEABLE_P): Delete. |
| * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete. |
| * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete. |
| * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to... |
| (mn10300_modes_tieable_p): ...this and make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/moxie/moxie.h (MODES_TIEABLE_P): Delete. |
| * config/msp430/msp430.h (MODES_TIEABLE_P): Delete. |
| * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete. |
| * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (msp430_modes_tieable_p): Make static. |
| * config/nds32/nds32.h (MODES_TIEABLE_P): Delete. |
| * config/nds32/nds32.c (nds32_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/nios2/nios2.h (MODES_TIEABLE_P): Delete. |
| * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete. |
| * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/pa/pa.h (MODES_TIEABLE_P): Delete. |
| * config/pa/pa-protos.h (pa_modes_tieable_p): Delete. |
| * config/pa/pa.c (pa_modes_tieable_p): Make static. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete. |
| * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (pdp11_modes_tieable_p): New function. |
| * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete. |
| * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (rs6000_modes_tieable_p): New function. |
| (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. |
| * config/powerpcspe/powerpcspe.md: Update comment. |
| * config/riscv/riscv.h (MODES_TIEABLE_P): Delete. |
| * config/riscv/riscv.c (riscv_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/rl78/rl78.h (MODES_TIEABLE_P): Delete. |
| * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (rl78_modes_tieable_p): New function. |
| * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete. |
| * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (rs6000_modes_tieable_p): New function. |
| (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. |
| * config/rs6000/rs6000.md: Update comment. |
| * config/rx/rx.h (MODES_TIEABLE_P): Delete. |
| * config/rx/rx.c (rx_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/s390/s390.h (MODES_TIEABLE_P): Delete. |
| * config/s390/s390.c (s390_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/sh/sh.h (MODES_TIEABLE_P): Delete. |
| * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (sh_modes_tieable_p): New function. |
| * config/sparc/sparc.h (MODES_TIEABLE_P): Delete. |
| * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete. |
| * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (sparc_modes_tieable_p): Make static. |
| * config/spu/spu.h (MODES_TIEABLE_P): Delete. |
| * config/spu/spu.c (spu_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete. |
| * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete. |
| * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete. |
| * config/v850/v850.h (MODES_TIEABLE_P): Delete. |
| * config/v850/v850.c (v850_modes_tieable_p): New function. |
| (TARGET_MODES_TIEABLE_P): Redefine. |
| * config/vax/vax.h (MODES_TIEABLE_P): Delete. |
| * config/visium/visium.h (MODES_TIEABLE_P): Delete. |
| * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (visium_modes_tieable_p): New function. |
| * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete. |
| * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine. |
| (xtensa_modes_tieable_p): New function. |
| * system.h (MODES_TIEABLE_P): Poison. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (hard_regno_mode_ok): New hook. |
| * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with... |
| (TARGET_HARD_REGNO_MODE_OK): ...this. |
| * doc/tm.texi.in: Regenerate. |
| * hooks.h (hook_bool_uint_mode_true): Declare. |
| * hooks.c (hook_bool_uint_mode_true): New function. |
| * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * genpreds.c (write_insn_preds_c): Add an include of target.h. |
| * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok |
| instead of HARD_REGNO_MODE_OK. |
| * caller-save.c: Include target.h. |
| (reg_save_code): Use targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * combine.c (can_combine_p): Likewise. |
| (combinable_i3pat): Likewise. |
| (can_change_dest_mode): Likewise. |
| * expr.c (init_expr_target): Likewise. |
| (convert_move): Likewise. |
| (convert_modes): Likewise. |
| * ira.c (setup_prohibited_class_mode_regs): Likewise. |
| (setup_prohibited_mode_move_regs): Likewise. |
| * ira.h (target_ira): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * lra-constraints.c (process_alt_operands): Likewise. |
| (split_reg): Likewise. |
| * recog.c (peep2_find_free_register): Likewise. |
| * ree.c (combine_reaching_defs): Likewise. |
| * regcprop.c (maybe_mode_change): Likewise. |
| * reginfo.c (init_reg_sets_1): Likewise. |
| (choose_hard_reg_mode): Likewise. |
| (simplifiable_subregs): Likewise. |
| * regrename.c (check_new_reg_p): Likewise. |
| * reload.c (find_valid_class): Likewise. |
| (find_valid_class_1): Likewise. |
| (reload_inner_reg_of_subreg): Likewise. |
| (push_reload): Likewise. |
| (combine_reloads): Likewise. |
| (find_dummy_reload): Likewise. |
| (find_reloads): Likewise. |
| * reload1.c (find_reg): Likewise. |
| (set_reload_reg): Likewise. |
| (allocate_reload_reg): Likewise. |
| (choose_reload_regs): Likewise. |
| (reload_adjust_reg_for_temp): Likewise. |
| * rtlanal.c (subreg_size_offset_from_lsb): Likewise. |
| (simplify_subreg_regno): Likewise. |
| * sel-sched.c (init_regs_for_mode): Likewise. |
| * varasm.c (make_decl_rtl): Likewise. |
| * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete. |
| (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete. |
| * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete. |
| * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/arc/arc.h (arc_hard_regno_mode_ok): Delete. |
| (arc_mode_class): Delete. |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (arc_hard_regno_mode_ok): Rename old array to... |
| (arc_hard_regno_mode_ok_modes): ...this. |
| (arc_conditional_register_usage): Update accordingly. |
| (arc_mode_class): Make static. |
| (arc_hard_regno_mode_ok): New function. |
| * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete. |
| * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete. |
| * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (arm_hard_regno_mode_ok): Make static. |
| * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete. |
| * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete. |
| * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and |
| return a bool. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete. |
| * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete. |
| * config/bfin/bfin.c (hard_regno_mode_ok): Rename to... |
| (bfin_hard_regno_mode_ok): ...this. Make static and return a bool. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/bfin/predicates.md (valid_reg_operand): Use |
| targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK. |
| * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete. |
| * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete. |
| * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete. |
| * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (cr16_hard_regno_mode_ok): Make static and return a bool. |
| * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete. |
| * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (cris_hard_regno_mode_ok): New function. |
| * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete. |
| (epiphany_mode_class): Delete. |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete. |
| * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (hard_regno_mode_ok): Rename to... |
| (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool. |
| * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete. |
| * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete. |
| * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete. |
| * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (frv_hard_regno_mode_ok): Make static and return a bool. |
| * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of |
| HARD_REGNO_MODE_OK. |
| * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete. |
| * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete. |
| * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete. |
| * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static |
| and return a bool. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete. |
| * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete. |
| * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and |
| return a bool. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete. |
| * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (ia64_hard_regno_mode_ok): New function. |
| * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete. |
| * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (iq2000_hard_regno_mode_ok): New function. |
| * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete. |
| * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (lm32_hard_regno_mode_ok): New function. |
| * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete. |
| * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete. |
| * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok |
| instead of HARD_REGNO_MODE_OK. |
| (m32c_hard_regno_ok): Rename to... |
| (m32c_hard_regno_mode_ok): ...this. Make static and return a bool. |
| (m32c_cannot_change_mode_class): Update accordingly. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete. |
| (m32r_mode_class): Delete. |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (m32r_hard_regno_mode_ok): Rename to... |
| (m32r_hard_regno_modes): ...this. |
| (m32r_mode_class): Make static. |
| (m32r_hard_regno_mode_ok): New function. |
| * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete. |
| * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete. |
| * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (m68k_hard_regno_mode_ok): Make static. |
| * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete. |
| * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (mcore_hard_regno_mode_ok): New function. |
| * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok) |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok): |
| Rename to... |
| (microblaze_hard_regno_mode_ok_p): ...this and make static. |
| (microblaze_hard_regno_mode_ok): New function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete. |
| (mips_hard_regno_mode_ok): Delete. |
| * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to... |
| (mips_hard_regno_mode_ok_p): ...this and make static. |
| (mips_hard_regno_mode_ok_p): Rename to... |
| (mips_hard_regno_mode_ok_uncached): ...this. |
| (mips_hard_regno_mode_ok): New function. |
| (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead |
| of HARD_REGNO_MODE_OK. |
| (mips_option_override): Update after above name changes. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete. |
| * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete. |
| * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete. |
| * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete. |
| * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete. |
| * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete. |
| * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (msp430_hard_regno_mode_ok): Make static and return a bool. |
| * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete. |
| * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete. |
| * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static |
| and return a bool. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete. |
| * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete. |
| * config/pa/pa.h (MODES_TIEABLE_P): Update commentary. |
| * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to... |
| (PA_HARD_REGNO_MODE_OK): ...this |
| * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to... |
| (PA_HARD_REGNO_MODE_OK): ...this. |
| * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (pa_hard_regno_mode_ok): New function. |
| * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete. |
| * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (pdp11_hard_regno_mode_ok): New function. |
| * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete. |
| * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p): |
| Delete. |
| * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p): |
| Make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (rs6000_hard_regno_mode_ok): Rename to... |
| (rs6000_hard_regno_mode_ok_uncached): ...this. |
| (rs6000_init_hard_regno_mode_ok): Update accordingly. |
| (rs6000_hard_regno_mode_ok): New function. |
| * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete. |
| * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete. |
| * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to... |
| (riscv_hard_regno_mode_ok): ...this and make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete. |
| * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete. |
| * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (rl78_hard_regno_mode_ok): Make static and return bool. |
| * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete. |
| * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (rs6000_hard_regno_mode_ok): Rename to... |
| (rs6000_hard_regno_mode_ok_uncached): ...this. |
| (rs6000_init_hard_regno_mode_ok): Update accordingly. |
| (rs6000_hard_regno_mode_ok): New function. |
| * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete. |
| * config/rx/rx.c (rx_hard_regno_mode_ok): New function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete. |
| * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete. |
| * config/s390/s390.c (s390_hard_regno_mode_ok): Make static. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete. |
| * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete. |
| * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (sh_hard_regno_mode_ok): Make static. |
| * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok |
| instead of HARD_REGNO_MODE_OK. |
| * config/sparc/sparc.h (hard_regno_mode_classes): Delete. |
| (sparc_mode_class): Delete. |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (hard_regno_mode_classes): Make static. |
| (sparc_mode_class): Likewise. |
| (sparc_hard_regno_mode_ok): New function. |
| * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete. |
| * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete. |
| * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New |
| function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete. |
| * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete. |
| * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete. |
| * config/v850/v850.c (v850_hard_regno_mode_ok): New function. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete. |
| * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete. |
| * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (visium_hard_regno_mode_ok): New function. |
| * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok |
| instead of HARD_REGNO_MODE_OK. |
| * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete. |
| (HARD_REGNO_MODE_OK): Delete. |
| * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to... |
| (xtensa_hard_regno_mode_ok_p): ...this and make static. |
| (xtensa_option_override): Update accordingly. |
| (TARGET_HARD_REGNO_MODE_OK): Redefine. |
| (xtensa_hard_regno_mode_ok): New function. |
| * system.h (HARD_REGNO_MODE_OK): Poison. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (hard_regno_call_part_clobbered): New hook. |
| * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with... |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook. |
| * doc/tm.texi: Regenerate. |
| * hooks.h (hook_bool_uint_mode_false): Declare. |
| * hooks.c (hook_bool_uint_mode_false): New function. |
| * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * cselib.c (cselib_process_insn): Use |
| targetm.hard_regno_call_part_clobbered instead of |
| HARD_REGNO_CALL_PART_CLOBBERED. |
| * ira-conflicts.c (ira_build_conflicts): Likewise. |
| * ira-costs.c (ira_tune_allocno_costs): Likewise. |
| * lra-constraints.c (need_for_call_save_p): Likewise. |
| * lra-lives.c: Include target.h. |
| (check_pseudos_live_through_calls): Use |
| targetm.hard_regno_call_part_clobbered instead of |
| HARD_REGNO_CALL_PART_CLOBBERED. |
| * regcprop.c: Include target.h. |
| (copyprop_hardreg_forward_1): Use |
| targetm.hard_regno_call_part_clobbered instead of |
| HARD_REGNO_CALL_PART_CLOBBERED. |
| * reginfo.c (choose_hard_reg_mode): Likewise. |
| * regrename.c (check_new_reg_p): Likewise. |
| * reload.c (find_equiv_reg): Likewise. |
| * reload1.c (emit_reload_insns): Likewise. |
| * sched-deps.c (deps_analyze_insn): Likewise. |
| * sel-sched.c (init_regs_for_mode): Likewise. |
| (mark_unavailable_hard_regs): Likewise. |
| * targhooks.c (default_dwarf_frame_reg_mode): Likewise. |
| * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): |
| New function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): |
| Delete. |
| * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static |
| and return a bool. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New |
| function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New |
| function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED): |
| Delete. |
| * config/powerpcspe/powerpcspe.c |
| (rs6000_hard_regno_call_part_clobbered): New function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): |
| New function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New |
| function. |
| (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. |
| * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. |
| * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (subreg_memory_offset): Declare. |
| * emit-rtl.c (subreg_memory_offset): New function. |
| * expmed.c (store_bit_field_1): Use it. |
| * expr.c (undefined_operand_subword_p): Likewise. |
| * simplify-rtx.c (simplify_subreg): Likewise. |
| |
| 2017-09-04 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/57448 |
| PR target/67458 |
| PR target/81316 |
| * optabs.c (expand_atomic_load): Place compiler memory barriers if |
| using atomic_load pattern. |
| (expand_atomic_store): Likewise. |
| |
| 2017-09-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81981 |
| * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR |
| and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE |
| handling. Use replace_call_with_value with NULL instead of |
| gsi_replace, unlink_stmt_vdef and release_defs. |
| |
| * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces |
| instead of tab. |
| |
| * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto. |
| |
| 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR bootstrap/82045 |
| * rtl.h (emit_library_call_value_1): Declare. |
| (emit_library_call): Replace declaration with a series of overloads. |
| Remove the parameter count argument. |
| (emit_library_call_value): Likewise. |
| * calls.c (emit_library_call_value_1): Make global. Replace varargs |
| with an "rtx_mode_t *". |
| (emit_library_call_value): Delete. |
| (emit_library_call): Likewise. |
| * asan.c (asan_emit_stack_protection): Update calls accordingly. |
| (asan_emit_allocas_unpoison): Likewise. |
| * builtins.c (expand_builtin_powi): Likewise. |
| (expand_asan_emit_allocas_unpoison): Likewise. |
| * cfgexpand.c (expand_main_function): Likewise. |
| * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise. |
| * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. |
| * config/alpha/alpha.c (alpha_trampoline_init): Likewise. |
| * config/arm/arm.c (arm_trampoline_init): Likewise. |
| (arm_call_tls_get_addr): Likewise. |
| (arm_expand_divmod_libfunc): Likewise. |
| * config/bfin/bfin.md (umulsi3_highpart): Likewise. |
| (smulsi3_highpart): Likewise. |
| * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. |
| (c6x_expand_compare): Likewise. |
| (c6x_expand_movmem): Likewise. |
| * config/frv/frv.c (frv_trampoline_init): Likewise. |
| * config/i386/i386.c (ix86_trampoline_init): Likewise. |
| (ix86_expand_divmod_libfunc): Likewise. |
| * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. |
| (ia64_expand_compare): Likewise. |
| (ia64_profile_hook): Likewise. |
| * config/ia64/ia64.md (save_stack_nonlocal): Likewise. |
| (nonlocal_goto): Likewise. |
| (restore_stack_nonlocal): Likewise. |
| * config/m32r/m32r.c (block_move_call): Likewise. |
| (m32r_trampoline_init): Likewise. |
| * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. |
| * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise. |
| (m68k_call_m68k_read_tp): Likewise. |
| * config/microblaze/microblaze.c (microblaze_call_tls_get_addr) |
| (microblaze_expand_divide): Likewise. |
| * config/mips/mips.h (mips_args): Likewise. |
| * config/mips/sdemtk.h (mips_sync_icache): Likewise. |
| (MIPS_ICACHE_SYNC): Likewise. |
| * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise. |
| (nios2_trampoline_init): Likewise. |
| * config/pa/pa.c (hppa_tls_call): Likewise. |
| (pa_trampoline_init): Likewise. |
| * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address) |
| (expand_strn_compare): Likewise. |
| (rs6000_generate_compare): Likewise. |
| (rs6000_expand_float128_convert): Likewise. |
| (output_profile_hook): Likewise. |
| (rs6000_trampoline_init): Likewise. |
| * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise. |
| * config/riscv/riscv.h (PROFILE_HOOK): Likewise. |
| * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise. |
| * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. |
| (rs6000_generate_compare): Likewise. |
| (rs6000_expand_float128_convert): Likewise. |
| (output_profile_hook): Likewise. |
| (rs6000_trampoline_init): Likewise. |
| * config/rs6000/rs6000.md (neg<mode>2): Likewise. |
| * config/sh/sh.c (sh_trampoline_init): Likewise. |
| * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise. |
| (sparc_emit_float_lib_cmp): Likewise. |
| (sparc32_initialize_trampoline): Likewise. |
| (sparc64_initialize_trampoline): Likewise. |
| (sparc_profile_hook): Likewise. |
| * config/spu/spu.c (ea_load_store): Likewise. |
| * config/spu/spu.md (floatunssidf2): Likewise. |
| * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. |
| * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise. |
| * config/visium/visium.c (expand_block_move_4): Likewise. |
| (expand_block_move_2): Likewise. |
| (expand_block_move_1): Likewise. |
| (expand_block_set_4): Likewise. |
| (expand_block_set_2): Likewise. |
| (expand_block_set_1): Likewise. |
| (visium_trampoline_init): Likewise. |
| (visium_profile_hook): Likewise. |
| * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise. |
| (xtensa_setup_frame_addresses): Likewise. |
| (xtensa_trampoline_init): Likewise. |
| * except.c (sjlj_emit_function_enter): Likewise. |
| (sjlj_emit_function_exit): Likewise. |
| * explow.c (allocate_dynamic_stack_space): Likewise. |
| (probe_stack_range): Likewise. |
| * expr.c (convert_mode_scalar): Likewise. |
| * optabs.c (expand_binop): Likewise. |
| (expand_twoval_binop_libfunc): Likewise. |
| (expand_unop): Likewise. |
| (prepare_cmp_insn): Likewise. |
| (prepare_float_lib_cmp): Likewise. |
| (expand_float): Likewise. |
| (expand_fix): Likewise. |
| (expand_fixed_convert): Likewise. |
| (maybe_emit_sync_lock_test_and_set): Likewise. |
| (expand_atomic_compare_and_swap): Likewise. |
| (expand_mem_thread_fence): Likewise. |
| (expand_atomic_fetch_op): Likewise. |
| |
| 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/generic.texi (OpenACC): Adjust URL. |
| * doc/invoke.texi (C Dialect Options): Ditto. |
| |
| 2017-09-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand |
| predicate for operand 1. Add (m,<S>) constraint. |
| (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1. |
| Prevent memory operand 1 with register operand 2. |
| |
| 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/82024 |
| * combine.c (try_combine): If the combination result is a PARALLEL, |
| and we only need to retain the SET in there that would be placed |
| at I2, check that we can place that at I3 instead, before doing so. |
| |
| 2017-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81766 |
| * config/i386/i386.c (ix86_init_large_pic_reg): Return label |
| instead of void. |
| (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, |
| if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note |
| and label. |
| |
| 2017-09-01 Joerg Sonnenberger <joerg@bec.de> |
| Jeff Law <law@redhat.com> |
| |
| * varasm.c (bss_initializer_p): Do not put constants into .bss |
| (categorize_decl_for_section): Handle bss_initializer_p returning |
| false when DECL_INITIAL is NULL. |
| |
| 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/82012 |
| * config/s390/s390.c (s390_can_inline_p): New function. |
| |
| 2017-09-01 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/82052 |
| * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): |
| Always initialize the returned slot after a hash table miss |
| when INSERT is true. |
| |
| 2017-09-01 Alexander Monakov <amonakov@ispras.ru> |
| |
| * config/s390/s390.md (mem_signal_fence): Remove. |
| * doc/md.texi (mem_signal_fence): Remove. |
| * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence. |
| Update comments. |
| * target-insns.def (mem_signal_fence): Remove. |
| |
| 2017-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81902 |
| * doc/invoke.texi: Document -fsanitize=pointer-overflow. |
| |
| PR sanitizer/81923 |
| * asan.c (create_odr_indicator): Strip name encoding from assembler |
| name before appending it after __odr_asan_. |
| |
| 2017-09-01 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/82059 |
| * gimple-ssa-isolate-paths.c (isolate_path): Add profile and |
| frequency only when an edge is redirected. |
| |
| 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define. |
| * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define. |
| (arc_conditional_register_usage): Remove ARC600 lp_count |
| exception. |
| (arc_file_start): Emit Tag_ARC_CPU_variation. |
| (arc_can_use_doloop_p): New conditions to use ZOLs. |
| (hwloop_fail): New function. |
| (hwloop_optimize): Likewise. |
| (hwloop_pattern_reg): Likewise. |
| (arc_doloop_hooks): New struct, to be used with reorg_loops. |
| (arc_reorg_loops): New function, calls reorg_loops. |
| (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling. |
| (arc600_corereg_hazard): Remove ZOL checking, case handled by |
| hwloop_optimize. |
| (arc_loop_hazard): Remove function, functionality moved into |
| hwloop_optimize. |
| (arc_hazard): Remove arc_loop_hazard call. |
| (arc_adjust_insn_length): Remove ZOL handling, functionality moved |
| into hwloop_optimize. |
| (arc_label_align): Remove ZOL handling. |
| * config/arc/arc.h (LOOP_ALIGN): Changed to 0. |
| * config/arc/arc.md (doloop_begin): Remove pattern. |
| (doloop_begin_i): Likewise. |
| (doloop_end_i): Likewise. |
| (doloop_fallback): Likewise. |
| (doloop_fallback_m): Likewise. |
| (doloop_end): Reimplement expand. |
| (arc_lp): New pattern for LP instruction. |
| (loop_end): New pattern. |
| (loop_fail): Likewise. |
| (decrement_and_branch_until_zero): Likewise. |
| * config/arc/arc.opt (mlpc-width): New option. |
| * doc/invoke.texi (mlpc-width): Document option. |
| |
| 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call. |
| (arc_ccfsm_advance): Fix checking for delay slots. |
| (arc_reorg): Add rtl dump after each call to arc_ifcvt. |
| |
| 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (movqi_insn): Add stores to save constant long |
| immediates. |
| (movhi_insn): Update store instruction constraint which are saving |
| 6-bit short immediates. |
| (movsi_insn): Consider also short scaled load operations. |
| (zero_extendhisi2_i): Use Usd constraint instead of T. |
| (extendhisi2_i): Add q constraint. |
| (arc_clzsi2): Add type and length attributes. |
| (arc_ctzsi2): Likewise. |
| * config/arc/constraints.md (Usc): Update constraint, the |
| assembler can parse two relocations for a single instruction. |
| |
| 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function. |
| (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define. |
| |
| 2017-08-31 Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now |
| match as powerpc-wrs-vxworks*. |
| |
| 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix |
| register constraint for by-element operand. |
| (aarch64_mls_elt_merge<mode>): Likewise. |
| |
| 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_can_follow_jump): Check for short |
| branches. |
| |
| 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config.gcc: Use g.opt for arc. |
| * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted, |
| functionality moved to ... |
| (legitimate_scaled_address_p): New function, ...here. |
| (LEGITIMATE_SMALL_DATA_OFFSET_P): New define. |
| (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define. |
| (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET |
| condition. |
| (arc_override_options): Handle G option. |
| (arc_output_pic_addr_const): Correct function definition. |
| (arc_legitimate_address_p): Use legitimate_scaled_address_p. |
| (arc_decl_anon_ns_mem_p): Delete. |
| (arc_in_small_data_p): Overhaul this function to take into |
| consideration the value given via G option. |
| (arc_rewrite_small_data_1): Renamed and corrected old |
| arc_rewrite_small_data function. |
| (arc_rewrite_small_data): New function. |
| (small_data_pattern): Don't use pic_offset_table_rtx. |
| * config/arc/arc.h (CC1_SPEC): Recognize G option. |
| * config/arc/simdext.md (movmisalignv2hi): Use |
| prepare_move_operands function. |
| (mov*): Likewise. |
| (movmisalign*): Likewise. |
| * doc/invoke.texi (ARC options): Document -G option. |
| |
| 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (compact_sda_memory_operand): Update |
| prototype. |
| * config/arc/arc.c (arc_print_operand): Output scalled address for |
| sdata whenever is possible. |
| (arc_in_small_data_p): Allow sdata for 64bit datum when double |
| load/stores are available. |
| (compact_sda_memory_operand): Check for the alignment required by |
| code density instructions. |
| * config/arc/arc.md (movsi_insn): Use newly introduced Us0 |
| constraint. |
| * config/arc/constraints.md (Usd): Update constraint. |
| (Us0): New constraint. |
| (Usc): Update constraint. |
| |
| 2017-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/82054 |
| * dwarf2out.c (dwarf2out_early_global_decl): Process each |
| function only once. |
| |
| 2017-08-31 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): |
| Resize type_signature. |
| |
| 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow |
| subregs whose inner modes can be stored in GPRs. |
| (aarch64_classify_index): Likewise. |
| |
| 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/iterators.md (V_cmp_result): Rename to... |
| (V_INT_EQUIV): ...this. |
| (v_cmp_result): Rename to... |
| (v_int_equiv): ...this. |
| * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly. |
| * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise. |
| (copysign<mode>3): Likewise. |
| (aarch64_simd_bsl<mode>_internal): Likewise. |
| (aarch64_simd_bsl<mode>): Likewise. |
| (vec_cmp<mode><mode>): Likewise. |
| (vcond<mode><mode>): Likewise. |
| (vcond<v_cmp_mixed><mode>): Likewise. |
| (vcondu<mode><v_cmp_mixed>): Likewise. |
| (aarch64_cm<optab><mode>): Likewise. |
| (aarch64_cmtst<mode>): Likewise. |
| (aarch64_fac<optab><mode>): Likewise. |
| (vec_perm_const<mode>): Likewise. |
| (vcond_mask_<mode><v_cmp_result>): Rename to... |
| (vcond_mask_<mode><v_int_equiv>): ...this. |
| (vec_cmp<mode><v_cmp_result>): Rename to... |
| (vec_cmp<mode><v_int_equiv>): ...this. |
| |
| 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte |
| vector modes. |
| * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete. |
| * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG) |
| (UNSPEC_LD4_DREG): New unspecs. |
| * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le) |
| (aarch64_ld2<mode>_dreg_be): Replace with... |
| (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG |
| unspec. |
| (aarch64_ld3<mode>_dreg_le) |
| (aarch64_ld3<mode>_dreg_be): Replace with... |
| (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG |
| unspec. |
| (aarch64_ld4<mode>_dreg_le) |
| (aarch64_ld4<mode>_dreg_be): Replace with... |
| (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG |
| unspec. |
| |
| 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/81987 |
| * gimple-ssa-strength-reduction.c (insert_initializers): Don't |
| insert an initializer in a location not dominated by the stride |
| definition. |
| |
| 2017-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-eh.c (lower_try_finally_switch): Set the location of the finally |
| on the entire header of the finally block in the fallthru case. |
| |
| 2017-08-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>. |
| |
| 2017-08-30 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from |
| rs6000_emit_move_from_cr and call renamed function. |
| (rs6000_emit_prologue): Call renamed functions. |
| * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from |
| movesi_from_cr, remove volatile CRs. |
| |
| 2017-08-30 Jon Beniston <jon@beniston.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead |
| of VECTOR_MODE_P check. |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single |
| element vector types. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * df.h (df_read_modify_subreg_p): Remove in favor of... |
| * rtl.h (read_modify_subreg_p): ...this new function. Take a |
| const_rtx instead of an rtx. |
| * cprop.c (local_cprop_find_used_regs): Update accordingly. |
| * df-problems.c (df_word_lr_mark_ref): Likewise. |
| * ira-lives.c (mark_pseudo_reg_live): Likewise. |
| (mark_pseudo_reg_dead): Likewise. |
| (mark_ref_dead): Likewise. |
| * reginfo.c (init_subregs_of_mode): Likewise. |
| * sched-deps.c (sched_analyze_1): Likewise. |
| * df-scan.c (df_def_record_1): Likewise. |
| (df_uses_record): Likewise. |
| (df_read_modify_subreg_p): Remove in favor of... |
| * rtlanal.c (read_modify_subreg_p): ...this new function. Take a |
| const_rtx instead of an rtx. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (partial_subreg_p): New function. |
| * caller-save.c (save_call_clobbered_regs): Use it. |
| * calls.c (expand_call): Likewise. |
| * combine.c (combinable_i3pat): Likewise. |
| (simplify_set): Likewise. |
| (make_extraction): Likewise. |
| (make_compound_operation_int): Likewise. |
| (gen_lowpart_or_truncate): Likewise. |
| (force_to_mode): Likewise. |
| (make_field_assignment): Likewise. |
| (reg_truncated_to_mode): Likewise. |
| (record_truncated_value): Likewise. |
| (move_deaths): Likewise. |
| * cse.c (record_jump_cond): Likewise. |
| (cse_insn): Likewise. |
| * cselib.c (cselib_lookup_1): Likewise. |
| * expmed.c (extract_bit_field_using_extv): Likewise. |
| * function.c (assign_parm_setup_reg): Likewise. |
| * ifcvt.c (noce_convert_multiple_sets): Likewise. |
| * ira-build.c (create_insn_allocnos): Likewise. |
| * lra-coalesce.c (merge_pseudos): Likewise. |
| * lra-constraints.c (match_reload): Likewise. |
| (simplify_operand_subreg): Likewise. |
| (curr_insn_transform): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * lra.c (new_insn_reg): Likewise. |
| (lra_substitute_pseudo): Likewise. |
| * regcprop.c (mode_change_ok): Likewise. |
| (maybe_mode_change): Likewise. |
| (copyprop_hardreg_forward_1): Likewise. |
| * reload.c (push_reload): Likewise. |
| (find_reloads): Likewise. |
| (find_reloads_subreg_address): Likewise. |
| * reload1.c (alter_reg): Likewise. |
| (eliminate_regs_1): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2017-08-30 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert |
| back to if statements, including unpack. |
| |
| 2017-08-30 Martin Liska <mliska@suse.cz> |
| |
| PR inline-asm/82001 |
| * ipa-icf-gimple.c (func_checker::compare_tree_list_operand): |
| Rename to ... |
| (func_checker::compare_asm_inputs_outputs): ... this function. |
| (func_checker::compare_gimple_asm): Use the function to compare |
| also ASM constrains. |
| * ipa-icf-gimple.h: Rename the function. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (complex_mode): New type. |
| * gdbhooks.py (build_pretty_printer): Handle it. |
| * machmode.h (complex_mode): New class. |
| (complex_mode::includes_p): New function. |
| (is_complex_int_mode): Likewise. |
| (is_complex_float_mode): Likewise. |
| * genmodes.c (get_mode_class): Handle complex mode classes. |
| * function.c (expand_function_end): Use is_complex_int_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (scalar_mode_pod): New typedef. |
| * gdbhooks.py (build_pretty_printer): Handle it. |
| * machmode.h (gt_ggc_mx, gt_pch_nx): New functions. |
| * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod. |
| * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode. |
| * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use |
| as_a <scalar_mode>. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (mode_for_vector): Take a scalar_mode instead |
| of a machine_mode. |
| * stor-layout.c (mode_for_vector): Likewise. |
| * explow.c (promote_mode): Use as_a <scalar_mode>. |
| * sdbout.c (sdbout_parms): Use is_a <scalar_mode>. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (preferred_simd_mode): Take a scalar_mode |
| instead of a machine_mode. |
| * targhooks.h (default_preferred_simd_mode): Likewise. |
| * targhooks.c (default_preferred_simd_mode): Likewise. |
| * config/arc/arc.c (arc_preferred_simd_mode): Likewise. |
| * config/arm/arm.c (arm_preferred_simd_mode): Likewise. |
| * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise. |
| * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise. |
| * config/i386/i386.c (ix86_preferred_simd_mode): Likewise. |
| * config/mips/mips.c (mips_preferred_simd_mode): Likewise. |
| * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise. |
| * config/s390/s390.c (s390_preferred_simd_mode): Likewise. |
| * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise. |
| * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise. |
| (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly. |
| * doc/tm.texi: Regenerate. |
| * optabs-query.c (can_vec_mask_load_store_p): Return false for |
| non-scalar modes. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (scalar_mode_supported_p): Take a scalar_mode |
| instead of a machine_mode. |
| * targhooks.h (default_scalar_mode_supported_p): Likewise. |
| * targhooks.c (default_scalar_mode_supported_p): Likewise. |
| * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise. |
| * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. |
| * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise. |
| * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise. |
| * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise. |
| * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise. |
| * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise. |
| * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise. |
| * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise. |
| * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise. |
| * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise. |
| * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise. |
| * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. |
| * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. |
| * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): |
| Likewise. |
| * doc/tm.texi: Regenerate. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (opt_scalar_mode): New typedef. |
| * gdbhooks.py (build_pretty_printers): Handle it. |
| * machmode.h (mode_iterator::get_2xwider): Add overload for |
| opt_mode<T>. |
| * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating |
| over scalar modes. |
| * expr.c (convert_mode_scalar): Likewise. |
| * omp-low.c (omp_clause_aligned_alignment): Likewise. |
| * optabs.c (expand_float): Likewise. |
| (expand_fix): Likewise. |
| * tree-vect-stmts.c (vectorizable_conversion): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs.c (expand_float): Explicitly check for scalars before |
| using a branching expansion. |
| (expand_fix): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (convert_mode): Split scalar handling out into... |
| (convert_mode_scalar): ...this new function. Treat the modes |
| as scalar_modes. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode |
| and scalar_mode. |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * fixed-value.h (fixed_from_double_int): Take a scalar_mode |
| rather than a machine_mode. |
| (fixed_from_string): Likewise. |
| (fixed_convert): Likewise. |
| (fixed_convert_from_int): Likewise. |
| (fixed_convert_from_real): Likewise. |
| (real_convert_from_fixed): Likewise. |
| * fixed-value.c (fixed_from_double_int): Likewise. |
| (fixed_from_string): Likewise. |
| (fixed_convert): Likewise. |
| (fixed_convert_from_int): Likewise. |
| (fixed_convert_from_real): Likewise. |
| (real_convert_from_fixed): Likewise. |
| * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead |
| of separate mode class checks. Do not allow vector modes here. |
| (immed_wide_int_const): Use as_a <scalar_mode>. |
| * explow.c (trunc_int_for_mode): Likewise. |
| * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise. |
| (wi::shwi): Likewise. |
| (wi::min_value): Likewise. |
| (wi::max_value): Likewise. |
| * dwarf2out.c (loc_descriptor): Likewise. |
| * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument |
| for CONST_WIDE_INT. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (SCALAR_TYPE_MODE): New macro. |
| * expr.c (expand_expr_addr_expr_1): Use it. |
| (expand_expr_real_2): Likewise. |
| * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise. |
| (fold_convert_const_fixed_from_int): Likewise. |
| (fold_convert_const_fixed_from_real): Likewise. |
| (native_encode_fixed): Likewise |
| (native_encode_complex): Likewise |
| (native_encode_vector): Likewise. |
| (native_interpret_fixed): Likewise. |
| (native_interpret_real): Likewise. |
| (native_interpret_complex): Likewise. |
| (native_interpret_vector): Likewise. |
| * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise. |
| (simd_clone_adjust_argument_types): Likewise. |
| (simd_clone_init_simd_arrays): Likewise. |
| (simd_clone_adjust): Likewise. |
| * stor-layout.c (layout_type): Likewise. |
| * tree.c (build_minus_one_cst): Likewise. |
| * tree-cfg.c (verify_gimple_assign_ternary): Likewise. |
| * tree-inline.c (estimate_move_cost): Likewise. |
| * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise. |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. |
| (vectorizable_reduction): Likewise. |
| * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise. |
| (vect_recog_mixed_size_cond_pattern): Likewise. |
| (check_bool_pattern): Likewise. |
| (adjust_bool_pattern): Likewise. |
| (search_type_for_mask_1): Likewise. |
| * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. |
| * tree-vect-stmts.c (vectorizable_conversion): Likewise. |
| (vectorizable_load): Likewise. |
| (vectorizable_store): Likewise. |
| * ubsan.c (ubsan_encode_value): Likewise. |
| * varasm.c (output_constant): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (scalar_mode): New class. |
| * machmode.h (scalar_mode): Likewise. |
| (scalar_mode::includes_p): New function. |
| (mode_to_inner): Return a scalar_mode rather than a machine_mode. |
| * gdbhooks.py (build_pretty_printers): Handle scalar_mode. |
| * genmodes.c (get_mode_class): Handle remaining scalar modes. |
| * cfgexpand.c (expand_debug_expr): Use scalar_mode. |
| * expmed.c (store_bit_field_1): Likewise. |
| (extract_bit_field_1): Likewise. |
| * expr.c (write_complex_part): Likewise. |
| (read_complex_part): Likewise. |
| (emit_move_complex_push): Likewise. |
| (expand_expr_real_2): Likewise. |
| * function.c (assign_parm_setup_reg): Likewise. |
| (assign_parms_unsplit_complex): Likewise. |
| * optabs.c (expand_binop): Likewise. |
| * rtlanal.c (subreg_get_info): Likewise. |
| * simplify-rtx.c (simplify_immed_subreg): Likewise. |
| * varasm.c (output_constant_pool_2): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.c (extract_high_half): Use scalar_int_mode and remove |
| assertion. |
| (expmed_mult_highpart_optab): Likewise. |
| (expmed_mult_highpart): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode |
| instead of a machine_mode. |
| (builtin_memset_read_str): Likewise. |
| * builtins.c (c_readstr): Likewise. |
| (builtin_memcpy_read_str): Likewise. |
| (builtin_strncpy_read_str): Likewise. |
| (builtin_memset_read_str): Likewise. |
| (builtin_memset_gen_str): Likewise. |
| (expand_builtin_signbit): Use scalar_int_mode for local variables. |
| * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode |
| instead of a machine_mode. |
| * combine.c (simplify_if_then_else): Use scalar_int_mode for local |
| variables. |
| (make_extraction): Likewise. |
| (try_widen_shift_mode): Take and return scalar_int_modes instead |
| of machine_modes. |
| * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return |
| a scalar_int_mode instead of a machine_mode. |
| * config/avr/avr.c (avr_addr_space_address_mode): Likewise. |
| (avr_addr_space_pointer_mode): Likewise. |
| * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise. |
| * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise. |
| (msp430_unwind_word_mode): Likewise. |
| * config/spu/spu.c (spu_unwind_word_mode): Likewise. |
| (spu_addr_space_pointer_mode): Likewise. |
| (spu_addr_space_address_mode): Likewise. |
| (spu_libgcc_cmp_return_mode): Likewise. |
| (spu_libgcc_shift_count_mode): Likewise. |
| * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise. |
| (rl78_addr_space_pointer_mode): Likewise. |
| (fl78_unwind_word_mode): Likewise. |
| (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a |
| machine_mode. |
| * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise. |
| * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise. |
| * config/mips/mips.c (mips_mode_rep_extended): Likewise. |
| (mips_valid_pointer_mode): Likewise. |
| * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise. |
| * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise. |
| (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead |
| of a machine_mode. |
| (ft32_addr_space_address_mode): Likewise. |
| * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a |
| scalar_int_mode instead of a machine_mode. |
| (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead |
| of a machine_mode. |
| (m32c_addr_space_address_mode): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise. |
| (rs6000_eh_return_filter_mode): Likewise. |
| * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise. |
| (rs6000_eh_return_filter_mode): Likewise. |
| * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise. |
| (s390_libgcc_shift_count_mode): Likewise. |
| (s390_unwind_word_mode): Likewise. |
| (s390_valid_pointer_mode): Take a scalar_int_mode rather than a |
| machine_mode. |
| * target.def (mode_rep_extended): Likewise. |
| (valid_pointer_mode): Likewise. |
| (addr_space.valid_pointer_mode): Likewise. |
| (eh_return_filter_mode): Return a scalar_int_mode rather than |
| a machine_mode. |
| (libgcc_cmp_return_mode): Likewise. |
| (libgcc_shift_count_mode): Likewise. |
| (unwind_word_mode): Likewise. |
| (addr_space.pointer_mode): Likewise. |
| (addr_space.address_mode): Likewise. |
| * doc/tm.texi: Regenerate. |
| * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than |
| a machine_mode. |
| (do_jump): Use scalar_int_mode for local variables. |
| * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode |
| rather than a machine_mode. |
| * dwarf2out.c (convert_descriptor_to_mode): Likewise. |
| (scompare_loc_descriptor_wide): Likewise. |
| (scompare_loc_descriptor_narrow): Likewise. |
| * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local |
| variables. |
| * except.c (sjlj_emit_dispatch_table): Likewise. |
| (expand_builtin_eh_copy_values): Likewise. |
| * explow.c (convert_memory_address_addr_space_1): Likewise. |
| Take a scalar_int_mode rather than a machine_mode. |
| (convert_memory_address_addr_space): Take a scalar_int_mode rather |
| than a machine_mode. |
| (memory_address_addr_space): Use scalar_int_mode for local variables. |
| * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode |
| rather than a machine_mode. |
| * expmed.c (mask_rtx): Likewise. |
| (init_expmed_one_conv): Likewise. |
| (expand_mult_highpart_adjust): Likewise. |
| (extract_high_half): Likewise. |
| (expmed_mult_highpart_optab): Likewise. |
| (expmed_mult_highpart): Likewise. |
| (expand_smod_pow2): Likewise. |
| (expand_sdiv_pow2): Likewise. |
| (emit_store_flag_int): Likewise. |
| (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local |
| variables. |
| (extract_low_bits): Likewise. |
| * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than |
| a machine_mode. |
| * expr.c (pieces_addr::adjust): Likewise. |
| (can_store_by_pieces): Likewise. |
| (store_by_pieces): Likewise. |
| (clear_by_pieces_1): Likewise. |
| (expand_expr_addr_expr_1): Likewise. |
| (expand_expr_addr_expr): Use scalar_int_mode for local variables. |
| (expand_expr_real_1): Likewise. |
| (try_casesi): Likewise. |
| * final.c (shorten_branches): Likewise. |
| * fold-const.c (fold_convert_const_int_from_fixed): Change the |
| type of "mode" to machine_mode. |
| * internal-fn.c (expand_arith_overflow_result_store): Take a |
| scalar_int_mode rather than a machine_mode. |
| (expand_mul_overflow): Use scalar_int_mode for local variables. |
| * loop-doloop.c (doloop_modify): Likewise. |
| (doloop_optimize): Likewise. |
| * optabs.c (expand_subword_shift): Take a scalar_int_mode rather |
| than a machine_mode. |
| (expand_doubleword_shift_condmove): Likewise. |
| (expand_doubleword_shift): Likewise. |
| (expand_doubleword_clz): Likewise. |
| (expand_doubleword_popcount): Likewise. |
| (expand_doubleword_parity): Likewise. |
| (expand_absneg_bit): Use scalar_int_mode for local variables. |
| (prepare_float_lib_cmp): Likewise. |
| * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode |
| rather than a machine_mode. |
| (convert_memory_address_addr_space): Likewise. |
| (get_mode_bounds): Likewise. |
| (get_address_mode): Return a scalar_int_mode rather than a |
| machine_mode. |
| * rtlanal.c (get_address_mode): Likewise. |
| * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather |
| than a machine_mode. |
| * targhooks.c (default_mode_rep_extended): Likewise. |
| (default_valid_pointer_mode): Likewise. |
| (default_addr_space_valid_pointer_mode): Likewise. |
| (default_eh_return_filter_mode): Return a scalar_int_mode rather |
| than a machine_mode. |
| (default_libgcc_cmp_return_mode): Likewise. |
| (default_libgcc_shift_count_mode): Likewise. |
| (default_unwind_word_mode): Likewise. |
| (default_addr_space_pointer_mode): Likewise. |
| (default_addr_space_address_mode): Likewise. |
| * targhooks.h (default_eh_return_filter_mode): Likewise. |
| (default_libgcc_cmp_return_mode): Likewise. |
| (default_libgcc_shift_count_mode): Likewise. |
| (default_unwind_word_mode): Likewise. |
| (default_addr_space_pointer_mode): Likewise. |
| (default_addr_space_address_mode): Likewise. |
| (default_mode_rep_extended): Take a scalar_int_mode rather than |
| a machine_mode. |
| (default_valid_pointer_mode): Likewise. |
| (default_addr_space_valid_pointer_mode): Likewise. |
| * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for |
| local variables. |
| * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode |
| rather than a machine_mode. |
| * tree-switch-conversion.c (array_value_type): Use scalar_int_mode |
| for local variables. |
| * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. |
| * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather |
| than a machine_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dojump.c (do_jump_by_parts_greater_rtx): Change the type of |
| the mode argument to scalar_int_mode. |
| (do_jump_by_parts_zero_rtx): Likewise. |
| (do_jump_by_parts_equality_rtx): Likewise. |
| (do_jump_by_parts_greater): Take a mode argument. |
| (do_jump_by_parts_equality): Likewise. |
| (do_jump_1): Update calls accordingly. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * is-a.h (safe_dyn_cast): New function. |
| * rtl.h (rtx_jump_table_data::get_data_mode): New function. |
| (jump_table_for_label): Likewise. |
| * final.c (final_addr_vec_align): Take an rtx_jump_table_data * |
| instead of an rtx_insn *. |
| (shorten_branches): Use dyn_cast instead of LABEL_P and |
| JUMP_TABLE_DATA_P. Use jump_table_for_label and |
| rtx_jump_table_data::get_data_mode. |
| (final_scan_insn): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (try_combine): Use is_a <scalar_int_mode> when |
| trying to combine a full-register integer set with a subreg |
| integer set. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (expand_expr_addr_expr): Add a new_tmode local variable |
| that is always either address_mode or pointer_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (expand_expr_real_2): Use word_mode instead of innermode |
| when the two are known to be equal. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * simplify-rtx.c (simplify_const_unary_operation): Use |
| is_a <scalar_int_mode> instead of checking for a nonzero |
| precision. Forcibly convert op_mode to a scalar_int_mode |
| in that case. More clearly differentiate the operand and |
| result modes and use the former when deciding what the value |
| of a count-bits operation should be. Use is_int_mode instead |
| of checking for a MODE_INT. Remove redundant check for whether |
| this mode has a zero precision. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs.c (widen_leading): Change the type of the mode argument |
| to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator. |
| (widen_bswap): Likewise. |
| (expand_parity): Likewise. |
| (expand_ctz): Change the type of the mode argument to scalar_int_mode. |
| (expand_ffs): Likewise. |
| (epand_unop): Check for scalar integer modes before calling the |
| above routines. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (const_scalar_mask_from_tree): Add a mode argument. |
| Expand commentary. |
| (expand_expr_real_1): Update call accordingly. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.c (store_bit_field_using_insv): Add op0_mode and |
| value_mode arguments. Use scalar_int_mode internally. |
| (store_bit_field_1): Rename the new integer mode from imode |
| to op0_mode and use it instead of GET_MODE (op0). Update calls |
| to store_split_bit_field, store_bit_field_using_insv and |
| store_fixed_bit_field. |
| (store_fixed_bit_field): Add op0_mode and value_mode arguments. |
| Use scalar_int_mode internally. Use a bit count rather than a mode |
| when calculating the largest bit size for get_best_mode. |
| Update calls to store_split_bit_field and store_fixed_bit_field_1. |
| (store_fixed_bit_field_1): Add mode and value_mode arguments. |
| Remove assertion that OP0 has a scalar integer mode. |
| (store_split_bit_field): Add op0_mode and value_mode arguments. |
| Update calls to extract_fixed_bit_field. |
| (extract_bit_field_using_extv): Add an op0_mode argument. |
| Use scalar_int_mode internally. |
| (extract_bit_field_1): Rename the new integer mode from imode to |
| op0_mode and use it instead of GET_MODE (op0). Update calls to |
| extract_split_bit_field, extract_bit_field_using_extv and |
| extract_fixed_bit_field. |
| (extract_fixed_bit_field): Add an op0_mode argument. Update calls |
| to extract_split_bit_field and extract_fixed_bit_field_1. |
| (extract_fixed_bit_field_1): Add a mode argument. Remove assertion |
| that OP0 has a scalar integer mode. Use as_a <scalar_int_mode> |
| on the target mode. |
| (extract_split_bit_field): Add an op0_mode argument. Update call |
| to extract_fixed_bit_field. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator. |
| * explow.c (hard_function_value): Likewise. |
| * expmed.c (extract_fixed_bit_field_1): Likewise. Move the |
| convert_to_mode call outside the loop. |
| * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode |
| for the mode iterator. Require the mode specified by max_pieces |
| to exist. |
| (emit_block_move_via_movmem): Use opt_scalar_int_mode for the |
| mode iterator. |
| (copy_blkmode_to_reg): Likewise. |
| (set_storage_via_setmem): Likewise. |
| * optabs.c (prepare_cmp_insn): Likewise. |
| * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. |
| * stor-layout.c (finish_bitfield_representative): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions. |
| * expr.c (convert_move): Use them. |
| (convert_modes): Likewise. |
| (store_expr_with_bounds): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode |
| parameter for the mode of "x". Remove the "known_x", "known_mode" |
| and "known_ret" arguments. Change the type of the mode argument |
| to scalar_int_mode. |
| (rtl_hooks:reg_num_sign_bit_copies): Likewise. |
| * combine.c (reg_nonzero_bits_for_combine): Update accordingly. |
| (reg_num_sign_bit_copies_for_combine): Likewise. |
| * rtlanal.c (nonzero_bits1): Likewise. |
| (num_sign_bit_copies1): Likewise. |
| * rtlhooks-def.h (reg_nonzero_bits_general): Likewise. |
| (reg_num_sign_bit_copies_general): Likewise. |
| * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise. |
| (reg_nonzero_bits_general): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather |
| than in subroutines. Return 1 for non-integer modes. |
| (cached_num_sign_bit_copies): Change the type of the mode parameter |
| to scalar_int_mode. |
| (num_sign_bit_copies1): Likewise. Remove early exit for other mode |
| classes. Handle CONST_INT_P first and then check whether X also |
| has a scalar integer mode. Check the same thing for inner registers |
| of a SUBREG and for values that are being extended or truncated. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than |
| in subroutines. Return the mode mask for non-integer modes. |
| (cached_nonzero_bits): Change the type of the mode parameter |
| to scalar_int_mode. |
| (nonzero_bits1): Likewise. Remove early exit for other mode |
| classes. Handle CONST_INT_P first and then check whether X |
| also has a scalar integer mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (widest_int_mode_for_size): Make the comment match the code. |
| Return a scalar_int_mode and assert that the size is greater than |
| one byte. |
| (by_pieces_ninsns): Update accordingly and remove VOIDmode handling. |
| (op_by_pieces_d::op_by_pieces_d): Likewise. |
| (op_by_pieces_d::run): Likewise. |
| (can_store_by_pieces): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (extract_left_shift): Add a mode argument and update |
| recursive calls. |
| (make_compound_operation_int): Change the type of the mode parameter |
| to scalar_int_mode and update the call to extract_left_shift. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (simplify_and_const_int): Change the type of the mode |
| parameter to scalar_int_mode. |
| (simplify_and_const_int_1): Likewise. Update recursive call. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (simplify_compare_const): Check that the mode is a |
| scalar_int_mode (rather than VOIDmode) before testing its |
| precision. |
| (simplify_comparison): Move COMPARISON_P handling out of the |
| loop and restrict the latter part of the loop to scalar_int_modes. |
| Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P |
| and when considering SUBREG_REGs. Use is_int_mode instead of |
| checking GET_MODE_CLASS against MODE_INT. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (try_widen_shift_mode): Move check for equal modes to... |
| (simplify_shift_const_1): ...here. Use scalar_int_mode for |
| shift_unit_mode and for modes involved in scalar shifts. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (force_int_to_mode): New function, split out from... |
| (force_to_mode): ...here. Keep xmode up-to-date and use it |
| instead of GET_MODE (x). |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs-query.h (extraction_insn::struct_mode): Change type to |
| opt_scalar_int_mode and update comment. |
| (extraction_insn::field_mode): Change type to scalar_int_mode. |
| (extraction_insn::pos_mode): Likewise. |
| * combine.c (make_extraction): Update accordingly. |
| * optabs-query.c (get_traditional_extraction_insn): Likewise. |
| (get_optab_extraction_insn): Likewise. |
| * recog.c (simplify_while_replacing): Likewise. |
| * expmed.c (narrow_bit_field_mem): Change the type of the mode |
| parameter to opt_scalar_int_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer |
| to a scalar_int_mode instead of a machine_mode. |
| (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode. |
| (get_best_mode): Return a boolean and use a pointer argument to store |
| the selected mode. Replace the limit mode parameter with a bit limit. |
| * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode |
| for the values returned by bit_field_mode_iterator::next_mode. |
| (store_bit_field): Update call to get_best_mode. |
| (store_fixed_bit_field): Likewise. |
| (extract_fixed_bit_field): Likewise. |
| * expr.c (optimize_bitfield_assignment_op): Likewise. |
| * fold-const.c (optimize_bit_field_compare): Likewise. |
| (fold_truth_andor_1): Likewise. |
| * stor-layout.c (bit_field_mode_iterator::next_mode): As above. |
| Update for new type of m_mode. |
| (get_best_mode): As above. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode |
| to scalar_int_mode. Remove check for SCALAR_INT_MODE_P. |
| (store_bit_field): Check is_a <scalar_int_mode> before calling |
| strict_volatile_bitfield_p. |
| (extract_bit_field): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (cstore_mode): Return a scalar_int_mode. |
| * doc/tm.texi: Regenerate. |
| * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode. |
| * targhooks.h (default_cstore_mode): Likewise. |
| * targhooks.c (default_cstore_mode): Likewise, using a forced |
| conversion. |
| * expmed.c (emit_cstore): Expect the target of the cstore to be |
| a scalar_int_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgloop.h (rtx_iv): Change type of extend_mode and mode to |
| scalar_int_mode. |
| (niter_desc): Likewise mode. |
| (iv_analyze): Add a mode parameter. |
| (biv_p): Likewise. |
| (iv_analyze_expr): Pass the mode paraeter before the rtx it describes |
| and change its type to scalar_int_mode. |
| * loop-iv.c: Update commentary at head of file. |
| (iv_constant): Pass the mode paraeter before the rtx it describes |
| and change its type to scalar_int_mode. Remove VOIDmode handling. |
| (iv_subreg): Change the type of the mode parameter to scalar_int_mode. |
| (iv_extend): Likewise. |
| (shorten_into_mode): Likewise. |
| (iv_add): Use scalar_int_mode. |
| (iv_mult): Likewise. |
| (iv_shift): Likewise. |
| (canonicalize_iv_subregs): Likewise. |
| (get_biv_step_1): Pass the outer_mode parameter before the rtx |
| it describes and change its mode to scalar_int_mode. Also change |
| the type of the returned inner_mode to scalar_int_mode. |
| (get_biv_step): Likewise, turning outer_mode from a pointer |
| into a direct parameter. Update call to get_biv_step_1. |
| (iv_analyze_biv): Add an outer_mode parameter. Update calls to |
| iv_constant and get_biv_step. |
| (iv_analyze_expr): Pass the mode parameter before the rtx it describes |
| and change its type to scalar_int_mode. Don't initialise iv->mode |
| to VOIDmode and remove later checks for its still being VOIDmode. |
| Update calls to iv_analyze_op and iv_analyze_expr. Check |
| is_a <scalar_int_mode> when changing the mode under consideration. |
| (iv_analyze_def): Ignore registers that don't have a scalar_int_mode. |
| Update call to iv_analyze_expr. |
| (iv_analyze_op): Add a mode parameter. Reject subregs whose |
| inner register is not also a scalar_int_mode. Update call to |
| iv_analyze_biv. |
| (iv_analyze): Add a mode parameter. Update call to iv_analyze_op. |
| (biv_p): Add a mode parameter. Update call to iv_analyze_biv. |
| (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of |
| separate mode class checks. Update calls to iv_analyze. Remove |
| fix-up of VOIDmodes after iv_analyze_biv. |
| * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that |
| don't have a scalar_int_mode. Update call to biv_p. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgexpand.c (convert_debug_memory_address): Use |
| as_a <scalar_int_mode>. |
| * combine.c (expand_compound_operation): Likewise. |
| (make_extraction): Likewise. |
| (change_zero_ext): Likewise. |
| (simplify_comparison): Likewise. |
| * cse.c (cse_insn): Likewise. |
| * dwarf2out.c (minmax_loc_descriptor): Likewise. |
| (mem_loc_descriptor): Likewise. |
| (loc_descriptor): Likewise. |
| * expmed.c (init_expmed_one_mode): Likewise. |
| (synth_mult): Likewise. |
| (emit_store_flag_1): Likewise. |
| (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead |
| of a comparison with size. |
| * expr.c (expand_assignment): Use as_a <scalar_int_mode>. |
| (reduce_to_bit_field_precision): Likewise. |
| * function.c (expand_function_end): Likewise. |
| * internal-fn.c (expand_arith_overflow_result_store): Likewise. |
| * loop-doloop.c (doloop_modify): Likewise. |
| * optabs.c (expand_binop): Likewise. |
| (expand_unop): Likewise. |
| (expand_copysign_absneg): Likewise. |
| (prepare_cmp_insn): Likewise. |
| (maybe_legitimize_operand): Likewise. |
| * recog.c (const_scalar_int_operand): Likewise. |
| * rtlanal.c (get_address_mode): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| (simplify_cond_clz_ctz): Likewise. |
| * tree-nested.c (get_nl_goto_field): Likewise. |
| * tree.c (build_vector_type_for_mode): Likewise. |
| * var-tracking.c (use_narrower_mode): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (SCALAR_INT_TYPE_MODE): New macro. |
| * builtins.c (expand_builtin_signbit): Use it. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * dojump.c (do_jump): Likewise. |
| (do_compare_and_jump): Likewise. |
| * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise. |
| * expmed.c (make_tree): Likewise. |
| * expr.c (expand_expr_real_2): Likewise. |
| (expand_expr_real_1): Likewise. |
| (try_casesi): Likewise. |
| * fold-const-call.c (fold_const_call_ss): Likewise. |
| * fold-const.c (unextend): Likewise. |
| (extract_muldiv_1): Likewise. |
| (fold_single_bit_test): Likewise. |
| (native_encode_int): Likewise. |
| (native_encode_string): Likewise. |
| (native_interpret_int): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_memset): Likewise. |
| * internal-fn.c (expand_addsub_overflow): Likewise. |
| (expand_neg_overflow): Likewise. |
| (expand_mul_overflow): Likewise. |
| (expand_arith_overflow): Likewise. |
| * match.pd: Likewise. |
| * stor-layout.c (layout_type): Likewise. |
| * tree-cfg.c (verify_gimple_assign_ternary): Likewise. |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise. |
| * tree-ssanames.c (get_range_info): Likewise. |
| * tree-switch-conversion.c (array_value_type) Likewise. |
| * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise. |
| (vect_recog_divmod_pattern): Likewise. |
| (vect_recog_mixed_size_cond_pattern): Likewise. |
| * tree-vrp.c (extract_range_basic): Likewise. |
| (simplify_float_conversion_using_ranges): Likewise. |
| * tree.c (int_fits_type_p): Likewise. |
| * ubsan.c (instrument_bool_enum_load): Likewise. |
| * varasm.c (mergeable_string_section): Likewise. |
| (narrowing_initializer_constant_valid_p): Likewise. |
| (output_constant): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (NARROWEST_INT_MODE): New macro. |
| * expr.c (alignment_for_piecewise_move): Use it instead of |
| GET_CLASS_NARROWEST_MODE (MODE_INT). |
| (push_block): Likewise. |
| * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): |
| Likewise. |
| * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * postreload.c (move2add_valid_value_p): Change the type of the |
| mode parameter to scalar_int_mode. |
| (move2add_use_add2_insn): Add a mode parameter and use it instead |
| of GET_MODE (reg). |
| (move2add_use_add3_insn): Likewise. |
| (reload_cse_move2add): Update accordingly. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * expr.c (expand_expr_real_2): Use scalar_int_mode for the |
| double-word mode. |
| * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>. |
| * optabs.c (expand_unop): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode. |
| (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check. |
| (popcount_loc_descriptor): Likewise. |
| (bswap_loc_descriptor): Likewise. |
| (rotate_loc_descriptor): Likewise. |
| (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before |
| calling the functions above. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode> |
| checks. |
| (try_combine): Likewise. |
| (simplify_if_then_else): Likewise. |
| * cse.c (cse_insn): Likewise. |
| * dwarf2out.c (mem_loc_descriptor): Likewise. |
| * emit-rtl.c (gen_lowpart_common): Likewise. |
| * simplify-rtx.c (simplify_truncation): Likewise. |
| (simplify_binary_operation_1): Likewise. |
| (simplify_const_relational_operation): Likewise. |
| (simplify_ternary_operation): Likewise. |
| * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cse.c (cse_insn): Add is_a <scalar_int_mode> checks. |
| * reload.c (push_reload): Likewise. |
| (find_reloads): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (find_split_point): Add is_a <scalar_int_mode> checks. |
| (make_compound_operation_int): Likewise. |
| (change_zero_ext): Likewise. |
| * expr.c (convert_move): Likewise. |
| (convert_modes): Likewise. |
| * fwprop.c (forward_propagate_subreg): Likewise. |
| * loop-iv.c (get_biv_step_1): Likewise. |
| * optabs.c (widen_operand): Likewise. |
| * postreload.c (move2add_valid_value_p): Likewise. |
| * recog.c (simplify_while_replacing): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| (simplify_binary_operation_1): Likewise. Remove redundant |
| mode equality check. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (combine_simplify_rtx): Add checks for |
| is_a <scalar_int_mode>. |
| (simplify_if_then_else): Likewise. |
| (make_field_assignment): Likewise. |
| (simplify_comparison): Likewise. |
| * ifcvt.c (noce_try_bitop): Likewise. |
| * loop-invariant.c (canonicalize_address_mult): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Use |
| is_a <scalar_int_mode> instead of != BLKmode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode> |
| instead of != VOIDmode. |
| * combine.c (if_then_else_cond): Likewise. |
| (change_zero_ext): Likewise. |
| * dwarf2out.c (mem_loc_descriptor): Likewise. |
| (loc_descriptor): Likewise. |
| * rtlanal.c (canonicalize_condition): Likewise. |
| * simplify-rtx.c (simplify_relational_operation_1): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Use |
| is_a <scalar_int_mode> instead of !VECTOR_MODE_P. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * wide-int.h (int_traits<unsigned char>) New class. |
| (int_traits<unsigned short>) Likewise. |
| * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>. |
| Use GET_MODE_UNIT_PRECISION and remove redundant test for |
| SCALAR_INT_MODE_P. |
| * combine.c (set_nonzero_bits_and_sign_copies): Use |
| is_a <scalar_int_mode>. |
| (find_split_point): Likewise. |
| (combine_simplify_rtx): Likewise. |
| (simplify_logical): Likewise. |
| (expand_compound_operation): Likewise. |
| (expand_field_assignment): Likewise. |
| (make_compound_operation): Likewise. |
| (extended_count): Likewise. |
| (change_zero_ext): Likewise. |
| (simplify_comparison): Likewise. |
| * dwarf2out.c (scompare_loc_descriptor): Likewise. |
| (ucompare_loc_descriptor): Likewise. |
| (minmax_loc_descriptor): Likewise. |
| (mem_loc_descriptor): Likewise. |
| (loc_descriptor): Likewise. |
| * expmed.c (init_expmed_one_mode): Likewise. |
| * lra-constraints.c (lra_constraint_offset): Likewise. |
| * optabs.c (prepare_libcall_arg): Likewise. |
| * postreload.c (move2add_note_store): Likewise. |
| * reload.c (operands_match_p): Likewise. |
| * rtl.h (load_extend_op): Likewise. |
| * rtlhooks.c (gen_lowpart_general): Likewise. |
| * simplify-rtx.c (simplify_truncation): Likewise. |
| (simplify_unary_operation_1): Likewise. |
| (simplify_binary_operation_1): Likewise. |
| (simplify_const_binary_operation): Likewise. |
| (simplify_const_relational_operation): Likewise. |
| (simplify_subreg): Likewise. |
| * stor-layout.c (bitwise_mode_for_mode): Likewise. |
| * var-tracking.c (adjust_mems): Likewise. |
| (prepare_call_arguments): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (is_int_mode): New fuction. |
| * combine.c (find_split_point): Use it. |
| (combine_simplify_rtx): Likewise. |
| (simplify_if_then_else): Likewise. |
| (simplify_set): Likewise. |
| (simplify_shift_const_1): Likewise. |
| (simplify_comparison): Likewise. |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise. |
| * cse.c (notreg_cost): Likewise. |
| (cse_insn): Likewise. |
| * cselib.c (cselib_lookup_1): Likewise. |
| * dojump.c (do_jump_1): Likewise. |
| (do_compare_rtx_and_jump): Likewise. |
| * dse.c (get_call_args): Likewise. |
| * dwarf2out.c (rtl_for_decl_init): Likewise. |
| (native_encode_initializer): Likewise. |
| * expmed.c (emit_store_flag_1): Likewise. |
| (emit_store_flag): Likewise. |
| * expr.c (convert_modes): Likewise. |
| (store_field): Likewise. |
| (expand_expr_real_1): Likewise. |
| * fold-const.c (fold_read_from_constant_string): Likewise. |
| * gimple-ssa-sprintf.c (get_format_string): Likewise. |
| * optabs-libfuncs.c (gen_int_libfunc): Likewise. |
| * optabs.c (expand_binop): Likewise. |
| (expand_unop): Likewise. |
| (expand_abs_nojump): Likewise. |
| (expand_one_cmpl_abs_nojump): Likewise. |
| * simplify-rtx.c (mode_signbit_p): Likewise. |
| (val_signbit_p): Likewise. |
| (val_signbit_known_set_p): Likewise. |
| (val_signbit_known_clear_p): Likewise. |
| (simplify_relational_operation_1): Likewise. |
| * tree.c (vector_type_mode): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (smallest_mode_for_size): Fix formatting. |
| (smallest_int_mode_for_size): New function. |
| * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size |
| instead of smallest_mode_for_size. |
| * combine.c (make_extraction): Likewise. |
| * config/arc/arc.c (arc_expand_movmem): Likewise. |
| * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise. |
| * config/i386/i386.c (ix86_get_mask_mode): Likewise. |
| * config/s390/s390.c (s390_expand_insv): Likewise. |
| * config/sparc/sparc.c (assign_int_registers): Likewise. |
| * config/spu/spu.c (spu_function_value): Likewise. |
| (spu_function_arg): Likewise. |
| * coverage.c (get_gcov_type): Likewise. |
| (get_gcov_unsigned_t): Likewise. |
| * dse.c (find_shift_sequence): Likewise. |
| * expmed.c (store_bit_field_1): Likewise. |
| * expr.c (convert_move): Likewise. |
| (store_field): Likewise. |
| * internal-fn.c (expand_arith_overflow): Likewise. |
| * optabs-query.c (get_best_extraction_insn): Likewise. |
| * optabs.c (expand_twoval_binop_libfunc): Likewise. |
| * stor-layout.c (layout_type): Likewise. |
| (initialize_sizetypes): Likewise. |
| * targhooks.c (default_get_mask_mode): Likewise. |
| * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (opt_mode::else_blk): New function. |
| (int_mode_for_mode): Declare. |
| * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode. |
| * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode |
| return type. |
| * cfgexpand.c (expand_debug_expr): Likewise. |
| * combine.c (gen_lowpart_or_truncate): Likewise. |
| (gen_lowpart_for_combine): Likewise. |
| * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise. |
| * config/avr/avr.c (avr_to_int_mode): Likewise. |
| (avr_out_plus_1): Likewise. |
| (avr_out_plus): Likewise. |
| (avr_out_round): Likewise. |
| * config/i386/i386.c (ix86_split_to_parts): Likewise. |
| * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. |
| (s390_expand_vcond): Likewise. |
| * config/spu/spu.c (spu_split_immediate): Likewise. |
| (spu_expand_mov): Likewise. |
| * dse.c (get_stored_val): Likewise. |
| * expmed.c (store_bit_field_1): Likewise. |
| (convert_extracted_bit_field): Use int_mode_for_mode instead of |
| int_mode_for_size. |
| (extract_bit_field_1): Adjust for new int_mode_for_mode return type. |
| (extract_low_bits): Likewise. |
| * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode |
| handling rather than repeating the check. |
| (emit_group_store): Likewise. |
| (emit_move_via_integer): Adjust for new int_mode_for_mode return type. |
| * optabs.c (expand_absneg_bit): Likewise. |
| (expand_copysign_absneg): Likewise. |
| (expand_copysign_bit): Likewise. |
| * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise. |
| * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. |
| * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use |
| int_mode_for_mode instead of mode_for_size. |
| * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (int_mode_for_size): New function. |
| * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size |
| instead of mode_for_size. |
| * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode |
| explicit. |
| * combine.c (expand_field_assignment): Use int_mode_for_size |
| instead of mode_for_size. |
| (make_extraction): Likewise. |
| (simplify_shift_const_1): Likewise. |
| (simplify_comparison): Likewise. |
| * dojump.c (do_jump): Likewise. |
| * dwarf2out.c (mem_loc_descriptor): Likewise. |
| * emit-rtl.c (init_derived_machine_modes): Likewise. |
| * expmed.c (flip_storage_order): Likewise. |
| (convert_extracted_bit_field): Likewise. |
| * expr.c (copy_blkmode_from_reg): Likewise. |
| * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise. |
| * internal-fn.c (expand_mul_overflow): Likewise. |
| * lower-subreg.c (simple_move): Likewise. |
| * optabs-libfuncs.c (init_optabs): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| * tree.c (vector_type_mode): Likewise. |
| * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. |
| * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise. |
| * tree-vect-generic.c (expand_vector_parallel): Likewise. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| (vectorizable_store): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (pod_mode): New type. |
| (scalar_int_mode_pod): New typedef. |
| * machmode.h (pod_mode): New class. |
| (int_n_data_t::m): Change type to scalar_int_mode_pod. |
| * genmodes.c (emit_mode_int_n): Update accordingly. |
| * lower-subreg.h (target_lower_subreg): Change type to |
| scalar_int_mode_pod. |
| * gdbhooks.py (build_pretty_printer): Handle pod_mode and |
| scalar_int_mode_pod. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from |
| machine_mode to scalar_int_mode. |
| * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise. |
| (rs6000_option_override_internal): Remove cast to int. |
| * config/rs6000/rs6000.h (rs6000_pmode): Change type from |
| machine_mode to scalar_int_mode. |
| * config/rs6000/rs6000.c (rs6000_pmode): Likewise. |
| (rs6000_option_override_internal): Remove cast to int. |
| * config/s390/s390.h (Pmode): Remove cast to machine_mode. |
| * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast |
| to machine_mode. |
| * config/s390/s390.c (s390_expand_builtin): Likewise. |
| * coretypes.h (scalar_int_mode): New type. |
| (opt_scalar_int_mode): New typedef. |
| * machmode.h (scalar_int_mode): New class. |
| (scalar_int_mode::includes_p): New function. |
| (byte_mode): Change type to scalar_int_mode. |
| (word_mode): Likewise. |
| (ptr_mode): Likewise. |
| * emit-rtl.c (byte_mode): Likewise. |
| (word_mode): Likewise. |
| (ptr_mode): Likewise. |
| (init_derived_machine_modes): Update accordingly. |
| * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT |
| and MODE_PARTIAL_INT. |
| * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and |
| opt_scalar_int_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (libgcc_floating_mode_supported_p): Take a |
| scalar_float_mode. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_libgcc_floating_mode_supported_p): Take a |
| scalar_float_mode. |
| * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. |
| * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p): |
| Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (default_floatn_mode): Return an opt_scalar_float_mode. |
| * doc/tm.texi: Regenerate. |
| * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode. |
| * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise. |
| * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise. |
| * targhooks.h (default_floatn_mode): Likewise. |
| * targhooks.c (default_floatn_mode): Likewise. |
| * tree.c (build_common_tree_nodes): Update accordingly. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (mode_iterator::start): Provide overload for opt_modes. |
| (mode_iterator::iterate_p): Likewise. |
| (mode_iterator::get_wider): Likewise. |
| * expr.c (init_expr_target): Use opt_scalar_float_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (opt_scalar_float_mode): New typedef. |
| * machmode.h (float_mode_for_size): New function. |
| * emit-rtl.c (double_mode): Delete. |
| (init_emit_once): Use float_mode_for_size. |
| * stor-layout.c (layout_type): Likewise. |
| * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * output.h (assemble_real): Take a scalar_float_mode. |
| * config/arm/arm.c (arm_assemble_integer): Update accordingly. |
| * config/arm/arm.md (consttable_4): Likewise. |
| (consttable_8): Likewise. |
| (consttable_16): Likewise. |
| * config/mips/mips.md (consttable_float): Likewise. |
| * config/s390/s390.c (s390_output_pool_entry): Likewise. |
| * varasm.c (assemble_real): Take a scalar_float_mode. |
| (output_constant_pool_2): Update accordingly. |
| (output_constant): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro. |
| * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE. |
| * fold-const.c (fold_convert_const_real_from_fixed): Likewise. |
| (native_encode_real): Likewise. |
| (native_interpret_real): Likewise. |
| * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise. |
| * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a |
| <scalar_float_mode>. Simplify. |
| (gen_extend_conv_libfunc): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (scalar_float_mode): New type. |
| * machmode.h (mode_traits::from_int): Use machine_mode if |
| USE_ENUM_MODES is defined. |
| (is_a): New function. |
| (as_a): Likewise. |
| (dyn_cast): Likewise. |
| (scalar_float_mode): New class. |
| (scalar_float_mode::includes_p): New function. |
| (is_float_mode): Likewise. |
| * gdbhooks.py (MachineModePrinter): New class. |
| (build_pretty_printer): Use it for scalar_float_mode. |
| * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>. |
| (format_helper::format_helper): Turn into a template. |
| * genmodes.c (get_mode_class): New function. |
| (emit_insn_modes_h): Give modes the class returned by get_mode_class, |
| or machine_mode if none. |
| * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use |
| as_a <scalar_float_mode>. |
| * dwarf2out.c (mem_loc_descriptor): Likewise. |
| (insert_float): Likewise. |
| (add_const_value_attribute): Likewise. |
| * simplify-rtx.c (simplify_immed_subreg): Likewise. |
| * optabs.c (expand_absneg_bit): Take a scalar_float_mode. |
| (expand_unop): Update accordingly. |
| (expand_abs_nojump): Likewise. |
| (expand_copysign_absneg): Take a scalar_float_mode. |
| (expand_copysign_bit): Likewise. |
| (expand_copysign): Update accordingly. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * coretypes.h (opt_mode): New class. |
| * machmode.h (opt_mode): Likewise. |
| (opt_mode::else_void): New function. |
| (opt_mode::require): Likewise. |
| (opt_mode::exists): Likewise. |
| (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode. |
| (GET_MODE_2XWIDER_MODE): Likewise. |
| (mode_iterator::get_wider): Update accordingly. |
| (mode_iterator::get_2xwider): Likewise. |
| (mode_iterator::get_known_wider): Likewise, turning into a template. |
| * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE, |
| forcing a wider mode to exist. |
| * config/cr16/cr16.h (LONG_REG_P): Likewise. |
| * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. |
| * config/c6x/c6x.c (c6x_rtx_costs): Update use of |
| GET_MODE_2XWIDER_MODE, forcing a wider mode to exist. |
| * lower-subreg.c (init_lower_subreg): Likewise. |
| * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not |
| on the final iteration. |
| * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether |
| a wider mode exists before asking for a move pattern. |
| (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE, |
| forcing a wider mode to exist. |
| (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE, |
| returning false if no such mode exists. |
| * config/ia64/ia64.c (expand_vselect_vconcat): Likewise. |
| * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise. |
| * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE. |
| Avoid checking for a MODE_INT if we already know the mode is not a |
| SCALAR_INT_MODE_P. |
| (extract_high_half): Update use of GET_MODE_WIDER_MODE, |
| forcing a wider mode to exist. |
| (expmed_mult_highpart_optab): Likewise. |
| (expmed_mult_highpart): Likewise. |
| * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE, |
| using else_void. |
| * lto-streamer-in.c (lto_input_mode_table): Likewise. |
| * optabs-query.c (find_widening_optab_handler_and_mode): Likewise. |
| * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. |
| * internal-fn.c (expand_mul_overflow): Update use of |
| GET_MODE_2XWIDER_MODE. |
| * omp-low.c (omp_clause_aligned_alignment): Likewise. |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of |
| GET_MODE_WIDER_MODE. |
| (convert_plusminus_to_widen): Likewise. |
| * tree-switch-conversion.c (array_value_type): Likewise. |
| * var-tracking.c (emit_note_insn_var_location): Likewise. |
| * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. |
| Return false inside rather than outside the loop if no wider mode |
| exists |
| * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE |
| and GET_MODE_2XWIDER_MODE |
| (can_compare_p): Use else_void. |
| * gdbhooks.py (OptMachineModePrinter): New class. |
| (build_pretty_printer): Use it for opt_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE |
| once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * machmode.h (mode_traits): New structure. |
| (get_narrowest_mode): New function. |
| (mode_iterator::start): Likewise. |
| (mode_iterator::iterate_p): Likewise. |
| (mode_iterator::get_wider): Likewise. |
| (mode_iterator::get_known_wider): Likewise. |
| (mode_iterator::get_2xwider): Likewise. |
| (FOR_EACH_MODE_IN_CLASS): New mode iterator. |
| (FOR_EACH_MODE): Likewise. |
| (FOR_EACH_MODE_FROM): Likewise. |
| (FOR_EACH_MODE_UNTIL): Likewise. |
| (FOR_EACH_WIDER_MODE): Likewise. |
| (FOR_EACH_2XWIDER_MODE): Likewise. |
| * builtins.c (expand_builtin_strlen): Use new mode iterators. |
| * combine.c (simplify_comparison): Likewise |
| * config/i386/i386.c (type_natural_mode): Likewise. |
| * cse.c (cse_insn): Likewise. |
| * dse.c (find_shift_sequence): Likewise. |
| * emit-rtl.c (init_derived_machine_modes): Likewise. |
| (init_emit_once): Likewise. |
| * explow.c (hard_function_value): Likewise. |
| * expmed.c (extract_fixed_bit_field_1): Likewise. |
| (extract_bit_field_1): Likewise. |
| (expand_divmod): Likewise. |
| (emit_store_flag_1): Likewise. |
| * expr.c (init_expr_target): Likewise. |
| (convert_move): Likewise. |
| (alignment_for_piecewise_move): Likewise. |
| (widest_int_mode_for_size): Likewise. |
| (emit_block_move_via_movmem): Likewise. |
| (copy_blkmode_to_reg): Likewise. |
| (set_storage_via_setmem): Likewise. |
| (compress_float_constant): Likewise. |
| * omp-low.c (omp_clause_aligned_alignment): Likewise. |
| * optabs-query.c (get_best_extraction_insn): Likewise. |
| * optabs.c (expand_binop): Likewise. |
| (expand_twoval_unop): Likewise. |
| (expand_twoval_binop): Likewise. |
| (widen_leading): Likewise. |
| (widen_bswap): Likewise. |
| (expand_parity): Likewise. |
| (expand_unop): Likewise. |
| (prepare_cmp_insn): Likewise. |
| (prepare_float_lib_cmp): Likewise. |
| (expand_float): Likewise. |
| (expand_fix): Likewise. |
| (expand_sfix_optab): Likewise. |
| * postreload.c (move2add_use_add2_insn): Likewise. |
| * reg-stack.c (reg_to_stack): Likewise. |
| * reginfo.c (choose_hard_reg_mode): Likewise. |
| * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. |
| * stor-layout.c (mode_for_size): Likewise. |
| (smallest_mode_for_size): Likewise. |
| (mode_for_vector): Likewise. |
| (finish_bitfield_representative): Likewise. |
| * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise. |
| * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. |
| * tree-vect-stmts.c (vectorizable_conversion): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * genconditions.c (write_header): Add a "#define USE_ENUM_MODES". |
| * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if |
| USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise. |
| * machmode.h (mode_size): Move earlier in file. |
| (mode_precision): Likewise. |
| (mode_inner): Likewise. |
| (mode_nunits): Likewise. |
| (mode_unit_size): Likewise. |
| (unit_unit_precision): Likewise. |
| (mode_wider): Likewise. |
| (mode_2xwider): Likewise. |
| (machine_mode): New class. |
| (mode_to_bytes): New function. |
| (mode_to_bits): Likewise. |
| (mode_to_precision): Likewise. |
| (mode_to_inner): Likewise. |
| (mode_to_unit_size): Likewise. |
| (mode_to_unit_precision): Likewise. |
| (mode_to_nunits): Likewise. |
| (GET_MODE_SIZE): Use mode_to_bytes. |
| (GET_MODE_BITSIZE): Use mode_to_bits. |
| (GET_MODE_PRECISION): Use mode_to_precision. |
| (GET_MODE_INNER): Use mode_to_inner. |
| (GET_MODE_UNIT_SIZE): Use mode_to_unit_size. |
| (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision. |
| (GET_MODE_NUNITS): Use mode_to_nunits. |
| * system.h (ALWAYS_INLINE): New macro. |
| * config/powerpcspe/powerpcspe-c.c |
| (altivec_resolve_overloaded_builtin): Use machine_mode instead of |
| int for arg1_mode and arg2_mode. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): |
| Prefix mode names with E_ in case statements. |
| * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise. |
| (aarch64_split_simd_move): Likewise. |
| (aarch64_gen_storewb_pair): Likewise. |
| (aarch64_gen_loadwb_pair): Likewise. |
| (aarch64_gen_store_pair): Likewise. |
| (aarch64_gen_load_pair): Likewise. |
| (aarch64_get_condition_code_1): Likewise. |
| (aarch64_constant_pool_reload_icode): Likewise. |
| (get_rsqrte_type): Likewise. |
| (get_rsqrts_type): Likewise. |
| (get_recpe_type): Likewise. |
| (get_recps_type): Likewise. |
| (aarch64_gimplify_va_arg_expr): Likewise. |
| (aarch64_simd_container_mode): Likewise. |
| (aarch64_emit_load_exclusive): Likewise. |
| (aarch64_emit_store_exclusive): Likewise. |
| (aarch64_expand_compare_and_swap): Likewise. |
| (aarch64_gen_atomic_cas): Likewise. |
| (aarch64_emit_bic): Likewise. |
| (aarch64_emit_atomic_swap): Likewise. |
| (aarch64_emit_atomic_load_op): Likewise. |
| (aarch64_evpc_trn): Likewise. |
| (aarch64_evpc_uzp): Likewise. |
| (aarch64_evpc_zip): Likewise. |
| (aarch64_evpc_ext): Likewise. |
| (aarch64_evpc_rev): Likewise. |
| (aarch64_evpc_dup): Likewise. |
| (aarch64_gen_ccmp_first): Likewise. |
| (aarch64_gen_ccmp_next): Likewise. |
| * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. |
| (alpha_emit_xfloating_libcall): Likewise. |
| (emit_insxl): Likewise. |
| (alpha_arg_type): Likewise. |
| * config/arc/arc.c (arc_vector_mode_supported_p): Likewise. |
| (arc_preferred_simd_mode): Likewise. |
| (arc_secondary_reload): Likewise. |
| (get_arc_condition_code): Likewise. |
| (arc_print_operand): Likewise. |
| (arc_legitimate_constant_p): Likewise. |
| * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/arc/arc.md (casesi_load): Likewise. |
| (casesi_compact_jump): Likewise. |
| * config/arc/predicates.md (proper_comparison_operator): Likewise. |
| (cc_use_register): Likewise. |
| * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. |
| (arm_init_iwmmxt_builtins): Likewise. |
| * config/arm/arm.c (thumb1_size_rtx_costs): Likewise. |
| (neon_expand_vector_init): Likewise. |
| (arm_attr_length_move_neon): Likewise. |
| (maybe_get_arm_condition_code): Likewise. |
| (arm_emit_vector_const): Likewise. |
| (arm_preferred_simd_mode): Likewise. |
| (arm_output_iwmmxt_tinsr): Likewise. |
| (thumb1_output_casesi): Likewise. |
| (thumb2_output_casesi): Likewise. |
| (arm_emit_load_exclusive): Likewise. |
| (arm_emit_store_exclusive): Likewise. |
| (arm_expand_compare_and_swap): Likewise. |
| (arm_evpc_neon_vuzp): Likewise. |
| (arm_evpc_neon_vzip): Likewise. |
| (arm_evpc_neon_vrev): Likewise. |
| (arm_evpc_neon_vtrn): Likewise. |
| (arm_evpc_neon_vext): Likewise. |
| (arm_validize_comparison): Likewise. |
| * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise. |
| * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. |
| * config/avr/avr.c (avr_rtx_costs_1): Likewise. |
| * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise. |
| (c6x_preferred_simd_mode): Likewise. |
| * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise. |
| (epiphany_rtx_costs): Likewise. |
| * config/epiphany/predicates.md (proper_comparison_operator): |
| Likewise. |
| * config/frv/frv.c (condexec_memory_operand): Likewise. |
| (frv_emit_move): Likewise. |
| (output_move_single): Likewise. |
| (output_condmove_single): Likewise. |
| (frv_hard_regno_mode_ok): Likewise. |
| (frv_matching_accg_mode): Likewise. |
| * config/h8300/h8300.c (split_adds_subs): Likewise. |
| (h8300_rtx_costs): Likewise. |
| (h8300_print_operand): Likewise. |
| (compute_mov_length): Likewise. |
| (output_logical_op): Likewise. |
| (compute_logical_op_length): Likewise. |
| (compute_logical_op_cc): Likewise. |
| (h8300_shift_needs_scratch_p): Likewise. |
| (output_a_shift): Likewise. |
| (compute_a_shift_length): Likewise. |
| (compute_a_shift_cc): Likewise. |
| (expand_a_rotate): Likewise. |
| (output_a_rotate): Likewise. |
| * config/i386/i386.c (classify_argument): Likewise. |
| (function_arg_advance_32): Likewise. |
| (function_arg_32): Likewise. |
| (function_arg_64): Likewise. |
| (function_value_64): Likewise. |
| (ix86_gimplify_va_arg): Likewise. |
| (ix86_legitimate_constant_p): Likewise. |
| (put_condition_code): Likewise. |
| (split_double_mode): Likewise. |
| (ix86_avx256_split_vector_move_misalign): Likewise. |
| (ix86_expand_vector_logical_operator): Likewise. |
| (ix86_split_idivmod): Likewise. |
| (ix86_expand_adjust_ufix_to_sfix_si): Likewise. |
| (ix86_build_const_vector): Likewise. |
| (ix86_build_signbit_mask): Likewise. |
| (ix86_match_ccmode): Likewise. |
| (ix86_cc_modes_compatible): Likewise. |
| (ix86_expand_branch): Likewise. |
| (ix86_expand_sse_cmp): Likewise. |
| (ix86_expand_sse_movcc): Likewise. |
| (ix86_expand_int_sse_cmp): Likewise. |
| (ix86_expand_vec_perm_vpermi2): Likewise. |
| (ix86_expand_vec_perm): Likewise. |
| (ix86_expand_sse_unpack): Likewise. |
| (ix86_expand_int_addcc): Likewise. |
| (ix86_split_to_parts): Likewise. |
| (ix86_vectorize_builtin_gather): Likewise. |
| (ix86_vectorize_builtin_scatter): Likewise. |
| (avx_vpermilp_parallel): Likewise. |
| (inline_memory_move_cost): Likewise. |
| (ix86_tieable_integer_mode_p): Likewise. |
| (x86_maybe_negate_const_int): Likewise. |
| (ix86_expand_vector_init_duplicate): Likewise. |
| (ix86_expand_vector_init_one_nonzero): Likewise. |
| (ix86_expand_vector_init_one_var): Likewise. |
| (ix86_expand_vector_init_concat): Likewise. |
| (ix86_expand_vector_init_interleave): Likewise. |
| (ix86_expand_vector_init_general): Likewise. |
| (ix86_expand_vector_set): Likewise. |
| (ix86_expand_vector_extract): Likewise. |
| (emit_reduc_half): Likewise. |
| (ix86_emit_i387_round): Likewise. |
| (ix86_mangle_type): Likewise. |
| (ix86_expand_round_sse4): Likewise. |
| (expand_vec_perm_blend): Likewise. |
| (canonicalize_vector_int_perm): Likewise. |
| (ix86_expand_vec_one_operand_perm_avx512): Likewise. |
| (expand_vec_perm_1): Likewise. |
| (expand_vec_perm_interleave3): Likewise. |
| (expand_vec_perm_even_odd_pack): Likewise. |
| (expand_vec_perm_even_odd_1): Likewise. |
| (expand_vec_perm_broadcast_1): Likewise. |
| (ix86_vectorize_vec_perm_const_ok): Likewise. |
| (ix86_expand_vecop_qihi): Likewise. |
| (ix86_expand_mul_widen_hilo): Likewise. |
| (ix86_expand_sse2_abs): Likewise. |
| (ix86_expand_pextr): Likewise. |
| (ix86_expand_pinsr): Likewise. |
| (ix86_preferred_simd_mode): Likewise. |
| (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise. |
| * config/i386/sse.md (*andnot<mode>3): Likewise. |
| (<mask_codefor><code><mode>3<mask_name>): Likewise. |
| (*<code><mode>3): Likewise. |
| * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise. |
| (ia64_expand_atomic_op): Likewise. |
| (ia64_arg_type): Likewise. |
| (ia64_mode_to_int): Likewise. |
| (ia64_scalar_mode_supported_p): Likewise. |
| (ia64_vector_mode_supported_p): Likewise. |
| (expand_vec_perm_broadcast): Likewise. |
| * config/iq2000/iq2000.c (iq2000_move_1word): Likewise. |
| (iq2000_function_arg_advance): Likewise. |
| (iq2000_function_arg): Likewise. |
| * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise. |
| * config/m68k/m68k.c (output_dbcc_and_branch): Likewise. |
| (m68k_libcall_value): Likewise. |
| (m68k_function_value): Likewise. |
| (sched_attr_op_type): Likewise. |
| * config/mcore/mcore.c (mcore_output_move): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_arg_advance): |
| Likewise. |
| (microblaze_function_arg): Likewise. |
| * config/mips/mips.c (mips16_build_call_stub): Likewise. |
| (mips_print_operand): Likewise. |
| (mips_mode_ok_for_mov_fmt_p): Likewise. |
| (mips_vector_mode_supported_p): Likewise. |
| (mips_preferred_simd_mode): Likewise. |
| (mips_expand_vpc_loongson_even_odd): Likewise. |
| (mips_expand_vec_unpack): Likewise. |
| (mips_expand_vi_broadcast): Likewise. |
| (mips_expand_vector_init): Likewise. |
| (mips_expand_vec_reduc): Likewise. |
| (mips_expand_msa_cmp): Likewise. |
| * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise. |
| * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. |
| (cc_flags_for_mode): Likewise. |
| * config/msp430/msp430.c (msp430_print_operand): Likewise. |
| * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise. |
| (nds32_output_casesi_pc_relative): Likewise. |
| * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise. |
| (nvptx_gen_unpack): Likewise. |
| (nvptx_gen_pack): Likewise. |
| (nvptx_gen_shuffle): Likewise. |
| (nvptx_gen_wcast): Likewise. |
| (nvptx_preferred_simd_mode): Likewise. |
| * config/pa/pa.c (pa_secondary_reload): Likewise. |
| * config/pa/predicates.md (base14_operand): Likewise. |
| * config/powerpcspe/powerpcspe-c.c |
| (altivec_resolve_overloaded_builtin): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks): |
| Likewise. |
| (rs6000_preferred_simd_mode): Likewise. |
| (output_vec_const_move): Likewise. |
| (rs6000_expand_vector_extract): Likewise. |
| (rs6000_split_vec_extract_var): Likewise. |
| (reg_offset_addressing_ok_p): Likewise. |
| (rs6000_legitimate_offset_address_p): Likewise. |
| (rs6000_legitimize_address): Likewise. |
| (rs6000_emit_set_const): Likewise. |
| (rs6000_const_vec): Likewise. |
| (rs6000_emit_move): Likewise. |
| (spe_build_register_parallel): Likewise. |
| (rs6000_darwin64_record_arg_recurse): Likewise. |
| (swap_selector_for_mode): Likewise. |
| (spe_init_builtins): Likewise. |
| (paired_init_builtins): Likewise. |
| (altivec_init_builtins): Likewise. |
| (do_load_for_compare): Likewise. |
| (rs6000_generate_compare): Likewise. |
| (rs6000_expand_float128_convert): Likewise. |
| (emit_load_locked): Likewise. |
| (emit_store_conditional): Likewise. |
| (rs6000_output_function_epilogue): Likewise. |
| (rs6000_handle_altivec_attribute): Likewise. |
| (rs6000_function_value): Likewise. |
| (emit_fusion_gpr_load): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| * config/powerpcspe/predicates.md (easy_fp_constant): Likewise. |
| (fusion_gpr_mem_load): Likewise. |
| (fusion_addis_mem_combo_load): Likewise. |
| (fusion_addis_mem_combo_store): Likewise. |
| * config/rs6000/predicates.md (easy_fp_constant): Likewise. |
| (fusion_gpr_mem_load): Likewise. |
| (fusion_addis_mem_combo_load): Likewise. |
| (fusion_addis_mem_combo_store): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Likewise. |
| * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise. |
| * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. |
| (rs6000_preferred_simd_mode): Likewise. |
| (output_vec_const_move): Likewise. |
| (rs6000_expand_vector_extract): Likewise. |
| (rs6000_split_vec_extract_var): Likewise. |
| (reg_offset_addressing_ok_p): Likewise. |
| (rs6000_legitimate_offset_address_p): Likewise. |
| (rs6000_legitimize_address): Likewise. |
| (rs6000_emit_set_const): Likewise. |
| (rs6000_const_vec): Likewise. |
| (rs6000_emit_move): Likewise. |
| (rs6000_darwin64_record_arg_recurse): Likewise. |
| (swap_selector_for_mode): Likewise. |
| (paired_init_builtins): Likewise. |
| (altivec_init_builtins): Likewise. |
| (rs6000_expand_float128_convert): Likewise. |
| (emit_load_locked): Likewise. |
| (emit_store_conditional): Likewise. |
| (rs6000_output_function_epilogue): Likewise. |
| (rs6000_handle_altivec_attribute): Likewise. |
| (rs6000_function_value): Likewise. |
| (emit_fusion_gpr_load): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| * config/rx/rx.c (rx_gen_move_template): Likewise. |
| (flags_from_mode): Likewise. |
| * config/s390/predicates.md (s390_alc_comparison): Likewise. |
| (s390_slb_comparison): Likewise. |
| * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise. |
| (s390_vector_mode_supported_p): Likewise. |
| (s390_cc_modes_compatible): Likewise. |
| (s390_match_ccmode_set): Likewise. |
| (s390_canonicalize_comparison): Likewise. |
| (s390_emit_compare_and_swap): Likewise. |
| (s390_branch_condition_mask): Likewise. |
| (s390_rtx_costs): Likewise. |
| (s390_secondary_reload): Likewise. |
| (__SECONDARY_RELOAD_CASE): Likewise. |
| (s390_expand_cs): Likewise. |
| (s390_preferred_simd_mode): Likewise. |
| * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise. |
| * config/sh/sh.c (sh_print_operand): Likewise. |
| (dump_table): Likewise. |
| (sh_secondary_reload): Likewise. |
| * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/sh/sh.md (casesi_worker_1): Likewise. |
| (casesi_worker_2): Likewise. |
| * config/sparc/predicates.md (icc_comparison_operator): Likewise. |
| (fcc_comparison_operator): Likewise. |
| * config/sparc/sparc.c (sparc_expand_move): Likewise. |
| (emit_soft_tfmode_cvt): Likewise. |
| (sparc_preferred_simd_mode): Likewise. |
| (output_cbranch): Likewise. |
| (sparc_print_operand): Likewise. |
| (sparc_expand_vec_perm_bmask): Likewise. |
| (vector_init_bshuffle): Likewise. |
| * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. |
| (spu_vector_mode_supported_p): Likewise. |
| (spu_expand_insv): Likewise. |
| (spu_emit_branch_or_set): Likewise. |
| (spu_handle_vector_attribute): Likewise. |
| (spu_builtin_splats): Likewise. |
| (spu_builtin_extract): Likewise. |
| (spu_builtin_promote): Likewise. |
| (spu_expand_sign_extend): Likewise. |
| * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. |
| (tilegx_simd_int): Likewise. |
| * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise. |
| (tilepro_simd_int): Likewise. |
| * config/v850/v850.c (const_double_split): Likewise. |
| (v850_print_operand): Likewise. |
| (ep_memory_offset): Likewise. |
| * config/vax/vax.c (vax_rtx_costs): Likewise. |
| (vax_output_int_move): Likewise. |
| (vax_output_int_add): Likewise. |
| (vax_output_int_subtract): Likewise. |
| * config/visium/predicates.md (visium_branch_operator): Likewise. |
| * config/visium/visium.c (rtx_ok_for_offset_p): Likewise. |
| (visium_print_operand_address): Likewise. |
| * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. |
| * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise. |
| (xtensa_expand_conditional_branch): Likewise. |
| (xtensa_copy_incoming_a7): Likewise. |
| (xtensa_output_literal): Likewise. |
| * dfp.c (decimal_real_maxval): Likewise. |
| * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * genmodes.c (mode_size_inline): Add an E_ prefix to mode names. |
| (mode_nunits_inline): Likewise. |
| (mode_inner_inline): Likewise. |
| (mode_unit_size_inline): Likewise. |
| (mode_unit_precision_inline): Likewise. |
| (emit_insn_modes_h): Likewise. Also emit a #define of the |
| unprefixed name. |
| (emit_mode_wider): Add an E_ prefix to mode names. |
| (emit_mode_complex): Likewise. |
| (emit_mode_inner): Likewise. |
| (emit_mode_adjustments): Likewise. |
| (emit_mode_int_n): Likewise. |
| * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP) |
| (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP) |
| (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP) |
| (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise. |
| (CRC32_BUILTIN, ENTRY): Likewise. |
| * config/aarch64/aarch64.c (aarch64_push_regs): Likewise. |
| (aarch64_pop_regs): Likewise. |
| (aarch64_process_components): Likewise. |
| * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise. |
| * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP) |
| (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP) |
| (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise. |
| * config/arm/arm.c (arm_init_libfuncs): Likewise. |
| * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode): |
| Likewise. |
| * config/i386/i386-builtin.def (pcmpestr): Likewise. |
| (pcmpistr): Likewise. |
| * config/microblaze/microblaze.c (double_memory_operand): Likewise. |
| * config/mmix/mmix.c (mmix_output_condition): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): |
| Likewise. |
| * config/rl78/rl78.c (mduc_regs): Likewise. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. |
| (htm_expand_builtin): Likewise. |
| * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise. |
| * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise. |
| * config/xtensa/xtensa.c (print_operand): Likewise. |
| * expmed.h (NUM_MODE_PARTIAL_INT): Likewise. |
| (NUM_MODE_VECTOR_INT): Likewise. |
| * genoutput.c (null_operand): Likewise. |
| (output_operand_data): Likewise. |
| * genrecog.c (print_parameter_value): Likewise. |
| * lra.c (debug_operand_data): Likewise. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * dwarf2out.c (scompare_loc_descriptor_wide) |
| (scompare_loc_descriptor_narrow): New functions, split out from... |
| (scompare_loc_descriptor): ...here. |
| * expmed.c (emit_store_flag_int): New function, split out from... |
| (emit_store_flag): ...here. |
| |
| 2017-08-30 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames. |
| (dwarf2out_early_finish): Move setting of AT_pubnames from |
| early debug output to early finish. |
| |
| 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> |
| |
| * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker |
| and -mdata-region to the assembler. |
| |
| 2017-08-30 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate |
| attributes. |
| (gen_subprogram_die): Add DW_AT_object_pointer only early. |
| (dwarf2out_early_global_decl): Only generate a DIE for the |
| abstract origin if it doesn't already exist or is a declaration DIE. |
| (resolve_addr): Do not add the linkage name twice when |
| generating a stub DIE for the DW_TAG_GNU_call_site target. |
| |
| 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Use machine_mode rather than int for arg1_mode. |
| |
| 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/82015 |
| * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure |
| that the second argument of the built-in functions to unpack |
| 128-bit scalar types to 64-bit values is 0 or 1. Change to use a |
| switch statement instead a lot of if statements. |
| * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator): |
| Allow 64-bit values to be in Altivec registers as well as |
| traditional floating point registers. |
| (pack<mode>, FMOVE128_VSX iterator): Likewise. |
| |
| 2017-08-29 Alexander Monakov <amonakov@ispras.ru> |
| |
| * ira-costs.c (record_address_regs): Handle both operands of PLUS for |
| MAX_REGS_PER_ADDRESS == 1. |
| |
| 2017-08-29 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.opt (flag_fentry): Do not init to -1. |
| * config/i386/i386.c (ix86_option_override_internal): Simplify |
| setting of opts->x_flag_entry. |
| |
| 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81503 |
| * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure |
| folded constant fits in the target type; reorder tests for clarity. |
| |
| 2017-08-29 Martin Liska <mliska@suse.cz> |
| |
| * passes.def: Include pass_lower_switch. |
| * stmt.c (dump_case_nodes): Remove and move to |
| tree-switch-conversion. |
| (case_values_threshold): Likewise. |
| (expand_switch_as_decision_tree_p): Likewise. |
| (emit_case_decision_tree): Likewise. |
| (expand_case): Likewise. |
| (balance_case_nodes): Likewise. |
| (node_has_low_bound): Likewise. |
| (node_has_high_bound): Likewise. |
| (node_is_bounded): Likewise. |
| (emit_case_nodes): Likewise. |
| (struct simple_case_node): New struct. |
| (add_case_node): Remove. |
| (emit_case_dispatch_table): Use vector instead of case_list. |
| (reset_out_edges_aux): Remove. |
| (compute_cases_per_edge): Likewise. |
| (expand_case): Build list of simple_case_node. |
| (expand_sjlj_dispatch_table): Use it. |
| * tree-switch-conversion.c (struct case_node): Moved from |
| stmt.c and adjusted. |
| (emit_case_nodes): Likewise. |
| (node_has_low_bound): Likewise. |
| (node_has_high_bound): Likewise. |
| (node_is_bounded): Likewise. |
| (case_values_threshold): Likewise. |
| (reset_out_edges_aux): Likewise. |
| (compute_cases_per_edge): Likewise. |
| (add_case_node): Likewise. |
| (dump_case_nodes): Likewise. |
| (balance_case_nodes): Likewise. |
| (expand_switch_as_decision_tree_p): Likewise. |
| (emit_jump): Likewise. |
| (emit_case_decision_tree): Likewise. |
| (try_switch_expansion): Likewise. |
| (do_jump_if_equal): Likewise. |
| (emit_cmp_and_jump_insns): Likewise. |
| (fix_phi_operands_for_edge): New function. |
| (record_phi_operand_mapping): Likewise. |
| (class pass_lower_switch): New pass. |
| (pass_lower_switch::execute): New function. |
| (make_pass_lower_switch): Likewise. |
| (conditional_probability): |
| * timevar.def: Add TV_TREE_SWITCH_LOWERING. |
| * tree-pass.h: Add make_pass_lower_switch. |
| |
| 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com> |
| |
| PR target/80993 |
| * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt |
| handlers as used. |
| |
| 2017-08-29 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (add_dwarf_attr): When checking is enabled verify |
| we do not add a DW_AT_inline attribute twice. |
| (gen_subprogram_die): Remove code setting DW_AT_inline on |
| DECL_ABSTRACT_P nodes. |
| |
| 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * gimplify.c (gimplify_call_expr): Copy the nothrow flag to |
| calls to internal functions. |
| (gimplify_modify_expr): Likewise. |
| * tree-call-cdce.c (use_internal_fn): Likewise. |
| * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. |
| (convert_to_divmod): Set the nothrow flag. |
| * tree-if-conv.c (predicate_mem_writes): Likewise. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. |
| (vect_recog_mask_conversion_pattern): Likewise. |
| |
| 2017-08-29 Martin Liska <mliska@suse.cz> |
| |
| PR other/39851 |
| * gcc.c (driver_handle_option): Add new argument. |
| * opts-common.c (handle_option): Pass |
| target_option_override_hook. |
| * opts-global.c (lang_handle_option): Add new option. |
| (set_default_handlers): Add new argument. |
| (decode_options): Likewise. |
| * opts.c (target_handle_option): Likewise. |
| (common_handle_option): Call target_option_override_hook. |
| * opts.h (struct cl_option_handler_func): Add hook for |
| target option override. |
| (struct cl_option_handlers): Likewise. |
| (set_default_handlers): Add new argument. |
| (decode_options): Likewise. |
| (common_handle_option): Likewise. |
| (target_handle_option): Likewise. |
| * toplev.c (toplev::main): Pass targetm.target_option.override |
| hook. |
| |
| 2017-08-29 Richard Biener <rguenther@suse.de> |
| Dominik Infuehr <dominik.infuehr@theobroma-systems.com> |
| |
| * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine |
| life to the active subtree. |
| |
| 2017-08-28 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (edge_info::record_simple_equiv): Call |
| derive_equivalences. |
| (derive_equivalences_from_bit_ior, record_temporary_equivalences): |
| Code moved into.... |
| (edge_info::derive_equivalences): New private member function |
| |
| * tree-ssa-dom.c (class edge_info): Changed from a struct |
| to a class. Add ctor/dtor, methods and data members. |
| (edge_info::edge_info): Renamed from allocate_edge_info. |
| Initialize additional members. |
| (edge_info::~edge_info): New. |
| (free_dom_edge_info): Delete the edge info. |
| (record_edge_info): Use new class & associated member functions. |
| Tighten forms for testing for edge equivalences. |
| (record_temporary_equivalences): Iterate over the simple |
| equivalences rather than assuming there's only one per edge. |
| (cprop_into_successor_phis): Iterate over the simple |
| equivalences rather than assuming there's only one per edge. |
| (optimize_stmt): Use operand_equal_p rather than pointer |
| equality for mini-DSE code. |
| |
| 2017-08-28 Nathan Sidwell <nathan@acm.org> |
| |
| * gcc.c (execute): Fold SIGPIPE handling into switch |
| statement. Adjust internal error message. |
| |
| 2017-08-28 Richard Biener <rguenther@suse.de> |
| |
| PR debug/81993 |
| * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): |
| Do nothing for removed DIEs. |
| |
| 2017-08-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81977 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through |
| memcpy. |
| |
| 2017-08-28 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR target/80640 |
| * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite. |
| * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when |
| using targetm.gen_mem_thread_fence. |
| |
| 2017-08-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81995 |
| * config/i386/i386.md (*<btsc><mode>): Change operand 2 |
| predicate to register_operand. Reorder operands. |
| (*btr<mode>): Ditto. |
| (*<btsc><mode>_mask): Change operand 3 predicate to register_operand. |
| (*btr<mode>_mask): Ditto. |
| |
| 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h. |
| * config/rs6000/xmmintrin.h: New file. |
| * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h. |
| |
| 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/81504 |
| * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference |
| parameter and_insn and return it. |
| (recombine_lvx_pattern): Insert a copy to ensure availability of |
| the base register of the copied masking operation at the point of |
| the instruction replacement. |
| (recombine_stvx_pattern): Likewise. |
| |
| 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete |
| undocumented switches. |
| (-mpower9-dform-vector): Likewise. |
| (-mpower9-dform): Likewise. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update |
| comments to delete references to -mpower9-dform* switches. |
| * config/rs6000/predicates.md (vsx_quad_dform_memory_operand): |
| Delete reference to -mpower9-dform* switches, test for |
| -mpower9-vector instead. |
| * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise. |
| (OTHER_P9_VECTOR_MASKS): Likewise. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change |
| tests against -mpower9-dform* to -mpower9-vector. Delete code |
| that checked for -mpower9-dform* consistancy with other options. |
| Add test for -mpower9-misc to enable other power9 switches. |
| (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_emit_prologue): Likewise. |
| (rs6000_emit_epilogue): Likewise. |
| (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}. |
| (rs6000_disable_incompatiable_switches): Delete -mpower9-dform. |
| (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar |
| -mpower9-vector. |
| (emit_fusion_p9_store): Likewise. |
| * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete |
| resetting these macros if the assembler does not support ISA 3.0 |
| instructions. |
| (TARGET_P9_DFORM_VECTOR): Likewise. |
| * config/rs6000/rs6000.md (peepholes to optimize altivec memory): |
| Change to use -mpower9-vector instead of -mpower9-dform-scalar. |
| |
| 2017-08-25 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/81747 |
| * cse.c (cse_extended_basic_block): Don't attempt to record |
| equivalences for degenerate conditional branches that branch |
| to their fall-through. |
| |
| 2017-08-24 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/81908 |
| * gimple-fold.c (size_must_be_zero_p): New function. |
| (gimple_fold_builtin_memory_op): Call it. |
| |
| 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config/rs6000/mm_malloc.h: New file. |
| |
| 2017-08-24 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81913 |
| * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter |
| analysis when either IVs in condition can wrap. |
| |
| 2017-08-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40. |
| * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove. |
| |
| 2017-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR target/81921 |
| * targhooks.c (default_target_can_inline_p): Properly |
| use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET |
| is present and always compare. |
| * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not |
| infer -mfpmath=sse from TARGET_SSE_P. |
| (ix86_can_inline_p): Properly use target_option_default_node when |
| no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare. |
| |
| 2017-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR debug/81936 |
| * dwarf2out.c (output_die): Handle flag_generate_offload like |
| flag_generate_lto. |
| (output_comp_unit): Likewise. |
| (gen_array_type_die): Likewise. |
| (dwarf2out_early_finish): Likewise. |
| (note_variable_value_in_expr): Likewise. |
| (dwarf2out_finish): Likewise. Adjust assert. |
| * cgraphunit.c (symbol_table::compile): Move setting of |
| flag_generate_offload earlier ... |
| (symbol_table::finalize_compilation_unit): ... here, before |
| early debug finalization. |
| |
| 2017-08-24 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h |
| and ipa-fnsummary.h. |
| (ix86_can_inline_p): When ix86_fpmath flags do not match |
| check whether the callee uses FP math at all. |
| |
| 2017-08-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/81931 |
| * tree-ssanames.c (get_nonzero_bits): Use element_precision |
| instead of TYPE_PRECISION. |
| |
| 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (make_extraction): Use subreg_offset_from_lsb. |
| |
| 2017-08-23 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset): |
| Remove field. |
| (ix86_frame::stack_realign_allocate): New field. |
| (struct machine_frame_state): Modify comments. |
| (machine_frame_state::sp_realigned_fp_end): New field. |
| * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame |
| layout calculation. |
| (sp_valid_at): Add assertion to assure no attempt to access invalid |
| offset of a realigned stack. |
| (fp_valid_at): Likewise. |
| (choose_baseaddr): Modify comments. |
| (ix86_emit_outlined_ms2sysv_save): Adjust to changes in |
| ix86_expand_prologue. |
| (ix86_expand_prologue): Modify stack realignment and allocation. |
| (ix86_expand_epilogue): Modify comments. |
| * doc/sourcebuild.texi: Add documentation for target selectors avx2, |
| avx2_runtime, avx512f, and avx512f_runtime. |
| |
| 2017-08-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.opt: Remove unneeded Init(0) initializations. |
| (mstackrealign): Do not init to -1. |
| * config/i386/i386.c (ix86_option_override_internal): |
| Check opts_set, not opts when setting default value of |
| opts->x_ix86_force_align_arg_pointer. |
| |
| 2017-08-23 Richard Biener <rguenther@suse.de> |
| |
| * function.c (fndecl_name): Use verbosity 1 (no arguments) for |
| lang_hooks.decl_printable_name. |
| * print-rtl-function.c (print_rtx_function): Likewise. |
| * tree-pretty-print.c (dump_function_header): Likewise. |
| |
| 2017-08-23 Richard Biener <rguenther@suse.de> |
| |
| PR lto/81940 |
| * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with |
| -g0 at compile-time. |
| |
| 2017-08-23 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/19706 |
| * doc/sourcebuild.texi (Other hardware attributes): |
| Document xorsign. |
| |
| 2017-08-23 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/19706 |
| * tree-ssa-math-opts.c (convert_expand_mult_copysign): |
| Fix single-use check. |
| |
| 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available. |
| |
| 2017-08-22 Daniel Santos <daniel.santos@pobox.com> |
| |
| * doc/install.texi: Modify to add more details on running selected |
| tests. |
| |
| 2017-08-22 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.c (ix86_option_override_internal): Error when -mx32 |
| is combined with -mabi=ms. |
| (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute |
| ms_abi. |
| |
| 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/81488 |
| * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited |
| and cached_basis fields. |
| (MAX_SPREAD): New constant. |
| (alloc_cand_and_find_basis): Initialize new fields. |
| (clear_visited): New function. |
| (create_phi_basis_1): Rename from create_phi_basis, set visited |
| and cached_basis fields. |
| (create_phi_basis): New wrapper function. |
| (phi_add_costs_1): Rename from phi_add_costs, add spread |
| parameter, set visited field, short-circuit when limits reached. |
| (phi_add_costs): New wrapper function. |
| (record_phi_increments_1): Rename from record_phi_increments, set |
| visited field. |
| (record_phi_increments): New wrapper function. |
| (phi_incr_cost_1): Rename from phi_incr_cost, set visited field. |
| (phi_incr_cost): New wrapper function. |
| (all_phi_incrs_profitable_1): Rename from |
| all_phi_incrs_profitable, set visited field. |
| (all_phi_incrs_profitable): New wrapper function. |
| |
| 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * rtl.h (paradoxical_subreg_p): Define inline, and add a version |
| that takes the outer and inner modes. |
| * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE |
| comparison as the canonical test for a paradoxical subreg. |
| * combine.c (simplify_set): Use paradoxical_subreg_p. |
| (make_extraction): Likewise. |
| (force_to_mode): Likewise. |
| (rtx_equal_for_field_assignment_p): Likewise. |
| (gen_lowpart_for_combine): Likewise. |
| (simplify_comparison): Likewise. |
| * cse.c (equiv_constant): Likewise. |
| * expmed.c (store_bit_field_1): Likewise. |
| * final.c (alter_subreg): Likewise. |
| * fwprop.c (propagate_rtx): Likewise. |
| (forward_propagate_subreg): Likewise. |
| * ira-conflicts.c (ira_build_conflicts): Likewise. |
| * lower-subreg.c (simplify_gen_subreg_concatn): Likewise. |
| * lra-constraints.c (curr_insn_transform): Likewise. |
| (split_reg): Likewise. |
| * lra-eliminations.c (move_plus_up): Likewise. |
| (lra_eliminate_regs_1): Likewise. |
| * recog.c (general_operand): Likewise. |
| * ree.c (combine_reaching_defs): Likewise. |
| * reload.c (push_reload): Likewise. |
| (find_reloads): Likewise. |
| * reload1.c (elimination_effects): Likewise. |
| (compute_reload_subreg_offset): Likewise. |
| (choose_reload_regs): Likewise. |
| * rtlanal.c (subreg_lsb_1): Likewise. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| (simplify_subreg): Likewise. |
| * var-tracking.c (track_loc_p): Likewise. |
| * emit-rtl.c (byte_lowpart_offset): Likewise. |
| (paradoxical_subreg_p): Delete out-of-line definition. |
| |
| 2017-08-22 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/81741 |
| PR tree-optimization/71947 |
| * tree-ssa-dom.c: Include tree-inline.h. |
| (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME |
| equivalences if one is more expensive to compute than the other. |
| * tree-ssa-scopedtables.h (class const_or_copies): Make |
| record_const_or_copy_raw method private. |
| (class avail_exprs_stack): New method simplify_binary_operation. |
| * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call |
| avail_exprs_stack::simplify_binary_operation as needed. |
| (avail_exprs_stack::simplify_binary_operation): New function. |
| |
| 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt. |
| * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define. |
| (DOT_SYMBOLS): Likewise. |
| (MINIMAL_TOC_SECTION_ASM_OP): Likewise. |
| (RELOCATABLE_NEEDS_FIXUP): Likewise. |
| (RS6000_ABI_NAME): Likewise. |
| (TARGET_CMODEL): Likewise. |
| (TOC_SECTION_ASM_OP): Likewise. |
| (SET_CMODEL): New macro. |
| (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options. |
| |
| 2017-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT] |
| to allow for free-lang-data replacements similar to verify_type_variant. |
| |
| 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * config/aarch64/aarch64.md (casesi): Use DImode rather than |
| VOIDmode for the LABEL_REF. |
| |
| 2017-08-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes. |
| |
| 2017-08-22 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (feliminate-dwarf2-dups): Ignore. |
| * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation. |
| * dwarf2out.c (push_new_compile_unit, pop_compile_unit, |
| same_die_p_wrap, compute_section_prefix, |
| is_symbol_die, assign_symbol_names, break_out_includes): Remove. |
| (comdat_symbol_id, comdat_symbol_number): Likewise. |
| (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type): |
| Likewise. |
| (check_duplicate_cu, record_comdat_symbol_number): Likewise. |
| (output_die): Mark unreachable path unreachable. |
| (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL. |
| (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL. |
| (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups. |
| (dwarf2out_early_finish): Likewise. |
| |
| 2017-08-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend. |
| |
| 2017-08-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81910 |
| * config/avr/avr.c (avr_handle_addr_attribute): Early return if |
| not VAR_P. Filter attribute warnings with OPT_Wattributes. |
| (avr_attribute_table) <io, io_low, address>: Initialize |
| .decl_required with true. |
| |
| 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete |
| undocumented debugging options. |
| (-mvsx-scalar-double): Likewise. |
| (-mallow-df-permute): Likewise. |
| (-mvectorize-builtins): Likewise. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_builtin_vectorized_function): Likewise. |
| (rs6000_builtin_md_vectorized_function): Likewise. |
| (rs6000_opt_vars): Likewise. |
| |
| 2017-08-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/46091 |
| * config/i386/i386.md (*btsq_imm): Rename from *btsq. |
| (*btrq_imm): Rename from *btrq. |
| (*btcq_imm): Rename from *btcq. |
| (btsc): New code attribute. |
| (*<btsc><mode>): New insn pattern. |
| (*btr<mode>): Ditto. |
| (*<btsc><mode>_mask): New insn_and_split pattern. |
| (*btr<mode>_mask): Ditto. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * function.c (pad_below): Simplify padding calculation. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * target.def (function_prologue): Remove frame size argument. |
| (function_epilogue): Likewise. |
| * doc/tm.texi: Regenerate. |
| * final.c (final_start_function): Update call to function_prologue. |
| (final_end_function): Update call to function_epilogue. |
| (default_function_pro_epilogue): Remove frame size argument. |
| * output.h (default_function_pro_epilogue): Likewise. |
| * config/arm/arm.c (arm_output_function_epilogue): Likewise. |
| (arm_output_function_prologue): Likewise. |
| * config/frv/frv.c (frv_function_prologue): Likewise. |
| (frv_function_epilogue): Likewise. |
| * config/i386/i386.c (ix86_output_function_epilogue): Likewise. |
| * config/ia64/ia64.c (ia64_output_function_prologue): Likewise. |
| (ia64_output_function_epilogue): Likewise. |
| * config/m32r/m32r.c (m32r_output_function_prologue): Likewise. |
| (m32r_output_function_epilogue): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_prologue) |
| (microblaze_function_epilogue): Likewise. |
| * config/mips/mips.c (mips_output_function_prologue): Likewise. |
| (mips_output_function_epilogue): Likewise. |
| * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise. |
| (mmix_target_asm_function_epilogue): Likewise. |
| * config/msp430/msp430.c (msp430_start_function): Likewise. |
| * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise. |
| (nds32_asm_function_epilogue): Likewise. |
| * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise. |
| * config/pa/pa.c (pa_output_function_prologue): Likewise. |
| (pa_output_function_epilogue): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue) |
| (rs6000_output_function_epilogue): Likewise. |
| * config/rl78/rl78.c (rl78_start_function): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise. |
| (rs6000_output_function_epilogue): Likewise. |
| * config/rx/rx.c (rx_output_function_prologue): Likewise. |
| * config/sh/sh.c (sh_output_function_epilogue): Likewise. |
| * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise. |
| (sparc_asm_function_epilogue): Likewise. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree.h (type_has_mode_precision_p): New function. |
| * convert.c (convert_to_integer_1): Use it. |
| * expr.c (expand_expr_real_2): Likewise. |
| (expand_expr_real_1): Likewise. |
| * fold-const.c (fold_single_bit_test_into_sign_test): Likewise. |
| * match.pd: Likewise. |
| * tree-ssa-forwprop.c (simplify_rotate): Likewise. |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise. |
| * tree-tailcall.c (process_assignment): Likewise. |
| * tree-vect-loop.c (vectorizable_reduction): Likewise. |
| * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern) |
| (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise. |
| * tree-vect-stmts.c (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| * tree-vrp.c (register_edge_assert_for_2): Likewise. |
| |
| 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * match.pd: Add pow (C, x) simplification. |
| |
| 2017-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81900 |
| * tree-ssa-pre.c (compute_antic_aux): Properly compute changed |
| for blocks with abnormal predecessors. |
| (compute_antic): Do not set visited flag prematurely. |
| |
| 2017-08-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/79883 |
| * config/avr/avr.c (avr_set_current_function): Typo in diagnostic. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * stor-layout.h (vector_type_mode): Move to... |
| * tree.h (vector_type_mode): ...here. |
| * stor-layout.c (vector_type_mode): Move to... |
| * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h. |
| |
| 2017-08-21 Richard Biener <rguenther@suse.de> |
| |
| * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and |
| register_external_die hooks. |
| (debug_false_tree_charstarstar_uhwistar): Declare. |
| (debug_nothing_tree_charstar_uhwi): Likewise. |
| * debug.c (do_nothing_debug_hooks): Adjust. |
| (debug_false_tree_charstarstar_uhwistar): New do nothing. |
| (debug_nothing_tree_charstar_uhwi): Likewise. |
| * dbxout.c (dbx_debug_hooks): Adjust. |
| (xcoff_debug_hooks): Likewise. |
| * sdbout.c (sdb_debug_hooks): Likewise. |
| * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. |
| * dwarf2out.c (macinfo_label_base): New global. |
| (dwarf2out_register_external_die): New function for the |
| register_external_die hook. |
| (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl. |
| (dwarf2_debug_hooks): Use them. |
| (dwarf2_lineno_debug_hooks): Adjust. |
| (struct die_struct): Add with_offset flag. |
| (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION, |
| DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION, |
| DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION, |
| DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION, |
| DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION, |
| DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros |
| defining section names for the early LTO debug variants. |
| (reset_indirect_string): New helper. |
| (add_AT_external_die_ref): Helper for dwarf2out_register_external_die. |
| (print_dw_val): Add support for offsetted symbol references. |
| (get_ultimate_context): Split out from is_cxx. |
| (is_cxx): Use get_ultimate_context. |
| (is_fortran): Add decl overload. |
| (compute_comp_unit_symbol): Split out worker from |
| compute_section_prefix. |
| (compute_section_prefix): Call compute_comp_unit_symbol and |
| set comdat_type_p here. |
| (output_die): Skip DIE symbol output for the LTO added one. |
| Handle DIE symbol references with offset. |
| (output_comp_unit): Guard section name mangling properly. |
| For LTO debug sections emit a symbol at the section beginning |
| which we use to refer to its DIEs. |
| (add_abstract_origin_attribute): For DIEs registered via |
| dwarf2out_register_external_die directly refer to the early |
| DIE rather than indirectly through the shadow one we created. |
| Remove obsolete call to dwarf2out_abstract_function for |
| non-function/block origins. |
| (gen_array_type_die): When generating early LTO debug do |
| not emit DW_AT_string_length. |
| (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs |
| late when in LTO. As suggested place a gcc_unreachable for |
| the DECL_ABSTRACT_P case. |
| (gen_subprogram_die): Avoid another specification DIE |
| for early built declarations/definitions for the late LTO case. |
| (gen_variable_die): Add type references for late duplicated VLA dies |
| when in late LTO. |
| (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function, |
| we have the abstract instance already. |
| (process_scope_var): Adjust decl DIE contexts in LTO which |
| first puts them in limbo. |
| (gen_decl_die): Do not generate type DIEs late apart from |
| types for VLAs or for decls we do not yet have a DIE. Do not |
| call dwarf2out_abstract_function late. |
| (dwarf2out_early_global_decl): Make sure to create DIEs |
| for abstract instances of a decl first. |
| (dwarf2out_late_global_decl): Adjust comment. |
| (output_macinfo_op): With multiple macro sections use |
| macinfo_label_base to distinguish labels. |
| (output_macinfo): Likewise. Update macinfo_label_base. |
| Pass in the line info label. |
| (note_variable_value_in_expr): When generating LTO resolve |
| all variable values here by generating DIEs as needed. |
| (init_sections_and_labels): Add early LTO debug flag parameter |
| and generate different sections and names if set. Add generation |
| counter for the labels so we can have multiple of them. |
| (reset_dies): Helper to allow DIEs to be output multiple times. |
| (dwarf2out_finish): When outputting DIEs to the fat part of an |
| LTO object first reset DIEs. |
| (dwarf2out_early_finish): Output early DIEs when generating LTO. |
| (modified_type_die): Check for decl_ultimate_origin being self |
| before recursing. |
| (gen_type_die_with_usage): Likewise. |
| (gen_typedef_die): Allow decl_ultimate_origin being self. |
| (set_decl_abstract_flags): Remove. |
| (set_block_abstract_flags): Likewise. |
| (dwarf2out_abstract_function): Treat the early generated DIEs |
| as the abstract copy and only add DW_AT_inline and |
| DW_AT_artificial here and call set_decl_origin_self. |
| If the DIE has an abstract origin don't do anything. |
| * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL |
| if we have none yet (Go fails to build one, PR78628). |
| (variably_modified_type_p): Prevent endless recursion for Ada |
| cyclic pointer types. |
| * lto-streamer-in.c: Include debug.h. |
| (dref_queue): New global. |
| (lto_read_tree_1): Stream in DIE references. |
| (lto_input_tree): Register DIE references. |
| (input_function): Stream DECL_DEBUG_ARGS. |
| * lto-streamer-out.c: Include debug.h. |
| (lto_write_tree_1): Output DIE references. |
| (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN. |
| Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls. |
| (output_function): Stream DECL_DEBUG_ARGS. |
| * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): |
| Stream DECL_ABSTRACT_ORIGIN. |
| * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. |
| (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL |
| DECL_CONTEXT for file-scope decls. |
| * lto-streamer.h (struct dref_entry): Declare. |
| (dref_queue): Likewise. |
| * cfgexpand.c (pass_expand::execute): Do not call the |
| outlining_inline_function hook here. |
| * lto-wrapper.c (debug_obj): New global. |
| (tool_cleanup): Unlink it if required. |
| (debug_objcopy): New function. |
| (run_gcc): Handle early debug sections in the IL files by |
| extracting them to separate files, partially linkin them and |
| feeding the result back as result to the linker. |
| * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION, |
| DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION, |
| DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug |
| sections into a separate segment. |
| * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO |
| segments. |
| (darwin_asm_dwarf_section): Likewise. |
| (darwin_asm_output_dwarf_offset): Likewise. |
| * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * read-md.h (md_reader::record_potential_iterator_use): Replace |
| pointer argument with an rtx and an index. |
| * read-rtl.c (iterator_group::apply_iterator): Likewise. |
| (apply_mode_iterator): Likewise. |
| (apply_code_iterator): Likewise. |
| (apply_int_iterator): Likewise. |
| (apply_subst_iterator): Likewise. |
| (record_iterator_use): Likewise. |
| (record_attribute_use): Likewise. |
| (md_reader::record_potential_iterator_use): Likewise. Update calls |
| to record_iterator_use and apply_iterator. |
| (iterator_use): Replace ptr with x and index. |
| (attribute_use): Likewise. |
| (apply_attribute_uses): Update calls to apply_iterator. |
| (apply_iterators): Likewise. Update initialization of iterator_use. |
| (rtx_reader::read_rtx_code): Update calls to record_iterator_use |
| and record_potential_iterator_use. |
| (rtx_reader::read_rtx_operand): Likewise. |
| |
| 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * varasm.c (const_rtx_hash_1): Don't hash in the mode of a |
| CONST_WIDE_INT. |
| |
| 2017-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81884 |
| * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses |
| at struct end conservatively when comparing common bases. |
| |
| 2017-08-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member. |
| (mem_ref_in_stmt): Remove. |
| (determine_max_movement): Use ref index to get at the reference. |
| (invariantness_dom_walker::before_dom_children): Deal with |
| lim data already initialized. |
| (gather_mem_refs_stmt): Initialize lim data and record ref index. |
| |
| 2017-08-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove. |
| (TARGET_ISA_ROUND): Ditto. |
| (TARGET_ROUND): Ditto. |
| * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1. |
| * config/i386/i386.md: Ditto. |
| * config/i386/sse.md: Ditto. |
| * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND |
| with OPTION_MASK_ISA_SSE4_1. |
| |
| 2017-08-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81894 |
| * doc/extend.texi (x86 Built-in Functions): Correct the name of |
| __builtin_ia32_lzcnt_u16. |
| |
| 2017-08-18 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/80210 |
| * config/rs6000/rs6000.c (rs6000_activate_target_options): New function. |
| (rs6000_set_current_function): Rewrite function to use it. |
| |
| 2017-08-18 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR c/53037 |
| * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN |
| and TYPE_WARN_IF_NOT_ALIGN. |
| * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN. |
| (handle_warn_if_not_align): New. |
| (place_union_field): Call handle_warn_if_not_align. |
| (place_field): Call handle_warn_if_not_align. |
| Copy TYPE_WARN_IF_NOT_ALIGN. |
| (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN. |
| (layout_type): Likewise. |
| * tree-core.h (tree_type_common): Add warn_if_not_align. Set |
| spare to 18. |
| (tree_decl_common): Add warn_if_not_align. |
| * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN. |
| * tree.h (TYPE_WARN_IF_NOT_ALIGN): New. |
| (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise. |
| (DECL_WARN_IF_NOT_ALIGN): Likewise. |
| (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. |
| * doc/extend.texi: Document warn_if_not_aligned attribute. |
| * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned. |
| |
| 2017-08-17 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/81864 |
| * tree-loop-distribution.c (ddrs_table): Change type to pointer type. |
| (get_data_dependence): Use it as pointer type. |
| (distribute_loop): Likewise. |
| |
| 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant. |
| (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct. |
| (p8_vmrgow_<mode>_direct): New define_insn. |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly |
| handle endianness for vmrgew and vmrgow permute patterns. |
| |
| 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE. |
| * config/rs6000/rs6000-cpus.def: Remove comment. |
| (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE; |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded |
| use of TARGET_VSX_TIMODE. |
| (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX. |
| (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of |
| TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX. |
| (rs6000_option_override_internal): Remove dead code. |
| (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX. |
| (rs6000_legitimize_reload_address): Likewise. |
| (rs6000_legitimate_address_p): Likewise. |
| (rs6000_opt_masks): Delete "vsx-timode". |
| (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode |
| from function comment. |
| * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete. |
| * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE. |
| (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty |
| condition. |
| * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub. |
| * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE. |
| * config/rs6000/vsx.md (VSX_LE_128): Likewise. |
| (VSX_TI): Likewise. |
| (VSX_M): Likewise. |
| (define_peephole2): Likewise. |
| |
| 2017-08-17 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81859 |
| * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading |
| past the end of an array. |
| (test_pp_format): Add test cases. |
| |
| 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add |
| missing ECF_NOTHROW flags. |
| |
| 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/72804 |
| * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for |
| operands residing in integer registers. |
| (*vsx_le_perm_load_<mode>): Likewise. |
| (*vsx_le_perm_store_<mode>): Likewise. |
| (define_peephole2): Add peepholes to optimize the above. |
| |
| 2017-08-17 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/81814 |
| * fold-const.c (operand_equal_for_comparison_p): Remove code that used |
| to mimic what shorten_compare did. Change the return type to bool. |
| (fold_cond_expr_with_comparison): Update call to |
| operand_equal_for_comparison_p. |
| (fold_ternary_loc): Likewise. |
| |
| 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| * aarch64-simd.md (mov<mode>): No longer force zero immediate into |
| register. |
| (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate. |
| |
| 2017-08-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (solve_graph): When propagating |
| to successors update the graphs succ edges and avoid duplicate work. |
| |
| 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR target/81861 |
| * config/i386/i386.c (ix86_option_override_internal): Save target |
| specific options after ix86_stack_protector_guard_reg was changed. |
| |
| 2017-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81827 |
| * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag. |
| (new_var_info): Initialize it conservatively. |
| (get_call_vi): Mark register vars. |
| (new_scalar_tmp_constraint_exp): Likewise. |
| (handle_rhs_call): Likewise. |
| (handle_const_call): Likewise. |
| (create_function_info_for): Likewise. |
| (solve_constraints): Sort varinfos to separate register from |
| non-register vars to pack points-to solution bitmaps during |
| iteration. |
| |
| 2017-08-17 Marek Polacek <polacek@redhat.com> |
| |
| * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1. |
| |
| 2017-08-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p |
| to true when overflow is undefined and we saturated the result. |
| |
| 2017-08-17 Alan Modra <amodra@gmail.com> |
| |
| PR target/80938 |
| * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09. |
| Don't use store multiple if only one reg needs saving. |
| (interesting_frame_related_regno): New function. |
| (rs6000_frame_related): Don't emit frame info for regs that |
| don't need saving. |
| (rs6000_emit_epilogue): Likewise. |
| |
| 2017-08-16 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-core.h (tree_type_non_common): Rename binfo to lang_1. |
| * tree.h (TYPE_BINFO): Use type_non_common.maxval. |
| (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type. |
| * tree.c (free_lang_data_in_type): Use else-if chain. Always |
| clear TYPE_LANG_1. Remove obsolete member-function stripping. |
| (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW. |
| (verify_type): Adjust for TYPE_BINFO move. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to |
| process TYPE_BINFO directly. |
| (hash_tree): Likewise. |
| * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): |
| Likewise. |
| * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): |
| Likewise. |
| |
| 2017-08-16 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field. |
| |
| 2017-08-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/46091 |
| * config/i386/i386.md (*anddi_1_btr): Change predicates of |
| operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint. |
| Add ix86_binary_operator_ok to insn constraint. |
| (*iordi_1_bts): Ditto. |
| (*xordi_1_btc): Ditto. |
| (*btsq): Change predicate of operand 0 to nonimmediate_operand. |
| Update corresponding peephole2 pattern. |
| (*btrq): Ditto. |
| (*btcq): Ditto. |
| |
| 2017-08-16 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81832 |
| * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't |
| copy loop header which has IFN_LOOP_DIST_ALIAS call. |
| |
| 2017-08-16 Marek Polacek <polacek@redhat.com> |
| |
| PR middle/81695 |
| * fold-const.c (fold_indirect_ref_1): Restore original behavior |
| regarding size_zero_node. |
| |
| 2017-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR target/81753 |
| * config.gcc: Respect previously set extra_objs in case |
| of darwin target. |
| |
| 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/81835 |
| * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for |
| the phi SSA_NAME. Check that the condition in a COND_EXPR does |
| not depend on the phi. |
| |
| 2017-08-16 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete |
| dead code. |
| |
| 2017-08-16 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge.. |
| (save_reg_p): ..into this. Update all callers. |
| (first_reg_to_save): Simplify. |
| |
| 2017-08-16 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore |
| fixed regs. |
| |
| 2017-08-15 Joseph Myers <joseph@codesourcery.com> |
| |
| PR target/78460 |
| PR target/67712 |
| * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for |
| constant count if that count is less than 32. |
| |
| 2017-08-15 Nathan Sidwell <nathan@acm.org> |
| |
| * gcc.c (execute): Emit friendlier message if inferior is killed |
| by an external cause. |
| |
| 2017-08-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81790 |
| * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both |
| CONSTRUCTORs from simplifying and VN. |
| |
| 2017-08-14 Martin Sebor <msebor@redhat.com> |
| |
| * builtin-attrs.def: Add comments. |
| |
| 2017-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * doc/extend.texi (attribute nonstring): Document new attribute. |
| |
| 2017-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR c/81117 |
| * tree-diagnostic.c (default_tree_printer): Handle %G. |
| * gimple-pretty-print.h (percent_G_format): Declare new function. |
| * gimple-pretty-print.c (percent_G_format): Define. |
| * tree-pretty-print.c (percent_K_format): Add argument. |
| |
| 2017-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR translation/79998 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): |
| Remove a stray space. |
| |
| 2017-08-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/46091 |
| * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern. |
| (*iordi_1_bts): Ditto. |
| (*xordi_1_btc): Ditto. |
| |
| 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/79845 |
| * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use |
| quoted strings, and make more translator-friendly. |
| (darwin_rs6000_override_options): Likewise. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_return_in_memory): Fix overlong line. |
| (init_cmulative_args): Use quoted strings, and make more |
| translator-friendly. |
| (rs6000_pass_by_reference): Fix overlong line. |
| (def_builtin): Use quoted strings. |
| (altivec_expand_predicate_builtin): Use quoted strings, and make |
| more translator-friendly. |
| (htm_expand_builtin): Use quoted strings. |
| (cpu_expand_builtin): Use quoted strings, and make more |
| translator-friendly. |
| (altivec_expand_builtin): Likewise. |
| (paired_expand_predicate_builtin): Likewise. |
| (rs6000_invalid_builtin): Likewise. |
| (builtin_function_type): Use quoted strings. |
| (rs6000_expand_split_stack_prologue): Use quoted strings, and make |
| more translator-friendly. |
| (rs6000_trampoline_init): Likewise. |
| (rs6000_handle_altivec_attribute): Likewise. |
| (rs6000_inner_target_options): Use quoted strings. |
| (rs6000_disable_incompatible_switches): Likewise. |
| * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted |
| strings, and make more translator-friendly. |
| (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings. |
| |
| 2017-08-14 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81799 |
| * tree-loop-distribution.c (version_loop_by_alias_check): Force |
| cond_expr to simple gimple operand. |
| |
| 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/46932 |
| * doc/sourcebuild.texi (autoincdec): Add autoincdec description. |
| |
| 2017-08-14 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81754 |
| PR target/81268 |
| * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues. |
| * config/avr/avr.md (gasisr, *gasisr): Use it instead of |
| TARGET_GASISR_PROLOGUES. |
| * config/avr/avr.c (avr_option_override): Same. |
| (avr_pass_pre_proep::execute): Same. |
| |
| 2017-08-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81820 |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace |
| frame pointer with stack pointer - UNITS_PER_WORD in debug insns. |
| |
| 2017-08-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*load_tp_<mode>): Redefine as |
| define_insn_and_split. Split to a memory load from 0 in |
| DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32 |
| using PTR mode iterator. |
| (*load_tp_x32_zext"): Redefine as define_insn_and_split. |
| Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space. |
| (*add_tp_<mode>): Redefine as define_insn_and_split. |
| Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG |
| address space. Merge with *add_tp_x32 using PTR mode iterator. |
| (*add_tp_x32_zext"): Redefine as define_insn_and_split. |
| Split to an add with a memory load from 0 in |
| DEFAULT_TLS_SEG_REG address space. |
| |
| 2017-08-12 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (rdma): |
| Fix feature string to what Linux prints out in /proc/cpuinfo. |
| |
| 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| PR ada/79542 |
| * dwarf2out.c (modified_type_die): For C typedef types that have |
| an ultimate origin, process the ultimate origin instead of the |
| input type. |
| (gen_typedef_die): Assert that input DECLs have no ultimate |
| origin. |
| (gen_type_die_with_usage): For typedef variants that have an |
| ultimate origin, just call gen_decl_die on the original DECL. |
| (process_scope_var): Avoid creating DIEs for local typedefs and |
| concrete static variables. |
| |
| 2017-08-12 Alan Modra <amodra@gmail.com> |
| |
| PR target/81170 |
| PR target/81295 |
| * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to |
| match gnu-user.h startfile. |
| (ENDFILE_LINUX_SPEC): Similarly. |
| |
| 2017-08-11 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR lto/81430 |
| * config/nvptx/nvptx.c (nvptx_override_options_after_change): |
| Remove function. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition. |
| |
| 2017-08-11 Tamar Christina <tamar.christina@arm.com> |
| * config/aarch64/aarch64.md (mov<mode>): Change. |
| (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): |
| aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero. |
| * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed. |
| |
| 2017-08-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics |
| for storage order barriers. |
| |
| 2017-08-11 Martin Liska <mliska@suse.cz> |
| |
| PR tree-opt/79987 |
| * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument |
| variables of void type. |
| |
| 2017-08-11 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with |
| TARGET_SUPPORTS_ALIASES. |
| * cgraph.c (cgraph_node::create_same_body_alias): Likewise. |
| * ipa-visibility.c (can_replace_by_local_alias): Likewise. |
| (optimize_weakref): Likewise. |
| * symtab.c (symtab_node::noninterposable_alias): Likewise. |
| * varpool.c (varpool_node::create_extra_name_alias): Likewise. |
| * defaults.h: Introduce TARGET_SUPPORTS_ALIASES. |
| |
| 2017-08-11 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/81213 |
| * config/i386/i386.c (make_resolver_func): Do complete |
| refactoring of the function. |
| |
| 2017-08-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81708 |
| * config/i386/i386.opt (mstack-protector-guard-symbol=): New option |
| * config/i386/i386.c (ix86_stack_protect_guard): Use |
| ix86_stack_protect_guard_symbol_str to generate varible declaration. |
| * doc/invoke.texi (x86 Options): Document |
| -mstack-protector-guard-symbol= option. |
| |
| 2017-08-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype. |
| * config/i386/i386.c (ix86_split_stack_guard): New function. |
| (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard. |
| (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove. |
| (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto. |
| (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling. |
| * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK. |
| (split_stack_space_check): Call ix86_split_stack_guard. |
| |
| 2017-08-10 Martin Sebor <msebor@redhat.com> |
| |
| * print-tree.c (print_node): Print location using the established |
| format %s:%i%i. |
| Replace spaces with colons. |
| (debug_raw, debug): Ditto. |
| |
| 2017-08-10 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/81586 |
| * pretty-print.c (pp_format): Correct the handling of %s precision. |
| |
| 2017-08-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81736 |
| * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed |
| to ... |
| (ix86_finalize_stack_frame_flags): This. Also clear |
| frame_pointer_needed if -fno-omit-frame-pointer is used without |
| stack access. |
| (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags |
| with ix86_finalize_stack_frame_flags. |
| (ix86_expand_epilogue): Likewise. |
| (ix86_expand_split_stack_prologue): Likewise. |
| * doc/invoke.texi: Add a note for -fno-omit-frame-pointer. |
| |
| 2017-08-10 Martin Liska <mliska@suse.cz> |
| |
| PR c++/81355 |
| * c-attribs.c (handle_target_attribute): |
| Report warning for an empty string argument of target attribute. |
| |
| 2017-08-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/81687 |
| * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL |
| LABEL_DECLs. |
| * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL |
| or DECL_NONLOCAL labels. |
| (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL |
| or DECL_NONLOCAL labels here. |
| |
| 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb |
| to indicate when early gimple folding has been disabled. |
| (rs6000_gimple_fold_builtin): Add debug content. |
| (rs6000_invalid_builtin): Fix whitespace. |
| (rs6000_expand_builtin): Fix whitespace. |
| * config/rs6000/rs6000.opt: Add option for -mfold-gimple. |
| |
| 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/80938 |
| * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use |
| SAVE_MULTIPLE if not all the registers that saves, should be saved. |
| |
| 2017-08-09 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline. |
| (qdf24xx): Likewise. |
| * config/aarch64/aarch64.md: Include falkor.md. |
| * config/aarch64/falkor.md: New. |
| |
| 2017-08-09 Marek Polacek <polacek@redhat.com> |
| |
| PR c/81233 |
| * diagnostic-core.h (emit_diagnostic_valist): Add declaration. |
| * diagnostic.c (emit_diagnostic): Add a comment. |
| (emit_diagnostic_valist): New function. |
| |
| 2017-08-09 Marek Polacek <polacek@redhat.com> |
| |
| PR c/81417 |
| * input.c (make_location): New overload. |
| * input.h (make_location): Declare. |
| |
| 2017-08-08 Alan Modra <amodra@gmail.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/81523 |
| * gcc.c (NO_PIE_SPEC): Delete. |
| (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r |
| exclusion.. |
| (LINK_PIE_SPEC): ..to here. |
| (LINK_COMMAND_SPEC): Support -no-pie. |
| * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct |
| chain of crtbegin*.o selection, update for PIE_SPEC changes and |
| format. |
| (GNU_USER_TARGET_ENDFILE_SPEC): Similarly. |
| * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly. |
| (ENDFILE_CRTEND_SPEC): Similarly. |
| |
| 2017-08-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81708 |
| * config/i386/i386.opt (mstack-protector-guard-reg=): New option |
| (mstack-protector-guard-offset=): Ditto. |
| * config/i386/i386.c (ix86_option_override): Handle |
| -mstack-protector-guard-reg= and -mstack-protector-guard-offset= |
| options. |
| (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and |
| ix86_stack_protect_guard_offset variables. |
| (TARGET_STACK_PROTECT_GUARD): Always define. |
| * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg= |
| and -mstack-protector-guard-offset= options. |
| |
| 2017-08-08 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle |
| boundary case for the last candidate. |
| |
| 2017-08-08 Bin Cheng <bin.cheng@arm.com> |
| |
| * doc/invoke.texi: Document -ftree-loop-distribution for O3. |
| * opts.c (default_options_table): Add OPT_ftree_loop_distribution. |
| |
| 2017-08-08 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/19706 |
| * config/aarch64/aarch64.md (xorsign<mode>3): New optabs. |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN. |
| * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP. |
| * config/aarch64/aarch64-simd.md: Added xorsign<mode>3 |
| |
| 2017-08-08 Tamar Christina <tamar.christina@arm.com> |
| Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/19706 |
| * internal-fn.def (XORSIGN): New. |
| * optabs.def (xorsign_optab): New. |
| * tree-ssa-math-opts.c (is_copysign_call_with_1): New. |
| (convert_expand_mult_copysign): New. |
| (pass_optimize_widening_mul::execute): Call |
| convert_expand_mult_copysign. |
| |
| 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/81354 |
| * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge): |
| Insert on edges rather than explicitly creating landing pads. |
| (analyze_candidates_and_replace): Commit edge inserts. |
| |
| 2017-08-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81719 |
| * tree-ssa-loop-niter.c: Include tree-dfa.h. |
| (expand_simple_operations): Also look through ADDR_EXPRs with |
| MEM_REF bases treating them as POINTER_PLUS_EXPR. |
| |
| 2017-08-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81723 |
| * tree-vect-slp.c (struct bst_traits): New hash traits. |
| (bst_fail): New global. |
| (vect_build_slp_tree_2): New worker, split out from ... |
| (vect_build_slp_tree): ... this now wrapping it with using |
| bst_fail set to cache SLP tree build fails. Properly handle |
| max_tree_size. |
| (vect_analyze_slp_instance): Allocate and free bst_fail. |
| |
| 2017-08-08 Martin Liska <mliska@suse.cz> |
| |
| PR tree-opt/81696 |
| * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider |
| LABEL_DECLs that can be from a different function. |
| |
| 2017-08-08 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81744 |
| * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of |
| loop's number of iterations. |
| |
| 2017-08-08 Martin Liska <mliska@suse.cz> |
| |
| * asan.c: Include header files. |
| * attribs.c (build_decl_attribute_variant): New function moved |
| from tree.[ch]. |
| (build_type_attribute_qual_variant): Likewise. |
| (cmp_attrib_identifiers): Likewise. |
| (simple_cst_list_equal): Likewise. |
| (omp_declare_simd_clauses_equal): Likewise. |
| (attribute_value_equal): Likewise. |
| (comp_type_attributes): Likewise. |
| (build_type_attribute_variant): Likewise. |
| (lookup_ident_attribute): Likewise. |
| (remove_attribute): Likewise. |
| (merge_attributes): Likewise. |
| (merge_type_attributes): Likewise. |
| (merge_decl_attributes): Likewise. |
| (merge_dllimport_decl_attributes): Likewise. |
| (handle_dll_attribute): Likewise. |
| (attribute_list_equal): Likewise. |
| (attribute_list_contained): Likewise. |
| * attribs.h (lookup_attribute): New function moved from tree.[ch]. |
| (lookup_attribute_by_prefix): Likewise. |
| * bb-reorder.c: Include header files. |
| * builtins.c: Likewise. |
| * calls.c: Likewise. |
| * cfgexpand.c: Likewise. |
| * cgraph.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * convert.c: Likewise. |
| * dwarf2out.c: Likewise. |
| * final.c: Likewise. |
| * fold-const.c: Likewise. |
| * function.c: Likewise. |
| * gimple-expr.c: Likewise. |
| * gimple-fold.c: Likewise. |
| * gimple-pretty-print.c: Likewise. |
| * gimple.c: Likewise. |
| * gimplify.c: Likewise. |
| * hsa-common.c: Likewise. |
| * hsa-gen.c: Likewise. |
| * internal-fn.c: Likewise. |
| * ipa-chkp.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-fnsummary.c: Likewise. |
| * ipa-inline.c: Likewise. |
| * ipa-visibility.c: Likewise. |
| * ipa.c: Likewise. |
| * lto-cgraph.c: Likewise. |
| * omp-expand.c: Likewise. |
| * omp-general.c: Likewise. |
| * omp-low.c: Likewise. |
| * omp-offload.c: Likewise. |
| * omp-simd-clone.c: Likewise. |
| * opts-global.c: Likewise. |
| * passes.c: Likewise. |
| * predict.c: Likewise. |
| * sancov.c: Likewise. |
| * sanopt.c: Likewise. |
| * symtab.c: Likewise. |
| * toplev.c: Likewise. |
| * trans-mem.c: Likewise. |
| * tree-chkp.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-into-ssa.c: Likewise. |
| * tree-object-size.c: Likewise. |
| * tree-parloops.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-live.c: Likewise. |
| * tree-ssa-loop.c: Likewise. |
| * tree-ssa-sccvn.c: Likewise. |
| * tree-ssa-structalias.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-streamer-in.c: Likewise. |
| * tree-vectorizer.c: Likewise. |
| * tree-vrp.c: Likewise. |
| * tsan.c: Likewise. |
| * ubsan.c: Likewise. |
| * varasm.c: Likewise. |
| * varpool.c: Likewise. |
| * tree.c: Remove functions moved to attribs.[ch]. |
| * tree.h: Likewise. |
| * config/aarch64/aarch64.c: Add attrs.h header file. |
| * config/alpha/alpha.c: Likewise. |
| * config/arc/arc.c: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/avr/avr.c: Likewise. |
| * config/bfin/bfin.c: Likewise. |
| * config/c6x/c6x.c: Likewise. |
| * config/cr16/cr16.c: Likewise. |
| * config/cris/cris.c: Likewise. |
| * config/darwin.c: Likewise. |
| * config/epiphany/epiphany.c: Likewise. |
| * config/fr30/fr30.c: Likewise. |
| * config/frv/frv.c: Likewise. |
| * config/ft32/ft32.c: Likewise. |
| * config/h8300/h8300.c: Likewise. |
| * config/i386/winnt.c: Likewise. |
| * config/ia64/ia64.c: Likewise. |
| * config/iq2000/iq2000.c: Likewise. |
| * config/lm32/lm32.c: Likewise. |
| * config/m32c/m32c.c: Likewise. |
| * config/m32r/m32r.c: Likewise. |
| * config/m68k/m68k.c: Likewise. |
| * config/mcore/mcore.c: Likewise. |
| * config/microblaze/microblaze.c: Likewise. |
| * config/mips/mips.c: Likewise. |
| * config/mmix/mmix.c: Likewise. |
| * config/mn10300/mn10300.c: Likewise. |
| * config/moxie/moxie.c: Likewise. |
| * config/msp430/msp430.c: Likewise. |
| * config/nds32/nds32-isr.c: Likewise. |
| * config/nds32/nds32.c: Likewise. |
| * config/nios2/nios2.c: Likewise. |
| * config/nvptx/nvptx.c: Likewise. |
| * config/pa/pa.c: Likewise. |
| * config/pdp11/pdp11.c: Likewise. |
| * config/powerpcspe/powerpcspe.c: Likewise. |
| * config/riscv/riscv.c: Likewise. |
| * config/rl78/rl78.c: Likewise. |
| * config/rx/rx.c: Likewise. |
| * config/s390/s390.c: Likewise. |
| * config/sh/sh.c: Likewise. |
| * config/sol2.c: Likewise. |
| * config/sparc/sparc.c: Likewise. |
| * config/spu/spu.c: Likewise. |
| * config/stormy16/stormy16.c: Likewise. |
| * config/tilegx/tilegx.c: Likewise. |
| * config/tilepro/tilepro.c: Likewise. |
| * config/v850/v850.c: Likewise. |
| * config/vax/vax.c: Likewise. |
| * config/visium/visium.c: Likewise. |
| * config/xtensa/xtensa.c: Likewise. |
| |
| 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/81593 |
| * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup |
| constraints since the -mupper-regs-* switches have been |
| eliminated. |
| (vsx_concat_<mode>_1): New combiner insns to recognize inserting |
| into a vector from a double word element that was extracted from |
| another vector, and eliminate extra XXPERMDI instructions. |
| (vsx_concat_<mode>_2): Likewise. |
| (vsx_concat_<mode>_3): Likewise. |
| (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector |
| concat to allow optimizing inserts from previous extracts. |
| |
| 2017-08-07 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_stack_protect_guard): Generate |
| memory reference to a SSP offset in TLS address space. |
| (ix86_print_operand) <case '@'>: Remove. |
| (ix86_print_operand_punct_valid_p): Remove '@' code. |
| * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and |
| UNSPEC_SP_TLS_TEST. |
| (stack_tls_protect_set_<mode>): Remove. |
| (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>. |
| (stack_tls_protect_test_<mode>): Remove. |
| (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>. |
| |
| 2017-08-07 Olivier Hainque <hainque@adacore.com> |
| |
| PR target/81755 |
| * config/vxworksae.h (VXWORKS_HAVE_TLS): Define. |
| |
| 2017-08-07 Douglas Rupp <rupp@adacore.com> |
| |
| * Makefile.in (install-mkheaders): Fix typo, where the multi_dir |
| variable was referenced as multidir in command. |
| |
| 2017-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/69389 |
| * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and |
| BIT_FIELD_REF. |
| |
| 2017-08-07 Martin Liska <mliska@suse.cz> |
| |
| * config/m32c/m32c.c: Add include of stringpool.h and attribs.h. |
| * config/rl78/rl78.c: Add include of attribs.h. |
| * config/sh/sh.c: Likewise. |
| * config/v850/v850.c: Likewise. |
| |
| 2017-08-07 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/78266 |
| * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough. |
| |
| 2017-08-07 Martin Liska <mliska@suse.cz> |
| |
| * config/mips/mips.c: Include attribs.h. |
| |
| 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/68829 |
| * doc/invoke.texi: Document change in behvaior for -Ofast for |
| Fortran. |
| |
| 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): |
| Use gen_frame_mem. |
| (aarch64_pop_regs): Likewise. |
| (aarch64_gen_load_pair): Likewise. |
| (aarch64_save_callee_saves): Likewise. |
| (aarch64_restore_callee_saves): Likewise. |
| |
| 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c: Revert the last change. |
| |
| 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81736 |
| * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed |
| to ... |
| (ix86_finalize_stack_frame_flags): This. Also clear |
| frame_pointer_needed if -fno-omit-frame-pointer is used without |
| stack access. |
| (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags |
| with ix86_finalize_stack_frame_flags. |
| (ix86_expand_epilogue): Likewise. |
| (ix86_expand_split_stack_prologue): Likewise. |
| |
| 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81743 |
| * config/i386/i386.c (get_builtin_code_for_version): Set priority |
| to P_AES for Westmere. |
| |
| 2017-08-07 Jonathan Yong <10walls@gmail.com> |
| |
| * config/i386/mingw.opt (fset-stack-executable): Removed. |
| * config/i386/cygming.opt (fset-stack-executable): Moved |
| from mingw.opt. |
| * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED. |
| |
| 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * print-rtl.c (print_exp): Print NOT as "~" instead of as "!". |
| |
| 2017-08-07 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/81737 |
| * fold-const.c (fold_indirect_ref_1): Check type_domain. |
| |
| 2017-08-07 Martin Liska <mliska@suse.cz> |
| |
| * attribs.h (canonicalize_attr_name): New function. |
| (cmp_attribs): Move from c-format.c and adjusted. |
| (is_attribute_p): Moved from tree.h. |
| * tree-inline.c: Add new includes. |
| * tree.c (cmp_attrib_identifiers): Use cmp_attribs. |
| (private_is_attribute_p): Remove. |
| (private_lookup_attribute): Likewise. |
| (private_lookup_attribute_by_prefix): Simplify. |
| (remove_attribute): Use is_attribute_p. |
| * tree.h: Remove removed declarations. |
| |
| 2017-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/81698 |
| * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument, |
| instead of computing it in the function. Formatting fix. |
| (expand_case): Don't rely on default_edge being the first edge, |
| clear it if removing it, pass default_edge to |
| emit_case_dispatch_table. |
| (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting |
| fix. |
| |
| 2017-08-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_reorg): If trap is the last active |
| insn in the function, emit NOP after the insn. |
| |
| 2017-08-06 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-expand.c (expand_oacc_for): Add missing edge probability for tile |
| and element loops. |
| |
| 2017-08-06 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk |
| loop. |
| |
| 2017-08-04 Yury Gribov <tetra2005@gmail.com> |
| |
| PR tree-optimization/57371 |
| * match.pd: New pattern. |
| |
| 2017-08-04 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/81695 |
| * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1], |
| perform the computation in offset_int. |
| |
| 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/81136 |
| * tree-vectorizer.h: Include tree-hash-traits.h. |
| (vec_base_alignments): New typedef. |
| (vec_info): Add a base_alignments field. |
| (vect_record_base_alignments): Declare. |
| * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt |
| field. |
| (DR_IS_CONDITIONAL_IN_STMT): New macro. |
| (create_data_ref): Add an is_conditional_in_stmt argument. |
| * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize |
| the is_conditional_in_stmt field. |
| (data_ref_loc): Add an is_conditional_in_stmt field. |
| (get_references_in_stmt): Set the is_conditional_in_stmt field. |
| (find_data_references_in_stmt): Update call to create_data_ref. |
| (graphite_find_data_references_in_stmt): Likewise. |
| * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. |
| (vect_record_base_alignment): New function. |
| (vect_record_base_alignments): Likewise. |
| (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to |
| for nested statements even if we fail to compute a misalignment. |
| Use pooled base alignments for unconditional references. |
| (vect_find_same_alignment_drs): Compare base addresses instead |
| of base objects. |
| (vect_analyze_data_refs_alignment): Call vect_record_base_alignments. |
| * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise. |
| |
| 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vectorizer.h (vec_info): Add a constructor and destructor. |
| Add an explicit name for the enum. Use auto_vec for slp_instances |
| and grouped_stores. |
| (_loop_vec_info): Add a constructor and destructor. Use auto_vec |
| for all vectors. |
| (_bb_vec_info): Add a constructor and destructor. |
| (vinfo_for_stmt): Return NULL for uids of -1 as well. |
| (destroy_loop_vec_info): Delete. |
| (vect_destroy_datarefs): Likewise. |
| * tree-vectorizer.c (vect_destroy_datarefs): Delete. |
| (vec_info::vec_info): New function. |
| (vec_info::~vec_info): Likewise. |
| (vectorize_loops): Use delete instead of destroy_loop_vec_info. |
| * tree-parloops.c (gather_scalar_reductions): Use delete instead of |
| destroy_loop_vec_info. |
| * tree-vect-loop.c (new_loop_vec_info): Replace with... |
| (_loop_vec_info::_loop_vec_info): ...this. |
| (destroy_loop_vec_info): Replace with... |
| (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete |
| the stmt_vec_infos. Leave handling of vec_info information to its |
| destructor. Remove explicit vector releases. |
| (vect_analyze_loop_form): Use new instead of new_loop_vec_info. |
| (vect_analyze_loop): Use delete instead of destroy_loop_vec_info. |
| * tree-vect-slp.c (new_bb_vec_info): Replace with... |
| (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in |
| BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES. |
| (destroy_bb_vec_info): Replace with... |
| (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info |
| information to its destructor. |
| (vect_slp_analyze_bb_1): Use new and delete instead of |
| new_bb_vec_info and destroy_bb_vec_info. |
| (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a |
| single delete. |
| |
| 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (subscript): Add access_fn field. |
| (data_dependence_relation): Add could_be_independent_p. |
| (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros. |
| (same_access_functions): Move to tree-data-ref.c. |
| * tree-data-ref.c (ref_contains_union_access_p): New function. |
| (access_fn_component_p): Likewise. |
| (access_fn_components_comparable_p): Likewise. |
| (dr_analyze_indices): Add a reference to access_fn_component_p. |
| (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of |
| DR_ACCESS_FN. |
| (constant_access_functions): Likewise. |
| (add_other_self_distances): Likewise. |
| (same_access_functions): Likewise. (Moved from tree-data-ref.h.) |
| (initialize_data_dependence_relation): Use XCNEW and remove |
| explicit zeroing of DDR_REVERSED_P. Look for a subsequence |
| of access functions that have the same type. Allow the |
| subsequence to end with different bases in some circumstances. |
| Record the chosen access functions in SUB_ACCESS_FN. |
| (build_classic_dist_vector_1): Replace ddr_a and ddr_b with |
| a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN. |
| (subscript_dependence_tester_1): Likewise dra and drb. |
| (build_classic_dist_vector): Update calls accordingly. |
| (subscript_dependence_tester): Likewise. |
| * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check |
| DDR_COULD_BE_INDEPENDENT_P. |
| * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test |
| comp_alias_ddrs instead of may_alias_ddrs. |
| * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): |
| New function. |
| (vect_analyze_data_ref_dependence): Use it if |
| DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded |
| distance vectors if that fails. |
| (dependence_distance_ge_vf): New function. |
| (vect_prune_runtime_alias_test_list): Use it. Don't clear |
| LOOP_VINFO_MAY_ALIAS_DDRS. |
| |
| 2017-08-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81705 |
| * fold-const.c (fold_binary_loc): Properly restrict |
| minus_var0 && minus_var1 case when associating undefined overflow |
| entities. |
| |
| 2017-08-04 Tom de Vries <tom@codesourcery.com> |
| |
| * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability. |
| |
| 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Don't start diagnostic messages with a capital letter. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): |
| Likewise. |
| (rs6000_invalid_builtin): Likewise. |
| (rs6000_trampoline_init): Likewise. |
| |
| 2017-08-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81621 |
| * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish |
| after setting changeable df flags. |
| |
| 2017-08-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-reassoc.c (should_break_up_subtract): Also break |
| up if the use is in USE - X. |
| |
| 2017-08-03 Alexander Monakov <amonakov@ispras.ru> |
| |
| * toplev.c (dumpfile.h): New include. |
| (internal_error_reentered): New static function. Use it... |
| (internal_error_function): ...here to handle reentered internal_error. |
| |
| 2017-08-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81148 |
| * fold-const.c (split_tree): Add minus_var and minus_con |
| arguments, remove unused loc arg. Never generate NEGATE_EXPRs |
| here but always use minus_*. |
| (associate_trees): Assert we never associate with MINUS_EXPR |
| and NULL first operand. Do not recurse for PLUS_EXPR operands |
| when associating as MINUS_EXPR either. |
| (fold_binary_loc): Track minus_var and minus_con. |
| |
| 2017-08-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR lto/81430 |
| * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If |
| ACCEL_COMPILER, apply finish_options on |
| DECL_FUNCTION_SPECIFIC_OPTIMIZATION. |
| |
| 2017-08-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/81662 |
| * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if |
| function_entry_patch_area_size > 0. |
| |
| 2017-08-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/81650 |
| * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??) |
| instead of 10??LU, perform unit multiplication in wide_int, |
| don't change alloc_object_size_limit if the limit is larger |
| than SSIZE_MAX. |
| |
| PR tree-optimization/81655 |
| PR tree-optimization/81588 |
| * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also |
| the case when ranges[i].low and high are 1 for unsigned type with |
| precision 1. |
| |
| PR middle-end/81052 |
| * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp. |
| (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd. |
| |
| 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * tree-vrp.h: Add include guard. |
| |
| 2017-08-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81644 |
| * config/i386/i386.md (unspecv): Add UNSPECV_UD2. |
| (ud2): New insn pattern. |
| * config/i386/i386.c (ix86_expand_epilogue): |
| For naked functions, generate ud2 instead of trap insn. |
| |
| 2017-08-02 Marek Polacek <polacek@redhat.com> |
| |
| PR other/81667 |
| * alloc-pool.h (base_pool_allocator): Initialize m_elt_size. |
| |
| 2017-08-02 Tom de Vries <tom@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update): |
| Add missing edge probabilities. |
| |
| 2017-08-02 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): |
| Correct endianness. |
| |
| 2017-08-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79499 |
| * function.c (thread_prologue_and_epilogue_insns): Determine blocks |
| for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN |
| of first NONDEBUG_INSN_P in each of the split_prologue_seq and |
| prologue_seq sequences - if any. |
| |
| 2017-08-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_store): Perform vector extracts |
| via vectors if supported, integer extracts via punning if supported |
| or otherwise vector extracts. |
| |
| 2017-08-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline |
| into ... |
| (bitmap_insert_into_set): ... this. |
| |
| 2017-08-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81633 |
| Revert |
| 2015-08-17 Alan Hayward <alan.hayward@arm.com> |
| |
| PR tree-optimization/71752 |
| * tree-vect-slp.c (vect_get_slp_defs): Handle null operands. |
| |
| 2017-08-01 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field. |
| (machine_function::call_ms2sysv_pad_out): Remove field. |
| * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify. |
| (ix86_compute_frame_layout): Likewise. |
| |
| 2017-08-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81654 |
| * config/i386/i386.c (ix86_set_func_type): Disallow naked |
| attribute with interrupt attribute. |
| |
| 2017-08-01 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check |
| BIT_INSERT_EXPR's operand 1 |
| to see if the types precision matches. |
| |
| 2017-08-01 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/70140 |
| * builtins.c (expand_builtin_memcpy_args): Remove. |
| (expand_builtin_memcpy): Call newly added function |
| expand_builtin_memory_copy_args. |
| (expand_builtin_memcpy_with_bounds): Likewise. |
| (expand_builtin_mempcpy): Remove last argument. |
| (expand_builtin_mempcpy_with_bounds): Likewise. |
| (expand_builtin_memory_copy_args): New function created from |
| expand_builtin_mempcpy_args with small modifications. |
| (expand_builtin_mempcpy_args): Remove. |
| (expand_builtin_stpcpy): Remove unused argument. |
| (expand_builtin): Likewise. |
| (expand_builtin_with_bounds): Likewise. |
| |
| 2017-08-01 Martin Liska <mliska@suse.cz> |
| |
| Revert r250771 |
| Make mempcpy more optimal (PR middle-end/70140). |
| |
| 2017-08-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81622 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For |
| __builtin_vec_cmpne verify both arguments are compatible vectors |
| before looking at TYPE_MODE on the element type. For __builtin_vec_ld |
| verify arg1_type is a pointer or array type. For __builtin_vec_st, |
| move computation of aligned to after checking the argument types. |
| Formatting fixes. |
| |
| PR target/80846 |
| * config/rs6000/vsx.md (vextract_fp_from_shorth, |
| vextract_fp_from_shortl): Add element mode after mode in gen_vec_init* |
| calls. |
| |
| 2017-08-01 Jerome Lambourg <lambourg@adacore.com> |
| Doug Rupp <rupp@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as |
| well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to |
| arm8 (arch v4). |
| * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper |
| for TARGET_OS_CPP_BUILTIN. |
| (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(), |
| refine CPU definitions for arm_arch5 and add those for arm_arch6 and |
| arm_arch7. |
| (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC, |
| passing required abi options to the assembler for EABI configurations. |
| (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production |
| of .text.hot and .text.unlikely sections for kernel modules when |
| using ARM style exceptions. |
| (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain |
| options. Add EXTRA_CC1_SPEC. |
| (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab |
| toolchain options. |
| (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7 |
| transition. |
| (ARM_TARGET2_DWARF_FORMAT): Define. |
| * config/arm/t-vxworks: Adjust multilib control to removal of the |
| Diab command line options. |
| |
| 2017-08-01 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/81561 |
| * gcov.c (unblock): Make unblocking safe as we need to preserve |
| index correspondence of blocks and block_lists. |
| |
| 2017-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81181 |
| * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... |
| (compute_antic): ... end of iteration here. |
| |
| 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * common.opt (ftree-vectorize): No longer set flag_tree_vectorize. |
| (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize. |
| (ftree-slp-vectorize): Likewise. |
| * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it |
| can no longer be set independent of flag_tree_loop_vectorize. |
| * omp-general.c (emp_max_vf): Likewise. |
| * opts.c (enable_fdo_optimizations): Remove references to |
| flag_tree_vectorize, these are now implicit. |
| (common_handle_option): Remove handling for OPT_ftree_vectorize, |
| and leave it for the options machinery. |
| |
| 2017-08-01 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/70140 |
| * builtins.c (expand_builtin_memcpy_args): Remove. |
| (expand_builtin_memcpy): Call newly added function |
| expand_builtin_memory_copy_args. |
| (expand_builtin_memcpy_with_bounds): Likewise. |
| (expand_builtin_mempcpy): Remove last argument. |
| (expand_builtin_mempcpy_with_bounds): Likewise. |
| (expand_builtin_memory_copy_args): New function created from |
| expand_builtin_mempcpy_args with small modifications. |
| (expand_builtin_mempcpy_args): Remove. |
| (expand_builtin_stpcpy): Remove unused argument. |
| (expand_builtin): Likewise. |
| (expand_builtin_with_bounds): Likewise. |
| |
| 2017-08-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81641 |
| * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel |
| print "ds:" only for immediates in generic address space. |
| |
| 2017-08-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81639 |
| * config/i386/i386.c (ix86_funciton_naked): New prototype. |
| (ix86_function_ok_for_sibcall): Return false for naked functions. |
| |
| 2017-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (print_pre_expr): Handle NULL expr. |
| (compute_antic): Seed worklist with exit block predecessors. |
| * cfganal.c (dfs_find_deadend): For a cycle return the source |
| of the edge closing it. |
| |
| 2017-08-01 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_can_const_movi_rtx_p): Move 0 check. |
| |
| 2017-08-01 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete. |
| * fold-const.c (fold_comparison, fold_binary_loc): Delete use of |
| above macro. |
| * match.pd: Ditto in address comparison pattern. |
| |
| 2017-08-01 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81627 |
| * tree-predcom.c (prepare_finalizers): Always rewrite into loop |
| closed ssa form for store-store chain. |
| |
| 2017-08-01 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81620 |
| * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after |
| for store-store chain. |
| |
| 2017-08-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81588 |
| * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If |
| ranges[i].in_p, invert comparison code ccode. For >/>=, |
| swap rhs1 and rhs2 and comparison code unconditionally, |
| for </<= don't do that. Don't swap rhs1/rhs2 again if |
| ranges[i].in_p, instead invert comparison code ccode if |
| opcode or oe->rank is BIT_IOR_EXPR. |
| |
| PR target/80846 |
| * optabs.def (vec_extract_optab, vec_init_optab): Change from |
| a direct optab to conversion optab. |
| * optabs.c (expand_vector_broadcast): Use convert_optab_handler |
| with GET_MODE_INNER as last argument instead of optab_handler. |
| * expmed.c (extract_bit_field_1): Likewise. Use vector from |
| vector extraction if possible and optab is available. |
| * expr.c (store_constructor): Use convert_optab_handler instead |
| of optab_handler. Use vector initialization from smaller |
| vectors if possible and optab is available. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| * doc/md.texi (vec_extract, vec_init): Document that the optabs |
| now have two modes. |
| * config/i386/i386.c (ix86_expand_vector_init): Handle expansion |
| of vec_init from half-sized vectors with the same element mode. |
| * config/i386/sse.md (ssehalfvecmode): Add V4TI case. |
| (ssehalfvecmodelower, ssescalarmodelower): New mode attributes. |
| (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df, |
| reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf, |
| reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode |
| after mode in gen_vec_extract* calls. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><ssescalarmodelower>): ... this. |
| (vec_extract<mode><ssehalfvecmodelower>): New expander. |
| (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add |
| element mode after mode in gen_vec_init* calls. |
| (VEC_INIT_HALF_MODE): New mode iterator. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><ssescalarmodelower>): ... this. |
| (vec_init<mode><ssehalfvecmodelower>): New expander. |
| * config/i386/mmx.md (vec_extractv2sf): Renamed to ... |
| (vec_extractv2sfsf): ... this. |
| (vec_initv2sf): Renamed to ... |
| (vec_initv2sfsf): ... this. |
| (vec_extractv2si): Renamed to ... |
| (vec_extractv2sisi): ... this. |
| (vec_initv2si): Renamed to ... |
| (vec_initv2sisi): ... this. |
| (vec_extractv4hi): Renamed to ... |
| (vec_extractv4hihi): ... this. |
| (vec_initv4hi): Renamed to ... |
| (vec_initv4hihi): ... this. |
| (vec_extractv8qi): Renamed to ... |
| (vec_extractv8qiqi): ... this. |
| (vec_initv8qi): Renamed to ... |
| (vec_initv8qiqi): ... this. |
| * config/rs6000/vector.md (VEC_base_l): New mode attribute. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><VEC_base_l>): ... this. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><VEC_base_l>): ... this. |
| * config/rs6000/paired.md (vec_initv2sf): Renamed to ... |
| (vec_initv2sfsf): ... this. |
| * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3, |
| vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, |
| vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add |
| element mode after mode in gen_vec_init* calls. |
| * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ... |
| (vec_init<mode><Vel>): ... this. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><Vel>): ... this. |
| * config/aarch64/iterators.md (Vel): New mode attribute. |
| * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr): |
| Add element mode after mode in gen_vec_extract* calls. |
| * config/s390/vector.md (non_vec_l): New mode attribute. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><non_vec_l>): ... this. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><non_vec_l>): ... this. |
| * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf, |
| s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after |
| vec_extract mode. |
| * config/arm/iterators.md (V_elem_l): New mode attribute. |
| * config/arm/neon.md (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><V_elem_l>): ... this. |
| (vec_extractv2di): Renamed to ... |
| (vec_extractv2didi): ... this. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><V_elem_l>): ... this. |
| (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>, |
| reduc_smax_scal_<mode>, reduc_umin_scal_<mode>, |
| reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>): |
| Add element mode after gen_vec_extract* calls. |
| * config/mips/mips-msa.md (vec_init<mode>): Renamed to ... |
| (vec_init<mode><unitmode>): ... this. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><unitmode>): ... this. |
| * config/mips/loongson.md (vec_init<mode>): Renamed to ... |
| (vec_init<mode><unitmode>): ... this. |
| * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ... |
| (vec_initv2sfsf): ... this. |
| (vec_extractv2sf): Renamed to ... |
| (vec_extractv2sfsf): ... this. |
| (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf): |
| Add element mode after gen_vec_extract* calls. |
| * config/mips/mips.md (unitmode): New mode iterator. |
| * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack, |
| spu_builtin_extract): Add element mode after gen_vec_extract* calls. |
| * config/spu/spu.md (inner_l): New mode attribute. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><inner_l>): ... this. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><inner_l>): ... this. |
| * config/sparc/sparc.md (veltmode): New mode iterator. |
| (vec_init<VMALL:mode>): Renamed to ... |
| (vec_init<VMALL:mode><VMALL:veltmode>): ... this. |
| * config/ia64/vect.md (vec_initv2si): Renamed to ... |
| (vec_initv2sisi): ... this. |
| (vec_initv2sf): Renamed to ... |
| (vec_initv2sfsf): ... this. |
| (vec_extractv2sf): Renamed to ... |
| (vec_extractv2sfsf): ... this. |
| * config/powerpcspe/vector.md (VEC_base_l): New mode attribute. |
| (vec_init<mode>): Renamed to ... |
| (vec_init<mode><VEC_base_l>): ... this. |
| (vec_extract<mode>): Renamed to ... |
| (vec_extract<mode><VEC_base_l>): ... this. |
| * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ... |
| (vec_initv2sfsf): ... this. |
| * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3, |
| vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, |
| vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in |
| gen_vec_init* calls. |
| |
| 2017-08-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81297 |
| * tree-vrp.c (get_single_symbol): Remove assert, instead drop |
| TREE_OVERFLOW from INTEGER_CSTs. |
| |
| 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma. |
| |
| 2017-07-31 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| vector signed char vec_xl_be (signed long long, signed char *); |
| vector unsigned char vec_xl_be (signed long long, unsigned char *); |
| vector signed int vec_xl_be (signed long long, signed int *); |
| vector unsigned int vec_xl_be (signed long long, unsigned int *); |
| vector signed long long vec_xl_be (signed long long, signed long long *); |
| vector unsigned long long vec_xl_be (signed long long, unsigned long long *); |
| vector signed short vec_xl_be (signed long long, signed short *); |
| vector unsigned short vec_xl_be (signed long long, unsigned short *); |
| vector double vec_xl_be (signed long long, double *); |
| vector float vec_xl_be (signed long long, float *); |
| * config/rs6000/altivec.h (vec_xl_be): Add #define. |
| * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI) |
| XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions |
| for the builtins. |
| * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function. |
| (altivec_expand_builtin): Add switch statement to call |
| altivec_expand_xl_be for each builtin. |
| (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi, |
| __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di, |
| __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df, |
| __builtin_vsx_le_be_v16qi. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-07-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/25967 |
| * config/i386/i386.c (ix86_allocate_stack_slots_for_args): |
| New function. |
| (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. |
| |
| 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config.gcc: Add z14. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): Add |
| CPU model numbers for z13s and z14. |
| * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace |
| arch12 with z14. |
| * config/s390/s390-opts.h (enum processor_type): Rename |
| PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. |
| * config/s390/s390.c (processor_table): Add field for CPU name to |
| be passed to Binutils. |
| (s390_asm_output_machine_for_arch): Use the new field in |
| processor_table for Binutils. |
| (s390_expand_builtin): Replace arch12 with z14. |
| (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. |
| (s390_get_sched_attrmask): Likewise. |
| (s390_get_unit_mask): Likewise. |
| * config/s390/s390.opt: Add z14 to processor_type enum. |
| |
| 2017-07-31 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/81477 |
| * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable |
| regardless of optimization level. |
| |
| 2017-07-31 Jan Hubicka <hubicka@ucw.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| * predict.def: Remove old comment and adjust probability. |
| * gimplify.c (should_warn_for_implicit_fallthrough): Ignore |
| PREDICT statements. |
| |
| 2017-07-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/25967 |
| * config/i386/i386.c (ix86_function_naked): New function. |
| (ix86_can_use_return_insn_p): Return false for naked functions. |
| (ix86_expand_prologue): Skip prologue for naked functions. |
| (ix86_expand_epilogue): Skip epilogue for naked functions |
| and emit trap instruction. |
| (ix86_warn_func_return): New function. |
| (ix86_attribute_table): Add "naked" attribute specification. |
| (TARGET_WARN_FUNC_RETURN): Define. |
| * doc/extend.texi (x86 Function Attributes) <naked>: Document it. |
| |
| 2017-07-31 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_gimple_label): Never dump BB info. |
| (dump_gimple_bb_header): Always dump BB info. |
| (pp_cfg_jump): Do not append info about BB when dumping a jump. |
| |
| 2017-07-31 Martin Liska <mliska@suse.cz> |
| |
| PR sanitize/81530 |
| * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p |
| also with current_function_decl non-null equality. |
| |
| 2017-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81604 |
| * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't |
| change type to the element type, instead add eltype variable and |
| use it where we are interested in the element type. |
| |
| PR tree-optimization/81603 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform |
| offset arithmetic in offset_int, bail out if the resulting bit offset |
| doesn't fit into shwi. |
| |
| 2017-07-31 Martin Liska <mliska@suse.cz> |
| |
| * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk. |
| (gimplify_save_expr): Fix comment. |
| |
| 2017-07-30 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/79793 |
| * config/i386/i386.c (ix86_function_arg): Update arguments for |
| exception handler. |
| (ix86_compute_frame_layout): Set the initial stack offset to |
| INCOMING_FRAME_SP_OFFSET. Update red-zone offset with |
| INCOMING_FRAME_SP_OFFSET. |
| (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the |
| stack before exception handler returns. |
| * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the |
| the 'ERROR_CODE' for exception handler. |
| |
| 2017-07-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro. |
| (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers. |
| (ASM_OUTPUT_REG_POP): Ditto. |
| * config/i386/i386.c (ix86_asm_output_function_label): Use fputs |
| instead of asm_fprintf to output pure string. |
| |
| 2017-07-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument |
| to imported_module_or_decl hook. |
| (debug_nothing_tree_tree_tree_bool): Remove. |
| (debug_nothing_tree_tree_tree_bool_bool): New declaration. |
| * debug.c (do_nothing_debug_hooks): Use |
| debug_nothing_tree_tree_tree_bool_bool instead of |
| debug_nothing_tree_tree_tree_bool. |
| * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. |
| * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. |
| * sdbout.c (sdb_debug_hooks): Likewise. |
| * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise. |
| (gen_namespace_die): Add DW_AT_export_symbols attribute if |
| langhook wants it. |
| (dwarf2out_imported_module_or_decl): Add IMPLICIT argument, |
| if true, -gdwarf-5 and decl will have DW_AT_export_symbols |
| attribute, don't add anything. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * fold-const.c (fold_build1_stat_loc): Remove _stat from name. |
| (fold_build2_stat_loc): Likewise. |
| (fold_build3_stat_loc): Likewise. |
| * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust. |
| (fold_build1_loc): Remove macro. |
| (fold_build2_loc): Likewise. |
| (fold_build3_loc): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name. |
| (gimple_build_debug_bind_source_stat): Likewise. |
| * gimple.h (gimple_build_debug_bind): Remove macro. |
| (gimple_build_debug_bind_source): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bitmap.c (bitmap_alloc): Adjust. |
| (bitmap_gc_alloc): Likewise. |
| * bitmap.h (bitmap_initialize_stat): Remove _stat from name. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc. |
| (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc. |
| * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype. |
| (bitmap_gc_alloc_stat): Likewise. |
| (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * rtl.c (shallow_copy_rtx_stat): Remove _stat from name. |
| * rtl.h (shallow_copy_rtx): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * emit-rtl.c (gen_raw_REG): Adjust. |
| * gengenrtl.c (gendef): Likewise. |
| * rtl.c (rtx_alloc_stat): Remove _stat from name. |
| * rtl.h (rtx_alloc): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (build_tree_list_vec_stat): Remove _stat from name. |
| (build_tree_list_stat): Likewise. |
| * tree.h (build_tree_list): Remove macro. |
| (build_tree_list_vec): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (make_vector_stat): Remove _stat from name. |
| (build_vector_stat): Likewise. |
| * tree.h (make_vector_stat): Remove macro. |
| (build_vector_stat): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.h (build_var_debug_value): Remove prototype. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (tree_cons_stat): Remove _stat from name. |
| * tree.h (tree_cons): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (build_vl_exp_stat): Remove _stat from name. |
| * tree.h (build_vl_exp): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (build_decl_stat): Remove _stat from name. |
| * tree.h (build_decl): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * gimple.c (gimple_build_with_ops_stat): Adjust. |
| (gimple_alloc_stat): Remove _stat from name. |
| * gimple.h (gimple_alloc): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (make_tree_vec_stat): Remove _stat from name. |
| (grow_tree_vec_stat): Likewise. |
| * tree.h (make_tree_vec_stat): Adjust prototype. |
| (grow_tree_vec_stat): Likewise. |
| (make_tree_vec): Remove macro. |
| (grow_tree_vec): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * fold-const.c (fold_build1_stat_loc): Adjust. |
| (fold_build2_stat_loc): Likewise. |
| (fold_build3_stat_loc): Likewise. |
| * tree.c (build0_stat): Remove _stat from name. |
| (build1_stat): Likewise. |
| (build2_stat): Likewise. |
| (build3_stat): Likewise. |
| (build4_stat): Likewise. |
| (build5_stat): Likewise. |
| * tree.h (build1_loc): Remove macro, and rename _stat function |
| to this. |
| (build2_loc): Likewise. |
| (build3_loc): Likewise. |
| (build4_loc): Likewise. |
| (build5_loc): Likewise. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (make_int_cst_stat): Remove _stat from name. |
| * tree.h (make_int_cst_stat): Adjust prototype. |
| (make_int_cst): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (make_tre_binfo_stat): Remove _stat from name. |
| * tree.h (make_tree_binfo_stat): Adjust prototype. |
| (make_tree_binfo): Remove. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (copy_node_stat): Rename to copy_node. |
| (build_distinct_type_copy): Adjust. |
| * tree.h (copy_node_stat): Adjust prototype. |
| (copy_node): Remove macro. |
| |
| 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree.c (make_node_stat): rename to make_node. |
| (build_tree_list_stat): Adjust. |
| (build0_stat): Likewise. |
| (build2_stat): Likewise. |
| (build3_stat): Likewise. |
| (build4_stat): Likewise. |
| (build5_stat): Likewise. |
| (build_decl_stat): Likewise. |
| * tree.h (make_node_stat): Adjust prototype. |
| (make_node): remove macro. |
| |
| 2017-07-28 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define. |
| (PPC_FEATURE2_SCV): Likewise. |
| * config/rs6000/rs6000.c (cpu_supports_info): Use them. |
| |
| 2017-07-28 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_internal_mov_immediate): Add new special pattern. |
| * config/aarch64/aarch64.md (*movdi_aarch64): |
| Add reg/32bit const mov case. |
| |
| 2017-07-28 Tamar Christina <tamar.christina@arm.com> |
| Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/aarch64/aarch64.md (mov<mode>): Generalize. |
| (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): |
| Add integer and movi cases. |
| (movi-split-hf-df-sf split, fp16): New. |
| (enabled): Added TARGET_FP_F16INST. |
| * config/aarch64/iterators.md (GPF_HF): New. |
| * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New. |
| |
| 2017-07-28 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_simd_container_mode): Add prototype. |
| (aarch64_expand_mov_immediate): Add HI support. |
| (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New. |
| (aarch64_can_const_movi_rtx_p): New. |
| (aarch64_preferred_reload_class): |
| Remove restrictions of using FP registers for certain SIMD operations. |
| (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves. |
| (aarch64_valid_floating_const): Add integer move validation. |
| (aarch64_simd_imm_scalar_p): Remove. |
| (aarch64_output_scalar_simd_mov_immediate): Generalize function. |
| (aarch64_legitimate_constant_p): Expand list of supported cases. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New. |
| (aarch64_reinterpret_float_as_int): New. |
| (aarch64_simd_imm_scalar_p): Remove. |
| * config/aarch64/constraints.md (Uvi): New. |
| (Dd): Split into Ds and new Dd. |
| * config/aarch64/aarch64.md (*movsi_aarch64): |
| Add SIMD mov case. |
| (*movdi_aarch64): Add SIMD mov case. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c: (struct chain): Handle store-store chain in which |
| stores for elimination only store loop invariant values. |
| (execute_pred_commoning_chain): Ditto. |
| (prepare_initializers_chain_store_elim): Ditto. |
| (prepare_finalizers): Ditto. |
| (is_inv_store_elimination_chain): New function. |
| (initialize_root_vars_store_elim_1): New function. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c: Revise general description of the pass. |
| (enum chain_type): New enum type for store elimination. |
| (struct chain): New field supporting store elimination. |
| (struct component): Ditto. |
| (dump_chain): Dump store-stores chain. |
| (release_chain): Release resources. |
| (split_data_refs_to_components): Compute and create component |
| contains only stores for elimination. |
| (get_chain_last_ref_at): New function. |
| (make_invariant_chain): Initialization. |
| (make_rooted_chain): Specify chain type in parameter and record it. |
| (add_looparound_copies): Skip for store-stores chain. |
| (determine_roots_comp): Compute type of chain and pass it to |
| make_rooted_chain. |
| (initialize_root_vars_store_elim_2): New function. |
| (finalize_eliminated_stores): New function. |
| (remove_stmt): Handle store for elimination. |
| (execute_pred_commoning_chain): Execute predictive commoning on |
| store-store chains. |
| (determine_unroll_factor): Skip unroll for store-stores chain. |
| (prepare_initializers_chain_store_elim): New function. |
| (prepare_initializers_chain): Hanlde store-store chain. |
| (prepare_finalizers_chain, prepare_finalizers): New function. |
| (tree_predictive_commoning_loop): Return integer value indicating |
| if loop is unrolled or lcssa form is corrupted. |
| (tree_predictive_commoning): Rewrite for lcssa form if necessary. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (initialize_root): Delete. |
| (execute_pred_commoning_chain): Initialize root vars and replace |
| reference of non-combined chain directly, rather than call above |
| function. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute |
| memory reference to DR at (NITERS + ITERS)-th iteration of loop. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (struct chain): New field init_seq. |
| (release_chain): Release init_seq. |
| (prepare_initializers_chain): Record intialization stmts in above |
| field. |
| (insert_init_seqs): New function. |
| (tree_predictive_commoning_loop): Call insert_init_seqs. |
| |
| 2017-07-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-predcom.c (determine_roots_comp): Skip trivial components. |
| |
| 2017-07-28 Richard Biener <rguenther@suse.de> |
| |
| * match.pd: Remove superfluous :c. |
| * genmatch.c (simplify::id): Add member. |
| (lower_commutative, lower_opt_convert, lower_cond, lower_for): |
| Copy id. |
| (current_id): New global. |
| (dt_node::parent): Move from ... |
| (dt_operand::parent): ... here. Add for_id member. |
| (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand. |
| (decision_tree::find_node): Relax order requirement when |
| merging DT_TRUE nodes to ones inbetween the current simplify |
| and the one we try to merge with. Add diagnostic whenever |
| we need to enforce pattern order by not merging. |
| (decision_tree::insert): Set current_id. |
| (decision_tree::print_node): Dump parent node and for_id. |
| (parser::last_id): Add member. |
| (parser::push_simplify): Assign unique id. |
| (parser::parser): Initialize last_id. |
| |
| 2017-07-28 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81340 |
| * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after |
| gimple_build_debug_bind. |
| |
| 2017-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81502 |
| * match.pd: Add pattern combining BIT_INSERT_EXPR with |
| BIT_FIELD_REF. |
| * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF |
| size/pos operands. |
| (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos. |
| * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype |
| for BIT_FIELD_REF args. |
| * fold-const.c (make_bit_field_ref): Likewise. |
| * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. |
| |
| 2017-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/80998 |
| * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR. |
| * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. |
| * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW. |
| Or it into SANITIZER_UNDEFINED. |
| * ubsan.c: Include gimple-fold.h and varasm.h. |
| (ubsan_expand_ptr_ifn): New function. |
| (instrument_pointer_overflow): New function. |
| (maybe_instrument_pointer_overflow): New function. |
| (instrument_object_size): Formatting fix. |
| (pass_ubsan::execute): Call instrument_pointer_overflow |
| and maybe_instrument_pointer_overflow. |
| * internal-fn.c (expand_UBSAN_PTR): New function. |
| * ubsan.h (ubsan_expand_ptr_ifn): Declare. |
| * sanitizer.def (__ubsan_handle_pointer_overflow, |
| __ubsan_handle_pointer_overflow_abort): New builtins. |
| * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR. |
| * internal-fn.def (UBSAN_PTR): New internal function. |
| * opts.c (sanitizer_opts): Add pointer-overflow. |
| * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR. |
| * fold-const.c (build_range_check): Compute pointer range check in |
| integral type if pointer arithmetics would be needed. Formatting |
| fixes. |
| |
| 2017-07-28 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81460 |
| * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite |
| parameters that are of a variable-length. |
| |
| 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add |
| rs6000/biarch64.h. |
| * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro. |
| (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. |
| (CRT_CALL_STATIC_FUNCTION): Likewise. |
| (ASM_DEFAULT_SPEC): New define. |
| (ASM_SPEC32): Likewise. |
| (ASM_SPEC64): Likewise. |
| (ASM_SPEC_COMMON): Likewise. |
| (ASM_SPEC): Likewise. |
| (INVALID_64BIT): Likewise. |
| (LINK_OS_DEFAULT_SPEC): Likewise. |
| (LINK_OS_SPEC32): Likewise. |
| (LINK_OS_SPEC64): Likewise. |
| (POWERPC_LINUX): Likewise. |
| (PTRDIFF_TYPE): Likewise. |
| (RESTORE_FP_PREFIX): Likewise. |
| (RESTORE_FP_SUFFIX): Likewise. |
| (SAVE_FP_PREFIX): Likewise. |
| (SAVE_FP_SUFFIX): Likewise. |
| (SIZE_TYPE): Likewise. |
| (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. |
| (TARGET_64BIT): Likewise. |
| (TARGET_64BIT): Likewise. |
| (TARGET_AIX): Likewise. |
| (WCHAR_TYPE_SIZE): Likewise. |
| (WCHAR_TYPE): Undefine. |
| (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines. |
| (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC. |
| (CPP_OS_RTEMS_SPEC): Delete. |
| (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add |
| asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and |
| link_os_spec64. |
| * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs. |
| |
| 2017-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81578 |
| * tree-parloops.c (build_new_reduction): Bail out if |
| reduction_code isn't one of the standard OpenMP reductions. |
| Move the details printing after that decision. |
| |
| 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/predicates.md (volatile_mem_operand): Remove code |
| related to reload_in_progress. |
| (splat_input_operand): Likewise. |
| * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): |
| Delete prototype. |
| * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot |
| field. |
| (TARGET_EXPAND_TO_RTL_HOOK): Delete. |
| (TARGET_INSTANTIATE_DECLS): Likewise. |
| (legitimate_indexed_address_p): Delete reload_in_progress code. |
| (rs6000_debug_legitimate_address_p): Likewise. |
| (rs6000_eliminate_indexed_memrefs): Likewise. |
| (rs6000_emit_le_vsx_store): Likewise. |
| (rs6000_emit_move_si_sf_subreg): Likewise. |
| (rs6000_emit_move): Likewise. |
| (register_to_reg_type): Likewise. |
| (rs6000_pre_atomic_barrier): Likewise. |
| (rs6000_machopic_legitimize_pic_address): Likewise. |
| (rs6000_allocate_stack_temp): Likewise. |
| (rs6000_address_for_fpconvert): Likewise. |
| (rs6000_address_for_altivec): Likewise. |
| (rs6000_secondary_memory_needed_rtx): Delete function. |
| (rs6000_check_sdmode): Likewise. |
| (rs6000_alloc_sdmode_stack_slot): Likewise. |
| (rs6000_instantiate_decls): Likewise. |
| * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete. |
| * config/rs6000/rs6000.md (splitter for *movsi_got_internal): |
| Delete reload_in_progress. |
| (*vec_reload_and_plus_<mptrsize>): Likewise. |
| * config/rs6000/vsx.md (vsx_mul_v2di): Likewise. |
| (vsx_div_v2di): Likewise. |
| (vsx_udiv_v2di): Likewise. |
| |
| 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.opt (mlra): Replace with stub. |
| * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA. |
| * config/rs6000/rs6000.c (TARGET_LRA_P): Delete. |
| (rs6000_debug_reg_global): Delete print of LRA status. |
| (rs6000_option_override_internal): Delete dead LRA related code. |
| (rs6000_lra_p): Delete function. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra. |
| |
| 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). |
| * config/riscv/rtems.h: New file. |
| |
| 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.md |
| (define_split for and<mode>3nr_compare): Move |
| non aarch64_logical_operand to a register. |
| (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non |
| register immediate operand to a register. |
| * config/aarch64/predicates.md (aarch64_mov_imm_operand): New. |
| |
| 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/81564 |
| * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks. |
| |
| 2017-07-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81573 |
| PR tree-optimization/81494 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle |
| multi defuse cycle case. |
| |
| 2017-07-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81571 |
| * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction |
| PHIs. |
| |
| 2017-07-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag |
| earlier and only if MASK_FPU is set. Adjust formatting. |
| |
| 2017-07-27 Martin Liska <mliska@suse.cz> |
| |
| * opt-functions.awk: Add validation of value of Init. |
| * optc-gen.awk: Pass new argument. |
| |
| 2017-07-27 Martin Liska <mliska@suse.cz> |
| |
| * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): |
| Fix wrong condition. |
| |
| 2017-07-27 Martin Liska <mliska@suse.cz> |
| |
| * auto-profile.c (afdo_annotate_cfg): Assign zero counts to |
| BBs and edges seen by autoFDO. |
| |
| 2017-07-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81502 |
| * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR |
| with incompatible but same sized type. |
| (execute_update_addresses_taken): Likewise. |
| |
| 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on |
| flag_tree_loop_vectorize rather than flag_tree_vectorize. |
| |
| 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/81534 |
| * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1") |
| ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"): |
| Change s_operand to memory_operand. |
| |
| 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare. |
| * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with... |
| (rs6000_emit_le_vsx_permute): ...this. Take the destination as input. |
| Emit instructions rather than returning an expression. Handle TFmode |
| and KFmode by casting to TImode. |
| (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute. |
| (rs6000_emit_le_vsx_store): Likewise. |
| * config/rs6000/vsx.md (VSX_TI): New iterator. |
| (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128. |
| (*vsx_le_undo_permute_<mode>): Likewise. |
| (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to |
| emit the split sequence. |
| (*vsx_le_perm_store_<mode>): Likewise. |
| |
| 2017-07-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81555 |
| PR tree-optimization/81556 |
| * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument, |
| if true, force CHANGED for the recursive invocation. |
| (reassociate_bb): Remember original length of ops array, pass |
| len != orig_len as NEXT_CHANGED in rewrite_expr_tree call. |
| |
| * attribs.c (decl_attributes): Imply noinline, noclone and no_icf |
| attributes for noipa attribute. For naked attribute use |
| lookup_attribute first before lookup_attribute_spec. |
| * final.c (rest_of_handle_final): Disable IPA RA for functions with |
| noipa attribute. |
| * ipa-visibility.c (non_local_p): Fix comment typos. Return true |
| for functions with noipa attribute. |
| (cgraph_externally_visible_p): Return true for functions with noipa |
| attribute. |
| * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE |
| for functions with noipa attribute. |
| * doc/extend.texi: Document noipa function attribute. |
| * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p |
| also for functions with noipa attribute. |
| (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute. |
| |
| 2017-07-26 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of |
| vec_unalign_load_cost and vec_unalign_store_cost. |
| |
| 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete |
| -mvsx-small-integer option. |
| (ISA_3_0_MASKS_IEEE): Likewise. |
| (OTHER_VSX_VECTOR_MASKS): Likewise. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify |
| code, only testing for DImode being allowed in non-VSX floating |
| point registers. |
| (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER |
| to TARGET_P8_VECTOR test. Remove redundant VSX test inside of |
| another VSX test. |
| (rs6000_option_override_internal): Delete -mvsx-small-integer. |
| (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to |
| TARGET_P8_VECTOR test. |
| (rs6000_secondary_reload_simple_move): Likewise. |
| (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER, |
| since TARGET_P9_VECTOR was already tested. |
| (rs6000_opt_masks): Remove -mvsx-small-integer. |
| * config/rs6000/vsx.md (vsx_extract_<mode>): Delete |
| TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was |
| used. |
| (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a |
| test for TARGET_VEXTRACTUB was used, and that uses |
| TARGET_P9_VECTOR. |
| (p9 extract splitter): Likewise. |
| (vsx_extract_<mode>_di_p9): Likewise. |
| (vsx_extract_<mode>_store_p9): Likewise. |
| (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test |
| for TARGET_P9_VECTOR was used. Delete code that is now dead with |
| the elimination of TARGET_VSX_SMALL_INTEGER. |
| (vsx_extract_<mode>_p8): Likewise. |
| (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise. |
| (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise. |
| (vsx_set_<mode>_p9): Likewise. |
| (vsx_set_v4sf_p9): Likewise. |
| (vsx_set_v4sf_p9_zero): Likewise. |
| (vsx_insert_extract_v4sf_p9): Likewise. |
| (vsx_insert_extract_v4sf_p9_2): Likewise. |
| * config/rs6000/rs6000.md (sign extend splitter): Change |
| TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test. |
| (floatsi<mode>2_lfiwax_mem): Likewise. |
| (floatunssi<mode>2_lfiwzx_mem): Likewise. |
| (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER, |
| since a test for TARGET_P9_VECTOR was used. |
| (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. |
| (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise. |
| (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. |
| (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to |
| TARGET_P8_VECTOR test. |
| (fix_trunc<mode>si2_stfiwx): Likewise. |
| (fix_trunc<mode>si2_internal): Likewise. |
| (fix_trunc<SFDF:mode><QHI:mode>2): Delete |
| TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was |
| used. |
| (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. |
| (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to |
| TARGET_P8_VECTOR test. |
| (fixuns_trunc<mode>si2_stfiwx): Likewise. |
| (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete |
| TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was |
| used. |
| (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. |
| (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER, |
| since a test for TARGET_P9_VECTOR was used. |
| (splitter for loading small constants): Likewise. |
| |
| 2017-07-26 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.c (thunderx_vector_cost): Fix |
| vec_fp_stmt_cost. |
| |
| 2017-07-26 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81563 |
| * config/i386/i386.c (sp_valid_at): Properly check CFA offset. |
| (fp_valid_at): Likewise. |
| |
| 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove. |
| (qdf24xx_addrcost_table): Likewise. |
| (cortexa57_tunings): Update to use generic_branch_cost. |
| (cortexa72_tunings): Likewise. |
| (cortexa73_tunings): Likewise. |
| (qdf24xx_tunings): Likewise. |
| |
| 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove. |
| (thunderx2t99_branch_cost): Likewise. |
| (cortexa35_tunings): Update to use generic_branch_cost. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (cortexa72_tunings): Likewise. |
| (cortexa73_tunings): Likewise. |
| (thunderx2t99_tunings): Likewise. |
| |
| 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD. |
| (sparc_option_override): Honour MASK_FSMULD. |
| * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD. |
| * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD. |
| * config/sparc/sparc.opt (mfsmuld): New option. |
| * doc/invoke.texi (mfsmuld): Document option. |
| |
| 2017-07-26 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/70992 |
| * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero. |
| |
| 2017-07-26 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c (do_valueize): Return OP if valueize |
| returns NULL_TREE. |
| (get_def): New helper to get at the def stmt of a SSA name |
| if valueize allows. |
| * genmatch.c (dt_node::gen_kids_1): Use get_def instead of |
| do_valueize to get at the def stmt. |
| (dt_operand::gen_gimple_expr): Simplify do_valueize calls. |
| |
| 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/46932 |
| * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp. |
| |
| 2017-07-26 Martin Liska <mliska@suse.cz> |
| |
| PR sanitize/81186 |
| * function.c (expand_function_start): Make expansion of |
| nonlocal_goto_save_area after parm_birth_insn. |
| |
| 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU |
| from all CPU target flags enable members. |
| |
| 2017-07-26 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen): Make iterator vars const. |
| (decision_tree::gen): Make 'type' const. |
| (write_predicate): Likewise. |
| |
| 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): |
| Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_expand_vector_set): Likewise. |
| * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete. |
| (TARGET_UPPER_REGS_SF): Likewise. |
| (TARGET_UPPER_REGS_DI): Likewise. |
| (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}. |
| (TARGET_DIRECT_MOVE_64BIT): Likewise. |
| * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise. |
| (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. |
| (Splitters for DI constants in Altivec registers): Likewise. |
| * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise. |
| (vsx_set_v4sf_p9): Likewise. |
| (vsx_set_v4sf_p9_zero): Likewise. |
| (vsx_insert_extract_v4sf_p9): Likewise. |
| (vsx_insert_extract_v4sf_p9_2): Likewise. |
| |
| 2017-07-25 Carl Love <cel@us.ibm.com> |
| |
| * doc/extend.texi: Update the built-in documentation file for the |
| existing built-in functions |
| vector signed char vec_cnttz (vector signed char); |
| vector unsigned char vec_cnttz (vector unsigned char); |
| vector signed short vec_cnttz (vector signed short); |
| vector unsigned short vec_cnttz (vector unsigned short); |
| vector signed int vec_cnttz (vector signed int); |
| vector unsigned int vec_cnttz (vector unsigned int); |
| vector signed long long vec_cnttz (vector signed long long); |
| vector unsigned long long vec_cnttz (vector unsigned long long); |
| |
| 2017-07-25 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory |
| accesses where the use is for the first operand of a BIT_INSERT. |
| |
| 2017-07-25 Jim Wilson <jim.wilson@linaro.org> |
| |
| PR bootstrap/81521 |
| * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look |
| for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. |
| |
| 2017-07-25 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/i386/gstabs.h: Delete. |
| * config/i386/openbsd.h, config/i386/t-openbsd: Likewise. |
| |
| 2017-07-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_decompose_address): Do not check for |
| register RTX when looking at index_reg or base_reg. |
| * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx. |
| |
| 2017-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace |
| to update EH info here. |
| |
| 2017-07-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2). |
| |
| 2017-07-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST. |
| |
| 2017-07-25 Torsten Duwe <duwe@suse.de> |
| |
| * common.opt: Introduce -fpatchable-function-entry |
| command line option, and its variables function_entry_patch_area_size |
| and function_entry_patch_area_start. |
| * opts.c (common_handle_option): Add -fpatchable_function_entry_ case, |
| including a two-value parser. |
| * target.def (print_patchable_function_entry): New target hook. |
| * targhooks.h (default_print_patchable_function_entry): New function. |
| * targhooks.c (default_print_patchable_function_entry): Likewise. |
| * toplev.c (process_options): Switch off IPA-RA if |
| patchable function entries are being generated. |
| * varasm.c (assemble_start_function): Look at the |
| patchable-function-entry command line switch and current |
| function attributes and maybe generate NOP instructions by |
| calling the print_patchable_function_entry hook. |
| * doc/extend.texi: Document patchable_function_entry attribute. |
| * doc/invoke.texi: Document -fpatchable_function_entry |
| command line option. |
| * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): |
| New target hook. |
| * doc/tm.texi: Re-generate. |
| |
| 2017-07-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81532 |
| * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for |
| TARGET_AVX512DQ rather than TARGET_AVX512BW. |
| |
| 2017-07-25 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/parsecpu.awk (all_cores): Remove duplicates. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81455 |
| * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to |
| not walk in cycles when looking for guards. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81529 |
| * tree-vect-stmts.c (process_use): Disregard live induction PHIs |
| when optimizing backedge uses. |
| |
| 2017-07-25 David Edelsohn <dje.gcc@gmail.com> |
| |
| * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote |
| character for AIX. |
| * dwarf2out.c (output_macinfo): Copy debug_line_section_label |
| to dl_section_ref. On AIX, append an expression to subtract |
| the size of the section length to dl_section_ref. |
| |
| 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * configure.ac: If any of the config.* scripts fail, exit 1. |
| * configure: Regenerate. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81546 |
| * tree-ssa-operands.c (verify_imm_links): Remove cap on number |
| of immediate uses, be more verbose on errors. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81510 |
| * tree-vect-loop.c (vect_is_simple_reduction): When the |
| reduction stmt is not inside the loop bail out. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81303 |
| * tree-vect-loop-manip.c (vect_loop_versioning): Build |
| profitability check against LOOP_VINFO_NITERSM1. |
| |
| 2017-07-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| * domwalk.c (cmp_bb_postorder): Simplify. |
| (sort_bbs_postorder): New function. Use it... |
| (dom_walker::walk): ...here to optimize common cases. |
| |
| 2017-07-25 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/81520 |
| * ipa-visibility.c (function_and_variable_visibility): Make the |
| redirection just on target that supports aliasing. |
| Fix GNU coding style. |
| |
| 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| PR libgcc/61152 |
| * config/aarch64/rtems.h: Add GCC Runtime Library Exception. |
| Format changes. |
| * config/arm/rtems.h: Likewise. |
| * config/bfin/rtems.h: Likewise. |
| * config/i386/rtemself.h: Likewise. |
| * config/lm32/rtems.h: Likewise. |
| * config/m32c/rtems.h: Likewise. |
| * config/m68k/rtemself.h: Likewise. |
| * config/microblaze/rtems.h: Likewise. |
| * config/mips/rtems.h: Likewise. |
| * config/moxie/rtems.h: Likewise. |
| * config/nios2/rtems.h: Likewise. |
| * config/powerpcspe/rtems.h: Likewise. |
| * config/rs6000/rtems.h: Likewise. |
| * config/rtems.h: Likewise. |
| * config/sh/rtems.h: Likewise. |
| * config/sh/rtemself.h: Likewise. |
| * config/sparc/rtemself.h: Likewise. |
| |
| 2017-07-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR 81487 |
| * hsa-brig.c (brig_init): Use xasprintf instead of asprintf. |
| * gimple-pretty-print.c (dump_profile, dump_probability): Same. |
| * tree-ssa-structalias.c (alias_get_name): Same. |
| |
| 2017-07-25 Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/81414 |
| * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac |
| instructions if no du chain is found. |
| |
| 2017-07-25 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE. |
| |
| 2017-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81505 |
| * fold-const.c (fold_negate_const): TREE_OVERFLOW should be |
| sticky. |
| |
| 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete |
| upper-regs options. |
| (ISA_2_7_MASKS_SERVER): Likewise. |
| (ISA_3_0_MASKS_IEEE): Likewise. |
| (OTHER_P8_VECTOR_MASKS): Likewise. |
| (OTHER_VSX_VECTOR_MASKS): Likewise. |
| (POWERPC_MASKS): Likewise. |
| (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a |
| duplicate list of options. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove |
| explicit -mupper-regs options. |
| * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete |
| -mupper-regs* options. Delete -mvsx-scalar-memory, which was an |
| alias for -mupper-regs-df. |
| * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. |
| (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_opt_masks): Likewise. |
| * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs |
| options in terms of whether -mvsx or -mpower8-vector was used. |
| (TARGET_UPPER_REGS_DI): Likewise. |
| (TARGET_UPPER_REGS_SF): Likewise. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the |
| -mupper-regs-* options. |
| |
| 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * passes.c (emergency_dump_function): Print some empty lines and a |
| header before the RTL dump. |
| |
| 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL. |
| |
| 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/79041 |
| * config/aarch64/aarch64.c (aarch64_classify_symbol): |
| Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals. |
| |
| 2017-07-24 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for built-in functions |
| vector float vec_extract_fp32_from_shorth (vector unsigned short); |
| vector float vec_extract_fp32_from_shortl (vector unsigned short); |
| * config/rs6000/altivec.h (vec_extract_fp_from_shorth, |
| vec_extract_fp_from_shortl): Add defines for the two builtins. |
| * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH, |
| VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1 |
| new builtins. |
| * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn. |
| (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in function. |
| |
| 2017-07-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/81521 |
| * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS |
| documentation. |
| * doc/generic.texi: Likewise. |
| * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look |
| for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. |
| |
| 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New. |
| (aarch64_mls_elt_merge<mode>): Likewise. |
| |
| 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not |
| having __cxa_atexit. |
| |
| 2017-07-23 Michael Collison <michael.collison@arm.com> |
| |
| * config/arm/arm.c (arm_option_override): Deprecate |
| use of -mstructure-size-boundary. |
| * config/arm/arm.opt: Deprecate -mstructure-size-boundary. |
| * doc/invoke.texi: Deprecate -mstructure-size-boundary. |
| |
| 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/80695 |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): |
| Reduce cost estimate for direct moves. |
| |
| 2017-07-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80569 |
| * config/i386/i386.c (ix86_option_override_internal): Disable |
| BMI, BMI2 and TBM instructions for -m16. |
| |
| 2017-07-21 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, |
| ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, |
| builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. |
| * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, |
| VMULOSW): New enum "unspec" values. |
| (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, |
| altivec_vmulosw): New patterns. |
| * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, |
| VMULOSW): Add definitions. |
| |
| 2017-07-21 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA. |
| (qdf24xx): Likewise. |
| * config/aarch64/aarch64-options-extensions.def (rdma); New. |
| * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New. |
| (AARCH64_FL_V8_1): Renumber. |
| (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA. |
| (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA. |
| * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a. |
| * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add |
| rdma to feature modifiers list. |
| |
| 2017-07-21 Yury Gribov <tetra2005@gmail.com> |
| |
| PR middle-end/56727 |
| * ipa-visibility (function_and_variable_visibility): Convert |
| recursive PLT call to direct call if appropriate. |
| |
| 2017-07-21 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's |
| operand 1 to see if the types precision matches. |
| * fold-const.c (operand_equal_p): Likewise. |
| |
| 2017-07-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81303 |
| * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass |
| in datarefs vector. Allow NULL dr0 for no peeling cost estimate. |
| (vect_peeling_hash_get_lowest_cost): Adjust. |
| (vect_enhance_data_refs_alignment): Likewise. Use |
| vect_get_peeling_costs_all_drs to compute the penalty for no |
| peeling to match up costs. |
| |
| 2017-07-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81500 |
| * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if |
| we didn't identify a reduction path. |
| |
| 2017-07-21 Tom de Vries <tom@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| PR gcov-profile/81442 |
| * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge |
| probabilities. |
| |
| 2017-07-21 Tom de Vries <tom@codesourcery.com> |
| |
| PR lto/81430 |
| * config/nvptx/nvptx.c (nvptx_override_options_after_change): New |
| function. |
| (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to |
| nvptx_override_options_after_change. |
| |
| 2017-07-21 Ulrich Drepper <drepper@redhat.com> |
| |
| * dwarf2out.c (output_file_names): Avoid double testing for |
| dwarf_version >= 5. |
| |
| 2017-07-21 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/invoke.texi (AVR Built-in Functions): Re-layout section. |
| |
| 2016-07-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across |
| hot/cold regions. |
| (try_crossjump_to_edge): Do not punt on partitioned functions. |
| |
| 2016-07-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): |
| Put all BBs reachable only via paths crossing cold region to cold |
| region. |
| * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function. |
| |
| 2016-07-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81303 |
| * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take |
| into account prologue and epilogue iterations when raising |
| min_profitable_iters to sth at least covering one vector iteration. |
| |
| 2017-07-21 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm.c (arm_test_cpu_arch_dat): |
| Check for overlap. |
| |
| 2017-07-20 Nathan Sidwell <nathan@acm.org> |
| |
| Remove TYPE_METHODS. |
| * tree.h (TYPE_METHODS): Delete. |
| * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS. |
| * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs. |
| (dbxout_type_methods): Scan TYPE_FIELDS. |
| (dbxout_type): Don't check TYPE_METHODS here. |
| * function.c (use_register_for_decl): Always ignore register for |
| class types when not optimizing. |
| * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan. |
| * tree.c (free_lang_data_in_type): Stitch out member functions and |
| templates from TYPE_FIELDS. |
| (build_distinct_type_copy, verify_type_variant, |
| verify_type): Member fns are on TYPE_FIELDS. |
| * tree-dump.c (dequeue_and_dump): No TYPE_METHODS. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| |
| 2017-07-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80846 |
| * config/i386/i386.c (ix86_expand_vector_init_general): Handle |
| V2TImode and V4TImode. |
| (ix86_expand_vector_extract): Likewise. |
| * config/i386/sse.md (VMOVE): Enable V4TImode even for just |
| TARGET_AVX512F, instead of only for TARGET_AVX512BW. |
| (ssescalarmode): Handle V4TImode and V2TImode. |
| (VEC_EXTRACT_MODE): Add V4TImode and V2TImode. |
| (*vec_extractv2ti, *vec_extractv4ti): New insns. |
| (VEXTRACTI128_MODE): New mode iterator. |
| (splitter for *vec_extractv?ti first element): New. |
| (VEC_INIT_MODE): New mode iterator. |
| (vec_init<mode>): Consolidate 3 expanders into one using |
| VEC_INIT_MODE mode iterator. |
| |
| 2017-07-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| * lra-assigns.c (pseudo_compare_func): Fix comparison step based on |
| non_spilled_static_chain_regno_p. |
| |
| 2017-07-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos. |
| |
| 2017-07-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (connect_traces): Allow copying of blocks within |
| single partition. |
| |
| 2017-07-20 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (gimple_phi_result): Add gphi * overload. |
| (gimple_phi_result_ptr): Likewise. |
| (gimple_phi_arg): Likewise. Adjust index assert to only |
| allow actual argument accesses rather than all slots available |
| by capacity. |
| (gimple_phi_arg_def): Add gphi * overload. |
| * tree-phinodes.c (make_phi_node): Initialize only actual |
| arguments. |
| (resize_phi_node): Clear memory not covered by old node, |
| do not initialize excess argument slots. |
| (reserve_phi_args_for_new_edge): Initialize new argument slot |
| completely. |
| |
| 2017-07-20 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81388 |
| Revert r238585: |
| 2016-07-21 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up |
| by removing computation of may_be_zero. |
| |
| 2017-07-18 Jan Hubicka <hubicka@ucw.cz> |
| Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/81030 |
| * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note |
| when gimple level profile disagrees with what RTL expander did. |
| |
| 2017-07-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/61171 |
| * tree-vectorizer.h (slp_instance): Add reduc_phis member. |
| (vect_analyze_stmt): Add slp instance parameter. |
| (vectorizable_reduction): Likewise. |
| * tree-vect-loop.c (vect_analyze_loop_operations): Adjust. |
| (vect_is_simple_reduction): Deal with chains not detected |
| as SLP reduction chain, specifically not properly associated |
| chains containing a mix of plus/minus. |
| (get_reduction_op): Remove. |
| (get_initial_defs_for_reduction): Simplify, pass in whether |
| this is a reduction chain, pass in the SLP node for the PHIs. |
| (vect_create_epilog_for_reduction): Get the SLP instance as |
| arg and adjust. |
| (vectorizable_reduction): Get the SLP instance as arg. |
| During analysis remember the SLP node with the PHIs in the |
| instance. Simplify getting at the vectorized reduction PHIs. |
| * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass |
| through SLP instance. |
| (vect_slp_analyze_operations): Likewise. |
| * tree-vect-stms.c (vect_analyze_stmt): Likewise. |
| (vect_transform_stmt): Likewise. |
| |
| 2017-07-20 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/81489 |
| * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move |
| read of phi arg location to before loop that modifies phi. |
| |
| 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): |
| New pattern. |
| |
| 2017-07-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/81331 |
| * except.c (execute): Fix ordering issue. |
| |
| 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/81423 |
| * combine.c (make_compound_operation_int): Don't try to optimize |
| the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical. |
| |
| 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/81423 |
| * simplify-rtx.c (simplify_truncation): Handle truncating an IOR |
| with a constant that is -1 in the truncated to mode. |
| |
| 2017-07-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (propagate_unlikely_bbs_forward): Break out from ... |
| (determine_unlikely_bbs): ... here. |
| * predict.h (propagate_unlikely_bbs_forward): Declare. |
| * cfgexpand.c (pass_expand::execute): Use it. |
| * bb-reorder.c (sanitize_hot_paths): Do not consider known to be |
| unlikely edges. |
| (find_rarely_executed_basic_blocks_and_crossing_edges): Use |
| propagate_unlikely_bbs_forward. |
| |
| 2017-07-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/81331 |
| * except.c (maybe_add_nop_after_section_switch): New function. |
| (execute): Use it. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * gimple.h (gimple_phi_set_arg): Make assert more strict. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * gimple.h (gimple_phi_arg): Make assert more strict. |
| |
| 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config.gcc (powerpc*-*-*): Add mmintrin.h. |
| * config/rs6000/mmintrin.h: New file. |
| * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h. |
| |
| 2017-07-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81346 |
| * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.md (VECIM): Add V2DI. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx-modes.def: Add V2DImode. |
| * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. |
| * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. |
| (nvptx_output_mov_insn): Handle lack of mov.b128. |
| (nvptx_print_operand): Handle 'H' and 'L' codes. |
| (nvptx_vector_mode_supported): Allow V2DImode. |
| (nvptx_preferred_simd_mode): New function. |
| (nvptx_data_alignment): New function. |
| (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to |
| nvptx_preferred_simd_mode. |
| * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from |
| 64 to 128 bits. |
| (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx-modes.def: New file. Add V2SImode. |
| * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. |
| (nvptx_vector_mode_supported): New function. Allow V2SImode. |
| (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. |
| * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. |
| (mov<VECIM>_insn): New define_insn. |
| (define_expand "mov<VECIM>): New define_expand. |
| |
| 2017-07-19 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. |
| |
| 2017-07-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81346 |
| * fold-const.h (fold_div_compare, range_check_type): Declare. |
| * fold-const.c (range_check_type): New function. |
| (build_range_check): Use range_check_type. |
| (fold_div_compare): No longer static, rewritten into |
| a match.pd helper function. |
| (fold_comparison): Don't call fold_div_compare here. |
| * match.pd (X / C1 op C2): New optimization using fold_div_compare |
| as helper function. |
| |
| 2017-07-19 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... |
| (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. |
| * tree.c (find_decls_types_r, verify_type): Use |
| TYPE_{MIN,MAX}_VALUE_RAW. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. |
| (hash_tree): Likewise. |
| * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): |
| Likewise. |
| * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): |
| Likewise. |
| |
| 2017-07-18 Tom de Vries <tom@codesourcery.com> |
| |
| PR middle-end/81464 |
| * omp-expand.c (expand_omp_for_static_chunk): Handle |
| equal-argument loop exit phi. |
| |
| 2017-07-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81471 |
| * config/i386/i386.md (rorx_immediate_operand): New mode attribute. |
| (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as |
| operand 2 predicate. |
| (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as |
| operand 2 predicate. |
| (ror,rol -> rorx splitters): Use const_int_operand as |
| operand 2 predicate. |
| |
| 2017-06-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81410 |
| * tree-vect-stmts.c (vectorizable_load): Properly adjust for |
| the gap in the ! slp_perm SLP case after each group. |
| |
| 2017-07-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/81463 |
| * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency |
| again. |
| |
| 2017-07-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/81462 |
| * predict.c (set_even_probabilities): Cleanup; do not affect |
| probabilities that are already known. |
| (combine_predictions_for_bb): Call even when count is set. |
| |
| 2017-07-18 Nathan Sidwell <nathan@acm.org> |
| |
| * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use |
| TYPE_MAX_VALUE. |
| |
| 2017-07-18 Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/81408 |
| * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed |
| optimization for loop niter analysis. |
| |
| 2017-07-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81473 |
| * config/avr/avr.c (avr_optimize_casesi): Don't use |
| INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. |
| |
| 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove |
| body_cost_vec from _vect_peel_extended_info. |
| (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. |
| (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and |
| npeel. |
| |
| 2017-07-18 Bin Cheng <bin.cheng@arm.com> |
| |
| * config/arm/arm.c (emit_unlikely_jump): Remove unused var. |
| |
| 2017-07-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80620 |
| PR tree-optimization/81403 |
| * tree-ssa-pre.c (phi_translate_1): Clear range and points-to |
| info when re-using a VN table entry. |
| |
| 2017-07-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81418 |
| * tree-vect-loop.c (vectorizable_reduction): Properly compute |
| vectype_in. Verify that with lane-reducing reduction operations |
| we have a single def-use cycle. |
| |
| 2017-07-17 Carl Love <cel@us.ibm.com> |
| |
| Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, |
| ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, |
| builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. |
| * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, |
| VMULOSW): New enum "unspec" values. |
| (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, |
| vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, |
| altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, |
| altivec_vmulosw): New patterns. |
| * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, |
| VMULOSW): Add definitions. |
| |
| 2017-07-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c: Include predict.h. |
| |
| 2017-07-17 Yury Gribov <tetra2005@gmail.com> |
| |
| * tree-vrp.c (compare_assert_loc): Fix comparison function |
| to return predictable results. |
| |
| 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (adddi3): Remove support for mexpand-adddi |
| option. |
| (subdi3): Likewise. |
| * config/arc/arc.opt (mexpand-adddi): Deprecate it. |
| * doc/invoke.texi (mexpand-adddi): Update text. |
| |
| 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction |
| that also clobbers the CC register. The old expand code is moved |
| to ... |
| (*arc_clzsi2): ... here. |
| (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers |
| the CC register. The old expand code is moved to ... |
| (arc_ctzsi2): ... here. |
| |
| 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.opt (mindexed-loads): Use initial value |
| TARGET_INDEXED_LOADS_DEFAULT. |
| (mauto-modify-reg): Use initial value |
| TARGET_AUTO_MODIFY_REG_DEFAULT. |
| * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define. |
| (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. |
| * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define. |
| (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. |
| |
| 2017-07-17 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81302 |
| * opts.c (finish_options): Do not allow -fgnu-tm |
| w/ -fsanitize={kernel-,}address. Say sorry. |
| |
| 2017-07-17 Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/81369 |
| * tree-loop-distribution.c (classify_partition): Only assert on |
| numer of iterations. |
| (merge_dep_scc_partitions): Delete prameter. Update function call. |
| (distribute_loop): Remove code handling loop with unknown niters. |
| (pass_loop_distribution::execute): Skip loop with unknown niters. |
| |
| 2017-07-17 Bin Cheng <bin.cheng@arm.com> |
| |
| PR target/81369 |
| * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to |
| function sort_partitions_by_post_order. |
| |
| 2017-07-17 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81374 |
| * tree-loop-distribution.c (pass_loop_distribution::execute): Record |
| the max index of basic blocks, rather than number of basic blocks. |
| |
| 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove |
| proto. |
| (arc_legitimate_pic_operand_p): Likewise. |
| * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove |
| function. |
| (arc_needs_pcl_p): Likewise. |
| (arc_legitimate_pc_offset_p): Likewise. |
| (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this |
| function is also used in constrains.md. |
| (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to |
| validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and |
| PLUS. Only return true/false in known cases, otherwise assert. |
| (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it |
| is already called in arc_legitimate_constant_p. |
| * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for |
| pic addresses. |
| (LEGITIMATE_PIC_OPERAND_P): Use |
| arc_raw_symbolic_reference_mentioned_p function. |
| * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p |
| function. |
| (Cal): Likewise. |
| (C32): Likewise. |
| |
| 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> |
| Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc-protos.h (arc_compute_function_type): Change prototype. |
| (arc_return_address_register): New function. |
| * config/arc/arc.c (arc_handle_fndecl_attribute): New function. |
| (arc_handle_fndecl_attribute): Add naked attribute. |
| (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. |
| (TARGET_WARN_FUNC_RETURN): Likewise. |
| (arc_allocate_stack_slots_for_args): New function. |
| (arc_warn_func_return): Likewise. |
| (machine_function): Change type fn_type. |
| (arc_compute_function_type): Consider new naked function type, |
| change function return type. |
| (arc_must_save_register): Adapt to handle new |
| arc_compute_function_type's return type. |
| (arc_expand_prologue): Likewise. |
| (arc_expand_epilogue): Likewise. |
| (arc_return_address_regs): Delete. |
| (arc_return_address_register): New function. |
| (arc_epilogue_uses): Use above function. |
| * config/arc/arc.h (arc_return_address_regs): Delete prototype. |
| (arc_function_type): Change encoding, add naked type. |
| (ARC_INTERRUPT_P): Change to handle the new encoding. |
| (ARC_FAST_INTERRUPT_P): Likewise. |
| (ARC_NORMAL_P): Define. |
| (ARC_NAKED_P): Likewise. |
| (arc_compute_function_type): Delete prototype. |
| * config/arc/arc.md (in_ret_delay_slot): Use |
| arc_return_address_register function. |
| (simple_return): Likewise. |
| (p_return_i): Likewise. |
| |
| 2017-07-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81428 |
| * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1 |
| can't be built for those types. |
| |
| 2017-07-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| Remove stuff dead since r239246. |
| |
| * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto. |
| * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str) |
| (avr_inform_devices): Remove dead stuff. |
| |
| 2017-07-17 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h: Fix softp typo. |
| |
| 2017-07-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81365 |
| * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting |
| aggregate moves onto bb predecessor edges, make sure there are no |
| loads that could alias the lhs in between the start of bb and the |
| loads from *phi. |
| |
| 2017-07-17 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR 80929 |
| * config/avr/avr.c (avr_mul_highpart_cost): New static function. |
| (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost. |
| [LSHIFTRT, outer_code = TRUNCATE]: Same. |
| |
| 2017-07-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81396 |
| * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field. |
| (init_symbolic_number): Initialize it to 1. |
| (perform_symbolic_merge): Add n_ops from both operands into the new |
| n_ops. |
| (find_bswap_or_nop): Don't consider n->n == cmpnop computations |
| without base_addr as useless if they need more than one operation. |
| (bswap_replace): Handle !bswap case for NULL base_addr. |
| |
| 2017-07-17 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/81069 |
| * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late |
| as possible. |
| |
| 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add |
| conditional builtin define __FIX_LEON3FT_B2BST. |
| |
| 2017-07-17 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace |
| MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc |
| with -mfix-ut700. |
| |
| 2017-07-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/81424 |
| * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg |
| to remove potential trapping from operands if -fnon-call-exceptions. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use |
| profile_proability for scalling. |
| * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE |
| fixpoint arithmetics. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE |
| fixpoint arithmetics. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE |
| fixpoint arithmetics. |
| |
| 2017-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.h (profile_probability::from_reg_br_prob_note, |
| profile_probability::to_reg_br_prob_note): New functions. |
| * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation. |
| * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs. |
| * predict.c (probability_reliable_p): Update. |
| (edge_probability_reliable_p): Update. |
| (br_prob_note_reliable_p): Update. |
| (invert_br_probabilities): Update. |
| (add_reg_br_prob_note): New function. |
| (combine_predictions_for_insn): Update. |
| * asan.c (asan_clear_shadow): Update. |
| * cfgbuild.c (compute_outgoing_frequencies): Update. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Update. |
| (update_br_prob_note): Update. |
| (rtl_verify_edges): Update. |
| (purge_dead_edges): Update. |
| (fixup_reorder_chain): Update. |
| * emit-rtl.c (try_split): Update. |
| * ifcvt.c (cond_exec_process_insns): Update. |
| (cond_exec_process_if_block): Update. |
| (dead_or_predicable): Update. |
| * internal-fn.c (expand_addsub_overflow): Update. |
| (expand_neg_overflow): Update. |
| (expand_mul_overflow): Update. |
| * loop-doloop.c (doloop_modify): Update. |
| * loop-unroll.c (compare_and_jump_seq): Update. |
| * optabs.c (emit_cmp_and_jump_insn_1): Update. |
| * predict.h: Update. |
| * reorg.c (mostly_true_jump): Update. |
| * rtl.h: Update. |
| * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update. |
| * config/alpha/alpha.c (emit_unlikely_jump): Update. |
| * config/arc/arc.c: (emit_unlikely_jump): Update. |
| * config/arm/arm.c: (emit_unlikely_jump): Update. |
| * config/bfin/bfin.c (cbranch_predicted_taken_p): Update. |
| * config/frv/frv.c (frv_print_operand_jump_hint): Update. |
| * config/i386/i386.c (ix86_expand_split_stack_prologue): Update. |
| (ix86_print_operand): Update. |
| (ix86_split_fp_branch): Update. |
| (predict_jump): Update. |
| * config/ia64/ia64.c (ia64_print_operand): Update. |
| * config/mmix/mmix.c (mmix_print_operand): Update. |
| * config/powerpcspe/powerpcspe.c (output_cbranch): Update. |
| (rs6000_expand_split_stack_prologue): Update. |
| * config/rs6000/rs6000.c: Update. |
| * config/s390/s390.c (s390_expand_vec_strlen): Update. |
| (s390_expand_vec_movstr): Update. |
| (s390_expand_cs_tdsi): Update. |
| (s390_expand_split_stack_prologue): Update. |
| * config/sh/sh.c (sh_print_operand): Update. |
| (expand_cbranchsi4): Update. |
| (expand_cbranchdi4): Update. |
| * config/sparc/sparc.c (output_v9branch): Update. |
| * config/spu/spu.c (get_branch_target): Update. |
| (ea_load_store_inline): Update. |
| * config/tilegx/tilegx.c (cbranch_predicted_p): Update. |
| * config/tilepro/tilepro.c: Update. |
| |
| 2017-07-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimplify.c (mostly_copy_tree_r): Revert latest change. |
| (gimplify_save_expr): Likewise. |
| |
| 2017-07-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-visibility.c (function_and_variable_visibility): Fix pasto. |
| |
| 2017-07-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use |
| TV_IPA_FNSUMMARY. |
| * timevar.def (TV_IPA_FNSUMMARY): Define. |
| |
| 2017-07-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back |
| to back store errata sensitive sequence from being generated. |
| (sqrtdf2_fix): Likewise. |
| |
| 2017-07-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-threadupdate.c (compute_path_counts, |
| update_joiner_offpath_counts): Use profile_probability. |
| |
| 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| Revert: |
| 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-c.c (arm_cpu_builtins): Define |
| __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. |
| |
| 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| array entries to represent __ieee128 versions of the |
| scalar_test_data_class, scalar_test_neg, scalar_extract_exp, |
| scalar_extract_sig, and scalar_insert_exp built-in functions. |
| (altivec_resolve_overloaded_builtin): Add special case handling |
| for the __builtin_scalar_insert_exp function, as represented by |
| the P9V_BUILTIN_VEC_VSIEDP constant. |
| * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract |
| exponent support for __ieee128 argument. |
| (VSESQP): Add scalar extract signature support for __ieee128 |
| argument. |
| (VSTDCNQP): Add scalar test negative support for __ieee128 |
| argument. |
| (VSIEQP): Add scalar insert exponent support for __int128 argument |
| with __ieee128 result. |
| (VSIEQPF): Add scalar insert exponent support for __ieee128 |
| argument with __ieee128 result. |
| (VSTDCQP): Add scalar test data class support for __ieee128 |
| argument. |
| (VSTDCNQP): Add overload support for scalar test negative with |
| __ieee128 argument. |
| (VSTDCQP): Add overload support for scalar test data class |
| __ieee128 argument. |
| * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace |
| UNSPEC_VSX_SXSIGDP. |
| (UNSPEC_VSX_SIEXPQP): New constant. |
| (xsxexpqp): New insn for VSX scalar extract exponent quad |
| precision. |
| (xsxsigqp): New insn for VSX scalar extract significand quad |
| precision. |
| (xsiexpqpf): New insn for VSX scalar insert exponent quad |
| precision with floating point argument. |
| (xststdcqp): New expand for VSX scalar test data class quad |
| precision. |
| (xststdcnegqp): New expand for VSX scalar test negative quad |
| precision. |
| (xststdcqp): New insn to match expansions for VSX scalar test data |
| class quad precision and VSX scalar test negative quad precision. |
| * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add |
| special case operand checking to enforce that second operand of |
| VSX scalar test data class with quad precision argument is a 7-bit |
| unsigned literal. |
| * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add |
| prototypes and descriptions of __ieee128 versions of |
| scalar_extract_exp, scalar_extract_sig, scalar_insert_exp, |
| scalar_test_data_class, and scalar_test_neg built-in functions. |
| |
| 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/81162 |
| * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't |
| replace a negate with an add. |
| |
| 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/invoke.texi (arm/-mcpu): Document +crypto. |
| |
| 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-c.c (arm_cpu_builtins): Define |
| __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. |
| |
| 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-r52): Add new entry. |
| (armv8-r): Set ARM Cortex-R52 as default CPU. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM |
| Cortex-R52. |
| * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp |
| extension for -mcpu=cortex-r52. |
| |
| 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator. |
| (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32. |
| * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5. |
| (fp-armv8): Define it as FP_ARMv8 only. |
| config/arm/arm.h (TARGET_FPU_ARMV8): Delete. |
| (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than |
| TARGET_FPU_ARMV8. |
| config/arm/arm.c (arm_rtx_costs_internal): Replace checks against |
| TARGET_FPU_ARMV8 by checks against TARGET_VFP5. |
| * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define |
| first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather |
| than TARGET_FPU_ARMV8. |
| * config/arm/arm-c.c (arm_cpu_builtins): Likewise for |
| __ARM_FEATURE_NUMERIC_MAXMIN macro definition. |
| * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than |
| TARGET_FPU_ARMV8. |
| * config/arm/neon.md (neon_vrint): Likewise. |
| (neon_vcvt): Likewise. |
| (neon_<fmaxmin_op><mode>): Likewise. |
| (<fmaxmin><mode>3): Likewise. |
| * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise. |
| * config/arm/predicates.md (arm_cond_move_operator): Check against |
| TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing. |
| |
| 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_print_operand): Move comments |
| to top of function. |
| |
| 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to |
| loop in comment with memset. |
| |
| 2017-07-14 Martin Liska <mliska@suse.cz> |
| |
| * cfgexpand.c (expand_gimple_basic_block): Remove dead comment. |
| * dwarf2out.c (is_java): Remove the function. |
| (output_pubname): Remove usage of the function. |
| (lower_bound_default): Remove usage of DW_LANG_Java. |
| (gen_compile_unit_die): Likewise. |
| * gcc.c: Remove compiler defaults for .java and .zip files. |
| * gimple-expr.c (remove_suffix): Change as there's no longer |
| extension than 4-letter one. |
| * gimplify.c (mostly_copy_tree_r): Remove Java-special part. |
| (gimplify_save_expr): Likewise. |
| * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment |
| as it's possible even for other languages than Java. |
| * langhooks.h (struct lang_hooks): Remove Java from a comment. |
| * lto-opts.c (lto_write_options): Remove reference to Java. |
| * opts.c (strip_off_ending): Update file extension handling. |
| * tree-cfg.c (verify_gimple_call): Remove comment with Java. |
| * tree-eh.c (lower_resx): Likewise. |
| * tree.c (free_lang_data_in_type): Remove dead code. |
| (find_decls_types_r): Likewise. |
| (build_common_builtin_nodes): Remove Java from a comment. |
| (verify_type): Remove dead code. |
| * varasm.c (assemble_external): Remove Java from a comment. |
| |
| 2017-07-14 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (finish_options): Add quotes. |
| (common_handle_option): Likewise. |
| |
| 2017-07-14 Martin Liska <mliska@suse.cz> |
| |
| * dbxout.c (get_lang_number): Do not handle GNU Pascal. |
| * dbxout.h (extern void dbxout_stab_value_internal_label_diff): |
| Remove N_SO_PASCAL. |
| * dwarf2out.c (lower_bound_default): Do not handle |
| DW_LANG_Pascal83. |
| (gen_compile_unit_die): Likewise. |
| * gcc.c: Remove default extension binding for GNU Pascal. |
| * stmt.c: Remove Pascal language from a comment. |
| * xcoffout.c: Likewise. |
| |
| 2017-07-13 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/81405 |
| * diagnostic-show-locus.c (fixit_cmp): New function. |
| (layout::layout): Sort m_fixit_hints. |
| (column_range::column_range): Assert that the values are valid. |
| (struct char_span): New struct. |
| (correction::overwrite): New method. |
| (struct source_line): New struct. |
| (line_corrections::add_hint): Add assertions. Reimplement memcpy |
| calls in terms of classes source_line and char_span, and |
| correction::overwrite. |
| (selftest::test_overlapped_fixit_printing_2): New function. |
| (selftest::diagnostic_show_locus_c_tests): Call it. |
| |
| 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return |
| early if there is no lhs. |
| |
| 2017-07-13 Martin Liska <mliska@suse.cz> |
| |
| * dwarf2out.c (gen_pointer_type_die): Remove dead code. |
| (gen_reference_type_die): Likewise. |
| * stor-layout.c: Remove Pascal-related comment. |
| |
| 2017-07-13 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (finish_options): Add quotes to error messages. |
| (parse_sanitizer_options): Likewise. |
| |
| 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension. |
| |
| 2017-07-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define. |
| |
| 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments |
| during expansion. |
| * builtins.c (expand_asan_emit_allocas_unpoison): Likewise. |
| |
| 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/81193 |
| * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC |
| provides the hardware capability bits, define the macro |
| __BUILTIN_CPU_SUPPORTS__. |
| * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning |
| if GLIBC does not provide the hardware capability bits. Add a |
| gcc_unreachable call if the built-in cpu function is neither |
| __builtin_cpu_is nor __builtin_cpu_supports. |
| (rs6000_get_function_versions_dispatcher): Change the warning |
| that an old GLIBC is used which does not export the capability |
| bits to be an error. |
| * doc/extend.texi (target_clones attribute): Document the |
| restriction that GLIBC 2.23 or newer is needed on the PowerPC. |
| (PowerPC built-in functions): Document that GLIBC 2.23 or newer is |
| needed by __builtin_cpu_is and __builtin_cpu_supports. Document |
| the macros defined by GCC if the newer GLIBC is available. |
| |
| 2017-07-12 Jeff Law <law@redhat.com> |
| |
| * config/riscv/riscv.c: Remove unnecessary includes. Reorder |
| remaining includes slightly. |
| * config/riscv/riscv-builtins.c: Include profile-count.h. |
| |
| 2017-07-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/79883 |
| * config/avr/avr.c (avr_set_current_function): In diagnostic |
| messages: Quote keywords and (parts of) identifiers. |
| [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or |
| "INTERUPT". |
| |
| 2017-07-12 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for built-in functions |
| vector bool char vec_revb (vector bool char); |
| vector bool short vec_revb (vector short char); |
| vector bool int vec_revb (vector bool int); |
| vector bool long long vec_revb (vector bool long long); |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md: Remove movcc splitter. |
| |
| 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_rtx_costs): Return proper costs for |
| load/store on condition. |
| |
| 2017-07-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81407 |
| * config/avr/avr.c (avr_encode_section_info) |
| [progmem && !TREE_READONLY]: Error if progmem object needs |
| constructing. |
| |
| 2017-07-11 Michael Collison <michael.collison@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0): |
| New pattern. |
| |
| 2017-07-11 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for builtins |
| vector unsigned int vec_parity_lsbb (vector signed int); |
| vector unsigned int vec_parity_lsbb (vector unsigned int); |
| vector unsigned __int128 vec_parity_lsbb (vector signed __int128); |
| vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128); |
| vector unsigned long long vec_parity_lsbb (vector signed long long); |
| vector unsigned long long vec_parity_lsbb (vector unsigned long long); |
| * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1. |
| * config/rs6000/altivec.h (vec_parity_lsbb): Add define. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-07-11 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c: Include "gcc-rich-location.h". |
| (layout::m_primary_loc): New field. |
| (layout::layout): Initialize new field. Move location filtering |
| logic from here to... |
| (layout::maybe_add_location_range): ...this new method. Add |
| support for filtering to just the lines already specified by other |
| locations. |
| (layout::will_show_line_p): New method. |
| (gcc_rich_location::add_location_if_nearby): New method. |
| (selftest::test_add_location_if_nearby): New test function. |
| (selftest::diagnostic_show_locus_c_tests): Call it. |
| * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): |
| New method. |
| |
| 2017-07-11 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro. |
| (bb_first_real_insn): New function. |
| (nvptx_single): Add extra initialization of broadcasted condition |
| variables. |
| |
| 2017-07-11 Nathan Sidwell <nathan@acm.org> |
| |
| * dwarf2out.c (gen_member_die): Remove useless check for anon ctors. |
| |
| 2017-07-11 Georg-Johann Lay <avr@gjlay.de> |
| |
| * doc/extend.texi (AVR Function Attributes): Remove weblink to |
| Binutils doc as TEXI will mess them up. |
| * doc/invoke.texi (AVR Options): Same here. |
| |
| 2017-07-11 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.opt (mfix-ut700): New option. |
| (mfix-gr712rc): Likewise. |
| (sparc_fix_b2bst): New variable. |
| * doc/invoke.texi (SPARC options): Document them. |
| (ARM options): Fix warnings. |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP |
| instructions to prevent sequences that can trigger the store-store |
| errata for certain LEON3FT processors. |
| (pass_work_around_errata::gate): Also test sparc_fix_b2bst. |
| (sparc_option_override): Set sparc_fix_b2bst appropriately. |
| * config/sparc/sparc.md (fix_b2bst): New attribute. |
| (in_branch_delay): Prevent stores in delay slot if fix_b2bst. |
| |
| 2017-07-10 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81375 |
| * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH. |
| (rcpps): Ditto. |
| (*rsqrtsf2_sse): Ditto. |
| (rsqrtsf2): Ditto. |
| (div<mode>3): Macroize insn from divdf3 and divsf3 |
| using MODEF mode iterator. |
| |
| 2017-07-10 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/80397 |
| * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P() |
| instead of testing for equality to INTEGER_TYPE. |
| |
| 2017-07-10 Vineet Gupta <vgupta@synopsys.com> |
| |
| * config.gcc: Remove uclibc from arc target spec. |
| |
| 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define. |
| |
| 2017-07-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/80838 |
| * lto-wrapper.c (remove_option): New function. |
| (merge_and_complain): Merge PIC/PIE options more realistically. |
| |
| 2017-07-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| Better ISR prologues by supporting GASes __gcc_isr pseudo insn. |
| |
| PR target/20296 |
| PR target/81268 |
| * configure.ac [target=avr]: Add GAS check for -mgcc-isr. |
| (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it. |
| * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it. |
| * config/avr/avr.opt (-mgas-isr-prologues): New option and... |
| (TARGET_GASISR_PROLOGUES): ...target mask. |
| * common/config/avr/avr-common.c |
| (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]: |
| Set -mgas-isr-prologues. |
| * config/avr/avr-passes.def (avr_pass_pre_proep): Add |
| INSERT_PASS_BEFORE for it. |
| * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto. |
| * config/avr/avr.c (avr_option_override) |
| [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES. |
| (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions. |
| (avr_attribute_table) <no_gccisr>: Add new function attribute. |
| (avr_set_current_function) <is_no_gccisr>: Init machine field. |
| (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data |
| and rtl_opt_pass. |
| (make_avr_pass_pre_proep): New function. |
| (emit_push_sfr) <treg>: Add argument to function and use it |
| instead of TMP_REG. |
| (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn |
| and set machine->gasisr.yes. |
| (avr_expand_epilogue) [machine->gasisr.yes]: Similar. |
| (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add |
| __gcc_isr.n_pushed to .L__stack_usage. |
| (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to... |
| (avr_asm_final_postscan_insn): ...this new static function. |
| * config/avr/avr.h (machine_function) |
| <is_no_gccisr, use_L__stack_usage>: New fields. |
| <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields. |
| * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum. |
| (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants. |
| (gasisr, *gasisr): New expander and insn. |
| * config/avr/gen-avr-mmcu-specs.c (print_mcu) |
| [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec. |
| * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec. |
| |
| 2017-07-10 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes |
| in quoted strings. |
| |
| 2017-07-10 Georg-Johann Lay <avr@gjlay.de> |
| |
| Move jump-tables out of .text again. |
| |
| PR target/81075 |
| * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function. |
| (ASM_OUTPUT_ADDR_VEC): New function. |
| (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0. |
| (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump |
| INSN_ADDRESSes as asm comment. |
| * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment. |
| (ASM_OUTPUT_ADDR_VEC_ELT): Remove define. |
| (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec. |
| * config/avr/avr.md (*tablejump): Adjust comment. |
| * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. |
| * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>: |
| New detail. |
| * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto. |
| (avr_output_addr_vec): New proto. |
| (avr_log_t) <insn_addresses>: New field. |
| |
| 2017-07-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/81313 |
| * config/i386/i386.c (ix86_function_arg_advance): Set |
| outgoing_args_on_stack to true if there are outgoing arguments |
| on stack. |
| (ix86_function_arg): Likewise. |
| (ix86_get_drap_rtx): Use DRAP only if there are outgoing |
| arguments on stack and ACCUMULATE_OUTGOING_ARGS is false. |
| * config/i386/i386.h (machine_function): Add |
| outgoing_args_on_stack. |
| |
| 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not |
| supporting pthreds. |
| * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads. |
| |
| 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H) |
| (REAL_H): Remove $(MACHMODE_H). |
| (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and |
| double-int.h. |
| (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h, |
| $(MACHMODE_H) and double-int.h. |
| (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than |
| $(MACHMODE_H). |
| (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on |
| double-int.h. |
| |
| 2017-07-07 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check |
| prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH. |
| |
| 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher): |
| Add warning if GCC was not configured to link against a GLIBC that |
| exports the hardware capability bits. |
| (make_resolver_func): Make resolver function private and not a |
| COMDAT function. Create the name with clone_function_name instead |
| of make_unique_name. |
| |
| PR target/81348 |
| * config/rs6000/rs6000.md (HI sign_extend splitter): Use the |
| correct operand in doing the split. |
| |
| 2017-07-07 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in function |
| vector unsigned short vec_pack_to_short_fp32 (vector float, |
| vector float). |
| * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add |
| BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions. |
| * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define. |
| * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC. |
| (convert_4f32_8i16): Add define_expand. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in function. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/m8.md: New file. |
| * config/sparc/sparc.md: Include m8.md. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/sparc.opt: New option -mvis4b. |
| * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B. |
| (sparc_option_override): Handle VIS4B. |
| (enum sparc_builtins): Define |
| SPARC_BUILTIN_DICTUNPACK{8,16,32}, |
| SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL, |
| SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL, |
| SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and |
| SPARC_BUILTIN_FPCMPUR{8,16,32}SHL. |
| (check_constant_argument): New function. |
| (sparc_vis_init_builtins): Define builtins |
| __builtin_vis_dictunpack{8,16,32}, |
| __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl, |
| __builtin_vis_fpcmpu{le,gt}{8,16,32}shl, |
| __builtin_vis_fpcmpde{8,16,32}shl and |
| __builtin_vis_fpcmpur{8,16,32}shl. |
| (sparc_expand_builtin): Check that the constant operands to |
| __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed |
| constant and in range. |
| * config/sparc/sparc-c.c (sparc_target_macros): Handle |
| TARGET_VIS4B. |
| * config/sparc/sparc.h (SPARC_IMM2_P): Define. |
| (SPARC_IMM5_P): Likewise. |
| * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b". |
| (enabled): Handle vis4b. |
| (UNSPEC_DICTUNPACK): New unspec. |
| (UNSPEC_FPCMPSHL): Likewise. |
| (UNSPEC_FPUCMPSHL): Likewise. |
| (UNSPEC_FPCMPDESHL): Likewise. |
| (UNSPEC_FPCMPURSHL): Likewise. |
| (cpu_feature): New CPU feature `vis4b'. |
| (dictunpack{8,16,32}): New insns. |
| (FPCSMODE): New mode iterator. |
| (fpcscond): New code iterator. |
| (fpcsucond): Likewise. |
| (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns. |
| (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise. |
| (fpcmpde{8,16,32}{si,di}shl): Likewise. |
| (fpcmpur{8,16,32}{si,di}shl): Likewise. |
| * config/sparc/constraints.md: Define constraints `q' for unsigned |
| 2-bit integer constants and `t' for unsigned 5-bit integer |
| constants. |
| * config/sparc/predicates.md (imm5_operand_dictunpack8): New |
| predicate. |
| (imm5_operand_dictunpack16): Likewise. |
| (imm5_operand_dictunpack32): Likewise. |
| (imm2_operand): Likewise. |
| * doc/invoke.texi (SPARC Options): Document -mvis4b. |
| * doc/extend.texi (SPARC VIS Built-in Functions): Document the |
| ditunpack* and fpcmp*shl builtins. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config.gcc: Handle m8 in --with-{cpu,tune} options. |
| * config.in: Add HAVE_AS_SPARC6 define. |
| * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC |
| M8. |
| * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for |
| TARGET_CPU_m8. |
| (ASM_CPU32_DEFAUILT_SPEC): Likewise. |
| (CPP_CPU_SPEC): Handle m8. |
| (ASM_CPU_SPEC): Likewise. |
| * config/sparc/sparc-opts.h (enum processor_type): Add |
| PROCESSOR_M8. |
| * config/sparc/sparc.c (m8_costs): New struct. |
| (sparc_option_override): Handle TARGET_CPU_m8. |
| (sparc32_initialize_trampoline): Likewise. |
| (sparc64_initialize_trampoline): Likewise. |
| (sparc_issue_rate): Likewise. |
| (sparc_register_move_cost): Likewise. |
| * config/sparc/sparc.h (TARGET_CPU_m8): Define. |
| (CPP_CPU64_DEFAULT_SPEC): Define for M8. |
| (ASM_CPU64_DEFAULT_SPEC): Likewise. |
| (CPP_CPU_SPEC): Handle M8. |
| (ASM_CPU_SPEC): Likewise. |
| (AS_M8_FLAG): Define. |
| * config/sparc/sparc.md: Add m8 to the cpu attribute. |
| * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets. |
| * configure.ac (HAVE_AS_SPARC6): Check for assembler support for |
| M8 instructions. |
| * configure: Regenerate. |
| * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and |
| -mtune=m8. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/niagara7.md: Rework the DFA scheduler to use insn |
| subtypes. |
| * config/sparc/sparc.md: Remove the `v3pipe' insn attribute. |
| ("*movdi_insn_sp32"): Do not set v3pipe. |
| ("*movsi_insn"): Likewise. |
| ("*movdi_insn_sp64"): Likewise. |
| ("*movsf_insn"): Likewise. |
| ("*movdf_insn_sp32"): Likewise. |
| ("*movdf_insn_sp64"): Likewise. |
| ("*zero_extendsidi2_insn_sp64"): Likewise. |
| ("*sign_extendsidi2_insn"): Likewise. |
| ("*mov<VM32:mode>_insn"): Likewise. |
| ("*mov<VM64:mode>_insn_sp64"): Likewise. |
| ("*mov<VM64:mode>_insn_sp32"): Likewise. |
| ("<plusminus_insn><VADDSUB:mode>3"): Likewise. |
| ("<vlop:code><VL:mode>3"): Likewise. |
| ("*not_<vlop:code><VL:mode>3"): Likewise. |
| ("*nand<VL:mode>_vis"): Likewise. |
| ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise. |
| ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise. |
| ("one_cmpl<VL:mode>2"): Likewise. |
| ("faligndata<VM64:mode>_vis"): Likewise. |
| ("alignaddrsi_vis"): Likewise. |
| ("alignaddrdi_vis"): Likweise. |
| ("alignaddrlsi_vis"): Likewise. |
| ("alignaddrldi_vis"): Likewise. |
| ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. |
| ("bmaskdi_vis"): Likewise. |
| ("bmasksi_vis"): Likewise. |
| ("bshuffle<VM64:mode>_vis"): Likewise. |
| ("cmask8<P:mode>_vis"): Likewise. |
| ("cmask16<P:mode>_vis"): Likewise. |
| ("cmask32<P:mode>_vis"): Likewise. |
| ("pdistn<P:mode>_vis"): Likewise. |
| ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/sparc.md ("subtype"): New insn attribute. |
| ("*wrgsr_sp64"): Set insn subtype. |
| ("*rdgsr_sp64"): Likewise. |
| ("alignaddrsi_vis"): Likewise. |
| ("alignaddrdi_vis"): Likewise. |
| ("alignaddrlsi_vis"): Likewise. |
| ("alignaddrldi_vis"): Likewise. |
| ("<plusminus_insn><VADDSUB:mode>3"): Likewise. |
| ("fexpand_vis"): Likewise. |
| ("fpmerge_vis"): Likewise. |
| ("faligndata<VM64:mode>_vis"): Likewise. |
| ("bshuffle<VM64:mode>_vis"): Likewise. |
| ("cmask8<P:mode>_vis"): Likewise. |
| ("cmask16<P:mode>_vis"): Likewise. |
| ("cmask32<P:mode>_vis"): Likewise. |
| ("fchksm16_vis"): Likewise. |
| ("v<vis3_shift_patname><GCM:mode>3"): Likewise. |
| ("fmean16_vis"): Likewise. |
| ("fp<plusminus_insn>64_vis"): Likewise. |
| ("<plusminus_insn>v8qi3"): Likewise. |
| ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. |
| ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise. |
| ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise. |
| ("<vis3_addsub_ss_patname>v8qi3"): Likewise. |
| ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise. |
| ("*movqi_insn"): Likewise. |
| ("*movhi_insn"): Likewise. |
| ("*movsi_insn"): Likewise. |
| ("movsi_pic_gotdata_op"): Likewise. |
| ("*movdi_insn_sp32"): Likewise. |
| ("*movdi_insn_sp64"): Likewise. |
| ("movdi_pic_gotdata_op"): Likewise. |
| ("*movsf_insn"): Likewise. |
| ("*movdf_insn_sp32"): Likewise. |
| ("*movdf_insn_sp64"): Likewise. |
| ("*zero_extendhisi2_insn"): Likewise. |
| ("*zero_extendqihi2_insn"): Likewise. |
| ("*zero_extendqisi2_insn"): Likewise. |
| ("*zero_extendqidi2_insn"): Likewise. |
| ("*zero_extendhidi2_insn"): Likewise. |
| ("*zero_extendsidi2_insn_sp64"): Likewise. |
| ("ldfsr"): Likewise. |
| ("prefetch_64"): Likewise. |
| ("prefetch_32"): Likewise. |
| ("tie_ld32"): Likewise. |
| ("tie_ld64"): Likewise. |
| ("*tldo_ldub_sp32"): Likewise. |
| ("*tldo_ldub1_sp32"): Likewise. |
| ("*tldo_ldub2_sp32"): Likewise. |
| ("*tldo_ldub_sp64"): Likewise. |
| ("*tldo_ldub1_sp64"): Likewise. |
| ("*tldo_ldub2_sp64"): Likewise. |
| ("*tldo_ldub3_sp64"): Likewise. |
| ("*tldo_lduh_sp32"): Likewise. |
| ("*tldo_lduh1_sp32"): Likewise. |
| ("*tldo_lduh_sp64"): Likewise. |
| ("*tldo_lduh1_sp64"): Likewise. |
| ("*tldo_lduh2_sp64"): Likewise. |
| ("*tldo_lduw_sp32"): Likewise. |
| ("*tldo_lduw_sp64"): Likewise. |
| ("*tldo_lduw1_sp64"): Likewise. |
| ("*tldo_ldx_sp64"): Likewise. |
| ("*mov<VM32:mode>_insn"): Likewise. |
| ("*mov<VM64:mode>_insn_sp64"): Likewise. |
| ("*mov<VM64:mode>_insn_sp32"): Likewise. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/sparc.md ("type"): New insn type viscmp. |
| ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to |
| viscmp. |
| ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise. |
| ("fucmp<gcond:code>8<P:mode>_vis"): Likewise. |
| ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. |
| * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle |
| viscmp. |
| ("n7_vis_logical_11cycle"): Likewise. |
| * config/sparc/niagara4.md ("n4_vis_logical"): Likewise. |
| * config/sparc/niagara2.md ("niag3_vis": Likewise. |
| * config/sparc/niagara.md ("niag_vis"): Likewise. |
| * config/sparc/ultra3.md ("us3_fga"): Likewise. |
| * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise. |
| |
| 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/sparc.md: New instruction type `bmask'. |
| (bmaskdi_vis): Use the `bmask' type. |
| (bmasksi_vis): Likewise. |
| * config/sparc/ultra3.md (us3_array): Likewise. |
| * config/sparc/niagara7.md (n7_array): Likewise. |
| * config/sparc/niagara4.md (n4_array): Likewise. |
| * config/sparc/niagara2.md (niag2_vis): Likewise. |
| (niag3_vis): Likewise. |
| * config/sparc/niagara.md (niag_vis): Likewise. |
| |
| 2017-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-comdats.c: Remove optimize check from gate. |
| * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary |
| for functions not optimized. |
| (ipa_fn_summary_read): Skip optimize check. |
| (ipa_fn_summary_write): Likewise. |
| * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller |
| is optimized. |
| * ipa-inline.c (can_inline_edge_p): Not optimized functions are |
| uninlinable. |
| (can_inline_edge_p): Check flag_pcc_struct_return for match. |
| (check_callers): Give up on caller which is not optimized. |
| (inline_small_functions): Likewise. |
| (ipa_inline): Do not give up when not optimizing. |
| * ipa-visbility.c (function_and_variable_visibility): Do not optimize |
| away unoptimizes cdtors. |
| (whole_program_function_and_variable_visibility): Do |
| ipa_discover_readonly_nonaddressable_vars in LTO mode. |
| * ipa.c (process_references): Do not check optimize. |
| (symbol_table::remove_unreachable_nodes): Update optimize check. |
| (set_writeonly_bit): Update optimize check. |
| (pass_ipa_cdtor_merge::gate): Do not check optimize. |
| (pass_ipa_single_use::gate): Remove. |
| |
| 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p, |
| insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p, |
| rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps, |
| mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index, |
| permute_load, permute_store, adjust_extract, adjust_splat, |
| adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables, |
| replace_swap_with_copy, dump_swap_insn_table, |
| alignment_with_canonical_addr, alignment_mask, find_alignment_op, |
| recombine_lvx_pattern, recombine_stvx_pattern, |
| recombine_lvx_stvx_patterns, rs6000_analyze_swaps, |
| make_pass_analyze_swaps): Move all code related to p8 swap optimizations |
| to file rs6000-p8swap.c. |
| * config/rs6000/rs6000-p8swap.c: New file. |
| * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o. |
| * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-* |
| and rs6000*-*-* targets. |
| |
| 2017-07-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (selftest): Remove dependency on s-selftest-c++. |
| |
| 2017-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * lto-wrapper.c (merge_and_complain): Do not merge |
| fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno, |
| fsigned_zeros, ftrapping_math, fwrapv. |
| (append_compiler_options): Do not track these options. |
| (append_linker_options): Likewie |
| |
| 2017-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphunit.c (cgraph_node::finalize_function): When |
| !flag_toplevel_reorde set no_reorder flag. |
| (varpool_node::finalize_decl): Likewise. |
| (symbol_table::compile): Drop no toplevel reorder path. |
| |
| 2017-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh |
| edges; zero probability is not better than uninitialized. |
| |
| 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| * asan.h (asan_sanitize_allocas_p): Declare. |
| * asan.c (asan_sanitize_allocas_p): New function. |
| (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p. |
| (handle_builtin_alloca): Likewise. |
| * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff |
| if !asan_sanitize_allocas_p. |
| * params.def (asan-instrument-allocas): Add new option. |
| * params.h (ASAN_PROTECT_ALLOCAS): Define. |
| * opts.c (common_handle_option): Disable allocas sanitization for |
| KASan by default. |
| |
| 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| * asan.c: Include gimple-fold.h. |
| (get_last_alloca_addr): New function. |
| (handle_builtin_stackrestore): Likewise. |
| (handle_builtin_alloca): Likewise. |
| (asan_emit_allocas_unpoison): Likewise. |
| (get_mem_refs_of_builtin_call): Add new parameter, remove const |
| quallifier from first paramerer. Handle BUILT_IN_ALLOCA, |
| BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins. |
| (instrument_builtin_call): Pass gimple iterator to |
| get_mem_refs_of_builtin_call. |
| (last_alloca_addr): New global. |
| * asan.h (asan_emit_allocas_unpoison): Declare. |
| * builtins.c (expand_asan_emit_allocas_unpoison): New function. |
| (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON. |
| * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison |
| if function calls alloca. |
| * gimple-fold.c (replace_call_with_value): Remove static keyword. |
| * gimple-fold.h (replace_call_with_value): Declare. |
| * internal-fn.c: Include asan.h. |
| * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON, |
| BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins. |
| |
| 2017-07-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to... |
| (C_SELFTEST_FLAGS): New. |
| (CPP_SELFTEST_FLAGS): New. |
| (SELFTEST_DEPS): New, from deps of s-selftest. |
| (C_SELFTEST_DEPS): New, from deps of s-selftest. |
| (CPP_SELFTEST_DEPS): New. |
| (selftest): Add dependency on s-selftest-c++. |
| (s-selftest): Rename to... |
| (s-selftest-c): ...this, moving deps to SELFTEST_DEPS |
| and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather |
| than SELFTEST_FLAGS. |
| (selftest-gdb): Rename to... |
| (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and |
| C_SELFTEST_FLAGS. |
| (selftest-gdb): Reintroduce as an alias for selftest-c-gdb. |
| (selftest-valgrind): Rename to... |
| (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and |
| C_SELFTEST_FLAGS. |
| (selftest-valgrind): Reintroduce as an alias for |
| selftest-c-valgrind. |
| (s-selftest-c++): New. |
| (selftest-c++-gdb): New. |
| (selftest-c++-valgrind): New. |
| |
| 2017-07-06 Olivier Hainque <hainque@adacore.com> |
| |
| * gcc.c (process_command): When deciding if undefined variables |
| should be ignored when processing specs, accept "gcc -v" as well. |
| |
| 2017-07-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge, |
| afdo_annotate_cfg): Set counts/probabilities as determined by afdo. |
| |
| 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm-cpus.in (armv8-r): Add new entry. |
| * config/arm/arm-isa.h (ISA_ARMv8r): Define macro. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R |
| enumerator. |
| * doc/invoke.texi: Mention -march=armv8-r and its extensions. |
| |
| 2017-07-06 Carl Love <cel@us.ibm.com> |
| |
| * ChangeLog: Clean up from mid air collision |
| |
| 2017-07-06 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for built-in functions |
| vector signed int vec_subc (vector signed int, vector signed int); |
| vector signed __int128 vec_subc (vector signed __int128, |
| vector signed __int128); |
| vector unsigned __int128 vec_subc (vector unsigned __int128, |
| vector unsigned __int128); |
| vector signed int vec_sube (vector signed int, vector signed int, |
| vector signed int); |
| vector unsigned int vec_sube (vector unsigned int, |
| vector unsigned int, |
| vector unsigned int); |
| vector signed __int128 vec_sube (vector signed __int128, |
| vector signed __int128, |
| vector signed__int128); |
| vector unsigned __int128 vec_sube (vector unsigned __int128, |
| vector unsigned __int128, |
| vector unsigned __int128); |
| vector signed int vec_subec (vector signed int, vector signed int, |
| vector signed int); |
| vector unsigned int vec_subec (vector unsigned int, |
| vector unsigned int, |
| vector unsigned int); |
| vector signed __int128 vec_subec (vector signed __int128, |
| vector signed __int128, |
| vector signed__int128); |
| vector unsigned __int128 vec_subec (vector unsigned __int128, |
| vector unsigned __int128, |
| vector unsigned __int128); |
| * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE, |
| ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins. |
| * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add |
| BU_ALTIVEC_OVERLOAD_X definitions. |
| * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines. |
| * doc/extend.texi: Update the built-in documentation file for the new |
| built-in functions. |
| |
| 2017-07-06 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/79300 |
| * diagnostic-show-locus.c (layout::layout): Use start and finish |
| spelling location for the start and finish of each range. |
| * genmatch.c (linemap_client_expand_location_to_spelling_point): |
| Add unused aspect param. |
| * input.c (expand_location_1): Add "aspect" param, and use it |
| to access the correct part of the location. |
| (expand_location): Pass LOCATION_ASPECT_CARET to new param of |
| expand_location_1. |
| (expand_location_to_spelling_point): Likewise. |
| (linemap_client_expand_location_to_spelling_point): Add "aspect" |
| param, and pass it to expand_location_1. |
| |
| 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss, |
| _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd, |
| _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd, |
| _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss, |
| _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss, |
| _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd, |
| _mm_maskz_getmant_sd, _mm_mask_getmant_ss, |
| _mm_maskz_getmant_ss): New intrinsics. |
| (__builtin_ia32_getexpss128_mask): Changed to ... |
| __builtin_ia32_getexpss128_round ... this. |
| (__builtin_ia32_getexpsd128_mask): Changed to ... |
| __builtin_ia32_getexpsd128_round ... this. |
| * config/i386/i386-builtin-types.def |
| ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT), |
| (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases. |
| * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round, |
| __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round, |
| __builtin_ia32_getmantss_mask_round): New builtins. |
| * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT, |
| V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types. |
| (CODE_FOR_avx512f_vgetmantv2df_mask_round, |
| CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases. |
| * config/i386/sse.md |
| (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ... |
| avx512f_sgetexp<mode><mask_scalar_name> |
| <round_saeonly_scalar_name> ... this. |
| (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0| |
| %0, %1, %2<round_saeonly_op3>}): Changed to ... |
| vgetexp<ssescalarmodesuffix> |
| \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| |
| %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this. |
| (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ... |
| avx512f_vgetmant<mode><mask_scalar_name> |
| <round_saeonly_scalar_name> ... this. |
| (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| |
| %0, %1, %2<round_saeonly_op4>, %3}): Changed to ... |
| vgetmant<ssescalarmodesuffix> |
| \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>| |
| %0<mask_scalar_operand4>, %1, %2 |
| <round_saeonly_scalar_mask_op4>, %3} ... this. |
| * config/i386/subst.md (mask_scalar_operand4, |
| round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4, |
| round_saeonly_scalar_nimm_predicate): New subst attributes. |
| |
| 2017-07-06 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386.c (ix86_erase_embedded_rounding): |
| Remove code for old rounding pattern. |
| |
| 2017-07-06 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-arm (GTM_H): Add arm-cpu.h. |
| |
| 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/sourcebuild.texi (Test Directives, Variants of |
| dg-require-support): Add documentation for dg-require-stack-check. |
| |
| 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/subst.md (mask_scalar, round_scalar, |
| round_saeonly_scalar): New meta-templates. |
| (mask_scalar_name, mask_scalar_operand3, round_scalar_name, |
| round_scalar_mask_operand3, round_scalar_mask_op3, |
| round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name, |
| round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3, |
| round_saeonly_scalar_constraint, |
| round_saeonly_scalar_prefix): New subst attribute. |
| * config/i386/sse.md |
| (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ... |
| <sse>_vm<plusminus_insn><mode>3<mask_scalar_name> |
| <round_scalar_name> ... this. |
| (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ... |
| <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name> |
| <round_scalar_name> ... this. |
| (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ... |
| <sse>_vm<code><mode>3<mask_scalar_name> |
| <round_saeonly_scalar_name> ... this. |
| (v<plusminus_mnemonic><ssescalarmodesuffix> |
| \t{<round_mask_op3>%2, %1, %0<mask_operand3>| |
| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... |
| v<plusminus_mnemonic><ssescalarmodesuffix> |
| \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| |
| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. |
| (v<multdiv_mnemonic><ssescalarmodesuffix> |
| \t{<round_mask_op3>%2, %1, %0<mask_operand3>| |
| %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... |
| v<multdiv_mnemonic><ssescalarmodesuffix> |
| \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| |
| %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. |
| (v<maxmin_float><ssescalarmodesuffix> |
| \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>| |
| %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ... |
| v<maxmin_float><ssescalarmodesuffix> |
| \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| |
| %0<mask_scalar_operand3>, %1, %<iptr>2 |
| <round_saeonly_scalar_mask_op3>} ... this. |
| |
| 2017-07-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.c (arm_fixed_condition_code_regs): New function. |
| (TARGET_FIXED_CONDITION_CODE_REGS): Redefine. |
| |
| 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * combine.c (simplify_if_then_else): Remove "enum" before |
| "machine_mode". |
| * compare-elim.c (can_eliminate_compare): Likewise. |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): |
| Likewise. |
| (aarch64_lookup_simd_builtin_type): Likewise. |
| (aarch64_simd_builtin_type): Likewise. |
| (aarch64_init_simd_builtin_types): Likewise. |
| (aarch64_simd_expand_args): Likewise. |
| * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist): |
| Likewise. |
| (aarch64_reverse_mask): Likewise. |
| (aarch64_simd_emit_reg_reg_move): Likewise. |
| (aarch64_gen_adjusted_ldpstp): Likewise. |
| (aarch64_ccmp_mode_to_code): Likewise. |
| (aarch64_operands_ok_for_ldpstp): Likewise. |
| (aarch64_operands_adjust_ok_for_ldpstp): Likewise. |
| * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): |
| Likewise. |
| (aarch64_min_divisions_for_recip_mul): Likewise. |
| (aarch64_reassociation_width): Likewise. |
| (aarch64_get_condition_code_1): Likewise. |
| (aarch64_simd_emit_reg_reg_move): Likewise. |
| (aarch64_simd_attr_length_rglist): Likewise. |
| (aarch64_reverse_mask): Likewise. |
| (aarch64_operands_ok_for_ldpstp): Likewise. |
| (aarch64_operands_adjust_ok_for_ldpstp): Likewise. |
| (aarch64_gen_adjusted_ldpstp): Likewise. |
| * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename): |
| Likewise. |
| * config/arc/arc.c (legitimate_offset_address_p): Likewise. |
| * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. |
| (arm_lookup_simd_builtin_type): Likewise. |
| (arm_simd_builtin_type): Likewise. |
| (arm_init_simd_builtin_types): Likewise. |
| (arm_expand_builtin_args): Likewise. |
| * config/arm/arm-protos.h (arm_expand_builtin): Likewise. |
| * config/ft32/ft32.c (ft32_libcall_value): Likewise. |
| (ft32_setup_incoming_varargs): Likewise. |
| (ft32_function_arg): Likewise. |
| (ft32_function_arg_advance): Likewise. |
| (ft32_pass_by_reference): Likewise. |
| (ft32_arg_partial_bytes): Likewise. |
| (ft32_valid_pointer_mode): Likewise. |
| (ft32_addr_space_pointer_mode): Likewise. |
| (ft32_addr_space_legitimate_address_p): Likewise. |
| * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): |
| Likewise. |
| * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. |
| (ix86_emit_outlined_ms2sysv_restore): Likewise. |
| (iamcu_alignment): Likewise. |
| (canonicalize_vector_int_perm): Likewise. |
| (ix86_noce_conversion_profitable_p): Likewise. |
| (ix86_mpx_bound_mode): Likewise. |
| (ix86_operands_ok_for_move_multiple): Likewise. |
| * config/microblaze/microblaze-protos.h |
| (microblaze_expand_conditional_branch_reg): Likewise. |
| * config/microblaze/microblaze.c |
| (microblaze_expand_conditional_branch_reg): Likewise. |
| * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): |
| Likewise. |
| (rs6000_reassociation_width): Likewise. |
| (rs6000_invalid_binary_op): Likewise. |
| (fusion_p9_p): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p): |
| Likewise. |
| (riscv_hard_regno_mode_ok_p): Likewise. |
| (riscv_address_insns): Likewise. |
| (riscv_split_symbol): Likewise. |
| (riscv_legitimize_move): Likewise. |
| (riscv_function_value): Likewise. |
| (riscv_hard_regno_nregs): Likewise. |
| (riscv_expand_builtin): Likewise. |
| * config/riscv/riscv.c (riscv_build_integer_1): Likewise. |
| (riscv_build_integer): Likewise. |
| (riscv_split_integer): Likewise. |
| (riscv_legitimate_constant_p): Likewise. |
| (riscv_cannot_force_const_mem): Likewise. |
| (riscv_regno_mode_ok_for_base_p): Likewise. |
| (riscv_valid_base_register_p): Likewise. |
| (riscv_valid_offset_p): Likewise. |
| (riscv_valid_lo_sum_p): Likewise. |
| (riscv_classify_address): Likewise. |
| (riscv_legitimate_address_p): Likewise. |
| (riscv_address_insns): Likewise. |
| (riscv_load_store_insns): Likewise. |
| (riscv_force_binary): Likewise. |
| (riscv_split_symbol): Likewise. |
| (riscv_force_address): Likewise. |
| (riscv_legitimize_address): Likewise. |
| (riscv_move_integer): Likewise. |
| (riscv_legitimize_const_move): Likewise. |
| (riscv_legitimize_move): Likewise. |
| (riscv_address_cost): Likewise. |
| (riscv_subword): Likewise. |
| (riscv_output_move): Likewise. |
| (riscv_canonicalize_int_order_test): Likewise. |
| (riscv_emit_int_order_test): Likewise. |
| (riscv_function_arg_boundary): Likewise. |
| (riscv_pass_mode_in_fpr_p): Likewise. |
| (riscv_pass_fpr_single): Likewise. |
| (riscv_pass_fpr_pair): Likewise. |
| (riscv_get_arg_info): Likewise. |
| (riscv_function_arg): Likewise. |
| (riscv_function_arg_advance): Likewise. |
| (riscv_arg_partial_bytes): Likewise. |
| (riscv_function_value): Likewise. |
| (riscv_pass_by_reference): Likewise. |
| (riscv_setup_incoming_varargs): Likewise. |
| (riscv_print_operand): Likewise. |
| (riscv_elf_select_rtx_section): Likewise. |
| (riscv_save_restore_reg): Likewise. |
| (riscv_for_each_saved_reg): Likewise. |
| (riscv_register_move_cost): Likewise. |
| (riscv_hard_regno_mode_ok_p): Likewise. |
| (riscv_hard_regno_nregs): Likewise. |
| (riscv_class_max_nregs): Likewise. |
| (riscv_memory_move_cost): Likewise. |
| * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise. |
| * config/rl78/rl78.c (rl78_split_movsi): Likewise. |
| (rl78_addr_space_address_mode): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. |
| (rs6000_reassociation_width): Likewise. |
| (rs6000_invalid_binary_op): Likewise. |
| (fusion_p9_p): Likewise. |
| (emit_fusion_p9_load): Likewise. |
| (emit_fusion_p9_store): Likewise. |
| * config/visium/visium-protos.h (prepare_move_operands): Likewise. |
| (ok_for_simple_move_operands): Likewise. |
| (ok_for_simple_move_strict_operands): Likewise. |
| (ok_for_simple_arith_logic_operands): Likewise. |
| (visium_legitimize_reload_address): Likewise. |
| (visium_select_cc_mode): Likewise. |
| (output_cbranch): Likewise. |
| (visium_split_double_move): Likewise. |
| (visium_expand_copysign): Likewise. |
| (visium_expand_int_cstore): Likewise. |
| (visium_expand_fp_cstore): Likewise. |
| * config/visium/visium.c (visium_pass_by_reference): Likewise. |
| (visium_function_arg): Likewise. |
| (visium_function_arg_advance): Likewise. |
| (visium_libcall_value): Likewise. |
| (visium_setup_incoming_varargs): Likewise. |
| (visium_legitimate_constant_p): Likewise. |
| (visium_legitimate_address_p): Likewise. |
| (visium_legitimize_address): Likewise. |
| (visium_secondary_reload): Likewise. |
| (visium_register_move_cost): Likewise. |
| (visium_memory_move_cost): Likewise. |
| (prepare_move_operands): Likewise. |
| (ok_for_simple_move_operands): Likewise. |
| (ok_for_simple_move_strict_operands): Likewise. |
| (ok_for_simple_arith_logic_operands): Likewise. |
| (visium_function_value_1): Likewise. |
| (rtx_ok_for_offset_p): Likewise. |
| (visium_legitimize_reload_address): Likewise. |
| (visium_split_double_move): Likewise. |
| (visium_expand_copysign): Likewise. |
| (visium_expand_int_cstore): Likewise. |
| (visium_expand_fp_cstore): Likewise. |
| (visium_split_cstore): Likewise. |
| (visium_select_cc_mode): Likewise. |
| (visium_split_cbranch): Likewise. |
| (output_cbranch): Likewise. |
| (visium_print_operand_address): Likewise. |
| * expmed.c (flip_storage_order): Likewise. |
| * expmed.h (emit_cstore): Likewise. |
| (flip_storage_order): Likewise. |
| * genrecog.c (validate_pattern): Likewise. |
| * hsa-gen.c (gen_hsa_addr): Likewise. |
| * internal-fn.c (expand_arith_overflow): Likewise. |
| * ira-color.c (allocno_copy_cost_saving): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. |
| (process_invariant_for_inheritance): Likewise. |
| * lra-eliminations.c (move_plus_up): Likewise. |
| * omp-low.c (lower_oacc_reductions): Likewise. |
| * simplify-rtx.c (simplify_subreg): Likewise. |
| * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. |
| (TARGET_CHKP_BOUND_MODE): Likewise.. |
| * targhooks.c (default_chkp_bound_mode): Likewise. |
| (default_setup_incoming_vararg_bounds): Likewise. |
| * targhooks.h (default_chkp_bound_mode): Likewise. |
| (default_setup_incoming_vararg_bounds): Likewise. |
| * tree-ssa-math-opts.c (divmod_candidate_p): Likewise. |
| * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. |
| (have_whole_vector_shift): Likewise. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| * doc/tm.texi: Regenerate. |
| |
| 2017-07-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| Graceful degrade if Binutils PR21472 is not available. |
| |
| PR target/81072 |
| * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3 |
| .rodata in flash test fails. |
| (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes. |
| * confgure: Regenerate. |
| * config.in: Regenerate. |
| * config/avr/avr.c (avr_asm_named_section) |
| [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger |
| __do_copy_data for stuff in .rodata if flash_pm_offset = 0. |
| (avr_asm_init_sections): Same. |
| |
| 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?. |
| (fma<VH:mode>4_intrinsic): Likewise. |
| (*fmsub<VCVTF:mode>4): Likewise. |
| (*fmsub<VH:mode>4_intrinsic): Likewise. |
| |
| 2017-07-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81305 |
| * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]: |
| Don't depend on "optimize > 0". |
| (out_movhi_r_mr, out_movqi_mr_r): Same. |
| (out_movhi_mr_r, out_movqi_r_mr): Same. |
| (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for |
| io_address_operand on "optimize > 0". |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c: Add general explanantion on the pass. |
| (generate_loops_for_partition): Mark distributed loop. |
| (pg_add_dependence_edges): New parameter. Handle alias data |
| dependence specially and record it in the parameter if asked. |
| (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs. |
| (init_partition_graph_vertices, add_partition_graph_edge): New. |
| (pg_skip_alias_edge, free_partition_graph_edata_cb): New. |
| (free_partition_graph_vdata, build_partition_graph): New. |
| (sort_partitions_by_post_order, merge_dep_scc_partitions): New. |
| (pg_collect_alias_ddrs, break_alias_scc_partitions): New. |
| (data_ref_segment_size, latch_dominated_by_data_ref): New. |
| (compute_alias_check_pairs, version_loop_by_alias_check): New. |
| (version_for_distribution_p, finalize_partitions): New. |
| (distribute_loop): Handle alias data dependence specially. Factor |
| out loop fusion code as functions and call these functions. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (classify_partition): New parameter and |
| better handle reduction statement. |
| (rdg_build_partitions): Revise comment. |
| (distribute_loop): Compute statements in all partitions and pass it |
| to classify_partition. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (enum partition_type): New. |
| (struct partition): New field type. |
| (partition_merge_into): Add parameter. Update partition type. |
| (data_dep_in_cycle_p, update_type_for_merge): New functions. |
| (build_rdg_partition_for_vertex): Compute partition type. |
| (rdg_build_partitions): Dump partition type. |
| (distribute_loop): Update calls to partition_merge_into. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (struct ddr_hasher): New. |
| (ddr_hasher::hash, ::equal, get_data_dependence): New function. |
| (ddrs_table): New. |
| (classify_partition): Call get_data_dependence. |
| (pg_add_dependence_edges): Ditto. |
| (distribute_loop): Release data dependence hash table. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (ref_base_address): Delete. |
| (similar_memory_accesses): Rename ... |
| (share_memory_accesses): ... to this. Check if partitions access |
| the same memory reference. |
| (distribute_loop): Call share_memory_accesses. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (struct partition): New field recording |
| its data reference. |
| (partition_alloc, partition_free): Init and release data refs. |
| (partition_merge_into): Merge data refs. |
| (build_rdg_partition_for_vertex): Collect data refs for partition. |
| (pg_add_dependence_edges): Change parameters from vector to bitmap. |
| Update uses. |
| (distribute_loop): Remve data refs from vertice data of partition |
| graph. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (params.h): Include header file. |
| (MAX_DATAREFS_NUM, DR_INDEX): New macro. |
| (datarefs_vec): New global var. |
| (create_rdg_vertices): Use datarefs_vec directly. |
| (free_rdg): Don't free data references. |
| (build_rdg): Update use. Don't free data references. |
| (distribute_loop): Compute global variable for data references. |
| Bail out if there are too many data references. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (loop_nest): New global var. |
| (build_rdg): Use loop directly, rather than loop nest. |
| (pg_add_dependence_edges): Remove loop nest parameter. Use global |
| variable directly. |
| (distribute_loop): Compute global variable loop nest. Update use. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (enum fuse_type, fuse_message): New. |
| (partition_merge_into): New parameter. Dump reason for fusion. |
| (distribute_loop): Update use of partition_merge_into. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (bb_top_order_index): New. |
| (bb_top_order_index_size, bb_top_order_cmp): New. |
| (stmts_from_loop): Use topological order. |
| (pass_loop_distribution::execute): Compute and release topological |
| order for basic blocks. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-loop-distribution.c (pass_loop_distribution::execute): Skip |
| if no loops. |
| |
| 2017-07-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * cfgloop.h (struct loop): Add comment. New field orig_loop_num. |
| * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change. |
| * internal-fn.c (expand_LOOP_DIST_ALIAS): New function. |
| * internal-fn.def (LOOP_DIST_ALIAS): New. |
| * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ... |
| (fold_loop_internal_call): ... this. |
| (vect_loop_dist_alias_call): New function. |
| (set_uid_loop_bbs): Call fold_loop_internal_call. |
| (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS |
| internal calls. |
| |
| 2017-07-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81300 |
| * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes): |
| Require dead FLAGS_REG at the beginning of a peephole. |
| |
| 2017-07-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81294 |
| * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y |
| arguments in the call to __builtin_ia32_sbb_u32. |
| (_subborrow_u64): Swap _X and _Y arguments in the call to |
| __builtin_ia32_sbb_u64. |
| |
| 2017-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/81278 |
| * tree-vrp.c (compare_assert_loc): Turn into a function template |
| with stable template parameter. Only test if a->e is NULL, |
| !a->e == !b->e has been verified already. Use e == NULL or |
| e != NULL instead of e or ! e tests. If stable is true, don't use |
| iterative_hash_expr, on the other side allow a or b or both NULL |
| and sort the NULLs last. |
| (process_assert_insertions): Sort using compare_assert_loc<false> |
| instead of compare_assert_loc, later sort using |
| compare_assert_loc<true> before calling process_assert_insertions_for |
| in a loop. Use break instead of continue once seen NULL pointer. |
| |
| 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM |
| Cortex-R7 and Cortex-R8 processors. |
| |
| 2017-07-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is |
| uninitialized while src is not. |
| |
| 2017-07-04 Richard Earnshaw <rearnsha@arm.com> |
| |
| * common/config/arm/arm-common.c: Adjust include path for |
| arm-cpu-cdata.h |
| * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h. |
| (arm-cpu.h): Create in build directory. Adjust dependency rules. |
| (arm-cpu-data.h): Likewise. |
| (arm-cpu-cdata.h): Likewise. |
| * config/arm/arm-cpu.h: Delete. |
| * config/arm/arm-cpu-cdata.h: Delete. |
| * config/arm/arm-cpu-data.h: Delete. |
| |
| 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-a55): New. |
| (cortex-a75): Likewise. |
| (cortex-a75.cortex-a55): Likewise. |
| * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and |
| cortex-a75. |
| * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75. |
| * config/arm/arm-cpu-cdata.h: Regenerate. |
| * config/arm/arm-cpu-data.h: Regenerate. |
| * config/arm/arm-cpu.h: Regenerate. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| |
| 2017-07-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * haifa-sched.c (sched_create_recovery_edges): Update profile. |
| |
| 2017-07-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (better_edge_p): Fix handling of uninitialized |
| probability. |
| |
| 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/81292 |
| * tree-ssa-strlen.c (handle_builtin_strlen): When setting |
| full_string_p, also call adjust_related_strinfos if the adjustment |
| is simple, otherwise invalidate related strinfos. |
| |
| 2017-07-04 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81040 |
| * sanopt.c (sanitize_rewrite_addressable_params): Mark the |
| newly created variable as DECL_IGNORED_P. |
| |
| 2017-07-04 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/81293 |
| * ipa-inline.c (inline_small_functions): |
| Use xstrdup_for_dump. |
| |
| 2017-07-04 Tom de Vries <tom@codesourcery.com> |
| |
| * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK. |
| |
| 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| PR target/81033 |
| * config/darwin.c (darwin_function_switched_text_sections): |
| Fix spaces. |
| |
| 2017-07-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up. |
| |
| 2017-07-03 Richard Earnshaw <rearnsha@arm.com> |
| |
| * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound, |
| min_profitable_iters, and th as inclusive lower bounds. |
| Fix LOOP_VINFO_PEELING_FOR_GAPS condition. |
| (vect_estimate_min_profitable_iters): Return inclusive lower bounds |
| for min_profitable_iters and min_profitable_estimate. |
| (vect_transform_loop): Treat th as an inclusive lower bound. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. |
| |
| 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| PR target/81033 |
| * config/darwin.c (darwin_function_switched_text_sections): |
| Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw |
| in two pieces, and suppress the use of buf. |
| |
| 2017-07-03 Nathan Sidwell <nathan@acm.org> |
| |
| * hash-table.h (hash_table_mod1): Fix indentation. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/81290 |
| * predict.c (force_edge_cold): Be more careful about propagation |
| backward. |
| * profile-count.h (profile_probability::guessed, |
| profile_probability::fdo, profile_count::guessed, profile_count::fdo): |
| New. |
| * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed. |
| |
| 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * doc/invoke.texi (rcpc architecture extension): Document it. |
| |
| 2017-07-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/60510 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in |
| the scalar reduction PHI and use it. |
| (vectorizable_reduction): Properly guard the single_defuse_cycle |
| path for non-SLP reduction chains where we cannot use it. |
| Rework reduc_def/index and vector type deduction. Rework |
| vector operand gathering during reduction op code-gen. |
| * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction |
| chains dissolve the chain and leave it to non-SLP reduction |
| handling. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (dr_alignment): Declare. |
| * tree-data-ref.c (dr_alignment): New function. |
| * tree-vectorizer.h (dataref_aux): Remove base_element_aligned. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't |
| set it. |
| * tree-vect-stmts.c (vectorizable_store): Use dr_alignment. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (innermost_loop_behavior): Add base_alignment |
| and base_misalignment fields. |
| (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros. |
| * tree-data-ref.c: Include builtins.h. |
| (dr_analyze_innermost): Set up the new innmost_loop_behavior fields. |
| * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro. |
| (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise. |
| * tree-vect-data-refs.c: Include tree-cfg.h. |
| (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior |
| fields instead of calculating an alignment here. |
| (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new |
| innermost_loop_behavior fields. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment |
| field. |
| (DR_STEP_ALIGNMENT): New macro. |
| * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise. |
| * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment. |
| (create_data_ref): Print it. |
| * tree-vect-stmts.c (vectorizable_load): Use the step alignment |
| to tell whether the step preserves vector (mis)alignment. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. |
| Move the check for an integer step and generalise to all INTEGER_CST. |
| (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP. |
| Print the outer step alignment. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to |
| with offset_alignment. |
| (DR_ALIGNED_TO): Delete. |
| (DR_OFFSET_ALIGNMENT): New macro. |
| * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete. |
| (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro. |
| * tree-data-ref.c (dr_analyze_innermost): Update after above changes. |
| (create_data_ref): Likewise. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. |
| (vect_analyze_data_refs): Likewise. |
| * tree-if-conv.c (if_convertible_loop_p_1): Use memset before |
| creating dummy innermost behavior. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument |
| with a "innermost_loop_behavior *" and refeence tree. |
| * tree-data-ref.c (dr_analyze_innermost): Likewise. |
| (create_data_ref): Update call accordingly. |
| * tree-predcom.c (find_looparound_phi): Likewise. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_* |
| fields with dr_wrt_vec_loop. |
| (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET) |
| (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly. |
| (STMT_VINFO_DR_WRT_VEC_LOOP): New macro. |
| (vect_dr_behavior): New function. |
| (vect_create_addr_base_for_vector_ref): Remove loop parameter. |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use |
| vect_dr_behavior. Use a step_preserves_misalignment_p boolean to |
| track whether the step preserves the misalignment. |
| (vect_create_addr_base_for_vector_ref): Remove loop parameter. |
| Use vect_dr_behavior. |
| (vect_setup_realignment): Update call accordingly. |
| (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior. |
| * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update |
| call to vect_create_addr_base_for_vector_ref. |
| (vect_create_cond_for_align_checks): Likewise. |
| * tree-vect-patterns.c (vect_recog_bool_pattern): Copy |
| STMT_VINFO_DR_WRT_VEC_LOOP as a block. |
| (vect_recog_mask_conversion_pattern): Likewise. |
| * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior. |
| (new_stmt_vec_info): Remove redundant zeroing. |
| |
| 2017-07-03 Richard Earnshaw <rearnsha@arm.com> |
| |
| * common/config/arm/arm-common.c (arm_be8_option): New function. |
| * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8. |
| (ISA_ARMv6): Add isa_bit_be8. |
| * config/arm/arm.h (arm_be8_option): Add prototype. |
| (BE8_SPEC_FUNCTION): New define. |
| (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION. |
| * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian. |
| (mlittle-endian): Similarly. |
| (mbe8, mbe32): New options. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option. |
| * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-cfgcleanup.c (want_merge_blocks_p): New function. |
| (cleanup_tree_cfg_bb): Use it. |
| * profile-count.h (profile_count::of_for_merging, profile_count::merge): |
| New functions. |
| * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/81285 |
| * loop-doloop.c (add_test): Update profile. |
| |
| 2017-07-03 Martin Liska <mliska@suse.cz> |
| |
| PR sanitize/81040 |
| * sanopt.c (rewrite_usage_of_param): New function. |
| (sanitize_rewrite_addressable_params): Likewise. |
| (pass_sanopt::execute): Call rewrite_usage_of_param. |
| |
| 2017-07-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert |
| back to using VIEW_CONVERT_EXPR. |
| |
| 2017-07-03 Martin Liska <mliska@suse.cz> |
| |
| PR other/78366 |
| * doc/extend.texi: Document when a resolver function is |
| generated for target_clones. |
| |
| 2017-07-03 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_emit_stack_protection): Unpoison just red zones |
| and shadow memory of auto variables which are subject of |
| use-after-scope sanitization. |
| (asan_expand_mark_ifn): Add do set only when is_poison. |
| |
| 2016-07-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze |
| reduction PHIs. |
| (vect_force_simple_reduction): Record reduction def -> phi mapping. |
| (vectorizable_reduction): Perform reduction PHI creation when |
| visiting a reduction PHI and adjust and simplify code generation |
| phase of the reduction op. Cache dts, use fold_binary, not fold_build2. |
| (vect_transform_loop): Visit reduction PHIs. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction |
| defs into the SLP tree. |
| (vect_build_slp_tree): Reduction defs terminate the recursion. |
| * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup |
| of reduction defs. |
| (vect_get_vec_defs_for_stmt_copy): Export. |
| (vect_get_vec_defs): Likewise. |
| * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def |
| purpose. |
| (vect_get_vec_defs_for_stmt_copy): Declare. |
| (vect_get_vec_defs): Likewise. |
| |
| 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.c (dr_analyze_innermost): Replace the "nest" |
| parameter with a "loop" parameter and use it instead of the |
| loop containing DR_STMT. Don't check simple_iv when doing |
| BB analysis. Describe the two analysis modes in the comment. |
| |
| 2017-07-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/69468 |
| * tree-ssa-tail-merge.c (ignore_edge_flags): New constant. |
| (find_same_succ_bb): Handle ignore_edge_flags. |
| |
| 2017-07-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/81192 |
| * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in |
| hash. |
| (same_succ::equal): Don't find bbs to be equal if bb->loop_father |
| differs. |
| (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch. |
| |
| 2017-07-03 Tom de Vries <tom@codesourcery.com> |
| |
| PR tree-optimization/81192 |
| * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle |
| BB_SAME_SUCC (bb) == NULL. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability |
| consistency. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * dumpfile.c: Include profile-count.h |
| * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes; |
| update profile. |
| (insert_cond_bb): Update profile. |
| * tree-cfg.h (insert_cond_bb): Update prototype. |
| * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update. |
| * tree-dump.c: Do not include tree-cfg. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (fix_up_crossing_landing_pad): Update profile. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * expect.c (dw2_build_landing_pads): Update profile of the landing pad |
| bb. |
| |
| 2017-07-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-complex.c (expand_complex_div_wide): update profile. |
| |
| 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * Makefile.in (MACHMODE_H): Remove insn-modes.h |
| (CORETYPES_H): New define. |
| (MOSTLYCLEANFILES): Add insn-modes-inline.h. |
| (insn-modes-inline.h, s-modes-inline-h): New rules. |
| (generated_files): Add insn-modes-inline.h. |
| (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h. |
| (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise. |
| (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise. |
| (build/vec.o, build/hash-table.o, build/inchash.o): Likewise. |
| (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise. |
| (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise. |
| (build/gencodes.o, build/genconditions.o): Likewise. |
| (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise. |
| (build/genenums.o, build/genextract.o, build/genflags.o): Likewise. |
| (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o) |
| (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise. |
| (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise. |
| (build/gencfn-macros.o, build/gcov-iov.o): Likewise. |
| * coretypes.h: Include everything up to real.h for generators. |
| Include insn-modes.h first. Include wide-int-print.h after |
| wide-int.h. Include insn-modes-inline.h and then machmode.h. |
| * machmode.h: Don't include insn-modes.h here. |
| * function-tests.c: Remove includes of signop.h, machmode.h, |
| double-int.h and wide-int.h. |
| * rtl.h: Likewise. |
| * gcc-rich-location.c: Remove includes of machmode.h, double-int.h |
| and wide-int.h. |
| * optc-save-gen.awk: Likewise. |
| * gencheck.c (BITS_PER_UNIT): Delete dummy definition. |
| * godump.c: Remove include of wide-int-print.h. |
| * pretty-print.h: Likewise. |
| * wide-int-print.cc: Likewise. |
| * wide-int.cc: Likewise. |
| * hash-map-tests.c: Remove include of signop.h. |
| * hash-set-tests.c: Likewise. |
| * rtl-tests.c: Likewise. |
| * mkconfig.sh: Remove include of machmode.h. |
| * genmodes.c (emit_insn_modes_h): Split emission of inline functions |
| into... |
| (emit_insn_modes_inline_h): ...this new function. Emit the code |
| into an insn-modes-inline.h header file, adding appropriate |
| include guards and end comments. |
| (emit_insn_modes_c_header): Remove include of machmode.h. |
| (emit_min_insn_modes_c_header): Include coretypes.h rather than |
| machmode.h. |
| (main): Handle -i flag and call emit_insn_modes_inline_h when |
| it is passed. |
| |
| 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-ssa-strlen.c (strinfo): Rename the length field to |
| nonzero_chars. Add a full_string_p field. |
| (compare_nonzero_chars, zero_length_string_p): New functions. |
| (get_addr_stridx): Add an offset_out parameter. |
| Use compare_nonzero_chars. |
| (get_stridx): Update accordingly. Use compare_nonzero_chars. |
| (new_strinfo): Update after above changes to strinfo. |
| (set_endptr_and_length): Set full_string_p. |
| (get_string_length): Update after above changes to strinfo. |
| (unshare_strinfo): Update call to new_strinfo. |
| (maybe_invalidate): Likewise. |
| (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT. |
| Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars |
| as a uhwi instead of an shwi. Update after above changes to |
| strinfo and new_strinfo. |
| (zero_length_string): Assert that chainsi contains full strings. |
| Use zero_length_string_p. Update call to new_strinfo. |
| (adjust_related_strinfos): Update after above changes to strinfo. |
| Copy full_string_p from origsi. |
| (adjust_last_stmt): Use zero_length_string_p. |
| (handle_builtin_strlen): Update after above changes to strinfo and |
| new_strinfo. Install the lhs as the string length if the previous |
| entry didn't describe a full string. |
| (handle_builtin_strchr): Update after above changes to strinfo |
| and new_strinfo. |
| (handle_builtin_strcpy): Likewise. |
| (handle_builtin_strcat): Likewise. |
| (handle_builtin_malloc): Likewise. |
| (handle_pointer_plus): Likewise. |
| (handle_builtin_memcpy): Likewise. Track nonzero characters |
| that aren't necessarily followed by a nul terminator. |
| (handle_char_store): Likewise. |
| |
| 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/80769 |
| * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used |
| for malloc and calloc. Document the new invariant that all related |
| strinfos have delayed lengths or none do. |
| (verify_related_strinfos): Move earlier in file. |
| (set_endptr_and_length): New function, split out from... |
| (get_string_length): ...here. Also set the lengths of related |
| strinfos. |
| (zero_length_string): Assert that chainsi has known (rather than |
| delayed) lengths. |
| (adjust_related_strinfos): Likewise. |
| |
| 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR tree-optimization/81136 |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only |
| assert that two references with the same misalignment have the same |
| compile-time misalignment if those compile-time misalignments |
| are known. |
| |
| 2017-07-01 Andi Kleen <ak@linux.intel.com> |
| |
| * print-tree.c (print_node): Print all attributes. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfg.c (scale_bbs_frequencies): New function. |
| * cfg.h (scale_bbs_frequencies): Declare it. |
| * cfgloopanal.c (single_likely_exit): Cleanup. |
| * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability |
| as parameter. |
| (scale_loop_profile): Likewise. |
| (loop_version): Likewise. |
| (create_empty_loop_on_edge): Update. |
| * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile, |
| scale_loop_frequencies, scale_loop_profile, loopify, |
| loop_version): Update prototypes. |
| * modulo-sched.c (sms_schedule): Update. |
| * predict.c (unlikely_executed_edge_p): Also check probability. |
| (probably_never_executed_edge_p): Fix typo. |
| * tree-if-conv.c (version_loop_for_if_conversion): Update. |
| * tree-parloops.c (gen_parallel_loop): Update. |
| * tree-ssa-loop-ivcanon.c (try_peel_loop): Update. |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. |
| * tree-ssa-loop-split.c (split_loop): Update. |
| * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. |
| * tree-vect-loop-manip.c (vect_do_peeling): Update. |
| (vect_loop_versioning): Update. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): Update. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * trans-mem.c (split_bb_make_tm_edge): Update profile. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-if-conv.c (combine_blocks): Use make_single_succ_edge |
| to keep profile consistent. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgrtl.c (rtl_flow_call_edges_add): Update profile. |
| * tree-cfg.c (gimple_flow_call_edges_add): Likewise. |
| * profile-count.h (max_safe_multiplier): Make unsigned. |
| (profile_count::guessed_zero): New. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * bb-reorder.c (fix_up_crossing_landing_pad, |
| fix_crossing_conditional_branches): Use make_single_succ_edge |
| to keep profile consistent. |
| |
| 2017-07-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge |
| to update profile. |
| |
| 2017-07-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81262 |
| * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to |
| the right scopes, make sure cond_jump isn't preserved between multiple |
| iterations. Search for fallthru edge whenever there are 3+ edges and |
| use find_fallthru_edge for it. |
| |
| 2017-06-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| Patch by Alexander Monakov <amonakov@ispras.ru> |
| * sel-sched-ir.c (compute_succs_info): Handle uninitialized |
| probabilities consistently. |
| |
| 2017-06-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * pa.c (pa_expand_compare_and_swap_loop): Update call of |
| emit_cmp_and_jump_insns. |
| |
| 2017-06-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/81261 |
| * tree-inline.c (expand_call_inline): Combine profile statuses. |
| |
| 2017-06-30 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if |
| fold_stmt returned true. |
| |
| 2017-06-30 Nathan Sidwell <nathan@acm.org> |
| |
| * ggc.h (empty_string): Delete. |
| * cfgexpand.c (expand_asm_stmt): Use plain "". |
| * optabs.c (expand_asm_memory_barrier): Likewise. |
| * stringpool.c (empty_string): Delete. |
| (digit_vector, digit_string): Delete. |
| (ggc_alloc_string): Use plain "", don't optimize single digit |
| strings. Use ggc_alloc_atomic. |
| |
| 2017-06-30 Richard Earnshaw <rearnsha@arm.com> |
| |
| * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one |
| comparison set and one other set, use the cost of the non-comparison |
| set. |
| |
| 2017-06-30 Nathan Sidwell <nathan@acm.org> |
| |
| * ggc.h: Replace all 'static inline' with plain 'inline'. Fix |
| some formatting. |
| |
| 2017-06-30 Peter Bergner <bergner@vnet.ibm.com> |
| |
| * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing |
| loops. Remove now unneeded calls to gimple_switch_set_label() that |
| just set removed labels to NULL_TREE. |
| |
| 2017-06-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssanames.c (set_range_info_raw): Abstract from ... |
| (set_range_info): ...here. Only call set_range_info_raw if domain |
| is useful. |
| (set_nonzero_bits): Call set_range_info_raw. |
| * tree-ssanames.h (set_range_info_raw): New. |
| |
| 2017-06-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81225 |
| * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI, |
| V16FI and VI8F_256 iterators, use <store_mask_predicate> instead |
| of nonimmediate_operand and <store_mask_constraint> instead of m |
| for the input operand. For V8FI iterator, always split if input |
| is a MEM. For V16FI and V8SF_256 iterators, don't test if both |
| operands are MEM if <mask_applied>. For VI4F_256 iterator, use |
| <store_mask_predicate> instead of register_operand and |
| <store_mask_constraint> instead of v for the input operand. Make |
| sure both operands aren't MEMs for if not <mask_applied>. |
| |
| 2017-06-30 Sylvestre Ledru <sylvestre@debian.org> |
| |
| * lto-wrapper.c (copy_file) Close both file descriptors before |
| exiting normally. |
| |
| 2017-06-30 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/81214 |
| * multiple_target.c (create_dispatcher_calls): Make ifunc |
| also for function that don't have calls or are not referenced. |
| |
| 2017-06-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_slp_analyze_node_operations): Only |
| analyze the first scalar stmt. Move vector type computation |
| for the BB case here from ... |
| * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard |
| live operation processing in the SLP case properly. |
| |
| 2017-06-30 Richard Biener <rguenther@suse.de> |
| |
| * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax. |
| |
| 2017-06-30 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81021 |
| * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN |
| before BUILT_IN_UNWIND_RESUME when ASAN is used. |
| |
| 2017-06-30 Yvan Roux <yvan.roux@linaro.org> |
| |
| * doc/invoke.texi (AArch64): Add missing options and remove redundant |
| ones. |
| |
| 2017-06-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81249 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert |
| condition reduction result to original scalar type. |
| |
| 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * profile-count.h (enum profile_quality): Fix typos and whitespace |
| issues. |
| |
| 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_setmem): Adjust to the new data |
| type for branch probabilities. |
| |
| 2017-06-29 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry. |
| * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type. |
| (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag. |
| (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH. |
| |
| 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the |
| check for CC usage into AARCH64_FUSE_CMP_BRANCH. |
| * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for |
| CC usage from generic code to here. |
| * sched-deps.c (sched_macro_fuse_insns): Move the condition for |
| CC usage into the target macros. |
| |
| 2017-06-29 Maya Rashish <coypu@sdf.org> |
| |
| * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared |
| objects. |
| |
| 2017-06-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * arm/arm-builtins.c: Include profile-count.h |
| * except.c (sjlj_emit_function_enter): Use |
| profile_probability::unlikely. |
| |
| 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base |
| and tocrel_offset be pointer args rather than implicitly using |
| static versions. |
| (legitimate_constant_pool_address_p, rs6000_emit_move, |
| const_load_sequence_p, adjust_vperm): Add local tocrel_base and |
| tocrel_offset and use in toc_relative_expr_p call. |
| (print_operand, print_operand_address): Use static tocrel_base_oac |
| and tocrel_offset_oac. |
| (rs6000_output_addr_const_extra): Use static tocrel_base_oac and |
| tocrel_offset_oac. |
| |
| 2017-06-29 Maya Rashish <coypu@sdf.org> |
| |
| * config/vax/builtins.md (ffssi2_internal): Correct constraint. |
| |
| 2017-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned |
| objects, take into account only the alignment of 'op0' and 'mode1' if |
| 'op0' is a MEM. |
| |
| 2017-06-29 Steve Ellcey <sellcey@cavium.com> |
| |
| * ccmp.c (ccmp_tree_comparison_p): New function. |
| (ccmp_candidate_p): Update to use above function. |
| (get_compare_parts): New function. |
| (expand_ccmp_next): Update to use new functions. |
| (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use |
| new functions. |
| (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1, |
| take mode as argument. |
| * ccmp.h (expand_ccmp_expr): Add mode as argument. |
| * expr.c (expand_expr_real_1): Pass mode as argument. |
| |
| 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (combine_instructions): Print insns to dump_file, together |
| with their costs. |
| |
| 2017-06-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * asan.c (asan_emit_stack_protection): Update. |
| (create_cond_insert_point): Update. |
| * auto-profile.c (afdo_propagate_circuit): Update. |
| * basic-block.h (struct edge_def): Turn probability to |
| profile_probability. |
| (EDGE_FREQUENCY): Update. |
| * bb-reorder.c (find_traces_1_round): Update. |
| (better_edge_p): Update. |
| (sanitize_hot_paths): Update. |
| * cfg.c (unchecked_make_edge): Initialize probability to uninitialized. |
| (make_single_succ_edge): Update. |
| (check_bb_profile): Update. |
| (dump_edge_info): Update. |
| (update_bb_profile_for_threading): Update. |
| * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge |
| probabilitycount to 0. |
| * cfgbuild.c (compute_outgoing_frequencies): Update. |
| * cfgcleanup.c (try_forward_edges): Update. |
| (outgoing_edges_match): Update. |
| (try_crossjump_to_edge): Update. |
| * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge. |
| (expand_gimple_tailcall): Update. |
| (construct_init_block): Use make_single_succ_edge. |
| (construct_exit_block): Use make_single_succ_edge. |
| * cfghooks.c (verify_flow_info): Update. |
| (redirect_edge_succ_nodup): Update. |
| (split_edge): Update. |
| (account_profile_record): Update. |
| * cfgloopanal.c (single_likely_exit): Update. |
| * cfgloopmanip.c (scale_loop_profile): Update. |
| (set_zero_probability): Remove. |
| (duplicate_loop_to_header_edge): Update. |
| * cfgloopmanip.h (loop_version): Update prototype. |
| * cfgrtl.c (try_redirect_by_replacing_jump): Update. |
| (force_nonfallthru_and_redirect): Update. |
| (update_br_prob_note): Update. |
| (rtl_verify_edges): Update. |
| (purge_dead_edges): Update. |
| (rtl_lv_add_condition_to_bb): Update. |
| * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update. |
| * cgraphunit.c (init_lowered_empty_function): Update. |
| (cgraph_node::expand_thunk): Update. |
| * cilk-common.c: Include profile-count.h |
| * dojump.c (inv): Remove. |
| (jumpifnot): Update. |
| (jumpifnot_1): Update. |
| (do_jump_1): Update. |
| (do_jump): Update. |
| (do_jump_by_parts_greater_rtx): Update. |
| (do_compare_rtx_and_jump): Update. |
| * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump, |
| do_jump_1. do_compare_rtx_and_jump): Update prototype. |
| * dwarf2cfi.c: Include profile-count.h |
| * except.c (dw2_build_landing_pads): Use make_single_succ_edge. |
| (sjlj_emit_dispatch_table): Likewise. |
| * explow.c: Include profile-count.h |
| * expmed.c (emit_store_flag_force): Update. |
| (do_cmp_and_jump): Update. |
| * expr.c (compare_by_pieces_d::generate): Update. |
| (compare_by_pieces_d::finish_mode): Update. |
| (emit_block_move_via_loop): Update. |
| (store_expr_with_bounds): Update. |
| (store_constructor): Update. |
| (expand_expr_real_2): Update. |
| (expand_expr_real_1): Update. |
| * expr.h (try_casesi, try_tablejump): Update prototypes. |
| * gimple-pretty-print.c (dump_probability): Update. |
| (dump_profile): New. |
| (dump_gimple_label): Update. |
| (dump_gimple_bb_header): Update. |
| * graph.c (draw_cfg_node_succ_edges): Update. |
| * hsa-gen.c (convert_switch_statements): Update. |
| * ifcvt.c (cheap_bb_rtx_cost_p): Update. |
| (find_if_case_1): Update. |
| (find_if_case_2): Update. |
| * internal-fn.c (expand_arith_overflow_result_store): Update. |
| (expand_addsub_overflow): Update. |
| (expand_neg_overflow): Update. |
| (expand_mul_overflow): Update. |
| (expand_vector_ubsan_overflow): Update. |
| * ipa-cp.c (good_cloning_opportunity_p): Update. |
| * ipa-split.c (split_function): Use make_single_succ_edge. |
| * ipa-utils.c (ipa_merge_profiles): Update. |
| * loop-doloop.c (add_test): Update. |
| (doloop_modify): Update. |
| * loop-unroll.c (compare_and_jump_seq): Update. |
| (unroll_loop_runtime_iterations): Update. |
| * lra-constraints.c (lra_inheritance): Update. |
| * lto-streamer-in.c (input_cfg): Update. |
| * lto-streamer-out.c (output_cfg): Update. |
| * mcf.c (adjust_cfg_counts): Update. |
| * modulo-sched.c (sms_schedule): Update. |
| * omp-expand.c (expand_omp_for_init_counts): Update. |
| (extract_omp_for_update_vars): Update. |
| (expand_omp_ordered_sink): Update. |
| (expand_omp_for_ordered_loops): Update. |
| (expand_omp_for_generic): Update. |
| (expand_omp_for_static_nochunk): Update. |
| (expand_omp_for_static_chunk): Update. |
| (expand_cilk_for): Update. |
| (expand_omp_simd): Update. |
| (expand_omp_taskloop_for_outer): Update. |
| (expand_omp_taskloop_for_inner): Update. |
| * omp-simd-clone.c (simd_clone_adjust): Update. |
| * optabs.c (expand_doubleword_shift): Update. |
| (expand_abs): Update. |
| (emit_cmp_and_jump_insn_1): Update. |
| (expand_compare_and_swap_loop): Update. |
| * optabs.h (emit_cmp_and_jump_insns): Update prototype. |
| * predict.c (predictable_edge_p): Update. |
| (edge_probability_reliable_p): Update. |
| (set_even_probabilities): Update. |
| (combine_predictions_for_insn): Update. |
| (combine_predictions_for_bb): Update. |
| (propagate_freq): Update. |
| (estimate_bb_frequencies): Update. |
| (force_edge_cold): Update. |
| * profile-count.c (profile_count::dump): Add missing space into dump. |
| (profile_count::debug): Add newline. |
| (profile_count::differs_from_p): Explicitly convert to unsigned. |
| (profile_count::stream_in): Update. |
| (profile_probability::dump): New member function. |
| (profile_probability::debug): New member function. |
| (profile_probability::differs_from_p): New member function. |
| (profile_probability::differs_lot_from_p): New member function. |
| (profile_probability::stream_in): New member function. |
| (profile_probability::stream_out): New member function. |
| * profile-count.h (profile_count_quality): Rename to ... |
| (profile_quality): ... this one. |
| (profile_probability): New. |
| (profile_count): Update. |
| * profile.c (compute_branch_probabilities): Update. |
| * recog.c (peep2_attempt): Update. |
| * sched-ebb.c (schedule_ebbs): Update. |
| * sched-rgn.c (find_single_block_region): Update. |
| (compute_dom_prob_ps): Update. |
| (schedule_region): Update. |
| * sel-sched-ir.c (compute_succs_info): Update. |
| * stmt.c (struct case_node): Update. |
| (do_jump_if_equal): Update. |
| (get_outgoing_edge_probs): Update. |
| (conditional_probability): Update. |
| (emit_case_dispatch_table): Update. |
| (expand_case): Update. |
| (expand_sjlj_dispatch_table): Update. |
| (emit_case_nodes): Update. |
| * targhooks.c: Update. |
| * tracer.c (better_p): Update. |
| (find_best_successor): Update. |
| * trans-mem.c (expand_transaction): Update. |
| * tree-call-cdce.c: Update. |
| * tree-cfg.c (gimple_split_edge): Upate. |
| (move_sese_region_to_fn): Upate. |
| * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate. |
| * tree-eh.c (lower_resx): Upate. |
| (cleanup_empty_eh_move_lp): Upate. |
| * tree-if-conv.c (version_loop_for_if_conversion): Update. |
| * tree-inline.c (copy_edges_for_bb): Update. |
| (copy_cfg_body): Update. |
| * tree-parloops.c (gen_parallel_loop): Update. |
| * tree-profile.c (gimple_gen_ic_func_profiler): Update. |
| (gimple_gen_time_profiler): Update. |
| * tree-ssa-dce.c (remove_dead_stmt): Update. |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Update. |
| * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. |
| (unloop_loops): Update. |
| (try_peel_loop): Update. |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. |
| * tree-ssa-loop-split.c (connect_loops): Update. |
| (split_loop): Update. |
| * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. |
| (hoist_guard): Update. |
| * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. |
| * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. |
| (value_replacement): Update. |
| * tree-ssa-reassoc.c (branch_fixup): Update. |
| * tree-ssa-tail-merge.c (replace_block_by): Update. |
| * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. |
| (create_edge_and_update_destination_phis): Update. |
| (compute_path_counts): Update. |
| (recompute_probabilities): Update. |
| (update_joiner_offpath_counts): Update. |
| (freqs_to_counts_path): Update. |
| (duplicate_thread_path): Update. |
| * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. |
| (struct switch_conv_info): Update. |
| (gen_inbound_check): Update. |
| * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. |
| (vect_do_peeling): Update. |
| (vect_loop_versioning): Update. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): Update. |
| (optimize_mask_stores): Update. |
| * ubsan.c (ubsan_expand_null_ifn): Update. |
| * value-prof.c (gimple_divmod_fixed_value): Update. |
| (gimple_divmod_fixed_value_transform): Update. |
| (gimple_mod_pow2): Update. |
| (gimple_mod_pow2_value_transform): Update. |
| (gimple_mod_subtract): Update. |
| (gimple_mod_subtract_transform): Update. |
| (gimple_ic): Update. |
| (gimple_stringop_fixed_value): Update. |
| (gimple_stringops_transform): Update. |
| * value-prof.h: Update. |
| |
| 2017-06-29 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for built-in functions |
| vector signed int vec_signed (vector float); |
| vector signed long long vec_signed (vector double); |
| vector signed int vec_signed2 (vector double, vector double); |
| vector signed int vec_signede (vector double); |
| vector signed int vec_signedo (vector double); |
| * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add |
| instruction generator. |
| * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, |
| UNSPEC_VSX_VSIGNED2): Add UNSPECS. |
| (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df): |
| Add define_insn. |
| (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df, |
| vunsignede_v2df): Add define_expands. |
| * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED, |
| VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO, |
| VEC_UNSIGNEDO): Add definitions. |
| * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, |
| UNSPEC_VSX_VSIGNED2): Add UNSPECs. |
| (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn. |
| (vsigned2_v2df, vsigendo_v2df, vsignede_v2df, |
| vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands. |
| * config/rs6000/altivec.h (vec_signed, vec_signed2, |
| vec_signede and vec_signedo, vec_unsigned, vec_unsigned2, |
| vec_unsignede, vec_unsignedo): Add builtin defines. |
| * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern |
| declaration. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-06-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add |
| reduction chains to LOOP_VINFO_REDUCTIONS. |
| * tree-vect-slp.c (vect_analyze_slp): Continue looking for |
| SLP reductions after processing reduction chains. |
| |
| 2017-06-29 Nathan Sidwell <nathan@acm.org> |
| |
| * builtins.c (fold_builtin_FUNCTION): Use |
| lang_hooks.decl_printable_name. |
| |
| 2017-06-29 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/81194 |
| * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements |
| with only one label. |
| * stmt.c (expand_case): Assert NCASES is greater than one. |
| |
| 2017-06-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (group_case_labels_stmt): Return whether we changed |
| anything. |
| (group_case_labels): Likewise. |
| (find_taken_edge): Push sanity checking on val to workers... |
| (find_taken_edge_cond_expr): ... here |
| (find_taken_edge_switch_expr): ... and here, handle cases |
| with just a default label. |
| * tree-cfg.h (group_case_labels_stmt): Adjust prototype. |
| (group_case_labels): Likewise. |
| * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When |
| group_case_labels does anything cleanup the CFG again. |
| |
| 2017-06-29 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/81196 |
| * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop |
| exit condition comparing two IVs. |
| |
| 2017-06-29 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/parsecpu.awk (gen_comm_data): Add initializer for |
| profile to the dummy entry at the end of the list of architectures. |
| * config/arm/arm-cpu-cdata.h: Regenerated. |
| |
| 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| Michael Collison <michael.collison@arm.com> |
| |
| PR target/70119 |
| * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1): |
| New pattern. |
| (*aarch64_reg_<mode>3_neg_mask2): New pattern. |
| (*aarch64_reg_<mode>3_minus_mask): New pattern. |
| (*aarch64_<optab>_reg_di3_mask2): New pattern. |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost |
| of shift when the shift amount is masked with constant equal to |
| the size of the mode. |
| * config/aarch64/predicates.md (subreg_lowpart_operator): New |
| predicate. |
| |
| 2017-06-29 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.opt: Change range from [1,5] to [0,5]. |
| |
| 2017-06-29 Yury Gribov <tetra2005@gmail.com> |
| |
| PR bootstrap/80565 |
| * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization |
| code. |
| * ipa-inline.h |
| (edge_growth_cache_entry::edge_growth_cache_entry): New |
| function. |
| (reset_edge_growth_cache): Update to use constructor. |
| |
| 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. |
| (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. |
| (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. |
| |
| 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) |
| (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics. |
| |
| 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config.gcc (*-linux-musl*): Add t-musl tmake_file. |
| (*-linux-uclibc*): Add t-uclibc tmake_file. |
| * config/t-musl: New. |
| * config/t-uclibc: New. |
| |
| 2017-06-28 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/parsecpu.awk (profile): Parse new keyword in an arch |
| context. |
| (gen_comm_data): Emit architectural setting of arch_prof. |
| * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the |
| profile. |
| (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise. |
| (armv8-m.base, armv8-m.main): Likewise. |
| * arm-protos.h (arm_build_target): Add profile field. |
| (arch_option): Likewise. |
| * config/arm/arm.c (arm_configure_build_target): Copy the profile to |
| the active target. |
| * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use |
| arm_active_target.profile. |
| |
| 2017-06-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81227 |
| * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not |
| TYPE_OVERFLOW_WRAPS. |
| * match.pd (negate_expr_p): Likewise. |
| * tree-ssa-reassoc.c (optimize_range_tests_diff): Use |
| fold_build2, not fold_binary. |
| |
| 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64 (aarch64_expand_mov_immediate): |
| Convert memory address to Pmode. |
| (aarch64_print_operand): Assert MEM operands are always Pmode. |
| |
| 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/79665 |
| * config/arm/aarch-common.c (arm_no_early_alu_shift_dep): |
| Remove redundant if. |
| (aarch_forward_to_shift_is_not_shifted_reg): Remove. |
| * config/arm/aarch-common-protos.h |
| (aarch_forward_to_shift_is_not_shifted_re): Remove. |
| * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass. |
| |
| 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR ipa/81238 |
| * multiple_target.c (create_dispatcher_calls): Set the default |
| clone to be static, not public. |
| |
| 2017-06-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vectorizable_reduction): Move special |
| cond reduction IV var creation ... |
| (vect_create_epilog_for_reduction): ... here. Remove induction_index |
| parameter. Use STMT_VINFO_VECTYPE. |
| * tree-vect-slp.c (vect_get_constant_vectors): Properly reset |
| constant_p. |
| |
| 2017-06-28 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/81128 |
| * ipa-visibility.c (non_local_p): Handle visibility. |
| |
| 2017-06-28 Martin Liska <mliska@suse.cz> |
| |
| PR driver/79659 |
| * common.opt: Add IntegerRange to various options. |
| * opt-functions.awk (integer_range_info): New function. |
| * optc-gen.awk: Add integer_range_info to cl_options struct. |
| * opts-common.c (decode_cmdline_option): Handle |
| CL_ERR_INT_RANGE_ARG. |
| (cmdline_handle_error): Likewise. |
| * opts.c (print_filtered_help): Show valid interval in |
| when --help is provided. |
| * opts.h (struct cl_option): Add range_min and range_max fields. |
| * config/i386/i386.opt: Add IntegerRange for -mbranch-cost. |
| |
| 2017-06-28 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^. |
| (x * C EQ/NE y * C): New transformation. |
| |
| 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * genmultilib (combination_space): Accept '+' in option names. |
| |
| 2017-06-28 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/81224 |
| * asan.c (instrument_derefs): Bail out inner references |
| that are hard register variables. |
| |
| 2017-06-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81175 |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin |
| rather than def_builtin_pure for __builtin_ia32_gatherpf*. |
| |
| 2017-06-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_vec_defs): Remove. |
| (vect_get_slp_defs): Adjust. |
| * tree-vect-loop.c (get_initial_defs_for_reduction): Split |
| out from ... |
| * tree-vect-slp.c (vect_get_constant_vectors): ... here and |
| simplify. |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Use |
| get_initial_defs_for_reduction instead of vect_get_vec_defs. |
| (vectorizable_reduction): Adjust. |
| * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction |
| handling. |
| (vect_get_slp_defs): Likewise. |
| * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust. |
| (vectorizable_bswap): Adjust. |
| (vectorizable_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_condition): Likewise. |
| (vectorizable_comparison): Likewise. |
| |
| 2017-06-28 Michael Collison <michael.collison@arm.com> |
| |
| PR target/68535 |
| * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary |
| set of base_reg |
| (arm_gen_movmemqi): Removed unused variable 'i'. |
| Convert 'for' loop into 'while' loop. |
| (arm_expand_prologue): Remove last unnecessary set of insn. |
| (thumb_pop): Remove unused variable 'pushed_words'. |
| (thumb_exit): Remove last unnecessary set of regs_to_pop. |
| |
| 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md: Use s390_rel_address_ok_p. |
| * config/s390/s390-protos.h: Add prototype of |
| s390_rel_address_ok_p. |
| * config/s390/s390.c (s390_got_symbol): New function. |
| (s390_rel_address_ok_p): New function. |
| (legitimize_pic_address): Use s390_rel_address_ok_p. |
| (s390_load_got): Use s390_got_symbol. |
| (s390_option_override): Issue error if |
| -mno-pic-data-is-text-relative is used without -fpic/-fPIC. |
| * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): |
| New macro. |
| * config/s390/s390.opt: New option mpic-data-is-text-relative. |
| |
| 2017-06-27 Andrew Pinski <apinski@cavium.com> |
| |
| * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns. |
| (X * copysign (1.0, X)): New pattern. |
| (X * copysign (1.0, -X)): New pattern. |
| (copysign (-1.0, CST)): New pattern. |
| |
| 2017-06-27 Joseph Myers <joseph@codesourcery.com> |
| |
| * genmultilib (combination_space): Remove variable. |
| Validate reuse rules against regular expression for any sequence |
| of multilib options in any order. |
| |
| 2017-06-27 Michael Collison <michael.collison@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly |
| call aarch64_split_simd_combine. |
| * (aarch64_combine_internal<mode>): Delete pattern. |
| * config/aarch64/aarch64.c (aarch64_split_simd_combine): |
| Allow register and subreg operands. |
| |
| 2017-06-27 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target |
| specific need, just fallback on defaults. |
| (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define. |
| |
| 2017-06-27 Jerome Lambourg <lambourg@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct |
| map for 64bits. |
| (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit |
| targets. Pick a default if no particular attempt applied. |
| (STACK_CHECK_PROTECT): Double for 64bit targets, which have |
| larger contexts. |
| |
| 2017-06-27 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet. |
| (x86_64-wrs-vxworks7): Likewise. |
| |
| 2017-06-27 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/81223 |
| * ubsan.c (instrument_null): Check get_base_address's result for null. |
| |
| 2017-06-27 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations. |
| |
| 2017-06-27 Marc Glisse <marc.glisse@inria.fr> |
| |
| * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR, |
| BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types. |
| (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR, |
| BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT): |
| New function types. |
| * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV, |
| BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND, |
| BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT, |
| BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG, |
| BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT, |
| BUILT_IN_FEUPDATEENV): New builtins. |
| * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE, |
| TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries. |
| * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node, |
| fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New |
| macros. |
| (builtin_structptr_types): Adjust size. |
| * tree.c (builtin_structptr_types): Add four entries. |
| |
| 2017-06-27 Jerome Lambourg <lambourg@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ... |
| (TLS_SYM): New local macro, forcing reference to __tls__ on |
| link command lines for VxWorks 7 RTPs, triggering initialization |
| of tlsLib. |
| (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks |
| OS features TLS support, true for RTPs on VxWorks 7. |
| * config/vxworks.c (vxworks_override_options): Setup emutls |
| accordingly. |
| |
| 2017-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * predict.c (test_prediction_value_range): Use -1U instead of -1 |
| to avoid narrowing conversion warning. |
| * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast |
| to avoid narrowing conversion warning. |
| * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of |
| -1. |
| * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1. |
| |
| 2017-06-27 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for |
| 64bit configurations. |
| (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64. |
| (SIZE_TYPE): Likewise. |
| * config/vxworks.c (vxworks_emutls_var_fields): Use |
| long_unsigned_type_node instead of unsigned_type_node as the offset |
| field type, which is "pointer" mode in emutls.c. |
| |
| 2017-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81209 |
| * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var. |
| |
| PR middle-end/81207 |
| * gimple-fold.c (replace_call_with_call_and_fold): Handle |
| gimple_vuse copying separately from gimple_vdef copying. |
| |
| 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * value-prof.c (free_hist): Remove call to memset and the enclosing if |
| condition. |
| |
| 2017-06-26 Jerome Lambourg <lambourg@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines |
| for all vxworks7 targets. |
| * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0. |
| (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7. |
| (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing |
| variations for VX6/VX7 and 32/64bits later on in ... |
| (VXWORKS_LIB_SPEC): Leverage new macros. |
| (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7, |
| as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword. |
| |
| 2017-06-26 Jerome Lambourg <lambourg@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define |
| _VX_TOOL_FAMILY and _VX_TOOL to gnu. |
| |
| 2017-06-26 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c: Add support for built-in functions |
| vector bool char vec_reve (vector bool char); |
| vector signed char vec_reve (vector signed char); |
| vector unsigned char vec_reve (vector unsigned char); |
| vector bool int vec_reve (vector bool int); |
| vector signed int vec_reve (vector signed int); |
| vector unsigned int vec_reve (vector unsigned int); |
| vector bool long long vec_reve (vector bool long long); |
| vector signed long long vec_reve (vector signed long long); |
| vector unsigned long long vec_reve (vector unsigned long long); |
| vector bool short vec_reve (vector bool short); |
| vector signed short vec_reve (vector signed short); |
| vector double vec_reve (vector double); |
| vector float vec_reve (vector float); |
| * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI, |
| VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin. |
| * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC. |
| (altivec_vreve): New pattern. |
| * config/rs6000/altivec.h (vec_reve): New define. |
| * doc/extend.texi (vec_rev): Update the built-in documentation file |
| for the new built-in functions. |
| |
| 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/71815 |
| * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New |
| function. |
| (find_basis_for_candidate): Call uses_consumed_by_stmt rather than |
| has_single_use. |
| (slsr_process_phi): Likewise. |
| (replace_uncond_cands_and_profitable_phis): Don't replace a |
| multiply candidate with a stride of 1 (copy or cast). |
| (phi_incr_cost): Call uses_consumed_by_stmt rather than |
| has_single_use. |
| (lowest_cost_path): Likewise. |
| (total_savings): Likewise. |
| |
| 2017-06-26 Richard Biener <rguenther@suse.de> |
| |
| PR target/81175 |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins): |
| Use def_builtin_pure for all gather builtins. |
| |
| 2017-06-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81203 |
| * tree-tailcall.c (find_tail_calls): Do not move stmts into |
| non-dominating BBs. |
| |
| 2017-06-26 Marek Polacek <polacek@redhat.com> |
| |
| PR c/80116 |
| * doc/invoke.texi: Document -Wmultistatement-macros. |
| |
| 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/sourcebuild.texi (ARM-specific attributes): Document new |
| arm_neon_ok_no_float_abi effective target. |
| |
| 2017-06-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80928 |
| * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag. |
| (copy_bbs): Set BB_DUPLICATED flag early. |
| (execute_on_growing_pred): Do not execute for BB_DUPLICATED |
| marked blocks. |
| (execute_on_shrinking_pred): Likewise. |
| * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in |
| BB_DUPLICATED blocks. |
| * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly |
| iterate over all PHIs considering removal of *gsi. |
| |
| 2017-06-23 Jim Wilson <jim.wilson@linaro.org> |
| |
| * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and |
| qdf24xx. |
| |
| 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-string.c: (expand_block_clear, |
| do_load_for_compare, select_block_compare_mode, |
| compute_current_alignment, expand_block_compare, |
| expand_strncmp_align_check, expand_strn_compare, |
| expand_block_move, rs6000_output_load_multiple) |
| Move functions related to string/block move/compare |
| to a separate file. |
| * config/rs6000/rs6000.c: Move above functions to rs6000-string.c. |
| * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype |
| for this function which is now used in two files. |
| * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o. |
| * config.gcc: Add rs6000-string.o to extra_objs for |
| targets powerpc*-*-* and rs6000*-*-*. |
| |
| 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/80510 |
| * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in |
| 32-bit, since indexed is not valid for DImode. |
| (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA |
| 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64. |
| (define_peephole2 for Altivec d-form load): Add 32-bit support. |
| (define_peephole2 for Altivec d-form store): Likewise. |
| |
| PR ipa/81185 |
| * multiple_target.c (create_dispatcher_calls): Only create the |
| dispatcher call if the function is the default clone of a |
| versioned function. |
| |
| 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR middle-end/80902 |
| * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after |
| a call, force the call to not be a tail call. |
| |
| 2017-06-23 Jeff Law <law@redhat.com> |
| |
| * doc/contrib.texi: Add entry for Steven Pemberton's work on |
| enquire. |
| |
| 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c: Add include of ssa-propagate.h for |
| update_call_from_tree(). (rs6000_gimple_fold_builtin): Add |
| handling for early expansion of vector shifts (sl,sr,sra,rl). |
| (builtin_function_type): Add vector shift right instructions |
| to the unsigned argument list. |
| |
| 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| rtl-optimizatoin/79286 |
| * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again. |
| * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never |
| trap. PIC register plus a const unspec without offset can never trap. |
| |
| 2017-06-23 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree.h (builtin_structptr_type): New type. |
| (builtin_structptr_types): Declare new array. |
| * tree.c (builtin_structptr_types): New array. |
| (free_lang_data, build_common_tree_nodes): Use it. |
| |
| 2017-06-23 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/81187 |
| * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from |
| -Wnoexcept. |
| |
| 2017-06-22 Matt Turner <mattst88@gmail.com> |
| |
| * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby |
| Lake models to skylake case. Assume skylake for unknown |
| models with clflushopt. |
| |
| 2017-06-22 Jeff Law <law@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle |
| frame sizes that do not satisfy aarch64_uimm12_shift. |
| |
| 2017-06-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.h (apply_probability, |
| apply_scale, probability_in): Fix checks for zero. |
| |
| 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix. |
| * doc/cppdiropts.texi (-I @var{dir}): Document it. |
| |
| 2016-06-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_model_reduction_cost): Handle |
| COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without |
| REDUC_MAX_EXPR support. |
| (vectorizable_reduction): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| |
| 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * match.pd (A / (1 << B) -> A >> B): New. |
| * generic-match-head.c: Include optabs-tree.h. |
| * gimple-match-head.c: Likewise. |
| * optabs-tree.h (target_supports_op_p): New. |
| * optabs-tree.c (target_supports_op_p): New. |
| |
| 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for |
| $gcc_cv_ld --help output. |
| (gcc_cv_ld_demangle): Likewise. |
| (gcc_cv_ld_eh_frame_hdr): Likewise. |
| (gcc_cv_ld_pie): Likewise. |
| (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld. |
| (gcc_cv_ld_buildid): Likewise. |
| (gcc_cv_ld_sysroot): Likewise. |
| (ld_bndplt_support): Likewise. |
| (ld_pushpopstate_support): Likewise. |
| * configure: Regenerate. |
| * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define. |
| |
| 2017-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/81151 |
| * config/i386/sse.md (round<mode>2): Renumber match_dup and |
| operands indexes to avoid gap between operands and match_dups. |
| |
| 2017-06-21 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs): |
| Increment Arith_shift and Arith_shift_reg by 1. |
| * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend): |
| New tuning flag. |
| * config/aarch64/aarch64.c (thunderx_tunings): Enable |
| AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. |
| (aarch64_strip_extend): Add new argument and test for it. |
| (aarch64_cheap_mult_shift_p): New function. |
| (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't |
| add a cost if it is true. |
| Update calls to aarch64_strip_extend. |
| (aarch64_rtx_costs): Update calls to aarch64_strip_extend. |
| |
| 2017-06-21 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88 |
| tunings. |
| (thunderxt88): Likewise. |
| * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable. |
| (thunderx_prefetch_tune): New variable. |
| (thunderx2t99_prefetch_tune): Update for the correct values. |
| (thunderxt88_tunings): New variable. |
| (thunderx_tunings): Use thunderx_prefetch_tune instead of |
| generic_prefetch_tune. |
| (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK. |
| |
| 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse, |
| SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z. |
| (aarch64_compare_and_swap<mode>_lse, GPI): Likewise. |
| (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2. |
| (aarch64_atomic_cas<mode>, GPI): Likewise. |
| |
| 2017-06-21 Martin Liska <mliska@suse.cz> |
| |
| * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT |
| statements on cold and hot labels. |
| * predict.c (tree_estimate_probability_bb): Remove the |
| prediction from this place. |
| |
| 2017-06-21 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79489 |
| * gimplify.c (maybe_add_early_return_predict_stmt): New |
| function. |
| (gimplify_return_expr): Call the function. |
| * predict.c (tree_estimate_probability_bb): Remove handling |
| of early return. |
| * predict.def: Update comment about early return predictor. |
| * gimple-predict.h (is_gimple_predict): New function. |
| * predict.def: Change default value of early return to 66. |
| * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT |
| statements. |
| * passes.def: Put pass_strip_predict_hints to the beginning of |
| IPA passes. |
| |
| 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope |
| FUNCTION_DECL declarations. |
| (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL |
| declarations. |
| (dwaf2out_decl): Likewise. |
| * godump.c (go_early_global_decl): Skip call to the real debug hook |
| for FUNCTION_DECL declarations. |
| * passes.c (rest_of_decl_compilation): Skip call to the |
| early_global_decl debug hook for FUNCTION_DECL declarations, unless |
| -fdump-go-spec is passed. |
| |
| 2017-06-21 Marc Glisse <marc.glisse@inria.fr> |
| |
| * config/i386/i386.c (struct builtin_isa): New field pure_p. |
| Reorder for compactness. |
| (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p. |
| (def_builtin_pure, def_builtin_pure2): New functions. |
| (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure. |
| |
| 2017-06-21 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (nop_convert): New predicate. |
| ((A +- CST1) +- CST2): Allow some NOP conversions. |
| |
| 2017-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/81130 |
| * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types |
| with ctors/dtors if GOVD_SHARED is set. |
| |
| 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (movti_aarch64): |
| Emit mov rather than orr. |
| (movtf_aarch64): Likewise. |
| * config/aarch64/aarch64-simd.md (aarch64_simd_mov): |
| Emit mov rather than orr. |
| |
| 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_dup): |
| Swap alternatives, make integer dup more expensive. |
| |
| 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): |
| Return true for non-tls symbols. |
| |
| 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a55): New. |
| (cortex-a75): Likewise. |
| (cortex-a75.cortex-a55): Likewise. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (-mtune): Document new values for -mtune. |
| |
| 2017-06-21 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add |
| stack_size feature. |
| (Effective-Target Keywords, Other attributes): Suggest using |
| dg-add-options stack_size feature to get stack limit in stack_size |
| effective target documentation. |
| |
| 2017-06-21 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi) |
| (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull. |
| * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New |
| reservation. |
| * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to |
| attribute type list for neon_multiply. |
| * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to |
| attribute type list for neon_multiply. |
| * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull. |
| * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to |
| attribute type list for neon_multiply. |
| * config/arm/types.md (crypto_pmull): Add. |
| * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to |
| attribute type list. |
| |
| 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to |
| arm1176jzf-s. |
| |
| 2017-06-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * ira-costs.c (find_costs_and_classes): Initialize cost_classes later |
| to make sure not to dereference a NULL cost_classes_ptr pointer. |
| |
| 2017-06-20 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, |
| ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, |
| builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. |
| * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, |
| VMULOSW): New enum "unspec" values. |
| (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, |
| vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, |
| altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, |
| altivec_vmulosw): New patterns. |
| * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, |
| VMULOSW): Add definitions. |
| |
| 2017-06-20 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386.c: Fix rounding expand for new pattern. |
| * config/i386/subst.md: Fix pattern (parallel -> unspec). |
| |
| 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (rcpc): New. |
| * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New. |
| |
| 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected |
| feature string. |
| |
| 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64-cores.def: Rearrange to sort by |
| architecture, then by implementer ID. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| |
| 2017-06-20 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81097 |
| * fold-const.c (split_tree): Fold to type before negating. |
| |
| 2017-06-20 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c |
| (selftest::test_fixit_deletion_affecting_newline): New function. |
| (selftest::diagnostic_show_locus_c_tests): Call it. |
| |
| 2017-06-20 Andreas Schwab <schwab@suse.de> |
| |
| PR target/80970 |
| * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d" |
| instead of "+d". |
| |
| 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
| |
| * config/arm/arm-c.c (arm_cpu_builtins): New block to define |
| __ARM_FEATURE_COPROC according to support. |
| |
| 2017-06-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): |
| Rewritten to avoid overflow for > 32-bit pointers. |
| |
| PR sanitizer/81125 |
| * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser |
| by removing enum keyword. |
| (ubsan_type_descriptor): Likewise. Formatting fix. |
| |
| PR target/81121 |
| * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} |
| splitter): Require TARGET_SSE2 in the condition. |
| |
| 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79799 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support |
| for doing vector set of SFmode on ISA 3.0. |
| * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise. |
| (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF |
| element. |
| (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a |
| SFmode value into a V4SF variable that was extracted from another |
| V4SF variable without converting the element to double precision |
| and back to single precision vector format. |
| (vsx_insert_extract_v4sf_p9_2): Likewise. |
| |
| 2017-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply |
| in UWHI to avoid undefined overflow. |
| |
| PR sanitizer/81125 |
| * ubsan.h (enum ubsan_encode_value_phase): New. |
| (ubsan_encode_value): Change second argument to |
| enum ubsan_encode_value_phase with default value of |
| UBSAN_ENCODE_VALUE_GENERIC. |
| * ubsan.c (ubsan_encode_value): Change second argument to |
| enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P, |
| adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just |
| create_tmp_var_raw instead of create_tmp_var and use a |
| TARGET_EXPR. |
| (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin, |
| instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust |
| ubsan_encode_value callers. |
| |
| PR sanitizer/81111 |
| * ubsan.c (ubsan_encode_value): If current_function_decl is NULL, |
| use create_tmp_var_raw instead of create_tmp_var, mark it addressable |
| just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR. |
| |
| 2017-06-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81118 |
| * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter |
| estimates if we changed anything. |
| |
| 2017-06-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80887 |
| * tree-ssa-sccvn.c (mprts_hook_cnt): New global. |
| (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful |
| simplified lookups, then reset mprts_hook. |
| (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before |
| simplifying. |
| (try_to_simplify): Likewise. |
| |
| 2017-06-19 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/80879 |
| * gimplify.c (gimplify_switch_expr): |
| Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST. |
| |
| 2017-06-19 Martin Liska <mliska@suse.cz> |
| |
| * doc/install.texi: Document that PGO runs in 4 stages. |
| |
| 2017-06-19 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80732 |
| * attribs.c (make_dispatcher_decl): Do not append '.ifunc' |
| to dispatcher function name. |
| * multiple_target.c (replace_function_decl): New function. |
| (create_dispatcher_calls): Redirect both edges and references. |
| |
| 2017-06-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile-count.c (profile_count::dump): Dump quality. |
| (profile_count::differs_from_p): Update for unsigned val. |
| * profile-count.h (profile_count_quality): New enum. |
| (profile_count): Turn m_val to 62bit unsigned, add quality tracking. |
| |
| 2017-06-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take |
| struct function as arg. |
| (estimate_numbers_of_iterations): Export overload with loop arg. |
| (free_numbers_of_iterations_estimates_loop): Use an overload of |
| free_numbers_of_iterations_estimates instead. |
| * tree-cfg.c (remove_bb): Adjust. |
| * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise. |
| * tree-parloops.c (gen_parallel_loop): Likewise. |
| * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): |
| Likewise. |
| (tree_unroll_loops_completely): Likewise. |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): |
| Use an overload instead and export. |
| (estimated_loop_iterations): Adjust. |
| (max_loop_iterations): Likewise. |
| (likely_max_loop_iterations): Likewise. |
| (estimate_numbers_of_iterations): Take struct function as arg |
| and adjust. |
| (loop_exits_before_overflow): Adjust. |
| (free_numbers_of_iterations_estimates_loop): Use an overload. |
| * tree-vect-loop.c (vect_analyze_loop_form): Adjust. |
| * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise. |
| |
| 2017-06-19 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/81112 |
| * ipa-prop.c (find_constructor_constant_at_offset): Handle |
| RANGE_EXPR conservatively. |
| |
| 2017-06-16 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| definitions for vec_float, vec_float2, vec_floato, |
| vec_floate built-ins. |
| * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code |
| for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and |
| floate. |
| * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF, |
| FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF, |
| UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions. |
| * config/altivec.md (define_insn "p8_vmrgew_<mode>", |
| define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew. |
| * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate, |
| vec_floato): Add builtin defines. |
| * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato): |
| Update the built-in documentation file for the new built-in |
| functions. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.opt (marm): Mark as the negative of of -mthumb. |
| (mthumb): Mark as the negative of -marm. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * doc/invoke.texi (ARM Options, -mcpu): Document supported |
| extension options. |
| (ARM Options, -mtune): Document that this accepts the same |
| extension options as -mcpu. |
| (ARM Options, -mfpu): Document addition of -mfpu=auto. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * doc/invoke.texi (ARM Options, -march=): Document new syntax and |
| permitted extensions. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-cpus.in (armv7): Add extension +nofp. |
| (armv7-r): Add aliases vfpv3xd and vfpv3-d16. |
| (armv8-m.main): Add option +nodsp. |
| * config/arm/arm-cpu-cdata.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-fuchsia: New file. |
| * config.gcc (arm*-*-fuchsia*): Use it. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-symbian: Rewrite for new option infrastructure. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable. |
| (MULTILIB_REQUIRED): Likewise. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty. |
| (MULTILIB_RESUE): Likewise. |
| (MULTILIB_MATCHES): Likewise. |
| (MULTLIB_REQUIRED): Likewise. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-rtems: Rewrite for new option framework. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants) |
| (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants) |
| (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants) |
| (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ... |
| * config/arm/t-multilib: ... here. |
| (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures. |
| (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for |
| armv7-a and armv8*-a when A-profile libraries have not been built. |
| * config/arm/t-rmprofile: Rewrite. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * genmultilib (multilib_reuse): Allow an explicit period to be escaped |
| with a backslash. Remove the backslash after substituting unescaped |
| periods. |
| * doc/fragments.texi (MULTILIB_REUSE): Document it. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc: (arm*-*-*): When building a-profile libraries, force |
| the driver to pass through the default setting of -mfloat-abi. |
| * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm |
| rather than NULL. |
| * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty. |
| (all_feat_combs): New rule. |
| (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework |
| default libraries. |
| * config/arm/t-aprofile: Rewrite. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.h (FPUTYPE_AUTO): Define. |
| * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the |
| fpu is not specified by the user/command-line. |
| * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete. |
| * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete. |
| * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete. |
| * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete. |
| * common/config/arm/arm-common.c (arm_canon_arch_option): Use |
| FPUTYPE_AUTO insted of FPUTYPE_DEFAULT. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/elf.h (MULTILIB_DEFAULTS): Delete. |
| * config/arm/t-arm-elf: Rewritten. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we |
| have some floating-point instructions. |
| (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT. |
| (TARGET_MAYBE_HARD_FLOAT): New macro. |
| * config/arm/arm-builtins.c (arm_init_builtins): Use |
| TARGET_MAYBE_HARD_FLOAT. |
| * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * common/config/arm/arm-common.c: Define INCLUDE_LIST. |
| (configargs.h): Include it. |
| (arm_print_hint_for_fpu_option): New function. |
| (arm_parse_fpu_option): New function. |
| (candidate_extension): New class. |
| (arm_canon_for_multilib): New function. |
| * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro. |
| (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION. |
| (ARCH_CANONICAL_SPECS): New macro. |
| (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu |
| are set after handling multilib fragments. Set target_cpu_default2 |
| from with_cpu. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real |
| cpu name. |
| (arm*-*-*): Set target_cpu_default2 to a quoted string. |
| * config/arm/parsecpu.awk (check_cpu): Validate any extension |
| options. |
| (check_arch): Likewise. |
| * config/arm/arm.c (arm_configure_build_target): Handle |
| TARGET_CPU_DEFAULT being a string constant. Scan any feature |
| options in the default. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-protos.h (cpu_arch_extension): Add field to record |
| when an option is an alias of another. |
| * config/arm/parsecpu.awk (optalias): New parser token. |
| (gen_comm_data): Mark non-alias options as such. Emit entries |
| for extension aliases. |
| * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias. |
| (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise. |
| (armv6kz, armv6zk, armv6t2): Likewise. |
| (armv7): Make vfpv3-d16 an alias. |
| (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in |
| canonical order. |
| (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases. |
| Sort in canonical order. |
| (armv8-a): Sort in canonical order. |
| (armv8.1-a, armv8.2-a): Likewise. |
| (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in |
| canonical order. |
| (cortex-a9): Sort in canonical order. |
| * config/arm/arm.c (selftests.h): Include it. |
| (arm_test_cpu_arch_data): New function. |
| (arm_run_self_tests): New function. |
| (TARGET_RUN_TARGET_SELFTESTS): Redefine. |
| (targetm): Move declaration to the end of the file. |
| * arm-cpu-cdata.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to |
| call to target_mode_check describing the type of option passed. |
| * common/config/arm/arm-common.c (arm_arch_core_flag): Delete. |
| (arm_target_thumb_only): Use arm_parse_arch_option_name or |
| arm_parse_cpu_option_name to match parameters against list of |
| available targets. |
| * config/arm/parsecpu.awk (gen_comm_data): Don't generate |
| arm_arch_core_flags data structure. |
| * config/arm/arm-cpu_cdata.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from |
| config/arm/arm.c. |
| (arm_print_hint_for_cpu_option): Likewise. |
| (arm_print_hint_for_arch_option): Likewise. |
| (arm_parse_cpu_option_name): Likewise. |
| (arm_parse_arch_option_name): Likewise. |
| * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number |
| of entries in the all_fpus list. |
| * config/arm/arm-protos.h (all_architectures, all_cores): Declare. |
| (arm_parse_cpu_option_name): Declare. |
| (arm_parse_arch_option_name): Declare. |
| (arm_parse_option_features): Declare. |
| (arm_intialize_isa): Declare. |
| * config/arm/parsecpu.awk (gen_data): Move CPU and architecture |
| data tables to ... |
| (gen_comm_data): ... here. Make definitions non-static. |
| * config/arm/arm-cpu-data.h: Regenerated. |
| * config/arm/arm-cpu-cdata.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-protos.h (arm_build_target): Remove arch_core. |
| (cpu_arch_extension): New structure. |
| (cpu_arch_option, arch_option, cpu_option): New structures. |
| * config/arm/parsecpu.awk (gen_headers): Build an enumeration of |
| architecture types. |
| (gen_data): Generate new format data tables. |
| * config/arm/arm.c (cpu_tune): New structure. |
| (cpu_option, processors): Delete. |
| (arm_print_hint_for_core_or_arch): Delete. Replace with ... |
| (arm_print_hint_for_cpu_option): ... this and ... |
| (arm_print_hint_for_arch_option): ... this. |
| (arm_parse_arch_cpu_name): Delete. Replace with ... |
| (arm_parse_cpu_option_name): ... this and ... |
| (arm_parse_arch_option_name): ... this. |
| (arm_unrecognized_feature): Change type of target parameter to |
| cpu_arch_option. |
| (arm_parse_arch_cpu_features): Delete. Replace with ... |
| (arm_parse_option_features): ... this. |
| (arm_configure_build_target): Rework to use new configuration data |
| tables. |
| (arm_print_tune_info): Rework for new configuration data tables. |
| * config/arm/arm-cpu-data.h: Regenerated. |
| * config/arm/arm-cpu.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * Makefile.in (OBJS): Move sbitmap.o from here ... |
| (OBJS-libcommon): ... to here. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU. |
| (ISA_ALL_CRYPTO): New macro. |
| (ISA_ALL_SIMD): New macro |
| (ISA_ALL_FP): New macro. |
| * config/arm/arm.c (fpu_bitlist): Update initializer. |
| * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto, |
| simd or fp. |
| (arm9e): Add fpu. Add option for nofp |
| (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise. |
| (arm926ej-s, arm1026ej-s): Likewise. |
| (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16, |
| vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3, |
| neon-fp16, neon-vfpv4, nofp and nosimd. |
| (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp. |
| (cortex-a8): Add fpu. Add option for nofp. |
| (cortex-a9): Add fpu. Add options for nosimd and nofp. |
| (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp. |
| (cortex-r4f): Add fpu. |
| (cortex-r5): Add fpu. Add options for nofp.dp and nofp. |
| (cortex-r7): Use idiv option from architecture. Add fpu. Add option |
| for nofp. |
| (cortex-r8): Likewise. |
| (cortex-m4): Add fpu. Add option for nofp. |
| (cortex-a15.cortex-a7): Add fpu. Add option for nofp. |
| (cortex-a17.cortex-a7): Likewise. |
| (cortex-a32): Add fpu. Add options for crypto and nofp. |
| (cortex-a35, cortex-a53): Likewise. |
| (cortex-a57): Add fpu. Add option for crypto. |
| (cortex-a72, cortex-a73): Likewise. |
| (exynos-m1): Likewise. |
| (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise. |
| (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise. |
| (cortex-m33): Add fpu. Add option for nofp. |
| * config/arm/arm-cpu-cdata.h: Regenerated |
| * config/arm/arm-cpu-data.h: Regenerated. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp. |
| (armv5te, armv5tej): Likewise. |
| (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise. |
| (armv7): Add options fp and vfpv3-d16. |
| (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16, |
| vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4, |
| nofp and nosimd. |
| (armv7ve): Likewise. |
| (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv. |
| (armv7e-m): Add options fp, fpv5, fp.dp and nofp. |
| (armv8-a): Add nocrypto option. |
| (armv8.1-a, armv8.2-a): Likewise. |
| (armv8-m.main): add options fp, fp.dp and nofp. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and |
| nofp. |
| (armv8-a+crc): Delete. |
| (armv8.1-a): Add options simd, crypto and nofp. |
| (armv8.2-a): Add options fp16, simd, crypto and nofp. |
| (armv8.2-a+fp16): Delete. |
| (armv8-m.main): Add option dsp. |
| (armv8-m.main+dsp): Delete. |
| (cortex-a8): Add fpu. Add nofp option. |
| (cortex-a9): Add fpu. Add nofp and nosimd options. |
| * config/arm/parsecpu.awk (gen_data): Generate option tables and |
| link to main cpu and architecture data structures. |
| (gen_comm_data): Only put isa attributes from the main architecture |
| in common tables. |
| (option): New statement for architecture and CPU entries. |
| * arm.c (struct cpu_option): New structure. |
| (struct processors): Add entry for options. |
| (arm_unrecognized_feature): New function. |
| (arm_parse_arch_cpu_name): Ignore any characters after the first |
| '+' character. |
| (arm_parse_arch_cpu_feature): New function. |
| (arm_configure_build_target): Separate out any CPU and architecture |
| features and parse separately. Don't error out if -mfpu=auto is |
| used with only an architecture string. |
| (arm_print_asm_arch_directives): New function. |
| (arm_file_start): Call it. |
| * config/arm/arm-cpu-cdata.h: Regenerated. |
| * config/arm/arm-cpu-data.h: Likewise. |
| * config/arm/arm-tables.opt: Likewise. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the |
| assembler when it is not -mfpu=auto. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro. |
| (ASM_REWRITE_SPEC_FUNCTIONS): New macro. |
| (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro. |
| (ASM_CPU_SPEC): Rewrite. |
| (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro. |
| (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use |
| MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove |
| reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS. |
| * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure |
| copied string is NUL-terminated. Also strip any characters prefixed |
| by '+'. |
| (arm_rewrite_selected_arch): New function. |
| (arm_rewrite_march): New function. |
| |
| 2017-06-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.opt (x_arm_arch_string): New TargetSave option. |
| (x_arm_cpu_string, x_arm_tune_string): Likewise. |
| (march, mcpu, mtune): Convert to string-based options. |
| * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function. |
| (arm_parse_arch_cpu_name): New function. |
| (arm_configure_build_target): Use arm_parse_arch_cpu_name to |
| identify selected architecture or CPU. |
| (arm_option_save): New function. |
| (TARGET_OPTION_SAVE): Redefine. |
| (arm_option_restore): Restore string options. |
| (arm_option_print): Print string options. |
| |
| 2017-06-16 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/80933 |
| PR tree-optimization/80934 |
| * builtins.c (fold_builtin_3): Do not handle bcmp here. |
| * gimple-fold.c (gimple_fold_builtin_bcmp): New function. |
| (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise. |
| (gimple_fold_builtin): Call them. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path |
| as unlikely; update profile. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (force_edge_cold): Handle declaring edges impossible |
| more aggresively. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update |
| profile. |
| (try_unroll_loop_completely): Fix reporting. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating. |
| |
| 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| PR target/71778 |
| * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET |
| if given a non-constant argument for an intrinsic which requires a |
| constant. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile.c (compare_freqs): New function. |
| (branch_prob): Sort edge list. |
| (find_spanning_tree): Assume that the list is priority sorted. |
| |
| 2017-06-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81090 |
| * passes.def (pass_record_bounds): Remove. |
| * tree-pass.h (make_pass_record_bounds): Likewise. |
| * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds, |
| make_pass_record_bounds): Likewise. |
| * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do |
| not free niter estimates at the beginning but at the end. |
| * tree-scalar-evolution.c (scev_finalize): Free niter estimates. |
| |
| 2017-06-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-switch-conversion.c (emit_case_bit_tests): Adjust |
| initializer to workaround ICE in host GCC 4.8. |
| |
| 2017-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-transform.c (update_noncloned_frequencies): Update also |
| counts. |
| (clone_inlined_nodes): Update. |
| |
| 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update |
| prefetch settings, and enable prefetching by default at -O3. |
| |
| 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Set flag_prefetch_loop_arrays according to tuning data. |
| |
| 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune): |
| New tune structure. |
| (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size. |
| [Unrelated to main purpose of the patch] Place the pointer field last |
| to enable type checking errors when tune structure are wrongly merged. |
| * config/aarch64/aarch64.c (generic_prefetch_tune,) |
| (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,) |
| (thunderx2t99_prefetch_tune): New tune constants. |
| (tune_params *_tunings): Update all tunings (no functional change). |
| (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES, |
| PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE |
| from tunings structures. |
| |
| 2017-06-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/81094 |
| * ubsan.c (instrument_null): Add T argument, use it instead |
| of computing it based on IS_LHS. |
| (instrument_object_size): Likewise. |
| (pass_ubsan::execute): Adjust instrument_null and |
| instrument_object_size callers to pass gimple_get_lhs or |
| gimple_assign_rhs1 result to it. Use instrument_null instead of |
| calling get_base_address and instrument_mem_ref. Handle |
| aggregate call arguments for object-size sanitization. |
| |
| 2017-06-16 Yury Gribov <tetra2005@gmail.com> |
| |
| PR tree-optimization/81089 |
| * tree-vrp.c (is_masked_range_test): Validate operands of |
| subexpression. |
| |
| 2017-06-15 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/80560 |
| * dumpfile.c (dump_register): Avoid calling memset to initialize |
| a class with a default ctor. |
| * gcc.c (struct compiler): Remove const qualification. |
| * genattrtab.c (gen_insn_reserv): Replace memset with initialization. |
| * hash-table.h: Ditto. |
| * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with |
| assignment. |
| * ipa-prop.c (ipa_free_edge_args_substructures): Ditto. |
| * omp-low.c (lower_omp_ordered_clauses): Replace memset with |
| default ctor. |
| * params.h (struct param_info): Make struct members non-const. |
| * tree-switch-conversion.c (emit_case_bit_tests): Replace memset |
| with default initialization. |
| * vec.h (vec_copy_construct, vec_default_construct): New helper |
| functions. |
| (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy |
| with vec_copy_construct. |
| (vect<T>::quick_grow_cleared): Replace memset with default ctor. |
| (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same. |
| * doc/invoke.texi (-Wclass-memaccess): Document. |
| |
| 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * emit-rtl.h (is_leaf): Update comment about local |
| register allocator. |
| |
| 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com> |
| |
| PR target/78818 |
| * config/msp430/msp430.c (msp430_data_attr): Check that it's possible |
| for a variable to have a section before checking if the section has a |
| name. |
| Set section to.persistent if persistent attribute is set. |
| Warn if .persistent attribute is used on an automatic variable. |
| |
| 2017-06-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/80474 |
| * reorg.c (update_block): Do not ignore instructions in a delay slot. |
| |
| 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead |
| of REGNO. |
| |
| 2017-06-14 Maciej W. Rozycki <macro@imgtec.com> |
| |
| * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant. |
| (casesi): Emit bounds checking as RTL. |
| (casesi_internal_mips16_<mode>): Remove bounds checking. |
| |
| 2017-06-14 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.c (xtensa_option_override): Append |
| MASK_CONST16 to target_flags in the absence of TARGET_L32R. |
| (hwloop_optimize, hwloop_fail, hwloop_pattern_reg, |
| xtensa_doloop_hooks): Define unconditionally. |
| (xtensa_reorg_loops): Only call reorg_loops in the presence of |
| TARGET_LOOPS. |
| * config/xtensa/xtensa.h (TARGET_L32R): New definition. |
| (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account |
| for it in xtensa_option_override. |
| (HARD_FRAME_POINTER_IS_FRAME_POINTER, |
| HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions. |
| |
| 2017-06-14 Boris Kolpackov <boris@codesynthesis.com> |
| |
| * doc/cppopts.texi: Document '-' special value to -MF. |
| |
| 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency. |
| (cortex_a53_fconst): Likewise. |
| (cortex_a53_fpmul): Likewise. |
| (cortex_a53_f_load_64): Likewise. |
| (cortex_a53_f_load_many): Likewise. |
| (cortex_a53_advsimd_alu): Likewise. |
| (cortex_a53_advsimd_alu_q): Likewise. |
| (cortex_a53_advsimd_mul): Likewise. |
| (cortex_a53_advsimd_mul_q): Likewise. |
| (fpmac bypass): Add new bypass for fpmac-fpmac case. |
| Add missing fmul, r2f_cvt and fconst cases. |
| |
| 2017-06-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81088 |
| * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from |
| literal constants. |
| (fold_binary_loc): When associating do not treat pre-existing |
| TREE_OVERFLOW on literal constants as a reason to allow |
| TREE_OVERFLOW on associated literal constants. |
| |
| 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3. |
| (MASK_FEATURES): New macro. |
| * config/sparc/sparc.c (sparc_option_override): Remove the special |
| handling of -mfpu and generalize it to all MASK_FEATURES switches. |
| |
| 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify |
| a division of 0 if non-call exceptions are enabled. |
| |
| 2017-06-14 Andrew Pinski <apinski@cavium.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| PR target/71663 |
| * config/aarch64/aarch64.c (aarch64_expand_vector_init): |
| Improve vector initialization code gen for only variable case. |
| |
| 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry. |
| |
| 2017-06-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81083 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals |
| as values. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c: Update all comments that mentioned SPE. |
| (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL. |
| * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete. |
| * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use. |
| * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete. |
| * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE. |
| * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/t-rtems: Don't handle SPE. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/t-linux: Don't handle SPE. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/eabispe.h: Delete file. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/t-spe: Delete file. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete. |
| (rs6000_legitimate_offset_address_p): Return false for anything in |
| V2SImode or V2SFmode. |
| |
| 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes |
| except V2SF and V2SI. Rearrange the vector modes, and add comments. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode |
| and V4HImode. |
| (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode. |
| (rs6000_legitimate_offset_address_p): Ditto. |
| (rs6000_emit_move): Ditto. |
| (rs6000_init_builtins): Remove V4HI_type_node. |
| |
| 2017-06-13 Martin Liska <mliska@suse.cz> |
| |
| PR sanitize/78204 |
| * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p. |
| (gate_asan): Likewise. |
| * asan.h (asan_no_sanitize_address_p): Remove the function. |
| (sanitize_flags_p): New function. |
| * builtins.def: Fix coding style. |
| * common.opt: Use renamed enum value. |
| * convert.c (convert_to_integer_1): Use sanitize_flags_p. |
| * doc/extend.texi: Document no_sanitize attribute. |
| * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT |
| to SANITIZE_UNDEFINED_NONDEFAULT. |
| * gcc.c (sanitize_spec_function): Use the renamed enum value. |
| * gimple-fold.c (optimize_atomic_compare_exchange_p): |
| Use sanitize_flags_p. |
| * gimplify.c (gimplify_function_tree): Likewise. |
| * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise. |
| * opts.c (parse_no_sanitize_attribute): New function. |
| (common_handle_option): Use renamed enum value. |
| * opts.h (parse_no_sanitize_attribute): Declare. |
| * tree.c (sanitize_flags_p): New function. |
| * tree.h: Declared here. |
| * tsan.c: Use sanitize_flags_p. |
| * ubsan.c (ubsan_expand_null_ifn): Likewise. |
| (instrument_mem_ref): Likewise. |
| (instrument_bool_enum_load): Likewise. |
| (do_ubsan_in_current_function): Remove the function. |
| (pass_ubsan::execute): Use sanitize_flags_p. |
| * ubsan.h: Remove do_ubsan_in_current_function |
| * tree-cfg.c (print_no_sanitize_attr_value): New function. |
| (dump_function_to_file): Use it here. |
| |
| 2017-06-13 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/80803 |
| PR tree-optimization/81063 |
| * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file. |
| (propagate_subaccesses_across_link): Enqueue subtree whenever |
| necessary instead of relying on the caller. |
| |
| 2017-06-13 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (add_access_to_work_queue): Only enqueue accesses |
| that have a first_link. |
| (sort_and_splice_var_accesses): Do not check first_link before |
| enquing. |
| (subtree_mark_written_and_enqueue): Likewise. |
| (propagate_all_subaccesses): Likewise and do not stop at first |
| parent with a first_link. |
| |
| 2017-06-13 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr |
| instead of f. |
| |
| 2017-06-13 Yury Gribov <tetra2005@gmail.com> |
| |
| * match.pd: New pattern. |
| |
| 2017-06-13 Yury Gribov <tetra2005@gmail.com> |
| |
| * tree-vrp.c (is_masked_range_test): New function. |
| (register_edge_assert_for): Determine ranges for |
| some bit tests. |
| |
| 2017-06-13 Yury Gribov <tetra2005@gmail.com> |
| |
| PR tree-optimization/67328 |
| * fold-const.c (maskable_range_p): New function. |
| (build_range_check): Generate bittests if possible. |
| |
| 2017-06-13 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_probability): Add new argument. |
| (dump_edge_probability): Dump both probability and count. |
| (dump_gimple_label): Likewise. |
| (dump_gimple_bb_header): Likewise. |
| |
| 2017-06-13 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/81072 |
| * config/avr/avr-devices.c: Fix indentation. |
| * config/avr/gen-avr-mmcu-specs.c: Dito. |
| |
| 2017-06-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_model_reduction_cost): Do not fail, |
| instead get vector type from stmt_info. |
| (vectorizable_reduction): Adjust. Remove dead code. |
| |
| 2017-06-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81065 |
| * fold-const.c (extract_muldiv_1): Remove bogus distribution |
| case of C * (x * C2 + C3). |
| (fold_addr_of_array_ref_difference): Properly fold index difference. |
| |
| 2017-06-12 David S. Miller <davem@davemloft.net> |
| |
| PR target/80968 |
| * config/sparc/sparc.md (return expander): Emit frame blockage if |
| function uses alloca. |
| |
| 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * combine.c (make_field_assignment): Check len rather than the mode |
| precision when calling force_to_mode. |
| |
| 2017-06-12 Georg-Johann Lay <avr@gjlay.de> |
| |
| Support multilibs and devices that see flash in RAM address range. |
| |
| PR target/81072 |
| * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum. |
| (avr_mcu_t) <flash_pm_offset>: New field. |
| (avr_device_specific_features) <AVR_ISA_RCALL>: New enum. |
| * config/avr/avr.h (AVR_SHORT_CALLS): New define. |
| (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS. |
| (AVR_TINY_PM_OFFSET): Remove macro. |
| * config/avr/avr.opt (-mshort-calls): New option. |
| * config/avr/gen-avr-mmcu-specs.c (print_mcu) |
| [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL. |
| * config/avr/avr-c.c (avr_cpu_cpp_builtins) |
| <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS. |
| <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition |
| instead of avr_arch->have_jmp_call. |
| <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset. |
| [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use |
| avr_arch->flash_pm_offset to define. |
| * config/avr/avr-devices.c (avr_arch_types): Add initializers for |
| new field flash_pm_offset. Add entry for avrxmega3. |
| (avr_texinfo): Add entry for avrxmega3. |
| * config/avr/avr-mcus.def: Add entries for: avrxmega3, |
| attiny212, attiny214, |
| attiny412, attiny414, attiny416, attiny417, |
| attiny814, attiny816, attiny817, |
| attiny1614, attiny1616, attiny1617, |
| attiny3214, attiny3216, attiny3217. |
| * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use |
| avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET. |
| (avr_print_operand_address) [AVR_TINY]: Same. |
| (avr_asm_init_sections) <readonly_data_section>: Only patch |
| callback if avr_arch->flash_pm_offset = 0. |
| (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it |
| for rodata if avr_arch->flash_pm_offset != 0. |
| (avr_encode_section_info) [AVR_TINY]: Adjust comment. |
| * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars. |
| (opts) [AVR_ISA_RCALL]: Append opt_rcall. |
| (m_options): Append opt_rcall. |
| (m_dirnames): Append dir_rcall. |
| * config/avr/t-multilib: Regenerate. |
| |
| * configure.ac [target=avr]: Check whether avrxmega3 default |
| linker description file works as needed. |
| * configure: Regenerate. |
| * doc/avr-mmcu.texi: Regenerate. |
| * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it. |
| <__AVR_ARCH__>: Document avrxmega3 and 103. |
| <__AVR_HAVE_JMP_CALL__>: Adjust documentation. |
| <__AVR_SHORT_CALLS__>: Document it. |
| <__AVR_PM_BASE_ADDRESS__>: Document it. |
| * doc/extend.texi (AVR Options) <-mshort-calls>: Document it. |
| (AVR Variable Attributes) <progmem>: Document this is |
| not needed for avrxmega3. |
| (AVR Named Address Spaces) <__flash>: Dito. |
| |
| 2017-06-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_node::dump): Complain about profile insanities. |
| |
| 2017-06-12 Doug Rupp <rupp@adacore.com> |
| |
| * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide". |
| Append vxworks-stdint.h to the tm_file list. |
| * config/vxworks-stdint.h: New file. |
| |
| 2017-06-12 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/81041 |
| * tree-profile.c (gimple_gen_ic_func_profiler): |
| Create an extra BB in profile-generate |
| (gimple_gen_time_profiler): Likewise. |
| |
| 2017-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/81003 |
| * tree-ssa-reassoc.c (force_into_ssa_name): New function. |
| (update_range_test): Use it instead of force_gimple_operand_gsi. |
| |
| 2017-06-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/81053 |
| * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI |
| with backedge value not defined in loop. Simplify def stmt |
| compute. |
| |
| 2017-06-11 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/79939 |
| * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function. |
| Return true. |
| (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to |
| nvptx_cannot_force_const_mem. |
| |
| 2017-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * opts.c (finish_options): Move test for flag_split_stack after |
| it has been initialized. |
| |
| 2017-06-11 Jason Merrill <jason@redhat.com> |
| |
| * tree.h (id_equal): New. |
| * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c, |
| omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it |
| instead of strcmp of IDENTIFIER_POINTER. |
| |
| 2017-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h |
| (mark_all_inlined_calls_cdtor): Fix formating. |
| (inline_transform): Rescale profile before inlining. |
| |
| 2017-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (cgraph_edge::clone): Update prototype. |
| * cgraphclones.c (cgraph_edge::clone): Update profile scaling. |
| (cgraph_node::create_clone): Update. |
| (cgraph_node::create_version_clone): Update. |
| * tree-inline.c (copy_bb): Update. |
| (expand_call_inline): Update. |
| |
| 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (emit_vrsave_prologue): New function, |
| factored out from ... |
| (rs6000_emit_prologue): ... here. |
| |
| 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (emit_split_stack_prologue): New function, |
| factored out from ... |
| (rs6000_emit_prologue): ... here. |
| |
| 2017-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (drop_profile): Also drop individual bb/edge and cgraph |
| edge counts. |
| (handle_missing_profiles): Fix computation of tp_first_run. |
| (counts_to_freqs): Do not touch freqs when count is 0. |
| |
| 2017-06-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch |
| profile. |
| |
| 2017-06-10 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document signal effective target. |
| |
| 2017-06-10 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): |
| Document effective target stack_size. |
| |
| 2017-06-09 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c (diagnostic_report_diagnostic): Only add fixits |
| to the edit_context if they can be auto-applied. |
| |
| 2017-06-9 Ian Lance Taylor <iant@golang.org> |
| |
| * opts.c (finish_options): If -fsplit-stack, disable implicit |
| -forder-blocks-and-partition. |
| * doc/invoke.texi (Optimize Options): Document that when using |
| -fsplit-stack -forder-blocks-and-partition is not implicitly |
| enabled. |
| |
| 2017-06-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, |
| ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, |
| ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. |
| * builtins.def (abort, trap, unreachable): Declare cold. |
| * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. |
| * tree-core.h (ECF_COLD): New. |
| * tree.c (set_call_expr_flags): Handle ECF_COLD. |
| (build_common_builtin_nodes): Mark unreachable and abort as cold. |
| |
| 2017-06-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (unlikely_executed_stmt_p): Cleanup. |
| |
| 2017-06-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded |
| model if the ref is always written to. |
| |
| 2017-06-09 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New. |
| |
| 2017-06-09 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive |
| than udiv. |
| |
| 2017-06-09 Tom de Vries <tom@codesourcery.com> |
| |
| PR target/80855 |
| * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with |
| "target cannot support label values" when encountering LABEL_REF. |
| |
| 2017-06-09 Martin Liska <mliska@suse.cz> |
| |
| * tree-profile.c (gimple_gen_ic_profiler): Update comment. |
| (gimple_gen_ic_func_profiler): Emit direct comparison |
| of __gcov_indirect_call_callee with NULL. |
| (gimple_gen_time_profiler): Change probability from |
| PROB_VERY_UNLIKELY to PROB_UNLIKELY. |
| |
| 2017-06-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile.c (edge_gcov_counts): Turn to pointer. |
| (compute_branch_probabilities, compute_branch_probabilities): Update. |
| (branch_prob): Do not clear edge_gcov_count. |
| * profile.h (edge_gcov_counts): Turn to pointer. |
| (edge_gcov_count): Update. |
| |
| 2017-06-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple.h (gimple_check_failed): Mark cold. |
| |
| 2017-06-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/66623 |
| * tree-vect-loop.c (vect_is_simple_reduction): Cleanup, |
| refactor check_reduction into two parts, properly computing |
| whether we have to check reduction validity for outer loop |
| vectorization. |
| |
| 2017-06-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79483 |
| * graphite-scop-detection.c (order): New global. |
| (get_order): Compute bb to order mapping that satisfies code |
| generation constraints. |
| (cmp_pbbs): New helper. |
| (build_scops): Start domwalk at entry block, sort generated |
| pbbs. |
| |
| 2017-06-09 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/81007 |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_class): |
| Skip FIELD_DECLs with error_mark_node type. |
| * passes.def (all_lowering_passes): Run pass_build_cgraph_edges |
| last again. |
| |
| 2017-06-09 Martin Liska <mliska@suse.cz> |
| |
| * predict.c (struct branch_predictor): New struct. |
| (test_prediction_value_range): New test. |
| (predict_c_tests): New function. |
| * selftest-run-tests.c (selftest::run_tests): Run the function. |
| * selftest.h: Declare new tests. |
| |
| 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/80966 |
| * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that |
| gen_add3_insn did not fail. |
| * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to |
| r0, construct that number in a temporary reg and add that reg to r0. |
| If asked to put the result in r0 as well, fail. |
| |
| 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling |
| for early expansion of vec_eqv. |
| |
| 2017-06-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/81005 |
| * ubsan.c (instrument_null): Avoid pointless code temporary. |
| (pass_ubsan::execute): Instrument aggregate arguments of calls. |
| |
| 2017-06-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/81015 |
| Revert: |
| 2016-12-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/59874 |
| * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. |
| (*clzhi2): Ditto. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (unlikely_executed_edge_p): Move ahead. |
| (probably_never_executed_edge_p): Use it. |
| |
| 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| PR middle-end/79988 |
| * tree-chkp.c (chkp_gimple_call_builtin_p): Remove |
| gimple_call_builtin_p call. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD. |
| * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, |
| rtl_check_failed_type2, rtl_check_failed_code1, |
| rtl_check_failed_code2, rtl_check_failed_code_mode, |
| rtl_check_failed_block_symbol, cwi_check_failed_bounds, |
| rtvec_check_failed_bounds, rtl_check_failed_flag, |
| _fatal_insn_not_found, _fatal_insn): Likewise. |
| * tree.h (tree_contains_struct_check_failed, |
| tree_check_failed, tree_not_check_failed, |
| tree_class_check_failed, tree_range_check_failed, |
| tree_not_class_check_failed, tree_int_cst_elt_check_failed, |
| tree_vec_elt_check_failed, phi_node_elt_check_failed, |
| tree_operand_check_failed, omp_clause_check_failed, |
| omp_clause_operand_check_failed, omp_clause_range_check_failed): |
| Likewise. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_edge::maybe_hot_p): Do not check |
| flag_branch_probabilities. |
| * ipa-inline.c (edge_badness): Likewise. |
| * ipa-profile.c (ipa_propagate_frequency_1): Likewise. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. |
| * predict.c (maybe_hot_frequency_p): Likewise. |
| (probably_never_executed): Likewise. |
| * sched-ebb.c (schedule_ebbs): Likewise. |
| * sched-rgn.c (find_single_block_region): Likewise. |
| * tracer.c (tail_duplicate): Likewise. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * opts.c (finish_options): x_flag_reorder_blocks_and_partition no |
| longer requires x_flag_profile_use. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition |
| instead of flag_reorder_blocks_and_partition. |
| * dbxout.c (dbxout_function_end): Likewise. |
| * dwarf2out.c (gen_subprogram_die): Likewise. |
| * haifa-sched.c (sched_create_recovery_edges): Likewise. |
| * hw-doloop.c (reorg_loops): Likewise. |
| * varasm.c (assemble_start_function, |
| assemble_end_function): Likewise. |
| (decide_function_section): Do not check for |
| flag_reorder_blocks_and_partition. |
| |
| 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): |
| New function. |
| (chkp_get_hard_register_fake_addr_expr): Ditto. |
| (chkp_build_addr_expr): Add check for hard reg case. |
| (chkp_parse_array_and_component_ref): Ditto. |
| (chkp_find_bounds_1): Ditto. |
| (chkp_process_stmt): Don't generate bounds store for |
| hard reg case. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (maybe_hot_bb_p): Do not check profile status. |
| (maybe_hot_edge_p): Likewise. |
| (probably_never_executed): Check for zero counts even if profile |
| is not read. |
| (unlikely_executed_edge_p): New function. |
| (unlikely_executed_stmt_p): New function. |
| (unlikely_executed_bb_p): New function. |
| (set_even_probabilities): Use unlikely predicates. |
| (combine_predictions_for_bb): Likewise. |
| (predict_paths_for_bb): Likewise. |
| (predict_paths_leading_to_edge): Likewise. |
| (determine_unlikely_bbs): New function. |
| (estimate_bb_frequencies): Use it. |
| (compute_function_frequency): Use zero counts even if profile is |
| not read. |
| * profile-count.h: Fix typo. |
| |
| 2017-08-08 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8, |
| _mm512_mask_cvtsepi16_storeu_epi8, |
| _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics. |
| * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8, |
| _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8, |
| _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8, |
| _mm_mask_cvtepi16_storeu_epi8): New intrinsics. |
| * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type. |
| (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI, |
| VOID_FTYPE_PV16QI_V16HI_UHI): New function types. |
| * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask, |
| __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask, |
| __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask, |
| __builtin_ia32_pmovuswb256mem_mask, |
| __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask) |
| __builtin_ia32_pmovwb512mem_mask): New builtins. |
| |
| 2017-08-08 Julia Koval <julia.koval@intel.com> |
| |
| PR target/73350,80862 |
| * config/i386/subst.md (round): Fix round pattern. |
| * config/i386/i386.c (ix86_erase_embedded_rounding): |
| Fix erasing rounding for the fixed pattern. |
| |
| 2017-06-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko. |
| |
| 2017-06-08 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80911 |
| * gcov.c (block_info::block_info): New constructor. |
| |
| 2017-06-07 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: The return type of the following |
| built-in functions was implemented as int not long long. Fix sign |
| of return value for the unsigned version of vec_mulo and vec_mule. |
| vector unsigned long long vec_bperm (vector unsigned long long, |
| vector unsigned char) |
| vector signed long long vec_mule (vector signed int, |
| vector signed int) |
| vector unsigned long long vec_mule (vector unsigned int, |
| vector unsigned int) |
| vector signed long long vec_mulo (vector signed int, |
| vector signed int) |
| vector unsigned long long vec_mulo (vector unsigned int, |
| vector unsigned int) |
| * doc/extend.texi: Fix the documentation for the built-in |
| functions. |
| |
| 2017-06-07 Carl Love <cel@us.ibm.com> |
| |
| PR target/80982 |
| * config/rs6000/altivec.md (double<mode>2): Fix the implementation of |
| for BE. |
| |
| 2017-06-07 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel |
| support, Generate doublehv for signed int/float for BE case only. |
| |
| 2017-06-07 Alexander Monakov <amonakov@ispras.ru> |
| |
| * doc/invoke.texi (mcx16): Rewrite. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete. |
| * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf, |
| *mov<mode>_softfloat, and an anonymous splitter): Use |
| nonimmediate_operand instead of rs6000_nonimmediate_operand. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and |
| SPEFSCR registers. |
| * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. |
| (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE. |
| (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| (rs6000_dbx_register_number): Adjust. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Remove SPE_ACC and SPEFSCR. |
| (REG_ALLOC_ORDER): Ditto. |
| (FRAME_POINTER_REGNUM): Change to 111. |
| (enum reg_class): Remove the SPE_ACC and SPEFSCR registers. |
| (REG_CLASS_NAMES): Ditto. |
| (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers. |
| (REGISTER_NAMES): Ditto. |
| (ADDITIONAL_REG_NAMES): Ditto. |
| (rs6000_reg_names): Ditto. |
| * config/rs6000/rs6000.md: Renumber some register number |
| define_constants. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high |
| registers. |
| * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149 |
| to 117. |
| (DWARF_REG_TO_UNWIND_COLUMN): Do not define. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Delete the SPE high registers. |
| (REG_ALLOC_ORDER): Ditto. |
| (enum reg_class): Remove SPE_HIGH_REGS. |
| (REG_CLASS_NAMES): Ditto. |
| (REG_CLASS_CONTENTS): Delete the SPE high registers. |
| (REGISTER_NAMES): Ditto. |
| (rs6000_reg_names): Ditto. |
| * doc/tm.texi.in: Remove SPE as example. |
| * doc/tm.texi: Regenerate. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/8540.md (ppc8540_brinc): Delete. |
| * config/rs6000/e500mc.md (e500mc_brinc): Delete. |
| * config/rs6000/e500mc64.md (e500mc64_brinc): Delete. |
| * config/rs6000/rs6000.md (type): Remove "brinc". |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers. |
| (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000. |
| * config/rs6000/linuxspe.h: Delete file. |
| * config/rs6000/rs6000.md: Don't include spe.md. |
| * config/rs6000/spe.h: Delete file. |
| * config/rs6000/spe.md: Delete file. |
| * config/rs6000/t-rs6000: Remove spe.md. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (reg_or_mem_operand): Reformat. |
| (reg_or_none500mem_operand): Delete. |
| * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand |
| instead of reg_or_none500mem_operand. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete |
| handling of SPE flags. |
| * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove |
| SPE ABI handling. |
| * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2. |
| (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3, |
| paired_divv2sf3): Similar. |
| * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI, |
| SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify. |
| * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and |
| RS6000_BUILTIN_S. |
| Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X. |
| Rename the paired_* instruction patterns. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not |
| define __SPE__. |
| * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete. |
| * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S. |
| (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size, |
| spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and |
| TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with |
| PAIRED_VECTOR_MODE. |
| (struct machine_function): Delete field spe_insn_chain_scanned_p. |
| (spe_func_has_64bit_regs_p): Delete. |
| (spe_expand_predicate_builtin): Delete. |
| (spe_expand_evsel_builtin): Delete. |
| (TARGET_DWARF_REGISTER_SPAN): Do not define. |
| (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define. |
| (invalid_e500_subreg): Delete. |
| (rs6000_legitimize_address): Always force_reg op2 as well, for |
| paired single memory accesses. |
| (rs6000_member_type_forces_blk): Delete. |
| (rs6000_spe_function_arg): Delete. |
| (rs6000_expand_unop_builtin): Delete SPE handling. |
| (rs6000_expand_binop_builtin): Ditto. |
| (spe_expand_stv_builtin): Delete. |
| (bdesc_2arg_spe): Delete. |
| (spe_expand_builtin): Delete. |
| (spe_expand_predicate_builtin): Delete. |
| (spe_expand_evsel_builtin): Delete. |
| (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling. |
| (spe_init_builtins): Delete. |
| (spe_func_has_64bit_regs_p): Delete. |
| (savres_routine_name): Delete "info" parameter. Adjust callers. |
| (rs6000_emit_stack_reset): Ditto. |
| (rs6000_dwarf_register_span): Delete. |
| * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE, |
| UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P, |
| SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S): |
| Delete. |
| * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO): |
| Delete. |
| * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete. |
| * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE. |
| * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, |
| mulv2sf3, divv2sf3): Delete expanders. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete. |
| * config/rs6000/rs6000.c: Ditto. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete. |
| * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by |
| comparison_operator. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs. |
| * config/rs6000/rs6000.opt: Ditto. |
| * config/rs6000/t-rtems: Ditto. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and |
| TARGET_E500_SINGLE by 0, simplify. |
| * config/rs6000/rs6000.c: Ditto. |
| (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS. |
| (spe_build_register_parallel): Delete. |
| * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE, |
| TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS. |
| * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE, |
| TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify. |
| (E500_CONVERT): Delete. |
| * config/rs6000/spe.md: Remove many patterns and all define_constants. |
| |
| 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify. |
| * config/rs6000/dfp.md: Ditto. |
| (negdd2, *negdd2_fpr): Merge. |
| (absdd2, *absdd2_fpr): Merge. |
| (negtd2, *negtd2_fpr): Merge. |
| (abstd2, *abstd2_fpr): Merge. |
| * config/rs6000/e500.h: Delete file. |
| * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace |
| TARGET_FPRS by 1 and simplify. |
| * config/rs6000/rs6000-c.c: Ditto. |
| * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and |
| TARGET_DF_SPE by 0. |
| * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and |
| TARGET_DF_SPE. |
| * config/rs6000/rs6000.md: Ditto. |
| (floatdidf2, *floatdidf2_fpr): Merge. |
| (move_from_CR_gt_bit): Delete. |
| * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify. |
| (E500_CR_IOR_COMPARE): Delete. |
| (All patterns that require !TARGET_FPRS): Delete. |
| * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * passes.def (pass_iv_canon): Move before pass_loop_distribution. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * graphds.c (add_edge): Intitialize edge's attached data. |
| (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function |
| pointer parameter. Call pointed function on each edge during |
| graph traversing. Skip traversing the edge when the function |
| returns true. |
| (graphds_dfs, graphds_scc): Ditto. |
| (for_each_edge): New parameter. Pass the new parameter to callback |
| function. |
| * graphds.h (skip_edge_callback): New function pointer type. |
| (graphds_dfs, graphds_scc): New function pointer parameter. |
| (graphds_edge_callback, for_each_edge): New parameter. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor |
| out code checking if runtime alias check is possible to below ... |
| Call the new function. |
| * tree-data-ref.c (runtime_alias_check_p): ... to new function. |
| * tree-data-ref.h (runtime_alias_check_p): New decalaration. |
| |
| 2017-06-07 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80932 |
| * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add |
| TYPE_OVERFLOW_WRAPS check. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop |
| if versioning is required. |
| * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop |
| peeling with the check for versioning. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vectorizer.h (vect_build_loop_niters): New parameter. |
| * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter. |
| Set true to new parameter if new ssa variable is defined. |
| (vect_gen_vector_loop_niters): Refactor. Set range information |
| for the new vector loop bound variable. |
| (vect_do_peeling): Ditto. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-affine.c (ssa.h): Include header file. |
| (tree_to_aff_combination): Handle (T1)(X - CST) when inner type |
| has wrapping overflow behavior. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X). |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| (aff_combination_expand): Move (T1)(X *+- CST) simplification to ... |
| (tree_to_aff_combination): ... here. |
| |
| 2017-06-07 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New |
| reg_pressure model function. |
| (ivopts_global_cost_for_size): Delete. |
| (determine_set_costs, iv_ca_recount_cost): Call new model function |
| ivopts_estimate_reg_pressure. |
| |
| 2017-06-07 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more |
| expensive than udiv. Remove floating point cases from mod. |
| |
| 2017-06-07 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/aarch-cost-tables.h (cortexa53_extra_cost): |
| Increase idiv cost. |
| |
| 2017-06-07 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.md |
| (copysignsf3): Fix mask generation. |
| |
| 2017-06-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * dumpfile.h (enum tree_dump_index): Rename TDI_generic to |
| TDI_gimple. |
| (class dump_manager): Add register_dumps method. |
| * dumpfile.c: Include langhooks.h. |
| (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}. |
| (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1. |
| (FIRST_ME_AUTO_NUMBERED_DUMP): Define. |
| (dump_manager::dump_register): Start with 512 entries instead of 32. |
| (dump_manager::register_dumps): New method. |
| * toplev.c (general_init): Instead of invoking register_dumps |
| langhook, invoke register_dumps method on the dump manager. |
| * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of |
| TDI_generic. |
| |
| 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * doc/md.texi: Clarify the restrictions on a define_insn condition. |
| Say that # requires an associated define_split to exist, and that |
| the define_split must be suitable for use after register allocation. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks. |
| (compute_outgoing_frequencies): Also initialize zero counts. |
| (find_many_sub_basic_blocks): Do not produce uninitialized profile |
| around loops; preserve more of profile when nothing changes. |
| |
| 2017-06-06 Jim Wilson <jim.wilson@linaro.org> |
| |
| * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to |
| here. |
| * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here. |
| * config/arm/arm-cpu-cdata.h: Regenerate. |
| * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise. |
| * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise. |
| * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries. |
| * config/arm/arm.c (arm_qdf24xx_tune): Delete. |
| * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx |
| support. |
| * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx |
| support. |
| * config/arm/t-rmprofile: Likewise. |
| * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support. |
| |
| 2017-06-06 David S. Miller <davem@davemloft.net> |
| |
| PR target/80968 |
| * config/sparc/sparc.c (sparc_expand_prologue): Emit frame |
| blockage if function uses alloca. |
| |
| 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref): |
| New "uid" fields to hold pretty-print IDs of group and ref. |
| Memory references are now identified as <group_id>:<ref_id> |
| instead of using [random] addresses. |
| (dump_mem_details): Simplify, no functional change. |
| (dump_mem_ref): Simplify and make output more concise. |
| Replace couple of fprintf's throughout code with calls to dump_mem_ref. |
| (find_or_create_group): Initialize group uid. |
| (record_ref): Initialize ref uid. Improve debug output. |
| (prune_group_by_reuse, should_issue_prefetch_p,) |
| (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,) |
| (mark_nontemporal_store, determine_loop_nest_reuse): |
| Improve debug output. |
| |
| 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * dbgcnt.def (prefetch): New debug counter. |
| * tree-ssa-loop-prefetch.c (dbgcnt.h): New include. |
| (schedule_prefetches): Stop issueing prefetches if debug counter |
| tripped. |
| |
| 2017-06-06 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Testsuites, C Language Testsuites, |
| gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme. |
| |
| 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander): |
| Use aarch64_reg_or_zero predicate for operand 4. |
| (aarch64_compare_and_swap<mode> define_insn_and_split): |
| Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint. |
| (aarch64_store_exclusive<mode>): Likewise for operand 2. |
| |
| 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ... |
| (arm_compute_save_core_reg_mask): This. |
| (thumb1_compute_save_reg_mask): Rename into ... |
| (thumb1_compute_save_core_reg_mask): This. |
| (arm_compute_save_reg0_reg12_mask): Adapt comment. |
| (arm_compute_frame_layout): Likewise. |
| |
| 2017-06-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80974 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only |
| keep or clear leaders SSA info. |
| |
| 2017-06-06 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (split_mode_p): New function. |
| (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p. |
| |
| 2017-06-06 Tom de Vries <tom@codesourcery.com> |
| |
| * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/80978 |
| * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale |
| profile. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * shrink-wrap.c (handle_simple_exit): Update profile. |
| (try_shrink_wrapping): Upate profile. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY. |
| (tree_guess_outgoing_edge_probabilities): New. |
| * predict.h (tree_guess_outgoing_edge_probabilities): Declare. |
| * tree-cfg.c (gimple_find_sub_bbs): Propagate profile. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-split.c (split_function): Initialize return bb profile. |
| |
| 2017-06-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile.c (compute_branch_probabilities): Also initialize |
| EXIT_BLOCK profile. |
| |
| 2017-06-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80928 |
| * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps. |
| (vect_analyze_loop_operations): Properly guard analysis for |
| pure SLP case. |
| (vect_transform_loop): Likewise. |
| (vect_analyze_loop_2): Also reset SLP type on PHIs. |
| (vect_model_induction_cost): Do not cost for pure SLP. |
| (vectorizable_induction): Pass in SLP node, implement SLP vectorization |
| of induction in inner loop vectorization. |
| * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs. |
| (vect_get_and_check_slp_defs): Handle vect_induction_def. |
| (vect_build_slp_tree): Likewise. Handle PHIs as terminating the |
| recursion. |
| (vect_analyze_slp_cost_1): Cost induction. |
| (vect_detect_hybrid_slp_stmts): Handle PHIs. |
| (vect_get_slp_vect_defs): Likewise. |
| * tree-vect-stmts.c (vect_analyze_stmt): Handle induction. |
| (vect_transform_stmt): Handle SLP reductions. |
| * tree-vectorizer.h (vectorizable_induction): Adjust. |
| |
| 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (make_resolver_func): Update |
| init_lowered_empty_function call. |
| |
| 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * doc/invoke.texi: Document the -fprofile-abs-path option. |
| * common.opt (fprofile-abs-path): New option. |
| * gcov-io.h (gcov_write_filename): Declare. |
| * gcov-io.c (gcov_write_filename): New function. |
| * coverage.c (coverage_begin_function): Use gcov_write_filename. |
| * profile.c (output_location): Likewise. |
| |
| 2017-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * shring-wrap.c: Revert accidental commit. |
| |
| 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de> |
| |
| * doc/invoke.texi (-Wduplicated-branches): Add to warning list. |
| |
| 2017-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfgexpand.c (expand_gimple_tailcall): Initialize profile of |
| new edge. |
| * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing |
| profile in callgraph edge. |
| * profile-count.h (apply_probability): If THIS is 0, then result is 0 |
| (apply_scale): Likewise. |
| * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body): |
| Also scale profile when inlining function with zero profile. |
| (initialize_cfun): Update exit block profile even when it is zero. |
| * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case |
| when profile is read. |
| |
| 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (toplevel): Include attribs.h. |
| (CLONE_*): New constants to define the processors we can generate |
| code for with the target_clone attribute. |
| (rs6000_clone_map): New array to identify which clone processors |
| the current program is running on. |
| (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the |
| target_clone attribute. |
| (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise. |
| (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise. |
| (TARGET_OPTION_FUNCTION_VERSIONS): Likewise. |
| (cpu_expand_builtin): Add support for target_clone attribute. |
| (rs6000_valid_attribute_p): Allow "default" attribute. |
| (get_decl_name): New debug function to simplify printing the |
| current function name in debugging statements. |
| (rs6000_clone_priority): New functions to support the target_clone |
| attribute, and be able to generate code to switch between ISA 2.05 |
| through ISA 3.0 (power6 through power9). |
| (rs6000_compare_version_priority): Likewise. |
| (rs6000_get_function_versions_dispatcher): Likewise. |
| (make_resolver_func): Likewise. |
| (add_condition_to_bb): Likewise. |
| (dispatch_function_versions): Likewise. |
| (rs6000_generate_version_dispatcher_body): Likewise. |
| (rs6000_can_inline_p): Call get_decl_name for debugging usage. |
| (fusion_gpr_load_p): Fix a spacing issue. |
| * doc/extend.texi (Common Function Attributes): Document that the |
| PowerPC supports the target_clone attribute. |
| |
| 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.h: explain F symbol found in description of ARM |
| register allocation in its legend. |
| |
| 2017-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/mips/frame-header-opt.c: Include profile-count.h. |
| * config/riscv/riscv.c: Include profile-count.h |
| |
| 2017-06-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter; |
| update profile. |
| (sm_set_flag_if_changed): Add bbs field. |
| (execute_sm_if_changed_flag_set): Pass BBS. |
| (execute_sm): Update. |
| |
| 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): |
| New pattern. |
| |
| 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn. |
| (peephole2): New peephole2 to emit the above. |
| * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate. |
| |
| 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (define_peephole2 above |
| *sub_<shift>_<mode>): New peephole. |
| |
| 2017-05-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386.c (make_resolver_func): Update. |
| * Makefile.in: Add profile-count.h and profile-count.o |
| * auto-profile.c (afdo_indirect_call): Update to new API. |
| (afdo_set_bb_count): Update. |
| (afdo_propagate_edge): Update. |
| (afdo_propagate_circuit): Update. |
| (afdo_calculate_branch_prob): Update. |
| (afdo_annotate_cfg): Update. |
| * basic-block.h: Include profile-count.h |
| (struct edge_def): Turn count to profile_count. |
| (struct basic_block_def): Likewie. |
| (REG_BR_PROB_BASE): Move to profile-count.h |
| (RDIV): Move to profile-count.h |
| * bb-reorder.c (max_entry_count): Turn to profile_count. |
| (find_traces): Update. |
| (rotate_loop):Update. |
| (connect_traces):Update. |
| (sanitize_hot_paths):Update. |
| * bt-load.c (migrate_btr_defs): Update. |
| * cfg.c (RDIV): Remove. |
| (init_flow): Use alloc_block. |
| (alloc_block): Uninitialize count. |
| (unchecked_make_edge): Uninitialize count. |
| (check_bb_profile): Update. |
| (dump_edge_info): Update. |
| (dump_bb_info): Update. |
| (update_bb_profile_for_threading): Update. |
| (scale_bbs_frequencies_int): Update. |
| (scale_bbs_frequencies_gcov_type): Update. |
| (scale_bbs_frequencies_profile_count): New. |
| * cfg.h (update_bb_profile_for_threading): Update. |
| (scale_bbs_frequencies_profile_count): Declare. |
| * cfgbuild.c (compute_outgoing_frequencies): Update. |
| (find_many_sub_basic_blocks): Update. |
| * cfgcleanup.c (try_forward_edges): Update. |
| (try_crossjump_to_edge): Update. |
| * cfgexpand.c (expand_gimple_tailcall): Update. |
| (construct_exit_block): Update. |
| * cfghooks.c (verify_flow_info): Update. |
| (dump_bb_for_graph): Update. |
| (split_edge): Update. |
| (make_forwarder_block): Update. |
| (duplicate_block): Update. |
| (account_profile_record): Update. |
| * cfgloop.c (find_subloop_latch_edge_by_profile): Update. |
| (get_estimated_loop_iterations): Update. |
| * cfgloopanal.c (expected_loop_iterations_unbounded): Update. |
| (single_likely_exit): Update. |
| * cfgloopmanip.c (scale_loop_profile): Update. |
| (loopify): Update. |
| (set_zero_probability): Update. |
| (lv_adjust_loop_entry_edge): Update. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Update. |
| (purge_dead_edges): Update. |
| (rtl_account_profile_record): Update. |
| * cgraph.c (cgraph_node::create): Uninitialize count. |
| (symbol_table::create_edge): Uninitialize count. |
| (cgraph_update_edges_for_call_stmt_node): Update. |
| (cgraph_edge::dump_edge_flags): Update. |
| (cgraph_node::dump): Update. |
| (cgraph_edge::maybe_hot_p): Update. |
| * cgraph.h: Include profile-count.h |
| (create_clone), create_edge, create_indirect_edge): Update. |
| (cgraph_node): Turn count to profile_count. |
| (cgraph_edge0: Likewise. |
| (make_speculative, clone): Update. |
| (create_edge): Update. |
| (init_lowered_empty_function): Update. |
| * cgraphclones.c (cgraph_edge::clone): Update. |
| (duplicate_thunk_for_node): Update. |
| (cgraph_node::create_clone): Update. |
| * cgraphunit.c (cgraph_node::analyze): Update. |
| (cgraph_node::expand_thunk): Update. |
| * final.c (dump_basic_block_info): Update. |
| * gimple-streamer-in.c (input_bb): Update. |
| * gimple-streamer-out.c (output_bb): Update. |
| * graphite.c (print_global_statistics): Update. |
| (print_graphite_scop_statistics): Update. |
| * hsa-brig.c: Include basic-block.h. |
| * hsa-dump.c: Include basic-block.h. |
| * hsa-gen.c (T sum_slice): Update. |
| (convert_switch_statements):Update. |
| * hsa-regalloc.c: Include basic-block.h. |
| * ipa-chkp.c (chkp_produce_thunks): Update. |
| * ipa-cp.c (struct caller_statistics): Update. |
| (init_caller_stats): Update. |
| (gather_caller_stats): Update. |
| (ipcp_cloning_candidate_p): Update. |
| (good_cloning_opportunity_p): Update. |
| (get_info_about_necessary_edges): Update. |
| (dump_profile_updates): Update. |
| (update_profiling_info): Update. |
| (update_specialized_profile): Update. |
| (perhaps_add_new_callers): Update. |
| (decide_about_value): Update. |
| (ipa_cp_c_finalize): Update. |
| * ipa-devirt.c (struct odr_type_warn_count): Update. |
| (struct decl_warn_count): Update. |
| (struct final_warning_record): Update. |
| (possible_polymorphic_call_targets): Update. |
| (ipa_devirt): Update. |
| * ipa-fnsummary.c (redirect_to_unreachable): Update. |
| * ipa-icf.c (sem_function::merge): Update. |
| * ipa-inline-analysis.c (do_estimate_edge_time): Update. |
| * ipa-inline.c (compute_uninlined_call_time): Update. |
| (compute_inlined_call_time): Update. |
| (want_inline_small_function_p): Update. |
| (want_inline_self_recursive_call_p): Update. |
| (edge_badness): Update. |
| (lookup_recursive_calls): Update. |
| (recursive_inlining): Update. |
| (inline_small_functions): Update. |
| (dump_overall_stats): Update. |
| (dump_inline_stats): Update. |
| * ipa-profile.c (ipa_profile_generate_summary): Update. |
| (ipa_propagate_frequency): Update. |
| (ipa_profile): Update. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Update. |
| * ipa-utils.c (ipa_merge_profiles): Update. |
| * loop-doloop.c (doloop_modify): Update. |
| * loop-unroll.c (report_unroll): Update. |
| (unroll_loop_runtime_iterations): Update. |
| * lto-cgraph.c (lto_output_edge): Update. |
| (lto_output_node): Update. |
| (input_node): Update. |
| (input_edge): Update. |
| (merge_profile_summaries): Update. |
| * lto-streamer-in.c (input_cfg): Update. |
| * lto-streamer-out.c (output_cfg): Update. |
| * mcf.c (create_fixup_graph): Update. |
| (adjust_cfg_counts): Update. |
| (sum_edge_counts): Update. |
| * modulo-sched.c (sms_schedule): Update. |
| * postreload-gcse.c (eliminate_partially_redundant_load): Update. |
| * predict.c (maybe_hot_count_p): Update. |
| (probably_never_executed): Update. |
| (dump_prediction): Update. |
| (combine_predictions_for_bb): Update. |
| (propagate_freq): Update. |
| (handle_missing_profiles): Update. |
| (counts_to_freqs): Update. |
| (rebuild_frequencies): Update. |
| (force_edge_cold): Update. |
| * predict.h: Include profile-count.h |
| (maybe_hot_count_p, counts_to_freqs): UPdate. |
| * print-rtl-function.c: Do not include cfg.h |
| * print-rtl.c: Include basic-block.h |
| * profile-count.c: New file. |
| * profile-count.h: New file. |
| * profile.c (is_edge_inconsistent): Update. |
| (correct_negative_edge_counts): Update. |
| (is_inconsistent): Update. |
| (set_bb_counts): Update. |
| (read_profile_edge_counts): Update. |
| (compute_frequency_overlap): Update. |
| (compute_branch_probabilities): Update; Initialize and deinitialize |
| gcov_count tables. |
| (branch_prob): Update. |
| * profile.h (bb_gcov_counts, edge_gcov_counts): New. |
| (edge_gcov_count): New. |
| (bb_gcov_count): New. |
| * shrink-wrap.c (try_shrink_wrapping): Update. |
| * tracer.c (better_p): Update. |
| * trans-mem.c (expand_transaction): Update. |
| (ipa_tm_insert_irr_call): Update. |
| (ipa_tm_insert_gettmclone_call): Update. |
| * tree-call-cdce.c: Update. |
| * tree-cfg.c (gimple_duplicate_sese_region): Update. |
| (gimple_duplicate_sese_tail): Update. |
| (gimple_account_profile_record): Update. |
| (execute_fixup_cfg): Update. |
| * tree-inline.c (copy_bb): Update. |
| (copy_edges_for_bb): Update. |
| (initialize_cfun): Update. |
| (freqs_to_counts): Update. |
| (copy_cfg_body): Update. |
| (expand_call_inline): Update. |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. |
| * tree-ssa-loop-ivcanon.c (unloop_loops): Update. |
| (try_unroll_loop_completely): Update. |
| (try_peel_loop): Update. |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update. |
| * tree-ssa-loop-split.c (connect_loops): Update. |
| * tree-ssa-loop-unswitch.c (hoist_guard): Update. |
| * tree-ssa-reassoc.c (branch_fixup): Update. |
| * tree-ssa-tail-merge.c (replace_block_by): Update. |
| * tree-ssa-threadupdate.c (create_block_for_threading): Update. |
| (compute_path_counts): Update. |
| (update_profile): Update. |
| (recompute_probabilities): Update. |
| (update_joiner_offpath_counts): Update. |
| (estimated_freqs_path): Update. |
| (freqs_to_counts_path): Update. |
| (clear_counts_path): Update. |
| (ssa_fix_duplicate_block_edges): Update. |
| (duplicate_thread_path): Update. |
| * tree-switch-conversion.c (case_bit_test_cmp): Update. |
| (struct switch_conv_info): Update. |
| * tree-tailcall.c (decrease_profile): Update. |
| * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): Update. |
| * value-prof.c (check_counter): Update. |
| (gimple_divmod_fixed_value): Update. |
| (gimple_mod_pow2): Update. |
| (gimple_mod_subtract): Update. |
| (gimple_ic_transform): Update. |
| (gimple_stringop_fixed_value): Update. |
| * value-prof.h (gimple_ic): Update. |
| |
| 2017-06-02 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| vector double vec_doublee (vector signed int); |
| vector double vec_doublee (vector unsigned int); |
| vector double vec_doublee (vector float); |
| vector double vec_doubleh (vector signed int); |
| vector double vec_doubleh (vector unsigned int); |
| vector double vec_doubleh (vector float); |
| vector double vec_doublel (vector signed int); |
| vector double vec_doublel (vector unsigned int); |
| vector double vec_doublel (vector float); |
| vector double vec_doubleo (vector signed int); |
| vector double vec_doubleo (vector unsigned int); |
| vector double vec_doubleo (vector float);. |
| * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE, |
| DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH, |
| UNS_DOUBLEL. |
| * config/rs6000/altivec.md: Add code generator for doublee<mode>2, |
| unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2, |
| unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute |
| VS_sxwsp. |
| * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo, |
| vec_doublel, vec_doubleh. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-06-02 David Malcolm <dmalcolm@redhat.com> |
| |
| PR jit/80954 |
| * ipa-inline-analysis.c (free_growth_caches): Set |
| edge_removal_hook_holder to NULL after removing it. |
| |
| 2017-06-02 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for |
| comparision with zero. |
| |
| 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling |
| for early expansion of vec_min and vec_max builtins. |
| (builtin_function_type): Add min/max unsigned variants to those |
| identified as having unsigned arguments. |
| |
| 2017-06-02 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1. |
| |
| 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>): |
| Use VALL_F16 iterator rather than VALL. |
| |
| 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): |
| Emit CBNZ inside loop when doing a strong exchange and comparing |
| against zero. Generate the CC flags after the loop. |
| |
| 2017-06-02 David Edelsohn <dje.gcc@gmail.com> |
| |
| * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New. |
| (dl_section_ref): New. |
| (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref. |
| On AIX, append an expression to subtract the size of the |
| section length to dl_section_ref. |
| |
| 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling |
| for early expansion of vector absolute builtins. |
| |
| 2017-06-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up |
| what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts. |
| |
| 2017-06-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80948 |
| * tree-tailcall.c (find_tail_calls): Track stmts to move in |
| stmt order as well. |
| |
| 2017-06-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant |
| PHIs are ok. |
| * tree-vect-stmts.c (process_use): Do not mark backedge defs |
| for inductions as relevant. |
| |
| 2017-06-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (get_initial_def_for_induction): Inline into ... |
| (vectorizable_induction): ... this. Remove dead code. |
| |
| 2017-06-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * builtins. (expand_builtin_alloca): Remove second parameter and |
| infer its value from the first parameter instead. |
| (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above. |
| |
| 2017-06-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/80903 |
| * loop-doloop.c (add_test): Unshare sequence. |
| |
| 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * doc/invoke.texi: Document the -Wsizeof-pointer-div warning. |
| |
| 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make |
| static. |
| (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances, |
| xlogue_layout::get_instance, logue_layout::xlogue_layout, |
| sp_valid_at, fp_valid_at, choose_basereg): Formatting. |
| (xlogue_layout::get_stub_rtx): Make static. |
| (xlogue_layout::get_stub_name): Avoid const-cast, make static. |
| (xlogue_layout::compute_stub_managed_regs): Rename to... |
| (xlogue_layout::count_stub_managed_regs): ...this. |
| (xlogue_layout::is_stub_managed_reg): New function. |
| (xlogue_layout::m_stub_names): Rename to... |
| (xlogue_layout::s_stub_names): ...this, make static. |
| (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS, |
| xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS, |
| xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN, |
| xlogue_layout::s_stub_names): Instantiate statics. |
| (stub_managed_regs): Remove. |
| (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs. |
| (disable_call_ms2sysv_xlogues): Rename to... |
| (warn_once_call_ms2sysv_xlogues): ...this, and warn only once. |
| (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv |
| warning logic. |
| (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't |
| change after reload_completed. |
| (ix86_can_use_return_insn_p): Use the ix86_frame data structure |
| directly. |
| (ix86_expand_prologue): Likewise. |
| (ix86_expand_epilogue): Likewise. |
| (ix86_expand_split_stack_prologue): Likewise. |
| (ix86_compute_frame_layout): Remove frame parameter ... |
| (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook. |
| (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout |
| only if necessary. |
| (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs. |
| (ix86_frame): Move from here ... |
| * config/i386/i386.h (ix86_frame): ... to here. |
| (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the |
| complete ix86_frame data structure instead. Remove some_ld_name. |
| |
| 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (dwarf2out_late_global_decl): Add locations for |
| symbols that hold a DECL_VALUE_EXPR. |
| |
| 2017-06-01 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/80898 |
| * tree-sra.c (process_subtree_disqualification): Removed. |
| (disqualify_candidate): Do not acll |
| process_subtree_disqualification. |
| (subtree_mark_written_and_enqueue): New function. |
| (propagate_all_subaccesses): Set grp_write of LHS subtree if the |
| RHS has been disqualified and re-queue LHS if necessary. Apart |
| from that, ignore disqualified RHS. |
| |
| 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_emit_epilogue): Disable early return |
| address fetch for z10 or later. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (tst_movb): Add guard when splitting. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_can_eliminate): Test against |
| arc_frame_pointer_needed. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_expand_prologue): Emit a special barrier |
| to prevent store reordering. |
| * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define. |
| (type): Add block type. |
| (stack_tie): Define special instruction to be used in |
| expand_prologue. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (commutative_binary_comparison): Remove 'I' |
| constraint. It is not valid for the pattern. |
| (noncommutative_binary_comparison): Likewise. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid |
| scaled addresses. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to |
| be used by the reg-alloc. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (mulsi3): Avoid use of hard registers before |
| reg-alloc when having mul64 or mul32x16 instructions. |
| (mulsidi3): Likewise. |
| (umulsidi3): Likewise. |
| (mulsi32x16): New pattern. |
| (mulsi64): Likewise. |
| (mulsidi64): Likewise. |
| (umulsidi64): Likewise. |
| (MUL32x16_REG): Define. |
| (mul64_600): Use MUL32x16_REG. |
| (mac64_600): Likewise. |
| (umul64_600): Likewise. |
| (umac64_600): Likewise. |
| |
| 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (mulsi3_700): Make it commutative. |
| |
| 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn |
| type for movstouw. |
| (*sign_extendsidi2_insn): Likewise for movstosw. |
| |
| 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (get_discr_value): Call the get_debug_type hook on |
| the type of the input discriminant value. Convert the |
| discriminant value of signedness vary. |
| |
| 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de> |
| |
| * doc/invoke.texi (-Wcatch-value): Document new shortcut. |
| Add to -Wall section. |
| |
| 2017-06-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/66313 |
| * fold-const.c (fold_plusminus_mult_expr): If the factored |
| factor may be zero use a wrapping type for the inner operation. |
| * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap |
| and handle moved defs. |
| (process_assignment): Properly guard the unary op case. Return a |
| tri-state indicating that moving the stmt before the call may allow |
| to continue. Pass through to_move. |
| (find_tail_calls): Handle moving unrelated defs before |
| the call. |
| |
| 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/80618 |
| * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the |
| splitter result in the canonical way. |
| |
| 2017-05-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj) |
| also for 32bit target. Update insn attributes. |
| (zero-extendsidi2 splitter): Allow all registers for operand 1. |
| |
| 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_max_sd) |
| (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss) |
| (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss) |
| (_mm_maskz_min_ss): New intrinsics. |
| |
| 2017-05-31 Martin Liska <mliska@suse.cz> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): |
| Change comment style to one we normally use. |
| (vectorizable_reduction): Likewise. |
| (vectorizable_induction): Likewise. |
| * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. |
| (vectorizable_call): Likewise. |
| (vectorizable_simd_clone_call): Likewise. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * tree-vectorizer.h: Likewise. |
| |
| 2017-05-31 Alexander Monakov <amonakov@ispras.ru> |
| |
| * passes.c (emergency_dump_function): New. |
| * tree-pass.h (emergency_dump_function): Declare. |
| * plugin.c (plugins_internal_error_function): Remove. |
| * plugin.h (plugins_internal_error_function): Remove declaration. |
| * toplev.c (internal_error_function): New static function. Use it... |
| (general_init): ...here. |
| |
| 2017-05-31 Graham Markall <graham.markall@embecosm.com> |
| |
| * config/arc/arc.c (arc_print_operand): Handle constant operands. |
| (arc_rtx_costs): Add costs for new patterns. |
| * config/arc/arc.md: Additional *add_n and *sub_n patterns. |
| * config/arc/predicates.md: Add _1_2_3_operand predicate. |
| |
| 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-ssa-strlen.c (get_next_strinfo): New function. |
| (get_stridx_plus_constant): Use it. |
| (zero_length_string): Likewise. |
| (adjust_related_strinfos): Likewise. |
| (adjust_last_stmt): Likewise. |
| |
| 2017-05-31 Richard Biener <rguenther@suse.de> |
| |
| PR target/80880 |
| * config/i386/i386.c (ix86_expand_builtin): Remove assert |
| for arg being an SSA name when expanding IX86_BUILTIN_BNDRET. |
| |
| 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove |
| loop_vinfo argument and use of dependence distance vectors. |
| Check instead whether the two references differ only in their |
| initial value and assume that they have the same alignment if the |
| difference is a multiple of the vector alignment. |
| (vect_analyze_data_refs_alignment): Update call accordingly. |
| |
| 2017-05-31 Martin Liska <mliska@suse.cz> |
| |
| PR target/79155 |
| * config/i386/cpuid.h: Fix typo in a comment in cpuid.h. |
| |
| 2017-05-31 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (create_intersect_range_checks_index) |
| (create_intersect_range_checks): Move from ... |
| * tree-data-ref.c (create_intersect_range_checks_index) |
| (create_intersect_range_checks): ... to here. |
| (create_runtime_alias_checks): New function factored from ... |
| * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ... |
| here. Call above function. |
| * tree-data-ref.h (create_runtime_alias_checks): New function. |
| |
| 2017-05-31 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal |
| segment length for dr_b and compute it in wide_int. |
| |
| 2017-05-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80906 |
| * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get |
| and pass through iv_map. |
| (copy_bb_and_scalar_dependences): Adjust. |
| (translate_pending_phi_nodes): Likewise. |
| (copy_loop_close_phi_args): Handle code-generating IVs instead |
| of ICEing. |
| |
| 2017-05-30 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-color.c (color_dict): Add "type-diff". |
| (parse_gcc_colors): Update comment. |
| * doc/invoke.texi (Diagnostic Message Formatting Options): Add |
| -fdiagnostics-show-template-tree and -fno-elide-type. |
| (GCC_COLORS): Add type-diff to example. |
| (type-diff=): New. |
| (-fdiagnostics-show-template-tree): New. |
| (-fno-elide-type): New. |
| * pretty-print.c (pp_format): Pass quote and formatters[argno] to |
| the pp_format_decoder callback. Call any m_format_postprocessor's |
| "handle" method. |
| (pretty_printer::pretty_printer): Initialize |
| m_format_postprocessor. |
| (pretty_printer::~pretty_printer): Delete any |
| m_format_postprocessor. |
| * pretty-print.h (printer_fn): Add bool and const char ** parameters. |
| (class format_postprocessor): New class. |
| (struct pretty_printer::format_decoder): Document the new parameters. |
| (struct pretty_printer::m_format_postprocessor): New field. |
| * tree-diagnostic.c (default_tree_printer): Update for new |
| bool and const char ** params. |
| * tree-diagnostic.h (default_tree_printer): Likewise. |
| |
| 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete. |
| (lwa_operand): Delete rs6000_gen_cell_microcode test. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete |
| rs6000_gen_cell_microcode code. |
| (rs6000_final_prescan_insn): Delete. |
| (rs6000_opt_vars): Delete the "gen-cell-microcode" and |
| "warn-cell-microcode" entries. |
| * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete. |
| * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests |
| throughout. Change cc_reg_not_micro_cr0_operand to |
| cc_reg_not_cr0_operand throughout. |
| (*extendhi<mode>2_noload): Delete. |
| * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub. |
| (mwarn-cell-microcode): Delete. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Delete |
| -mgen-cell-microcode and -mwarn-cell-microcode. |
| |
| 2017-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80833 |
| * config/i386/constraints.md (Yd): New constraint. |
| (Ye): Ditto. |
| * config/i386/i386.md (*movti_internal): Add (?r, Ye) |
| and (?Yd, r) alternatives. Update insn attributes. |
| * config/i386/i386.md (*movti_internal): Add (?r, *Ye) |
| and (?*Yd, r) alternatives. Update insn attributes. |
| (double-mode inter-unit splitters): Add new GR<->XMM splitters. |
| |
| 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * gimplify.c (gimplify_modify_expr): Don't create a |
| DECL_DEBUG_EXPR link if *FROM_P does not belong to the current |
| function. |
| |
| 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. |
| |
| 2017-05-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type |
| and reduc_def fields. |
| (STMT_VINFO_REDUC_TYPE): New define. |
| (STMT_VINFO_REDUC_DEF): Likewise. |
| (vect_force_simple_reduction): Adjust prototype. |
| * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust. |
| (vect_is_simple_reduction): Remove check_reduction argument. |
| (vect_force_simple_reduction): Adjust and set |
| STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. |
| (vectorizable_reduction): Do not re-do reduction analysis |
| but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. |
| * tree-parloops.c (gather_scalar_reductions): Adjust. |
| |
| 2017-05-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80901 |
| * cfgexpand.c (expand_gimple_cond): Match up loop fixup with |
| split_edge code. |
| |
| 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): |
| Introduce unknown_misalignment parameter and remove vf. |
| (vect_peeling_hash_get_lowest_cost): |
| Pass unknown_misalignment parameter. |
| (vect_enhance_data_refs_alignment): |
| Fix unsupportable data ref treatment. |
| |
| 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_get_data_access_cost): |
| Workaround for SLP handling. |
| (vect_enhance_data_refs_alignment): |
| Compute costs for doing no peeling at all, compare to the best |
| peeling costs so far and avoid peeling if cheaper. |
| |
| 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling): |
| Return peeling info and set costs to zero for unlimited cost |
| model. |
| (vect_enhance_data_refs_alignment): Also inspect all datarefs |
| with unknown misalignment. Compute and costs for unknown |
| misalignment, compare them to the costs for known misalignment |
| and choose the cheapest for peeling. |
| |
| 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename. |
| (vect_get_peeling_costs_all_drs): Create function. |
| (vect_peeling_hash_get_lowest_cost): |
| Use vect_get_peeling_costs_all_drs. |
| (vect_peeling_supportable): Create function. |
| (vect_enhance_data_refs_alignment): Use vect_peeling_supportable. |
| |
| 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create |
| DR_HAS_NEGATIVE_STEP. |
| (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT. |
| (vect_enhance_data_refs_alignment): Use. |
| (vect_duplicate_ssa_name_ptr_info): Use. |
| * tree-vectorizer.h (dr_misalignment): Use. |
| (known_alignment_for_access_p): Use. |
| |
| 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> |
| |
| PR target/78838 |
| * config/msp430/msp430.c (gen_prefix): Return NULL when section name is |
| .lowtext. |
| (has_section_name): New function. |
| |
| 2017-05-30 Martin Liska <mliska@suse.cz> |
| |
| PR other/80909 |
| * auto-profile.c (get_function_decl_from_block): Fix |
| parenthesis. |
| |
| 2017-05-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80876 |
| * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again. |
| |
| 2017-05-30 Martin Liska <mliska@suse.cz> |
| |
| * dumpfile.c: Use newly added macro DUMP_FILE_INFO. |
| * dumpfile.h (struct dump_file_info): Remove ctors. |
| |
| 2017-05-30 Martin Liska <mliska@suse.cz> |
| |
| * predict.def: Fix GNU coding style. |
| |
| 2017-05-29 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): |
| Mark 'to' argument with ATTRIBUTE_UNUSED. |
| |
| 2017-05-29 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa.c (xtensa_emit_call): Use |
| HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string. |
| (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld |
| format string. |
| |
| 2017-05-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/install.texi (Options specification): Restore entry of |
| --enable-sjlj-exceptions. |
| |
| 2017-05-27 Michael Eager <eager@eagercon.com> |
| |
| Revert: |
| 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com> |
| |
| See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html. |
| |
| * config/microblaze/microblaze.h |
| (FIXED_REGISTERS): Update in macro. |
| (CALL_USED_REGISTERS): Update in macro. |
| |
| 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org> |
| |
| * doc/install.texi: Add links to macOS binary distributions. |
| |
| 2017-05-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/80887 |
| Revert: |
| 2017-05-25 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd ((A +- CST1) +- CST2): Allow some conversions. |
| |
| 2017-05-26 Martin Liska <mliska@suse.cz> |
| |
| * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous. |
| |
| 2017-05-26 Martin Liska <mliska@suse.cz> |
| |
| * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print |
| always leading ';; '. |
| (dump_bb_info): Likewise. |
| (brief_dump_cfg): Likewise. |
| * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT. |
| * dumpfile.c: Remove usage of TDF_VERBOSE. |
| * dumpfile.h (enum dump_kind): Likewise. |
| (dump_gimple_bb_header): Do not use TDF_COMMENT. |
| * print-tree.c (debug_verbose): Remove. |
| * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT. |
| (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE. |
| * tree-diagnostic.c (default_tree_printer): Replace |
| TDF_DIAGNOSTIC with TDF_SLIM. |
| |
| 2017-05-26 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass |
| in parameter loop, rather than loop_vinfo. |
| (create_intersect_range_checks): Ditto. |
| (vect_create_cond_for_alias_checks): Update call to above functions. |
| |
| 2017-05-26 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/80815 |
| * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition |
| for merging runtime alias checks. Handle negative DR_STEPs. |
| |
| 2017-05-26 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair): |
| Move from ... |
| * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here. |
| * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor |
| out code pruning runtime alias checks. |
| * tree-data-ref.c (prune_runtime_alias_test_list): New function |
| factored out from above. |
| * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): |
| Move from ... |
| * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): |
| ... to here. |
| (prune_runtime_alias_test_list): New decalaration. |
| |
| 2017-05-26 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-data-refs.c (compare_tree): Rename and move ... |
| * tree-data-ref.c (data_ref_compare_tree): ... to here. |
| * tree-data-ref.h (data_ref_compare_tree): New decalaration. |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses. |
| (operator==, comp_dr_with_seg_len_pair): Ditto. |
| (vect_prune_runtime_alias_test_list): Ditto. |
| |
| 2017-05-26 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80663 |
| * params.def: Bound partial-inlining-entry-probability param. |
| |
| 2017-05-26 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80875 |
| * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1 |
| can be negated. |
| |
| 2017-05-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80842 |
| * tree-ssa-ccp.c (set_lattice_value): Always meet with the old |
| value. |
| |
| 2017-05-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80844 |
| * tree-vectorizer.c (adjust_simduid_builtins): Propagate results. |
| |
| 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * doc/md.texi (Machine Constraints): Update x86 family |
| machine constraints section to match 'config/i386/constraints.md'. |
| |
| 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de> |
| |
| * doc/invoke.texi (-Wcatch-value=): Document new warning option. |
| |
| 2017-05-25 Nathan Sidwell <nathan@acm.org> |
| |
| * doc/invoke.texi (--enable-languages): Update documentation. |
| |
| 2017-05-25 Martin Liska <mliska@suse.cz> |
| |
| * dumpfile.c: Add TDF_FOLDING. |
| * dumpfile.h (enum dump_kind): Likewise. |
| * genmatch.c (dt_simplify::gen_1): Use it. |
| |
| 2017-05-25 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (view_convert (convert@0 @1)): Handle zero-extension. |
| |
| 2017-05-25 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd ((A +- CST1) +- CST2): Allow some conversions. |
| * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST. |
| |
| 2017-05-25 Marc Glisse <marc.glisse@inria.fr> |
| |
| * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation. |
| * match.pd (X == C): Rewrite it here. |
| (with_possible_nonzero_bits, with_possible_nonzero_bits2, |
| with_certain_nonzero_bits2): New predicates. |
| * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST. |
| |
| 2017-05-24 Nathan Sidwell <nathan@acm.org> |
| |
| * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to |
| avoid warning. |
| |
| * auto-profile.c (afdo_propagate): Adjust T const cast to avoid |
| warning. |
| |
| 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/powerpcspe: New port. Files are copied from the rs6000 |
| port, with "rs6000" in filenames replaced by "powerpcspe". |
| |
| 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/80754 |
| * lra-remat.c (do_remat): Add overlap checks for dst_regno. |
| |
| 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com> |
| |
| * config/sparc/sparc.md (length): Return the correct value for -mflat |
| sibcalls to match output_sibcall. |
| |
| 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR bootstrap/80860 |
| PR bootstrap/80843 |
| * config/rs6000/rs6000.c (struct machine_function): Add new field |
| n_components. |
| (rs6000_get_separate_components): Init that field, use it. |
| (rs6000_components_for_bb): Use the field. |
| |
| 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (arm_expand_prologue): Fix typo in comment. |
| |
| 2017-05-24 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/80823 |
| * tree-cfg.c (group_case_labels_stmt): Delete increment of "i"; |
| |
| 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/80725 |
| * config/s390/s390.c (s390_check_qrst_address): Check incoming |
| address against address_operand predicate. |
| * config/s390/s390.md ("*indirect_jump"): Swap alternatives. |
| |
| 2017-05-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * var-tracking.c (track_expr_p): Do not return 0 for tracked record |
| parameters passed indirectly. |
| |
| 2017-05-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movdi_internal): Remove SSE4 |
| alternative 18 (?r, *v). Update insn attributes. |
| (*movsi_internal): Remove SSE4 alternative 13 (?r, *v). |
| Update insn attributes. |
| (*zero_extendsidi2): Remove SSE4 alternative (?r, *x). |
| Update insn attributes. |
| * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4 |
| alternative 1 (r, v). Remove isa attribute. |
| * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): |
| Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC |
| and !TARGET_INTER_UNIT_MOVES_TO_VEC targets. |
| |
| 2017-05-23 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Directives, Verify compiler message): Document |
| dg-line directive. |
| |
| 2017-05-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraphunit.c (symbol_table::process_new_functions): Update. |
| * ipa-fnsummary.c (pass_data_inline_parameters): Remove. |
| (inline_generate_summary): Rename to ... |
| (ipa_fn_summary_generate): ... this one. |
| (inline_read_summary): Rename to ... |
| (ipa_fn_summary_read): ... this one. |
| (inline_write_summary): Rename to ... |
| (ipa_fn_summary_write): ... this one. |
| (inline_free_summary): Rename to ... |
| (ipa_free_fn_summary): ... this one. |
| (pass_data_local_fn_summary, pass_local_fn_summary, |
| make_pass_local_fn_summary, pass_data_ipa_free_fn_summary, |
| pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary, |
| pass_data_ipa_fn_summary, pass_ipa_fn_summary, |
| make_pass_ipa_fn_summary): New. |
| * ipa-fnsummary.h (inline_generate_summary, inline_read_summary, |
| inline_write_summary, inline_free_summary): Remove. |
| (ipa_free_fn_summary) : New. |
| * ipa-inline.c (ipa_inline): Update. |
| (pass_ipa_inline): Do not generate summaries. |
| * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary): |
| Remove. |
| * passes.def: Replace pass_inline_parameters by pass_local_fn_summary |
| and add pass_ipa_fn_summary. |
| * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary): |
| New. |
| (make_pass_inline_parameters): Remove. |
| |
| 2017-05-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-low.c (struct omp_context): Remove "default_kind" member. |
| Adjust all users. |
| |
| * omp-offload.c (execute_oacc_device_lower): Remove the |
| parallelism dimensions function attributes for unparallelized |
| OpenACC kernels constructs. |
| |
| 2017-05-23 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name |
| functions. |
| (cgraph_edge::make_speculative): Likewise. |
| (cgraph_edge::resolve_speculation): Likewise. |
| (cgraph_edge::redirect_call_stmt_to_callee): Likewise. |
| (cgraph_node::dump): Likewise. |
| * cgraph.h: Likewise. |
| * cgraphunit.c (analyze_functions): Likewise. |
| (symbol_table::compile): Likewise. |
| * ipa-cp.c (print_all_lattices): Likewise. |
| (determine_versionability): Likewise. |
| (initialize_node_lattices): Likewise. |
| (ipcp_verify_propagated_values): Likewise. |
| (estimate_local_effects): Likewise. |
| (update_profiling_info): Likewise. |
| (create_specialized_node): Likewise. |
| (perhaps_add_new_callers): Likewise. |
| (decide_about_value): Likewise. |
| (decide_whether_version_node): Likewise. |
| (identify_dead_nodes): Likewise. |
| (ipcp_store_bits_results): Likewise. |
| * ipa-devirt.c (dump_targets): Likewise. |
| (ipa_devirt): Likewise. |
| * ipa-icf.c (sem_item::dump): Likewise. |
| (sem_function::equals): Likewise. |
| (sem_variable::equals): Likewise. |
| (sem_item_optimizer::read_section): Likewise. |
| (sem_item_optimizer::execute): Likewise. |
| (congruence_class::dump): Likewise. |
| * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise. |
| (dump_inline_summary): Likewise. |
| (estimate_node_size_and_time): Likewise. |
| (inline_analyze_function): Likewise. |
| * ipa-inline-transform.c (inline_call): Likewise. |
| * ipa-inline.c (report_inline_failed_reason): Likewise. |
| (want_early_inline_function_p): Likewise. |
| (edge_badness): Likewise. |
| (update_edge_key): Likewise. |
| (inline_small_functions): Likewise. |
| * ipa-profile.c (ipa_profile): Likewise. |
| * ipa-prop.c (ipa_print_node_jump_functions): Likewise. |
| (ipa_make_edge_direct_to_target): Likewise. |
| (remove_described_reference): Likewise. |
| (ipa_impossible_devirt_target): Likewise. |
| (propagate_controlled_uses): Likewise. |
| (ipa_print_node_params): Likewise. |
| (ipcp_transform_function): Likewise. |
| * ipa-pure-const.c (pure_const_read_summary): Likewise. |
| (propagate_pure_const): Likewise. |
| * ipa-reference.c (generate_summary): Likewise. |
| (read_write_all_from_decl): Likewise. |
| (propagate): Likewise. |
| (ipa_reference_read_optimization_summary): Likewise. |
| * ipa-utils.c (ipa_merge_profiles): Likewise. |
| * ipa.c (walk_polymorphic_call_targets): Likewise. |
| (symbol_table::remove_unreachable_nodes): Likewise. |
| (ipa_single_use): Likewise. |
| * passes.c (execute_todo): Likewise. |
| * predict.c (drop_profile): Likewise. |
| * symtab.c (symtab_node::get_dump_name): New function. |
| (symtab_node::dump_name): Likewise. |
| (symtab_node::dump_asm_name): Likewise. |
| (symtab_node::dump_references): Likewise. |
| (symtab_node::dump_referring): Likewise. |
| (symtab_node::dump_base): Likewise. |
| (symtab_node::debug_symtab): Likewise. |
| * tree-sra.c (convert_callers_for_node): Likewise. |
| * tree-ssa-structalias.c (ipa_pta_execute): Likewise. |
| * value-prof.c (init_node_map): Likewise. |
| |
| 2017-05-23 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.h: Move symtab_node::dump_table to symbol_table::dump |
| and symtab_node::debug_symtab to symbol_table::debug. |
| * cgraphunit.c (analyze_functions): Use the renamed function. |
| (symbol_table::compile): Likewise. |
| * ipa-cp.c (ipcp_verify_propagated_values): Likewise. |
| * ipa-icf.c (sem_item_optimizer::execute): Likewise. |
| * passes.c (execute_todo): Likewise. |
| * symtab.c (symbol_table::dump): New function. |
| * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function. |
| |
| 2017-05-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check |
| that nonconst implies exec. |
| |
| 2017-05-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, |
| inline_edge_removal_hook, inline_edge_duplication_hook): Remove. |
| (inline_edge_summary_vec): Turn into ... |
| (ipa_call_summaries): ... this one. |
| (redirect_to_unreachable, edge_set_predicate, |
| evaluate_properties_for_edge, inline_summary_alloc, |
| reset_ipa_call_summary, reset_inline_summary, |
| inline_summary_t::duplicate): Update. |
| (inline_edge_duplication_hook): Turn to ... |
| (ipa_call_summary_t::duplicate): ... this one. |
| (inline_edge_removal_hook): Turn to ... |
| (ipa_call_summary_t::remove): ... this one. |
| (dump_inline_edge_summary): Turn to ... |
| (dump_ipa_call_summary): ... this one. |
| (estimate_function_body_sizes): Update. |
| (inline_update_callee_summaries): Update. |
| (remap_edge_change_prob): Update. |
| (remap_edge_summaries): Update. |
| (inline_merge_summary): Update. |
| (do_estimate_edge_time): Update. |
| (inline_generate_summary): Update. |
| (inline_read_section): Update. |
| (inline_read_summary): Update. |
| (inline_free_summary): Update. |
| * ipa-inline.c (can_inline_edge_p): Update. |
| (compute_inlined_call_time): Update. |
| (want_inline_small_function_p): Update. |
| (edge_badness): Update. |
| (early_inliner): Update. |
| * ipa-inline.h (inline_edge_summary): Turn to ... |
| (ipa_call_summary): ... this one. |
| (ipa_call_summary_t): New class. |
| (inline_edge_summary_t, inline_edge_summary_vec): Remove. |
| (ipa_call_summaries): New. |
| (inline_edge_summary): Remove. |
| (estimate_edge_growth): Update. |
| * ipa-profile.c (ipa_propagate_frequency_1): Update. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Update. |
| * ipa-split.c (execute_split_functions): Update. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Update. |
| |
| 2017-05-23 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware |
| attributes): Document rdrand effective target. |
| |
| 2017-05-23 Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware |
| attributes): Sort alphabetically. |
| |
| 2017-05-23 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/genmultilib.awk: Use gsub instead of gensub. |
| |
| 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/80718 |
| * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split |
| V2DF/V2DI splat into two separate patterns, one that handles |
| registers, and the other that only handles memory. Drop support |
| for splatting from a GPR on ISA 2.07 and then splitting the |
| splat into direct move and splat. |
| (vsx_splat_<mode>_reg): Likewise. |
| (vsx_splat_<mode>_mem): Likewise. |
| |
| 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs. |
| |
| 2017-05-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/80809 |
| * omp-low.c (finish_taskreg_remap): New function. |
| (finish_taskreg_scan): If unit size of ctx->record_type |
| is non-constant, unshare the size expression and replace |
| decls in it with possible outer var refs. |
| |
| PR middle-end/80809 |
| * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use |
| GOVD_SHARED rather than GOVD_PRIVATE with it. |
| (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect |
| GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE. |
| |
| PR middle-end/80853 |
| * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE |
| as last argument to build_outer_var_ref for pointer bases of array |
| section reductions. |
| |
| 2017-05-19 Martin Sebor <msebor@redhat.com> |
| |
| * print-tree.c (print_node): Print DECL_READ_P flag. |
| |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h |
| * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h |
| * cgraph.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * gengtype.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-predicate.c: Likewise. |
| * ipa-profile.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-split.c: Likewise. |
| * ipa.c: Likewise. |
| * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries, |
| edge_predicate_pool, dump_inline_hints, |
| inline_summary::account_size_time, redirect_to_unreachable, |
| edge_set_predicate, set_hint_predicate, |
| evaluate_conditions_for_known_args, evaluate_properties_for_edge, |
| inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset, |
| inline_summary_t::remove, remap_hint_predicate_after_duplication, |
| inline_summary_t::duplicate, ipa_call_summary_t::duplicate, |
| ipa_call_summary_t::remove, initialize_growth_caches, |
| free_growth_caches, dump_ipa_call_summary, dump_inline_summary, |
| debug_inline_summary, dump_inline_summaries, initialize_inline_failed, |
| mark_modified, unmodified_parm_1, unmodified_parm, |
| unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob, |
| set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate, |
| compute_bb_predicates, will_be_nonconstant_expr_predicate, |
| will_be_nonconstant_predicate, record_modified_bb_info, |
| get_minimal_bb, record_modified, param_change_prob, |
| phi_result_unknown_predicate, predicate_for_phi_result, |
| array_index_predicate, clobber_only_eh_bb_p, fp_expression_p, |
| estimate_function_body_sizes, compute_inline_parameters, |
| compute_inline_parameters_for_curren, pass_data_inline_parameters, |
| estimate_node_size_and_time, estimate_ipcp_clone_size_and_time, |
| inline_update_callee_summaries, remap_edge_change_prob, |
| remap_edge_summaries, remap_hint_predicate, inline_merge_summary, |
| inline_update_overall_summary, inline_indirect_intraprocedural_analysis, |
| inline_analyze_function, inline_summary_t::insert, |
| inline_generate_summary, read_ipa_call_summary, inline_read_section, |
| inline_read_summary, write_ipa_call_summary, inline_write_summary, |
| inline_free_summary): Move to ipa-fnsummary.h |
| (predicate_t): Remove. |
| * ipa-fnsummary.c: New file. |
| * ipa-inline.h: Do not include sreal.h and ipa-predicate.h |
| (enum inline_hints_vals, inline_hints, agg_position_info, |
| INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t, |
| inline_summaries, ipa_call_summary, ipa_call_summary_t, |
| ipa_call_summaries, debug_inline_summary, dump_inline_summaries, |
| dump_inline_summary, dump_inline_hints, inline_generate_summary, |
| inline_read_summary, inline_write_summary, inline_free_summary, |
| inline_analyze_function, initialize_inline_failed, |
| inline_merge_summary, inline_update_overall_summary, |
| compute_inline_parameters): Move to ipa-fnsummary.h |
| * ipa-fnsummary.h: New file. |
| * ipa-inline-transform.h: Include ipa-inline.h. |
| * ipa-inline.c: LIkewise. |
| |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (edge_badness): Use inlined_time instead of |
| inline_summaries->get. |
| |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (edge_badness): Use estimate_size_after_inlining. |
| |
| 2017-05-22 Nathan Sidwell <nathan@acm.org> |
| |
| * doc/invoke.texi (fdump-translation-unit): Delete documentation. |
| (fdump-lang): Document 'raw' option. |
| * dumpfile.h (TDI_tu): Delete. |
| * dumpfile.c (dump_files): Remove translation-unit. |
| (FIRST_AUTO_NUMBERED_DUMP): Decrement. |
| |
| 2017-05-22 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile" |
| command option from $(AWK) call. |
| * config/avr/genmultilib.awk: Simplify and rewrite so that it |
| generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS. |
| [FORMAT]: Remove handling of variable. |
| * config/avr/t-multilib: Regenerate. |
| |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (inline_summary::reset): Do not reset |
| self_time. |
| (dump_inline_summary): Do not print self_time. |
| (estimate_function_body_sizes): Do not set self_time. |
| (compute_inline_parameters): Likewise. |
| (inline_read_section, inline_write_summary): Do not stream self_time. |
| * ipa-inline.h (inline_summary): Drop self_time. |
| |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (account_size_time): Rename to ... |
| (inline_summary::account_size_time): ... this one. |
| (reset_ipa_call_summary): Turn to ... |
| (ipa_call_summary::reset): ... this one. |
| (reset_inline_summary): Turn to ... |
| (inline_summary::reset): ... this one. |
| (inline_summary_t::remove): Update. |
| (inline_summary_t::duplicate): Update. |
| (ipa_call_summary_t::remove): Update. |
| (dump_inline_summary): Update. |
| (estimate_function_body_sizes): Update. |
| (compute_inline_parameters): Update. |
| (estimate_node_size_and_time): Update. |
| (inline_merge_summary): Update. |
| (inline_update_overall_summary): Update. |
| (inline_read_section): Update. |
| (inline_write_summary): Update. |
| * ipa-inline.h (inline_summary): Rename entry to size_time_table; |
| add account_size_time and reset member functions. |
| (ipa_call_summary): Add reset function. |
| * ipa-predicate.h (predicate::operator &): Constify. |
| |
| 2017-05-22 Richard Biener <rguenther@suse.de> |
| |
| * df-scan.c (df_insn_refs_verify): Speedup when not verifying. |
| |
| 2017-05-19 Jason Merrill <jason@redhat.com> |
| |
| * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t. |
| |
| 2017-05-19 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80800 |
| * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add |
| TYPE_OVERFLOW_WRAPS checks. |
| |
| 2017-05-19 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree-core.h (enum omp_clause_default_kind): Add |
| "OMP_CLAUSE_DEFAULT_PRESENT". |
| * tree-pretty-print.c (dump_omp_clause): Handle it. |
| * gimplify.c (enum gimplify_omp_var_data): Add |
| "GOVD_MAP_FORCE_PRESENT". |
| (gimplify_adjust_omp_clauses_1): Map it to |
| "GOMP_MAP_FORCE_PRESENT". |
| (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT". |
| |
| * gimplify.c (oacc_default_clause): Clarify. |
| |
| 2017-05-19 Nathan Sidwell <nathan@acm.org> |
| |
| LANG_HOOK_REGISTER_DUMPS |
| * toplev.c (general_init): Call register dump lang hook. |
| * doc/invoke.texi: Document -fdump-lang option family. |
| * dumpfile.c (dump_files): Remove class dump here. |
| (FIRST_AUTO_NUMBERED_DUMP): Adjust. |
| * dumpfile.h (tree_dump_index): Remove TDI_class. |
| * langhooks-def.h (lhd_register_dumps): Declare. |
| (LANG_HOOKS_REGISTER_DUMPS): Define. |
| (LANG_HOOKS_INITIALIZER): Add it. |
| * langhooks.c (lhd_register_dumps): Define. |
| * langhooks.h (struct lang_hooks): Add register_dumps. |
| |
| 2017-05-19 Nathan Sidwell <nathan@acm.org> |
| |
| * context.h (context::set_passes): New. |
| * context.c (context::context): Do not create pass manager. |
| * toplev.c (general_init): Create pass manager here. |
| |
| 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't |
| use this splitter if two add or or instructions would also work for |
| the constant we want to generate. |
| |
| 2017-05-19 Richard Biener <rguenther@suse.de> |
| |
| PR build/80821 |
| * genmatch.c (dt_node::gen_kids_1): Add missing scope around |
| predicate evaluation. |
| |
| 2017-05-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.h (ipa_call_summary): Turn sizes into signed; |
| add ctor. |
| * ipa-inline.c (want_inline_small_function_p): Do not cast to |
| unsigned. |
| |
| 2017-05-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, |
| inline_edge_removal_hook, inline_edge_duplication_hook): Remove. |
| (inline_edge_summary_vec): Turn into ... |
| (ipa_call_summaries): ... this one. |
| (redirect_to_unreachable, edge_set_predicate, |
| evaluate_properties_for_edge, inline_summary_alloc, |
| reset_ipa_call_summary, reset_inline_summary, |
| inline_summary_t::duplicate): Update. |
| (inline_edge_duplication_hook): Turn to ... |
| (ipa_call_summary_t::duplicate): ... this one. |
| (inline_edge_removal_hook): Turn to ... |
| (ipa_call_summary_t::remove): ... this one. |
| (dump_inline_edge_summary): Turn to ... |
| (dump_ipa_call_summary): ... this one. |
| (estimate_function_body_sizes): Update. |
| (inline_update_callee_summaries): Update. |
| (remap_edge_change_prob): Update. |
| (remap_edge_summaries): Update. |
| (inline_merge_summary): Update. |
| (do_estimate_edge_time): Update. |
| (inline_generate_summary): Update. |
| (inline_read_section): Update. |
| (inline_read_summary): Update. |
| (inline_free_summary): Update. |
| * ipa-inline.c (can_inline_edge_p): Update. |
| (compute_inlined_call_time): Update. |
| (want_inline_small_function_p): Update. |
| (edge_badness): Update. |
| (early_inliner): Update. |
| * ipa-inline.h (inline_edge_summary): Turn to ... |
| (ipa_call_summary): ... this one. |
| (ipa_call_summary_t): New class. |
| (inline_edge_summary_t, inline_edge_summary_vec): Remove. |
| (ipa_call_summaries): New. |
| (inline_edge_summary): Remove. |
| (estimate_edge_growth): Update. |
| * ipa-profile.c (ipa_propagate_frequency_1): Update. |
| * ipa-prop.c (ipa_make_edge_direct_to_target): Update. |
| * ipa-split.c (execute_split_functions): Update. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Update. |
| |
| 2017-05-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80764 |
| * cfgexpand.c (expand_gimple_cond): Fix loop fixup. |
| |
| 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (struct machine_function): Add field |
| fpr_is_wrapped_separately. |
| (rs6000_get_separate_components): Use 64 components. Handle the |
| new FPR components. |
| (rs6000_components_for_bb): Handle the FPR components. |
| (rs6000_emit_prologue_components): Handle the FPR components. |
| (rs6000_emit_epilogue_components): Handle the FPR components. |
| (rs6000_set_handled_components): Handle the FPR components. |
| (rs6000_emit_prologue): Don't output prologue code for those FPRs |
| that are already separately shrink-wrapped. |
| (rs6000_emit_epilogue): Don't output epilogue code for those FPRs |
| that are already separately shrink-wrapped. |
| |
| 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/80510 |
| * config/rs6000/predicates.md (simple_offsettable_mem_operand): |
| New predicate. |
| |
| * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator. |
| (define_peephole2 for Altivec d-form load): Add peepholes to catch |
| cases where the register allocator uses a move and an offsettable |
| memory operation to/from a FPR register on ISA 2.06/2.07. |
| (define_peephole2 for Altivec d-form store): Likewise. |
| |
| 2017-05-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80799 |
| * config/i386/mmx.md (*mov<mode>_internal): Enable |
| alternatives 11, 12, 13 and 14 also for 32bit targets. |
| Remove alternatives 15, 16, 17 and 18. |
| * config/i386/sse.md (vec_concatv2di): Change |
| alternative (!x, *y) to (x, ?!*Yn). |
| |
| 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| * dumpfile.h (enum dump_kind): Remove stray comma. |
| |
| 2017-05-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * Makefile.in: Add ipa-predicate.o and ipa-predicate.h |
| * ipa-inline-analysis.c (NUM_CONDITIONS): turn into |
| predicate::num_conditions |
| (IS_NOT_CONSTANT): turn into predicate::is_not_constant. |
| (CHANGED): turn into predicate::changed. |
| (agg_position_info): Move to ipa-predicate.h |
| (add_condition, predicate::add_clause, predicate::operator &=, |
| predicate::or_with, predicate::evaluate, predicate::probability, |
| dump_condition, dump_clause, predicate::dump, |
| predicate::remap_after_duplication, predicate::remap_after_inlining, |
| predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c |
| (evaluate_conditions_for_known_args): Update. |
| (set_cond_stmt_execution_predicate): Update. |
| * ipa-inline.h: Include ipa-predicate.h |
| (condition, inline_param_summary, conditions, agg_position_info, |
| predicate): Move to ipa-predicate.h |
| * ipa-predicate.c: New file. |
| * ipa-predicate.h: New file. |
| |
| 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * final.c (leaf_function_p): Check we are not in a sequence. |
| |
| 2017-05-18 Martin Liska <mliska@suse.cz> |
| |
| * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL. |
| * dumpfile.c (dump_register): Use new enum dump_kind. |
| (get_dump_file_name): Likewise. |
| (dump_enable_all): Likewise. |
| (dump_switch_p_1): Likewise. |
| (enable_rtl_dump_file): Remove usage of TDF_RTL. |
| * dumpfile.h (enum dump_kind): New enum type. |
| (struct dump_file_info): Create constructor and |
| format fields and comments. |
| * passes.c (pass_manager::register_one_dump_file): |
| Use num dump_kind. |
| * statistics.c (statistics_early_init): Likewise. |
| * tree-ssa-loop-prefetch.c (dump_mem_details): Replace |
| TDF_TREE with TDF_SLIM. |
| (gather_memory_references_ref): Likewise. |
| |
| 2017-05-18 Martin Liska <mliska@suse.cz> |
| |
| * vec.h (struct vnull): Use it. |
| |
| 2017-05-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h |
| (true_predicate, false_predicate, true_predicate_p, |
| false_predicate_p): Remove. |
| (single_cond_predicate, not_inlined_predicate): Turn to member function |
| in ipa-inline.h |
| (add_condition): Update. |
| (add_clause): Turn to... |
| (predicate::add_clause): ... this one; update; allow passing NULL |
| as parameter. |
| (and_predicates): Turn to ... |
| (predicate::operator &=): ... this one. |
| (predicates_equal_p): Move to predicate::operator == in ipa-inline.h |
| (or_predicates): Turn to ... |
| (predicate::or_with): ... this one. |
| (evaluate_predicate): Turn to ... |
| (predicate::evaluate): ... this one. |
| (predicate_probability): Turn to ... |
| (predicate::probability): ... this one. |
| (dump_condition): Update. |
| (dump_predicate): Turn to ... |
| (predicate::dump): ... this one. |
| (account_size_time): Update. |
| (edge_set_predicate): Update. |
| (set_hint_predicate): UPdate. |
| (evaluate_conditions_for_known_args): Update. |
| (evaluate_properties_for_edge): Update. |
| (remap_predicate_after_duplication): Turn to... |
| (predicate::remap_after_duplication): ... this one. |
| (remap_hint_predicate_after_duplication): Update. |
| (inline_summary_t::duplicate): UPdate. |
| (dump_inline_edge_summary): Update. |
| (dump_inline_summary): Update. |
| (set_cond_stmt_execution_predicate): Update. |
| (set_switch_stmt_execution_predicate): Update. |
| (compute_bb_predicates): Update. |
| (will_be_nonconstant_expr_predicate): Update. |
| (will_be_nonconstant_predicate): Update. |
| (phi_result_unknown_predicate): Update. |
| (predicate_for_phi_result): Update. |
| (array_index_predicate): Update. |
| (estimate_function_body_sizes): Update. |
| (estimate_node_size_and_time): Update. |
| (estimate_ipcp_clone_size_and_time): Update. |
| (remap_predicate): Rename to ... |
| (predicate::remap_after_inlining): ... this one. |
| (remap_hint_predicate): Update. |
| (inline_merge_summary): Update. |
| (inline_update_overall_summary): Update. |
| (estimate_size_after_inlining): Update. |
| (read_predicate): Rename to ... |
| (predicate::stream_in): ... this one. |
| (read_inline_edge_summary): Update. |
| (write_predicate): Rename to ... |
| (predicate::stream_out): ... this one. |
| (write_inline_edge_summary): Update. |
| * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses. |
| (clause_t): Turn to uint32_t |
| (predicate): Turn to class; implement constructor and operators |
| ==, !=, & |
| (size_time_entry): Update. |
| (inline_summary): Update. |
| (inline_edge_summary): Update. |
| |
| 2017-05-18 Marc Glisse <marc.glisse@inria.fr> |
| |
| * fold-const.c (fold_binary_loc): Move transformation... |
| * match.pd (C - X CMP X): ... here. |
| |
| 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com> |
| |
| * config/sparc/sparc.c (sparc_option_override): Set function |
| alignment for -mcpu=niagara7 to 64 to match the I$ line. |
| * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch |
| latency to 1. |
| * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch |
| latency to 2. |
| * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo. |
| |
| 2017-05-18 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80797 |
| * ubsan.c (instrument_null): Unwrap ADDR_EXPRs. |
| (pass_ubsan::execute): Call gimple_assign_single_p instead of |
| gimple_assign_load_p. |
| |
| 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR middle-end/80692 |
| * real.c (do_compare): Give decimal_do_compare preference over |
| comparing just the signs. |
| |
| 2017-05-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * doc/md.texi (Canonicalization of Instructions): Describe the |
| canonical form of instructions that inherently set a condition |
| code register. |
| |
| 2017-05-17 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/80775 |
| * tree-cfg.c: Move deletion of unreachable case statements to after |
| the merging of consecutive case labels. |
| |
| 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer |
| readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and |
| restoring of callee-saved registers. |
| |
| 2017-05-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment. |
| * config/visium/visium.c (single_set_and_flags): Likewise. |
| * config/visium/visium.md (Substitutions): Likewise. |
| |
| 2017-05-17 Martin Liska <mliska@suse.cz> |
| |
| * cfg.c: Introduce dump_flags_t type and |
| use it instead of int type. |
| * cfg.h: Likewise. |
| * cfghooks.c: Likewise. |
| * cfghooks.h (struct cfg_hooks): Likewise. |
| * cfgrtl.c: Likewise. |
| * cfgrtl.h: Likewise. |
| * cgraph.c (cgraph_node::get_body): Likewise. |
| * coretypes.h: Likewise. |
| * domwalk.c: Likewise. |
| * domwalk.h: Likewise. |
| * dumpfile.c (struct dump_option_value_info): Likewise. |
| (dump_enable_all): Likewise. |
| (dump_switch_p_1): Likewise. |
| (opt_info_switch_p): Likewise. |
| * dumpfile.h (enum tree_dump_index): Likewise. |
| (struct dump_file_info): Likewise. |
| * genemit.c: Likewise. |
| * generic-match-head.c: Likewise. |
| * gengtype.c (open_base_files): Likewise. |
| * gimple-pretty-print.c: Likewise. |
| * gimple-pretty-print.h: Likewise. |
| * graph.c (print_graph_cfg): Likewise. |
| * graphite-scop-detection.c (dot_all_sese): Likewise. |
| * ipa-devirt.c (build_type_inheritance_graph): Likewise. |
| * loop-unroll.c (report_unroll): Likewise. |
| * passes.c (pass_manager::register_one_dump_file): Likewise. |
| * print-tree.c: Likewise. |
| * statistics.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-cfg.h: Likewise. |
| * tree-dfa.c: Likewise. |
| * tree-dfa.h: Likewise. |
| * tree-dump.c (dump_function): Likewise. |
| * tree-dump.h (struct dump_info): Likewise. |
| * tree-pretty-print.c: Likewise. |
| * tree-pretty-print.h: Likewise. |
| * tree-ssa-live.c: Likewise. |
| * tree-ssa-live.h: Likewise. |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. |
| * tree-vect-loop.c: Likewise. |
| * tree-vect-slp.c: Likewise. |
| |
| 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com> |
| Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/80457 |
| * tree-vect-stmts.c (vect_model_simple_cost): Model the cost |
| of all arguments to a statement as scalar_to_vec operations. |
| (vectorizable_call): Adjust call to vect_model_simple_cost for |
| new parameter. |
| (vectorizable_conversion): Likewise. |
| (vectorizable_assignment): Likewise. |
| (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| (vectorizable_comparison): Likewise. |
| (vect_is_simple_cond): Record the def types for operands. |
| (vectorizable_condition): Likewise, call vect_model_simple_cost. |
| * tree-vectorizer.h (vect_model_simple_cost): Add new parameter |
| for statement argument count. |
| |
| 2017-05-16 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| vector unsigned long long vec_bperm (vector unsigned long long, |
| vector unsigned char) |
| vector signed long long vec_mule (vector signed int, |
| vector signed int) |
| vector unsigned long long vec_mule (vector unsigned int, |
| vector unsigned int) |
| vector signed long long vec_mulo (vector signed int, |
| vector signed int) |
| vector unsigned long long vec_mulo (vector unsigned int, |
| vector unsigned int) |
| vector signed char vec_sldw (vector signed char, |
| vector signed char, |
| const int) |
| vector unsigned char vec_sldw (vector unsigned char, |
| vector unsigned char, |
| const int) |
| vector signed short vec_sldw (vector signed short, |
| vector signed short, |
| const int) |
| vector unsigned short vec_sldw (vector unsigned short, |
| vector unsigned short, |
| const int) |
| vector signed int vec_sldw (vector signed int, |
| vector signed int, |
| const int) |
| vector unsigned int vec_sldw (vector unsigned int, |
| vector unsigned int, |
| const int) |
| vector signed long long vec_sldw (vector signed long long, |
| vector signed long long, |
| const int) |
| vector unsigned long long vec_sldw (vector unsigned long long, |
| vector unsigned long long, |
| const int) |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| * config/rs6000/rs6000-builtin.def: Add definition for SLDW. |
| * config/rs6000/altivec.h: Add defintion for vec_sldw. |
| * doc/extend.texi: Update the built-in documentation for the |
| new built-in functions. |
| |
| 2017-05-16 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80536 |
| PR sanitizer/80386 |
| * tree.c (save_expr): Don't fold the expression. |
| |
| 2017-05-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative |
| to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r) |
| and (?*y,m). Update insn attributes. |
| |
| 2017-05-16 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_edge::resolve_speculation): Add default value for |
| flags argument of print_gimple_stmt, print_gimple_expr, |
| print_generic_stmt and print_generic_expr. |
| * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. |
| * coretypes.h: Likewise. |
| * except.c (dump_eh_tree): Likewise. |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. |
| * gimple-pretty-print.h: Likewise. |
| * gimple-ssa-backprop.c (dump_usage_prefix): Likewise. |
| (backprop::push_to_worklist): Likewise. |
| (backprop::pop_from_worklist): Likewise. |
| (backprop::process_use): Likewise. |
| (backprop::intersect_uses): Likewise. |
| (note_replacement): Likewise. |
| * gimple-ssa-store-merging.c |
| (pass_store_merging::terminate_all_aliasing_chains): Likewise. |
| (imm_store_chain_info::coalesce_immediate_stores): Likewise. |
| (pass_store_merging::execute): Likewise. |
| * gimple-ssa-strength-reduction.c (dump_candidate): Likewise. |
| (ssa_base_cand_dump_callback): Likewise. |
| (dump_incr_vec): Likewise. |
| (replace_refs): Likewise. |
| (replace_mult_candidate): Likewise. |
| (create_add_on_incoming_edge): Likewise. |
| (create_phi_basis): Likewise. |
| (insert_initializers): Likewise. |
| (all_phi_incrs_profitable): Likewise. |
| (introduce_cast_before_cand): Likewise. |
| (replace_one_candidate): Likewise. |
| * gimplify.c (gimplify_expr): Likewise. |
| * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise. |
| (set_rename): Likewise. |
| (rename_uses): Likewise. |
| (copy_loop_phi_nodes): Likewise. |
| (add_close_phis_to_merge_points): Likewise. |
| (copy_loop_close_phi_args): Likewise. |
| (copy_cond_phi_args): Likewise. |
| (graphite_copy_stmts_from_block): Likewise. |
| (translate_pending_phi_nodes): Likewise. |
| * graphite-poly.c (print_pdr): Likewise. |
| (dump_gbb_cases): Likewise. |
| (dump_gbb_conditions): Likewise. |
| (print_scop_params): Likewise. |
| * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise. |
| (build_cross_bb_scalars_use): Likewise. |
| (gather_bbs::before_dom_children): Likewise. |
| * hsa-dump.c (dump_hsa_immed): Likewise. |
| * ipa-cp.c (print_ipcp_constant_value): Likewise. |
| (get_replacement_map): Likewise. |
| * ipa-inline-analysis.c (dump_condition): Likewise. |
| (estimate_function_body_sizes): Likewise. |
| * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise. |
| (ipa_polymorphic_call_context::get_dynamic_type): Likewise. |
| * ipa-prop.c (ipa_dump_param): Likewise. |
| (ipa_print_node_jump_functions_for_edge): Likewise. |
| (ipa_modify_call_arguments): Likewise. |
| (ipa_modify_expr): Likewise. |
| (ipa_dump_param_adjustments): Likewise. |
| (ipa_dump_agg_replacement_values): Likewise. |
| (ipcp_modif_dom_walker::before_dom_children): Likewise. |
| * ipa-pure-const.c (check_stmt): Likewise. |
| (pass_nothrow::execute): Likewise. |
| * ipa-split.c (execute_split_functions): Likewise. |
| * omp-offload.c (dump_oacc_loop_part): Likewise. |
| (dump_oacc_loop): Likewise. |
| * trans-mem.c (tm_log_emit): Likewise. |
| (tm_memopt_accumulate_memops): Likewise. |
| (dump_tm_memopt_set): Likewise. |
| (dump_tm_memopt_transform): Likewise. |
| * tree-cfg.c (gimple_verify_flow_info): Likewise. |
| (print_loop): Likewise. |
| * tree-chkp-opt.c (chkp_print_addr): Likewise. |
| (chkp_gather_checks_info): Likewise. |
| (chkp_get_check_result): Likewise. |
| (chkp_remove_check_if_pass): Likewise. |
| (chkp_use_outer_bounds_if_possible): Likewise. |
| (chkp_reduce_bounds_lifetime): Likewise. |
| * tree-chkp.c (chkp_register_addr_bounds): Likewise. |
| (chkp_mark_completed_bounds): Likewise. |
| (chkp_register_incomplete_bounds): Likewise. |
| (chkp_mark_invalid_bounds): Likewise. |
| (chkp_maybe_copy_and_register_bounds): Likewise. |
| (chkp_build_returned_bound): Likewise. |
| (chkp_get_bound_for_parm): Likewise. |
| (chkp_build_bndldx): Likewise. |
| (chkp_get_bounds_by_definition): Likewise. |
| (chkp_generate_extern_var_bounds): Likewise. |
| (chkp_get_bounds_for_decl_addr): Likewise. |
| * tree-chrec.c (chrec_apply): Likewise. |
| * tree-data-ref.c (dump_data_reference): Likewise. |
| (dump_subscript): Likewise. |
| (dump_data_dependence_relation): Likewise. |
| (analyze_overlapping_iterations): Likewise. |
| * tree-inline.c (expand_call_inline): Likewise. |
| (tree_function_versioning): Likewise. |
| * tree-into-ssa.c (dump_defs_stack): Likewise. |
| (dump_currdefs): Likewise. |
| (dump_names_replaced_by): Likewise. |
| (dump_update_ssa): Likewise. |
| (update_ssa): Likewise. |
| * tree-object-size.c (pass_object_sizes::execute): Likewise. |
| * tree-parloops.c (build_new_reduction): Likewise. |
| (try_create_reduction_list): Likewise. |
| (ref_conflicts_with_region): Likewise. |
| (oacc_entry_exit_ok_1): Likewise. |
| (oacc_entry_exit_single_gang): Likewise. |
| * tree-pretty-print.h: Likewise. |
| * tree-scalar-evolution.c (set_scalar_evolution): Likewise. |
| (get_scalar_evolution): Likewise. |
| (add_to_evolution): Likewise. |
| (get_loop_exit_condition): Likewise. |
| (analyze_evolution_in_loop): Likewise. |
| (analyze_initial_condition): Likewise. |
| (analyze_scalar_evolution): Likewise. |
| (instantiate_scev): Likewise. |
| (number_of_latch_executions): Likewise. |
| (gather_chrec_stats): Likewise. |
| (final_value_replacement_loop): Likewise. |
| (scev_const_prop): Likewise. |
| * tree-sra.c (dump_access): Likewise. |
| (disqualify_candidate): Likewise. |
| (create_access): Likewise. |
| (reject): Likewise. |
| (maybe_add_sra_candidate): Likewise. |
| (create_access_replacement): Likewise. |
| (analyze_access_subtree): Likewise. |
| (analyze_all_variable_accesses): Likewise. |
| (sra_modify_assign): Likewise. |
| (initialize_constant_pool_replacements): Likewise. |
| (find_param_candidates): Likewise. |
| (decide_one_param_reduction): Likewise. |
| (replace_removed_params_ssa_names): Likewise. |
| * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. |
| * tree-ssa-copy.c (dump_copy_of): Likewise. |
| (copy_prop_visit_cond_stmt): Likewise. |
| * tree-ssa-dce.c (mark_operand_necessary): Likewise. |
| * tree-ssa-dom.c (pass_dominator::execute): Likewise. |
| (record_equivalences_from_stmt): Likewise. |
| * tree-ssa-dse.c (compute_trims): Likewise. |
| (delete_dead_call): Likewise. |
| (delete_dead_assignment): Likewise. |
| * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise. |
| (forward_propagate_into_cond): Likewise. |
| (pass_forwprop::execute): Likewise. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. |
| * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): |
| Likewise. |
| (move_computations_worker): Likewise. |
| (execute_sm): Likewise. |
| * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. |
| (remove_exits_and_undefined_stmts): Likewise. |
| (remove_redundant_iv_tests): Likewise. |
| * tree-ssa-loop-ivopts.c (dump_use): Likewise. |
| (adjust_iv_update_pos): Likewise. |
| * tree-ssa-math-opts.c (bswap_replace): Likewise. |
| * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise. |
| (value_replacement): Likewise. |
| * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. |
| * tree-ssa-pre.c (print_pre_expr): Likewise. |
| (get_representative_for): Likewise. |
| (create_expression_by_pieces): Likewise. |
| (insert_into_preds_of_block): Likewise. |
| (eliminate_insert): Likewise. |
| (eliminate_dom_walker::before_dom_children): Likewise. |
| (eliminate): Likewise. |
| (remove_dead_inserted_code): Likewise. |
| * tree-ssa-propagate.c (substitute_and_fold): Likewise. |
| * tree-ssa-reassoc.c (get_rank): Likewise. |
| (eliminate_duplicate_pair): Likewise. |
| (eliminate_plus_minus_pair): Likewise. |
| (eliminate_not_pairs): Likewise. |
| (undistribute_ops_list): Likewise. |
| (eliminate_redundant_comparison): Likewise. |
| (update_range_test): Likewise. |
| (optimize_range_tests_var_bound): Likewise. |
| (optimize_vec_cond_expr): Likewise. |
| (rewrite_expr_tree): Likewise. |
| (rewrite_expr_tree_parallel): Likewise. |
| (linearize_expr): Likewise. |
| (break_up_subtract): Likewise. |
| (linearize_expr_tree): Likewise. |
| (attempt_builtin_powi): Likewise. |
| (attempt_builtin_copysign): Likewise. |
| (transform_stmt_to_copy): Likewise. |
| (transform_stmt_to_multiply): Likewise. |
| (dump_ops_vector): Likewise. |
| * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise. |
| (print_scc): Likewise. |
| (set_ssa_val_to): Likewise. |
| (visit_reference_op_store): Likewise. |
| (visit_use): Likewise. |
| (sccvn_dom_walker::before_dom_children): Likewise. |
| (run_scc_vn): Likewise. |
| * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): |
| Likewise. |
| (expr_hash_elt::print): Likewise. |
| (const_and_copies::pop_to_marker): Likewise. |
| (const_and_copies::record_const_or_copy_raw): Likewise. |
| * tree-ssa-structalias.c (compute_dependence_clique): Likewise. |
| * tree-ssa-uninit.c (collect_phi_def_edges): Likewise. |
| (dump_predicates): Likewise. |
| (find_uninit_use): Likewise. |
| (warn_uninitialized_phi): Likewise. |
| (pass_late_warn_uninitialized::execute): Likewise. |
| * tree-ssa.c (verify_vssa): Likewise. |
| (verify_ssa): Likewise. |
| (maybe_optimize_var): Likewise. |
| * tree-vrp.c (dump_value_range): Likewise. |
| (dump_all_value_ranges): Likewise. |
| (dump_asserts_for): Likewise. |
| (register_edge_assert_for_2): Likewise. |
| (vrp_visit_cond_stmt): Likewise. |
| (vrp_visit_switch_stmt): Likewise. |
| (vrp_visit_stmt): Likewise. |
| (vrp_visit_phi_node): Likewise. |
| (simplify_cond_using_ranges_1): Likewise. |
| (fold_predicate_in): Likewise. |
| (evrp_dom_walker::before_dom_children): Likewise. |
| (evrp_dom_walker::push_value_range): Likewise. |
| (evrp_dom_walker::pop_value_range): Likewise. |
| (execute_early_vrp): Likewise. |
| |
| 2017-05-16 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (loc_list_from_tree_1): Do not create |
| DW_OP_GNU_variable_value for DECL_IGNORED_P decls. |
| |
| 2017-05-16 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE |
| just generated. |
| (note_variable_value_in_expr): If we resolved the decl ref |
| do not push to the stack. |
| |
| 2017-05-16 Matthew Wahab <matthew.wahab@arm.com> |
| |
| * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic |
| operations in fast-math mode. |
| (vaddq_f16): Likewise. |
| (vmul_f16): Likewise. |
| (vmulq_f16): Likewise. |
| (vsub_f16): Likewise. |
| (vsubq_f16): Likewise. |
| * config/arm/neon.md (add<mode>3): New. |
| (sub<mode>3): New. |
| (fma:<VH:mode>3): New. Also remove outdated comment. |
| (mul<mode>3): New. |
| |
| 2017-05-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79849. |
| PR ipa/79850. |
| * ipa-devirt.c (warn_types_mismatch): Fix typo. |
| (odr_types_equivalent_p): Likewise. |
| |
| 2017-05-15 Sylvestre Ledru <sylvestre@debian.org> |
| |
| * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637). |
| |
| 2017-05-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80425 |
| * config/i386.i386.md (*zero_extendsidi2): Do not penalize |
| non-interunit SSE move alternatives with '?'. |
| (zero-extendsidi peephole2): New peephole to skip intermediate |
| general register in SSE zero-extend sequence. |
| |
| 2017-05-15 Jeff Law <law@redhat.com> |
| |
| * reorg.c (relax_delay_slots): Create a new variable to hold |
| the temporary target rather than clobbering TARGET_LABEL. |
| |
| * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add |
| missing argument to extract_bit_field call. |
| * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise. |
| |
| 2017-05-15 Martin Liska <mliska@suse.cz> |
| |
| PR driver/31468 |
| * gcc.c (process_command): Do not allow empty argument of -o option. |
| |
| 2017-05-15 Renlin Li <renlin.li@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare. |
| * config/aarch64/aarch64.c (aarch64_expand_call): Define. |
| * config/aarch64/constraints.md (Usf): Add long call check. |
| * config/aarch64/aarch64.md (call): Use aarch64_expand_call. |
| (call_value): Likewise. |
| (sibcall): Likewise. |
| (sibcall_value): Likewise. |
| (call_insn): New. |
| (call_value_insn): New. |
| (sibcall_insn): Update rtx pattern. |
| (sibcall_value_insn): Likewise. |
| (call_internal): Remove. |
| (call_value_internal): Likewise. |
| (sibcall_internal): Likewise. |
| (sibcall_value_internal): Likewise. |
| (call_reg): Likewise. |
| (call_symbol): Likewise. |
| (call_value_reg): Likewise. |
| (call_value_symbol): Likewise. |
| |
| 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com> |
| |
| PR target/80600 |
| * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc. |
| |
| 2017-05-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is |
| compatible with CCGOCmode and with CCZmode. |
| |
| 2017-05-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/77671 |
| * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern. |
| (gimple_fold_builtin_snprintf): Same. |
| * gimple-fold.h (gimple_fold_builtin_sprintf): Declare. |
| (gimple_fold_builtin_snprintf): Same. |
| * gimple-ssa-sprintf.c (get_format_string): Correct the detection |
| of character types. |
| (is_call_safe): New function. |
| (try_substitute_return_value): Call it. |
| (try_simplify_call): New function. |
| (pass_sprintf_length::handle_gimple_call): Call it. |
| |
| 2017-05-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/80669 |
| * builtins.c (expand_builtin_stpncpy): Simplify. |
| |
| 2017-05-14 Daniel Santos <daniel.santos@pobox.com> |
| |
| * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues. |
| * config/i386/i386.h |
| (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned. |
| (NUM_X86_64_MS_CLOBBERED_REGS): New macro. |
| (struct machine_function): Add new members call_ms2sysv, |
| call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs. |
| (struct machine_frame_state): New fields sp_realigned and |
| sp_realigned_offset. |
| * config/i386/i386.c |
| (enum xlogue_stub): New enum. |
| (enum xlogue_stub_sets): New enum. |
| (class xlogue_layout): New class. |
| (struct ix86_frame): New fields stack_realign_allocate_offset, |
| stack_realign_offset and outlined_save_offset. Modify comments to |
| detail stack layout when using out-of-line stubs. |
| (ix86_target_string): Add -mcall-ms2sysv-xlogues option. |
| (ix86_option_override_internal): Add sorry() for TARGET_SEH and |
| -mcall-ms2sysv-xlogues. |
| (stub_managed_regs): New static variable. |
| (ix86_save_reg): Add new parameter ignore_outlined to optionally omit |
| registers managed by out-of-line stub. |
| (disable_call_ms2sysv_xlogues): New function. |
| (ix86_compute_frame_layout): Modify re-alignment calculations, disable |
| m->call_ms2sysv when appropriate and compute frame layout for |
| out-of-line stubs. |
| (sp_valid_at, fp_valid_at): New inline functions. |
| (choose_basereg): New function. |
| (choose_baseaddr): Add align parameter, use choose_basereg and modify |
| all callers. |
| (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov): |
| Use align parameter of choose_baseaddr to generated aligned SSE movs |
| when possible. |
| (pro_epilogue_adjust_stack): Modify to track |
| machine_frame_state::sp_realigned. |
| (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg. |
| (ix86_nsaved_sseregs): Likewise. |
| (ix86_emit_save_regs): Likewise. |
| (ix86_emit_save_regs_using_mov): Likewise. |
| (ix86_emit_save_sse_regs_using_mov): Likewise. |
| (get_scratch_register_on_entry): Likewise. |
| (gen_frame_set): New function. |
| (gen_frame_load): Likewise. |
| (gen_frame_store): Likewise. |
| (emit_outlined_ms2sysv_save): Likewise. |
| (emit_outlined_ms2sysv_restore): Likewise. |
| (ix86_expand_prologue): Modify stack re-alignment code and call |
| emit_outlined_ms2sysv_save when appropriate. |
| (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add |
| parameter rtx_insn *insn, which allows the function to be used to only |
| generate the notes. |
| (ix86_expand_epilogue): Modify validity checks of frame and stack |
| pointers, and call emit_outlined_ms2sysv_restore when appropriate. |
| (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate. |
| * config/i386/predicates.md |
| (save_multiple): New predicate. |
| (restore_multiple): Likewise. |
| * config/i386/sse.md |
| (save_multiple<mode>): New pattern. |
| (save_multiple_realign<mode>): Likewise. |
| (restore_multiple<mode>): Likewise. |
| (restore_multiple_and_return<mode>): Likewise. |
| (restore_multiple_leave_return<mode>): Likewise. |
| * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp |
| |
| 2017-05-14 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type. |
| * config/i386/i386-builtin.def (__builtin_ia32_xgetbv) |
| (__builtin_ia32_xsetbv): New builtins. |
| * config/i386/i386.c (ix86_expand_special_args_builtin): |
| Process new types. |
| (ix86_expand_builtin): Special expand for new intrinsics. |
| * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New. |
| (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns. |
| * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * cfganal.c (inverted_post_order_compute): Change argument type |
| to vec *. |
| * cfganal.h (inverted_post_order_compute): Adjust prototype. |
| * df-core.c (rest_of_handle_df_initialize): Adjust. |
| (rest_of_handle_df_finish): Likewise. |
| (df_analyze_1): Likewise. |
| (df_analyze): Likewise. |
| (loop_inverted_post_order_compute): Change argument to be a vec *. |
| (df_analyze_loop): Adjust. |
| (df_get_n_blocks): Likewise. |
| (df_get_postorder): Likewise. |
| * df.h (struct df_d): Change field to be a vec. |
| * lcm.c (compute_laterin): Adjust. |
| (compute_available): Likewise. |
| * lra-lives.c (lra_create_live_ranges_1): Likewise. |
| * tree-ssa-dce.c (remove_dead_stmt): Likewise. |
| * tree-ssa-pre.c (compute_antic): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * cfganal.c (connect_infinite_loops_to_exit): Adjust. |
| (depth_first_search::depth_first_search): Change structure init |
| function to this constructor. |
| (depth_first_search::add_bb): Rename function to this member. |
| (depth_first_search::execute): Likewise. |
| (flow_dfs_compute_reverse_finish): Adjust. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * ddg.c (find_nodes_on_paths): Use auto_sbitmap. |
| (longest_simple_path): Likewise. |
| * shrink-wrap.c (spread_components): Likewise. |
| (disqualify_problematic_components): Likewise. |
| (emit_common_heads_for_components): Likewise. |
| (emit_common_tails_for_components): Likewise. |
| (insert_prologue_epilogue_for_components): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a |
| auto_sbitmap. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * df-core.c (df_set_blocks): Start using auto_bitmap. |
| (df_compact_blocks): Likewise. |
| * df-problems.c (df_rd_confluence_n): Likewise. |
| * df-scan.c (df_insn_rescan_all): Likewise. |
| (df_process_deferred_rescans): Likewise. |
| (df_update_entry_block_defs): Likewise. |
| (df_update_exit_block_uses): Likewise. |
| (df_entry_block_bitmap_verify): Likewise. |
| (df_exit_block_bitmap_verify): Likewise. |
| (df_scan_verify): Likewise. |
| * lra-constraints.c (lra_constraints): Likewise. |
| (undo_optional_reloads): Likewise. |
| (lra_undo_inheritance): Likewise. |
| * lra-remat.c (calculate_gen_cands): Likewise. |
| (do_remat): Likewise. |
| * lra-spills.c (assign_spill_hard_regs): Likewise. |
| (spill_pseudos): Likewise. |
| * tree-ssa-pre.c (bitmap_set_and): Likewise. |
| (bitmap_set_subtract_values): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap |
| management with auto_bitmap. |
| (fix_inter_tick): Likewise. |
| (fix_recovery_deps): Likewise. |
| * ira.c (add_store_equivs): Likewise. |
| (find_moveable_pseudos): Likewise. |
| (split_live_ranges_for_shrink_wrap): Likewise. |
| * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise. |
| (rtx_reuse_manager::seen_def_p): Likewise. |
| (rtx_reuse_manager::set_seen_def): Likewise. |
| * print-rtl.h (class rtx_reuse_manager): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap |
| lifetime. |
| (migrate_btr_def): Likewise. |
| * cfgloop.c (get_loop_body_in_bfs_order): Likewise. |
| * df-core.c (loop_post_order_compute): Likewise. |
| (loop_inverted_post_order_compute): Likewise. |
| * hsa-common.h: Likewise. |
| * hsa-gen.c (hsa_bb::~hsa_bb): Likewise. |
| * init-regs.c (initialize_uninitialized_regs): Likewise. |
| * ipa-inline.c (resolve_noninline_speculation): Likewise. |
| (inline_small_functions): Likewise. |
| * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. |
| * ira.c (combine_and_move_insns): Likewise. |
| (build_insn_chain): Likewise. |
| * loop-invariant.c (find_invariants): Likewise. |
| * lower-subreg.c (propagate_pseudo_copies): Likewise. |
| * predict.c (tree_predict_by_opcode): Likewise. |
| (predict_paths_leading_to): Likewise. |
| (predict_paths_leading_to_edge): Likewise. |
| (estimate_loops_at_level): Likewise. |
| (estimate_loops): Likewise. |
| * shrink-wrap.c (try_shrink_wrapping): Likewise. |
| (spread_components): Likewise. |
| * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. |
| * tree-loop-distribution.c (rdg_build_partitions): Likewise. |
| * tree-predcom.c (tree_predictive_commoning_loop): Likewise. |
| * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise. |
| * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise. |
| * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. |
| * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise. |
| * tree-ssa-threadupdate.c (compute_path_counts): Likewise. |
| (mark_threaded_blocks): Likewise. |
| (thread_through_all_blocks): Likewise. |
| * tree-ssa.c (verify_ssa): Likewise. |
| (execute_update_addresses_taken): Likewise. |
| * tree-ssanames.c (verify_ssaname_freelists): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * cfganal.c (mark_dfs_back_edges): Replace manual stack with |
| auto_vec. |
| (post_order_compute): Likewise. |
| (inverted_post_order_compute): Likewise. |
| (pre_and_rev_post_order_compute_fn): Likewise. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * genrecog.c (int_set::int_set): Explicitly construct our |
| auto_vec base class. |
| * vec.h (auto_vec::auto_vec): New constructor. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bitmap.h (class auto_bitmap): New constructor taking |
| bitmap_obstack * argument. |
| |
| 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> |
| |
| * bitmap.h (class auto_bitmap): Change type of m_bits to |
| bitmap_head, and adjust ctor / dtor and member operators. |
| |
| 2017-05-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX |
| when returned register mode doesn't match original mode. |
| |
| 2017-05-12 Jeff Law <law@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where |
| we look for cc setter after the compare-elim changes. |
| * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns |
| within the vector to match what compare-elim now expects. |
| (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise. |
| (xorsi3_flags, one_cmplsi2_flags): Likewise. |
| |
| * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter |
| after the compare-elim changes. |
| * config/rx/rx.md (abssi2_flags): Fix order of patterns within |
| the vector to match what compare-elim now expects. |
| (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise. |
| (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise. |
| (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise. |
| (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise. |
| (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise. |
| |
| * config/visium/visium.c (single_set_and_flags): Fix where |
| we look for cc setter after the compare-elim changes. |
| * config/visium/visium.md (flags_subst_logic): Fix order of patterns |
| with the vector to match what compare-elim now expects. |
| (flags_subst_arith, add<mode>3_insn_set_carry): Likewise. |
| (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise. |
| (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise. |
| (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise. |
| (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise. |
| (neg<mode>2_insn_set_overflow): Likewise. |
| |
| 2017-05-12 Jim Wilson <jim.wilson@linaro.org> |
| |
| PR middle-end/79794 |
| * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before |
| maybe_expand_insn call, set ops[0].target. If still set after call, |
| set alt_rtl. Add extra arg to recursive calls. |
| (extract_bit_field): Add alt_rtl argument. Pass to |
| extract_bit_field. |
| * expmed.h (extract_bit_field): Fix prototype. |
| * expr.c (emit_group_load_1, copy_blkmode_from_reg) |
| (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL |
| to extract_bit_field_calls. |
| (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0. |
| Pass alt_rtl to extract_bit_field calls. |
| * calls.c (store_unaligned_arguments_into_psuedos) |
| load_register_parameters): Pass extra NULL to extract_bit_field calls. |
| * optabs.c (maybe_legitimize_operand): Clear op->target when call |
| gen_reg_rtx. |
| * optabs.h (struct expand_operand): Add target bitfield. |
| |
| 2017-05-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * compare-elim.c (try_eliminate_compare): Canonicalize |
| operation with embedded compare to |
| [(set (reg:CCM) (compare:CCM (operation) (immediate))) |
| (set (reg) (operation)]. |
| |
| * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define. |
| |
| 2017-05-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80723 |
| * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the |
| cost of adding a carry flag for ADC instruction. |
| [case MINUS]: Ignore the cost of subtracting a carry flag |
| for SBB instruction. |
| |
| 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org> |
| |
| * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h, |
| and x86intrin.h |
| * config/rs6000/bmiintrin.h: New file. |
| * config/rs6000/bmi2intrin.h: New file. |
| * config/rs6000/x86intrin.h: New file. |
| |
| 2017-05-12 Jeff Law <law@redhat.com> |
| |
| * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding |
| markers. |
| |
| 2017-05-12 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR middle-end/80707 |
| * tree-cfg.c: Remove cfg edges of unreachable case statements. |
| |
| 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for |
| early expansion of vector divide builtins. |
| (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of |
| builtins identified as having unsigned arguments. |
| |
| 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (gimple-fold.h): New #include. |
| (rs6000_gimple_fold_builtin): Add handling for early GIMPLE |
| expansion of vector logical operations (and, andc, or, xor, |
| nor, orc, nand). |
| |
| 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration. |
| * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype. |
| |
| 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for |
| early GIMPLE expansion of vector multiplies. |
| |
| 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
| |
| * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the |
| TARGET_HAVE_MOVT conditional. |
| (movt splitter): Likewise. |
| |
| 2017-05-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (has_VN_INFO): Declare. |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): |
| Fold all stmts not inplace. |
| |
| 2017-05-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80713 |
| * tree-ssa-pre.c (remove_dead_inserted_code): Clear |
| inserted_exprs bit for not removed stmts. |
| |
| 2017-05-12 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/69921 |
| * tree-parloops.c (create_parallel_loop): Set "oacc kernels |
| parallelized" attribute for parallelized OpenACC kernels. |
| * omp-offload.c (execute_oacc_device_lower): Use it. |
| |
| * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>: |
| Set "oacc kernels" attribute. |
| * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal |
| parameter. Adjust all users. |
| (oacc_fn_attrib_kernels_p): Remove function. |
| * omp-offload.c (execute_oacc_device_lower): Look for "oacc |
| kernels" attribute instead of calling oacc_fn_attrib_kernels_p. |
| * tree-ssa-loop.c (gate_oacc_kernels): Likewise. |
| * tree-parloops.c (create_parallel_loop): If oacc_kernels_p, |
| assert "oacc kernels" attribute is set. |
| |
| 2017-05-11 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| vector unsigned char vec_popcnt (vector signed char) |
| vector unsigned char vec_popcnt (vector unsigned char) |
| vector unsigned short vec_popcnt (vector signed short) |
| vector unsigned short vec_popcnt (vector unsigned short) |
| vector unsigned int vec_popcnt (vector signed int) |
| vector unsigned int vec_popcnt (vector unsigned int) |
| vector unsigned long long vec_popcnt (vector signed long long) |
| vector unsigned long long vec_popcnt (vector unsigned long long) |
| vector signed long long vec_slo (vector signed long long, |
| vector signed char) |
| vector signed long long vec_slo (vector signed long long, |
| vector unsigned char) |
| vector unsigned long long vec_slo (vector unsigned long long, |
| vector signed char) |
| vector unsigned long long vec_slo (vector unsigned long long, |
| vector unsigned char) |
| * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB, |
| VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads. |
| * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb, |
| vec_popcnth, vec_popcntw and vec_popcntd built-in functions. |
| * doc/extend.texi: Update the built-in documentation file for the |
| new built-in functions. |
| |
| 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * attribs.h (sorted_attr_string): Move machine independent |
| functions for target clone support from the i386 port to common |
| code. Rename ix86_function_versions to common_function_versions. |
| Rename make_name to make_unique_name. |
| (common_function_versions): Likewise. |
| (make_unique_name): Likewise. |
| (make_dispatcher_decl): Likewise. |
| (is_function_default_version): Likewise. |
| * attribs.c (attr_strcmp): Likewise. |
| (sorted_attr_string): Likewise. |
| (common_function_versions): Likewise. |
| (make_unique_name): Likewise. |
| (make_dispatcher_decl): Likewise. |
| (is_function_default_version): Likewise. |
| * config/i386/i386.c (attr_strcmp): Likewise. |
| (sorted_attr_string): Likewise. |
| (ix86_function_versions): Likewise. |
| (make_name): Likewise. |
| (make_dispatcher_decl): Likewise. |
| (is_function_default_version): Likewise. |
| (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook. |
| |
| 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/80695 |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): |
| Account for direct move costs for vec_construct of integer |
| vectors. |
| |
| 2017-05-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80706 |
| * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec. |
| (UNSPEC_STX_ATOMIC): Ditto. |
| (loaddi_via_sse): New insn. |
| (storedi_via_sse): Ditto. |
| (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse. |
| Update corresponding peephole2 patterns. |
| (atomic_storedi_fpu): Ditto. |
| |
| 2017-05-11 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd) |
| (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): |
| New intrinsics. |
| * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask) |
| (__builtin_ia32_rsqrt14ss_mask): New builtins. |
| * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern. |
| |
| 2017-05-11 Nathan Sidwell <nathan@acm.org> |
| |
| * graphite-poly.c: Include dumpfile.h. |
| |
| * dumpfle.h (dump_function): Declare here ... |
| * tree-dump.h (dump_function): ... not here. |
| * dumpfile.c: #include tree-cfg.h. |
| (dump_function): Move here from ... |
| * tree-dump.c (dump_function): ... here. |
| * gimplify.c: #include splay-tree.h, not tree-dump.h. |
| * graphite-poly.c: Don't include tree-dump.h. |
| * cgraphclones.c: Include dumpfile.h not tree-dump.h. |
| * print-tree.c: Likewise. |
| * stor-layout.c: Likewise. |
| * tree-nested.c: Likewise. |
| |
| * dumpfile.c (dump_start): Use TDF_FLAGS. |
| (dump_enable_all): Fix TDF_KIND check thinko. |
| |
| 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| array entries to represent two legal parameterizations of the |
| overloaded __builtin_cmpb function, as represented by the |
| P6_OV_BUILTIN_CMPB constant. |
| (altivec_resolve_overloaded_builtin): Add special case handling |
| for the __builtin_cmpb function, as represented by the |
| P6_OV_BUILTIN_CMPB constant. |
| * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro. |
| (BU_P6_64BIT_2): New macro. |
| (BU_P6_OVERLOAD_2): New macro |
| (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets. |
| (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets. |
| (CMPB): Add overload support to represent both 32-bit and 64-bit |
| compare-bytes function. |
| * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add |
| support for TARGET_CMPB. |
| * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB. |
| * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add |
| documentation of the __builtin_cmpb overloaded built-in function. |
| |
| 2017-05-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80705 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED |
| bases are not vectorizable. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger |
| when counting register pressure. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (compare_cost_pair): New. |
| (iv_ca_more_deps): Renamed to ... |
| (iv_ca_compare_deps): ... this. |
| (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump |
| to ... |
| (determine_group_iv_costs): ... here. |
| (find_inv_vars_cb): Record inv var if it's not recorded before. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments. |
| (get_shiftadd_cost): Ditto. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-address.c: Include header file. |
| (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory |
| address. |
| (add_to_parts): Refactor. |
| (addr_to_parts): New parameter. Update use of move_hint_to_base. |
| (create_mem_ref): Update use of addr_to_parts. Re-associate addr |
| in new order. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/53090 |
| * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value |
| COMP_IV_EXPR_2. |
| (extract_cond_operands): Detect condition with IV on both sides |
| and return COMP_IV_EXPR_2. |
| (find_interesting_uses_cond): Add iv_use for both IVs in condition. |
| (rewrite_use_compare): Simplify by removing call to function |
| extract_cond_operands. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New. |
| (extract_cond_operands): Detect condition comparing against non- |
| invariant bound and return appropriate enum value. |
| (find_interesting_uses_cond): Update use of extract_cond_operands. |
| Handle its return value accordingly. |
| (determine_group_iv_cost_cond, rewrite_use_compare): Ditto. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate |
| nonlinear iv_use computation in loop invariant sensitive way. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New. |
| (find_iv_candidates): Call relate_compare_use_with_all_cands. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs. |
| (dump_cand): Support iv_cand.inv_exprs. |
| (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs |
| for candidates. |
| (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support |
| iv_cand.inv_exprs. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move |
| from ... |
| * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here |
| as local function. Include necessary header files. |
| * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more |
| operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR, |
| RSHIFT_EXPR and BIT_NOT_EXPR. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify. |
| (adjust_setup_cost): New parameter supporting round up adjustment. |
| (struct address_cost_data): Delete. |
| (force_expr_to_var_cost): Don't bound cost with spill_cost. |
| (split_address_cost, ptr_difference_cost): Delete. |
| (difference_cost, compare_aff_trees, record_inv_expr): Delete. |
| (struct ainc_cost_data): New struct. |
| (get_address_cost_ainc): New function. |
| (get_address_cost, get_computation_cost): Reimplement. |
| (determine_group_iv_cost_address): Record inv_expr for all uses of |
| a group. |
| (determine_group_iv_cost_cond): Call get_loop_invariant_expr. |
| (iv_ca_has_deps): Reimplemented to ... |
| (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps |
| than OLD_CP. |
| (iv_ca_extend): Call iv_ca_more_deps. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-address.c (struct mem_address): Move to header file. |
| (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global. |
| * tree-ssa-address.h (struct mem_address): Move from C file. |
| (valid_mem_ref_p, move_fixed_address_to_symbol): Declare. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-affine.h (aff_combination_type): New interface. |
| (aff_combination_zero_p): Remove static. |
| (aff_combination_const_p): New interface. |
| (aff_combination_singleton_var_p): New interfaces. |
| |
| 2017-05-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): |
| Skip unreachable blocks and destinations. |
| (eliminate): Move stmt removal and fixup ... |
| (fini_eliminate): ... here. Skip inserted exprs. |
| (pass_pre::execute): Move fini_pre after fini_eliminate. |
| * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h. |
| (tail_merge_optimize): Run cleanup_tree_cfg if requested by |
| PRE to get rid of dead code that has invalid SSA form and |
| split critical edges again. |
| |
| 2017-05-11 Bin Cheng <bin.cheng@arm.com> |
| |
| * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. |
| |
| 2017-05-11 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (execute_function_todo): Verify loops if they are |
| said to be up-to-date. |
| * cfgexpand.c (pass_expand::execute): Discard loops for -dx. |
| * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup. |
| |
| 2017-05-10 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/80090 |
| * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF, |
| handle calling assemble_external ourself. |
| |
| PR target/79027 |
| * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from |
| modes with zero size. Enhance comment. |
| |
| 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8 |
| built-ins for vec_xl and vec_xst with short and char pointer |
| arguments. |
| |
| 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_max_round_sd) |
| (_mm_maskz_max_round_sd, _mm_mask_max_round_ss) |
| (_mm_maskz_max_round_ss, _mm_mask_min_round_sd) |
| (_mm_maskz_min_round_sd, _mm_mask_min_round_ss) |
| (_mm_maskz_min_round_ss): New intrinsics. |
| * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT) |
| (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases. |
| * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round) |
| (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round) |
| (__builtin_ia32_minss_mask_round): New builtins. |
| * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. |
| * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>): |
| Rename to ... |
| (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this. |
| (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}): |
| Change to ... |
| (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): |
| ... this. |
| |
| 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd) |
| (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss) |
| (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd) |
| (_mm_maskz_div_round_sd, _mm_mask_div_round_ss) |
| (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd) |
| (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd) |
| (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics. |
| * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. |
| * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round) |
| (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round) |
| (__builtin_ia32_mulss_mask_round): New builtins. |
| * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. |
| * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>): |
| Rename to ... |
| (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this. |
| (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): |
| Change to ... |
| (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): |
| ... this. |
| |
| 2017-05-10 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d) |
| (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d) |
| (_mm256_setr_m128i): New intrinsics. |
| |
| 2017-05-10 Julia Koval <julia.koval@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd) |
| (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss) |
| (_mm_maskz_rcp14_ss): New intrinsics. |
| * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask) |
| (__builtin_ia32_rcp14ss_mask): New builtins. |
| * config/i386/sse.md (srcp14<mode>_mask): New pattern. |
| |
| 2017-05-10 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR tree-optimization/51513 |
| * tree-cfg.c (gimple_seq_unreachable_p): New function. |
| (assert_unreachable_fallthru_edge_p): Use it. |
| (group_case_labels_stmt): Likewise. |
| * tree-cfg.h: Prototype it. |
| * stmt.c: Include cfghooks.h and tree-cfg.h. |
| (emit_case_dispatch_table) <gap_label>: New local variable. |
| Use it to fill dispatch table gaps. |
| Test for default_label before updating probabilities. |
| (expand_case) <default_label>: Remove unneeded initialization. |
| Test for unreachable default case statement and remove its edge. |
| Set default_label accordingly. |
| * tree-ssa-ccp.c (optimize_unreachable): Update comment. |
| |
| 2017-05-10 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c: Add support for built-in functions |
| vector signed char vec_neg (vector signed char) |
| vector signed short int vec_neg (vector short int) |
| vector signed int vec_neg (vector signed int) |
| vector signed long long vec_neg (vector signed long long) |
| vector float vec_neg (vector float) |
| vector double vec_neg (vector double) |
| * config/rs6000/rs6000-builtin.def: Add definitions for NEG function |
| overload. |
| * config/rs6000/altivec.h: Add define for vec_neg |
| * doc/extend.texi: Update the built-in documentation for the |
| new built-in functions. |
| |
| 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR tree-optimization/77644 |
| * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern. |
| |
| 2017-05-10 Nathan Sidwell <nathan@acm.org> |
| |
| * dumpfile.h (TDI_lang_all): New. |
| (TDF_KIND): New. Renumber others |
| (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather |
| than bits. |
| * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add |
| lang-all. |
| (get_dump_file_name): Adjust suffix generation. |
| (dump_enable_all): Use TDF_KIND. |
| * doc/invoke.texi (-fdump-lang-all): Document. |
| |
| * dumpfile.h: Tabify. |
| |
| 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/80671 |
| * config/aarch64/cortex-a57-fma-steering.c (merge_forest): |
| Move member access before delete. |
| |
| 2017-05-10 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-inline.c (expand_call_inline): Split block at stmt |
| before the call. |
| |
| 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/68163 |
| * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that |
| are now unused after splitting mov{sf,sd}_hardfloat. |
| (f32_lr2): Likewise. |
| (f32_lm): Likewise. |
| (f32_lm2): Likewise. |
| (f32_li): Likewise. |
| (f32_li2): Likewise. |
| (f32_lv): Likewise. |
| (f32_sr): Likewise. |
| (f32_sr2): Likewise. |
| (f32_sm): Likewise. |
| (f32_sm2): Likewise. |
| (f32_si): Likewise. |
| (f32_si2): Likewise. |
| (f32_sv): Likewise. |
| (f32_dm): Likewise. |
| (f32_vsx): Likewise. |
| (f32_av): Likewise. |
| (mov<mode>_hardfloat): Split into separate movsf and movsd pieces. |
| For movsf, order stores so the VSX stores occur before the GPR |
| store which encourages the register allocator to use a traditional |
| FPR instead of a GPR. For movsd, order the stores so that the GPR |
| store comes before the VSX stores to allow the power6 to work. |
| This is due to the power6 not having a 32-bit integer store |
| instruction from a FPR. |
| (movsf_hardfloat): Likewise. |
| (movsd_hardfloat): Likewise. |
| |
| 2017-05-09 Martin Sebor <msebor@redhat.com> |
| |
| PR translation/80280 |
| * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member |
| added in r247778. |
| |
| PR translation/80280 |
| * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new |
| data member added in r247778. |
| (ms_scanf_flag_specs, ms_strftime_flag_specs): Same. |
| |
| 2017-05-09 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure. |
| |
| * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope |
| typedefs. |
| |
| 2017-05-09 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Fix typo. |
| |
| 2017-05-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_val_is_max): Adjust comment. |
| (vrp_val_is_min): Likewise. |
| (set_value_range_to_value): Likewise. |
| (set_value_range_to_nonnegative): Likewise. |
| (gimple_assign_nonzero_p): Likewise. |
| (gimple_stmt_nonzero_p): Likewise. |
| (vrp_int_const_binop): Likewise. Remove unreachable case. |
| (adjust_range_with_scev): Adjust comments. |
| (compare_range_with_value): Likewise. |
| (extract_range_from_phi_node): Likewise. |
| (test_for_singularity): Likewise. |
| |
| 2017-05-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (get_single_symbol): Add assert that we don't |
| get overflowed constants as invariant part. |
| (compare_values_warnv): Add comment before the TREE_NO_WARNING |
| checks. Use wi::cmp instead of recursing for integer constants. |
| (compare_values): Just ignore whether we assumed undefined |
| overflow instead of failing the compare. |
| (extract_range_for_var_from_comparison_expr): Add comment before the |
| TREE_NO_WARNING sets. |
| (test_for_singularity): Likewise. |
| (extract_range_from_comparison): Do not disable optimization |
| when we assumed undefined overflow. |
| (extract_range_basic): Remove init of unused var. |
| |
| 2017-05-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify. |
| (extract_range_from_multiplicative_op_1): Adjust. |
| (extract_range_from_binary_expr_1): Use int_const_binop. |
| |
| 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/80101 |
| * config/rs6000/power6.md: Replace store_data_bypass_p calls with |
| rs6000_store_data_bypass_p in seven define_bypass directives and |
| in several comments. |
| * config/rs6000/rs6000-protos.h: Add prototype for |
| rs6000_store_data_bypass_p function. |
| * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New |
| function implements slightly different (rs6000-specific) semantics |
| than store_data_bypass_p, returning false rather than aborting |
| with assertion error when arguments do not satisfy the |
| requirements of store data bypass. |
| (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with |
| rs6000_store_data_bypass_p. |
| |
| 2017-05-08 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/xtensa/xtensa-protos.h |
| (xtensa_initial_elimination_offset): New declaration. |
| * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): |
| New function. Move its body from the INITIAL_ELIMINATION_OFFSET |
| macro definition, add case for FRAME_POINTER_REGNUM when |
| FRAME_GROWS_DOWNWARD. |
| * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition. |
| (INITIAL_ELIMINATION_OFFSET): Replace body with call to |
| xtensa_initial_elimination_offset. |
| |
| 2017-05-08 Nathan Sidwell <nathan@acm.org> |
| |
| * doc/invoke.texi: Alphabetize -fdump options. |
| |
| 2017-05-08 Martin Sebor <msebor@redhat.com> |
| |
| PR translation/80280 |
| * config/sol2-c.c (solaris_pragma_align): Correct quoting. |
| |
| 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * target.def (compute_frame_layout): New optional target hook. |
| * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook. |
| * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation. |
| * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout |
| target hook. |
| * reload1.c (verify_initial_elim_offsets): Likewise. |
| * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define. |
| (use_simple_return_p): Call arm_compute_frame_layout if needed. |
| (arm_get_frame_offsets): Split up into this ... |
| (arm_compute_frame_layout): ... and this function. |
| |
| 2017-05-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/constraints.md (Usa): New constraint. |
| * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it. |
| |
| 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from |
| with_multilib_list after it has been checked. |
| |
| 2017-05-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy. |
| (bitmap_set_subtract_values): Likewise. |
| |
| 2017-05-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ... |
| (gimple_assign_nonzero): ... this and remove strict_overflow_p |
| argument. |
| (gimple_stmt_nonzero_warnv_p): Rename to ... |
| (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p |
| argument. |
| (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument. |
| (extract_range_basic): Adjust, do not disable propagation on |
| strict overflow sensitive simplification. |
| (vrp_visit_cond_stmt): Likewise. |
| |
| 2017-05-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute |
| body size unconditionally. |
| |
| 2017-05-07 Jeff Law <law@redhat.com> |
| |
| Revert: |
| 2017-05-06 Jeff Law <law@redhat.com> |
| PR tree-optimization/78496 |
| * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging |
| code. |
| |
| PR tree-optimization/78496 |
| * tree-vrp.c (simplify_assert_expr_using_ranges): New function. |
| (simplify_stmt_using_ranges): Call it. |
| (vrp_dom_walker::before_dom_children): Extract equivalences |
| from an ASSERT_EXPR with an equality comparison against a |
| constant. |
| |
| 2017-05-06 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/78496 |
| * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging |
| code. |
| |
| PR tree-optimization/78496 |
| * tree-vrp.c (simplify_assert_expr_using_ranges): New function. |
| (simplify_stmt_using_ranges): Call it. |
| (vrp_dom_walker::before_dom_children): Extract equivalences |
| from an ASSERT_EXPR with an equality comparison against a |
| constant. |
| |
| 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * lra-constraints.c (lra_copy_reg_equiv): New function. |
| (split_reg): Use it to copy equivalence information from the |
| original register to the spill register. |
| |
| 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| PR rtl-optimization/75964 |
| * simplify-rtx.c (simplify_const_relational_operation): Remove |
| invalid handling of comparisons of integer ABS. |
| |
| 2017-05-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ext_80387_constant_init): Do not explicitly |
| initialize to zero. |
| (init_regs): Remove declaration. |
| (function_arg_advance_32): Initialize error_p as boolean variable. |
| |
| 2017-05-05 Nathan Sidwell <nathan@acm.org> |
| |
| * store-motion.c (remove_reachable_equiv_notes): Reformat long |
| lines. Use for (;;). |
| |
| 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var. |
| (rs6000_init_cost): Initialize rs6000_vect_nonmem. |
| (rs6000_add_stmt_cost): Update rs6000_vect_nonmem. |
| (rs6000_finish_cost): Avoid vectorizing simple copy loops with |
| VF=2 that require versioning. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const |
| int. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.h (diagnostic_override_option_index): Convert from |
| macro to inline function. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c (last_module_changed_p): New function. |
| (set_last_module): New function. |
| (diagnostic_report_current_module): Convert macro usage to |
| the above functions. |
| * diagnostic.h (diagnostic_context::last_module): Strengthen |
| from const line_map * to const line_map_ordinary *. |
| (diagnostic_last_module_changed): Delete macro. |
| (diagnostic_set_last_module): Delete macro. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c (diagnostic_impl): Replace report_diagnostic |
| with diagnostic_report_diagnostic. |
| (diagnostic_n_impl_richloc): Likewise. |
| * diagnostic.h (report_diagnostic): Delete macro. |
| * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic |
| with diagnostic_report_diagnostic. |
| * substring-locations.c (format_warning_va): Likewise. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c (diagnostic_report_diagnostic): Eliminate |
| save/restor of format_spec. Move option-printing code to... |
| (print_option_information): ...this new function, and |
| reimplement by simply printing to the pretty_printer, |
| rather than appending to the format string. |
| |
| 2017-05-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic.c (diagnostic_report_diagnostic): Split out pragma |
| handling logic into... |
| (update_effective_level_from_pragmas): ...this new function. |
| |
| 2017-05-04 Andrew Waterman <andrew@sifive.com> |
| |
| * config/riscv/riscv.opt (mstrict-align): New option. |
| * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment. |
| (SLOW_UNALIGNED_ACCESS): Define. |
| (riscv_slow_unaligned_access): Declare. |
| * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access |
| field. |
| (riscv_slow_unaligned_access): New variable. |
| (rocket_tune_info): Set slow_unaligned_access to true. |
| (optimize_size_tune_info): Set slow_unaligned_access to false. |
| (riscv_cpu_info_table): Add entry for optimize_size_tune_info. |
| (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN. |
| (riscv_option_override): Set riscv_slow_unaligned_access. |
| * doc/invoke.texi: Add -mstrict-align to RISC-V. |
| |
| 2017-05-04 Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/riscv/riscv.md: Unify indentation. |
| |
| 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79038 |
| PR target/79202 |
| PR target/79203 |
| * config/rs6000/rs6000.md (u code attribute): Add FIX and |
| UNSIGNED_FIX. |
| (extendsi<mode>2): Add support for doing sign extension via |
| VUPKHSW and XXPERMDI if the value is in Altivec registers and we |
| don't have ISA 3.0 instructions. |
| (extendsi<mode>2 splitter): Likewise. |
| (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer), |
| generate the normal insns since SImode can now go in vector |
| registers. Disallow the special UNSPECs needed for previous |
| machines to hide SImode being used. Add new insns |
| fctiw{,w}_<mode>_smallint if SImode can go in vector registers. |
| (fix_trunc<mode>si2_stfiwx): Likewise. |
| (fix_trunc<mode>si2_internal): Likewise. |
| (fixuns_trunc<mode>si2): Likewise. |
| (fixuns_trunc<mode>si2_stfiwx): Likewise. |
| (fctiw<u>z_<mode>_smallint): Likewise. |
| (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion |
| of floating point to 32-bit integer from doing a direct move to |
| the GPR registers to do a store. |
| (fctiwz_<mode>): Break long line. |
| |
| 2017-05-05 Bin Cheng <bin.cheng@arm.com> |
| |
| * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c. |
| * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete. |
| (addr_list, addr_offset_valid_p): New. |
| (split_address_groups): Check offset validity with above function. |
| (gt-tree-ssa-loop-ivopts.h): Include header file. |
| |
| 2017-05-05 Nathan Sidwell <nathan@acm.org> |
| |
| * config.gcc (arm*-*-*): Add missing 'fi'. |
| |
| 2017-05-05 Steve Ellcey <sellcey@cavium.com> |
| |
| * doc/invoke.texi (-fopt-info): Explicitly say order of options |
| included in -fopt-info does not matter. |
| * doc/optinfo.texi (-fopt-info): Fix description of default |
| behavour. Explicitly say order of options included in -fopt-info |
| does not matter. |
| |
| 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config.gcc: Allow combinations of aprofile and rmprofile values for |
| --with-multilib-list. |
| * config/arm/t-multilib: New file. |
| * config/arm/t-aprofile: Remove initialization of MULTILIB_* |
| variables. Remove setting of ISA and floating-point ABI in |
| MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in |
| MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS |
| and MULTILIB_DIRNAMES respectively. Add comment to introduce all |
| matches. Add architecture matches for marvel-pj4 and generic-armv7-a |
| CPU options. |
| * config/arm/t-rmprofile: Likewise except for the matches changes. |
| * doc/install.texi (--with-multilib-list): Document the combination of |
| aprofile and rmprofile values and warn about pitfalls in doing that. |
| |
| 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w. |
| (movdi_aarch64): Likewise. |
| |
| 2017-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/80632 |
| * tree-switch-conversion.c (struct switch_conv_info): Add target_vop |
| field. |
| (build_arrays): Initialize it for virtual phis. |
| (fix_phi_nodes): Use it for virtual phis. |
| |
| PR tree-optimization/80558 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Optimize |
| [x, y] op z into [x op, y op z] for op & or | if conditions |
| are met. |
| |
| 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
| |
| PR target/71607 |
| * config/arm/arm.md (use_literal_pool): Remove. |
| (64-bit immediate split): No longer takes cost into consideration |
| if arm_disable_literal_pool is enabled. |
| * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is |
| used when arm_disable_literal_pool is enabled. |
| (arm_max_const_double_inline_cost): Remove use of |
| arm_disable_literal_pool. |
| (push_minipool_fix): Add assert. |
| (arm_reorg): Add return if arm_disable_literal_pool is enabled. |
| * config/arm/vfp.md (no_literal_pool_df_immediate): New. |
| (no_literal_pool_sf_immediate): New. |
| |
| 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR tree-optimization/80613 |
| * tree-ssa-dce.c (propagate_necessity): Remove cases for |
| BUILT_IN_STRDUP and BUILT_IN_STRNDUP. |
| |
| 2017-05-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify. |
| |
| 2017-05-05 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md [flag_strict_overflow]: Remove any occurence |
| of this flag from insn conditions due to removal from r247495. |
| |
| 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr): |
| New function. |
| (arm_early_store_addr_dep_ptr): Likewise. |
| * config/arm/aarch-common-protos.h |
| (arm_early_load_addr_dep_ptr): Add prototype. |
| (arm_early_store_addr_dep_ptr): Likewise. |
| * config/arm/cortex-a53.md: Add new bypasses. |
| |
| 2017-05-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.c (next_type_uid): Change type to unsigned. |
| (type_hash_canon): Decrement back next_type_uid if |
| freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs |
| also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES |
| if possible. |
| |
| 2017-05-04 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c: Fix a trivial typo in a comment. |
| |
| PR middle-end/79234 |
| * builtins.c (check_sizes): Adjust to handle reading past the end. |
| Avoid printing excessive upper bound of ranges. Use %E to print |
| tree nodes instead of converting them to %wu. |
| (expand_builtin_memchr): New function. |
| (compute_dest_size): Rename... |
| (compute_objsize): ...to this. |
| (expand_builtin_memcpy): Adjust. |
| (expand_builtin_mempcpy): Adjust. |
| (expand_builtin_strcat): Adjust. |
| (expand_builtin_strcpy): Adjust. |
| (check_strncat_sizes): Adjust. |
| (expand_builtin_strncat): Adjust. |
| (expand_builtin_strncpy): Adjust and simplify. |
| (expand_builtin_memset): Adjust. |
| (expand_builtin_bzero): Adjust. |
| (expand_builtin_memcmp): Adjust. |
| (expand_builtin): Handle memcmp. |
| (maybe_emit_chk_warning): Check strncat just once. |
| |
| 2017-05-04 Martin Sebor <msebor@redhat.com> |
| |
| PR preprocessor/79214 |
| PR middle-end/79222 |
| PR middle-end/79223 |
| * builtins.c (check_sizes): Add inlining context and issue |
| warnings even when -Wno-system-headers is set. |
| (check_strncat_sizes): Same. |
| (expand_builtin_strncat): Same. |
| (expand_builtin_memmove): New function. |
| (expand_builtin_stpncpy): Same. |
| (expand_builtin): Handle memmove and stpncpy. |
| |
| 2017-05-04 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr |
| which is not used any more. |
| |
| 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_tunings): Update prefetch model. |
| |
| 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4. |
| (cortexa53_tunings): Likewise. |
| (cortexa57_tunings): Likewise. |
| (cortexa72_tunings): Likewise. |
| (cortexa73_tunings): Likewise. |
| |
| 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. |
| Set loop alignment to 8. |
| |
| 2017-05-04 Martin Sebor <msebor@redhat.com> |
| |
| PR translation/80280 |
| * builtins.c (expand_builtin_object_size): Add missing quoting to |
| %D and like directives. |
| * hsa-gen.c (hsa_type_for_scalar_tree_type): Same. |
| (hsa_type_for_tree_type): Same. |
| (verify_function_arguments): Same. |
| * symtab.c (symbol_table::change_decl_assembler_name): Same. |
| * varasm.c (get_section): Same. |
| (mark_weak): Same. |
| |
| 2017-05-04 Martin Sebor <msebor@redhat.com> |
| |
| PR translation/80280 |
| * config/i386/i386.c (ix86_function_versions): Quote a %D directive. |
| |
| 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_addrcost_table): |
| Change HI/TI mode setting. |
| |
| 2017-05-04 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/80622 |
| * tree-sra.c (comes_initialized_p): New function. |
| (build_accesses_from_assign): Only set write lazily when |
| comes_initialized_p is false. |
| (analyze_access_subtree): Use comes_initialized_p. |
| (propagate_subaccesses_across_link): Assert !comes_initialized_p |
| instead of testing for PARM_DECL. |
| |
| 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (prefetch); Adjust predicate and |
| constraint on operand 0 to allow more general addressing modes. |
| Adjust output template. |
| * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p): |
| New function. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_address_valid_for_prefetch_p): Declare prototype. |
| * config/aarch64/constraints.md (Dp): New address constraint. |
| * config/aarch64/predicates.md (aarch64_prefetch_operand): New |
| predicate. |
| |
| 2017-05-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; |
| update use of estimate_ipcp_clone_size_and_time. |
| (estimate_local_effects): Update use of |
| estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value. |
| * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype. |
| * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): |
| Return nonspecialized time. |
| |
| 2017-05-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (get_continuation_for_phi): Improve looking |
| for the last VUSE which def dominates the PHI. Directly call |
| maybe_skip_until. |
| (get_continuation_for_phi_1): Remove. |
| |
| 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary |
| to explain the use of truncating division. Cap the number of |
| iterations to the maximum given by nb_iterations_upper_bound, |
| if defined. |
| |
| 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * configure.ac (--enable-mingw-wildcard): Add new configurable feature. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| * config/i386/driver-mingw32.c: new file. |
| * config/i386/x-mingw32: Add rule to build driver-mingw32.o. |
| * config.host: Link driver-mingw32.o on MinGW host. |
| * doc/install.texi: Document new --enable-mingw-wildcard configure |
| option. |
| |
| 2017-05-04 Marek Polacek <polacek@redhat.com> |
| |
| PR tree-optimization/80612 |
| * calls.c (get_size_range): Check for INTEGRAL_TYPE_P. |
| |
| 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
| Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT. |
| (movt splitter): Likewise. |
| * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2 |
| to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check. |
| (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else |
| block for Thumb-1 with MOVT. |
| (thumb2_legitimate_address_p): Move code block ... |
| (can_avoid_literal_pool_for_label_p): ... into this new function. |
| (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and |
| literal pool. |
| (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT |
| * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for |
| "M-profile targets with the MOVT instruction". |
| |
| 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_init_builtins): Rename |
| __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename |
| __builtin_arm_stfscr to __builtin_arm_set_fpscr. |
| |
| 2017-05-04 Martin Liska <mliska@suse.cz> |
| |
| * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused |
| variable cond_code. |
| |
| 2017-05-04 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (array_at_struct_end_p): Handle arrays at struct |
| end with flexarrays more conservatively. Refactor and treat |
| arrays of arrays or aggregates more strict. Fix |
| VIEW_CONVERT_EXPR handling. Remove allow_compref argument. |
| * tree.c (array_at_struct_end_p): Adjust prototype. |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust. |
| * gimple-fold.c (get_range_strlen): Likewise. |
| * tree-chkp.c (chkp_may_narrow_to_field): Likewise. |
| |
| 2017-05-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/31130 |
| * tree-vrp.c (needs_overflow_infinity): Remove as always returning |
| false. |
| (supports_overflow_infinity): Likewise. |
| (is_negative_overflow_infinity): Likewise. |
| (is_positive_overflow_infinity): Likewise. |
| (is_overflow_infinity): Likewise. |
| (stmt_overflow_infinity): Likewise. |
| (overflow_infinity_range_p): Likewise. |
| (usable_range_p): Remove as always returning true. |
| (make_overflow_infinity): Remove. |
| (negative_overflow_infinity): Likewise. |
| (positive_overflow_infinity): Likewise. |
| (avoid_overflow_infinity): Likewise. |
| (set_value_range): Adjust accordingly. |
| (set_value_range_to_nonnegative): Likewise, remove now unused |
| overflow_infinity arg. |
| (vrp_operand_equal_p): Adjust. |
| (update_value_range): Likewise. |
| (range_int_cst_singleton_p): Likewise. |
| (operand_less_p): Likewise. |
| (compare_values_warnv): Likewise. |
| (extract_range_for_var_from_comparison_expr): Likewise. |
| (vrp_int_const_binop): Likewise. |
| (zero_nonzero_bits_from_vr): Likewise. |
| (extract_range_from_multiplicative_op_1): Likewise. |
| (extract_range_from_binary_expr_1): Likewise. |
| (extract_range_from_unary_expr): Likewise. |
| (extract_range_from_comparison): Likewise. |
| (extract_range_basic): Likewise. |
| (adjust_range_with_scev): Likewise. |
| (compare_ranges): Likewise. |
| (compare_range_with_value): Likewise. |
| (dump_value_range): Likewise. |
| (test_for_singularity): Likewise, remove strict_overflow_p parameter |
| never used. |
| (simplify_cond_using_ranges): Adjust. |
| |
| 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig-builtins.def: Added a builtin for class_f64. |
| * builtin-types.def: Added a builtin type needed by class_f64. |
| |
| 2017-05-03 Jason Merrill <jason@redhat.com> |
| |
| * timevar.def: Add TV_CONSTEXPR. |
| |
| 2017-05-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * common.opt (fdiagnostics-parseable-fixits): Fix typo. |
| |
| 2017-05-03 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (ipa_update_after_lto_read): Removed. |
| * ipa-prop.h (ipa_update_after_lto_read): Remove declaration. |
| * ipa-cp.c (ipcp_propagate_stage): Do not call |
| ipa_update_after_lto_read. |
| * ipa-inline.c (ipa_inline): Likewise. |
| |
| 2017-05-03 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY |
| tag. Added a default constructor and a destructor. |
| (ipa_edge_args_sum_t): New class; |
| (ipa_edge_args_sum): Declare. |
| (ipa_edge_args_vector): Remove declaration. |
| (IPA_EDGE_REF): Use ipa_edge_args_sum. |
| (ipa_free_edge_args_substructures): Remove declaration. |
| (ipa_check_create_edge_args): Use ipa_edge_args_sum. |
| (ipa_edge_args_info_available_for_edge_p): Likewise. |
| * ipa-prop.c (ipa_edge_args_vector): Removed. |
| (edge_removal_hook_holder): Likewise. |
| (edge_duplication_hook_holder): Likewise. |
| (ipa_edge_args_sum): New variable. |
| (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of |
| ipa_edge_args_vector. |
| (ipa_free_edge_args_substructures): Likewise. |
| (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of |
| ipa_edge_args_vector. |
| (ipa_edge_removal_hook): Turned into method |
| ipa_edge_args_sum_t::remove. |
| (ipa_edge_duplication_hook): Turned into method |
| ipa_edge_args_sum_t::duplicate. |
| (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of |
| registering edge hooks. |
| (ipa_unregister_cgraph_hooks): Do not unregister edge hooks. |
| * ipa-inline-analysis.c (estimate_function_body_sizes): Test |
| ipa_edge_args_sum instead of ipa_edge_args_vector. |
| * ipa-profile.c (ipa_profile): Likewise. |
| |
| 2017-05-03 Martin Jambor <mjambor@suse.cz> |
| |
| * symbol-summary.h (function_summary): New method exists. |
| (function_summary::symtab_removal): Deallocate through release. |
| (call_summary): New class. |
| (gt_ggc_mx): New overload. |
| (gt_pch_nx): Likewise. |
| (gt_pch_nx): Likewise. |
| |
| 2017-05-03 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/78496 |
| * tree-vrp.c (simplify_cond_using_ranges_1): Renamed |
| from simplify_cond_using_ranges. Split off code to walk |
| backwards through casts into ... |
| (simplify_cond_using_ranges_2): New function. |
| (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1. |
| (execute_vrp): After identifying jump threads, call |
| simplify_cond_using_ranges_2. |
| |
| 2017-05-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/80609 |
| * ipa-inline.h (inline_summary): Add ctor. |
| (create_ggc): Do not use ggc_cleared_alloc. |
| |
| 2017-05-03 Jeff Downs <heydowns@somuchpressure.net> |
| Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * gcc.c (handle_braces): Support escaping in switch matching |
| text. |
| * doc/invoke.texi (Spec Files): Document it. |
| Remove superfluous @code markup in items. |
| |
| 2017-05-03 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c (struct column_range): New struct. |
| (get_affected_columns): New function. |
| (get_printed_columns): New function. |
| (struct correction): New struct. |
| (correction::ensure_capacity): New function. |
| (correction::ensure_terminated): New function. |
| (struct line_corrections): New struct. |
| (line_corrections::~line_corrections): New dtor. |
| (line_corrections::add_hint): New function. |
| (layout::print_trailing_fixits): Reimplement in terms of the new |
| classes. |
| (selftest::test_overlapped_fixit_printing): New function. |
| (selftest::diagnostic_show_locus_c_tests): Call it. |
| |
| 2017-05-03 Nathan Sidwell <nathan@acm.org> |
| |
| Canonicalize canonical type hashing |
| * tree.h (type_hash_canon_hash): Declare. |
| * tree.c (type_hash_list, attribute_hash_list): Move into |
| type_hash_canon_hash. |
| (build_type_attribute_qual_variant): Break out hash code calc into |
| type_hash_canon_hash. |
| (type_hash_canon_hash): New. Generic type hash computation. |
| (build_range_type_1, build_array_type_1, build_function_type, |
| build_method_type_directly, build_offset_type, build_complex_type, |
| make_vector_type): Call it. |
| |
| 2017-05-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): |
| When all DRs have unknown misaligned do not always peel |
| when there is a store but apply the same costing model as if |
| there were only loads. |
| |
| 2017-05-03 Richard Biener <rguenther@suse.de> |
| |
| Revert |
| PR tree-optimization/80492 |
| * tree-ssa-alias.c (decl_refs_may_alias_p): Handle |
| compare_base_decls returning dont-know properly. |
| |
| 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/iterators.md (CCSI): New mode iterator. |
| (arch): New mode attribute. |
| * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ... |
| (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ... |
| (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI |
| code iterator for success result mode. |
| * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use |
| the corresponding new insn generators. |
| |
| 2017-05-03 Bin Cheng <bin.cheng@arm.com> |
| |
| Revert r247509 |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. |
| |
| 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets. |
| (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise. |
| (DDR_A): Wrap DDR argument in brackets. |
| (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise. |
| (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise. |
| (DDR_REVERSED_P): Likewise. |
| |
| 2017-05-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79472 |
| * tree-switch-conversion.c (struct switch_conv_info): Add |
| contiguous_range and default_case_nonstandard fields. |
| (collect_switch_conv_info): Compute contiguous_range and |
| default_case_nonstandard fields, don't clear final_bb if |
| contiguous_range and only the default case doesn't have the required |
| structure. |
| (check_all_empty_except_final): Set default_case_nonstandard instead |
| of failing if contiguous_range and the default case doesn't have empty |
| block. |
| (check_final_bb): Add SWTCH argument, don't fail if contiguous_range |
| and only the default case doesn't have the required constants. Skip |
| virtual phis. |
| (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW |
| if default_case_nonstandard. |
| (build_constructors): Build constant 1 just once. Assert that default |
| values aren't inserted in between cases if contiguous_range. Skip |
| virtual phis. |
| (build_arrays): Skip virtual phis. |
| (prune_bbs): Add DEFAULT_BB argument, don't remove that bb. |
| (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard. |
| Handle virtual phis. |
| (gen_inbound_check): Handle default_case_nonstandard case. |
| (process_switch): Adjust check_final_bb caller. Call |
| gather_default_values with the first non-default case instead of |
| default case if default_case_nonstandard. |
| |
| 2017-05-02 Nathan Sidwell <nathan@acm.org> |
| |
| * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- |
| check. Fix formatting. |
| |
| 2017-05-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff |
| errors when comparing specialized and unspecialized times. |
| |
| 2017-05-02 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c |
| (layout::should_print_annotation_line_p): Make private. |
| (layout::print_annotation_line): Make private. |
| (layout::annotation_line_showed_range_p): Make private. |
| (layout::show_ruler): Make private. |
| (layout::print_source_line): Make private. Pass in line and |
| line_width, rather than calling location_get_source_line. Drop |
| returned value. |
| (layout::print_leading_fixits): New method. |
| (layout::print_any_fixits): Rename to... |
| (layout::print_trailing_fixits): ...this, and make private. |
| Don't print newline fixits. |
| (diagnostic_show_locus): Move logic for printing one row into... |
| (layout::print_line): ...this new function. Move the |
| location_get_source_line call and error-handling from |
| print_source_line to here. Call print_leading_fixits, and rename |
| print_any_fixits to print_trailing_fixits. |
| (selftest::test_fixit_insert_containing_newline): Update now that |
| newlines are partially supported. |
| (selftest::test_fixit_insert_containing_newline_2): New test. |
| (selftest::test_fixit_replace_containing_newline): Update comments. |
| (selftest::diagnostic_show_locus_c_tests): Call the new test. |
| * edit-context.c (class added_line): New class. |
| (class edited_line): Describe newline handling in comment. |
| (edited_line::actually_edited_p): New method. |
| (edited_line::print_content): Delete redundant decl. |
| (edited_line::m_predecessors): New field. |
| (edited_file::print_content): Call edited_line::print_content. |
| (edited_file::print_diff): Update to support newlines. |
| (edited_file::print_diff_hunk): Likewise. |
| (edited_file::print_run_of_changed_lines): New function. |
| (edited_file::print_diff_line): Convert to... |
| (print_diff_line): ...this. |
| (edited_file::get_effective_line_count): New function. |
| (edited_line::edited_line): Initialize new field m_predecessors. |
| (edited_line::~edited_line): Clean up m_predecessors. |
| (edited_line::apply_fixit): Handle newlines. |
| (edited_line::get_effective_line_count): New function. |
| (edited_line::print_content): New function. |
| (edited_line::print_diff_lines): New function. |
| (selftest::test_applying_fixits_insert_containing_newline): New |
| test. |
| (selftest::test_applying_fixits_replace_containing_newline): New |
| test. |
| (selftest::insert_line): New function. |
| (selftest::test_applying_fixits_multiple_lines): Add example of |
| inserting a line. |
| (selftest::edit_context_c_tests): Call the new tests. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete |
| parameter cand. Update dump information. |
| (get_computation_cost): Update uses. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_computation_aff_1): New. |
| (get_computation_aff): Reorder parameters. Use get_computation_aff_1. |
| (get_computation_at, rewrite_use_address): Update use of |
| get_computation_aff. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters. |
| (get_computation): Delete. |
| (get_computation_cost): Implement like get_computation_cost_at. |
| Use get_computation_at. |
| (get_computation_cost_at): Delete. |
| (rewrite_use_nonlinear_expr): Use get_computation_at. |
| (rewrite_use_compare, remove_unused_ivs): Ditto. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs. |
| (ivopts_global_cost_for_size): Rename parameter and update uses. |
| (iv_ca_recount_cost): Update uses. |
| (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and |
| candidates seperately in n_invs and n_cands. |
| (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (struct walk_tree_data): New. |
| (find_inv_vars_cb): New. |
| (find_depends): Renamed to ... |
| (find_inv_vars): ... this. |
| (add_candidate_1, force_var_cost): Call find_inv_vars. |
| (split_address_cost, determine_group_iv_cost_cond): Ditto. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to |
| inv_vars. Add inv_exprs. |
| (struct iv_cand): Rename depends_on to inv_vars. |
| (struct ivopts_data): Rename max_inv_id/n_invariant_uses to |
| max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around. |
| Refactor field used_inv_exprs from has_map to array n_inv_expr_uses. |
| (dump_cand): Dump inv_vars. |
| (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs. |
| (record_invariant, find_depends, add_candidate_1): Ditto. |
| (set_group_iv_cost, force_var_cost): Ditto. |
| (split_address_cost, ptr_difference_cost, difference_cost): Ditto. |
| (get_computation_cost_at, get_computation_cost): Ditto. |
| (determine_group_iv_cost_generic): Ditto. |
| (determine_group_iv_cost_address): Ditto. |
| (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto. |
| (determine_group_iv_costs): Ditto. |
| (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size. |
| (iv_ca_set_remove_invariants): Renamed to ... |
| (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs. |
| (iv_ca_set_no_cp): Use iv_ca_set_remove_invs. |
| (iv_ca_set_add_invariants): Renamed to ... |
| (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs. |
| (iv_ca_set_cp): Use iv_ca_set_add_invs. |
| (iv_ca_has_deps): Support inv_vars and inv_exprs. |
| (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto. |
| (create_new_ivs): Remove useless dump. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo |
| iv_cand code. |
| (determine_group_iv_cost_cond, determine_iv_cost): Ditto. |
| (iv_ca_set_no_cp, create_new_iv): Ditto. |
| |
| 2017-05-02 Bin Cheng <bin.cheng@arm.com> |
| |
| * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. |
| |
| 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn> |
| |
| * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of |
| function tree_check2. |
| |
| 2017-05-02 Martin Liska <mliska@suse.cz> |
| |
| * doc/gcov.texi: Add missing preposition. |
| * gcov.c (function_info::function_info): Properly fill up |
| all member variables. |
| |
| 2017-05-02 Tamar Christina <tamar.christina@arm.com> |
| |
| * expr.c (expand_expr_real_2): Re-cost if previous costs are the same. |
| |
| 2017-05-02 Tamar Christina <tamar.christina@arm.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case. |
| |
| 2017-05-02 Martin Liska <mliska@suse.cz> |
| |
| PR lto/77954. |
| * lto-streamer-in.c (lto_read_tree_1): Remove |
| LTO_STREAMER_DEBUG. |
| * lto-streamer.c (struct tree_hash_entry): Likewise. |
| (struct tree_entry_hasher): Likewise. |
| (tree_entry_hasher::hash): Likewise. |
| (tree_entry_hasher::equal): Likewise. |
| (lto_streamer_init): Likewise. |
| (lto_orig_address_map): Likewise. |
| (lto_orig_address_get): Likewise. |
| (lto_orig_address_remove): Likewise. |
| * lto-streamer.h: Likewise. |
| * tree-streamer-in.c (streamer_alloc_tree): Likewise. |
| * tree-streamer-out.c (streamer_write_tree_header): Likewise. |
| |
| 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com> |
| |
| * config/i386/avx512fintrin.h (_mm_mask_add_round_sd) |
| (_mm_maskz_add_round_sd, _mm_mask_add_round_ss) |
| (mm_maskz_add_round_ss, _mm_mask_sub_round_sd) |
| (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss) |
| (mm_maskz_sub_round_ss, _mm_mask_add_sd) |
| (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss) |
| (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss) |
| (mm_maskz_sub_ss): New intrinsics. |
| * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. |
| * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round) |
| (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round) |
| (__builtin_ia32_subss_mask_round): New builtins. |
| * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) |
| (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. |
| * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>): |
| Renamed to ... |
| (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this. |
| (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): |
| Changed to ... |
| (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): |
| ... this. |
| |
| 2017-05-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/78687 |
| * tree-sra.c (access): New field parent. |
| (process_subtree_disqualification): New function. |
| (disqualify_candidate): Call it. |
| (build_accesses_from_assign): Reset write flag if creating an |
| assighnment link. |
| (build_access_subtree): Fill in parent field and also prpagate |
| down grp_write flag. |
| (create_artificial_child_access): New parameter set_grp_write, set |
| grp_write to its value. |
| (propagate_subaccesses_across_link): Also propagate grp_write flag |
| values. |
| (propagate_all_subaccesses): Push the closest parent back to work |
| queue if add_access_to_work_queue returned true. |
| |
| 2017-05-02 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (fstrict-overflow): Alias negative to fwrapv. |
| * doc/invoke.texi (fstrict-overflow): Remove all traces of |
| -fstrict-overflow documentation. |
| * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow. |
| (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of |
| flag_strict_overflow. |
| * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow. |
| * lto-opts.c (lto_write_options): Do not stream it. |
| * lto-wrapper.c (merge_and_complain): Do not handle it. |
| * opts.c (default_options_table): Do not set -fstrict-overflow. |
| (finish_options): Likewise do not clear it when sanitizing. |
| * simplify-rtx.c (simplify_const_relational_operation): Do not |
| test flag_strict_overflow. |
| |
| 2017-05-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3 |
| using enabled attribute. |
| (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute. |
| (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute. |
| (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute. |
| (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute. |
| (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute. |
| (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute. |
| (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute. |
| (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute. |
| (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute. |
| (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute. |
| |
| 2017-05-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG. |
| |
| 2017-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80591 |
| Revert |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases): Properly handle |
| asm inputs. |
| |
| 2017-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80549 |
| * tree-cfgcleanup.c (mfb_keep_latches): New helper. |
| (cleanup_tree_cfg_noloop): Create forwarders to known loop |
| headers if they do not have a preheader. |
| |
| 2017-05-02 Martin Liska <mliska@suse.cz> |
| |
| PR other/80589 |
| * common.opt: Fix typo. |
| * doc/invoke.texi: Likewise. |
| |
| 2017-05-01 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand |
| swapping, add (x,x,m,x,n) alternative. |
| |
| 2017-05-01 Nathan Sidwell <nathan@acm.org> |
| |
| * calls.c (combine_pending_stack_adjustment_and_call): Remove |
| unnecessary unadjusted_alignment check. |
| |
| 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn> |
| |
| PR c++/80038 |
| * cilk_common.c (expand_builtin_cilk_detach): Move pedigree |
| operations here. |
| * gimplify.c (gimplify_cilk_detach): New function. |
| (gimplify_call_expr, gimplify_modify_expr): Call it as needed. |
| * tree-core.h: Document EXPR_CILK_SPAWN. |
| * tree.h (EXPR_CILK_SPAWN): Define. |
| |
| 2017-05-01 David Malcolm <dmalcolm@redhat.com> |
| |
| * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite |
| to use new fixit_hint representation, using the "replace" logic. |
| (get_line_span_for_fixit_hint): Likewise. |
| (layout::print_any_fixits): Likewise. |
| (selftest::test_one_liner_many_fixits): Rename to... |
| (selftest::test_one_liner_many_fixits_1): ...this, and update |
| comment and expected output to reflect that the multiple fix-it |
| hints are now consolidated into one insertion. |
| (selftest::test_one_liner_many_fixits_2): New test. |
| (selftest::test_diagnostic_show_locus_one_liner): Update for |
| above. |
| (selftest::test_fixit_consolidation): Update for fix-it API |
| change. |
| * diagnostic.c (print_parseable_fixits): Likewise. |
| * edit-context.c (edited_line::m_line_events): Convert from |
| auto_vec <line_event *> to auto_vec <line_event>. |
| (class line_event): Convert from abstract base class to a concrete |
| class, taking over the role of replace_event. |
| (class insert_event): Delete. |
| (class replace_event): Rename to class line_event. Convert to |
| half-open range. |
| (edit_context::add_fixits): Reimplement. |
| (edit_context::apply_insert): Delete. |
| (edit_context::apply_replace): Rename to... |
| (edit_context::apply_fixit): ...this. Convert to half-open range. |
| (edited_file::apply_insert): Delete. |
| (edited_file::apply_replace): Rename to... |
| (edited_file::apply_fixit): ...this. |
| (edited_line::~edited_line): Drop deletion of events. |
| (edited_line::apply_insert): Delete. |
| (edited_line::apply_replace): Rename to... |
| (edited_line::apply_fixit): ...this. Convert to half-open range. |
| Update for change to type of m_line_events. |
| * edit-context.h (edit_context::apply_insert): Delete. |
| (edit_context::apply_replace): Rename to... |
| (edit_context::apply_fixit): ...this. |
| |
| 2017-05-01 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's |
| known. |
| |
| 2017-05-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/68491 |
| * config/i386/cpuid.h (__get_cpuid): Always return 0 when |
| __get_cpuid_max returns 0. |
| (__get_cpuid_count): Ditto. |
| |
| 2017-05-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the |
| replacement expression is another instance of one of its arguments. |
| |
| 2017-05-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79430 |
| * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also |
| check for stack push/pop autoinc. |
| * config/i386/i386.c (ix86_agi_dependent): Return false |
| if the only reason why modified_in_p returned true is that |
| addr is SP based and set_insn is a push or pop. |
| |
| 2017-04-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary |
| overflow check. |
| |
| 2017-04-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/79224 |
| * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL. |
| (account_size_time): Use two predicates - exec_pred and |
| nonconst_pred_ptr. |
| (evaluate_conditions_for_known_args): Compute both clause and |
| nonspec_clause. |
| (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause. |
| (inline_summary_t::duplicate): Update. |
| (estimate_function_body_sizes): Caluculate exec and nonconst predicates |
| separately. |
| (compute_inline_parameters): Likewise. |
| (estimate_edge_size_and_time): Update caluclation of time. |
| (estimate_node_size_and_time): Compute both time and nonspecialized |
| time. |
| (estimate_ipcp_clone_size_and_time): Update. |
| (inline_merge_summary): Update. |
| (do_estimate_edge_time): Update. |
| (do_estimate_edge_size): Update. |
| (do_estimate_edge_hints): Update. |
| (inline_read_section, inline_write_summary): Stream both new predicates. |
| * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time |
| as argument. |
| (compute_inlined_call_time): Cleanup. |
| (big_speedup_p): Update. |
| (edge_badness): Update. |
| * ipa-inline.h (INLINE_TIME_SCALE): Remove. |
| (size_time_entry): Replace predicate by exec_predicate and |
| nonconst_predicate. |
| (edge_growth_cache_entry): Cache both time nad nonspecialized time. |
| (estimate_edge_time): Return also nonspec_time. |
| (reset_edge_growth_cache): Update. |
| |
| 2017-04-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/80491 |
| * ifcvt.c (noce_process_if_block): When looking for x setter |
| with missing else_bb, don't check only the insn right before |
| cond_earliest, but look for the last insn that x is modified in |
| within the same bb. |
| |
| PR rtl-optimization/80491 |
| * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs. |
| |
| 2017-04-29 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/80487 |
| * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy. |
| |
| 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR tree-optimization/79697 |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee |
| is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC. |
| (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or |
| BUILT_IN_STRNDUP. |
| * gimple-fold.c (gimple_fold_builtin_realloc): New function. |
| (gimple_fold_builtin): Call gimple_fold_builtin_realloc. |
| |
| 2017-04-28 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/80523 |
| * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable. |
| (init_target_to_host_charmap, target_to_host, target_strtol10): New |
| functions. |
| (maybe_warn, format_directive, parse_directive): Use new functions. |
| (pass_sprintf_length::execute): Call init_target_to_host_charmap. |
| |
| 2017-04-28 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations. |
| |
| 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR, |
| target_header_dir): Set correctly. |
| * configure: Regenerated. |
| * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. |
| (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR |
| instead of SYSTEM_HEADER_DIR. |
| |
| 2017-04-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal. |
| (estimate_local_effects): Likewise. |
| * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p, |
| edge_badness, inline_small_functions, dump_overall_stats): LIkewise. |
| * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining, |
| estimate_ipcp_clone_size_and_time, do_estimate_edge_time, |
| do_estimate_edge_time, estimate_edge_time): Likewise. |
| * ipa-inline-analysis.c (estimate_node_size_and_time, |
| estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise. |
| (estimate_time_after_inlining): Remove. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| * doc/gcov.texi: Enhance documentation of gcov. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| * doc/gcov.texi: Sort options in alphabetic order. |
| * doc/gcov-dump.texi: Likewise. |
| * doc/gcov-tool.texi: Likewise. |
| * gcov.c (print_usage): Likewise. |
| * gcov-dump.c (print_usage): Likewise. |
| * gcov-tool.c (print_merge_usage_message): Likewise. |
| (print_rewrite_usage_message): Likewise. |
| (print_overlap_usage_message): Likewise. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/53915 |
| * gcov.c (format_gcov): Print 'NAN %' when top > bottom. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/79891 |
| * gcov.c (add_line_counts): Assign BBs to lines just if the BB |
| is marked by compiler as living on a line. |
| (get_cycles_count): Remove usage of the union. |
| (output_intermediate_file): Likewise. |
| (find_source): Fix GNU coding style. |
| (accumulate_line_counts): Remove old non-all block mode. |
| (output_lines): Remove usage of the union. |
| * profile.c (output_location): Include all BBs, even if |
| belonging to a same line (and file) as a previous BB. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (process_args): Handle new argument 'w'. |
| (read_graph_file): Assign ID to BBs. |
| (output_branch_count): Display BB # if verbose flag is set. |
| (output_lines): Likewise for arcs. |
| (print_usage): Add '--verbose' option help. |
| * doc/gcov.texi: Document --verbose (-w) option. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (struct block_location_info): New struct. |
| (process_file): Fill up the new structure. |
| (read_graph_file): Replace usage of encoding by the newly added |
| struct. |
| (add_line_counts): Likewise. |
| (accumulate_line_counts): Remove usage of the union. |
| (function_info::function_info): New function. |
| (function_info::~function_info): Likewise. |
| (process_file): Call delete instead of release_function. |
| (release_function): Release the function. |
| (release_structures): Call delete instead of release_function. |
| (solve_flow_graph): Replace usage of num_blocks. |
| (find_exception_blocks): Likewise. |
| (output_lines): Fix GNU coding style. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| PR driver/56469 |
| * coverage.c (coverage_remove_note_file): New function. |
| * coverage.h: Declare the function. |
| * toplev.c (finalize): Clean if an error has been seen. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80031 |
| * gcov-dump.c (tag_blocks): Just print number of basic blocks. |
| * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro. |
| * gcov.c (read_graph_file): Read just number of blocks. |
| * profile.c (branch_prob): Do not stream 0 flags per a basic |
| block. |
| |
| 2017-04-28 Martin Liska <mliska@suse.cz> |
| |
| * gcov-dump.c (tag_*): Add new argument to declarations. |
| (dump_gcov_file): Likewise. |
| (tag_blocks): Add and use new argument depth. |
| (tag_arcs): Likewise. |
| (tag_lines): Likewise. |
| (tag_counters): Likewise. |
| (tag_summary): Likewise. |
| (dump_working_sets): Use depth to do a proper indentation. |
| |
| 2017-04-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/80531 |
| * cgraph.h (symtab_node::debug_symtab): No longer inline. |
| * symtab.c (symtab_node::debug_symtab): Move definition here. |
| |
| 2017-04-28 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer.h (LTO_major_version): Bump to 7. |
| |
| 2017-04-28 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (assert_info): New struct. |
| (add_assert_info): New helper. |
| (register_edge_assert_for_2): Refactor to add asserts to a vector |
| of assert_info. |
| (register_edge_assert_for_1): Likewise. |
| (register_edge_assert_for): Likewise. |
| (finish_register_edge_assert_for): New helper actually registering |
| asserts where live on edge. |
| (find_conditional_asserts): Adjust. |
| (find_switch_asserts): Likewise. |
| (evrp_dom_walker::try_find_new_range): Generalize. |
| (evrp_dom_walker::before_dom_children): Use register_edge_assert_for. |
| |
| 2017-04-27 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80349 |
| * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert |
| arg10 and arg11 to itype. |
| |
| 2017-04-27 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Object Size Checking): Improve grammar. |
| |
| 2017-04-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/80530 |
| * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure |
| that the logic for permitting reciprocal estimates matches that |
| in use_rsqrt_p. |
| |
| 2017-04-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/80534 |
| * tree.c (type_cache_hasher::equal): Only compare |
| TYPE_TYPELESS_STORAGE flag on non-aggregate element types. |
| (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on |
| non-aggregate element types. |
| * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details |
| about the flag on ARRAY_TYPEs in the comment, formatting fix. |
| |
| 2017-04-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80533 |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): When |
| stripping ARRAY_REFs from MEM_EXPR make sure we're not |
| keeping a reference to a trailing array. |
| |
| 2017-04-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80539 |
| * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not |
| being in loop-closed SSA form conservatively. |
| (chrec_fold_multiply_poly_poly): Likewise. |
| |
| 2017-04-27 Tamar Christina <tamar.christina@arm.com> |
| |
| PR middle-end/79665 |
| * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR, |
| CEIL_MOD_EXPR, ROUND_MOD_EXPR cases. |
| |
| 2017-04-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/77728 |
| * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove. |
| (aarch64_function_arg_alignment): Return unsigned int again, but still |
| ignore TYPE_FIELDS chain decls other than FIELD_DECLs. |
| (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. |
| Don't emit -Wpsabi note. |
| (aarch64_function_arg_boundary): Likewise. |
| (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment |
| caller. |
| |
| 2017-04-26 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (crc32_unsigned_n): Declare. |
| (crc32_unsigned, crc32_unsigned): Make inline. |
| * tree.c (crc32_unsigned_bits): Replace with ... |
| (crc32_unsigned_n): ... this. |
| (crc32_unsigned, crc32_byte): Remove. |
| (crc32_string): Remove unnecessary braces. |
| |
| 2017-04-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-cp.c (estimate_local_effects): Convert sreal to int. |
| * ipa-inline-analysis.c (MAX_TIME): Remove. |
| (account_size_time): Use sreal for time. |
| (dump_inline_summary): Update. |
| (estimate_function_body_sizes): Update. |
| (estimate_edge_size_and_time): Update. |
| (estimate_calls_size_and_time): Update. |
| (estimate_node_size_and_time): Update. |
| (inline_merge_summary): Update. |
| (inline_update_overall_summary): Update. |
| (estimate_time_after_inlining): Update. |
| (inline_read_section): Update. |
| (inline_write_summary): Update. |
| * ipa-inline.c (compute_uninlined_call_time): Update. |
| (compute_inlined_call_time): Update. |
| (recursive_inlining): Update. |
| (inline_small_functions): Update. |
| (dump_overall_stats): Update. |
| * ipa-inline.h: Include sreal.h. |
| (size_time_entry): Turn time to sreal. |
| (inline_summary): Turn self_time nad time to sreal. |
| |
| 2017-04-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and |
| data-streamer.h |
| (sreal::stream_out, sreal::stream_in): New. |
| * sreal.h (sreal::stream_out, sreal::stream_in): Declare. |
| |
| 2017-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the |
| environment. |
| |
| 2017-04-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/70799 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): |
| Handle ASHIFTRT. |
| (dimode_scalar_chain::compute_convert_gain): Ditto. |
| (dimode_scalar_chain::make_vector_copies): Ditto. |
| (dimode_scalar_chain::convert_reg): Ditto. |
| (dimode_scalar_chain::convert_insn): Ditto. |
| * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator. |
| (VI248_AVX512BW_1): New mode iterator. |
| (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with |
| <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1 |
| mode iterator. |
| |
| 2017-04-25 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/80497 |
| * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer |
| constants are representable in HOST_WIDE_INT. |
| (parse_directive): Ditto. |
| |
| 2017-04-25 Martin Sebor <msebor@redhat.com> |
| |
| PR bootstrap/80486 |
| * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned. |
| (new_zero_array): Adjust signature. |
| (dom_info::dom_init): Used unsigned rather that size_t. |
| (dom_info::dom_info): Same. |
| |
| 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/77728 |
| * config/arm/arm.c: Include gimple.h. |
| (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align |
| returns negative, increment ncrn only if it returned positive. |
| (arm_needs_doubleword_align): Return int instead of bool, |
| ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain |
| members, but if there is any such non-FIELD_DECL |
| > PARM_BOUNDARY aligned decl, return -1 instead of false. |
| (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align |
| returns negative, increment nregs only if it returned positive. |
| (arm_setup_incoming_varargs): Likewise. |
| (arm_function_arg_boundary): Emit -Wpsabi note if |
| arm_needs_doubleword_align returns negative, return |
| DOUBLEWORD_ALIGNMENT only if it returned positive. |
| |
| 2017-04-25 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80349 |
| * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's |
| first argument to type. |
| |
| 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com> |
| |
| PR target/80482 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change |
| type checks to test for compatibility instead of equality. |
| |
| 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/77728 |
| * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New |
| type. |
| (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment |
| struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for |
| the alignment computation, but return their maximum in warn_alignment. |
| (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. |
| Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment |
| is smaller. |
| (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX. |
| (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment |
| caller. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/simdext.md (dmpyh): Fix typo. |
| |
| 2017-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80492 |
| * alias.c (compare_base_decls): Handle registers with asm |
| specification conservatively. |
| * tree-ssa-alias.c (decl_refs_may_alias_p): Handle |
| compare_base_decls returning dont-know properly. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro. |
| (legitimate_offset_address_p): New function. |
| (arc_legitimate_address_p): Use above function. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_conditional_register_usage): Use ACCL, |
| ACCH registers whenever they are available. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1 |
| double regs fix when not used. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension |
| core registers. |
| (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise. |
| (REG_OK_FOR_BASE_P_NONSTRICT): Likewise. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_output_addsi): Check for h-register class |
| when emitting short ADD instructions. |
| |
| 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register |
| constraint. |
| (cmpsi_cc_c_insn): Likewise. |
| (cbranchsi4_scratch): Compute proper instruction length using |
| compact_hreg_operand. |
| * config/arc/predicates.md (compact_hreg_operand): New predicate. |
| |
| 2017-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80509 |
| * passes.c (pass_manager::pass_manager): Initialize |
| m_name_to_pass_map. |
| |
| 2017-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79201 |
| * tree-ssa-sink.c (statement_sink_location): Handle calls. |
| |
| 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/80464 |
| * config/s390/vector.md: Split MEM->GPR vector moves for |
| non-s_operand addresses. |
| |
| 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/79895 |
| * config/s390/predicates.md (reload_const_wide_int_operand): New |
| predicate. |
| * config/s390/s390.md ("movti"): Remove d/P alternative. |
| ("movti_bigconst"): New pattern definition. |
| |
| 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/80080 |
| * s390-protos.h (s390_expand_cs_hqi): Removed. |
| (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. |
| * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer |
| modes as well as CCZ1mode and CCZmode. |
| (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new |
| signature of s390_emit_compare_and_swap. |
| (s390_expand_cs_hqi): Likewise, make static. |
| (s390_expand_cs_tdsi): Generate an explicit compare before trying |
| compare-and-swap, in some cases. |
| (s390_expand_cs): Wrapper function. |
| (s390_expand_atomic_exchange_tdsi): New backend specific expander for |
| atomic_exchange. |
| (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. |
| * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the |
| patterns for small and large integers. Forbid symref memory operands. |
| Move expander to s390.c. Require cc register. |
| ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal") |
| ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1") |
| ("*atomic_compare_and_swapdi<CCZZ1:mode>_2") |
| ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid |
| symref memory operands. Remove CC mode and call s390_match_ccmode |
| instead. |
| ("atomic_exchange<mode>"): Allow and implement all integer modes. |
| |
| 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md (define_peephole2): New peephole to help |
| combining the load-and-test pattern with volatile memory. |
| |
| 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal |
| with CCZmode for TARGET_Z196. |
| |
| 2017-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/80501 |
| * combine.c (make_compound_operation_int): Set subreg_code to SET |
| even for AND with mask of the sign bit of mode. |
| |
| PR rtl-optimization/80500 |
| * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on |
| sum's initial value. |
| |
| 2017-04-25 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation. |
| |
| 2017-04-25 Marc Glisse <marc.glisse@inria.fr> |
| |
| * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME. |
| |
| 2017-04-25 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation. |
| (thunderx2t99_sha): New Reservation. |
| |
| 2017-04-25 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix |
| type for 1-element load. |
| |
| 2017-04-24 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X/[ex]C CMP Y/[ex]C): New transformation. |
| |
| 2017-04-24 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/80293 |
| * tree-sra.c (scalarizable_type_p): New parameter const_decl, make |
| char arrays not totally scalarizable if it is false. |
| (analyze_all_variable_accesses): Pass correct value in the new |
| parameter. Add a statistics counter. |
| |
| 2017-04-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/79931 |
| * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE. |
| |
| 2017-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80494 |
| * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail |
| out for complex types. |
| |
| 2017-04-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. |
| * tree-ssa-sccvn.c (print_scc): Print SCC size. |
| (extract_and_process_scc_for_name): Never fail but drop SCC to varying. |
| (DFS): Adjust and never fail. |
| (sccvn_dom_walker::fail): Remove. |
| (sccvn_dom_walker::before_dom_children): Adjust. |
| (run_scc_vn): Likewise and never fail. |
| * tree-ssa-pre.c (pass_pre::execute): Adjust. |
| (pass_fre::execute): Likewise. |
| |
| 2017-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79725 |
| * tree-ssa-sink.c (statement_sink_location): Return whether |
| failure reason was zero uses. Move that check later. |
| (sink_code_in_bb): Deal with zero uses by removing the stmt |
| if possible. |
| |
| 2017-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR c++/2972 |
| * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some |
| pointer-based references. |
| |
| 2017-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/79814 |
| * pass_manager.h (pass_manager::operator new): Remove. |
| (pass_manager::operator delete): Likewise. |
| * passes.c (pass_manager::operator new): Remove. |
| (pass_manager::operator delete): Likewise. |
| (pass_manager::pass_manager): Zero individual pass members. |
| |
| 2017-04-23 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/70799 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) |
| <case ASHIFT, case LSHIFTRT>: Also consider variable shifts. |
| Check "XEXP (src, 1)" operand here. |
| <case PLUS, case MINUS, case IOR, case XOR, case AND>: |
| Check "XEXP (src, 1)" operand here. |
| (dimode_scalar_chain::make_vector_copies): Detect count register |
| of a shift instruction. Zero extend count register from QImode |
| to DImode to satisfy vector shift pattern count operand predicate. |
| Substitute vector shift count operand with a DImode copy. |
| (dimode_scalar_chain::convert_reg): Ditto, zero-extend from |
| vector register. |
| |
| 2017-04-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. |
| Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. |
| (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove |
| UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. |
| (UNSPEC_NOREX_MEM): Remove definition. |
| |
| 2017-04-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79547 |
| * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): |
| Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp, |
| bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p |
| without any constraints. |
| |
| 2017-04-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78847 |
| * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR. |
| |
| 2017-04-21 Richard Biener <rguenther@suse.de> |
| |
| * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO. |
| (build_distinct_type_copy): Likewise. |
| (build_variant_type_copy): Likewise. |
| * tree.c (build_qualified_type): Pass down mem-stat info. |
| (build_distinct_type_copy): Likewise. |
| (build_variant_type_copy): Likewise. |
| |
| 2017-04-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80237 |
| * tree-ssa-pre.c (find_leader_in_sets): Add third set argument, |
| defaulted to NULL. |
| (phi_translate_1): Also allow a leader in AVAIL_OUT of pred |
| for a simplified result. |
| |
| 2016-04-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require |
| sth as strict as a simple_iv but a chrec without symbols and an |
| operand defined in the loop we are peeling (and not some subloop). |
| (propagate_constants_for_unrolling): Propagate all constants. |
| |
| 2017-04-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79804 |
| * config/i386/i386.c (print_reg): Remove assert for disalowed |
| regno values, call output_operand_lossage instead. |
| |
| 2017-04-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78090 |
| * config/i386/constraints.md (Yc): New register constraint. |
| * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): |
| Use Yc constraint for alternative 2 of operand 0. Remove |
| preferred_for_speed attribute. |
| |
| 2017-04-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and |
| lastprivate clauses in SIMT case. |
| |
| 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de> |
| |
| * doc/invoke.texi (-Wextra-semi): Document new warning option. |
| |
| 2017-04-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/57796 |
| * tree-vect-stmts.c (vect_model_store_cost): Cost scatters |
| as N scalar stores. |
| (vect_model_load_cost): Cost gathers as N scalar loads. |
| |
| 2017-04-20 Richard Biener <rguenther@suse.de> |
| |
| * ggc-page.c (ggc_allocated_p): Rename to ... |
| (safe_lookup_page_table_entry): ... this and return the lookup |
| result. |
| (gt_ggc_m_S): Use safe_lookup_page_table_entry. |
| |
| 2017-04-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80453 |
| * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members. |
| * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs |
| from the conditions. |
| (vn_phi_eq): Pass them down. |
| (vn_phi_lookup): Record them. |
| (vn_phi_insert): Likewise. |
| |
| 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix |
| uninitialized variable warning to avoid buffer overrun. |
| |
| 2017-04-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR other/71250 |
| * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning |
| is suppressed for '{ 0 }' in C. |
| |
| 2017-04-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Set to 8.0.0. |
| |
| 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default |
| priority .init_array and .fini_array section with SECTION_NOTYPE |
| flag. |
| |
| 2017-04-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/80423 |
| * tree.h (build_array_type): Add typeless_storage default argument. |
| * tree.c (type_cache_hasher::equal): Also compare |
| TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs. |
| (build_array_type): Add typeless_storage argument, set |
| TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to |
| recursive call. |
| (build_nonshared_array_type): Adjust build_array_type_1 caller. |
| (build_array_type): Likewise. Add typeless_storage argument. |
| |
| 2017-04-19 Eric Botcazou <ebotcazou@adacore.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/80426 |
| * tree-vrp.c (extract_range_from_binary_expr_1): For an additive |
| operation on symbolic operands, also compute the overflow for the |
| invariant part when the operation degenerates into a negation. |
| |
| 2017-04-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/80461 |
| * dwarf2out.c (modified_type_die, gen_type_die_with_usage): |
| Check for t with zero TYPE_QUALS_NO_ADDR_SPACE. |
| |
| PR debug/80436 |
| * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses. |
| |
| 2017-04-19 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/80462 |
| * config/avr/avr.c (tree.h): Include it. |
| (cgraph.h): Include it. |
| (avr_encode_section_info): Don't warn for uninitialized progmem |
| variable if it's just an alias. |
| |
| 2017-04-19 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/65972 |
| * auto-profile.c (afdo_vpt_for_early_inline): Update SSA |
| when needed by AutoPGO. |
| |
| 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com> |
| |
| PR lto/50345 |
| * doc/lto.texi: Remove an extra 'that'. |
| |
| 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/80429 |
| * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that |
| are only used in debug insns. |
| |
| 2017-04-19 Eric Botcazou <ebotcazou@adacore.com> |
| Vladimir Makarov <vmakarov@redhat.com> |
| |
| * config/sparc/predicates.md (input_operand): Add comment. Return |
| true for any memory operand when LRA is in progress. |
| * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix. |
| |
| 2017-04-18 Jeff Law <law@redhat.com> |
| |
| PR target/74563 |
| * mips.md ({return,simple_return}_internal): Do not overwrite |
| operands[0]. |
| |
| 2017-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/80443 |
| * tree-vrp.c (intersect_ranges): For signed 1-bit precision type, |
| instead of adding 1, subtract -1 and similarly instead of subtracting |
| 1 add -1. |
| |
| 2017-04-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/80357 |
| * haifa-sched.c (tmp_bitmap): New variable. |
| (model_recompute): Handle duplicate use records. |
| (alloc_global_sched_pressure_data): Initialize tmp_bitmap. |
| (free_global_sched_pressure_data): Free it. |
| |
| 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| Revert: |
| 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. |
| (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR |
| instead of SYSTEM_HEADER_DIR. |
| |
| 2017-04-18 Jeff Law <law@redhat.com> |
| |
| PR middle-end/80422 |
| * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have |
| predecessors after walking up the insn chain. |
| |
| 2017-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/80263 |
| * dwarf2out.c (modified_type_die): Try harder not to emit internal |
| sizetype type into debug info. |
| |
| 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/80099 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate |
| unneeded test for TARGET_UPPER_REGS_SF. |
| * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise. |
| |
| 2017-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/80444 |
| * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb |
| instead of gsi_after_labels. |
| |
| 2017-04-18 Jeff Law <law@redhat.com> |
| |
| * regcprop.c (maybe_mode_change): Avoid creating copies of the |
| stack pointer. |
| |
| Revert: |
| 2017-04-13 Jeff Law <law@redhat.com> |
| * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear |
| in operands[1] if it is a MEM and TARGET_MIPS16 is active. |
| |
| 2017-04-18 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/79453 |
| * config/avr/avr.c (intl.h): Include it. |
| (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _(). |
| |
| 2017-04-18 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/78783 |
| * gcov-tool.c (gcov_output_files): Validate that destination |
| file is either removed by the tool or by a user. |
| |
| 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> |
| Guy Benyei <guybe@mellanox.com> |
| |
| * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local |
| block, and do not negate it, the stored id is already negative. |
| |
| 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax. |
| |
| 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/80098 |
| * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define |
| masks of options that should be turned off if the VSX vector |
| options are turned off. |
| (OTHER_P8_VECTOR_MASKS): Likewise. |
| (OTHER_VSX_VECTOR_MASKS): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Call |
| rs6000_disable_incompatible_switches to validate no type switches |
| like -mvsx. |
| (rs6000_incompatible_switch): New function to disallow turning on |
| other vector options if -mno-vsx, -mno-power8-vector, or |
| -mno-power9-vector are specified. |
| |
| 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls. |
| |
| 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_decl_pretend_args): Remove. |
| * config/arc/arc.c (arc_decl_pretend_args): Likewise. |
| * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise. |
| (ARG_POINTER_CFA_OFFSET): Likewise. |
| |
| 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_mode_dependent_address_p): Relax |
| conditions to take advantage of various optimizations. |
| |
| 2017-04-13 Jeff Law <law@redhat.com> |
| |
| * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear |
| in operands[1] if it is a MEM and TARGET_MIPS16 is active. |
| (zero_extendsidi2_dext): Likewise. |
| |
| 2017-04-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/80403 |
| * fold-const.c (fold_ternary_loc): Revert |
| use op0 instead of fold_convert_loc (loc, type, arg0) part of |
| 2017-04-12 change. |
| |
| 2017-04-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/80343 |
| * lra-remat.c (update_scratch_ops): Assign original hard reg to |
| new scratch pseudo. |
| |
| 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com> |
| |
| PR sanitizer/80414 |
| * ubsan.c (ubsan_expand_bounds_ifn): Pass original index |
| to ubsan_encode_value. |
| |
| 2017-04-13 Jeff Law <law@redhat.com> |
| |
| * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs |
| appearing in DEBUG_INSNs. |
| |
| 2017-04-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80413 |
| * gcov-io.c (gcov_write_string): Copy to buffer just when |
| allocated size is greater than zero. |
| |
| 2017-04-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/80321 |
| * dwarf2out.c (decls_for_scope): Ignore declarations of |
| current_function_decl in BLOCK_NONLOCALIZED_VARS. |
| |
| 2017-04-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/69953 |
| * ipa-visibility.c (non_local_p): Fix typos. |
| (localize_node): When localizing symbol in same comdat group, |
| dissolve the group only when we know external symbols are going |
| to be privatized. |
| (function_and_variable_visibility): Do not localize DECL_EXTERNAL. |
| |
| 2017-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79390 |
| * optabs.c (emit_conditional_move): If the preferred op2/op3 operand |
| order does not result in usable sequence, retry with reversed operand |
| order. |
| |
| PR sanitizer/80403 |
| PR sanitizer/80404 |
| PR sanitizer/80405 |
| * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument |
| to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use |
| op0 instead of fold_convert_loc (loc, type, arg0). |
| |
| 2017-04-12 Jeff Law <law@redhat.com> |
| |
| * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still |
| has a delay slot in the generated code. |
| |
| * config/cris/cris.md (cris_preferred_reload_class): Return |
| GENNONACR_REGS rather than GENERAL_REGS. |
| |
| 2017-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/80163 |
| * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND |
| vs. ZERO_EXTEND based on signedness of treeop0's type rather than |
| signedness of the result type. |
| |
| 2017-04-12 Richard Biener <rguenther@suse.de> |
| Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/80359 |
| * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not |
| trim stores to TARGET_MEM_REFs. |
| |
| 2017-04-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79390 |
| * gimple-ssa-split-paths.c (is_feasible_trace): Restrict |
| threading case even more. |
| |
| 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/80382 |
| * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test |
| for quad_address_p for TImode, instead of just not indexed_address. |
| |
| 2017-04-12 Richard Biener <rguenther@suse.de> |
| Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/79671 |
| * alias.c (component_uses_parent_alias_set_from): Handle |
| TYPE_TYPELESS_STORAGE. |
| (get_alias_set): Likewise. |
| * tree-core.h (tree_type_common): Add typeless_storage flag. |
| * tree.h (TYPE_TYPELESS_STORAGE): New macro. |
| * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE |
| for types containing members with TYPE_TYPELESS_STORAGE. |
| (place_field): Likewise. |
| (layout_type): Likewise for ARRAY_TYPE. |
| * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE. |
| * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream |
| TYPE_TYPELESS_STORAGE. |
| * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. |
| |
| 2017-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/80349 |
| * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's |
| first argument to type. |
| |
| 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/80376 |
| PR target/80315 |
| * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return |
| CONST0_RTX (mode) rather than const0_rtx where appropriate. |
| (rs6000_expand_binop_builtin): Likewise. |
| (rs6000_expand_ternop_builtin): Likewise; also add missing |
| vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for |
| vshasigma built-ins. |
| * doc/extend.texi: Document that vec_xxpermdi's third argument |
| must be a constant. |
| |
| 2017-04-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain): |
| Use shift_const cost parameter when calculating gain of STV shifts. |
| |
| 2017-04-11 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70478 |
| * lra-constraints.c (process_alt_operands): Check memory for |
| disfavoring memory insn operand. |
| |
| 2017-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/80100 |
| * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform |
| left shift in unsigned HOST_WIDE_INT type. |
| |
| PR rtl-optimization/80385 |
| * simplify-rtx.c (simplify_unary_operation_1): Don't transform |
| (not (neg X)) into (plus X -1) for complex or non-integral modes. |
| |
| PR libgomp/80394 |
| * omp-low.c (scan_omp_task): Don't optimize away empty tasks |
| if they have any depend clauses. |
| |
| 2017-04-11 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80212 |
| * cgraph.c (cgraph_node::dump): Dump calls_comdat_local. |
| * ipa-split.c (split_function): Create a local comdat symbol |
| if caller is in a comdat group. |
| |
| 2017-04-11 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80212 |
| * ipa-cp.c (determine_versionability): Handle calls_comdat_local |
| flags. |
| |
| 2017-04-11 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/80364 |
| * gimple-ssa-sprintf.c (get_int_range): Remove second argument and |
| always use the int type. Use INTEGRAL_TYPE_P() rather than testing |
| for INTEGER_TYPE. |
| (directive::set_width, directive::set_precision, format_character): |
| Adjust. |
| (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for |
| INTEGER_TYPE. |
| |
| 2017-04-11 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/80389 |
| * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch |
| conflict, set target->arch_name instead of target->cpu_name. |
| |
| 2017-04-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80374 |
| * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use |
| build_zero_cst, remove fold_convertible_p check again. |
| |
| 2017-04-11 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/70878 |
| * ubsan.c (instrument_object_size): Do not instrument register |
| variables. |
| |
| 2017-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80381 |
| * config/i386/i386-builtin-types.def |
| (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT, |
| V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT, |
| V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT, |
| V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT, |
| V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT, |
| V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT, |
| V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT, |
| V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT, |
| V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT, |
| V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT, |
| V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT, |
| V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT, |
| V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT, |
| V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT, |
| V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT, |
| V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT, |
| V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT, |
| V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases. |
| * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask, |
| __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask, |
| __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask, |
| __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask, |
| __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask, |
| __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask, |
| __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask, |
| __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask, |
| __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask, |
| __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask, |
| __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask, |
| __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask, |
| __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask, |
| __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask, |
| __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask, |
| __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask, |
| __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask, |
| __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask, |
| __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask, |
| __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask, |
| __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask, |
| __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask, |
| __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask, |
| __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask, |
| __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask, |
| __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask, |
| __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask, |
| __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type |
| aliases. |
| * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count |
| flag to second_arg_count, handle 4 argument function type _COUNT |
| aliases, handle second_arg_count on second argument rather than last. |
| |
| 2017-04-10 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/80374 |
| * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to |
| record anything if we can not convert integer_zero_node to the |
| desired type. |
| |
| 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/80108 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): |
| Enhance special handling given to the TARGET_P9_MINMAX option in |
| relation to certain other options. |
| |
| 2017-04-10 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/80153 |
| * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and |
| remove POINTER_PLUS_EXPR's base part directly, rather than through |
| aff_tree. |
| |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/80153 |
| * tree-affine.c (aff_combination_to_tree): Get base pointer from |
| the first element of pointer type aff_tree. Build result expr in |
| aff_tree's type. |
| (add_elt_to_tree): Convert to type unconditionally. Remove other |
| fold_convert calls. |
| * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types. |
| (rewrite_use_nonlinear_expr): Check invariant using iv information. |
| |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases): Properly handle |
| asm inputs. |
| |
| 2017-04-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70478 |
| * lra-constraints.c (curr_small_class_check): New. |
| (update_and_check_small_class_inputs): New. |
| (process_alt_operands): Update curr_small_class_check. Disfavor |
| alternative insn memory operands. Check available regs for small |
| class operands. |
| |
| 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/80057 |
| * config/mips/mips.opt (-mvirt): Update description. |
| * doc/invoke.texi (-mvirt): Likewise. |
| |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80362 |
| * fold-const.c (fold_binary_loc): Look at unstripped ops when |
| looking for NEGATE_EXPR in -A / -B to A / B folding. |
| |
| 2017-04-10 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80224 |
| * gcov.c (print_usage): Fix usage string. |
| (get_gcov_intermediate_filename): Remove. |
| (output_gcov_file): Use both for normal and intermediate format. |
| (generate_results): Do not initialize special file for |
| intermediate format. |
| |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80304 |
| * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse |
| for safelen. |
| |
| 2017-04-10 Nathan Sidwell <nathan@acm.org> |
| |
| PR target/79905 |
| * config/rs6000/rs6000.c (rs6000_vector_type): New. |
| (rs6000_init_builtins): Use it. |
| |
| 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (<mrc>): Add mode to SET source. |
| (<mrrc>): Likewise. |
| |
| 2017-04-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80344 |
| * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs. |
| |
| 2017-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80324 |
| * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32, |
| _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32, |
| _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32, |
| _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32, |
| _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32, |
| _mm512_reduce_max_epi32, _mm512_reduce_min_epu32, |
| _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32, |
| _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32, |
| _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps, |
| _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps, |
| _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps, |
| _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps, |
| _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64, |
| _mm512_reduce_and_epi64, _mm512_reduce_or_epi64, |
| _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64, |
| _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64, |
| _mm512_reduce_min_epi64, _mm512_reduce_max_epi64, |
| _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64, |
| _mm512_reduce_min_epu64, _mm512_reduce_max_epu64, |
| _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64, |
| _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd, |
| _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd, |
| _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics. |
| |
| 2017-04-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70478 |
| * lra-constraints.c: Reverse the last patch. |
| |
| 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME. |
| Add comment for WCHAR_T. |
| |
| 2017-04-08 Martin Liska <mliska@suse.cz> |
| |
| Revert: |
| 2017-04-07 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80212 |
| * ipa-split.c (split_function): Add function part to a same comdat |
| group. |
| |
| 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/80358 |
| * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check. |
| |
| 2017-04-07 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * rs6000/rs6000.c (vec_load_pendulum): Rename... |
| (vec_pairing): ...to this. |
| (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns. |
| (rs6000_sched_init): Adjust for name change. |
| (struct rs6000_sched_context): Likewise. |
| (rs6000_init_sched_context): Likewise. |
| (rs6000_set_sched_context): Likewise. |
| |
| 2017-04-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80322 |
| PR target/80323 |
| PR target/80325 |
| PR target/80326 |
| * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New |
| intrinsics. |
| * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int, |
| _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd, |
| _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise. |
| |
| 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE. |
| |
| 2017-04-07 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70703 |
| * ira-color.c (update_conflict_hard_regno_costs): Use |
| int64_t instead of HOST_WIDE_INT. |
| |
| 2017-04-07 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70478 |
| * lra-constraints.c (process_alt_operands): Disfavor alternative |
| insn memory operands. |
| |
| 2017-04-07 Jeff Law <law@redhat.com> |
| |
| * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a |
| CALL and NOTE_INSN_CALL_ARG_LOCATION. |
| |
| 2017-04-07 Martin Liska <mliska@suse.cz> |
| |
| PR target/79889 |
| * config/aarch64/aarch64.c (aarch64_process_target_attr): |
| Show error message instead of an ICE. |
| |
| 2017-04-07 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80212 |
| * ipa-split.c (split_function): Add function part to a same comdat |
| group. |
| |
| 2017-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80341 |
| * tree.c (get_unwidened): Also handle ! for_type case for |
| INTEGER_CSTs. |
| * convert.c (do_narrow): Split out from ... |
| (convert_to_integer_1): ... here. Do not pass final truncation |
| type to get_unwidened for TRUNC_DIV_EXPR. |
| |
| 2017-04-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-affine.c (wide_int_ext_for_comb): Take type rather |
| than aff_tree. |
| (aff_combination_const): Adjust. |
| (aff_combination_scale): Likewise. |
| (aff_combination_add_elt): Likewise. |
| (aff_combination_add_cst): Likewise. |
| (aff_combination_convert): Likewise. |
| (add_elt_to_tree): Likewise. Remove unused argument. |
| (aff_combination_to_tree): Adjust calls to add_elt_to_tree. |
| |
| 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default |
| definition. |
| * config/arm/arm.c (arm_default_short_enums): Use |
| ARM_DEFAULT_SHORT_ENUMS. |
| * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define. |
| |
| 2017-04-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/80234 |
| * dwarf2out.c (gen_member_die): Handle C++17 inline static data |
| members with redundant out-of-class redeclaration. |
| |
| 2017-04-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80286 |
| * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern. |
| * config/i386/i386.md (*zero_extendsidi2): |
| Add (?*x,*x) and (?*v,*v) alternatives. |
| |
| 2017-04-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79733 |
| * config/i386/i386.c (ix86_expand_builtin) |
| <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand |
| mode from insn data. Convert operands to insn operand mode. |
| Copy operands that don't satisfy insn predicate to a register. |
| |
| 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk> |
| |
| * config/rs6000/x-aix: Increase memory limit for genautomata on AIX. |
| Update comments. |
| |
| 2017-04-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80334 |
| * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly |
| preserve alignment of accesses. |
| |
| 2017-04-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80262 |
| * tree-sra.c (build_ref_for_offset): Preserve address-space |
| information. |
| * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): |
| Drop useless address-space information on MEM_REF offsets. |
| |
| 2017-04-05 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type. |
| |
| 2017-04-05 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70703 |
| * ira-color.c (update_conflict_hard_regno_costs): Use |
| HOST_WIDE_INT instead of long. |
| |
| 2017-04-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80298 |
| * config/i386/mmintrin.h: Add -msse target option when __SSE__ is |
| not defined for x86_64 target. Add -mmmx target option when __SSE2__ |
| is not defined. |
| * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined |
| for x86_64 target. Handle -m3dnowa option. |
| |
| 2017-04-05 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/70703 |
| * ira-color.c (update_costs_from_allocno): Use the smallest mode. |
| (update_conflict_hard_regno_costs): Use long instead of unsigned |
| arithmetic for cost calculation. |
| |
| 2017-04-05 Jakub Jelinek <jakub@redhat.com> |
| Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR sanitizer/80308 |
| * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value |
| for big endian. |
| |
| 2017-04-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/78002 |
| * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace |
| ptr_mode with Pmode throughout. |
| * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename |
| into probe_stack_range and use DImode. |
| |
| 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/79890 |
| * config/s390/s390.c (s390_register_info_gprtofpr): Return if |
| call_eh_return is true. |
| |
| 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_resolve_overloaded_builtin): |
| Initialize last_match_fntype_index. |
| |
| 2017-04-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80310 |
| * tree-nvr.c: Include internal-fn.h. |
| (pass_return_slot::execute): Ignore internal calls without |
| direct optab. |
| |
| 2017-04-04 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR c++/80297 |
| * genmatch.c (capture::gen_transform): For GENERIC unshare_expr |
| captures used multiple times, except for the last use. |
| * generic-match-head.c: Include gimplify.h. |
| |
| 2017-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79390 |
| * target.h (struct noce_if_info): Declare. |
| * targhooks.h (default_noce_conversion_profitable_p): Declare. |
| * target.def (noce_conversion_profitable_p): New target hook. |
| * ifcvt.h (struct noce_if_info): New type, moved from ... |
| * ifcvt.c (struct noce_if_info): ... here. |
| (noce_conversion_profitable_p): Renamed to ... |
| (default_noce_conversion_profitable_p): ... this. No longer |
| static nor inline. |
| (noce_try_store_flag_constants, noce_try_addcc, |
| noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, |
| noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p |
| instead of noce_conversion_profitable_p. |
| * config/i386/i386.c: Include ifcvt.h. |
| (ix86_option_override_internal): Don't override |
| PARAM_MAX_RTL_IF_CONVERSION_INSNS default. |
| (ix86_noce_conversion_profitable_p): New function. |
| (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine. |
| * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment. |
| * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add. |
| * doc/tm.texi: Regenerated. |
| |
| 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar |
| correction. |
| |
| 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR target/80307 |
| * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32 |
| instructions for small multiply cores. |
| |
| 2017-04-04 Jeff Law <law@redhat.com> |
| |
| * config/mips/mips.c (mips_multi_add): Zero initialize the newly |
| added member. |
| (mips_expand_vec_perm_const): Initialize elements in orig_perm |
| that are not set by the loop over the elements. |
| |
| 2017-04-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80286 |
| * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar |
| int mode, convert_modes it to mode as unsigned, otherwise use |
| lowpart_subreg to mode rather than SImode. |
| * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>, |
| ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>): |
| Use DImode instead of SImode for the shift count operand. |
| * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3): |
| Likewise. |
| |
| 2017-04-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80281 |
| * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned |
| arithmetic done for the negate or the plus. Simplify. |
| (A - (-B) -> A + B): Likewise. |
| * fold-const.c (split_tree): Make sure to not negate pointers. |
| |
| 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/60818 |
| * simplify-rtx.c (simplify_binary_operation_1): Do not replace |
| a compare of comparisons with the thing compared if this results |
| in a different machine mode. |
| |
| 2017-04-03 Jonathan Wakely <jwakely@redhat.com> |
| |
| * alias.c (base_alias_check): Fix typo in comment. |
| * cgraph.h (class ipa_polymorphic_call_context): Likewise. |
| * cgraphunit.c (symbol_table::compile): Likewise. |
| * collect2.c (maybe_run_lto_and_relink): Likewise. |
| * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise. |
| * config/avr/avr-arch.h (avr_arch_info_t): Likewise. |
| * config/avr/avr.c (avr_map_op_t): Likewise. |
| * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise. |
| * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise. |
| * config/epiphany/epiphany.md (movcc): Likewise. |
| * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise. |
| * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue): |
| Likewise. |
| * config/mips/mips.c (mips_save_restore_reg): Likewise. |
| * config/rx/rx.c (rx_is_restricted_memory_address): Likewise. |
| * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise. |
| * config/sh/sh.c (sh_rtx_costs): Likewise. |
| * fold-const.c (fold_truth_andor): Likewise. |
| * genautomata.c (collapse_flag): Likewise. |
| * gengtype.h (struct type::u::s): Likewise. |
| * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise. |
| * input.c (FORMAT_AMOUNT): Likewise. |
| * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector) |
| (known_aggs_to_agg_replacement_list): Likewise. |
| * ipa-inline-analysis.c: Likewise. |
| * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise. |
| * loop-unroll.c (analyze_insn_to_expand_var): Likewise. |
| * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos): |
| Likewise. |
| * modulo-sched.c (apply_reg_moves): Likewise. |
| * omp-expand.c (build_omp_regions_1): Likewise. |
| * trans-mem.c (struct tm_wrapper_hasher): Likewise. |
| * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise. |
| * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise. |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. |
| * value-prof.c: Likewise. |
| * var-tracking.c (val_reset): Likewise. |
| |
| 2017-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80275 |
| * fold-const.c (split_address_to_core_and_offset): Handle |
| POINTER_PLUS_EXPR. |
| |
| 2017-04-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-nested.c (get_descriptor_type): Make sure that the alignment of |
| descriptors is at least equal to that of functions. |
| |
| 2017-04-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (movdi_to_sse): Add missing DONE. |
| |
| 2017-04-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80250 |
| * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern. |
| (mov<IMOD4:mode>): New expander. |
| (*mov<IMOD4:mode>_internal): New insn and split pattern. |
| |
| 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/79405 |
| * fwprop.c (propagations_left): New variable. |
| (forward_propagate_into): Decrement it. |
| (fwprop_init): Initialize it. |
| (fw_prop): If the variable has reached zero, stop propagating. |
| (fwprop_addr): Ditto. |
| |
| 2017-03-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/79255 |
| * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is |
| a FUNCTION_DECL, pass it as decl instead of origin to |
| process_scope_var. |
| |
| 2017-03-31 Alexander Monakov <amonakov@ispras.ru> |
| |
| * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format |
| string. |
| |
| 2017-03-31 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/80107 |
| * config/rs6000/rs6000.md (extendhi<mode>2): Add test for |
| TARGET_VSX_SMALL_INTEGER. |
| |
| 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add |
| reference to the OpenPOWER 64-Bit ELF V2 ABI Specification. |
| |
| 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update |
| extraction from odd-numbered MSA register. |
| |
| 2017-03-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/80173 |
| * expmed.c (store_bit_field_1): Don't attempt to create |
| a word subreg out of hard registers wider than word if they |
| have HARD_REGNO_NREGS of 1 for their mode. |
| |
| PR middle-end/80163 |
| * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending |
| conversions to integer types wider than word and pointer. |
| |
| PR debug/80025 |
| * cselib.h (rtx_equal_for_cselib_1): Add depth argument. |
| (rtx_equal_for_cselib_p): Pass 0 to it. |
| * cselib.c (cselib_hasher::equal): Likewise. |
| (rtx_equal_for_cselib_1): Add depth argument. If depth |
| is 128, don't look up VALUE locs and punt. Increment |
| depth in recursive calls when walking VALUE locs. |
| |
| 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes. |
| (make_gcov_file_name): Use the canonical path name for generating |
| the MD5 value. |
| (read_line): Fix handling of files with ascii null bytes. |
| |
| 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * config/mips/mips.c (mips_expand_vector_init): Create a const_vector |
| to initialise a vector register instead |
| of using a const_int. |
| |
| 2017-03-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/80189 |
| * gimplify.c (omp_default_clause): Use %qs instead of %s in |
| diagnostic messages. |
| |
| 2017-03-30 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/80246 |
| * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0. |
| (dfp_diex_<mode>): Update mode of operand 1. |
| * doc/extend.texi (dxex, dxexq): Document change to return type. |
| (diex, diexq): Document change to argument type. |
| |
| 2017-03-30 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/77333 |
| * cgraph.h (cgraph_build_function_type_skip_args): Declare. |
| * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that |
| it reflects the signature changes performed at the callee side. |
| * cgraphclones.c (build_function_type_skip_args): Make public, renamed |
| to cgraph_build_function_type_skip_args. |
| (build_function_decl_skip_args): Adjust call to the above function. |
| |
| 2017-03-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80206 |
| * config/i386/sse.md |
| (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use |
| register as dest whenever it is a MEM not rtx_equal_p to the |
| corresponding dup operand, and when forcing into reg move the |
| reg into the memory afterwards. |
| (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask): |
| Likewise. Use <ssehalfvecmode> instead of <ssequartermode> |
| for the force_reg mode. |
| (avx512vl_vextractf128<mode>): Use register as dest either |
| always when a MEM, or when it is a MEM not rtx_equal_p to the |
| corresponding dup operand, or even not when it is a CONST_VECTOR |
| depending on the mode and lo vs. hi. |
| (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous |
| parens. |
| (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise. |
| (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): |
| Likewise. Require that operands[2] is even. |
| (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): |
| Remove extraneous parens. Require that operands[2] is a multiple |
| of 4. |
| (vec_extract_lo_<mode><mask_name>): Don't bother testing if |
| operands[0] is a MEM if <mask_applied>, the predicates/constraints |
| disallow memory then. |
| |
| 2017-03-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/77498 |
| * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications |
| to non-constants over backedges. |
| |
| 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/80233 |
| * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns |
| as last_combined_insn. Do not test for BARRIER_P separately. |
| |
| 2017-03-29 Andreas Schwab <schwab@suse.de> |
| |
| PR ada/80146 |
| * calls.c (prepare_call_address): Convert funexp to Pmode before |
| copying to temp reg. |
| |
| 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/80158 |
| * gimple-ssa-strength-reduction.c (replace_mult_candidate): |
| Handle possible future case of more than one alternate |
| interpretation. |
| (replace_rhs_if_not_dup): Likewise. |
| (replace_one_candidate): Likewise. |
| |
| 2017-03-28 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/80193 |
| * ira.c (ira): Do not check allocation for LRA. |
| |
| 2017-03-28 Alexander Monakov <amonakov@ispras.ru> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare. |
| (nvptx_output_simt_exit): Declare. |
| * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use |
| cfun->machine->unisimt_location. Handle NULL unisimt_predicate. |
| (init_softstack_frame): Move initialization of crtl->is_leaf to... |
| (nvptx_declare_function_name): ...here. Emit declaration of local |
| memory space buffer for omp_simt_enter insn. |
| (nvptx_output_unisimt_switch): New. |
| (nvptx_output_softstack_switch): New. |
| (nvptx_output_simt_enter): New. |
| (nvptx_output_simt_exit): New. |
| * config/nvptx/nvptx.h (struct machine_function): New fields |
| has_simtreg, unisimt_location, simt_stack_size, simt_stack_align. |
| * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec. |
| (UNSPECV_SIMT_EXIT): Ditto. |
| (omp_simt_enter_insn): New insn. |
| (omp_simt_enter): New expansion. |
| (omp_simt_exit): New insn. |
| * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option. |
| |
| * internal-fn.c (expand_GOMP_SIMT_ENTER): New. |
| (expand_GOMP_SIMT_ENTER_ALLOC): New. |
| (expand_GOMP_SIMT_EXIT): New. |
| * internal-fn.def (GOMP_SIMT_ENTER): New internal function. |
| (GOMP_SIMT_ENTER_ALLOC): Ditto. |
| (GOMP_SIMT_EXIT): Ditto. |
| * target-insns.def (omp_simt_enter): New insn. |
| (omp_simt_exit): Ditto. |
| * omp-low.c (struct omplow_simd_context): New fields simt_eargs, |
| simt_dlist. |
| (lower_rec_simd_input_clauses): Implement SIMT privatization. |
| (lower_rec_input_clauses): Likewise. |
| (lower_lastprivate_clauses): Handle SIMT privatization. |
| |
| * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h. |
| (ompdevlow_adjust_simt_enter): New. |
| (find_simtpriv_var_op): New. |
| (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER, |
| IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT. |
| |
| * tree-inline.h (struct copy_body_data): New field dst_simt_vars. |
| * tree-inline.c (expand_call_inline): Handle SIMT privatization. |
| (copy_decl_for_dup_finish): Ditto. |
| |
| * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER. |
| |
| 2017-03-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/53383 |
| * config/i386/i386.c (ix86_option_override_internal): Always |
| allow -mpreferred-stack-boundary=3 for 64-bit targets. |
| |
| 2017-03-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop. |
| |
| 2017-03-28 Bin Cheng <bin.cheng@arm.com> |
| |
| * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and |
| mark new edge's irreducible flag accordign to it. |
| (vect_do_peeling): Check loop preheader edge's irreducible flag |
| and pass it to function slpeel_add_loop_guard. |
| |
| 2017-03-28 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/80218 |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): |
| Update block frequencies and counts. |
| |
| 2017-03-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78644 |
| * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value |
| of a simplification result we may not use it at all. |
| |
| 2017-03-28 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/80205 |
| * tree-inline.c (copy_phis_for_bb): Do not create PHI node |
| without arguments, generate default definition of a SSA name. |
| |
| 2017-03-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80222 |
| * gimple-fold.c (gimple_fold_indirect_ref): Do not touch |
| TYPE_REF_CAN_ALIAS_ALL references. |
| * fold-const.c (fold_indirect_ref_1): Likewise. |
| |
| 2017-03-28 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/80104 |
| * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a |
| thunk call as DECL_GIMPLE_REG_P when vector or complex type. |
| |
| 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> |
| Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| |
| * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec. |
| (EXTRA_SPECS): Define. |
| (SUBTARGET_EXTRA_SPECS): Likewise. |
| (SUBTARGET_CPP_SPEC): Likewise. |
| * config/arc/elf.h (EXTRA_SPECS): Renamed to |
| SUBTARGET_EXTRA_SPECS. |
| * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define. |
| |
| 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/simdext.md (vst64_insn): Update pattern. |
| (vld32wh_insn): Likewise. |
| (vld32wl_insn): Likewise. |
| (vld64_insn): Likewise. |
| (vld32_insn): Likewise. |
| |
| 2017-03-28 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80067 |
| * fold-const.c (fold_comparison): Use protected_set_expr_location |
| instead of SET_EXPR_LOCATION. |
| |
| 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * tree.c (add_expr): Avoid name lookup warning. |
| |
| 2017-03-27 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/80216 |
| * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in |
| function name. Limit recursion depth. |
| (record_temporary_equivalences): Corresponding changes. |
| |
| 2017-03-27 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is |
| covered first. |
| |
| 2017-03-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80102 |
| * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related |
| notes. |
| * cfgcleanup.c (reg_note_cfa_p): New array. |
| (insns_have_identical_cfa_notes): New function. |
| (old_insns_match_p): Don't cross-jump in between /f |
| and non-/f instructions. If both i1 and i2 are frame related, |
| verify all CFA notes, their order and content. |
| |
| 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78543 |
| * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap |
| HImode and SImode with zero extend to DImode to one insn. |
| (bswap<mode>2_extenddi): Likewise. |
| (bswapsi2_extenddi): Likewise. |
| (bswaphi2_extendsi): Likewise. |
| (bswaphi2): Combine bswap HImode and SImode into one insn. |
| Separate memory insns from swapping register. |
| (bswapsi2): Likewise. |
| (bswap<mode>2): Likewise. |
| (bswaphi2_internal): Delete, no longer used. |
| (bswapsi2_internal): Likewise. |
| (bswap<mode>2_load): Split bswap HImode/SImode into separate load, |
| store, and gpr<-gpr swap insns. |
| (bswap<mode>2_store): Likewise. |
| (bswaphi2_reg): Register only splitter, combine with the splitter. |
| (bswaphi2 splitter): Likewise. |
| (bswapsi2_reg): Likewise. |
| (bswapsi2 splitter): Likewise. |
| (bswapdi2): If we have the LDBRX and STDBRX instructions, split |
| the insns into load, store, and register/register insns. |
| (bswapdi2_ldbrx): Likewise. |
| (bswapdi2_load): Likewise. |
| (bswapdi2_store): Likewise. |
| (bswapdi2_reg): Likewise. |
| |
| 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net> |
| |
| * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case. |
| (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise. |
| |
| 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/80103 |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and |
| add comments. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| special handling for target option conflicts between dform |
| options (-mpower9-dform, -mpower9-dform-vector, |
| -mpower9-dform-scalar) and -mno-direct-move. |
| |
| 2017-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80181 |
| * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED. |
| |
| 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/predicates.md (move_double_src_operand): Replace the |
| call to move_double_src_operand with a call to address_operand. |
| |
| 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define. |
| * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise. |
| * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT. |
| |
| 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/predicates.md (long_immediate_loadstore_operand): |
| Consider scaled addresses cases. |
| |
| 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_epilogue_uses): BLINK should be also |
| restored when in interrupt. |
| * config/arc/arc.md (simple_return): ARCv2 rtie instruction |
| doesn't have delay slot. |
| |
| 2017-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/79776 |
| * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip |
| inlined thunk clones. |
| |
| 2017-03-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/80168 |
| * asan.c (instrument_derefs): Copy over last operand from |
| original COMPONENT_REF to the new COMPONENT_REF with |
| DECL_BIT_FIELD_REPRESENTATIVE. |
| * ubsan.c (instrument_object_size): Likewise. |
| |
| 2017-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80170 |
| * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make |
| sure DR/SCEV didnt fold in constants we do not see when looking |
| at the reference base alignment. |
| |
| 2017-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80171 |
| * gimple-fold.c (fold_ctor_reference): Properly guard against |
| NULL return value from canonicalize_constructor_val. |
| |
| 2017-03-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80180 |
| * config/i386/i386.c (ix86_expand_builtin) |
| <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between |
| flags reg setting and flags reg using instructions. |
| <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg |
| clobbering instructions to zero extend op2. |
| |
| 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Configuration) <--with-aix-soname>: |
| Update link to AIX ld. |
| |
| 2017-03-25 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/80160 |
| PR rtl-optimization/80159 |
| * lra-assigns.c (must_not_spill_p): Tighten new test to also take |
| reg_alternate_class into account. |
| |
| 2017-03-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/80148 |
| * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos |
| to consider in curr_insn_transform. |
| |
| 2017-03-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * genrecog.c (validate_pattern): Add VEC_SELECT validation. |
| * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits |
| and emit_mode_inner. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtins.def: Add VXE builtins. Add a flags |
| argument to the overloaded builtin variants. Use the new flag to |
| deprecate certain builtin variants. |
| * config/s390/s390-builtin-types.def: Add new builtin types. |
| * config/s390/s390-builtins.h: Support new flags field for |
| overloaded builtins. |
| * config/s390/s390-c.c (OB_DEF_VAR): New flags field. |
| (s390_macro_to_expand): Enable vector float data type. |
| (s390_cpu_cpp_builtins_internal): Indicate support of the new |
| builtins by incrementing the __VEC__ version number. |
| (s390_expand_overloaded_builtin): Support expansion of vec_xl and |
| vec_xst. |
| (s390_resolve_overloaded_builtin): Emit error messages depending |
| on the builtin flags. |
| * config/s390/s390.c (s390_expand_builtin): Support additional |
| flags argument. Change error message to match the messages |
| emitted in s390-c.c. |
| * config/s390/s390.md: New UNSPEC_* constants. |
| (op_type): Add new instruction types. |
| * config/s390/vecintrin.h: Add new builtins and test data class |
| constants. |
| * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF. |
| (V_HW_4, VEC_HW, VECF_HW): New mode iterators. |
| (VEC_INEXACT, VEC_NOINEXACT): New constants. |
| ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>") |
| ("vec_insert_and_zero<mode>", "vec_mergeh<mode>") |
| ("vec_mergel<mode>"): V_HW -> VEC_HW. |
| |
| ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di") |
| ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly") |
| ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64") |
| ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition. |
| |
| ("and_av2df3", "and_cv2df3", "vec_andc_av2df3") |
| ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3") |
| ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs") |
| ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition. |
| |
| ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df") |
| ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df") |
| ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64") |
| ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly") |
| ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc") |
| ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc") |
| ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ... |
| |
| ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>") |
| ("vec_scatter_element<V_HW_4:mode>_DI") |
| ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb") |
| ("vec_fpint<mode>", "vflls") |
| ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc") |
| ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc") |
| ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc") |
| ("*vec_cmphe<mode>_cc"): ... these. |
| |
| ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding |
| mode constant instead of magic value. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_vec_compare): Support other |
| vector floating point modes than just V2DF. |
| (s390_expand_vcond): Likewise. |
| (s390_hard_regno_mode_ok): Allow SFmode values in VRs. |
| (s390_cannot_change_mode_class): Prevent mode changes between TF |
| and V1TF in vector registers. |
| * config/s390/s390.md (DF, SF): New mode attributes. |
| ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3") |
| ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add |
| SFmode support for VRs. |
| * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new |
| vector fp modes. |
| (VFT, VF_HW): New mode iterators. |
| (vw, sdx): New mode attributes. |
| ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2") |
| ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2") |
| ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc") |
| ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df") |
| ("vec_unorderedv2df"): Adjust the v2df only patterns to support |
| also the new vector floating point modes. Renaming to ... |
| |
| ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3") |
| ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2") |
| ("abs<mode>2", "negabs<mode>2", "smax<mode>3") |
| ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc") |
| ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>") |
| ("vec_unordered<mode>"): ... these. |
| |
| ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe") |
| ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf") |
| ("*vec_extendv2df"): New insn definitions. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3") |
| ("mulditi3_2", "*muldi3_sign"): New patterns. |
| ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and |
| rename the pattern definition. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("indirect_jump"): Turn insn definition into |
| expander. |
| ("*indirect_jump", "*indirect2_jump"): New pattern definitions. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_vec_init): Use vllezl |
| instruction if possible. |
| * config/s390/vector.md (vec_halfnumelts): New mode |
| attribute. |
| ("*vec_vllezlf<mode>"): New pattern. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2") |
| ("popcountv4si2", "popcountv2di2"): Rename to ... |
| ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx") |
| ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the |
| condition. |
| ("popcount<mode>2_vxe"): New pattern. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * common/config/s390/s390-common.c (processor_flags_table): Add |
| arch12. |
| * config.gcc: Add arch12. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): |
| Default to arch12 for unknown CPU model numbers. |
| * config/s390/s390-builtins.def: Add B_VXE builtin flag. |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust |
| PROCESSOR_max sanity check. |
| * config/s390/s390-opts.h (enum processor_type): Add |
| PROCESSOR_ARCH12. |
| * config/s390/s390.c (processor_table): Add arch12. |
| (s390_expand_builtin): Add check for B_VXE flag. |
| (s390_issue_rate): Add PROCESSOR_ARCH12. |
| (s390_get_sched_attrmask): Likewise. |
| (s390_get_unit_mask): Likewise. |
| (s390_sched_score): Enable z13 scheduling for arch12. |
| (s390_sched_reorder): Likewise. |
| (s390_sched_variable_issue): Likewise. |
| * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and |
| PF_VXE. |
| (s390_tune_attr): Use z13 scheduling also for arch12. |
| (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE) |
| (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE) |
| (TARGET_VXE_P): New macros. |
| * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12 |
| and vxe to cpu_facility. Add arch12 and vxe to enabled attribute. |
| * config/s390/s390.opt: Add arch12 as processor_type. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md |
| ("fixuns_truncdddi2", "fixuns_trunctddi2") |
| ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ... |
| ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander. |
| |
| ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"): |
| Rename expanders to ... |
| |
| ("fixuns_trunc<BFP:mode><GPR:mode>2_emu") |
| ("fixuns_truncdddi2_emu"): ... these. |
| |
| ("fixuns_trunc<mode>si2_emu"): New expander. |
| |
| ("*fixuns_truncdfdi2_z13"): Rename to ... |
| ("*fixuns_truncdfdi2_vx"): ... this. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/2964.md: Remove the single element vector compare |
| instructions which are no longer used. |
| * config/s390/s390.c (s390_select_ccmode): Remove handling of |
| vector CCmodes. |
| (s390_canonicalize_comparison): Remove handling of DFmode |
| compares. |
| (s390_expand_vec_compare_scalar): Remove function. |
| (s390_emit_compare): Don't call s390_expand_vec_compare_scalar. |
| * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove |
| pattern. |
| ("*cmp<mode>_ccs"): Add wfcdb instruction. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a |
| FP zero. |
| ("*mov<mode>_64" DD_DF): Remove the vector instructions. These |
| will anyway by matched by mov<mode>_64dfp. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to |
| vlef/vstef. Add missing operand to vleif. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_vec_init): Enable vector load |
| pair for all vector types with 64 bit elements. |
| * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ... |
| * config/s390/vector.md (V_HW_64): ... here. |
| (V_128_NOSINGLE): New mode iterator. |
| ("vec_init<V_HW:mode>"): Use V_128 as mode iterator. |
| ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator. |
| ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions. |
| ("*vec_load_pairv2di"): Change to ... |
| ("*vec_load_pair<mode>"): ... this one. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/constraints.md: Add comments. |
| (jKK): Reject element sizes > 8 bytes. |
| * config/s390/s390.c (s390_split_ok_p): Enable splitting also for |
| s_operands. |
| * config/s390/s390.md: Add the s_operand checks formerly in |
| s390_split_ok_p to various splitters where they are still |
| required. |
| * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives |
| for 128 bit vectors. Plus two splitters. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md: Rename the cpu facilty vec to vx throughout |
| the file. |
| |
| 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/79893 |
| * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an |
| error if the boundary argument is not constant. |
| |
| 2017-03-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/80112 |
| * loop-doloop.c (doloop_condition_get): Don't check condition |
| if cmp isn't SET with IF_THEN_ELSE src. |
| |
| 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/80158 |
| * gimple-ssa-strength-reduction.c (replace_mult_candidate): When |
| replacing a candidate statement, also replace it for the |
| candidate's alternate interpretation. |
| (replace_rhs_if_not_dup): Likewise. |
| (replace_one_candidate): Likewise. |
| |
| 2017-03-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80167 |
| * graphite-isl-ast-to-gimple.c |
| (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs |
| properly. |
| (translate_isl_ast_to_gimple::get_rename): Likewise. |
| |
| 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Change |
| handling of certain combinations of target options, including the |
| combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs. |
| -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector. |
| |
| 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/71436 |
| * config/arm/arm.md (*load_multiple): Add reload_completed to |
| matching condition. |
| |
| 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Richard Biener <rguenth@suse.de> |
| |
| PR tree-optimization/79908 |
| PR tree-optimization/80136 |
| * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has |
| been cast away, gimplify_and_add suffices. |
| |
| 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * tree-vrp.c (identify_jump_threads): Delete avail_exprs. |
| |
| 2017-03-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80032 |
| * gimplify.c (gimple_push_cleanup): Forced unconditional |
| cleanups still have to go to the conditional_cleanups |
| sequence. |
| |
| 2017-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/80072 |
| * tree-ssa-reassoc.c (struct operand_entry): Change id field type |
| to unsigned int. |
| (next_operand_entry_id): Change type to unsigned int. |
| (sort_by_operand_rank): Make sure to return the right return value |
| even if unsigned fields are bigger than INT_MAX. |
| (struct oecount): Change cnt and id type to unsigned int. |
| (oecount_hasher::equal): Formatting fix. |
| (oecount_cmp): Make sure to return the right return value |
| even if unsigned fields are bigger than INT_MAX. |
| (undistribute_ops_list): Change next_oecount_id type to unsigned int. |
| |
| PR c++/80129 |
| * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear |
| TREE_READONLY on result if writing it more than once. |
| |
| PR sanitizer/80110 |
| * doc/invoke.texi (-fsanitize=thread): Document that with |
| -fnon-call-exceptions atomics are not able to throw |
| exceptions. |
| |
| PR sanitizer/80110 |
| * tsan.c: Include tree-eh.h. |
| (instrument_builtin_call): Call maybe_clean_eh_stmt or |
| maybe_clean_or_replace_eh_stmt where needed. |
| (instrument_memory_accesses): Add cfg_changed argument. |
| Call gimple_purge_dead_eh_edges on each block and set *cfg_changed |
| if it returned true. |
| (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed. |
| |
| PR rtl-optimization/63191 |
| * config/i386/i386.c (ix86_delegitimize_address): Turn into small |
| wrapper function, moved the whole old content into ... |
| (ix86_delegitimize_address_1): ... this. New inline function. |
| (ix86_find_base_term): Use ix86_delegitimize_address_1 with |
| true as last argument instead of ix86_delegitimize_address. |
| |
| 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_branch_cost): Copy |
| cortexa57_branch_cost. |
| |
| 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_tunings): Add AES fusion. |
| |
| 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/80123 |
| * doc/md.texi (Constraints): Document wA constraint. |
| * config/rs6000/constraints.md (wA): New. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class. |
| (rs6000_init_hard_regno_mode_ok): Init wA constraint. |
| * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New. |
| * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint. |
| |
| 2017-03-22 Cesar Philippidis <cesar@codesourcery.com> |
| |
| PR c++/80029 |
| * gimplify.c (is_oacc_declared): New function. |
| (oacc_default_clause): Use it to set default flags for acc declared |
| variables inside parallel regions. |
| (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc |
| declared variables. |
| (gimplify_oacc_declare): Gimplify the declare clauses. Add the |
| declare attribute to any decl as necessary. |
| |
| 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| PR target/80082 |
| * config/arm/arm-isa.h (isa_bit_lpae): New feature bit. |
| (ISA_ARMv7ve): Add isa_bit_lpae to the definition. |
| * config/arm/arm-protos.h (arm_arch7ve): Rename into ... |
| (arm_arch_lpae): This. |
| * config/arm/arm.c (arm_arch7ve): Rename into ... |
| (arm_arch_lpae): This. Define it in term of isa_bit_lpae. |
| * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of |
| arm_arch_lpae. |
| |
| 2017-03-22 Martin Liska <mliska@suse.cz> |
| |
| PR target/79906 |
| * config/rs6000/rs6000.c (rs6000_inner_target_options): Show |
| error message instead of an ICE. |
| |
| 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * doc/extend.texi (6.11 Additional Floating Types): Revise. |
| |
| 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add |
| comments. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| comments. |
| |
| 2017-03-21 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi: Use "cannot" instead of "can't." |
| * doc/hostconfig.texi: Same. |
| * doc/install.texi: Same. |
| * doc/invoke.texi: Same. |
| * doc/loop.texi: Same. |
| * doc/md.texi: Same. |
| * doc/objc.texi: Same. |
| * doc/rtl.texi: Same. |
| * doc/tm.texi: Same. |
| * doc/tm.texi.in: Same. |
| * doc/trouble.texi: Same. |
| |
| 2017-03-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/63238 |
| * dwarf2out.c (struct checksum_attributes): Add at_alignment. |
| (collect_checksum_attributes): Set it. |
| (die_checksum_ordered): Use it. |
| |
| 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/79908 |
| * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following |
| change: For a VA_ARG whose LHS has been cast away, use |
| force_gimple_operand to construct the side effects. |
| |
| 2017-03-21 David Malcolm <dmalcolm@redhat.com> |
| |
| PR translation/80001 |
| * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics |
| more amenable to translation. |
| (oacc_loop_auto_partitions): Likewise. |
| |
| 2017-03-21 Marek Polacek <polacek@redhat.com> |
| Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/80109 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info |
| on INTEGRAL_TYPE_P. |
| |
| 2017-03-21 Jakub Jelinek <jakub@redhat.com> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/80125 |
| * combine.c (can_combine_p): Revert the 2017-03-20 change, only |
| check reg_used_between_p between insn and one of succ or succ2 |
| depending on if succ is artificial insn not inserted into insn |
| stream. |
| |
| 2017-03-21 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80081 |
| * Makefile.in: Add gcov-dump and fix installation of gcov-tool. |
| * doc/gcc.texi: Include gcov-dump stuff. |
| * doc/gcov-dump.texi: New file. |
| |
| 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com> |
| |
| PR rtl-optimization/79150 |
| * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the |
| conditional jump, if the jump is the last insn of the loop. |
| |
| 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| Richard Biener <rguenth@suse.de> |
| |
| PR tree-optimization/79908 |
| * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has |
| been cast away, use force_gimple_operand to construct the side |
| effects. |
| |
| 2017-03-21 Martin Liska <mliska@suse.cz> |
| |
| PR libfortran/79956 |
| * simplify-rtx.c (simplify_immed_subreg): Initialize a variable |
| to NULL. |
| |
| 2017-03-21 Brad Spengler <spender@grsecurity.net> |
| |
| PR plugins/80094 |
| * plugin.c (htab_hash_plugin): New function. |
| (add_new_plugin): Use it and adjust. |
| (parse_plugin_arg_opt): Adjust. |
| (init_one_plugin): Likewise. |
| |
| 2017-03-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80032 |
| * gimplify.c (gimple_push_cleanup): Add force_uncond parameter, |
| if set force the cleanup to happen unconditionally. |
| (gimplify_target_expr): Push inserted clobbers with force_uncond |
| to avoid them being removed by control-dependent DCE. |
| |
| 2017-03-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80122 |
| * tree-inline.c (copy_bb): Do not expans va-arg packs or |
| va_arg_pack_len when the inlined call stmt requires pack |
| expansion itself. |
| * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *. |
| |
| 2017-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/78158 |
| * tsan.c (instrument_builtin_call): If the memory model argument |
| is not a constant, assume it is valid. |
| |
| PR c/67338 |
| * fold-const.c (round_up_loc): Negate divisor in unsigned type to |
| avoid UB. |
| |
| 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/79910 |
| * combine.c (can_combine_p): Do not allow combining an I0 or I1 |
| if its dest is used by an insn before I2 (other than the combined |
| insns themselves, which are properly handled already). |
| |
| 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| Revert: |
| 2017-03-17 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * combine.c (record_used_regs): New static function. |
| (try_combine): Handle situations where there is an additional |
| instruction between I2 and I3 which needs to have a LOG_LINK |
| updated. |
| |
| Revert: |
| 2017-03-17 Jim Wilson <jim.wilson@linaro.org> |
| |
| * combine.c (try_combine): Delete redundant i1 test. Call |
| prev_nonnote_nondebug_insn instead of prev_nonnote_insn. |
| |
| 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/80083 |
| * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for |
| alternatives 13/14. |
| |
| 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR tree-optimization/80054 |
| * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail |
| the optimization if a PHI or any of its arguments is not dominated |
| by the candidate's basis. Use gphi* rather than gimple* as |
| appropriate. |
| (replace_profitable_candidates): Clean up a gimple* variable that |
| should be a gphi* variable. |
| |
| 2017-03-20 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/52477 |
| * doc/extend.texi (attribute constructor): Document present limitation. |
| |
| 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/79963 |
| * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and |
| __POWER9_VECTOR__ #ifdef control, change template definition to |
| use Power9-specific built-in function. |
| (vec_any_eq): Likewise. |
| * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used |
| to control outcomes from this test. |
| (vector_ae_<mode>p): For VEC_F modes, likewise. |
| |
| 2017-03-20 Ian Lance Taylor <iant@google.com> |
| |
| * config/i386/i386.c (ix86_function_regparm): Save an extra |
| register for -fsplit-stack with DECL_STATIC_CHAIN. |
| |
| 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| PR target/79912 |
| * config/riscv/riscv.c (riscv_preferred_reload_class): Remove. |
| (TARGET_PREFERRED_RELOAD_CLASS): Likewise. |
| |
| 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * config/riscv/riscv.c (riscv_print_operand): Use "fence |
| iorw,ow". |
| * config/riscv/sync.mc (mem_thread_fence_1): Use "fence |
| iorw,iorw". |
| |
| 2017-03-20 Marek Polacek <polacek@redhat.com> |
| |
| PR sanitizer/80063 |
| * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0). |
| |
| 2017-03-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80113 |
| * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not |
| allocate extra SSA name for PHI def. |
| (add_close_phis_to_outer_loops): Likewise. |
| (add_close_phis_to_merge_points): Likewise. |
| (copy_loop_close_phi_args): Likewise. |
| (copy_cond_phi_nodes): Likewise. |
| |
| 2017-03-20 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/79753 |
| * tree-chkp.c (chkp_build_returned_bound): Do not build |
| returned bounds for a LHS that's not a BOUNDED_P type. |
| |
| 2017-03-20 Martin Liska <mliska@suse.cz> |
| |
| PR target/79769 |
| PR target/79770 |
| * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST, |
| COMPLEX_CST and VECTOR_CST. |
| |
| 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| PR target/78857 |
| * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the |
| target operand. A new splitter adds the clobber statement in case |
| the target operand is dead anyway. |
| |
| 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer |
| to age-old versions of binutils and glibc. |
| |
| 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/contrib.texi (Contributors): Remove duplicate entry for myself. |
| |
| 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/contrib.texi (Contributors): Add Segher Boessenkool. |
| |
| 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <arm-*-eabi>: Remove old |
| requirement for binutils 2.13. |
| |
| 2017-03-17 Jim Wilson <jim.wilson@linaro.org> |
| |
| * combine.c (try_combine): Delete redundant i1 test. Call |
| prev_nonnote_nondebug_insn instead of prev_nonnote_insn. |
| |
| 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com |
| |
| * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf, |
| riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of |
| contents. |
| <riscv64-*-elf>: Re-arrange section |
| <riscv32-*-elf>: Add a note about requiring binutils 2.28. |
| <riscv32-*-linux>: Likewise. |
| <riscv64-*-elf>: Likewise |
| <riscv64-*-linux>: Likewise. |
| |
| 2017-03-17 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/80052 |
| * aarch64.opt(verbose-cost-dump): Fix typo. |
| |
| 2017-03-17 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/79951 |
| * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test |
| for VECTOR_UNIT_VSX_P (<MODE>mode) too. |
| |
| 2017-03-17 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * reload.c (find_reloads): When reloading a nonoffsettable address, |
| use RELOAD_OTHER for it and its address reloads. |
| |
| PR rtl-optimization/79910 |
| * combine.c (record_used_regs): New static function. |
| (try_combine): Handle situations where there is an additional |
| instruction between I2 and I3 which needs to have a LOG_LINK |
| updated. |
| |
| 2017-03-17 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/71437 |
| * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the |
| conditional in the hash table first. |
| (vrp_dom_walker::before_dom_children): Extract condition from |
| ASSERT_EXPR. Record condition, its inverion and any implied |
| conditions as well. |
| |
| 2017-03-17 Marek Polacek <polacek@redhat.com> |
| Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR tree-optimization/80079 |
| * gimple-ssa-store-merging.c (class pass_store_merging): Initialize |
| m_stores_head. |
| |
| 2017-03-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80075 |
| * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns. |
| Properly verify the LHS before the RHS possibly claims to be |
| handled. |
| (stmt_could_throw_p): Hande gimple conds fully here. Clobbers |
| do not throw. |
| |
| 2017-03-17 Martin Jambor <mjambor@suse.cz> |
| |
| * doc/invoke.texi (Option Options): Include -fipa-vrp in the list. |
| (List of -O2 options): Likewise. |
| (-fipa-bit-cp): Replace "ipa" with "interprocedural." |
| (-fipa-vrp) New. |
| |
| 2017-03-17 Tom de Vries <tom@codesourcery.com> |
| |
| * gcov-dump.c (print_usage): Print bug_report_url. |
| |
| 2017-03-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/80050 |
| * genmatch.c (parser::next): Remove pointless check for CPP_EOF. |
| (parser::peek): Likewise. |
| |
| 2017-03-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80048 |
| * sese.c (free_sese_info): Properly release rename_map and |
| copied_bb_map elements. |
| |
| 2017-03-16 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gimple-ssa-store-merging.c (struct imm_store_chain_info): |
| Add linked-list forward and backlinks. Insert on |
| construction, remove on destruction. |
| (class pass_store_merging): Add m_stores_head field. |
| (pass_store_merging::terminate_and_process_all_chains): |
| Iterate over m_stores_head list. |
| (pass_store_merging::terminate_all_aliasing_chains): |
| Likewise. |
| (pass_store_merging::execute): Check for debug stmts first. |
| Push new chains onto the m_stores_head stack. |
| |
| 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/71294 |
| * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a |
| SPLAT operation on ISA 2.07 64-bit systems that have direct move, |
| but no MTVSRDD support, by doing MTVSRD and XXPERMDI. |
| |
| 2017-03-16 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/71437 |
| * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge |
| member function. Implementation moved into after_dom_children |
| member function and into the threader's thread_outgoing_edges |
| function. |
| (dom_opt_dom_walker::after_dom_children): Simplify by moving |
| some code into new thread_outgoing_edges. |
| * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify |
| definition. Simplify marker handling (do it here). Assume we always |
| have the available expression and the const/copies tables. |
| (thread_outgoing_edges): New function extracted from tree-ssa-dom.c |
| and tree-vrp.c |
| * tree-ssa-threadedge.h (thread_outgoing_edges): Declare. |
| * tree-vrp.c (equiv_stack): No longer file scoped. |
| (vrp_dom_walker): New class. |
| (vrp_dom_walker::before_dom_children): New member function. |
| (vrp_dom_walker::after_dom_children): Likewise. |
| (identify_jump_threads): Setup domwalker. Use it rather than |
| walking edges in a random order by hand. Simplify setup/finalization. |
| (finalize_jump_threads): Remove. |
| (vrp_finalize): Do not call identify_jump_threads here. |
| (execute_vrp): Do it here instead and call thread_through_all_blocks |
| here too. |
| |
| PR tree-optimization/71437 |
| * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All |
| callers changed. |
| (simplify_stmt_for_jump_threading): Add basic_block argument. All |
| callers changed. |
| (lhs_of_dominating_assert): Moved from here into tree-vrp.c. |
| (dom_opt_dom_walker::thread_across_edge): Remove |
| handle_dominating_asserts argument. All callers changed. |
| (record_temporary_equivalences_from_stmts_at_dest): Corresponding |
| changes. Remove calls to lhs_of_dominating_assert. Other |
| uses of handle_dominating_asserts turn into unconditional code |
| (simplify_control_stmt_condition_1): Likewise. |
| (simplify_control_stmt_condition): Likewise. |
| (thread_through_normal_block, thread_across_edge): Likewise. |
| * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes. |
| * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original |
| object if it is not an SSA_NAME. |
| (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert |
| before calling into the VRP specific simplifiers. |
| (identify_jump_threads): Remove handle_dominating_asserts |
| argument. |
| |
| 2017-03-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/79886 |
| * tree-diagnostic.c (default_tree_printer): No longer static. |
| * tree-diagnostic.h (default_tree_printer): New prototype. |
| |
| 2017-03-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>) |
| Change ins into fmov. |
| |
| 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF. |
| * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>): |
| Use h_con constraint for operand 1. |
| (*aarch64_fnma4_elt_from_dup<mode>): Likewise. |
| (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2. |
| |
| 2017-03-15 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/71437 |
| * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function. |
| (record_temporary_equivalences): Use it. |
| |
| PR tree-optimization/71437 |
| * tree-ssa-dom.c (struct cond_equivalence): Moved from here into |
| tree-ssa-scopedtables. |
| (lookup_avail_expr, build_and_record_new_cond): Likewise. |
| (record_conditions, record_cond, vuse_eq): Likewise. |
| (record_edge_info): Adjust to API tweak of record_conditions. |
| (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr. |
| (record_temporary_equivalences, optimize_stmt): Likewise. |
| (eliminate_redundant_computations): Likewise. |
| (record_equivalences_from_stmt): Likewise. |
| * tree-ssa-scopedtables.c: Include options.h and params.h. |
| (vuse_eq): New function, moved from tree-ssa-dom.c |
| (build_and_record_new_cond): Likewise. |
| (record_conditions): Likewise. Accept vector of conditions rather |
| than edge_equivalence structure for first argument. |
| for the first argument. |
| (avail_exprs_stack::lookup_avail_expr): New member function, moved |
| from tree-ssa-dom.c. |
| (avail_exprs_stack::record_cond): Likewise. |
| * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here |
| from tree-ssa-dom.c. |
| (avail_exprs_stack): Add new member functions lookup_avail_expr |
| and record_cond. |
| (record_conditions): Declare. |
| |
| 2017-03-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/80017 |
| * lra-constraints.c (process_alt_operands): Increase reject for |
| reloading an input/output operand. |
| |
| 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79038 |
| * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define |
| insns to convert from signed/unsigned char/short to IEEE 128-bit |
| floating point. |
| (floatuns<QHI:mode><IEEE128:mode>2): Likewise. |
| |
| 2017-03-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/80019 |
| * config/i386/i386.c (ix86_vector_duplicate_value): Create |
| subreg of inner mode for values already in registers. |
| |
| 2017-03-15 Bernd Schmidt <bschmidt@redhat.com> |
| |
| * config/c6x/c6x.c (hwloop_optimize): Handle case where the old |
| iteration reg is used after the loop. |
| |
| 2017-03-14 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79800 |
| * gimple-ssa-sprintf.c (format_floating: Add argument. Handle |
| precision in negative-positive range. |
| (format_floating): Call non-const overload with adjusted precision. |
| |
| 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79947 |
| * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for |
| -mpowerpc-gfxopt. |
| |
| 2017-03-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/80020 |
| * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro. |
| * builtins.def (aligned_alloc): Use it. |
| |
| PR c/79936 |
| * Makefile.in (GTFILES): Add calls.c. |
| * calls.c: Include "gt-calls.h". |
| |
| 2017-03-14 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/79728 |
| * regs.h (struct target_regs): New field |
| x_contains_allocatable_regs_of_mode. |
| (contains_allocatable_regs_of_mode): New macro. |
| * reginfo.c (init_reg_sets_1): Initialize it, and change |
| contains_reg_of_mode so it includes global regs as well. |
| * reload.c (push_reload): Use contains_allocatable_regs_of_mode |
| rather than contains_regs_of_mode. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document options that can't be combined with |
| -fcheck-pointer-bounds. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/79831 |
| * doc/invoke.texi (-Wchkp): Document the option. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Install gcov-dump. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| * multiple_target.c (expand_target_clones): Bail out for |
| an invalid attribute. |
| |
| 2017-03-14 Richard Biener <rguenther@suse.de> |
| |
| * alias.c (struct alias_set_entry): Pack properly. |
| * cfgloop.h (struct loop): Likewise. |
| * cse.c (struct set): Likewise. |
| * ipa-utils.c (struct searchc_env): Likewise. |
| * loop-invariant.c (struct invariant): Likewise. |
| * lra-remat.c (struct cand): Likewise. |
| * recog.c (struct change_t): Likewise. |
| * rtl.h (struct address_info): Likewise. |
| * symbol-summary.h (function_summary): Likewise. |
| * tree-loop-distribution.c (struct partition): Likewise. |
| * tree-object-size.c (struct object_size_info): Likewise. |
| * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise. |
| * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise. |
| * tree-vect-data-refs.c (struct _vect_peel_info): Likewise. |
| * tree-vect-slp.c (struct _slp_oprnd_info): Likewise. |
| * tree-vect-stmts.c (struct simd_call_arg_info): Likewise. |
| * tree-vectorizer.h (struct _loop_vec_info): Likewise. |
| (struct _stmt_vec_info): Likewise. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| PR target/79892 |
| * multiple_target.c (create_dispatcher_calls): Check that |
| a target can create a function dispatcher. |
| |
| 2017-03-14 Martin Liska <mliska@suse.cz> |
| |
| PR lto/66295 |
| * multiple_target.c (expand_target_clones): Drop local.local |
| flag for default implementation. |
| |
| 2017-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/80030 |
| * tree-vect-stmts.c (vectorizable_store): Plug memleak. |
| |
| 2017-03-13 Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/riscv/riscv.c (riscv_emit_float_compare>: Use |
| gcc_fallthrough() instead of __attribute__((fallthrough)); |
| |
| 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/gcc.texi: Remove "up" link to (DIR). |
| * doc/gccint.texi: Ditto. |
| |
| 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <avr>: Remove reference to |
| binutils 2.13. |
| |
| 2017-03-13 Jeff Law <law@redhat.com> |
| |
| * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru |
| attribute rather than comments. |
| |
| * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to |
| match_scratch operand is highest. |
| |
| 2017-03-13 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/78339 |
| * ipa-pure-const.c (warn_function_noreturn): If the declarations |
| is a CHKP clone, use original declaration. |
| |
| 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_init): Use multiplier whenever we have it. |
| (arc_conditional_register_usage): Use a different allocation order |
| when optimizing for size. |
| * common/config/arc/arc-common.c (arc_option_optimization_table): |
| Section anchors default on when optimizing for size. |
| |
| 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (*tst_bitfield_tst): Fix pattern. |
| |
| 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_output_addsi): Emit code density adds. |
| * config/arc/arc.md (cpu_facility): Add cd variant. |
| (*movqi_insn): Add code density variant. |
| (*movhi_insn): Likewise. |
| (*movqi_insn): Likewise. |
| (*addsi3_mixed): Likewise. |
| (subsi3_insn): Likewise. |
| |
| 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (movsi_cond_exec): Update constraint. |
| |
| 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC |
| expressions with MINUS and UNARY ops. |
| |
| 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/79911 |
| * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): |
| Rename to... |
| (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch |
| between vec_select and vector argument. |
| (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to... |
| (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise. |
| (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to... |
| (vec_sel_widen_usum_lo<mode><V_half>3): ... This. |
| (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to... |
| (vec_sel_widen_usum_hi<mode><V_half>3): ... This. |
| |
| 2017-03-13 Richard Biener <rguenther@suse.de> |
| |
| PR other/79991 |
| * params.def (vect-max-peeling-for-alignment): Fix typo. |
| |
| 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <mips-*-*>: Remove description of |
| issue that only occurred with binutils below 2.18. |
| |
| 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <cris-axis-elf>: No longer |
| refer to binutils 2.11/2.12 minimum. |
| |
| 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific) <powerpc-*-*>: Remove link to |
| ftp.kernel.org and simplify binutils requirement. |
| |
| 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Warning Options): Fix spelling of link-time |
| optimization. |
| (Optimize Options): Ditto. Also remove redundancy. |
| |
| 2017-03-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR translation/79848 |
| * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to |
| "%qs". |
| * ipa-pure-const.c (suggest_attribute): Likewise. Convert _ |
| to G_ to avoid double translation. |
| |
| 2017-03-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR translation/79923 |
| * auto-profile.c (get_combined_location): Convert leading |
| character of diagnostics to lower case and remove trailing period. |
| (read_profile): Likewise for various diagnostics. |
| * config/arm/arm.c (arm_option_override): Remove trailing period |
| from various diagnostics. |
| * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise. |
| (msp430_expand_delay_cycles): Likewise. |
| |
| 2017-03-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR target/79925 |
| * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the |
| full command-line argument, rather than just "str". |
| (aarch64_validate_march): Likewise. |
| (aarch64_validate_mtune): Likewise. |
| |
| 2017-03-10 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78911 |
| * lra-assigns.c (must_not_spill_p): New function. |
| (spill_for): Use it. |
| |
| 2017-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79981 |
| * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of |
| ATOMIC_COMPARE_EXCHANGE ifn result. |
| (stmt_interesting_for_vrp, vrp_visit_stmt): Handle |
| IFN_ATOMIC_COMPARE_EXCHANGE. |
| |
| 2017-03-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR driver/79875 |
| * opts.c (parse_sanitizer_options): Add missing question mark to |
| "did you mean" message. |
| |
| 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned |
| built-in. |
| (VMULEUH_UNS): Likewise. |
| (VMULOUB_UNS): Likewise. |
| (VMULOUH_UNS): Likewise. |
| * config/rs6000/rs6000.c (builtin_function_type): Remove |
| references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS. |
| |
| 2017-03-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR bootstrap/79952 |
| * read-rtl-function.c (function_reader::read_rtx_operand): Update |
| x with result of extra_parsing_for_operand_code_0. |
| (function_reader::extra_parsing_for_operand_code_0): Convert |
| return type from void to rtx, returning x. When reading |
| SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the |
| larger size containing struct block_symbol. |
| |
| 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow |
| -mfloat128-hardware without -m64. |
| |
| 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com> |
| |
| PR target/79941 |
| * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB] |
| entries to the case statement that marks unsigned arguments to |
| overloaded functions. |
| |
| 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix |
| two typographic errors in the handling of TARGET_UPPER_REGS_DI. |
| |
| 2017-03-10 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/79907 |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test |
| TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass. |
| |
| 2017-03-10 Martin Liska <mliska@suse.cz> |
| |
| PR target/65705 |
| PR target/69804 |
| * toplev.c (process_options): Enable MPX with LSAN and UBSAN. |
| * tree-chkp.c (chkp_walk_pointer_assignments): Verify that |
| FIELD != NULL. |
| |
| 2017-03-10 Olivier Hainque <hainque@adacore.com> |
| |
| * tree-switch-conversion (array_value_type): Start by resetting |
| candidate type to it's main variant. |
| |
| 2017-03-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79909 |
| * combine.c (try_combine): Use simplify_replace_rtx on individual |
| CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx |
| of the whole CALL_INSN_FUNCTION_USAGE. |
| |
| PR tree-optimization/79972 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Only call |
| get_range_info on SSA_NAMEs. Formatting fixes. |
| |
| 2017-03-10 Richard Biener <rguenther@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/77975 |
| * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch |
| edge to be constant. |
| (get_val_for): For constant x return it. Formatting fix. |
| (loop_niter_by_eval): Avoid pointless looping if the next iteration |
| would use the same bases as the current one. |
| |
| 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate |
| instead of vec_select for V1TImode. |
| * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no |
| longer needed. |
| (VSX_LE_128): Add V1TI to this mode iterator. |
| (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator. |
| (*vsx_le_perm_store_<mode>): Likewise. |
| (pre-reload splitter for VSX stores): Likewise. |
| (post-reload splitter for VSX stores): Likewise. |
| (*vsx_xxpermdi2_le_<mode>): Likewise. |
| (*vsx_lxvd2x2_le_<mode>): Likewise. |
| (*vsx_stxvd2x2_le_<mode>): Likewise. |
| |
| 2017-03-09 Michael Eager <eager@eagercon.com> |
| |
| Correct failures with --enable-checking=yes,rtl. |
| |
| * config/microblaze/microblaze.c (microblaze_expand_shift): |
| Replace GET_CODE test with CONST_INT_P and INTVAL test with |
| test for const0_rtx. |
| * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone, |
| lshrsi3_byone): Replace INTVAL with test for const1_rtx. |
| |
| 2017-03-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79977 |
| * graphite-scop-detection.c (scop_detection::merge_sese): |
| Handle the case of extra exits to blocks dominating the entry. |
| |
| 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): |
| Document rdynamic. |
| |
| 2017-03-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/79949 |
| * lra-constraints.c (process_alt_operands): Check memory when |
| trying to predict a cycle. Print about the overall increase. |
| |
| 2017-03-09 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79971 |
| * gimple-expr.c (useless_type_conversion_p): Preserve |
| TYPE_SATURATING for fixed-point types. |
| |
| 2017-03-09 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/79970 |
| * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing |
| alignment of BLKmode params. |
| |
| 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/79913 |
| * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator. |
| (VALL_NO_V2Q): Likewise. |
| (VDQF_DF): Delete. |
| * config/aarch64/aarch64-simd.md |
| (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q |
| iterator. |
| (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use |
| VALL_NO_V2Q mode iterator. |
| (*aarch64_vgetfmulx<mode>): Use VDQF iterator. |
| |
| 2017-03-09 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79631 |
| * tree-chkp-opt.c (chkp_is_constant_addr): Call |
| tree_int_cst_sign_bit just for INTEGER constants. |
| |
| 2017-03-09 Martin Liska <mliska@suse.cz> |
| |
| PR target/65705 |
| PR target/69804 |
| * toplev.c (process_options): Disable -fcheck-pointer-bounds with |
| sanitizers. |
| |
| 2017-03-09 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/79672 |
| * tree.c (inchash::add_expr): Handle TREE_VEC. |
| |
| 2017-03-09 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79764 |
| (chkp_narrow_size_and_offset): New function. |
| (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF. |
| (void chkp_parse_bit_field_ref): New function. |
| (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF. |
| (chkp_process_stmt): Use chkp_parse_bit_field_ref. |
| |
| 2017-03-09 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79761 |
| * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param. |
| (chkp_find_bounds_1): Remove gcc_unreachable. |
| |
| 2017-03-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/79944 |
| * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and |
| BUILT_IN_SYNC*, determine the access type from the size suffix and |
| always build a MEM_REF with that type. Handle forgotten |
| BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16. |
| |
| PR target/79932 |
| * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask, |
| _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask, |
| _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask, |
| _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask, |
| _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask, |
| _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask, |
| _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask, |
| _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask, |
| _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask, |
| _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask, |
| _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask, |
| _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask, |
| _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask, |
| _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask, |
| _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask, |
| _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask, |
| _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask, |
| _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask, |
| _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask, |
| _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask, |
| _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask, |
| _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask, |
| _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask, |
| _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask, |
| _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask, |
| _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask, |
| _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask, |
| _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask, |
| _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask, |
| _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move |
| definitions outside of __OPTIMIZE__ guarded section. |
| |
| PR target/79932 |
| * config/i386/avx512bwintrin.h (_mm512_packs_epi32, |
| _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32, |
| _mm512_packus_epi32, _mm512_maskz_packus_epi32, |
| _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__ |
| guarded section. |
| |
| 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>") |
| ("vfenez<mode>"): Add missing constraints. |
| |
| 2017-03-08 Martin Sebor <msebor@redhat.com> |
| |
| PR target/79928 |
| * config/nds32/nds32.c (nds32_option_override): |
| Fix misspelled diagnostic. |
| |
| 2017-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/79940 |
| * gimplify.c (gimplify_omp_for): Replace index var in outer |
| taskloop statement with an artificial variable and add |
| OMP_CLAUSE_PRIVATE clause for it. |
| |
| 2017-03-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79955 |
| * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn |
| for accesses that are completely outside of the variable. |
| |
| 2017-03-08 Andrew Haley <aph@redhat.com> |
| |
| PR tree-optimization/79943 |
| * tree-ssa-loop-split.c (compute_new_first_bound): When |
| calculating the new upper bound, (END-BEG) should be added, not |
| subtracted. |
| |
| 2017-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/avr/avr.md (setmemhi): Make sure match_dup |
| operand number comes before match_scratch. |
| |
| 2017-03-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79920 |
| * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline |
| with ncopies == 1 to ... |
| (vect_transform_slp_perm_load): ... here. Properly compute |
| all element loads by iterating VF times over the group. Do |
| not handle ncopies (computed in a broken way) in |
| vect_create_mask_and_perm. |
| |
| 2017-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/79904 |
| * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1 |
| is a uniform vector, use uniform_vector_p return value instead of |
| building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type. |
| |
| 2017-03-07 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/79809 |
| * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT. |
| (alloca_call_type): Likewise. |
| |
| 2017-03-07 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (process_args): Put comment to correct location. |
| |
| 2017-03-07 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/68270 |
| * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref. |
| Use array_at_struct_end_p instead of DECL_CHAIN (field). |
| (chkp_narrow_bounds_for_field): Likewise. |
| (chkp_parse_array_and_component_ref): Pass one more argument to |
| call. |
| |
| 2017-03-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve |
| preheaders. |
| |
| 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/i386/i386.c (ix86_local_alignment): Align most aggregates |
| of 16 bytes and more to 16 bytes, not those of 16 bits and more. |
| |
| 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR c/79855 |
| * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop |
| to end of description. |
| (PARAM_MAX_STORES_TO_MERGE): Likewise. |
| |
| 2017-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79901 |
| * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to |
| ... |
| (*avx512f_<code><mode>3<mask_name>): ... this. |
| (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F |
| iterator instead of VI8_AVX2_AVX512BW. |
| |
| PR rtl-optimization/79901 |
| * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no |
| min/max expander, expand it using expand_vec_cond_expr. |
| |
| PR sanitizer/79897 |
| * ubsan.c (ubsan_encode_value): Call mark_addressable on the |
| temporary. |
| |
| 2017-03-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/79821 |
| * dwarf2out.h (dw_vec_const): Change array type from unsigned char * |
| to void * for PCH reasons. |
| * dwarf2out.c (output_loc_operands, output_die): Cast |
| v.val_vec.array to unsigned char *. |
| |
| 2017-03-06 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/77850 |
| * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and |
| vector types. |
| |
| 2017-03-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/79571 |
| * lra-constraints.c (process_alt_operands): Calculate static |
| reject and subtract it from overall when only addresses will be |
| reloaded. |
| |
| 2017-03-06 Julia Koval <julia.koval@intel.com> |
| |
| PR target/79793 |
| * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set |
| incoming stack boundary to 128 for 64-bit targets. |
| |
| 2017-03-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79894 |
| * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call |
| to NULL after folding it. |
| |
| 2017-03-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79824 |
| * tree-vect-stmts.c (get_group_load_store_type): Fix alignment |
| check disabling peeling for gaps. |
| |
| 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Environment |
| attributes): Document gettimeofday. |
| |
| 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_option_override_internal): Set |
| PARAM_MIN_VECT_LOOP_BOUND |
| |
| 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0. |
| * config/s390/s390.md: Likewise. |
| |
| 2017-03-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79812 |
| * config/i386/sse.md (VI8F_256_512): Remove mode iterator. |
| (<avx2_avx512>_perm<mode>): Rename to ... |
| (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead |
| of VI8F_256_512. |
| (<avx512>_perm<mode>_mask): Rename to ... |
| (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead |
| of VI8F_256_512. |
| (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ... |
| (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator |
| instead of VI8F_256_512. |
| (avx512f_perm<mode>): New define_expand. |
| (avx512f_perm<mode>_mask): Likewise. |
| (avx512f_perm<mode>_1<mask_name>): New define_insn. |
| (<avx512>_vec_dup<mode>_1): Fix up vec_select mode. |
| |
| 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> |
| |
| * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>, |
| msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for |
| if_then_else. |
| (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'. |
| |
| 2017-03-06 Martin Liska <mliska@suse.cz> |
| |
| PR sanitize/79783 |
| * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON |
| when having a SSA NAME w/o VAR_DECL assigned to it. |
| |
| 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> |
| |
| * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d, |
| msa_dpsub_<su>_d): Fix MODE for vec_select. |
| |
| 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> |
| |
| * config/mips/mips.c (mips_gen_const_int_vector): Change type of last |
| argument. |
| * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise. |
| |
| 2017-03-06 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer.c (lto_check_version): Use %qs in diagnostics. |
| * plugin.c (register_plugin_info): Likewise. |
| * tree-chkp.c (chkp_make_static_const_bounds): Likewise. |
| |
| 2017-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (sse_storehps, sse_storelps, |
| avx_<castmode><avxsizesuffix>_<castmode>, |
| avx512f_<castmode><avxsizesuffix>_<castmode>, |
| avx512f_<castmode><avxsizesuffix>_256<castmode>): Require |
| in condition that at least one operand is not a MEM. |
| |
| 2017-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79805 |
| * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET, |
| ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove |
| ECF_NOTHROW. |
| * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set |
| gimple_call_nothrow_p flag based on whether original builtin can throw. |
| If it can, emit following stmts on the fallthrough edge. |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except |
| don't create new bb if inserting just debug stmts on the edge, try to |
| insert them on the fallthru bb or just reset debug stmts. |
| |
| 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org> |
| |
| PR target/43763 |
| * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and |
| restore recog_data (including the operand rtxes inside it) around |
| the call to get_insn_template. |
| |
| 2017-03-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79699 |
| * context.c (context::~context): Free MPFR caches to avoid |
| a memory leak on program exit. |
| |
| 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_float_const_representable_p): |
| Use wide_int::ulow () instead of .elt (0). |
| |
| 2017-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*pushtf): Change *roF constraint to *roC. |
| (*pushxf): Limit oF constraint to 32bit targets and add oC |
| constraint for 64bit targets. |
| (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment. |
| (*pushdf): Change rmF constraint to rmC. |
| |
| 2017-03-03 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute): |
| Remove unused variable. |
| |
| 2017-03-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79807 |
| * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target |
| is a memory operand, increase num_memory. |
| (ix86_expand_args_builtin): Likewise. |
| |
| 2017-03-03 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/79760 |
| * ipa-devirt.c (maybe_record_node): Properly handle |
| __cxa_pure_virtual visibility. |
| |
| 2017-03-03 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79803 |
| * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove |
| assert. |
| (pass_loop_prefetch::execute): Disabled optimization if an |
| assumption about L1 cache size is not met. |
| |
| 2017-03-03 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/79574 |
| * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int. |
| (hash_scan_set): Likewise. |
| (dump_hash_table): Likewise. |
| (hoist_code): Likewise. |
| |
| 2017-03-03 Richard Biener <rguenther@suse.de> |
| |
| * fixed-value.c (fixed_from_string): Restore use of elt (1) |
| in place of uhigh (). |
| (fixed_convert_from_real): Likewise. |
| |
| 2017-03-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79514 |
| * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode. |
| |
| 2017-03-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79818 |
| * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing |
| TYPE_OVERFLOW_UNDEFINED check. |
| |
| 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand |
| numbers. |
| (vector_ae_<mode>_p): Likewise. |
| (vector_nez_<mode>_p): Likewise. |
| (vector_ne_v2di_p): Likewise. |
| (vector_ae_v2di_p): Likewise. |
| (vector_ne_<mode>_p): Likewise. |
| * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand |
| numbers. |
| (vsx_tsqrt<mode>2_fe): Likewise. |
| |
| 2017-03-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79514 |
| * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. |
| |
| 2017-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79780 |
| * cprop.c (one_cprop_pass): When second and further conditional trap |
| in a single basic block is turned into an unconditional trap, turn it |
| into a deleted note to avoid RTL verification failures. |
| |
| 2017-03-02 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.c (const_binop): Use ulow () instead of elt (0). |
| |
| 2017-03-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79345 |
| PR c++/42000 |
| * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit |
| param and abort the walk, returning -1 if it is hit. |
| (walk_aliased_vdefs): Take a limit param and pass it on. |
| * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param, |
| defaulting to 0 and return a signed int. |
| * tree-ssa-uninit.c (struct check_defs_data): New struct. |
| (check_defs): New helper. |
| (warn_uninitialized_vars): Use walk_aliased_vdefs to warn |
| about uninitialized memory. |
| * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid |
| bogus uninitialized warning. |
| (fixed_convert_from_real): Likewise. |
| |
| 2017-03-02 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/66768 |
| * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr |
| iv_use if base object can't be determined. |
| |
| 2017-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79345 |
| * gensupport.h (struct pattern_stats): Add min_scratch_opno field. |
| * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it. |
| (get_pattern_stats): Initialize it. |
| * genemit.c (gen_expand): Verify match_scratch numbers come after |
| match_operand/match_dup numbers. |
| * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and |
| match_scratch numbers. |
| * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>): |
| Likewise. |
| * config/s390/s390.md (trunctdsd2): Likewise. |
| |
| 2017-03-02 Richard Biener <rguenther@suse.de> |
| |
| * wide-int.h (wide_int_storage::operator=): Implement in terms |
| of wi::copy. |
| |
| 2017-03-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79777 |
| * tree-ssa-pre.c (eliminate_insert): Give up if we simplify |
| the to insert expression to sth existing. |
| |
| 2017-03-01 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/79692 |
| * gimple-ssa-sprintf.c |
| (directive::known_width_and_precision): New function. |
| (format_integer): Use it. |
| (get_mpfr_format_length): Consider the full range of precision |
| when computing %g output with the # flag. Set the likely byte |
| count to 3 rather than 1 when precision is indeterminate. |
| (format_floating): Correct the lower bound of precision. |
| |
| 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * doc/invoke.texi: Document default code model for 64-bit Linux. |
| |
| 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/79752 |
| * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit |
| udiv rather than div since input pattern is unsigned. |
| |
| 2017-03-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (print_reg): Warn for values of |
| unsupported size in integer register. |
| |
| 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79439 |
| * config/rs6000/predicates.md (current_file_function_operand): Do |
| not allow self calls to be local if the function is replaceable. |
| |
| 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/79395 |
| * config/rs6000/altivec.h (vec_ctz and others): Change the |
| preprocessor macro that controls conditional compilation from |
| _ARCH_PWR9 to __POWER9_VECTOR__. |
| (vec_all_ne): Change parameterization of __altivec_scalar_pred |
| macro expansion under preprocessor #ifdef __POWER9_VECTOR__ |
| control (instead of _ARCH_PWR9 control) so that template |
| definition uses power9-specific function. |
| (vec_any_eq): Likewise. |
| (vec_all_ne): Change macro definition to use a power9-specific |
| expansion under #ifdef __POWER9_VECTOR__ control (instead of |
| _ARCH_PWR9 control). |
| (vec_any_eq) Likewise. |
| * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2 |
| expansion for CMPNEF to remove support for xvcmpnesp instruction. |
| (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove |
| support for xvcmpnedp instruction. |
| (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2 |
| macro expansion so that Power9 implementation of vec_all_ne does |
| not use the AltiVec predicate framework. |
| (VCMPNEH_P): Likewise. |
| (VCMPNEW_P): Likewise. |
| (VCMPNED_P): Likewise. |
| (VCMPNEFP_P): Likewise. |
| (VCMPNEDP_P): Likewise. |
| (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change |
| implementation of vec_any_eq to not use AltiVec predicate |
| framework. |
| (VCMPAEH_P): Likewise. |
| (VCMPAEW_P): Likewise. |
| (VCMPAED_P): Likewise. |
| (VCMPAEFP_P): Likewise. |
| (VCMPAEDP_P): Likewise. |
| (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with |
| BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does |
| not use the AltiVec predicate framework. |
| (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation |
| of vec_any_eq to not use AltiVec predicate framework. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add |
| support for predefined __POWER9_VECTOR__ macro to indicate that |
| Power9 instruction selection is enabled. |
| (altivec_overloaded_builtins): Remove extraneous |
| ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded |
| function argument types RS6000_BTI_bool_V16QI and |
| RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE |
| entry for overloaded function argument types RS6000_BTI_bool_V4SI |
| andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove |
| two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to |
| P9V_BUILTIN_CMPNEF to force use of instructions not specific to |
| Power9 for implementations of vec_cmpne. Change the signature for |
| all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function |
| (representing vec_all_ne) to remove the previously described first |
| argument of type RS6000_BTI_INTSI, as this was an artifact of |
| reliance on the AltiVec predicate framework, which is no longer |
| used in the implementation of these functions. Add |
| P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq |
| function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries |
| since, unlike the AltiVec predicate framework implementation, we |
| do not share function descriptors between vec_alle and vec_anyeq. |
| (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the |
| set of modes that receive special treatment even when |
| TARGET_P9_VECTOR is true. The special treatment emits code that |
| does not depend on Power9 instructions. |
| * config/rs6000/vector.md (vector_ne_<mode>_p): Change this |
| define_expand to not rely on AltiVec predicate framework. |
| (vector_ae_<mode>p): New define_expand to represent vec_any_eq |
| function. |
| (vector_ne_v2di_p): Change this define_expand to not rely on |
| AltiVec predicate framework. |
| (vector_ae_v2di_p): New define_expand to represent vec_any_eq |
| function. |
| (vector_ne_<mode>_p): Change this define_expand to not rely on |
| AltiVec predicate framework. |
| (vector_ae_<mode>p): New define_expand to represent vec_any_eq |
| function. |
| * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I |
| (V16QI, V8HI, V4SI), correct a typo in the code emitted for this |
| define_insn pattern. |
| (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this |
| define_insn pattern because the xvcmpne<VSs>. instruction is not |
| supported. |
| (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs> |
| instruction is not supported. |
| |
| 2017-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/nvptx/nvptx.c: Include intl.h. |
| |
| 2017-03-01 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/78140 |
| * ipa-prop.h (ipa_bits): Removed field known. |
| (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr |
| to pointers. Adjusted their comments to warn about their sharing. |
| (ipcp_transformation_summary): Change bits to a vector of pointers. |
| (ipa_check_create_edge_args): Moved to ipa-prop.c, declare. |
| (ipa_get_ipa_bits_for_value): Declare. |
| * tree-vrp.h (value_range): Mark as GTY((for_user)). |
| * ipa-prop.c (ipa_bit_ggc_hash_traits): New. |
| (ipa_bits_hash_table): Likewise. |
| (ipa_vr_ggc_hash_traits): Likewise. |
| (ipa_vr_hash_table): Likewise. |
| (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr |
| being pointers and vr_known being removed. |
| (ipa_set_jf_unknown): Likewise. |
| (ipa_get_ipa_bits_for_value): New function. |
| (ipa_set_jfunc_bits): Likewise. |
| (ipa_get_value_range): New overloaded functions. |
| (ipa_set_jfunc_vr): Likewise. |
| (ipa_compute_jump_functions_for_edge): Use the above functions to |
| construct bits and vr parts of jump functions. |
| (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate |
| ipa_bits_hash_table and ipa_vr_hash_table if they do not already |
| exist. |
| (ipcp_grow_transformations_if_necessary): Also allocate |
| ipa_bits_hash_table and ipa_vr_hash_table if they do not already |
| exist. |
| (ipa_node_params_t::duplicate): Do not copy bits, just pointers to |
| them. Fix too long lines. |
| (ipa_write_jump_function): Adjust for bits and m_vr being pointers and |
| vr_known being removed. |
| (ipa_read_jump_function): Use new setter functions to construct bits |
| and vr parts of jump functions or set them to NULL. |
| (write_ipcp_transformation_info): Adjust for bits being pointers. |
| (read_ipcp_transformation_info): Likewise. |
| (ipcp_update_bits): Likewise. Fix excessively long lines a trailing |
| space. |
| Include gt-ipa-prop.h. |
| * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits |
| being pointers. |
| (ipcp_store_bits_results): Likewise. |
| (propagate_vr_across_jump_function): Adjust for m_vr being a pointer. |
| Do not write to existing jump functions but use a temporary instead. |
| |
| 2017-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/79681 |
| * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF, |
| attempt to use its first operand as BIT_FIELD_REF base. |
| |
| 2017-03-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79721 |
| * tree-chrec.c (chrec_evaluate): Perform computation of Newtons |
| interpolating formula in wrapping arithmetic. |
| (chrec_apply): Convert chrec_evaluate return value to wanted type. |
| |
| 2017-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79734 |
| * tree-vect-generic.c (expand_vector_condition): Optimize |
| AVX512 vector boolean VEC_COND_EXPRs into bitwise operations. |
| Handle VEC_COND_EXPR where comparison has different inner width from |
| type's inner width. |
| |
| 2017-02-28 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation, |
| markup, and similar issues. Remove @opindex entries for things |
| that aren't options. Add missing -mmpy-option entries. |
| |
| 2017-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79737 |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is |
| a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear |
| tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1 |
| instead of byte_size. Formatting fix. |
| (shift_bytes_in_array_right): Formatting fix. |
| |
| 2017-02-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/79749 |
| * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing |
| condition on optimize for the leaf function test. |
| |
| 2017-02-28 Martin Liska <mliska@suse.cz> |
| |
| PR lto/79625 |
| * read-rtl-function.c (function_reader::handle_unknown_directive): |
| Bail out when one uses -flto. |
| |
| 2017-02-28 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Replace space with tabular for options of <number> |
| type. |
| * config/i386/i386.opt: Show <number> value for |
| -mlarge-data-threshold. |
| * opts.c (print_filtered_help): Do not display number in hexadecimal |
| format. |
| |
| 2017-02-28 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Fix --help=option -Q for options which are of |
| an enum type. |
| |
| 2017-02-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (print_reg): Error out for values |
| of 8-bit size in invalid integer register. |
| |
| 2017-02-28 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79691 |
| * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length. |
| |
| 2017-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79729 |
| * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace |
| gcc_unreachable with output_operand_lossage. |
| |
| 2017-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79740 |
| * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant |
| inserts. |
| (visit_nary_op): Insert the nary into the hashtable if we |
| pattern-matched sth. |
| * tree-ssa-pre.c (eliminate_insert): Robustify. |
| |
| 2017-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79731 |
| * fold-const.c (decode_field_reference): Reject out-of-bound |
| accesses. |
| |
| 2017-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c: Include intl.h. |
| (ix86_option_override_internal): Use cond ? G_("...") : G_("...") |
| instead of just cond ? "..." : "...". |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise. |
| * coverage.c (read_counts_file): Likewise. |
| * omp-offload.c: Include intl.h. |
| (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead |
| of just cond ? "..." : "...". |
| * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead |
| of just cond ? "..." : "...". |
| |
| 2017-02-28 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/79742 |
| * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for' |
| entry, if present. |
| * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct |
| 'tune for' CPU name. |
| * config/arm/arm-cpu-data.h: Regenerated. |
| |
| 2017-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79732 |
| * tree-inline.c (expand_call_inline): Do not shadow var. |
| |
| 2017-02-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79723 |
| * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve |
| address-space properly. |
| |
| 2017-02-28 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * doc/optinfo.texi (Optimization groups): Fix option used for |
| OPTGROUP_ALL. |
| * doc/invoke.texi (-fopt-info): Document "omp". |
| * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC. |
| (OPTGROUP_ALL): Add OPTGROUP_OMP. |
| * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP. |
| * ipa-hsa.c (pass_data_ipa_hsa): Likewise. |
| * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise. |
| |
| * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust |
| all users. |
| * dumpfile.c (optgroup_options): Instead of "openmp", associate |
| OPTGROUP_OMP with "omp". |
| |
| 2017-02-27 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/79544 |
| * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD |
| for arithmetic shift of unsigned V2DI. |
| |
| 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and |
| arc/linux.h headers. |
| * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove. |
| (LINK_SPEC): Likewise. |
| (ARC_TLS_EXTRA_START_SPEC): Likewise. |
| (EXTRA_SPECS): Likewise. |
| (STARTFILE_SPEC): Likewise. |
| (ENDFILE_SPEC): Likewise. |
| (LIB_SPEC): Likewise. |
| (TARGET_SDATA_DEFAULT): Likewise. |
| (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise. |
| (MULTILIB_DEFAULTS): Likewise. |
| (DWARF2_UNWIND_INFO): Likewise. |
| * config/arc/big.h: New file. |
| * config/arc/elf.h: Likewise. |
| * config/arc/linux.h: Likewise. |
| * config/arc/t-uClibc: Remove. |
| |
| 2017-02-27 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/77536 |
| * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function. |
| (tree_transform_and_unroll_loop): Use above function to compute the |
| estimated niter of unrolled loop and use it when scaling profile. |
| Also use count info rather than frequency if it's non-zero. |
| * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration. |
| * tree-vect-loop.c (scale_profile_for_vect_loop): New function. |
| (vect_transform_loop): Call above function. |
| |
| 2017-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/45397 |
| * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR. |
| * tree-ssa-sccvn.c (valueized_wider_op): New helper. |
| (visit_nary_op): Add pattern matching for CSEing sign-changed |
| or truncated operations with wider ones. |
| |
| 2017-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79690 |
| * tree-vect-stmts.c (vectorizable_store): Use vector type |
| built from the DR with address-space. |
| |
| 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Optimize Options): Refine the description |
| of asan-use-after-return. |
| |
| 2017-02-25 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/79584 |
| * lra-constraints.c (base_to_reg): Reload ad->base, the entire |
| base, not ad->base_term, the reg within base. Remove assertion |
| that ad->base == ad->base_term. Replace gen_int_mode using |
| bogus mode with const0_rtx. |
| |
| 2017-02-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79396 |
| * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle |
| FMA_EXPR like tcc_binary or tcc_unary. |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning. |
| |
| PR debug/77589 |
| * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value |
| bitfield. |
| (size_of_loc_descr): Handle DW_OP_GNU_variable_value. |
| (output_loc_operands): Handle DW_OP_call_ref and |
| DW_OP_GNU_variable_value. |
| (struct variable_value_struct): New type. |
| (struct variable_value_hasher): Likewise. |
| (variable_value_hash): New variable. |
| (string_types): Remove. |
| (copy_loc_descr): New function. |
| (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr. |
| (prepend_loc_descr_to_each): New function. |
| (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each |
| instead of add_loc_descr_to_each if the first argument is single |
| location list and the second has multiple. |
| (resolve_args_picking_1): Handle DW_OP_GNU_variable_value. |
| (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value |
| when looking for variable value which doesn't have other location info. |
| (loc_list_from_tree): Formatting fix. |
| (gen_array_type_die): Simplify DW_AT_string_length handling. |
| (adjust_string_types): Remove. |
| (gen_subprogram_die): Don't call adjust_string_types nor test/set |
| string_types. Call resolve_variable_values. |
| (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value. |
| (resolve_addr_in_expr): Likewise. Add A argument. |
| (copy_deref_exprloc): Remove deref argument. Adjust for the |
| original expression being DW_OP_GNU_variable_value with optionally |
| DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref |
| optionally after it. |
| (optimize_string_length): Rework for DW_OP_GNU_variable_value. |
| (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr |
| callers. Set remove_AT_byte_size if removing DW_AT_string_length. |
| (variable_value_hasher::hash, variable_value_hasher::equal): New |
| methods. |
| (resolve_variable_value_in_expr, resolve_variable_value, |
| resolve_variable_values, note_variable_value_in_expr, |
| note_variable_value): New functions. |
| (dwarf2out_early_finish): Call note_variable_value on all toplevel |
| DIEs. |
| |
| 2017-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/79677 |
| * opts.h (handle_generated_option): Add GENERATED_P argument. |
| * opts-common.c (handle_option): Adjust function comment. |
| (handle_generated_option): Add GENERATED_P argument, pass it to |
| handle_option. |
| (control_warning_option): Pass false to handle_generated_option |
| GENERATED_P. |
| * opts.c (maybe_default_option): Pass true to handle_generated_option |
| GENERATED_P. |
| * optc-gen.awk: Likewise. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of |
| a REG, look at the REG it is a SUBREG of. |
| (splitter for cmpeqsi_t): Ditto. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make |
| the special USEs with the pattern of the insn, not the insn itself. |
| |
| 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/79473 |
| * doc/invoke.texi: Document -mload-store-pairs. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the |
| argument isn't a CONST_INT. |
| (nios2_alternate_compare_const): Assert op is a CONST_INT. |
| (nios2_valid_compare_const_p): Assert op is a CONST_INT. |
| (nios2_validate_compare): Bypass alternate compare logic if *op2 |
| is not a CONST_INT. |
| (ldstwm_operation_p): Return false if first_base is not a REG or |
| if first_offset is not a CONST_INT. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/cris/cris.md: Use correct operand in a define_peephole2. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. |
| |
| 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of |
| this_insn if it is an INSN or JUMP_INSN. |
| (force_offsettable): Look at base, not at addr. |
| * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL |
| on things that aren't necessarily CONST_INTs. |
| |
| 2017-02-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that |
| -mfpmath=sse is the default also for x86-32 targets with SSE2 |
| instruction set when @option{-ffast-math} is enabled |
| |
| 2017-02-24 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimizatoin/79286 |
| * ira.c (update_equiv_regs): Drop may_trap_p exception to |
| dominance test. |
| |
| 2017-02-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79389 |
| * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip |
| debug insns. |
| |
| 2017-02-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_exit): Update |
| function comment to reflect reality. |
| (loop_exits_before_overflow): Fix typo in function description. |
| |
| 2017-02-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79389 |
| * gimple-ssa-split-paths.c (is_feasible_trace): Verify more |
| properly that a threading opportunity exists. Detect conditional |
| copy/constant propagation opportunities. |
| |
| 2017-02-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/visium/visium.md (type): Add trap. |
| (b): New mode attribute. |
| (*btst): Rename into... |
| (*btst<mode>): ...this and adjust. |
| (*cbranchsi4_btst_insn): Rename into... |
| (*cbranch<mode>4_btst_insn): ...this and adjust. |
| (trap): New define_insn. |
| |
| 2017-02-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79389 |
| * ifcvt.c (struct noce_if_info): Add rev_cond field. |
| (noce_reversed_cond_code): New function. |
| (noce_emit_store_flag): Use rev_cond if non-NULL instead of |
| reversed_comparison_code. Formatting fix. |
| (noce_try_store_flag): Test rev_cond != NULL in addition to |
| reversed_comparison_code. |
| (noce_try_store_flag_constants): Likewise. |
| (noce_try_store_flag_mask): Likewise. |
| (noce_try_addcc): Use rev_cond if non-NULL instead of |
| reversed_comparison_code. |
| (noce_try_cmove_arith): Likewise. Formatting fixes. |
| (noce_try_minmax, noce_try_abs): Clear rev_cond. |
| (noce_find_if_block): Initialize rev_cond. |
| (find_cond_trap): Call noce_get_condition with then_bb == trap_bb |
| instead of false as last argument never attempt to reverse it |
| afterwards. |
| |
| 2017-02-23 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/79663 |
| * tree-predcom.c (combine_chains): Process refs in reverse order |
| only for ZERO length chains, and add explaining comment. |
| |
| 2017-02-23 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/79578 |
| * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF |
| in call to operand_equal_p. |
| |
| 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| PR target/71017 |
| * config/i386/cpuid.h: Fix another undefined behavior. |
| |
| 2017-02-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79683 |
| * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite |
| vector types for data-refs. |
| |
| 2017-02-23 Martin Liska <mliska@suse.cz> |
| |
| * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0. |
| |
| 2017-02-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79665 |
| * internal-fn.c (get_range_pos_neg): Moved to ... |
| * tree.c (get_range_pos_neg): ... here. No longer static. |
| * tree.h (get_range_pos_neg): New prototype. |
| * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments |
| are known to be in between 0 and signed maximum inclusive, try to |
| expand both unsigned and signed divmod and use the cheaper one from |
| those. |
| |
| 2017-02-22 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/79578 |
| * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p |
| to compare base operands. |
| |
| 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/79211 |
| * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use |
| gpc_reg_operand instead of fpr_reg_operand. |
| |
| 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com> |
| |
| * config/mips/mips.c (mips_return_in_memory): Force FP |
| vector types to be returned in memory for o32 ABI. |
| |
| 2017-02-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable |
| instead of DW_TAG_member for static data member declarations and don't |
| set no_linkage_name for static inline data members. |
| (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable |
| to DW_TAG_member. |
| |
| 2017-02-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Replace inequality signs with square brackets |
| for -Wnormalized. |
| |
| 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/78660 |
| * lra-constraints.c (simplify_operand_subreg): Handle |
| WORD_REGISTER_OPERATIONS targets. |
| |
| 2017-02-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/70465 |
| * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F)) |
| and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1) |
| elimination by swapping fld*. |
| |
| 2017-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79673 |
| * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to |
| convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off |
| irrelevant address-space qualifiers and avoiding a |
| ADDR_SPACE_CONVERT_EXPR from fold_convert. |
| |
| 2017-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79666 |
| * tree-vrp.c (extract_range_from_binary_expr_1): Make sure |
| to not symbolically negate if that may introduce undefined |
| overflow. |
| |
| 2017-02-22 Martin Liska <mliska@suse.cz> |
| |
| PR lto/79587 |
| * data-streamer-in.c (streamer_read_gcov_count): Remove assert. |
| * data-streamer-out.c (streamer_write_gcov_count_stream): |
| Likewise. |
| * value-prof.c (stream_out_histogram_value): Make assert more |
| precise based on type of counter. |
| |
| 2017-02-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79593 |
| * config/i386/i386.md (standard_x87sse_constant_load splitter): |
| Use nonimmediate_operand instead of memory_operand for operand 1. |
| (float-extend standard_x87sse_constant_load splitter): Ditto. |
| |
| 2017-02-21 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/79621 |
| * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore |
| blocks with edges to themselves. |
| |
| 2017-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79633 |
| * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use |
| is_gimple_call instead of comparing gimple_code with GIMPLE_CALL. |
| Use gimple_call_builtin_p. |
| |
| PR target/79570 |
| * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head |
| on temporarily removed DEBUG_INSNs. |
| |
| PR tree-optimization/79649 |
| * tree-loop-distribution.c (classify_partition): Give up on |
| non-generic address space loads/stores. |
| |
| 2017-02-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * doc/loop.texi (Loop manipulation): Remove nonexistent |
| tree_ssa_loop_version from the documentation. |
| * cfgloopmanip.c (loop_version): Document CONDITION_BB argument. |
| |
| 2017-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79494 |
| * config/i386/i386.c (ix86_expand_split_stack_prologue): Call |
| make_reg_eh_region_note_nothrow_nononlocal on call_insn. |
| * config/rs6000/rs6000.c: Include except.h. |
| (rs6000_expand_split_stack_prologue): Call |
| make_reg_eh_region_note_nothrow_nononlocal on the call insn. |
| |
| 2017-02-21 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/79579 |
| * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges |
| have been analyzed. |
| |
| 2017-02-21 Martin Jambor <mjambor@suse.cz> |
| |
| * common.opt (-fipa-cp-alignment): Mark as ignored and preserved |
| for backward compatibility only. |
| * doc/invoke.texi (Option Summary): Remove all references to |
| -fipa-cp-alignment. |
| |
| 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/78660 |
| Revert: |
| 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * lra-constraints.c (curr_insn_transform): Handle |
| WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. |
| |
| 2017-02-21 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.opt: Replace -masm-dialect with -masm. |
| |
| 2017-02-21 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR translation/79638 |
| * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y". |
| |
| 2017-02-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/67205 |
| * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. |
| (arm_function_ok_for_sibcall): Return false for an indirect call by |
| descriptor if all the argument registers are used. |
| (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the |
| alignment of the function. |
| |
| 2017-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/61441 |
| * simplify-rtx.c (simplify_const_unary_operation): For |
| -fsignaling-nans and sNaN operand, return NULL_RTX rather than |
| the sNaN unmodified. |
| |
| 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. |
| (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR |
| instead of SYSTEM_HEADER_DIR. |
| |
| 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com> |
| Martin Liška <mliska@suse.cz> |
| |
| * doc/invoke.texi (use-after-scope-direct-emission-threshold): |
| Fix typos and grammar, use active voice, and clarify. |
| |
| 2017-02-20 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/79537 |
| * gimplify.c (gimplify_expr): Handle unused *&&L;. |
| |
| PR sanitizer/79558 |
| * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null. |
| |
| 2017-02-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79568 |
| * config/i386/i386.c (ix86_expand_builtin): Handle |
| OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in |
| ix86_builtins_isa[fcode].isa as a requirement of those |
| flags and any other flag in the bitmask. |
| (ix86_init_mmx_sse_builtins): Use 0 instead of |
| ~OPTION_MASK_ISA_64BIT as mask. |
| * config/i386/i386-builtin.def (__builtin_ia32_rdtsc, |
| __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi, |
| __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi, |
| __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise. |
| |
| 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/78012 |
| * lra-constraints.c (split_reg): Check requested split mode |
| is supported by the register. |
| |
| 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * lra-constraints.c (simplify_operand_subreg): Remove early |
| return false. |
| |
| 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/78660 |
| * lra-constraints.c (curr_insn_transform): Tighten condition |
| for converting SUBREG reloads from OP_OUT to OP_INOUT. |
| |
| 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| PR target/78660 |
| * lra-constraints.c (curr_insn_transform): Handle |
| WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. |
| |
| 2017-02-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert: |
| 2016-05-30 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)". |
| |
| 2017-02-19 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/69523 |
| * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update |
| description. |
| |
| 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format |
| for FMA_EXPR. |
| |
| 2017-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * final.c (last_columnnum, override_columnnum): New variables. |
| (final_start_function): Set last_columnnum, pass it to begin_prologue |
| hook and pass 0 to dwarf2out_begin_prologue. |
| (final_scan_insn): Update override_columnnum. Pass last_columnnum |
| to source_line debug hook. |
| (notice_source_line): Compute last_columnnum and for debug_column_info |
| return true on column changes. |
| * debug.h (struct gcc_debug_hooks): Add column argument to |
| source_line and begin_prologue hooks. |
| (debug_nothing_int_charstar_int_bool): Remove prototype. |
| (debug_nothing_int_int_charstar, |
| debug_nothing_int_int_charstar_int_bool): New prototypes. |
| (dwarf2out_begin_prologue): Add column argument. |
| * debug.c (do_nothing_debug_hooks): Adjust source_line and |
| begin_prologue hooks. |
| (debug_nothing_int_charstar_int_bool): Remove. |
| (debug_nothing_int_int_charstar, |
| debug_nothing_int_int_charstar_int_bool): New functions. |
| * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it |
| through to dwarf2out_source_line. |
| (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook. |
| (dwarf2out_source_line): Add column argument, emit it if requested. |
| * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column |
| arguments. |
| * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise. |
| * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise. |
| * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it |
| through to dwarf2out_begin_prologue. |
| (vmsdbgout_source_line): Add column argument, pass it through to |
| dwarf2out_source_line. |
| * dbxout.c (dbxout_begin_prologue): Add column argument, adjust |
| dbxout_source_line caller. |
| (dbxout_source_line): Add column argument. |
| |
| * common.opt (gno-column-info, gcolumn-info): New options. |
| * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix. |
| (check_die): Also test for multiple DW_AT_decl_column attributes. |
| (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add |
| DW_AT_decl_column if requested. |
| (gen_subprogram_die): Compare and/or add also DW_AT_decl_column |
| if requested. |
| (gen_variable_die): Likewise. |
| (add_call_src_coords_attributes): Add DW_AT_call_column if requested. |
| * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document. |
| |
| PR target/79569 |
| * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report. |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define. |
| (ix86_handle_option): Handle OPT_m3dnowa. |
| * doc/invoke.texi (-m3dnowa): Document. |
| * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use |
| -m3dnowa instead of -m3dnow -march=athlon. |
| |
| PR target/79559 |
| * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage |
| instead of gcc_assert for K, r and R code checks. Formatting fixes. |
| |
| 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/79261 |
| * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add |
| support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be. |
| * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call |
| generator for vsx_xxpermdi_<mode>_be. |
| * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to |
| force big-endian semantics. |
| (vsx_xxpermdi_<mode>_be): New define_expand with same |
| implementation as previous version of vsx_xxpermdi_<mode>. |
| |
| 2017-02-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79327 |
| * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust |
| variable, its initialization and use. |
| |
| 2017-02-17 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New. |
| (OPTION_MASK_ISA_PKU_UNSET): New. |
| (ix86_handle_option): Handle -mrdpid. |
| * config/i386/cpuid.h (bit_RDPID): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): |
| Detect RDPID feature. |
| * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): |
| Handle RDPID flag. |
| * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts. |
| (ix86_valid_target_attribute_inner_p): Add "rdpid". |
| (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. |
| * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New. |
| * config/i386/i386.md (define_insn "rdpid"): New. |
| * config/i386/i386.opt Add -mrdpid. |
| * config/i386/immintrin.h (_rdpid_u32): New. |
| |
| 2017-02-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/79541 |
| * lra-constraints.c (curr_insn_transform): Remove wrong asm insn |
| instead of transforming it into USE. |
| |
| 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments. |
| If HONOR_SNANS (SFmode) force the input to a register. |
| (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition. |
| (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates |
| an frsp or similar insn. |
| |
| 2017-02-17 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/79577 |
| * params.def (selsched-max-sched-times): Increase minimum to 1. |
| |
| 2017-02-17 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/79574 |
| * gcse.c (want_to_gcse_p): Prevent integer overflow. |
| |
| 2017-02-17 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79529 |
| * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use |
| ssa_defined_default_def_p to handle cases which are implicitly |
| defined. |
| * tree-ssa.c (ssa_defined_default_def_p): New function. |
| (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases |
| which are implicitly defined. |
| * tree-ssa.h (ssa_defined_default_def_p): Declare. |
| |
| 2017-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79576 |
| * params.def (max-ssa-name-query-depth): Limit to 10. |
| |
| 2017-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79552 |
| * tree-ssa-structalias.c (visit_loadstore): Properly verify |
| default defs. |
| |
| 2017-02-17 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/79567 |
| * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2. |
| |
| 2017-02-17 Marek Polacek <polacek@redhat.com> |
| |
| PR middle-end/79536 |
| * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr. |
| (fold_negate_expr): New wrapper. |
| |
| 2017-02-16 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: |
| Correct terminology and de-emphasize pre-standard behavior. |
| |
| 2017-02-16 Alan Modra <amodra@gmail.com> |
| |
| PR rtl-optimization/79286 |
| * ira.c (def_dominates_uses): New function. |
| (update_equiv_regs): Don't create an equivalence for insns that |
| may trap where the register def does not dominate the use. |
| |
| 2017-02-16 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/78127 |
| * lra.c (lra): Call lra_eliminate before finish the loop after |
| lra_constraint. |
| |
| 2017-02-16 Richard Biener <rguenther@suse.de> |
| |
| * graphite.h: Do not include isl/isl_val_gmp.h, instead include |
| isl/isl_val.h. |
| * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove. |
| (gcc_expression_from_isl_expr_int): Use generic isl_val interface. |
| * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h. |
| (isl_val_int_from_wi): New function. |
| (extract_affine_gmp): Rename to ... |
| (extract_affine_wi): ... this, take a widest_int. |
| (extract_affine_int): Just wrap extract_affine_wi. |
| (add_param_constraints): Use isl_val_int_from_wi. |
| (add_loop_constraints): Likewise, and extract_affine_wi. |
| |
| 2017-02-15 Jeff Law <law@redhat.com> |
| |
| PR middle-end/79521 |
| * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling |
| ira_init_register_move_cost_if_necessary. |
| |
| 2017-02-15 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/32003 |
| * doc/invoke.texi (-fdump-final-insns): Replace option accidentally |
| removed in a prior commit. |
| |
| 2017-02-15 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/79347 |
| * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile |
| counters during peeling. |
| |
| 2017-02-15 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * Makefile.in (site.exp): Remove "set ISLVER". |
| |
| 2017-02-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79487 |
| * real.c (real_from_integer): Call real_convert even for decimal. |
| |
| 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/79421 |
| * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS. |
| |
| 2017-02-14 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C" |
| cores and change the partno/implementer to be correct. |
| (thunderx2t99p1): New core which replaces thunderx2t99 and still has |
| the 'B" as the implementer. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| |
| 2017-02-14 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000.c: Add case statement entry to make the |
| xvcvuxdsp built-in argument unsigned. |
| * config/rs6000/vsx.md: Fix the source and return operand types so they |
| match the instruction definitions from the ISA document. Fix typo |
| in the instruction generation for the (define_insn "vsx_xvcvuxdsp" |
| statement. |
| |
| 2017-02-14 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/79282 |
| * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add |
| member early_clobber_alts. |
| * lra-lives.c (reg_early_clobber_p): New. |
| (process_bb_lives): Use it. |
| * lra.c (new_insn_reg): New arg early_clobber_alts. Use it. |
| (debug_operand_data): Initialize early_clobber_alts. |
| (setup_operand_alternative): Set up early_clobber_alts. |
| (collect_non_operand_hard_regs): Ditto. Pass early clobber |
| alternatives to new_insn_reg. |
| (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use |
| it. |
| (lra_update_insn_regno_info): Pass the new arg. |
| |
| 2017-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79505 |
| * omp-offload.c (free_oacc_loop): Release loop->ifns vector. |
| (new_oacc_loop_raw): Don't clear already cleared fields. |
| |
| PR target/79481 |
| * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, |
| _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, |
| _mm512_prefetch_i64gather_ps): New inline functions and macros. |
| |
| 2017-02-14 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/79495 |
| * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative. |
| |
| 2017-02-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/79498 |
| * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert |
| the extra instruction to the right place to store 128-bit constant |
| when needed. |
| |
| 2017-02-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/79448 |
| * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX |
| warning for strings of unknown length. |
| |
| 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config.gcc (supported_defaults) [powerpc*-*-*]: Update. |
| |
| 2017-02-14 Jeff Law <law@redhat.com> |
| |
| PR target/79404 |
| * ira-costs.c (scan_one_insn): Initialize register move costs |
| for pseudos seen in USE/CLOBBER insns. |
| |
| PR tree-optimization/79095 |
| * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR, |
| if the numerator has the range ~[0,0] make the resultant range ~[0,0]. |
| (extract_range_from_binary_expr): For MINUS_EXPR with no derived range, |
| if the operands are known to be not equal, then the resulting range |
| is ~[0,0]. |
| (intersect_ranges): If the new range is ~[0,0] and the old range is |
| wide, then prefer ~[0,0]. |
| * tree-vrp.c (overflow_comparison_p_1): New function. |
| (overflow_comparison_p): New function. |
| * tree-vrp.c (register_edge_assert_for_2): Register additional asserts |
| if NAME is used in an overflow test. |
| (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an |
| overflow check that can be expressed as an equality test, then adjust |
| ops to be that equality test. |
| |
| 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Remove flags argument. |
| * config/s390/s390.c (s390_init_builtins): Likewise. |
| |
| 2017-02-14 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body |
| vector. Fix trailing white spaces. |
| |
| 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle |
| HFmode. |
| |
| 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68664 |
| * config/arm/arm.c (arm_sched_can_speculate_insn): |
| New function. Declare prototype. |
| (TARGET_SCHED_CAN_SPECULATE_INSN): Define. |
| |
| 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR rtl-optimization/68664 |
| * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn): |
| New function. |
| (TARGET_SCHED_CAN_SPECULATE_INSN): Define. |
| |
| 2017-02-14 Amit Pawar <amit.pawar@amd.com> |
| |
| * config/i386/i386.c (znver1_cost): Fix the alignment for function and |
| max skip bytes for function, loop and jump. |
| |
| 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for |
| ABS_EXPR for gimple dump. |
| |
| 2017-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79462 |
| * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4]. |
| |
| PR tree-optimization/79408 |
| * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the |
| case when on TRUNC_MOD_EXPR op0 is INTEGER_CST. |
| (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges |
| also if rhs1 is INTEGER_CST. |
| |
| 2017-02-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79432 |
| * tree-into-ssa.c (insert_phi_nodes): When the function can |
| have abnormal edges rewrite SSA names with broken use-def |
| dominance out of SSA and register them for PHI insertion. |
| |
| 2017-02-13 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/79496 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid |
| clearing info.nowrite flag when snprintf size argument is a range. |
| |
| 2017-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * cprop.c (cprop_jump): Add missing space in string literal. |
| * tree-ssa-structalias.c (rewrite_constraints): Likewise. |
| (get_constraint_for_component_ref): Likewise. |
| * df-core.c (df_worklist_dataflow_doublequeue): Likewise. |
| * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise. |
| * lra-constraints.c (process_alt_operands): Likewise. |
| * ipa-inline.c (inline_small_functions): Likewise. |
| * tree-ssa-sccvn.c (visit_reference_op_store): Likewise. |
| * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. |
| * trans-mem.c (diagnose_tm_1_op): Likewise. |
| * omp-grid.c (grid_find_single_omp_among_assignments): Likewise. |
| (grid_parallel_clauses_gridifiable): Likewise. |
| |
| * config/nvptx/mkoffload.c (process): Add space in between |
| , and %d. |
| |
| * config/i386/i386.h (REG_CLASS_NAMES): Add , in between |
| "MOD4_SSE_REGS" and "ALL_REGS". |
| |
| * spellcheck.c (test_data): Add , in between "foo" and "food". |
| |
| 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/79449 |
| * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime |
| boundary crossing check and subsequent code generation agree. |
| |
| 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (has_memory_op): Delete. |
| (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of |
| has_memory_op. |
| |
| 2017-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79388 |
| PR rtl-optimization/79450 |
| * combine.c (distribute_notes): When removing TEM_INSN for which |
| corresponding dest has last value recorded, invalidate that last |
| value. |
| |
| 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead |
| of explicit '@'. Add missing assembly comment marker on branch costs |
| printout. |
| |
| 2017-02-13 Nathan Sidwell <nathan@acm.org> |
| |
| * gengtype-lex.l (<in_struct>): Add '/'. |
| |
| 2017-02-13 Martin Liska <mliska@suse.cz> |
| |
| PR c/79471 |
| * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC. |
| |
| 2017-02-13 Richard Biener <rguenther@suse.de> |
| |
| * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS): |
| Remove. |
| * configure: Re-generate. |
| * config.in: Likewise. |
| * graphite-dependences.c: Simplify as if |
| HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined. |
| * graphite-isl-ast-to-gimple.c: Likewise. |
| * graphite-optimize-isl.c: Likewise. |
| * graphite-poly.c: Likewise. |
| * graphite-sese-to-poly.c: Likewise. |
| * graphite.h: Likewise. |
| * toplev.c: Include isl/version.h and use isl_version () for |
| printing the ISL version. |
| * doc/install.texi: Update ISL requirement. |
| |
| 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/standards.texi (Standards): Update reference to |
| Objective-C 2.0. |
| |
| 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Named Address Spaces): sourceware.org now |
| defaults to https. |
| * doc/install.texi (Binaries): Ditto. |
| (Specific): Ditto. |
| |
| 2017-02-11 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cpp.texi: Replace "stringify"/"stringification" with C |
| standard terminology "stringize"/"stringizing" throughout. |
| * doc/cppinternals.texi: Likewise. |
| |
| 2017-02-11 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/extend.texi: Fix some spelling mistakes and typos. |
| * doc/invoke.texi: Likewise. |
| |
| 2017-02-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/79224 |
| * params.def (inline-min-speedup) Change from 10 to 8. |
| |
| 2017-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to |
| 4.5. |
| |
| 2017-02-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/79224 |
| * ipa-inline-analysis.c (get_minimal_bb): New function. |
| (record_modified): Use it. |
| (remap_edge_change_prob): Handle also ancestor functions. |
| |
| 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/contrib.texi (Contributors): Remove broken link into |
| the Mauve CVS repository. |
| |
| 2017-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79454 |
| * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise |
| result computation whenever lhs doesn't have vector mode, not |
| just when it has BLKmode. |
| |
| 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/makefile.texi (profiledbootstrap): Refer to the |
| installation instructions only in textual form. |
| |
| 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/79295 |
| * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints. |
| |
| 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific): Use https for blackfin.uclinux.org. |
| (Specific): Update mingw-w64 reference. |
| (Binaries): Ditto. |
| (Specific): Remove broken link to Renesas RX processor. |
| |
| 2017-02-10 Richard Biener <rguenther@suse.de> |
| |
| * toplev.c (process_options): Do not mention obsolete graphite |
| options when printing sorry message about missing graphite support. |
| Mention -floop-nest-optimize. |
| |
| 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm. |
| (vtst_p16): Likewise. |
| (vtstq_p8): Likewise. |
| (vtstq_p16): Likewise. |
| (vtst_p64): New. |
| (vtstq_p64): Likewise. |
| * config/arm/arm_neon.h (vgetq_lane_p64): New. |
| (vset_lane_p64): New. |
| (vsetq_lane_p64): New. |
| |
| 2017-02-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79411 |
| * tree-ssa-reassoc.c (is_reassociable_op): Return false if |
| stmt operands are SSA_NAMEs used in abnormal phis. |
| (can_reassociate_p): Return false if op is SSA_NAME used in abnormal |
| phis. |
| |
| 2017-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/70795 |
| * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible |
| flag if needed. |
| |
| 2017-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-loop-unswitch.c (hoist_guard): Update profile. |
| |
| 2017-02-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-offload.c (oacc_loop_auto_partitions): Use || instead of | |
| to avoid warning. |
| |
| PR c/79413 |
| * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants, |
| not arbitrary TREE_CONSTANT. |
| |
| PR c/79431 |
| * gimplify.c (gimplify_adjust_omp_clauses): Ignore |
| "omp declare target link" attribute unless is_global_var. |
| * omp-offload.c (find_link_var_op): Likewise. |
| |
| 2017-02-09 Nathan Sidwell <nathan@codesourcery.com> |
| Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): No special handling for |
| OMP_CLAUSE_TILE. |
| (gimplify_adjust_omp_clauses): Don't delete TILE. |
| (gimplify_omp_for): Deal with TILE. |
| * internal-fn.c (expand_GOACC_TILE): New function. |
| * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative. |
| (GOACC_TILE): New. |
| * omp-expand.c (struct oacc_collapse): Add tile and outer fields. |
| (expand_oacc_collapse_init): Add LOC paramter. Initialize tile |
| element fields. |
| (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling, |
| avoid DIV for outermost collapse var. |
| (expand_oacc_for): Insert tile element loop as needed. Adjust. |
| Remove out of date comments, fix whitespace. |
| * omp-general.c (omp_extract_for_data): Deal with tiling. |
| * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag, |
| adjust OLF_DIM_BASE value. |
| (struct omp_for_data): Add tiling field. |
| * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE. |
| (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels |
| for auto loops. Remove default auto determining, moved to |
| oacc_loop_fixed_partitions. |
| * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call |
| stmts, add e_mask field. |
| (oacc_dim_call): New function, abstracted out from oacc_thread_numbers. |
| (oacc_thread_numbers): Use oacc_dim_call. |
| (oacc_xform_tile): New. |
| (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector. |
| (finish_oacc_loop): Adjust for ifns vector. |
| (oacc_loop_discover_walk): Append loop abstraction sites to list, |
| add case for GOACC_TILE fns. |
| (oacc_loop_xform_loop): Delete. |
| (oacc_loop_process): Iterate over call list directly, and add |
| handling for GOACC_TILE fns. |
| (oacc_loop_fixed_partitions): Determine default auto, deal with TILE, |
| dump partitioning. |
| (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but |
| vector partitioning to outer loops. Assign 2 partitions to loops |
| when available. Add TILE handling. |
| (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. |
| (execite_oacc_device_lower): Process GOACC_TILE fns, |
| ignore unknown specs. |
| * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE. |
| * tree.c (omp_clause_num_ops): Adjust TILE ops. |
| * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New. |
| |
| 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * configure.ac (ACX_BUGURL): Update. |
| * configure: Regenerate. |
| |
| 2017-02-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/69823 |
| * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): |
| Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap. |
| |
| 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc-c.def: Add __NPS400__ definition. |
| * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here. |
| (TARGET_NPS400): Define. |
| |
| 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in |
| file. |
| (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t |
| pointer, arch_info. |
| (arc_cpu_types): Fill the arch_info field with a pointer into the |
| arc_arch_types table. |
| (arc_selected_cpu): Declare. |
| * config/arc/arc.c (arc_selected_cpu): Make global. |
| (arc_selected_arch): Delete. |
| (arc_base_cpu): Delete. |
| (arc_override_options): Remove references to deleted variables, |
| update access to arch information. |
| (ARC_OPT): Update access to arch information. |
| (ARC_OPTX): Likewise. |
| * config/arc/arc.h (arc_base_cpu): Remove declaration. |
| (TARGET_ARC600): Update access to arch information. |
| (TARGET_ARC601): Likewise. |
| (TARGET_ARC700): Likewise. |
| (TARGET_EM): Likewise. |
| (TARGET_HS): Likewise. |
| * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch |
| information. |
| |
| 2017-02-08 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/78604 |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert |
| condition/operands for integer GE/LE/GEU/LEU operations. |
| |
| 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR translation/79397 |
| * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling |
| of AltiVec. |
| |
| 2017-02-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/79375 |
| * ipa-prop.c (ipa_alloc_node_params): Make static, return bool |
| whether allocation happened. |
| (ipa_initialize_node_params): Do not call ipa_alloc_node_params if |
| nothing was allocated. |
| |
| 2017-02-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79408 |
| * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not |
| constant, but SSA_NAME with a known integer range, use the minimum |
| of that range instead of op1 to determine if modulo can be replaced |
| with its first operand. |
| |
| 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX. |
| |
| 2017-02-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71824 |
| * graphite-scop-detection.c (scop_detection::build_scop_breadth): |
| Check all loops contained in the merged region. |
| |
| 2017-02-07 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.md (popcount<mode>2): New pattern. |
| |
| 2017-02-07 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def (thunderx): Disable LSE. |
| (thunderxt88): Likewise. |
| (thunderxt81): Disable LSE and change v8.1 to v8. |
| (thunderxt83): Likewise. |
| |
| 2017-02-07 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79399 |
| * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size |
| type from int to size_t. |
| * ira-costs.c (struct_costs_size): Change type from int to size_t. |
| |
| 2017-02-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79386 |
| * cprop.c (bypass_conditional_jumps): Initialize |
| bypass_last_basic_block already before splitting bbs after |
| unconditional traps... |
| (bypass_conditional_jumps): ... rather than here. |
| |
| PR target/79299 |
| * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs. |
| (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2, |
| *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them, |
| fix -masm=intel patterns. |
| |
| 2017-02-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79256 |
| PR middle-end/79278 |
| * builtins.c (get_object_alignment_2): Use min_align_of_type |
| to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT |
| and ADJUST_FIELD_ALIGN. |
| |
| * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional |
| type parameter. |
| * doc/tm.texi: Regenerate. |
| * stor-layout.c (layout_decl): Adjust. |
| (update_alignment_for_field): Likewise. |
| (place_field): Likewise. |
| (min_align_of_type): Likewise. |
| * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust. |
| * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise. |
| * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/frv/frv.c (frv_adjust_field_align): Likewise. |
| * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/i386/i386.c (x86_field_alignment): Likewise. |
| * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise. |
| * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): |
| Likewise. |
| |
| Revert |
| 2017-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79256 |
| * targhooks.c (default_builtin_vector_alignment_reachable): Honor |
| BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus |
| alignment on TYPE. |
| |
| 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com> |
| |
| * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode |
| argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw |
| builtins to SImode and emit a zero-extend, if necessary. |
| |
| 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * docs/invoke.texi (RISC-V Options): Alphabetize. |
| |
| 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * doc/invoke.texi (RISC-V Options): Use two spaces to separate |
| options. |
| |
| 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> |
| |
| * config/riscv/riscv.c: New file. |
| * common/config/riscv/riscv-common.c: Likewise. |
| * config.gcc: Likewise. |
| * config/riscv/constraints.md: Likewise. |
| * config/riscv/elf.h: Likewise. |
| * config/riscv/generic.md: Likewise. |
| * config/riscv/linux.h: Likewise. |
| * config/riscv/multilib-generator: Likewise. |
| * config/riscv/peephole.md: Likewise. |
| * config/riscv/pic.md: Likewise. |
| * config/riscv/predicates.md: Likewise. |
| * config/riscv/riscv-builtins.c: Likewise. |
| * config/riscv/riscv-c.c: Likewise. |
| * config/riscv/riscv-ftypes.def: Likewise. |
| * config/riscv/riscv-modes.def: Likewise. |
| * config/riscv/riscv-opts.h: Likewise. |
| * config/riscv/riscv-protos.h: Likewise. |
| * config/riscv/riscv.h: Likewise. |
| * config/riscv/riscv.md: Likewise. |
| * config/riscv/riscv.opt: Likewise. |
| * config/riscv/sync.md: Likewise. |
| * config/riscv/t-elf-multilib: Likewise. |
| * config/riscv/t-linux: Likewise. |
| * config/riscv/t-linux-multilib: Likewise. |
| * config/riscv/t-riscv: Likewise. |
| * configure.ac: Likewise. |
| * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew |
| Waterman as RISC-V maintainers. |
| * doc/install.texi: Add RISC-V entries. |
| * doc/invoke.texi: Add RISC-V options section. |
| * doc/md.texi: Add RISC-V constraints section. |
| * configure: Regenerated. |
| |
| 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/66144 |
| * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and |
| false values to be constant vectors with all 0 or all 1 bits set. |
| (vcondu<mode><mode>): Likewise. |
| * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New |
| predicate. |
| (fpmask_comparison_operator): Update comment. |
| (vecint_comparison_operator): New predicate. |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize |
| vector conditionals when the true and false values are constant |
| vectors with all 0 bits or all 1 bits set. |
| |
| 2017-02-06 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79376 |
| * gimple-fold.c (get_range_strlen): Set the minimum length to zero. |
| |
| 2017-02-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vector modes -> vec_extract* splitter): Use |
| explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate |
| to simplify split condition. |
| |
| 2017-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (oxpand_omp_atomic_fetch_op, |
| expand_omp_atomic_pipeline): Return false if can_atomic_load_p is |
| false. |
| |
| 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/68664 |
| * target.def (can_speculate_insn): New hook. |
| * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook. |
| * doc/tm.texi: Regenerate. |
| * sched-rgn.c (can_schedule_ready_p): Use the new hook. |
| * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro. |
| (rs6000_sched_can_speculate_insn): New function. |
| |
| 2017-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79284 |
| * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define. |
| * tree-vect-stmts.c (vect_get_vec_def_for_operand, |
| vectorizable_mask_load_store, vectorizable_operation, |
| vect_is_simple_cond, get_same_sized_vectype): Use it instead |
| of comparing TREE_CODE of a type against BOOLEAN_TYPE. |
| * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1, |
| vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise. |
| * tree-vect-slp.c (vect_get_constant_vectors): Likewise. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. |
| Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after |
| is_gimple_assign (stmt). Replace another such test with |
| is_gimple_assign (stmt). |
| |
| 2017-02-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| PR target/78883 |
| * config/avr/avr.c (rtl-iter.h): Include it. |
| (TARGET_LEGITIMATE_COMBINED_INSN): New hook define... |
| (avr_legitimate_combined_insn): ...and implementation. |
| |
| 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h. |
| * config/s390/s390.c (s390_const_operand_ok) |
| (s390_canonicalize_comparison, s390_extract_part) |
| (s390_single_part, s390_contiguous_bitmask_nowrap_p) |
| (s390_contiguous_bitmask_p, s390_rtx_costs) |
| (legitimize_pic_address): Likewise. |
| * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise. |
| * config/s390/vx-builtins.md ("vec_genbytemaskv16qi") |
| ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>") |
| ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT. |
| * config/s390/vector.md ("vec_vfenes<mode>"): Likewise. |
| |
| 2017-02-06 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.md (*addhi3_zero_extend): Add alternative where |
| REGNO($0) == REGNO($1). |
| |
| 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/linux.h(SIZE_TYPE): Add comment. |
| |
| 2017-02-06 Julian Brown <julian@codesourcery.com> |
| Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| Virendra Pathak <virendra.pathak@broadcom.com> |
| |
| * config/aarch64/aarch64-cores.def: Change the scheduler |
| to Thunderx2t99. |
| * config/aarch64/aarch64.md: Include thunderx2t99.md. |
| * config/aarch64/thunderx2t99.md: New file. |
| |
| 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/standards.texi (Go Language): Update link to language |
| standard. |
| |
| 2017-02-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-eh.c (lower_resx): Sanitize profile. |
| (cleanup_empty_eh_move_lp): Likewise. |
| |
| 2017-02-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-ssa/79347 |
| * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add |
| ELSE_PROB. |
| * cfgloopmanip.h (loop_version): Update prototype. |
| * modulo-sched.c (sms_schedule): Update call of loop_version. |
| * tree-if-conv.c(version_loop_for_if_conversion): Likewise. |
| * tree-parloops.c (gen_parallel_loop): Likewise. |
| * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise. |
| * tree-ssa-loop-split.c (split_loop): Likewise. |
| * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. |
| |
| 2017-02-05 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/78985 |
| * config/s390/s390.c (s390_gimplify_va_arg): Initialize local |
| variable to NULL. |
| (print_operand_address): Initialize a struct to zero. |
| |
| 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/contrib.texi (Contributors): Refer to Hans Boehm's |
| garbage collector only in textual form. |
| |
| 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (x86 specific memory model extensions for |
| transactional memory): Simplify a phrase. |
| |
| 2017-02-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/79353 |
| * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with |
| 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32. |
| (atomic_storedi_1): Likewise. |
| |
| 2017-02-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79338 |
| * tree-parloops.c (gather_scalar_reductions): Don't call |
| vect_analyze_loop_form for loop->inner before destroying loop's |
| loop_vinfo. |
| |
| 2017-02-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79327 |
| * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix |
| when precision has resulted in leading zeros. |
| (format_integer): Adjust the likely counter to assume an unknown |
| argument that may be zero is non-zero. |
| |
| 2017-02-03 Jason Merrill <jason@redhat.com> |
| |
| PR c++/78689 |
| * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to |
| avoid copying non-taken branch. |
| |
| 2017-02-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79340 |
| * tree-vect-loop.c (vectorizable_reduction): Release |
| vec_defs elements after safe_splicing them into other vectors. |
| Formatting fixes. |
| |
| PR tree-optimization/79327 |
| * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning |
| true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of |
| dirtype. |
| (format_integer): Use wide_int_to_tree instead of build_int_cst |
| + to_?hwi. If argmin is NULL, just set argmin and argmax to |
| TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation |
| of shortest and longest sequence. |
| |
| 2017-02-03 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (dimode_scalar_chain::convert_reg): |
| Use pextrd for TARGET_SSE4_1 when creating scalar copy. |
| |
| 2017-02-03 Walter Lee <walt@tilera.com> |
| |
| PR target/78862 |
| * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage |
| after initial stackframe link reg save. |
| * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise. |
| |
| 2017-02-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79354 |
| * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of |
| wu for stxssp alternative. |
| |
| 2017-02-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/79352 |
| * gimple-fold.c (get_range_strlen): Add argument. |
| (get_range_strlen): Change return type to bool. |
| (get_maxval_strlen): Pass in a dummy argument. |
| * gimple-fold.h (get_range_strlen): Change return type to bool. |
| * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter. |
| * tree.h (array_at_struct_end_p): Add argument. |
| * tree.c (array_at_struct_end_p): Handle it. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| PR lto/66295 |
| * multiple_target.c (create_dispatcher_calls): Redirect edge |
| from a caller of a dispatcher. |
| (expand_target_clones): Make the clones local. |
| (ipa_target_clone): Do both target clones and resolvers. |
| (ipa_dispatcher_calls): Remove the pass. |
| (pass_dispatcher_calls::gate): Likewise. |
| (make_pass_dispatcher_calls): Likewise. |
| * passes.def (pass_target_clone): Put as very first IPA early |
| pass. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| * symtab.c (symtab_node::binds_to_current_def_p): Bail out |
| in case of a function with ifunc attribute. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump function version info. |
| * symtab.c (symtab_node::dump_base): Add missing new line. |
| |
| 2017-02-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function. |
| (ifcombine_ifandif): Use it. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document default value for |
| use-after-scope-direct-emission-threshold. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79339 |
| * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear. |
| (format_floating): Likewise. |
| |
| 2017-02-03 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79337 |
| * ipa-prop.c (ipa_node_params_t::insert): Remove current |
| implementation. |
| (ipa_node_params_t::remove): Likewise. |
| * ipa-prop.h (ipa_node_params::ipa_node_params): Make default |
| initialization from removed ipa_node_params_t::insert. |
| (ipa_node_params::~ipa_node_params): Move from removed |
| ipa_node_params_t::release. |
| * symbol-summary.h (symbol_summary::m_released): New member. |
| Do not release a summary twice. Do not allow to call finalizer |
| for types of a summary that live in GGC memory. |
| |
| 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com> |
| |
| * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and |
| cmp_branch fusion. |
| |
| 2017-02-02 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/79275 |
| * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero. |
| (format_string): Tighten up the range of output for non-constant |
| strings and correct the expected range for wide non-constant strings. |
| |
| 2017-02-02 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (-maccumulate-args): Fix bad grammar. |
| |
| PR middle-end/32003 |
| * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from |
| index. |
| (-fdump-tree-@var): Add to index and document how to come up |
| with pass-specific option and dump file names. |
| (-fdump-passes): Clarify where to look for output. |
| |
| 2017-02-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77445 |
| * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump |
| statistics of the analyzed path; allow threading for speed when |
| any of BBs along the path are optimized for speed. |
| |
| 2017-02-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/78468 |
| * emit-rtl.c (init_emit): Add ??? comment for problematic alignment |
| settings of the virtual registers. |
| |
| Revert again |
| 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * explow.c (get_dynamic_stack_size): Take known alignment of stack |
| pointer + STACK_DYNAMIC_OFFSET into account when calculating the size |
| needed. |
| |
| 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/vx-builtins.md ("vec_ceil", "vec_floor") |
| ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders. |
| |
| 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md: Add missing comments with the expanded |
| mnemonics. |
| * config/s390/vector.md: Likewise. |
| * config/s390/vx-builtins.md: Likewise. |
| |
| 2017-02-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79197 |
| * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ... |
| (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all |
| conditions on a single line. |
| |
| 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename |
| __S390_VX__ to __VX__. |
| |
| 2017-02-01 Andrew Pinski <apinski@cavium.com> |
| |
| * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass |
| stmt_info to record_stmt_cost. |
| (vect_get_known_peeling_cost): Pass stmt_info if known to |
| record_stmt_cost. |
| * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split |
| cpu_vector_cost field into |
| scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost |
| field into vec_int_stmt_cost and vec_fp_stmt_cost. |
| * config/aarch64/aarch64.c (generic_vector_cost): Update for the |
| splitting of scalar_stmt_cost and vec_stmt_cost. |
| (thunderx_vector_cost): Likewise. |
| (cortexa57_vector_cost): LIkewise. |
| (exynosm1_vector_cost): Likewise. |
| (xgene1_vector_cost): Likewise. |
| (thunderx2t99_vector_cost): Improve after the splitting of the two |
| fields. |
| (aarch64_builtin_vectorization_cost): Update for the splitting of |
| scalar_stmt_cost and vec_stmt_cost. |
| |
| 2017-02-01 Torvald Riegel <triegel@redhat.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free" |
| conditional on existance of a fast atomic load. |
| * optabs-query.c (can_atomic_load_p): New function. |
| * optabs-query.h (can_atomic_load_p): Declare it. |
| * optabs.c (expand_atomic_exchange): Always delegate to libatomic if |
| no fast atomic load is available for the particular size of access. |
| (expand_atomic_compare_and_swap): Likewise. |
| (expand_atomic_load): Likewise. |
| (expand_atomic_store): Likewise. |
| (expand_atomic_fetch_op): Likewise. |
| * testsuite/lib/target-supports.exp |
| (check_effective_target_sync_int_128): Remove x86 because it provides |
| no fast atomic load. |
| (check_effective_target_sync_int_128_runtime): Likewise. |
| |
| 2017-02-01 Richard Biener <rguenther@suse.de> |
| |
| * graphite.c: Include tree-vectorizer.h for find_loop_location. |
| (graphite_transform_loops): Provide opt-info for optimized nests. |
| * tree-parloop.c (parallelize_loops): Provide opt-info for |
| parallelized loops. |
| |
| 2017-02-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/79315 |
| * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it |
| was not set before. |
| |
| 2017-02-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71824 |
| * graphite-scop-detection.c (scop_detection::build_scop_breadth): |
| Verify the loops are valid in the merged SESE region. |
| (scop_detection::can_represent_loop_1): Check analyzing the |
| evolution of the number of iterations in the region succeeds. |
| |
| 2017-01-31 Ian Lance Taylor <iant@golang.org> |
| |
| * config/i386/i386.c (ix86_expand_split_stack_prologue): Add |
| REG_ARGS_SIZE note to 32-bit push insns and call insn. |
| |
| 2017-01-31 David Malcolm <dmalcolm@redhat.com> |
| |
| PR preprocessor/79210 |
| * input.c (get_substring_ranges_for_loc): Replace line_width |
| assertion with error-handling. |
| |
| 2017-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/77318 |
| * graphite-sese-to-poly.c (extract_affine): Fix assert. |
| (create_pw_aff_from_tree): Take loop parameter. |
| (add_condition_to_pbb): Pass loop of the condition to |
| create_pw_aff_from_tree. |
| |
| 2017-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/s390/s390.c (s390_asan_shadow_offset): New function. |
| (TARGET_ASAN_SHADOW_OFFSET): Redefine. |
| |
| 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78597 |
| PR target/79038 |
| * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete, |
| no longer used. |
| (convert_int_to_float128): Likewise. |
| * config/rs6000/rs6000.c (convert_float128_to_int): Likewise. |
| (convert_int_to_float128): Likewise. |
| * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise. |
| (UNSPEC_IEEE128_CONVERT): Likewise. |
| (floatsi<mode>2, FLOAT128 iterator): Bypass calling |
| rs6000_expand_float128_convert if we have IEEE 128-bit hardware. |
| Use local variables for IBM extended format. |
| (fix_trunc<mode>si2, FLOAT128 iterator): Likewise. |
| (fix_trunc<mode>si2_fprs): Likewise. |
| (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. |
| (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise. |
| (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support |
| to know that we can now have integers of all sizes in vector |
| registers. |
| (fix<uns>_<mode>di2_hw): Likewise. |
| (float<uns>_<mode>si2_hw): Likewise. |
| (fix_<mode>si2_hw): Likewise. |
| (fixuns_<mode>si2_hw): Likewise. |
| (float<uns>_<mode>di2_hw): Likewise. |
| (float_<mode>di2_hw): Likewise. |
| (float_<mode>si2_hw): Likewise. |
| (floatuns_<mode>di2_hw): Likewise. |
| (floatuns_<mode>si2_hw): Likewise. |
| (xscvqp<su>wz_<mode>): Delete, no longer used. |
| (xscvqp<su>dz_<mode>): Likewise. |
| (xscv<su>dqp_<mode>): Likewise. |
| (ieee128_mfvsrd_64bit): Likewise. |
| (ieee128_mfvsrd_32bit): Likewise. |
| (ieee128_mfvsrwz): Likewise. |
| (ieee128_mtvsrw): Likewise. |
| (ieee128_mtvsrd_64bit): Likewise. |
| (ieee128_mtvsrd_32bit): Likewise. |
| |
| 2017-01-31 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79285 |
| * ipa-prop.c (ipa_free_all_node_params): Call release method |
| instead of ~sumbol_summary to not to trigger double times |
| dtor of hash_map. |
| |
| 2017-01-31 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/71691 |
| * bitmap.h (class auto_bitmap): New. |
| * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call |
| is_maybe_undefined instead of ssa_undefined_value_p. |
| |
| 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename |
| __S390_ARCH_LEVEL__ to __ARCH__. |
| |
| 2017-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/79267 |
| * value-prof.c (gimple_ic): Only drop lhs for noreturn calls |
| if should_remove_lhs_p is true. |
| |
| 2017-01-30 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/63238 |
| * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment. |
| (add_alignment_attribute): New. |
| (base_type_die): Add alignment attribute. |
| (subrange_type_die): Likewise. |
| (modified_type_die): Likewise. |
| (gen_array_type_die): Likewise. |
| (gen_descr_array_type_die: Likewise. |
| (gen_enumeration_type_die): Likewise. |
| (gen_subprogram_die): Likewise. |
| (gen_variable_die): Likewise. |
| (gen_field_die): Likewise. |
| (gen_ptr_to_mbr_type_die): Likewise. |
| (gen_struct_or_union_type_die): Likewise. |
| (gen_subroutine_type_die): Likewise. |
| (gen_typedef_die): Likewise. |
| (base_type_cmp): Compare alignment attribute. |
| |
| 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| |
| PR target/79170 |
| * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed. |
| (setb_unsigned) New pattern for setb with CCUNS. |
| * config/rs6000/rs6000.c (expand_block_compare): Use a different |
| subfc./subfe sequence to avoid overflow problems. Generate a |
| shorter sequence with cmpld/setb for power9. |
| * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern |
| for generating subfc. instruction. |
| (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence |
| now uses this instruction. |
| |
| 2017-01-30 Ian Lance Taylor <iant@google.com> |
| |
| PR debug/79289 |
| * dwarf2out.c (gen_type_die_with_usage): When picking a variant |
| for FUNCTION_TYPE/METHOD_TYPE, use the first matching one. |
| |
| 2017-01-30 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision): |
| Move constant to the right of a relational operator. |
| (get_mpfr_format_length, format_character, format_string): Ditto. |
| (should_warn_p, maybe_warn): Same. |
| |
| * doc/invoke.texi (-Wformat-truncation=1): Fix typo. |
| |
| 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR lto/79061 |
| * asan.c (get_translation_unit_decl): Remove function. |
| (asan_add_global): Force has_dynamic_init to zero in LTO mode. |
| |
| 2017-01-30 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/79259 |
| * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/ |
| -fprofile-generate. |
| |
| 2017-01-30 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/78985 |
| * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze): |
| Initialize variables with NULL value. |
| |
| 2017-01-30 Richard Earnshaw <rearnsh@arm.com> |
| |
| PR target/79260 |
| * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to |
| tm_p_file. |
| * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h. |
| |
| 2017-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79276 |
| * tree-vrp.c (process_assert_insertions): Properly adjust common |
| when removing a duplicate. |
| |
| 2017-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79256 |
| * targhooks.c (default_builtin_vector_alignment_reachable): Honor |
| BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus |
| alignment on TYPE. |
| * tree.c (build_aligned_type): Set TYPE_USER_ALIGN. |
| |
| 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| PR target/79240 |
| * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask") |
| ("*r<noxa>sbg_<mode>_sll_bitmask") |
| ("*extzv_<mode>_srl<clobbercc_or_nocc>") |
| ("*extzv_<mode>_sll<clobbercc_or_nocc>"): |
| Use contiguous_bitmask_nowrap_operand. |
| |
| 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/79268 |
| * config/rs6000/altivec.h (vec_xl): Revise #define. |
| (vec_xst): Likewise. |
| |
| 2017-01-27 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum. |
| |
| 2017-01-27 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/79194 |
| * cprop.c (one_cprop_pass): Move deletion of code after unconditional |
| traps before call to bypass_conditional_jumps. |
| |
| 2017-01-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR tree-optimization/71374 |
| * lra-constraints.c (check_conflict_input_operands): New. |
| (match_reload): Use it. |
| |
| 2017-01-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/79131 |
| * lra-assigns.c (find_hard_regno_for_1): Take endianess for into |
| account to calculate conflict_set. |
| |
| 2017-01-27 Bin Cheng <bin.cheng@arm.com> |
| |
| PR rtl-optimization/78559 |
| * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for |
| other_insn in combine. |
| |
| 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use |
| uint16_type_node for BT_UINT16. |
| |
| 2017-01-27 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and |
| "RTL Tests" to menu. |
| (GIMPLE Tests): New node. |
| (RTL Tests): New node. |
| |
| 2017-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79245 |
| * tree-loop-distribution.c (distribute_loop): Apply cost |
| modeling also to detected patterns. |
| |
| 2017-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71433 |
| * tree-vrp.c (register_new_assert_for): Revert earlier changes. |
| (compare_assert_loc): New function. |
| (process_assert_insertions): Sort and optimize assert locations |
| to remove duplicates and push down identical assertions on |
| edges to their destination block. |
| |
| 2017-01-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79244 |
| * tree-vrp.c (remove_range_assertions): Forcefully propagate |
| out SSA names even if abnormal. |
| |
| 2017-01-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * realmpfr.h: Poison MPFR_RND{N,Z,U,D}. |
| * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN |
| instead of MPFR_RNDN. |
| |
| 2017-01-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/79239 |
| * arm.c (arm_option_override): Don't call build_target_option_node |
| until after doing all option overrides. |
| (arm_valid_target_attribute_tree): Likewise. |
| |
| 2017-01-27 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi (-fprofile-arcs): Document profiling support |
| for {cd}tors and C++ {cd}tors. |
| |
| 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com> |
| |
| * config/s390/s390.md ("*setmem_long_and") |
| ("*setmem_long_and_31z"): Use zero_extend instead of and. |
| |
| 2017-01-26 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (format_floating): Simplify the computation |
| of precision. |
| |
| 2017-01-26 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and |
| HAVE_DFmode before using XFmode or DFmode. |
| (parse_directive): Avoid using the z length modifier to avoid |
| the ISO C++98 does not support the ‘z’ gnu_printf length modifier. |
| |
| PR middle-end/78703 |
| * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change |
| to accept adjustment as an array. |
| (get_int_range): New function. |
| (struct directive): Make width and prec arrays. |
| (directive::set_width, directive::set_precision): Call get_int_range. |
| (format_integer, format_floating): Handle width and precision ranges. |
| (format_string, parse_directive): Same. |
| |
| 2017-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/79129 |
| * dwarf2out.c (generate_skeleton_bottom_up): For children with |
| comdat_type_p set, just clone them, but keep the children in the |
| original DIE. |
| |
| PR debug/78835 |
| * dwarf2out.c (prune_unused_types): Mark all functions with DIEs |
| which have direct callers with -fvar-tracking-assignments enabled |
| in the current TU. |
| (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin |
| inside of type units. |
| |
| 2017-01-26 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78703 |
| * gimple-ssa-sprintf.c (struct result_range): Add likely and |
| unlikely counters. |
| (struct format_result): Replace number_chars, number_chars_min, |
| and number_chars_max with a single member of struct result_range. |
| Remove bounded. |
| (format_result::operator+=): Adjust. |
| (struct fmtresult): Remove bounded. Handle likely and unlikely |
| counters. |
| (fmtresult::adjust_for_width_or_precision): New function. |
| (fmtresult:type_max_digits): New function. |
| (bytes_remaining): Handle likely and unlikely counters. |
| (min_bytes_remaining): Remove. |
| (format_percent): Simplify. |
| (format_integer, format_floating): Set likely and unlikely counters. |
| (get_string_length, format_character, format_string): Same. |
| (format_plain, should_warn_p): New function. |
| (maybe_warn): Call should_warn_p. Update diagnostic messages |
| and handle those for all directives, including plain strings. |
| (format_directive): Handle likely and unlikely counters. |
| Remove unnecessary quoting from diagnostics. Add an informational |
| note. |
| (add_bytes): Remove. |
| (pass_sprintf_length::compute_format_length): Simplify. |
| (try_substitute_return_value): Handle likely and unlikely counters. |
| |
| 2017-01-26 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove |
| bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins |
| |
| 2017-01-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/79131 |
| * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take |
| endianess for subregs into account. |
| * lra-constraints.c (lra_constraints): Do risky transformations |
| always on the first iteration. |
| * lra-lives.c (check_pseudos_live_through_calls): Add arg |
| last_call_used_reg_set. |
| (process_bb_lives): Define and use last_call_used_reg_set. |
| * lra.c (lra): Always continue after lra_constraints on the first |
| iteration. |
| |
| 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com> |
| |
| * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long |
| constant. |
| * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto. |
| |
| 2017-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/avx512fintrin.h (_ktest_mask16_u8, |
| _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ... |
| * config/i386/avx512dqintrin.h (_ktest_mask16_u8, |
| _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here. |
| * config/i386/i386-builtin.def (__builtin_ia32_ktestchi, |
| __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use |
| OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F. |
| * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator. |
| (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ. |
| |
| 2017-01-26 Marek Polacek <polacek@redhat.com> |
| |
| PR c/79199 |
| * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL |
| for the third operand. |
| |
| 2017-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/79236 |
| * omp-low.c (struct omp_context): Add simt_stmt field. |
| (scan_omp_for): Return omp_context *. |
| (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD |
| context to the _simt_ SIMD stmt. |
| (lower_omp_for): For combined SIMD with sibling _simt_ |
| SIMD, make sure to use the same decls in _looptemp_ |
| clauses as in the sibling. |
| |
| 2017-01-26 David Sherwood <david.sherwood@arm.com> |
| |
| PR middle-end/79212 |
| * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in |
| all contexts. |
| |
| 2017-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/70465 |
| * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1); |
| emit fld b; fld a; if possible. |
| |
| * brig-builtins.def: Update copyright years. |
| * config/arm/arm_acle_builtins.def: Update copyright years. |
| |
| 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79179 |
| * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY |
| constraint instead of o for the stxsd instruction. |
| |
| 2017-01-25 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order |
| of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD. |
| |
| 2017-01-25 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Fix typo. |
| |
| 2017-01-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/69264 |
| * target.def (vector_alignment_reachable): Improve documentation. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_builtin_vector_alignment_reachable): Simplify |
| and add a comment. |
| * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert |
| earlier changes with respect to TYPE_USER_ALIGN. |
| (vector_alignment_reachable_p): Likewise. Improve dumping. |
| |
| 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/79145 |
| * config/arm/arm.md (xordi3): Force constant operand into a register |
| for TARGET_IWMMXT. |
| |
| 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * doc/invoke.texi (-fstore-merging): Correct default optimization |
| levels at which it is enabled. |
| (-O): Move -fstore-merging from list to... |
| (-O2): ... Here. |
| |
| 2017-01-25 Richard Biener <rguenther@suse.de> |
| |
| PR debug/78363 |
| * omp-expand.c: Include debug.h. |
| (expand_omp_taskreg): Make sure to generate early debug before |
| outlining anything from a function. |
| (expand_omp_target): Likewise. |
| (grid_expand_target_grid_body): Likewise. |
| |
| 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR lto/79061 |
| * asan.c (get_translation_unit_decl): New function. |
| (asan_add_global): Extract modules file name from globals |
| TRANSLATION_UNIT_DECL name. |
| |
| 2017-01-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/77439 |
| * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction |
| for long calls with APCS frame and VFP. |
| |
| 2017-01-24 David Malcolm <dmalcolm@redhat.com> |
| |
| * cfg.c (original_copy_tables_initialized_p): New function. |
| * cfg.h (original_copy_tables_initialized_p): New decl. |
| * cfgrtl.c (relink_block_chain): Guard the call to |
| free_original_copy_tables with a call to |
| original_copy_tables_initialized_p. |
| * cgraph.h (symtab_node::native_rtl_p): New decl. |
| * cgraphunit.c (symtab_node::native_rtl_p): New function. |
| (symtab_node::needed_p): Don't assert for early assembly output |
| for __RTL functions. |
| (cgraph_node::finalize_function): Set "force_output" for __RTL |
| functions. |
| (cgraph_node::analyze): Bail out early for __RTL functions. |
| (analyze_functions): Update assertion to support __RTL functions. |
| (cgraph_node::expand): Bail out early for __RTL functions. |
| * final.c (rest_of_clean_state): Don't call delete_tree_ssa for |
| __RTL functions. |
| * function.h (struct function): Update comment for field |
| "pass_startwith". |
| * gimple-expr.c: Include "tree-pass.h". |
| (gimple_has_body_p): Return false for __RTL functions. |
| * Makefile.in (OBJS): Add run-rtl-passes.o. |
| * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New |
| accessor. |
| (gcc::pass_manager::get_clean_slate): New accessor. |
| * passes.c: Include "insn-addr.h". |
| (should_skip_pass_p): Add logging. Update logic for running |
| "expand" to be compatible with both __GIMPLE and __RTL. Guard |
| property-provider override so it is only done for gimple passes. |
| Don't skip dfinit. |
| (skip_pass): New function. |
| (execute_one_pass): Call skip_pass when skipping passes. |
| * read-md.c (md_reader::read_char): Support filtering |
| the input to a subset of line numbers. |
| (md_reader::md_reader): Initialize fields |
| m_first_line and m_last_line. |
| (md_reader::read_file_fragment): New function. |
| * read-md.h (md_reader::read_file_fragment): New decl. |
| (md_reader::m_first_line): New field. |
| (md_reader::m_last_line): New field. |
| * read-rtl-function.c (function_reader::create_function): Only |
| create cfun if it doesn't already exist. Set PROP_rtl on cfun's |
| curr_properties. Set DECL_INITIAL to a dummy block. |
| (read_rtl_function_body_from_file_range): New function. |
| * read-rtl-function.h (read_rtl_function_body_from_file_range): |
| New decl. |
| * run-rtl-passes.c: New file. |
| * run-rtl-passes.h: New file. |
| |
| 2017-01-24 Jeff Law <law@redhat.com> |
| |
| * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase |
| buffer size. |
| |
| 2017-01-24 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/79159 |
| * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function. |
| (record_nonwrapping_iv): Improve boundary using above function if no |
| value range information. |
| |
| 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * brig-builtins.def: New file. |
| * builtins.def (DEF_HSAIL_BUILTIN): New macro. |
| (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. |
| (DEF_HSAIL_SAT_BUILTIN): Likewise. |
| (DEF_HSAIL_INTR_BUILTIN): Likewise. |
| (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. |
| * builtin-types.def (BT_INT8): New. |
| (BT_INT16): Likewise. |
| (BT_UINT8): Likewise. |
| (BT_UINT16): Likewise. |
| (BT_FN_ULONG): Likewise. |
| (BT_FN_UINT_INT): Likewise. |
| (BT_FN_UINT_ULONG): Likewise. |
| (BT_FN_UINT_LONG): Likewise. |
| (BT_FN_UINT_PTR): Likewise. |
| (BT_FN_ULONG_PTR): Likewise. |
| (BT_FN_INT8_FLOAT): Likewise. |
| (BT_FN_INT16_FLOAT): Likewise. |
| (BT_FN_UINT32_FLOAT): Likewise. |
| (BT_FN_UINT16_FLOAT): Likewise. |
| (BT_FN_UINT8_FLOAT): Likewise. |
| (BT_FN_UINT64_FLOAT): Likewise. |
| (BT_FN_UINT16_UINT32): Likewise. |
| (BT_FN_UINT32_UINT16): Likewise. |
| (BT_FN_UINT16_UINT16_UINT16): Likewise. |
| (BT_FN_INT_PTR_INT): Likewise. |
| (BT_FN_UINT_PTR_UINT): Likewise. |
| (BT_FN_LONG_PTR_LONG): Likewise. |
| (BT_FN_ULONG_PTR_ULONG): Likewise. |
| (BT_FN_VOID_UINT64_UINT64): Likewise. |
| (BT_FN_UINT8_UINT8_UINT8): Likewise. |
| (BT_FN_INT8_INT8_INT8): Likewise. |
| (BT_FN_INT16_INT16_INT16): Likewise. |
| (BT_FN_INT_INT_INT): Likewise. |
| (BT_FN_UINT_FLOAT_UINT): Likewise. |
| (BT_FN_FLOAT_UINT_UINT): Likewise. |
| (BT_FN_ULONG_UINT_UINT): Likewise. |
| (BT_FN_ULONG_UINT_PTR): Likewise. |
| (BT_FN_ULONG_ULONG_ULONG): Likewise. |
| (BT_FN_UINT_UINT_UINT): Likewise. |
| (BT_FN_VOID_UINT_PTR): Likewise. |
| (BT_FN_UINT_UINT_PTR: Likewise. |
| (BT_FN_UINT32_UINT64_PTR): Likewise. |
| (BT_FN_INT_INT_UINT_UINT): Likewise. |
| (BT_FN_UINT_UINT_UINT_UINT): Likewise. |
| (BT_FN_UINT_UINT_UINT_PTR): Likewise. |
| (BT_FN_UINT_ULONG_ULONG_UINT): Likewise. |
| (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise. |
| (BT_FN_LONG_LONG_UINT_UINT): Likewise. |
| (BT_FN_ULONG_ULONG_UINT_UINT): Likewise. |
| (BT_FN_VOID_UINT32_UINT64_PTR): Likewise. |
| (BT_FN_VOID_UINT32_UINT32_PTR): Likewise. |
| (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise. |
| (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise. |
| (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise. |
| * doc/frontends.texi: List BRIG FE. |
| * doc/install.texi (Testing): Add BRIG tesring requirements. |
| * doc/invoke.texi (Overall Options): Mention BRIG. |
| * doc/standards.texi (Standards): Doucment BRIG HSA version. |
| |
| 2017-01-24 Richard Biener <rguenther@suse.de> |
| |
| PR translation/79208 |
| * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic. |
| |
| 2017-01-24 Martin Jambor <mjambor@suse.cz> |
| |
| PR bootstrap/79198 |
| * ipa-prop.c (ipa_free_all_node_params): Call summary destructor. |
| * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts |
| and known_contexts. |
| |
| 2017-01-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/79123 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure |
| casts from signed to unsigned really don't have a range. |
| |
| 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to |
| GMP_RNDx for compatiblity. |
| |
| 2017-01-24 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/79132 |
| * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert |
| that would prevent us to call alloca with -1 as argument. |
| |
| 2017-01-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (output_compilation_unit_header, output_file_names): |
| Avoid -Wformat-security warning. |
| |
| 2017-01-23 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve |
| cost table. |
| |
| 2017-01-23 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78703 |
| * gimple-ssa-sprintf.c (warn_level): New global. |
| (format_integer): Use it here and throughout the rest of the file. |
| Use the same switch to compute sign as base. |
| (maybe_warn): New function. |
| (format_directive): Factor out warnings into maybe_warn. |
| Add debugging output. Use warn_level. |
| (add_bytes): Use warn_level. |
| (pass_sprintf_length::compute_format_length): Add debugging output. |
| (try_substitute_return_value): Same. |
| (pass_sprintf_length::handle_gimple_call): Set and use warn_level. |
| |
| PR middle-end/78703 |
| * gimple-ssa-sprintf.c (struct format_result): Remove constant member. |
| (struct fmtresult, format_integer, format_floating): Adjust. |
| (fmtresult::fmtresult): Set max correctly in two argument ctor. |
| (get_string_length, format_string,format_directive): Same. |
| (pass_sprintf_length::compute_format_length): Same. |
| (try_substitute_return_value): Simplify slightly. |
| |
| PR middle-end/78703 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting. |
| (fmtresult::operator+=): Outlined. |
| (struct fmtresult): Add ctors. |
| (struct conversion_spec): Rename... |
| (struct directive): ...to this. Add and remove data members. |
| (directive::set_width, directive::set_precision): New functions. |
| (format_percent): Use fmtresult ctor. |
| (get_width_and_precision): Remove. |
| (format_integer): Make naming changes. Avoid computing width and |
| precision. |
| (format_floating): Same. Adjust indentation. |
| (format_character, format_none): New functions. |
| (format_string): Moved character handling to format_character. |
| (format_directive): Remove arguments, change return type. |
| (parse_directive): New function. |
| (pass_sprintf_length::compute_format_length): Move directive |
| parsing to parse_directive. |
| |
| 2017-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (assign_assembler_name_if_neeeded): Rename to ... |
| (assign_assembler_name_if_needed): ... this. |
| * tree.c (assign_assembler_name_if_neeeded): Rename to ... |
| (assign_assembler_name_if_needed): ... this. |
| (free_lang_data_in_cgraph): Adjust callers. |
| * cgraphunit.c (cgraph_node::analyze): Likewise. |
| * omp-expand.c (expand_omp_taskreg, expand_omp_target): |
| Likewise. |
| |
| 2017-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79088 |
| PR tree-optimization/79188 |
| * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code |
| resetting loop bounds after last path deletion. Reset loop |
| bounds of the target loop, make code match the comments. |
| * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute): |
| Make sure loops need no fixups. |
| |
| 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert |
| exponent support with double type for first argument. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed |
| type returned by __builtin_vec_extract_sig, |
| __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp |
| functions from "vector int" to "vector unsigned int" or from |
| "vector long long int" to "vector unsigned long long int". |
| Changed type returned by __builtin_vec_extract_exp, |
| __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp |
| functions from "vector int" to "vector unsigned int" or from |
| "vector long long int" to "vector unsigned long long int". |
| Changed return type of __builtin_vec_test_data_class, |
| __builtin_vec_test_data_class_sp, and |
| __builtin_vec_test_data_class_dp from "vector int" to |
| "vector bool int" or from "vector long long int" to "vector bool |
| long long int" and changed second argument type from "unsigned |
| int" to "int". Added new overloaded function forms "vector float |
| __builtin_vec_insert_exp (vector float, vector unsigned int)" and |
| "vector float __builtin_vec_insert_exp_sp (vector float, vector |
| unsigned int)" and "vector double __builtin_vec_insert_exp (vector |
| double, vector unsigned long long int)" and "vector double |
| __builtin_vec_insert_exp_dp (vector double, vector unsigned long |
| long int)". Changed return type of |
| __builtin_scalar_test_data_class and |
| __builtin_scalar_test_data_class_sp and |
| __builtin_scalar_test_data_class_dp from "unsigned int" to "bool |
| int" and changed second argument from "unsigned int" to "int". |
| Changed type returned by __builtin_scalar_test_neg, |
| __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp |
| from "int" to "bool int". Added new overloaded function form |
| "double __builtin_scalar_insert_exp (double, unsigned long long int)". |
| * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert |
| exponent double-precision with floating point first argument. |
| * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust |
| documentation of scalar_test_data_class, scalar_test_neg, |
| scalar_extract_sig, scalar_extract_exp, scalar_insert_exp, |
| vector_extract_exp, vec_extract_sig, vec_insert_exp, and |
| vec_test_data_class built-in functions to reflect refinements in |
| their type signatures. |
| |
| 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase |
| size of buf. |
| (aarch64_elf_asm_destructor): Likewise. |
| |
| 2017-01-23 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78634 |
| * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function. |
| (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define. |
| * ifcvt.c (noce_try_cmove): Add missing cost check. |
| |
| PR rtl-optimization/71724 |
| * combine.c (if_then_else_cond): Look for situations where it is |
| beneficial to undo the work of one of the recursive calls. |
| |
| 2017-01-23 Bin Cheng <bin.cheng@arm.com> |
| |
| PR tree-optimization/70754 |
| * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. |
| (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert |
| combined stmt before it if not NULL. |
| (combine_chains): Process refs reversely and compute dominance point |
| for root ref. |
| |
| 2017-01-23 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/79196 |
| * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ... |
| (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp |
| instead of memcmp. |
| (strlen_optimize_stmt): Call the renamed function. |
| |
| 2017-01-23 Michael Matz <matz@suse.de> |
| |
| PR tree-optimization/78384 |
| * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. |
| |
| 2017-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79186 |
| * tree-vrp.c (register_new_assert_for): Make sure we've seen |
| both incoming edges before moving an assert. |
| |
| 2017-01-23 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (load_from_param_1): Removed. |
| (load_from_unmodified_param): Bits from load_from_param_1 put back |
| here. |
| (load_from_param): Removed. |
| (compute_complex_assign_jump_func): Removed stmt2 and just replaced it |
| with stmt. Reverted back to use of load_from_unmodified_param. |
| |
| 2017-01-23 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/79108 |
| * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()). |
| (ipa_node_params): Annotate with GTY((for_user)). Make descriptors |
| field a pointer to garbage collected vector, mark lattices and |
| ipcp_orig_node with GTY((skip)). |
| (ipa_get_param_count): Adjust to descriptors being a pointer. |
| (ipa_get_param): Likewise. |
| (ipa_get_type): Likewise. |
| (ipa_get_param_move_cost): Likewise. |
| (ipa_set_param_used): Likewise. |
| (ipa_get_controlled_uses): Likewise. |
| (ipa_set_controlled_uses): Likewise. |
| (ipa_is_param_used): Likewise. |
| (ipa_node_params_t): Move into garbage collector. New methods insert |
| and remove. |
| (ipa_node_params_sum): Annotate wth GTY(()). |
| (ipa_check_create_node_params): Adjust to ipa_node_params_sum being |
| garbage collected. |
| (ipa_load_from_parm_agg): Adjust declaration. |
| * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer. |
| * ipa-profile.c (ipa_profile): Likewise. |
| * ipa-prop.c (ipa_get_param_decl_index_1): Likewise. |
| (ipa_populate_param_decls): Make descriptors parameter garbage |
| collected. |
| (ipa_dump_param): Adjust to descriptors being a pointer. |
| (ipa_alloc_node_params): Likewise. |
| (ipa_initialize_node_params): Likewise. |
| (load_from_param_1): Make descriptors parameter garbage collected. |
| (load_from_unmodified_param): Likewise. |
| (load_from_param): Likewise. |
| (ipa_load_from_parm_agg): Likewise. |
| (ipa_node_params::~ipa_node_params): Removed. |
| (ipa_free_all_node_params): Remove call to delete operator. |
| (ipa_node_params_t::insert): New. |
| (ipa_node_params_t::remove): Likewise. |
| (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer, |
| copy known_csts and known_contexts vectors. |
| (ipa_read_node_info): Adjust to descriptors being a pointer. |
| (ipcp_modif_dom_walker): Make m_descriptors field garbage |
| collected. |
| (ipcp_transform_function): Make descriptors variable garbage |
| collected. |
| |
| 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics. |
| * config/i386/avx512dqintrin.h: Ditto. |
| * config/i386/avx512fintrin.h: Ditto. |
| * config/i386/i386.c: Handle new builtins. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md (ktest<mode>, kortest<mode>): New. |
| (UNSPEC_KORTEST, UNSPEC_KTEST): New. |
| |
| 2017-01-23 Jakub Jelinek <jakub@redhat.com> |
| Martin Liska <mliska@suse.cz> |
| |
| * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE. |
| * asan.c (asan_expand_poison_ifn): Support stores and use |
| appropriate ASAN report function. |
| * internal-fn.c (expand_ASAN_POISON_USE): New function. |
| * internal-fn.def (ASAN_POISON_USE): Declare. |
| * tree-into-ssa.c (maybe_add_asan_poison_write): New function. |
| (maybe_register_def): Create ASAN_POISON_USE when sanitizing. |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove |
| ASAN_POISON calls w/o LHS. |
| * tree-ssa.c (execute_update_addresses_taken): Create clobber |
| for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS |
| from ASAN_MARK (POISON, &x, ...) coming to a PHI node. |
| * gimplify.c (asan_poison_variables): Add attribute |
| use_after_scope_memory to variables that really needs to live |
| in memory. |
| * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when |
| having the attribute. |
| |
| 2017-01-23 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (create_asan_shadow_var): New function. |
| (asan_expand_poison_ifn): Likewise. |
| * asan.h (asan_expand_poison_ifn): New declaration. |
| * internal-fn.c (expand_ASAN_POISON): Likewise. |
| * internal-fn.def (ASAN_POISON): New builtin. |
| * sanopt.c (pass_sanopt::execute): Expand |
| asan_expand_poison_ifn. |
| * tree-inline.c (copy_decl_for_dup_finish): Make function |
| external. |
| * tree-inline.h (copy_decl_for_dup_finish): Likewise. |
| * tree-ssa.c (is_asan_mark_p): New function. |
| (execute_update_addresses_taken): Rewrite local variables |
| (identified just by use-after-scope as addressable) into SSA. |
| |
| 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific): opensource.apple.com uses https |
| now. Remove trailing slash. |
| |
| 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * README.Portability: Remove note on an Irix compatibility issue. |
| |
| 2017-01-22 Dimitry Andric <dim@FreeBSD.org> |
| |
| * gcov.c (INCLUDE_ALGORITHM): Define. |
| (INCLUDE_VECTOR): Define. |
| No longer include <vector> and <algorithm> directly. |
| |
| 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Thread-Local): Change www.akkadia.org reference |
| to https. |
| * doc/invoke.texi (Code Gen Options): Ditto. |
| |
| 2017-01-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/78407 |
| * cfg.c (update_bb_profile_for_threading): Fix updating of probablity. |
| |
| 2017-01-21 Bernd Schmidt <bschmidt@redhat.com> |
| |
| rtl-optimization/79125 |
| * cprop.c (local_cprop_pass): Handle cases where we make an |
| unconditional trap. |
| |
| 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/61729 |
| PR target/77850 |
| * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to |
| read from, for big endian. |
| |
| 2017-01-20 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register |
| register pauth builtins for LP64 only. |
| |
| 2017-01-20 Marek Polacek <polacek@redhat.com> |
| |
| PR c/79152 |
| * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive |
| non-case labels. |
| |
| 2017-01-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless |
| of safelen status. |
| * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev. |
| * passes.c (dump_properties): Handle PROP_gimple_lomp_dev. |
| * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev. |
| |
| 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/71270 |
| * config/arm/arm.c (neon_valid_immediate): Reject vector constants |
| in big-endian mode when they are not a single duplicated value. |
| |
| 2017-01-20 Richard Biener <rguenther@suse.de> |
| |
| * BASE-VER: Bump to 7.0.1. |
| |
| 2017-01-20 Alexander Monakov <amonakov@ispras.ru> |
| |
| * omp-low.c (omplow_simd_context): New struct. Use it... |
| (lower_rec_simd_input_clauses): ...here and... |
| (lower_rec_input_clauses): ...here to hold common data. Adjust all |
| references to idx, lane, max_vf, is_simt. |
| |
| 2017-01-20 Graham Markall <graham.markall@embecosm.com> |
| |
| * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when |
| mcpu=nps400. |
| |
| 2017-01-20 Martin Jambor <mjambor@suse.cz> |
| |
| * hsa.h: Renaed to hsa-common.h. Adjusted a comment. |
| * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to |
| gt-hsa-common.h. |
| * Makefile.in (OBJS): Rename hsa.o to hsa-common.o. |
| (GTFILES): Rename hsa.c to hsa-common.c. |
| * hsa-brig.c: Change include of hsa.h to hsa-common.h. |
| * hsa-dump.c: Likewise. |
| * hsa-gen.c: Likewise. |
| * hsa-regalloc.c: Likewise. |
| * ipa-hsa.c: Likewise. |
| * omp-expand.c: Likewise. |
| * omp-low.c: Likewise. |
| * toplev.c: Likewise. |
| |
| 2017-01-20 Marek Polacek <polacek@redhat.com> |
| |
| PR c/64279 |
| * doc/invoke.texi: Document -Wduplicated-branches. |
| * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR, |
| COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR, |
| POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT, |
| STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions |
| return 0 only when not OEP_LEXICOGRAPHIC. |
| (fold_build_cleanup_point_expr): Use the expression |
| location when building CLEANUP_POINT_EXPR. |
| * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC. |
| * tree.c (add_expr): Handle error_mark_node. |
| |
| 2017-01-20 Martin Liska <mliska@suse.cz> |
| |
| PR lto/69188 |
| * tree-profile.c (init_ic_make_global_vars): Do not call |
| finalize_decl. |
| (gimple_init_gcov_profiler): Likewise. |
| |
| 2017-01-20 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/71190 |
| * cgraph.h (maybe_create_reference): Remove argument and |
| update comment. |
| * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one |
| argument. |
| * ipa-cp.c (create_specialized_node): Likewise. |
| * symtab.c (symtab_node::maybe_create_reference): Handle |
| VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type. |
| |
| 2017-01-20 Martin Liska <mliska@suse.cz> |
| |
| * read-rtl-function.c (function_reader::create_function): Use |
| build_decl instread of build_decl_stat. |
| |
| 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics. |
| * config/i386/avx512dqintrin.h: Ditto. |
| * config/i386/avx512fintrin.h: Ditto. |
| * config/i386/i386-builtin-types.def: Add new types. |
| * config/i386/i386.c: Handle new types. |
| * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi) |
| (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi) |
| (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi) |
| (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi) |
| (__builtin_ia32_kshiftridi): New. |
| * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>. |
| |
| 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/78875 |
| PR target/79140 |
| * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally |
| define to rs6000_init_stack_protect_guard. |
| (rs6000_init_stack_protect_guard): New function. |
| |
| 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> |
| Yunqiang Su <yunqiang.su@imgtec.com> |
| |
| * config.gcc (supported_defaults): Add madd4. |
| (with_madd4): Add validation. |
| (all_defaults): Add madd4. |
| * config/mips/mips.opt (mmadd4): New option. |
| * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for |
| mmadd4. |
| (TARGET_CPU_CPP_BUILTINS): Add builtin_define for |
| __mips_no_madd4. |
| (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4. |
| (ISA_HAS_FUSED_MADD4): Likewise. |
| * doc/invoke.texi (-mmadd4): Document the new option. |
| * doc/install.texi (--with-madd4): Document the new option. |
| |
| 2017-01-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New |
| entries for AARCH64_PAUTH_BUILTIN_XPACLRI, |
| AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716. |
| (aarch64_init_pauth_hint_builtins): New. |
| (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins. |
| (aarch64_expand_builtin): Expand new builtins. |
| |
| 2017-01-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note. |
| * combine-stack-adj.c (no_unhandled_cfa): Handle |
| REG_CFA_TOGGLE_RA_MANGLE. |
| * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE. |
| * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF |
| info for return address signing. |
| (aarch64_expand_epilogue): Likewise. |
| |
| 2017-01-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_return_address_signing_enabled): New declaration. |
| * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): |
| New function. |
| (aarch64_expand_prologue): Sign return address before it's pushed onto |
| stack. |
| (aarch64_expand_epilogue): Authenticate return address fetched from |
| stack. |
| (aarch64_override_options): Sanity check for ILP32 and ISA level. |
| (aarch64_attributes): New function attributes for "sign-return-address". |
| * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP, |
| UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs. |
| ("*do_return"): Generate combined instructions according to key index. |
| ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New. |
| * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer |
| iterators. |
| (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes. |
| * config/aarch64/aarch64.opt (msign-return-address=): New. |
| * doc/extend.texi (AArch64 Function Attributes): Documents |
| "sign-return-address=". |
| * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=". |
| |
| 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> |
| |
| * doc/invoke.texi: Add missing -mlxc1-sxc1 options to |
| overall option summary. |
| |
| 2017-01-19 Jiong Wang <jiong.wang@arm.com> |
| |
| * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a". |
| * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3, |
| AARCH64_ISA_V8_3, TARGET_ARMV8_3): New. |
| * doc/invoke.texi (AArch64 Options): Document "armv8.3-a". |
| |
| 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable |
| -mpower9-minmax by default for -mcpu=power9. |
| (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE |
| 128-bit floating point. |
| |
| 2017-01-20 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if |
| optimizing for size. |
| |
| 2017-01-20 Alan Modra <amodra@gmail.com> |
| |
| PR target/79144 |
| * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name |
| for strcmp and strncmp from corresponding builtin decl. |
| |
| 2017-01-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h |
| instead of i386/rtems-64.h. |
| * config/i386/rtems-64.h: Remove. |
| |
| 2017-01-19 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78478 |
| Revert: |
| 2013-11-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define. |
| |
| 2017-01-19 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): |
| Change int to HOST_WIDE_INT. |
| * config/aarch64/aarch64-protos.h |
| (aarch64_simd_gen_const_vector_dup): Likewise. |
| * config/aarch64/aarch64-simd.md: Add copysign<mode>3. |
| |
| 2017-01-19 David Malcolm <dmalcolm@redhat.com> |
| |
| * langhooks-def.h (lhd_type_for_size): New decl. |
| (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size. |
| * langhooks.c (lhd_type_for_size): New function, taken from |
| lto_type_for_size. |
| |
| 2017-01-19 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add |
| define_bypass for CR latency. |
| (power9-cracked-alu): Update bypass latency and remove power9-branch. |
| (power9-alu2): Add define_bypass for CR latency. |
| (power9-cmp): New. |
| (power9-mul): Update insn latency. |
| (power9-mul-compare): Update insn latency, bypass latency and remove |
| power9-branch. |
| |
| 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): |
| Delete. |
| * config/aarch64/aarch64.md |
| (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to |
| aarch64_nopcrelative_literal_loads. |
| (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. |
| |
| 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com> |
| |
| * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for |
| TARGET_LOONGSON_3A. |
| (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A. |
| |
| 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com> |
| |
| PR target/78176 |
| * config.gcc (supported_defaults): Add lxc1-sxc1. |
| (with_lxc1_sxc1): Add validation. |
| (all_defaults): Add lxc1-sxc1. |
| * config/mips/mips.opt (mlxc1-sxc1): New option. |
| * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for |
| mlxc1-sxc1. |
| (TARGET_CPU_CPP_BUILTINS): Add builtin_define for |
| __mips_no_lxc1_sxc1. |
| (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1. |
| * doc/invoke.texi (-mlxc1-sxc1): Document the new option. |
| * doc/install.texi (--with-lxc1-sxc1): Document the new option. |
| |
| 2017-01-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/72488 |
| * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make |
| sure to restore SSA info. |
| * tree-ssa.c (verify_ssa): Verify SSA info is not shared. |
| |
| 2017-01-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR rtl-optimization/79121 |
| * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness |
| of the inner type when shifting an extended value. |
| |
| 2017-01-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/78407 |
| * symtab.c (symtab_node::equal_address_to): Fix comparing of |
| interposable aliases. |
| |
| 2017-01-18 Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/78516 |
| * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints. |
| Use the evmergelohi instruction. |
| (mov_si<mode>_e500_subreg4_2_le): Likewise. |
| (mov_sitf_e500_subreg8_2_be): Likewise. |
| (mov_sitf_e500_subreg12_2_le): Likewise. |
| (mov_si<mode>_e500_subreg0_2_le): Fix constraints. |
| (mov_si<mode>_e500_subreg4_2_be): Likewise. |
| (mov_sitf_e500_subreg8_2_le): Likewise. |
| (mov_sitf_e500_subreg12_2_be): Likewise. |
| |
| 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vbpermq): Change "type" |
| attribute from vecsimple to vecperm. |
| (altivec_vbpermq2): Likewise. |
| |
| 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/79040 |
| * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz. |
| |
| 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> |
| * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg. |
| * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand |
| strcmp. Fix bug where comparison didn't stop with zero byte. Fix |
| case where N arg is SIZE_MAX. |
| * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare. |
| (cmpstrsi): Add pattern. |
| |
| 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add |
| __builtin_vec_revb builtins. |
| * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add |
| built-in functions to support generation of the ISA 3.0 XXBR<x> |
| vector byte reverse instructions. |
| (P9V_BUILTIN_XXBRQ_V1TI): Likewise. |
| (P9V_BUILTIN_XXBRD_V2DI): Likewise. |
| (P9V_BUILTIN_XXBRD_V2DF): Likewise. |
| (P9V_BUILTIN_XXBGW_V4SI): Likewise. |
| (P9V_BUILTIN_XXBGW_V4SF): Likewise. |
| (P9V_BUILTIN_XXBGH_V8HI): Likewise. |
| (P9V_BUILTIN_VEC_REVB): Likewise. |
| * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to |
| generate the ISA 3.0 XXBR<x> vector byte reverse instructions. |
| (p9_xxbrq_v16qi): Likewise. |
| (p9_xxbrd_<mode>, VSX_D iterator): Likewise. |
| (p9_xxbrw_<mode>, VSX_W iterator): Likewise. |
| (p9_xxbrh_v8hi): Likewise. |
| * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0. |
| * doc/extend.texi (RS/6000 Altivec Built-ins): Document the |
| vec_revb built-in functions. |
| |
| 2017-01-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/78952 |
| * config/i386/i386.md (any_extract): New code iterator. |
| (*insvqi_2): Use any_extract for source operand. |
| (*insvqi_3): Use any_shiftrt for source operand. |
| |
| 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_sched_adjust_priority) |
| New function. |
| (TARGET_SCHED_ADJUST_PRIORITY): Define target hook. |
| |
| 2017-01-18 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Allow default for --with-target-bdw-gc-include. |
| |
| 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_bperm): Change #define. |
| * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant. |
| (altivec_vbpermq2): New define_insn. |
| (altivec_vbpermd): Likewise. |
| * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic |
| function interface. |
| (VBPERMD): Likewise. |
| (VBPERM): New polymorphic function interface. |
| * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table): |
| Add entries for P9V_BUILTIN_VEC_VBPERM. |
| * doc/extend.texi: Add interfaces for vec_bperm. |
| |
| 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase |
| first letter of error messages. |
| (s390_resolve_overloaded_builtin): Likewise. |
| * config/s390/s390.c (s390_expand_builtin): Likewise. |
| (s390_invalid_arg_for_unprototyped_fn): Likewise. |
| (s390_valid_target_attribute_inner_p): Likewise. |
| * config/s390/s390.md ("tabort"): Likewise. |
| |
| 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com> |
| |
| * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro. |
| (ISA_AVOID_DIV_HILO): New macro. |
| (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro. |
| (ISA_HAS_DDIV): Likewise. |
| |
| 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * doc/invoke.texi (fabi-version): Correct number of occurrences. |
| |
| 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| * doc/invoke.texi (fabi-version): Spelling fix. |
| |
| 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR c++/70182 |
| * doc/invoke.texi (fabi-version): Mention mangling fix for |
| operator names. |
| |
| 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> |
| |
| PR c++/77489 |
| * doc/invoke.texi (fabi-version): Document discriminator mangling. |
| |
| 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/78875 |
| * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle |
| the new options. |
| * config/rs6000/rs6000.md (stack_protect_set): Handle the new more |
| flexible settings. |
| (stack_protect_test): Ditto. |
| * config/rs6000/rs6000.opt (mstack-protector-guard=, |
| mstack-protector-guard-reg=, mstack-protector-guard-offset=): New |
| options. |
| * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]: |
| Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and |
| -mstack-protector-guard-offset=. |
| (RS/6000 and PowerPC Options): Ditto. |
| |
| 2017-01-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (MASK_CLASS_P): New define. |
| * config/i386/i386.c (inline_secondary_memory_needed): Ensure that |
| there are no registers from different register sets also when |
| mask registers are used. Update function comment. |
| * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative |
| to (*k/*r) and (*k/*km) alternatives. |
| |
| 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter. |
| * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove. |
| (EH_RETURN_HANDLER_RTX): New define. |
| * config/aarch64/aarch64.c (aarch64_frame_pointer_required): |
| Force frame pointer in EH return functions. |
| (aarch64_expand_epilogue): Add barrier for eh_return. |
| (aarch64_final_eh_return_addr): Remove. |
| (aarch64_eh_return_handler_rtx): New function. |
| * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr): |
| Remove. |
| (aarch64_eh_return_handler_rtx): New prototype. |
| |
| 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_rlmi): New #define. |
| (vec_vrlnm): Likewise. |
| (vec_rlnm): Likewise. |
| * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value. |
| (UNSPEC_VRLNM): Likewise. |
| (VIlong): New mode iterator. |
| (altivec_vrl<VI_char>mi): New define_insn. |
| (altivec_vrl<VI_char>nm): Likewise. |
| * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic |
| function entry. |
| (VRLDNM): Likewise. |
| (RLNM): New polymorphic function entry. |
| (VRLWMI): New monomorphic function entry. |
| (VRLDMI): Likewise. |
| (RLMI): New polymorphic function entry. |
| * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add |
| new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM. |
| * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and |
| vec_vrlnm. |
| |
| 2017-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/78839 |
| * dwarf2out.c (field_byte_offset): Restore the |
| PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET |
| and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold. |
| (analyze_variants_discr, gen_variant_part): Use fold_build2 instead |
| of build2 + fold. |
| |
| 2017-01-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/67205 |
| * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define |
| |
| 2017-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/71669 |
| * dwarf2out.c (add_data_member_location_attribute): For constant |
| offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute |
| instead of DW_AT_data_member_location, DW_AT_bit_offset and |
| DW_AT_byte_size attributes. |
| |
| 2017-01-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference |
| after forcing to constant memory when the code model is medium. |
| |
| 2017-01-17 Julia Koval <julia.koval@intel.com> |
| |
| PR target/76731 |
| * config/i386/avx512fintrin.h |
| (_mm512_i32gather_ps): Change __addr type to void const*. |
| (_mm512_mask_i32gather_ps): Ditto. |
| (_mm512_i32gather_pd): Ditto. |
| (_mm512_mask_i32gather_pd): Ditto. |
| (_mm512_i64gather_ps): Ditto. |
| (_mm512_mask_i64gather_ps): Ditto. |
| (_mm512_i64gather_pd): Ditto. |
| (_mm512_mask_i64gather_pd): Ditto. |
| (_mm512_i32gather_epi32): Ditto. |
| (_mm512_mask_i32gather_epi32): Ditto. |
| (_mm512_i32gather_epi64): Ditto. |
| (_mm512_mask_i32gather_epi64): Ditto. |
| (_mm512_i64gather_epi32): Ditto. |
| (_mm512_mask_i64gather_epi32): Ditto. |
| (_mm512_i64gather_epi64): Ditto. |
| (_mm512_mask_i64gather_epi64): Ditto. |
| (_mm512_i32scatter_ps): Change __addr type to void*. |
| (_mm512_mask_i32scatter_ps): Ditto. |
| (_mm512_i32scatter_pd): Ditto. |
| (_mm512_mask_i32scatter_pd): Ditto. |
| (_mm512_i64scatter_ps): Ditto. |
| (_mm512_mask_i64scatter_ps): Ditto. |
| (_mm512_i64scatter_pd): Ditto. |
| (_mm512_mask_i64scatter_pd): Ditto. |
| (_mm512_i32scatter_epi32): Ditto. |
| (_mm512_mask_i32scatter_epi32): Ditto. |
| (_mm512_i32scatter_epi64): Ditto. |
| (_mm512_mask_i32scatter_epi64): Ditto. |
| (_mm512_i64scatter_epi32): Ditto. |
| (_mm512_mask_i64scatter_epi32): Ditto. |
| (_mm512_i64scatter_epi64): Ditto. |
| (_mm512_mask_i64scatter_epi64): Ditto. |
| * config/i386/avx512pfintrin.h |
| (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*. |
| (_mm512_mask_prefetch_i32gather_ps): Ditto. |
| (_mm512_mask_prefetch_i64gather_pd): Ditto. |
| (_mm512_mask_prefetch_i64gather_ps): Ditto. |
| (_mm512_prefetch_i32scatter_pd): Change __addr type to void*. |
| (_mm512_prefetch_i32scatter_ps): Ditto. |
| (_mm512_mask_prefetch_i32scatter_pd): Ditto. |
| (_mm512_mask_prefetch_i32scatter_ps): Ditto. |
| (_mm512_prefetch_i64scatter_pd): Ditto. |
| (_mm512_prefetch_i64scatter_ps): Ditto. |
| (_mm512_mask_prefetch_i64scatter_pd): Ditto. |
| (_mm512_mask_prefetch_i64scatter_ps): Ditto. |
| * config/i386/avx512vlintrin.h |
| (_mm256_mmask_i32gather_ps): Change __addr type to void const*. |
| (_mm_mmask_i32gather_ps): Ditto. |
| (_mm256_mmask_i32gather_pd): Ditto. |
| (_mm_mmask_i32gather_pd): Ditto. |
| (_mm256_mmask_i64gather_ps): Ditto. |
| (_mm_mmask_i64gather_ps): Ditto. |
| (_mm256_mmask_i64gather_pd): Ditto. |
| (_mm_mmask_i64gather_pd): Ditto. |
| (_mm256_mmask_i32gather_epi32): Ditto. |
| (_mm_mmask_i32gather_epi32): Ditto. |
| (_mm256_mmask_i32gather_epi64): Ditto. |
| (_mm_mmask_i32gather_epi64): Ditto. |
| (_mm256_mmask_i64gather_epi32): Ditto. |
| (_mm_mmask_i64gather_epi32): Ditto. |
| (_mm256_mmask_i64gather_epi64): Ditto. |
| (_mm_mmask_i64gather_epi64): Ditto. |
| (_mm256_i32scatter_ps): Change __addr type to void*. |
| (_mm256_mask_i32scatter_ps): Ditto. |
| (_mm_i32scatter_ps): Ditto. |
| (_mm_mask_i32scatter_ps): Ditto. |
| (_mm256_i32scatter_pd): Ditto. |
| (_mm256_mask_i32scatter_pd): Ditto. |
| (_mm_i32scatter_pd): Ditto. |
| (_mm_mask_i32scatter_pd): Ditto. |
| (_mm256_i64scatter_ps): Ditto. |
| (_mm256_mask_i64scatter_ps): Ditto. |
| (_mm_i64scatter_ps): Ditto. |
| (_mm_mask_i64scatter_ps): Ditto. |
| (_mm256_i64scatter_pd): Ditto. |
| (_mm256_mask_i64scatter_pd): Ditto. |
| (_mm_i64scatter_pd): Ditto. |
| (_mm_mask_i64scatter_pd): Ditto. |
| (_mm256_i32scatter_epi32): Ditto. |
| (_mm256_mask_i32scatter_epi32): Ditto. |
| (_mm_i32scatter_epi32): Ditto. |
| (_mm_mask_i32scatter_epi32): Ditto. |
| (_mm256_i32scatter_epi64): Ditto. |
| (_mm256_mask_i32scatter_epi64): Ditto. |
| (_mm_i32scatter_epi64): Ditto. |
| (_mm_mask_i32scatter_epi64): Ditto. |
| (_mm256_i64scatter_epi32): Ditto. |
| (_mm256_mask_i64scatter_epi32): Ditto. |
| (_mm_i64scatter_epi32): Ditto. |
| (_mm_mask_i64scatter_epi32): Ditto. |
| (_mm256_i64scatter_epi64): Ditto. |
| (_mm256_mask_i64scatter_epi64): Ditto. |
| (_mm_i64scatter_epi64): Ditto. |
| (_mm_mask_i64scatter_epi64): Ditto. |
| * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT) |
| (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT) |
| (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT) |
| (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT) |
| (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT) |
| (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT) |
| (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT) |
| (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT) |
| (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT) |
| (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT) |
| (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT) |
| (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT) |
| (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT) |
| (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT) |
| (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT) |
| (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT) |
| (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT) |
| (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT) |
| (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT) |
| (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT) |
| (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT) |
| (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT) |
| (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT) |
| (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT) |
| (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT) |
| (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT) |
| (VOID_QI_V8DI_PCINT_INT_INT): Remove. |
| (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT) |
| (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT) |
| (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT) |
| (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT) |
| (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT) |
| (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT) |
| (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT) |
| (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT) |
| (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT) |
| (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT |
| (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT) |
| (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT) |
| (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT) |
| (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT) |
| (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT) |
| (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT) |
| (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT) |
| (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT) |
| (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT) |
| (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT) |
| (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT) |
| (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT) |
| (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT) |
| (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT) |
| (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT) |
| (VOID_QI_V8DI_PCVOID_INT_INT): Add. |
| * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin |
| definitions accordingly. |
| |
| 2017-01-17 Kito Cheng <kito.cheng@gmail.com> |
| Kuan-Lin Chen <kuanlinchentw@gmail.com> |
| |
| PR target/79079 |
| * internal-fn.c (expand_mul_overflow): Use convert_modes instead of |
| gen_lowpart. |
| |
| 2017-01-17 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/79058 |
| * ira-conflicts.c (ira_build_conflicts): Update total conflict |
| hard regs for inner regno. |
| |
| 2017-01-17 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/71207 |
| * ipa-polymorphic-call.c (contains_type_p): Fix wrong |
| assumption and add comment. |
| |
| 2017-01-17 Nathan Sidwell <nathan@acm.org> |
| |
| * ipa-visibility.c (localize_node): New function, broken out of ... |
| (function_and_variable_visibility): ... here. Call it. |
| |
| 2017-01-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77445 |
| * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): |
| correctly set frequency of oudgoing edge. |
| (duplicate_thread_path): Fix profile updating. |
| |
| 2017-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/79046 |
| * configure.ac: Add GCC_BASE_VER. |
| * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get |
| version from BASE-VER file. |
| (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). |
| (gcc.o): Depend on $(BASEVER). |
| * common.opt (dumpfullversion): New option. |
| * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. |
| * doc/invoke.texi: Document -dumpfullversion. |
| * doc/install.texi: Document --with-gcc-major-version-only. |
| * configure: Regenerated. |
| |
| 2017-01-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/71433 |
| * tree-vrp.c (register_new_assert_for): Merge same asserts |
| on all incoming edges. |
| (process_assert_insertions_for): Handle insertions at the |
| beginning of BBs. |
| |
| 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * config/i386/cygwin.h (LIBGCJ_SONAME): Remove. |
| * config/i386/mingw32.h (LIBGCJ_SONAME): Remove. |
| |
| 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/78633 |
| * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid |
| RTL sharing. |
| |
| 2017-01-17 Alan Modra <amodra@gmail.com> |
| |
| PR target/79066 |
| * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic. |
| * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow |
| symbolic stack limit when pic. |
| |
| 2017-01-16 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78608 |
| * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN. |
| |
| 2017-01-16 Jeff Law <law@redhat.com> |
| |
| Revert: |
| 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com> |
| * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection |
| for several include directories that may be relative to sysroot. |
| * config/i386/x-mingw32 (gplus_includedir): Define. |
| (gplus_tool_includedir, gplus_backward_include_dir): Likewise. |
| (native_system_includedir): Likewise. |
| * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not |
| override if TARGET_SYSTEM_ROOT is defined. |
| (NATIVE_SYSTEM_HEADER_DIR): Likewise. |
| |
| PR tree-optimization/79090 |
| PR tree-optimization/33562 |
| PR tree-optimization/61912 |
| PR tree-optimization/77485 |
| * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT |
| and computed trims into the dump file. |
| |
| 2017-01-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove. |
| |
| 2017-01-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/79089 |
| * gimplify.c (gimplify_init_constructor): If want_value and |
| object == lhs, unshare lhs to avoid invalid tree sharing. Formatting |
| fix. |
| |
| PR target/79080 |
| * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on |
| sequence. Formatting fixes. |
| (doloop_optimize): Formatting fixes. |
| |
| PR driver/49726 |
| * gcc.c (debug_level_greater_than_spec_func): New function. |
| (static_spec_functions): Add debug-level-gt spec function. |
| (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of |
| !g0. |
| * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. |
| * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. |
| * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames, |
| gpubnames, ggnu-pubnames, gno-record-gcc-switches, |
| grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs, |
| gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag. |
| |
| 2017-01-16 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and |
| QImode fixups to general and mask registers only. |
| |
| 2017-01-16 Carl Love <cel@us.ibm.com> |
| |
| * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support |
| for built-in functions |
| vector signed char vec_nabs (vector signed char) |
| vector signed short vec_nabs (vector signed short) |
| vector signed int vec_nabs (vector signed int) |
| vector signed long long vec_nabs (vector signed long long) |
| vector float vec_nabs (vector float) |
| vector double vec_nabs (vector double) |
| * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions |
| and NABS overload. |
| * config/rs6000/altivec.md: New define_expand nabs<mode>2 types |
| * config/rs6000/altivec.h: New define for vec_nabs built-in function. |
| * doc/extend.texi: Update the documentation file for the new built-in |
| functions. |
| |
| 2017-01-16 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning |
| message. |
| |
| 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (rtx_is_swappable_p): Change |
| UNSPEC_VSX__XXSPLTD to require special splat handling. |
| |
| 2017-01-16 David Malcolm <dmalcolm@redhat.com> |
| |
| PR bootstrap/78616 |
| * system.h: Poison strndup. |
| |
| 2017-01-16 Alan Modra <amodra@gmail.com> |
| |
| PR target/79098 |
| * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't |
| use a switch. |
| |
| 2017-01-16 Georg-Johann Lay <avr@gjlay.de> |
| |
| * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4. |
| |
| 2017-01-15 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_legitimate_combined_insn): Do not |
| call recog here. Assert that INSN_CODE (insn) is non-negative. |
| |
| 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/72749 |
| * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the |
| fallthrough. |
| * haifa-sched.c (dump_insn_stream): Don't crash if there is a label |
| in the currently scheduled RTL fragment. |
| |
| 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/78751 |
| * ifcvt.c (find_cond_trap): If we generated a non-existing insn, |
| give up. |
| |
| 2017-01-14 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/79090 |
| * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and |
| variable length stores. |
| (compute_trims): Delete dead assignment to *trim_tail. |
| (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with |
| zero length. |
| |
| 2017-01-14 Bernd Schmidt <bschmidt@redhat.com> |
| |
| PR rtl-optimization/78626 |
| PR rtl-optimization/78727 |
| * cprop.c (one_cprop_pass): Collect unconditional traps in the middle |
| of a block, and split such blocks after everything else is finished. |
| |
| 2017-01-14 Alan Modra <amodra@gmail.com> |
| |
| PR target/72749 |
| * combine.c (recog_for_combine_1): Set INSN_CODE before calling |
| target legitimate_combined_insn. |
| * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define. |
| (rs6000_legitimate_combined_insn): New function. |
| * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove |
| all uses. |
| (ctr<mode>_internal3): Rename from *ctr<mode>_internal5. |
| (ctr<mode>_internal4): Rename from *ctr<mode>_internal6. |
| (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name. |
| |
| 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/frontends.texi (G++ and GCC): Remove references to Java. |
| |
| 2017-01-13 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/33562 |
| PR tree-optimization/61912 |
| PR tree-optimization/77485 |
| * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than |
| a statement. |
| (delete_dead_assignment): Likewise. |
| (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than |
| statement to delete_dead_call and delete_dead_assignment. |
| |
| 2017-01-13 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/78304 |
| * substring-locations.c (format_warning_va): Strengthen case 1 so |
| that both endpoints of the substring must be within the format |
| range for just the substring to be printed. |
| |
| 2017-01-13 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable. |
| * config/i386/i386.c (ix86_target_string): Add missing options |
| to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to |
| isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to |
| flags_other and ix86_target_other to flags2_other. Display unknown |
| isa2 options. |
| (ix86_valid_target_attribute_inner_p): Add missing options and |
| reorder options by implied ISAs, as in ix86_target_string. |
| |
| 2017-01-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hash-table.h (hash_table::too_empty_p): New function. |
| (hash_table::expand): Use it. |
| (hash_table::traverse): Likewise. |
| (hash_table::empty_slot): Use sizeof (value_type) instead of |
| sizeof (PTR) to convert bytes to elements. Shrink the table |
| if the current size is excessive for the current number of |
| elements. |
| |
| 2017-01-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira-costs.c (record_reg_classes): Break from the inner loop |
| early once alt_fail is known to be true. Update outer loop |
| handling accordingly. |
| |
| 2017-01-13 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dse.c (decrement_count): New function. |
| (increment_start_addr, maybe_trim_memstar_call): Likewise. |
| (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly |
| when we know the partially dead statement is a mem* function. |
| |
| PR tree-optimization/61912 |
| PR tree-optimization/77485 |
| * tree-ssa-dse.c: Include expr.h. |
| (maybe_trim_constructor_store): New function. |
| (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store. |
| |
| PR tree-optimization/33562 |
| PR tree-optimization/61912 |
| PR tree-optimization/77485 |
| * doc/invoke.texi: Document new dse-max-object-size param. |
| * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM. |
| * tree-ssa-dse.c: Include params.h. |
| (dse_store_status): New enum. |
| (initialize_ao_ref_for_dse): New, partially extracted from |
| dse_optimize_stmt. |
| (valid_ao_ref_for_dse, normalize_ref): New. |
| (setup_live_bytes_from_ref, compute_trims): Likewise. |
| (clear_bytes_written_by, maybe_trim_complex_store): Likewise. |
| (maybe_trim_partially_dead_store): Likewise. |
| (maybe_trim_complex_store): Likewise. |
| (dse_classify_store): Renamed from dse_possibly_dead_store_p. |
| Track what bytes live from the original store. Return tri-state |
| for dead, partially dead or live. |
| (dse_dom_walker): Add constructor, destructor and new private members. |
| (delete_dead_call, delete_dead_assignment): New extracted from |
| dse_optimize_stmt. |
| (dse_optimize_stmt): Make a member of dse_dom_walker. |
| Use initialize_ao_ref_for_dse. |
| |
| PR tree-optimization/33562 |
| PR tree-optimization/61912 |
| PR tree-optimization/77485 |
| * sbitmap.h (bitmap_count_bits): Prototype. |
| (bitmap_clear_range, bitmap_set_range): Likewise. |
| * sbitmap.c (bitmap_clear_range): New function. |
| (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise. |
| |
| 2017-01-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/79043 |
| * function.c (set_cfun): Add new argument force. |
| * function.h (set_cfun): Likewise. |
| * ipa-inline-transform.c (inline_call): Use the function when |
| strict alising from is dropped for function we inline to. |
| |
| 2017-01-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Fix inverted condition |
| for dumping GIMPLE INTEGER_CSTs. |
| |
| 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__ |
| to 201112L since C++17. |
| |
| 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR sanitizer/78887 |
| * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators |
| if -fsanitize=kernel-address is present. |
| |
| 2017-01-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs |
| as _Literal ( type ) number in case usual suffixes do not |
| preserve all information. |
| |
| 2017-01-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/77283 |
| * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h |
| and ssa-iterators.h. |
| (is_feasible_trace): Implement a cost model based on joiner |
| PHI node uses. |
| |
| 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/79004 |
| * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting |
| char or short to __float128/_Float128 directly. |
| |
| 2017-01-12 Martin Sebor <msebor@redhat.com> |
| |
| to -Wformat-overflow. |
| * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust. |
| (min_bytes_remaining): Same. |
| (get_string_length): Same. |
| (format_string): Same. |
| (format_directive): Same. |
| (add_bytes): Same. |
| (pass_sprintf_length::handle_gimple_call): Same. |
| |
| 2017-01-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-ssa-sprintf.c (try_substitute_return_value): Remove |
| info.nowrite calls with no lhs that can't throw. Return bool |
| whether gsi_remove has been called or not. |
| (pass_sprintf_length::handle_gimple_call): Return bool whether |
| try_substitute_return_value called gsi_remove. Formatting fix. |
| (pass_sprintf_length::execute): Don't use gsi_remove if |
| handle_gimple_call returned true. |
| |
| PR bootstrap/79069 |
| * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't |
| be removed due to side-effects, don't remove following barrier nor |
| turn the successor edge into fallthru edge. |
| |
| 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
| |
| PR target/79044 |
| * config/rs6000/rs6000.c (insn_is_swappable_p): Mark |
| element-reversing loads and stores as not swappable. |
| |
| 2017-01-12 Nathan Sidwell <nathan@acm.org> |
| Nicolai Stange <nicstange@gmail.com> |
| |
| * combine.c (try_combine): Don't ignore result of overlap checking |
| loop. Combine overlap & asm check into single loop. |
| |
| 2017-01-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Provide -gimple |
| variant for MEM_REF. Sanitize INTEGER_CST for -gimple. |
| |
| 2017-01-12 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION |
| and TS_TARGET_OPTION directly derive from TS_BASE. |
| * tree-core.h (tree_optimization_option): Derive from tree_base. |
| (tree_target_option): Likewise. |
| |
| 2017-01-11 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (memory_address_length): Increase len |
| only when rip_relative_addr_p returns false. |
| |
| 2017-01-11 Julia Koval <julia.koval@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New. |
| (OPTION_MASK_ISA_SGX_SET): New. |
| (ix86_handle_option): Handle OPT_msgx. |
| * config.gcc: Added sgxintrin.h. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__. |
| * config/i386/i386.c (ix86_target_string): Add -msgx. |
| (PTA_SGX): New. |
| (ix86_option_override_internal): Handle new options. |
| (ix86_valid_target_attribute_inner_p): Add sgx. |
| * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New. |
| * config/i386/i386.opt: Add msgx. |
| * config/i386/sgxintrin.h: New file. |
| * config/i386/x86intrin.h: Add sgxintrin.h. |
| |
| 2017-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/71537 |
| * fold-const.c (maybe_nonzero_address): Return 1 for function |
| local objects. |
| (tree_single_nonzero_warnv_p): Don't handle function local objects |
| here. |
| |
| PR c++/72813 |
| * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps |
| of c-header. |
| |
| 2017-01-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR driver/78877 |
| * opts.c: Include "spellcheck.h" |
| (struct string_fragment): New struct. |
| (struct edit_distance_traits<const string_fragment &>): New |
| struct. |
| (get_closest_sanitizer_option): New function. |
| (parse_sanitizer_options): Offer suggestions for unrecognized arguments. |
| |
| 2017-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease |
| by 12. |
| (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always |
| DWARF_COMPILE_UNIT_HEADER_SIZE plus 12. |
| (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define. |
| (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE |
| for initial die_offset if dwarf_split_debug_info. |
| (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for |
| initial next_die_offset if dwo_id is non-NULL. Don't emit padding |
| fields. |
| (output_skeleton_debug_sections): Formatting fix. Use |
| DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of |
| DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding. |
| |
| 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/cortex-a53.md: Add bypasses for |
| cortex_a53_r2f_cvt. |
| (cortex_a53_r2f): Only use for transfers. |
| (cortex_a53_f2r): Likewise. |
| (cortex_a53_r2f_cvt): Add reservation for conversions. |
| (cortex_a53_f2r_cvt): Likewise. |
| |
| 2017-01-11 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h: Add __artificial__ and gnu_inline |
| to all inlined functions, change static to extern. |
| |
| 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/78253 |
| * config/arm/arm.c (legitimize_pic_address): Handle reference to |
| weak symbol. |
| (arm_assemble_integer): Likewise. |
| |
| 2017-01-11 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc: Use new awk script to check CPU, FPU and architecture |
| parameters for --with-... options. |
| * config/arm/parsecpu.awk: New file |
| * config/arm/arm-cpus.in: New file. |
| * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def |
| files. |
| * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def |
| files. |
| * config/arm/t-arm: Update dependency rules. |
| * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead |
| of processing .def files. |
| * config/arm/genopt.sh: Deleted. |
| * config/arm/gentune.sh: Deleted. |
| * config/arm/arm-cores.def: Deleted. |
| * config/arm/arm-arches.def: Deleted. |
| * config/arm/arm-fpus.def: Deleted. |
| * config/arm/arm-tune.md: Regenerated. |
| * config/arm/arm-tables.opt: Regenerated. |
| * config/arm/arm-cpu.h: New generated file. |
| * config/arm/arm-cpu-data.h: New generated file. |
| * config/arm/arm-cpu-cdata.h: New generated file. |
| |
| 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com> |
| |
| PR lto/79042 |
| * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized |
| bit. |
| (input_varpool_node): Unpack dynamically_initialized bit. |
| |
| 2017-01-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/79032 |
| * lra-constraints.c (simplify_operand_subreg): In the MEM case, test |
| the alignment of the adjusted memory reference against that of MODE, |
| instead of the alignment of the original memory reference. |
| |
| 2017-01-11 Martin Jambor <mjambor@suse.cz> |
| |
| * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL |
| test. |
| * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial |
| decorated functions. |
| |
| 2017-01-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (evrp_dom_walker::before_dom_children): Also |
| set range/nonnull info for PHI results. Do not set it on |
| stmts marked for removal. |
| |
| 2017-01-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expr.c (store_field): In the bitfield case, fetch the return value |
| from the registers before applying a single big-endian adjustment. |
| Always do a final load for a BLKmode value not larger than a word. |
| |
| 2017-01-10 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/77949 |
| * input.c (selftest::test_accessing_ordinary_linemaps): Verify |
| that we correctly handle column numbers greater than |
| LINE_MAP_MAX_COLUMN_NUMBER. |
| |
| 2017-01-10 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/78245 |
| * gimple-ssa-sprintf.c (get_destination_size): Call |
| {init,fini}object_sizes. |
| * tree-object-size.c (addr_object_size): Adjust. |
| (pass_through_call): Adjust. |
| (pass_object_sizes::execute): Adjust. |
| * tree-object-size.h (fini_object_sizes): Declare. |
| |
| 2017-01-10 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78775 |
| * builtins.c (get_size_range): Move... |
| * calls.c: ...to here. |
| (alloc_max_size): Accept zero argument. |
| (operand_signed_p): Remove. |
| (maybe_warn_alloc_args_overflow): Call get_size_range. |
| * calls.h (get_size_range): Declare. |
| |
| 2017-01-10 Joe Seymour <joe.s@somniumtech.com> |
| |
| * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data |
| from TI's devices.csv file as of September 2016. |
| * config/msp430/msp430.c (msp430_mcu_data): Likewise. |
| |
| 2017-01-10 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/extend.texi: Tweak formatting to fix overfull hbox warnings. |
| * doc/invoke.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * doc/objc.texi: Likewise. |
| |
| 2017-01-10 Joshua Conner <joshconner@google.com> |
| |
| * config/arm/fuchsia-elf.h: New file. |
| * config/fuchsia.h: New file. |
| * config.gcc (*-*-fuchsia*): Set native_system_header_dir. |
| (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to |
| targets. |
| * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts. |
| |
| 2016-01-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79034 |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): |
| Propagate out degenerate PHIs in the joiner. |
| |
| 2017-01-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sort_sem_items_by_decl_uid): New function. |
| (sort_congruence_classes_by_decl_uid): Likewise. |
| (sort_congruence_class_groups_by_decl_uid): Likewise. |
| (sem_item_optimizer::merge_classes): Sort class, groups in these |
| classes and members in the groups by DECL_UID of declarations. |
| This would make merge operations stable. |
| |
| 2017-01-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove |
| usage of m_classes_vec. |
| (sem_item_optimizer::~sem_item_optimizer): Likewise. |
| (sem_item_optimizer::get_group_by_hash): Likewise. |
| (sem_item_optimizer::subdivide_classes_by_equality): Likewise. |
| (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise. |
| (sem_item_optimizer::verify_classes): Likewise. |
| (sem_item_optimizer::process_cong_reduction): Likewise. |
| (sem_item_optimizer::dump_cong_classes): Likewise. |
| (sem_item_optimizer::merge_classes): Likewise. |
| * ipa-icf.h (congruence_class_hash): Rename from |
| congruence_class_group_hash. Remove declaration of m_classes_vec. |
| |
| 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, |
| OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New. |
| * config.gcc: Add avx512vpopcntdqintrin.h. |
| * config/i386/avx512vpopcntdqintrin.h: New. |
| * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New. |
| * config/i386/i386-builtin-types.def: Add new types. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si, |
| __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di, |
| __builtin_ia32_vpopcountq_v8di_mask): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512VPOPCNTDQ__. |
| * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq. |
| (PTA_AVX512VPOPCNTDQ): Define. |
| * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ, |
| TARGET_AVX512VPOPCNTDQ_P): Define. |
| * config/i386/i386.opt: Add mavx512vpopcntdq. |
| * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h. |
| * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New. |
| |
| 2017-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77484 |
| * predict.def (PRED_CALL): Set to 67. |
| |
| 2017-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expr.c (store_field): In the bitfield case, if the value comes from |
| a function call and is of an aggregate type returned in registers, do |
| not modify the field mode; extract the value in all cases if the mode |
| is BLKmode and the size is not larger than a word. |
| |
| 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr> |
| |
| PR target/71017 |
| * config/i386/cpuid.h: Fix undefined behavior. |
| |
| 2017-01-04 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/79007 |
| PR tree-optimization/67955 |
| * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be |
| conservative for pt.null when flag_non_call_exceptions is on. |
| |
| 2017-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/79019 |
| PR translation/79020 |
| * params.def (PARAM_INLINE_MIN_SPEEDUP, |
| PARAM_IPA_CP_SINGLE_CALL_PENALTY, |
| PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos |
| in descriptions. |
| * config/avr/avr.opt (maccumulate-args): Likewise. |
| * config/msp430/msp430.opt (mwarn-mcu): Likewise. |
| * common.opt (freport-bug): Likewise. |
| * cif-code.def (CIF_FINAL_ERROR): Likewise. |
| * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise. |
| * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in |
| translatable string. |
| * config/i386/i386.c (function_value_32): Likewise. |
| * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise. |
| * config/msp430/msp430.c (msp430_option_override, msp430_attr): |
| Likewise. |
| * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise. |
| * common/config/msp430/msp430-common.c (msp430_handle_option): |
| Likewise. |
| * symtab.c (symtab_node::verify_base): Likewise. |
| * opts.c (set_debug_level): Likewise. |
| * tree.c (verify_type_variant): Likewise. Fix typo in comment. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add |
| missing whitespace to translatable strings. |
| * config/avr/avr.md (bswapsi2): Fix typo in comment. |
| * config/sh/superh.h: Likewise. |
| * config/i386/xopintrin.h: Likewise. |
| * config/i386/znver1.md: Likewise. |
| * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise. |
| * ipa-inline-analysis.c (compute_inline_parameters): Likewise. |
| * double-int.h (struct double_int): Likewise. |
| * double-int.c (div_and_round_double): Likewise. |
| * wide-int.cc: Likewise. |
| * tree-ssa.c (non_rewritable_mem_ref_base): Likewise. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. |
| * cfgcleanup.c (crossjumps_occured): Renamed to ... |
| (crossjumps_occurred): ... this. |
| (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg): |
| Adjust all uses. |
| |
| PR tree-optimization/78899 |
| * tree-if-conv.c (version_loop_for_if_conversion): Instead of |
| returning bool return struct loop *, NULL for failure and the new |
| loop on success. |
| (versionable_outer_loop_p): Don't version outer loop if it has |
| dont_vectorized bit set. |
| (tree_if_conversion): When versioning outer loop, ensure |
| tree_if_conversion is performed also on the inner loop of the |
| non-vectorizable outer loop copy. |
| * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold |
| LOOP_VECTORIZED in inner loop of the scalar outer loop and |
| prevent vectorization of it. |
| (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure |
| the outer loop vectorization of the non-scalar version is attempted |
| before vectorization of the inner loop in scalar version. If |
| outer LOOP_VECTORIZED guarded loop is not vectorized, prevent |
| vectorization of its inner loop. |
| * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop |
| has 2 inner loops, rename also on edges from bb whose single pred |
| is outer_loop->header. Fix typo in function comment. |
| |
| 2017-01-09 Martin Sebor <msebor@redhat.com> |
| |
| PR bootstrap/79033 |
| * asan.c (asan_emit_stack_protection): Increase local buffer size |
| to avoid snprintf truncation warning. |
| |
| 2017-01-09 Andrew Pinski <apinski@cavium.com> |
| |
| * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan |
| to reference thunderx2t99 for the tuning structure |
| * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): |
| Rename to ... |
| (thunderx2t99_extra_costs): This. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ... |
| (vulcan_addrcost_table): This. |
| (vulcan_regmove_cost): Rename to ... |
| (thunderx2t99_regmove_cost): This. |
| (vulcan_vector_cost): Rename to ... |
| (thunderx2t99_vector_cost): this. |
| (vulcan_branch_cost): Rename to ... |
| (thunderx2t99_branch_cost): This. |
| (vulcan_tunings): Rename to ... |
| (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 . |
| * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99. |
| |
| 2017-01-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/78365 |
| PR ipa/78599 |
| * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr. |
| * ipa-cp.c (ipa_vr_operation_and_type_effects): New function. |
| (propagate_vr_accross_jump_function): Use the above function for all |
| value range computations for pass-through jump functions and type |
| converasion from explicit value range values. |
| (ipcp_propagate_stage): Do not attempt to deduce types of formal |
| parameters from TYPE_ARG_TYPES. |
| * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace. |
| (ipa_write_node_info): Stream type of the actual argument. |
| (ipa_read_node_info): Likewise. Also remove trailing whitespace. |
| |
| 2017-01-09 Martin Liska <mliska@suse.cz> |
| |
| PR pch/78970 |
| * gcc.c (driver_handle_option): Handle OPT_E and set have_E. |
| (lookup_compiler): Do not show error message with have_E. |
| |
| 2017-01-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78938 |
| * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR |
| where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use |
| BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of |
| {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting |
| fixes. |
| |
| 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it |
| is const0_rtx. |
| |
| 2017-01-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/78997 |
| * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA |
| name condition properly. |
| |
| 2017-01-09 Richard Biener <rguenther@suse.de> |
| |
| PR debug/79000 |
| * dwarf2out.c (is_cxx): New overload with context. |
| (is_naming_typedef_decl): Use it. |
| |
| 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * invoke.texi (Option Summary): Correct spacing in option lists |
| and add line breaks to fix over-long lines. |
| |
| 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR middle-end/17660 |
| |
| * extend.texi (Common Variable Attributes): Add xref to GCC |
| Internals manual to explain mode attribute keywords. |
| |
| 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/16519 |
| * doc/invoke.texi (Option Summary): Move -pthread to Linker Options |
| and Preprocessor Options. |
| (Options for Linking): Document -pthread here.... |
| (RS/6000 and PowerPC Options): ...not here. |
| (Solaris 2 Options): ...or here. |
| * doc/cppopts.texi: Document -pthread. |
| |
| 2017-01-08 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/77708 |
| * doc/invoke.texi (Warning Options): Document -Wformat-truncation. |
| * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt): |
| New member functions. |
| (format_directive): Used them. |
| (add_bytes): Same. |
| (pass_sprintf_length::handle_gimple_call): Same. |
| * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size |
| to avoid truncation for any argument. |
| (extract_affine_mul): Same. |
| * tree.c (get_file_function_name): Same. |
| |
| 2017-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77484 |
| * predict.def (PRED_INDIR_CALL): Set to 86. |
| |
| 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR preprocessor/54124 |
| * doc/cppopts.texi: Reformat -d subtable to list the full name |
| of the options. Add cross-reference to the docs for the general |
| compiler -d options. |
| * doc/invoke.texi (Developer Options): Add cross-reference to the |
| preprocessor-specific -d option documentation. |
| |
| 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR preprocessor/13498 |
| * doc/cpp.texi (Search Path): Rewrite to remove obsolete and |
| redudant material, and reflect new command-line options. |
| (System Headers): Likewise. |
| |
| 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/cppdiropts.texi: Merge documentation of -I, -iquote, |
| -isystem, and -idirafter. Copy-edit. |
| * doc/cppopts.texi: Copy-edit. Remove contradiction about |
| default for -ftrack-macro-expansion. Delete obsolete and |
| badly-formatted implementation details about -fdebug-cpp output. |
| * doc/cppwarnopts.texi: Copy-edit. |
| |
| 2017-01-07 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/72803 |
| * input.c (selftest::test_accessing_ordinary_linemaps): Verify |
| that the transition from a max line width >= 1<<10 to narrower |
| lines works correctly. |
| |
| 2017-01-07 Alexandre Oliva <aoliva@redhat.com> |
| |
| * doc/options.texi (PerFunction): New. |
| * opt-functions.awk (switch_flags): Map both Optimization and |
| PerFunction to CL_OPTIMIZATION. |
| * opth-gen.awk: Test for PerFunction flag along with |
| Optimization. |
| * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set |
| it only when the latter is present. Skip those that don't in |
| the hash function generator. |
| * common.opt (fvar-tracking): Mark as PerFunction instead of |
| Optimization. |
| (fvar-tracking-assignments): Likewise. |
| (fvar-tracking-assignments-toggle): Likewise. |
| (fvar-tracking-uninit): Likewise. |
| |
| 2017-01-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/79018 |
| * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between |
| the and store. |
| |
| 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com> |
| |
| PR target/57583 |
| * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option. |
| * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle |
| TARGET_LONG_JUMP_TABLE_OFFSETS. |
| * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise. |
| * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise. |
| * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise. |
| (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise. |
| * config/m68k/m68k.md (tablejump expander): Likewise. |
| (*tablejump_pcrel_hi): Renamed from unnamed insn, reject |
| TARGET_LONG_JUMP_TABLE_OFFSETS. |
| (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS. |
| * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets. |
| |
| 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com> |
| David Holsgrove <david.holsgrove@xilinx.com> |
| |
| * common/config/microblaze/microblaze-common.c |
| (TARGET_EXCEPT_UNWIND_INFO): Remove. |
| * config/microblaze/microblaze-protos.h (microblaze_eh_return): |
| New prototype. |
| * config/microblaze/microblaze.c (microblaze_must_save_register) |
| (microblaze_expand_epilogue, microblaze_return_addr): Handle |
| calls_eh_return. |
| (microblaze_eh_return): New function. |
| * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET) |
| (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM) |
| (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros. |
| * config/microblaze/microblaze.md (eh_return): New pattern. |
| |
| 2017-01-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP, |
| GCC_DIAGNOSTIC_STRINGIFY): Define. |
| |
| * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.md (<mcrr>): New. |
| (<mrrc>): New. |
| * config/arm/arm.c (arm_arch5te): New. |
| (arm_option_override): Set arm_arch5te. |
| (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc |
| and mrrc2. |
| * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to... |
| (arm_mcrr_qualifiers): ... this. New. |
| (MRRC_QUALIFIERS): Define to... |
| (arm_mrrc_qualifiers): ... this. New. |
| * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc, |
| __arm_mrrc2): New. |
| * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New. |
| * config/arm/iterators.md (MCRRI, mcrr, MCRR): New. |
| (MRRCI, mrrc, MRRC): New. |
| * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC, |
| VUNSPEC_MRRC2): New. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.md (<mcr>): New. |
| (<mrc>): New. |
| * config/arm/arm.c (arm_coproc_builtin_available): Add |
| support for mcr, mrc, mcr2 and mrc2. |
| * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to... |
| (arm_mcr_qualifiers): ... this. New. |
| (MRC_QUALIFIERS): Define to ... |
| (arm_mrc_qualifiers): ... this. New. |
| (MCR_QUALIFIERS): Define to ... |
| (arm_mcr_qualifiers): ... this. New. |
| * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2, |
| __arm_mrc2): New. |
| * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New. |
| * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New. |
| * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC, |
| VUNSPEC_MRC2): New. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.md (*ldc): New. |
| (*stc): New. |
| (<ldc>): New. |
| (<stc>): New. |
| * config/arm/arm.c (arm_coproc_builtin_available): Add |
| support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l. |
| (arm_coproc_ldc_stc_legitimate_address): New. |
| * config/arm/arm-builtins.c (arm_type_qualifiers): Add |
| 'qualifier_const_pointer'. |
| (LDC_QUALIFIERS): Define to... |
| (arm_ldc_qualifiers): ... this. New. |
| (STC_QUALIFIERS): Define to... |
| (arm_stc_qualifiers): ... this. New. |
| * config/arm/arm-protos.h |
| (arm_coproc_ldc_stc_legitimate_address): New. |
| * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc, |
| __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New. |
| * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc, |
| stc2, stcl, stc2l): New. |
| * config/arm/constraints.md (Uz): New. |
| * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New. |
| * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL, |
| VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL, |
| VUNSPEC_STC2L): New. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.md (<cdp>): New. |
| * config/arm/arm.c (neon_const_bounds): Rename this ... |
| (arm_const_bounds): ... this. |
| (arm_coproc_builtin_available): New. |
| * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase. |
| (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'. |
| (CDP_QUALIFIERS): Define to... |
| (arm_cdp_qualifiers): ... this. New. |
| (void_UP): Define. |
| (arm_expand_builtin_args): Add case for 6 arguments. |
| * config/arm/arm-protos.h (neon_const_bounds): Rename this ... |
| (arm_const_bounds): ... this. |
| (arm_coproc_builtin_available): New. |
| * config/arm/arm_acle.h (__arm_cdp): New. |
| (__arm_cdp2): New. |
| * config/arm/arm_acle_builtins.def (cdp): New. |
| (cdp2): New. |
| * config/arm/iterators.md (CDPI,CDP,cdp): New. |
| * config/arm/neon.md: Rename all 'neon_const_bounds' to |
| 'arm_const_bounds'. |
| * config/arm/types.md (coproc): New. |
| * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New. |
| * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics. |
| * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok, |
| arm_coproc3_ok, arm_coproc4_ok): Document new effective targets. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New. |
| (UBINOP_QUALIFIERS): New. |
| (si_UP): Define. |
| (acle_builtin_data): New. Change comment. |
| (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H, |
| ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH, |
| ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include |
| arm_acle_builtins.def. |
| (ARM_BUILTIN_ACLE_PATTERN_START): Define. |
| (arm_init_acle_builtins): New. |
| (CRC32_BUILTIN): Remove. |
| (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w, |
| crc32cb, crc32ch and crc32cw. |
| (arm_init_crc32_builtins): Remove. |
| (arm_init_builtins): Use arm_init_acle_builtins rather |
| than arm_init_crc32_builtins. |
| (arm_expand_acle_builtin): New. |
| (arm_expand_builtin): Use 'arm_expand_acle_builtin'. |
| * config/arm/arm_acle_builtins.def: New. |
| |
| 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm-builtins.c (neon_builtin_datum): Rename to .. |
| (arm_builtin_datum): ... this. |
| (arm_init_neon_builtin): Rename to ... |
| (arm_init_builtin): ... this. Add a new parameters PREFIX |
| and USE_SIG_IN_NAME. |
| (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with |
| 'arm_init_builtin'. Replace type 'neon_builtin_datum' with |
| 'arm_builtin_datum'. |
| (arm_init_vfp_builtins): Likewise. |
| (builtin_arg): Rename enum's replacing 'NEON_ARG' with |
| 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY. |
| (arm_expand_neon_args): Rename to ... |
| (arm_expand_builtin_args): ... this. Rename builtin_arg |
| enum values and differentiate between ARG_BUILTIN_MEMORY |
| and ARG_BUILTIN_NEON_MEMORY. |
| (arm_expand_neon_builtin_1): Rename to ... |
| (arm_expand_builtin_1): ... this. Rename builtin_arg enum |
| values, arm_expand_builtin_args and add bool parameter NEON. |
| (arm_expand_neon_builtin): Use arm_expand_builtin_1. |
| (arm_expand_vfp_builtin): Likewise. |
| (NEON_MAX_BUILTIN_ARGS): Remove, it was unused. |
| |
| 2017-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77484 |
| * predict.def (PRED_POLYMORPHIC_CALL): Set to 59. |
| * predict.c (tree_estimate_probability_bb): Reverse direction of |
| polymorphic call predictor. |
| |
| 2017-01-06 David Malcolm <dmalcolm@redhat.com> |
| |
| * passes.c (execute_one_pass): Split out pass-skipping logic into... |
| (determine_pass_name_match): ...this new function and... |
| (should_skip_pass_p): ...this new function. |
| |
| 2017-01-06 Nathan Sidwell <nathan@acm.org> |
| |
| * ipa-visibility.c (function_and_variable_visibility): Reformat |
| comments and long lines. Remove extrneous if. |
| * symtab.c (symtab_node::make_decl_local): Fix code format. |
| (symtab_node::set_section_for_node): Fix comment typo. |
| |
| 2017-01-06 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/79003 |
| * lra-constraints.c: Rename invariant to lra_invariant. |
| * predict.c (set_even_probabilities): Initialize e to NULL. |
| |
| 2017-01-05 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78910 |
| * gimple-ssa-sprintf.c (tree_digits): Add an argument. |
| (format_integer): Correct off-by-one error in the handling |
| of precision with negative numbers in signed conversions.. |
| |
| 2017-01-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry. |
| |
| 2017-01-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/71016 |
| * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to |
| factor_out_conditional_conversion. Formatting fix. |
| (factor_out_conditional_conversion): Add cond_stmt argument. |
| If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of |
| cond_stmt and if arg0_def_stmt is not the only stmt in its bb. |
| Formatting fix. |
| |
| 2017-01-05 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in (OBJS): Add read-md.o, read-rtl.o, |
| read-rtl-function.o, and selftest-rtl.o. |
| * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h. |
| (selftest::aarch64_test_loading_full_dump): New function. |
| (selftest::aarch64_run_selftests): New function. |
| (TARGET_RUN_TARGET_SELFTESTS): Wire it up to |
| selftest::aarch64_run_selftests. |
| * config/i386/i386.c |
| (selftest::ix86_test_loading_dump_fragment_1): New function. |
| (selftest::ix86_test_loading_call_insn): New function. |
| (selftest::ix86_test_loading_full_dump): New function. |
| (selftest::ix86_test_loading_unspec): New function. |
| (selftest::ix86_run_selftests): Call the new functions. |
| * emit-rtl.c (maybe_set_max_label_num): New function. |
| * emit-rtl.h (maybe_set_max_label_num): New decl. |
| * function.c (instantiate_decls): Guard call to |
| instantiate_decls_1 with if (DECL_INITIAL (fndecl)). |
| * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove |
| "static". |
| * gensupport.c (gen_reader::gen_reader): Pass "false" |
| for new "compact" param of rtx_reader. |
| * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)" |
| rather than an empty string for NULL strings. |
| * read-md.c: Potentially include config.h rather than bconfig.h. |
| Wrap include of errors.h with #ifdef GENERATOR_FILE. |
| (have_error): New global, copied from errors.c. |
| (md_reader::read_name): Rename to... |
| (md_reader::read_name_1): ...this, adding "out_loc" param, |
| and converting "missing name or number" to returning false, rather |
| than failing. |
| (md_reader::read_name): Reimplement in terms of read_name_1. |
| (md_reader::read_name_or_nil): New function. |
| (md_reader::read_string): Handle "(nil)" by returning NULL. |
| (md_reader::md_reader): Add new param "compact". |
| (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE. |
| (md_reader::read_file): New method. |
| * read-md.h (md_reader::md_reader): Add new param "compact". |
| (md_reader::read_file): New method. |
| (md_reader::is_compact): New accessor. |
| (md_reader::read_name): Convert return type from void to file_location. |
| (md_reader::read_name_or_nil): New decl. |
| (md_reader::read_name_1): New decl. |
| (md_reader::m_compact): New field. |
| (noop_reader::noop_reader): Pass "false" for new "compact" param |
| of rtx_reader. |
| (rtx_reader::rtx_reader): Add new "compact" param. |
| (rtx_reader::read_rtx_operand): Make virtual and convert return |
| type from void to rtx. |
| (rtx_reader::read_until): New decl. |
| (rtx_reader::handle_any_trailing_information): New virtual function. |
| (rtx_reader::postprocess): New virtual function. |
| (rtx_reader::finalize_string): New virtual function. |
| (rtx_reader::m_in_call_function_usage): New field. |
| (rtx_reader::m_reuse_rtx_by_id): New field. |
| * read-rtl-function.c: New file. |
| * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function. |
| * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro. |
| (selftest::verify_three_block_rtl_cfg): New decl. |
| * read-rtl-function.h: New file. |
| * read-rtl.c: Potentially include config.h rather than bconfig.h. |
| For host, include function.h, memmodel.h, and emit-rtl.h. |
| (one_time_initialization): New function. |
| (struct compact_insn_name): New struct. |
| (compact_insn_names): New array. |
| (find_code): Handle insn codes in compact dumps. |
| (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE. |
| (bind_subst_iter_and_attr): Likewise. |
| (add_condition_to_string): Likewise. |
| (add_condition_to_rtx): Likewise. |
| (apply_attribute_uses): Likewise. |
| (add_current_iterators): Likewise. |
| (apply_iterators): Likewise. |
| (initialize_iterators): Guard usage of apply_subst_iterator with |
| #ifdef GENERATOR_FILE. |
| (read_conditions): Wrap with #ifdef GENERATOR_FILE. |
| (md_reader::read_mapping): Likewise. |
| (add_define_attr_for_define_subst): Likewise. |
| (add_define_subst_attr): Likewise. |
| (read_subst_mapping): Likewise. |
| (check_code_iterator): Likewise. |
| (rtx_reader::read_rtx): Likewise. Move one-time initialization |
| logic to... |
| (one_time_initialization): New function. |
| (rtx_reader::read_until): New method. |
| (read_flags): New function. |
| (parse_reg_note_name): New function. |
| (rtx_reader::read_rtx_code): Initialize "iterator" to NULL. |
| Handle reuse_rtx ids. |
| Wrap iterator lookup within #ifdef GENERATOR_FILE. |
| Add parsing support for RTL dumps, mirroring the special-cases in |
| print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID |
| values, and calling handle_any_trailing_information. |
| (rtx_reader::read_rtx_operand): Convert return type from void |
| to rtx, returning return_rtx. Handle case 'e'. Call |
| finalize_string on XSTR and XTMPL fields. |
| (rtx_reader::read_nested_rtx): Handle dumps in which trailing |
| "(nil)" values were omitted. Call the postprocess vfunc on the |
| return_rtx. |
| (rtx_reader::rtx_reader): Add new "compact" param and pass to base |
| class ctor. Initialize m_in_call_function_usage. Call |
| one_time_initialization. |
| * rtl-tests.c (selftest::test_uncond_jump): Call |
| set_new_first_and_last_insn. |
| * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE. |
| * selftest-rtl.c: New file. |
| * selftest-rtl.h (class selftest::rtl_dump_test): New class. |
| (selftest::get_insn_by_uid): New decl. |
| * selftest-run-tests.c (selftest::run_tests): Call |
| read_rtl_function_c_tests. |
| * selftest.h (selftest::read_rtl_function_c_tests): New decl. |
| * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function |
| dumps. |
| |
| 2017-01-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*testqi_ext_3): No need to handle memory |
| operands in a special way. Assert that pos+len <= mode precision. |
| |
| 2017-01-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * common.opt (fvect-cost-model): Remove RejectNegative flag, use |
| 3 argument Alias with unlimited for the negative form. |
| (fno-vect-cost-model): Removed. |
| |
| 2017-01-05 Martin Liska <mliska@suse.cz> |
| |
| * hsa-gen.c (gen_hsa_divmod): New function. |
| (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD. |
| |
| 2017-01-05 Martin Liska <mliska@suse.cz> |
| |
| PR pch/78970 |
| * gcc.c (lookup_compiler): Reject '-' filename for a precompiled |
| header. |
| |
| 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_setmem): Unroll the loop for |
| small constant length operands. |
| |
| 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes |
| between loop iterations. |
| |
| 2017-01-05 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/78815 |
| * gimplify.c (gimplify_decl_expr): Compare to |
| asan_poisoned_variables instread of checking flags. |
| (gimplify_target_expr): Likewise. |
| (gimplify_expr): Likewise. |
| (gimplify_function_tree): Conditionally initialize |
| asan_poisoned_variables. |
| |
| 2017-01-04 Jeff Law <law@redhat.com> |
| |
| PR tree-optimizatin/78812 |
| * rtl.h (contains_mem_rtx_p): Prototype. |
| * ifcvt.c (containts_mem_rtx_p): Move from here to... |
| * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage. |
| * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover |
| and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look |
| through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs. |
| |
| 2017-01-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| * input.c (assert_char_at_range): Default-initialize actual_range. |
| |
| 2017-01-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| * df-scan.c (df_ref_create_structure): Make regno unsigned, |
| to match the caller. |
| |
| 2017-01-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| * cfgexpand.c (expand_gimple_basic_block): Disregard debug |
| insns after final jump in test to emit dummy move. |
| |
| 2017-01-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| * gimple-iterator.h (gsi_one_nondebug_before_end_p): New. |
| * tree-eh.c (cleanup_empty_eh): Skip more debug stmts. |
| |
| 2017-01-04 Alexandre Oliva <aoliva@redhat.com> |
| |
| * multiple_target.c (create_dispatcher_calls): Init e_next. |
| * tree-ssa-loop-split.c (split_loop): Init border. |
| * tree-vect-loop.c (vect_determine_vectorization_factor): Init |
| scalar_type. |
| |
| 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/71977 |
| PR target/70568 |
| PR target/78823 |
| * config/rs6000/predicates.md (sf_subreg_operand): New predicate. |
| (altivec_register_operand): Do not return true if the operand |
| contains a SUBREG mixing SImode and SFmode. |
| (vsx_register_operand): Likewise. |
| (vsx_reg_sfsubreg_ok): New predicate. |
| (vfloat_operand): Do not return true if the operand contains a |
| SUBREG mixing SImode and SFmode. |
| (vint_operand): Likewise. |
| (vlogical_operand): Likewise. |
| (gpc_reg_operand): Likewise. |
| (int_reg_operand): Likewise. |
| * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration. |
| * config/rs6000/rs6000.c (valid_sf_si_move): New function to |
| determine if a MOVSI or MOVSF operation contains SUBREGs that mix |
| SImode and SFmode. |
| (rs6000_emit_move_si_sf_subreg): New helper function. |
| (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily |
| fixup SUBREGs involving SImode and SFmode. |
| * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand |
| numbers for the new peephole2 optimization. |
| (peephole2 for SFmode unions): New peephole2 to optimize cases in |
| the GLIBC math library that do AND/IOR/XOR operations on single |
| precision floating point. |
| * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal |
| target macros to say whether we need to avoid SUBREGs mixing |
| SImode and SFmode. |
| (TARGET_ALLOW_SF_SUBREG): Likewise. |
| * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs. |
| (UNSPEC_SI_FROM_SF): Likewise. |
| (iorxor): Change spacing. |
| (and_ior_xor): New iterator for AND, IOR, and XOR. |
| (movsi_from_sf): New insns for SImode/SFmode SUBREG support. |
| (movdi_from_sf_zero_ext): Likewise. |
| (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand |
| instead of gpc_reg_operand. Add SImode/SFmode SUBREG support. |
| (movsf_from_si): New insn for SImode/SFmode SUBREG support. |
| (fma<mode>4): Use gpc_reg_operand instead of register_operand. |
| (fms<mode>4): Likewise. |
| (fnma<mode>4): Likewise. |
| (fnms<mode>4): Likewise. |
| (nfma<mode>4): Likewise. |
| (nfms<mode>4): Likewise. |
| |
| 2017-01-04 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/64767 |
| * doc/invoke.texi: Document -Wpointer-compare. |
| |
| 2017-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without |
| RejectNegative. |
| |
| * dwarf2out.c (output_loc_list): Don't throw away 64K+ location |
| descriptions for -gdwarf-5 and emit them as uleb128 instead of |
| 2-byte data. |
| |
| 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/78056 |
| * doc/sourcebuild.texi (PowerPC-specific attributes): Add |
| documentation of the powerpc_popcntb_ok attribute. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| code to issue warning messages if a requested CPU configuration is |
| not supported by the binary (assembler and loader) toolchain. |
| (spe_init_builtins): Add two assertions to prevent ICE if attempt is |
| made to define a built-in function that has been disabled. |
| (paired_init_builtins): Add assertion to prevent ICE if attempt is |
| made to define a built-in function that has been disabled. |
| (altivec_init_builtins): Add comment explaining why definition |
| of the DST built-in functions is not preceded by an assertion |
| check. Add assertions to prevent ICE if attempts are made to |
| define an altivec predicate or an abs* built-in function that has |
| been disabled. |
| (htm_init_builtins): Add comment explaining why definition of the |
| htm built-in functions is not preceded by an assertion check. |
| |
| 2017-01-04 Jeff Law <law@redhat.com> |
| |
| PR tree-optimizatin/67955 |
| * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first. |
| Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify |
| the points-to solution does not include pt_null. Use DECL_PT_UID |
| unconditionally. |
| |
| 2017-01-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (HI/SImode test with imm to QImode splitters): |
| Use gen_int_mode instead of gen_lopwart for const_int operands. |
| |
| 2017-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/71563 |
| * match.pd: Simplify X << Y into X if Y is known to be 0 or |
| out of range value - has low bits known to be zero. |
| |
| 2017-01-04 Alan Modra <amodra@gmail.com> |
| |
| * Makefile.in (aclocal_deps): Update and order as per aclocal.m4. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2017-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/77569 |
| * input.c (ebcdic_execution_charset::on_error): Don't use strstr for |
| a substring of the message, but strcmp with the whole message. Ifdef |
| ENABLE_NLS, translate the message first using dgettext. |
| |
| 2017-01-03 Jeff Law <law@redhat.com> |
| |
| PR tree-optimizatin/78856 |
| * tree-ssa-threadupdate.c: Include tree-vectorizer.h. |
| (mark_threaded_blocks): Remove code to truncate thread paths that |
| cross multiple loop headers. Instead invalidate the cached loop |
| iteration information and handle case of a thread path walking |
| into an irreducible region. |
| |
| 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/78900 |
| * config/rs6000/rs6000.c (rs6000_split_signbit): Change some |
| assertions. Add support for doing the signbit if the IEEE 128-bit |
| floating point value is in a GPR. |
| * config/rs6000/rs6000.md (Fsignbit): Delete. |
| (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa". |
| Update the length attribute if the value is in a GPR. |
| (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate |
| the sign or zero extension instruction, since the value is always 0/1. |
| (signbit<mode>2_dm2): Delete using <Fsignbit>. |
| |
| PR target/78953 |
| * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are |
| extracting SImode to a GPR register so that we can generate a |
| store, limit the vector to be in a traditional Altivec register |
| for the vextuwrx instruction. |
| |
| 2017-01-03 Ian Lance Taylor <iant@google.com> |
| |
| * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE. |
| |
| 2017-01-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/78696 |
| * gimple-ssa-sprintf.c (format_floating): Correct handling of |
| precision. Use MPFR for %f for greater fidelity. Correct handling |
| of %g. |
| (pass_sprintf_length::compute_format_length): Set width and precision |
| specified by asrerisk to void_node for vararg functions. |
| (try_substitute_return_value): Adjust dump output. |
| |
| 2017-01-03 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/invoke.texi (RS6000 options): LRA is enabled by default. |
| |
| 2017-01-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (SPARC options): Document -mlra as the default. |
| * config/sparc/sparc.c (sparc_option_override): Force LRA unless |
| -mlra/-mno-lra was passed to the compiler. |
| |
| 2017-01-03 James Cowgill <James.Cowgill@imgtec.com> |
| |
| PR rtl-optimization/65618 |
| * emit-rtl.c (try_split): Move initialization of "before" and |
| "after" to just before the call to emit_insn_after_setloc. |
| |
| 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/md.texi (Standard Names): Remove reference to Java frontend. |
| |
| 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com> |
| |
| * dwarf2out.c (gen_enumeration_type_die): When |
| -gno-strict-dwarf, add a DW_AT_encoding attribute. |
| |
| 2017-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/78965 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length): |
| Change first argument from const call_info & to call_info &. For %n |
| set info.nowrite to false. |
| |
| PR middle-end/78901 |
| * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change |
| possibly throwing calls. |
| |
| * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME |
| and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs |
| and fns handling, rather than in a separate case SSA_NAME. |
| |
| 2017-01-02 Jeff Law <law@redhat.com> |
| |
| * config/darwin-driver.c (darwin_driver_init): Const-correctness |
| fixes for first_period and second_period variables. |
| |
| 2017-01-02 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/78967 |
| * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec. |
| (*insvqi_1): New insn pattern. |
| (*insvqi_1_mem_rex64): Ditto. |
| (*insvqi_2): Ditto. |
| (*insvqi_3): Rename from *insvqi. |
| |
| (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag. |
| |
| 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/cfg.texi (Edges): Remove reference to Java. |
| (Maintaining the CFG): Ditto. |
| |
| 2017-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77674 |
| * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of |
| transparent aliases. |
| |
| 2017-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/77484 |
| * predict.def (PRED_CALL): Update hitrate. |
| (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors. |
| * predict.c (tree_estimate_probability_bb): Split CALL predictor |
| into direct/indirect/polymorphic variants. |
| |
| 2017-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| * gcc.c (process_command): Update copyright notice dates. |
| * gcov-dump.c (print_version): Ditto. |
| * gcov.c (print_version): Ditto. |
| * gcov-tool.c (print_version): Ditto. |
| * gengtype.c (create_file): Ditto. |
| * doc/cpp.texi: Bump @copying's copyright year. |
| * doc/cppinternals.texi: Ditto. |
| * doc/gcc.texi: Ditto. |
| * doc/gccint.texi: Ditto. |
| * doc/gcov.texi: Ditto. |
| * doc/install.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| |
| Copyright (C) 2017 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |