12017-12-31 Jakub Jelinek <jakub@redhat.com> 2 3 PR target/83536 4 * config/i386/i386.c (ix86_attribute_table): Remove excess 5 initializer for "shared" attribute. 6 72017-12-30 Tom de Vries <tom@codesourcery.com> 8 9 PR libgomp/83046 10 * omp-expand.c (expand_omp_target): If in_lto_p, mark offload_funcs with 11 DECL_PRESERVE_P. 12 * lto-streamer-out.c (prune_offload_funcs): New function. Remove 13 offload_funcs entries that no longer have a corresponding cgraph_node. 14 Mark the remaining ones as DECL_PRESERVE_P. 15 (output_lto): Call prune_offload_funcs. 16 172017-12-30 Jakub Jelinek <jakub@redhat.com> 18 19 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 20 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>, 21 vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, 22 vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, 23 vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, 24 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1, vpdpbusd_<mode>, 25 vpdpbusd_<mode>_mask, vpdpbusd_<mode>_maskz, vpdpbusd_<mode>_maskz_1, 26 vpdpbusds_<mode>, vpdpbusds_<mode>_mask, vpdpbusds_<mode>_maskz, 27 vpdpbusds_<mode>_maskz_1, vpdpwssd_<mode>, vpdpwssd_<mode>_mask, 28 vpdpwssd_<mode>_maskz, vpdpwssd_<mode>_maskz_1, vpdpwssds_<mode>, 29 vpdpwssds_<mode>_mask, vpdpwssds_<mode>_maskz, 30 vpdpwssds_<mode>_maskz_1, vaesdec_<mode>, vaesdeclast_<mode>, 31 vaesenc_<mode>, vpclmulqdq_<mode>, 32 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Formatting fixes. 33 342017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com> 35 36 * builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add 37 _Float<N> and _Float<N>X variants for rounding built-in 38 functions. 39 (_Float<N> and _Float<N>X BUILT_IN_FLOOR): Likewise. 40 (_Float<N> and _Float<N>X BUILT_IN_NEARBYINT): Likewise. 41 (_Float<N> and _Float<N>X BUILT_IN_RINT): Likewise. 42 (_Float<N> and _Float<N>X BUILT_IN_ROUND): Likewise. 43 (_Float<N> and _Float<N>X BUILT_IN_TRUNC): Likewise. 44 * builtins.c (mathfn_built_in_2): Likewise. 45 * internal-fn.def (CEIL): Likewise. 46 (FLOOR): Likewise. 47 (NEARBYINT): Likewise. 48 (RINT): Likewise. 49 (ROUND): Likewise. 50 (TRUNC): Likewise. 51 * convert.c (convert_to_integer_1): Likewise. 52 * fold-const.c (tree_call_nonnegative_warnv_p): Likewise. 53 (integer_valued_real_call_p): Likewise. 54 * fold-const-call.c (fold_const_call_ss): Likewise. 55 * gencfn-macros.c (print_case_cfn): Change CFN and operator 56 printers to take a const char * suffix instead of a bool. 57 (print_define_operator_list): Likewise. 58 (fltall_suffixes): New list of suffixes, that include the 59 traditional suffixes as well as all of the _Float<N> and 60 _Float<N>X suffixes. 61 (main): For _Float<N> and _Float<N>X functions, emit both 62 <name>_FN and <name>_ALL variants. The <macro>_FN variant only 63 has the _Float<N> and _Float<N>X case names or operators. The 64 <name>_ALL variant has both the traditional and the 65 _Float<N>/_Float<N>X case names or operators. 66 * match.pd (COPYSIGN optimizations): Provide optimizations for 67 _Float<N> and _Float<N>X types where possible. 68 (MIN/MAX optimizations): Likewise. 69 (sqrt optimizations): Likewise. 70 (rounding optimizations): Likewise. 71 722017-12-28 Richard Sandiford <richard.sandiford@linaro.org> 73 74 * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use 75 gen_int_mode rather than GEN_INT. 76 * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise. 77 782017-12-28 Richard Sandiford <richard.sandiford@linaro.org> 79 80 * emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p 81 instead of CONSTANT_P. 82 (gen_vec_series): Likewise. 83 * simplify-rtx.c (simplify_binary_operation_1): Likewise. 84 852017-12-28 Andreas Schwab <schwab@linux-m68k.org> 86 87 * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add 88 CC_STATUS_INIT. 89 902017-12-27 Kugan Vivekanandarajah <kuganv@linaro.org> 91 92 * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New. 93 (aarch64_ld1x2<VDC:mode>): Likewise. 94 (aarch64_simd_ld1<mode>_x2): Likewise. 95 (aarch64_simd_ld1<mode>_x2): Likewise. 96 * config/aarch64/arm_neon.h (vld1_u8_x2): New. 97 (vld1_s8_x2): Likewise. 98 (vld1_u16_x2): Likewise. 99 (vld1_s16_x2): Likewise. 100 (vld1_u32_x2): Likewise. 101 (vld1_s32_x2): Likewise. 102 (vld1_u64_x2): Likewise. 103 (vld1_s64_x2): Likewise. 104 (vld1_f16_x2): Likewise. 105 (vld1_f32_x2): Likewise. 106 (vld1_f64_x2): Likewise. 107 (vld1_p8_x2): Likewise. 108 (vld1_p16_x2): Likewise. 109 (vld1_p64_x2): Likewise. 110 (vld1q_u8_x2): Likewise. 111 (vld1q_s8_x2): Likewise. 112 (vld1q_u16_x2): Likewise. 113 (vld1q_s16_x2): Likewise. 114 (vld1q_u32_x2): Likewise. 115 (vld1q_s32_x2): Likewise. 116 (vld1q_u64_x2): Likewise. 117 (vld1q_s64_x2): Likewise. 118 (vld1q_f16_x2): Likewise. 119 (vld1q_f32_x2): Likewise. 120 (vld1q_f64_x2): Likewise. 121 (vld1q_p8_x2): Likewise. 122 (vld1q_p16_x2): Likewise. 123 (vld1q_p64_x2): Likewise. 124 1252017-12-27 Martin Liska <mliska@suse.cz> 126 127 PR tree-optimization/83552 128 * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result 129 of get_string_lenth to a SSA_NAME if not a GIMPLE value. 130 1312017-12-27 Tom de Vries <tom@codesourcery.com> 132 133 * config/nvptx/nvptx.c (nvptx_option_override): Disable 134 -gstatement-frontiers. 135 1362017-12-26 Alexander Monakov <amonakov@ispras.ru> 137 138 PR rtl-optimization/83513 139 * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness 140 before priority comparison. 141 1422017-12-25 Jakub Jelinek <jakub@redhat.com> 143 144 PR target/83488 145 * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from 146 ix86_isa_flags2 to ix86_isa_flags. 147 * config/i386/i386-c.c (ix86_target_macros_internal): Test 148 OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in 149 isa_flags rather than isa_flags2. 150 * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq 151 and -mavx512bitalg from isa2_opts to isa_opts. 152 (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ 153 in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit 154 and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2. 155 Formatting fixes. 156 (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or 157 OPTION_MASK_ISA_AVX512F ored with another option similarly to 158 OPTION_MASK_ISA_AVX512VL. Even for OPTION_MASK_ISA_AVX512VL don't 159 clear it if mask is just OPTION_MASK_ISA_AVX512VL itself. 160 (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and 161 OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle 162 OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way. 163 * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG 164 builtins from bdesc_args2 to bdesc_args section. 165 (__builtin_ia32_compressstoreuqi512_mask, 166 __builtin_ia32_compressstoreuhi512_mask, 167 __builtin_ia32_compressstoreuqi256_mask, 168 __builtin_ia32_expandloadqi512_mask, 169 __builtin_ia32_expandloadqi512_maskz, 170 __builtin_ia32_expandloadhi512_mask, 171 __builtin_ia32_expandloadhi512_maskz, 172 __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask, 173 __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask, 174 __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask, 175 __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask, 176 __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask, 177 __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask, 178 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask, 179 __builtin_ia32_vpshldv_v32hi_maskz, 180 __builtin_ia32_vpopcountb_v64qi_mask, 181 __builtin_ia32_vpopcountw_v32hi_mask, 182 __builtin_ia32_vpshufbitqmb512_mask, 183 __builtin_ia32_vpshufbitqmb256_mask): Add 184 " | OPTION_MASK_ISA_AVX512BW". 185 (__builtin_ia32_expandloadqi256_mask, 186 __builtin_ia32_expandloadqi256_maskz, 187 __builtin_ia32_vpopcountb_v32qi_mask): Add 188 " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW". 189 (__builtin_ia32_expandloadhi256_mask, 190 __builtin_ia32_expandloadhi256_maskz, 191 __builtin_ia32_expandloadqi128_mask, 192 __builtin_ia32_expandloadqi128_maskz, 193 __builtin_ia32_expandloadhi128_mask, 194 __builtin_ia32_expandloadhi128_maskz, 195 __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask, 196 __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask, 197 __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask, 198 __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask, 199 __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask, 200 __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask, 201 __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask, 202 __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask, 203 __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask, 204 __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask, 205 __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask, 206 __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask, 207 __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask, 208 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi, 209 __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz, 210 __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask, 211 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si, 212 __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz, 213 __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask, 214 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di, 215 __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz, 216 __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, 217 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, 218 __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, 219 __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask, 220 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si, 221 __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz, 222 __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, 223 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, 224 __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz, 225 __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi, 226 __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi, 227 __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, 228 __builtin_ia32_vpopcountw_v8hi_mask): Add 229 " | OPTION_MASK_ISA_AVX512VL". 230 * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, 231 _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, 232 _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64, 233 _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32, 234 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64, 235 _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32, 236 _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, 237 _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16, 238 _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, 239 _mm512_shldv_epi64, _mm512_mask_shldv_epi64, 240 _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics. 241 * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask, 242 _mm_mask_bitshuffle_epi64_mask): Likewise. 243 * common/config/i386/i386-common.c 244 (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, 245 OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET. 246 (OPTION_MASK_ISA_AVX512F_UNSET): Or in 247 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and 248 OPTION_MASK_ISA_AVX512BITALG_UNSET. 249 (OPTION_MASK_ISA2_AVX512F_UNSET, 250 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define. 251 (ix86_handle_option): For -mno-general-regs-only, clear from 252 ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than 253 just OPTION_MASK_ISA_MPX. For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and 254 -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from 255 ix86_isa_flags2. For -mno-avx512f likewise, instead of masking 256 individually listed ISAs. For -m{,no-}avx512{vpopcntdq,bitalg} adjust 257 for moving from ix86_isa_flags2 to ix86_isa_flags. 258 2592017-12-23 Jakub Jelinek <jakub@redhat.com> 260 261 PR c++/83553 262 * fold-const.c (struct contains_label_data): New type. 263 (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless 264 inside of a SWITCH_BODY seen during the walk. 265 (contains_label_p): Use walk_tree instead of 266 walk_tree_without_duplicates, prepare data for contains_label_1 and 267 provide own pset. 268 2692017-12-22 Jakub Jelinek <jakub@redhat.com> 270 271 PR debug/83547 272 * tree-iterator.c (alloc_stmt_list): Start with cleared 273 TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated 274 or old one reused. 275 276 PR target/83488 277 * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor 278 enable avx512f explicitly in #pragma GCC target. 279 * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si, 280 __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz, 281 __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask, 282 __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si, 283 __builtin_ia32_vpdpbusds_v8si_mask, 284 __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si, 285 __builtin_ia32_vpdpbusds_v4si_mask, 286 __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si, 287 __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz, 288 __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask, 289 __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si, 290 __builtin_ia32_vpdpwssds_v8si_mask, 291 __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si, 292 __builtin_ia32_vpdpwssds_v4si_mask, 293 __builtin_ia32_vpdpwssds_v4si_maskz): Use 294 OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of 295 just OPTION_MASK_ISA_AVX512VNNI. 296 2972017-12-22 Martin Jambor <mjambor@suse.cz> 298 299 PR lto/82027 300 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former 301 clones. 302 3032017-12-22 Julia Koval <julia.koval@intel.com> 304 Sebastian Peryt <sebastian.peryt@intel.com> 305 306 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET, 307 OPTION_MASK_ISA_AVX512BITALG_UNSET): New. 308 (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting. 309 * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h. 310 * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16, 311 _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16, 312 _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8, 313 _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8, 314 _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16, 315 _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, 316 _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8, 317 _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8, 318 _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics. 319 * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64, 320 _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32, 321 _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64, 322 _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64, 323 _mm256_maskz_popcnt_epi64): New intrinsics. 324 * config/i386/cpuid.h (bit_AVX512BITALG): New bit. 325 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg. 326 * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI, 327 V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI, 328 V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types. 329 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di, 330 __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di, 331 __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si, 332 __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si, 333 __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi, 334 __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi, 335 __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi, 336 __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi, 337 __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi, 338 __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, 339 __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask, 340 __builtin_ia32_vpshufbitqmb256_mask, 341 __builtin_ia32_vpshufbitqmb512_mask): New builtins. 342 * config/i386/i386-c.c (__AVX512BITALG__): New. 343 * config/i386/i386.c (isa2_opts): Add -mavx512bitalg. 344 (ix86_valid_target_attribute_inner_p): Ditto. 345 (ix86_expand_args_builtin): Handle new types. 346 * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New. 347 * config/i386/i386.opt: Add -mavx512bitalg. 348 * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and 349 avx512bitalgintrin.h. 350 * config/i386/sse.md (VI48_AVX512VLBW): New iterator. 351 (vpopcount<mode><mask_name>): Add more types. 352 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New. 353 * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq. 354 3552017-12-22 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 356 357 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET): 358 Or in OPTION_MASK_ISA_AVX512F_SET. 359 (OPTION_MASK_ISA_AVX512F_UNSET): Or in 360 OPTION_MASK_ISA_AVX512VNNI_UNSET. 361 (ix86_handle_option): Adjust for 362 OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags. 363 * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2 364 section to ARGS. 365 * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in 366 isa_flag instead of isa_flag2. 367 * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from 368 isa_opts2 to isa_opts. 369 * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2 370 to ix86_isa_flags. 371 3722017-12-22 Mike Stump <mikestump@comcast.net> 373 Eric Botcazou <ebotcazou@adacore.com> 374 375 * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll. 376 3772017-12-21 Jakub Jelinek <jakub@redhat.com> 378 379 PR middle-end/83487 380 * config/i386/i386.c (ix86_function_arg_boundary): Return 381 PARM_BOUNDARY for TYPE_EMPTY_P types. 382 383 PR c/83448 384 * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index 385 if navail is >= dir.len. 386 3872017-12-21 Steve Ellcey <sellcey@cavium.com> 388 389 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix 390 triplet for ilp32. 391 3922017-12-21 Jakub Jelinek <jakub@redhat.com> 393 394 PR rtl-optimization/80747 395 PR rtl-optimization/83512 396 * cfgrtl.c (force_nonfallthru_and_redirect): When splitting 397 succ edge from ENTRY, copy partition from e->dest to the newly 398 created bb. 399 * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is 400 ENTRY, use BB_PARTITION of its successor block as current_partition. 401 Don't copy partition when splitting succ edge from ENTRY. 402 403 PR tree-optimization/83523 404 * tree-ssa-math-opts.c (is_widening_mult_p): Return false if 405 for INTEGER_TYPE TYPE_OVERFLOW_TRAPS. 406 (convert_mult_to_fma): Likewise. 407 408 PR tree-optimization/83521 409 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use 410 gimple_build_assign without code on result of 411 fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create 412 a VIEW_CONVERT_EXPR. 413 4142017-12-21 Andrew Pinski <apinski@cavium.com> 415 Steve Ellcey <sellcey@cavium.com> 416 417 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle 418 multi-arch for ilp32. 419 4202017-12-21 Uros Bizjak <ubizjak@gmail.com> 421 422 PR target/83467 423 * config/i386/i386.md (*ashl<mode>3_mask): Add operand 424 constraints to operand 2. 425 (*ashl<mode>3_mask_1): Ditto. 426 (*<shift_insn><mode>3_mask): Ditto. 427 (*<shift_insn><mode>3_mask_1): Ditto. 428 (*<rotate_insn><mode>3_mask): Ditto. 429 (*<rotate_insn><mode>3_mask_1): Ditto. 430 4312017-12-21 Alexandre Oliva <aoliva@redhat.com> 432 433 * reorg.c (make_return_insns): Reemit each insn with its own location. 434 4352017-12-21 James Greenhalgh <james.greenhalgh@arm.com> 436 437 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code 438 generation for cases where splatting a value is not useful. 439 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge 440 across a vec_duplicate and a paradoxical subreg forming a vector 441 mode to a vec_concat. 442 4432017-12-21 James Greenhalgh <james.greenhalgh@arm.com> 444 445 * combine.c (simplify_set): Do not transform subregs to zero_extends 446 if the destination is not a scalar int mode. 447 4482017-12-21 Eric Botcazou <ebotcazou@adacore.com> 449 450 PR c++/82872 451 * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the 452 shared zero if the input has overflowed. 453 4542017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 455 456 * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod 457 support for Cortex-A55 and Cortex-A75. 458 4592017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 460 461 * common/config/arm/arm-common.c (compare_opt_names): Add function 462 comment. Use strcmp instead of manual loop. 463 4642017-12-21 Martin Liska <mliska@suse.cz> 465 466 PR gcov-profile/83509 467 * gcov-dump.c (dump_gcov_file): Do not read info about 468 support_unexecuted_blocks for gcda files. 469 4702017-12-21 Jakub Jelinek <jakub@redhat.com> 471 472 PR rtl-optimization/82973 473 * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ... 474 (valid_for_const_vector_p): ... this. 475 * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ... 476 (valid_for_const_vector_p): ... this. Adjust function comment. 477 (gen_vec_duplicate): Adjust caller. 478 * optabs.c (expand_vector_broadcast): Likewise. 479 * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into 480 CONST_VECTOR if some element isn't simplified valid_for_const_vector_p 481 constant. 482 (simplify_const_binary_operation): Likewise. Use CONST_FIXED_P macro 483 instead of GET_CODE == CONST_FIXED. 484 (simplify_subreg): Use CONST_FIXED_P macro instead of 485 GET_CODE == CONST_FIXED. 486 487 PR target/83488 488 * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and 489 -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe, 490 -mclzero and -mmwaitx entries from isa_opts to isa_opts2. 491 (ix86_option_override_internal): Adjust for 492 OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2 493 and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags. 494 (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks. 495 (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling. 496 Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX 497 and OPTION_MASK_ISA_CLZERO builtins. Use def_builtin instead of 498 def_builtin2 for CET builtins. 499 (ix86_expand_builtin): Remove bdesc_special_args2 handling. Fix 500 up formatting in IX86_BUILTIN_RDPID code. 501 * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2 502 section to SPECIAL_ARGS and from ARGS2 section to ARGS. 503 * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from 504 ix86_isa_flags2 to ix86_isa_flags. 505 (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to 506 ix86_isa_flags2. 507 * config/i386/i386-c.c (ix86_target_macros_internal): Check for 508 OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag. 509 Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead 510 of isa_flag2. 511 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET): 512 Or in OPTION_MASK_ISA_AVX512F_SET. 513 (OPTION_MASK_ISA_AVX512F_UNSET): Or in 514 OPTION_MASK_ISA_AVX512VBMI2_UNSET. 515 (ix86_handle_option): Adjust for 516 OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags 517 and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2. 518 5192017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 520 Alan Hayward <alan.hayward@arm.com> 521 David Sherwood <david.sherwood@arm.com> 522 523 * tree-data-ref.h (prune_runtime_alias_test_list): Take the 524 factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT. 525 * tree-data-ref.c (prune_runtime_alias_test_list): Likewise. 526 Track polynomial offsets. 527 5282017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 529 Alan Hayward <alan.hayward@arm.com> 530 David Sherwood <david.sherwood@arm.com> 531 532 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): 533 Treat drb->init as a poly_int. Fail if its misalignment wrt 534 vector_alignment isn't known. 535 5362017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 537 Alan Hayward <alan.hayward@arm.com> 538 David Sherwood <david.sherwood@arm.com> 539 540 * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold 541 field. 542 (LOOP_VINFO_VERSIONING_THRESHOLD): New macro 543 (vect_loop_versioning): Take the loop versioning threshold as a 544 separate parameter. 545 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. 546 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 547 versioning_threshold. 548 (vect_analyze_loop_2): Compute the loop versioning threshold 549 whenever loop versioning is needed, and store it in the new 550 field rather than combining it with the cost model threshold. 551 (vect_transform_loop): Update call to vect_loop_versioning. 552 Try to combine the loop versioning and cost thresholds here. 553 5542017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 555 Alan Hayward <alan.hayward@arm.com> 556 David Sherwood <david.sherwood@arm.com> 557 558 * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as 559 poly_uint64_pod rather than an unsigned HOST_WIDE_INT. 560 * tree-loop-distribution.c (classify_builtin_st): Update accordingly. 561 * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from 562 an unsigned HOST_WIDE_INT to a poly_uint64_pod. 563 (group_compare_offset): Update accordingly. 564 (split_small_address_groups_p): Likewise. 565 (record_use): Take addr_offset as a poly_uint64 rather than 566 an unsigned HOST_WIDE_INT. 567 (strip_offset): Return the offset as a poly_uint64 rather than 568 an unsigned HOST_WIDE_INT. 569 (record_group_use, split_address_groups): Track polynomial offsets. 570 (add_iv_candidate_for_use): Likewise. 571 (addr_offset_valid_p): Take the offset as a poly_int64 rather 572 than a HOST_WIDE_INT. 573 (strip_offset_1): Return the offset as a poly_int64 rather than 574 a HOST_WIDE_INT. 575 5762017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 577 Alan Hayward <alan.hayward@arm.com> 578 David Sherwood <david.sherwood@arm.com> 579 580 * tree.h (get_binfo_at_offset): Take the offset as a poly_int64 581 rather than a HOST_WIDE_INT. 582 * tree.c (get_binfo_at_offset): Likewise. 583 5842017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 585 Alan Hayward <alan.hayward@arm.com> 586 David Sherwood <david.sherwood@arm.com> 587 588 * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64 589 rather than a HOST_WIDE_INT. 590 * tree-sra.c (build_ref_for_offset): Likewise. 591 5922017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 593 Alan Hayward <alan.hayward@arm.com> 594 David Sherwood <david.sherwood@arm.com> 595 596 * fold-const.h (mem_ref_offset): Return a poly_offset_int rather 597 than an offset_int. 598 * tree.c (mem_ref_offset): Likewise. 599 (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints. 600 * builtins.c (get_object_alignment_2): Likewise. 601 * expr.c (get_inner_reference, expand_expr_real_1): Likewise. 602 * gimple-fold.c (get_base_constructor): Likewise. 603 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise. 604 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): 605 Likewise. 606 * ipa-polymorphic-call.c 607 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. 608 * ipa-prop.c (compute_complex_assign_jump_func): Likewise. 609 (get_ancestor_addr_info): Likewise. 610 * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise. 611 * match.pd: Likewise. 612 * tree-data-ref.c (dr_analyze_innermost): Likewise. 613 * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. 614 * tree-eh.c (tree_could_trap_p): Likewise. 615 * tree-object-size.c (addr_object_size): Likewise. 616 * tree-ssa-address.c (copy_ref_info): Likewise. 617 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. 618 (indirect_refs_may_alias_p): Likewise. 619 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 620 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. 621 (non_rewritable_mem_ref_base): Likewise. 622 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. 623 * tree-vrp.c (vrp_prop::check_array_ref): Likewise. 624 * varasm.c (decode_addr_const): Likewise. 625 6262017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 627 Alan Hayward <alan.hayward@arm.com> 628 David Sherwood <david.sherwood@arm.com> 629 630 * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial 631 offsets for MEM_REFs. 632 6332017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 634 Alan Hayward <alan.hayward@arm.com> 635 David Sherwood <david.sherwood@arm.com> 636 637 * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment 638 as a poly_uint64 rather than an unsigned int. 639 * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise. 640 6412017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 642 Alan Hayward <alan.hayward@arm.com> 643 David Sherwood <david.sherwood@arm.com> 644 645 * varasm.c (addr_const::offset): Change from HOST_WIDE_INT 646 to poly_int64. 647 (decode_addr_const): Update accordingly. 648 6492017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 650 Alan Hayward <alan.hayward@arm.com> 651 David Sherwood <david.sherwood@arm.com> 652 653 * tree.h (bit_field_size, bit_field_offset): New functions. 654 * hsa-gen.c (gen_hsa_addr): Use them. 655 * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise. 656 (simplify_vector_constructor): Likewise. 657 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 658 * tree-cfg.c (verify_expr): Require the sizes and offsets of a 659 BIT_FIELD_REF to be poly_uint64s rather than uhwis. 660 * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with 661 tree_fits_uhwi_p. 662 6632017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 664 Alan Hayward <alan.hayward@arm.com> 665 David Sherwood <david.sherwood@arm.com> 666 667 * expr.h (emit_group_load, emit_group_load_into_temps) 668 (emit_group_store): Take the size as a poly_int64 rather than an int. 669 * expr.c (emit_group_load_1, emit_group_load): Likewise. 670 (emit_group_load_into_temp, emit_group_store): Likewise. 671 6722017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 673 Alan Hayward <alan.hayward@arm.com> 674 David Sherwood <david.sherwood@arm.com> 675 676 * ira-int.h (ira_spilled_reg_stack_slot::width): Change from 677 an unsigned int to a poly_uint64. 678 * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the 679 sizes as poly_uint64s rather than unsigned ints. 680 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): 681 Likewise. 682 6832017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 684 Alan Hayward <alan.hayward@arm.com> 685 David Sherwood <david.sherwood@arm.com> 686 687 * lra-constraints.c (emit_inc): Change inc_amount from an int 688 to a poly_int64. 689 6902017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 691 Alan Hayward <alan.hayward@arm.com> 692 David Sherwood <david.sherwood@arm.com> 693 694 * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT 695 to a poly_uint64. 696 (add_stack_var, stack_var_cmp, partition_stack_vars) 697 (dump_stack_var_partition): Update accordingly. 698 (alloc_stack_frame_space): Take the size as a poly_int64 rather 699 than a HOST_WIDE_INT. 700 (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes. 701 (defer_stack_allocation, estimated_stack_frame_size): Likewise. 702 (account_stack_vars, expand_one_var): Likewise. Return a poly_uint64 703 rather than a HOST_WIDE_INT. 704 7052017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 706 Alan Hayward <alan.hayward@arm.com> 707 David Sherwood <david.sherwood@arm.com> 708 709 * target.def (return_pops_args): Treat both the input and output 710 sizes as poly_int64s rather than HOST_WIDE_INTS. 711 * targhooks.h (default_return_pops_args): Update accordingly. 712 * targhooks.c (default_return_pops_args): Likewise. 713 * doc/tm.texi: Regenerate. 714 * emit-rtl.h (incoming_args): Change pops_args, size and 715 outgoing_args_size from int to poly_int64_pod. 716 * function.h (expr_status): Change x_pending_stack_adjust and 717 x_stack_pointer_delta from int to poly_int64. 718 (args_size::constant): Change from HOST_WIDE_INT to poly_int64. 719 (ARGS_SIZE_RTX): Update accordingly. 720 * calls.c (highest_outgoing_arg_in_use): Change from int to 721 unsigned int. 722 (stack_usage_watermark, stored_args_watermark): New variables. 723 (stack_region_maybe_used_p, mark_stack_region_used): New functions. 724 (emit_call_1): Change the stack_size and rounded_stack_size 725 parameters from HOST_WIDE_INT to poly_int64. Track n_popped 726 as a poly_int64. 727 (save_fixed_argument_area): Check stack_usage_watermark. 728 (initialize_argument_information): Change old_pending_adj from 729 a HOST_WIDE_INT * to a poly_int64_pod *. 730 (compute_argument_block_size): Return the size as a poly_int64 731 rather than an int. 732 (finalize_must_preallocate): Track polynomial argument sizes. 733 (compute_argument_addresses): Likewise. 734 (internal_arg_pointer_based_exp): Track polynomial offsets. 735 (mem_overlaps_already_clobbered_arg_p): Rename to... 736 (mem_might_overlap_already_clobbered_arg_p): ...this and take the 737 size as a poly_uint64 rather than an unsigned HOST_WIDE_INT. 738 Check stored_args_used_watermark. 739 (load_register_parameters): Update accordingly. 740 (check_sibcall_argument_overlap_1): Likewise. 741 (combine_pending_stack_adjustment_and_call): Take the unadjusted 742 args size as a poly_int64 rather than an int. Return a bool 743 indicating whether the optimization was possible and return 744 the new adjustment by reference. 745 (check_sibcall_argument_overlap): Track polynomail argument sizes. 746 Update stored_args_watermark. 747 (can_implement_as_sibling_call_p): Handle polynomial argument sizes. 748 (expand_call): Likewise. Maintain stack_usage_watermark and 749 stored_args_watermark. Update calls to 750 combine_pending_stack_adjustment_and_call. 751 (emit_library_call_value_1): Handle polynomial argument sizes. 752 Call stack_region_maybe_used_p and mark_stack_region_used. 753 Maintain stack_usage_watermark. 754 (store_one_arg): Likewise. Update call to 755 mem_overlaps_already_clobbered_arg_p. 756 * config/arm/arm.c (arm_output_function_prologue): Add a cast to 757 HOST_WIDE_INT. 758 * config/avr/avr.c (avr_outgoing_args_size): Likewise. 759 * config/microblaze/microblaze.c (microblaze_function_prologue): 760 Likewise. 761 * config/cr16/cr16.c (cr16_return_pops_args): Update for new 762 TARGET_RETURN_POPS_ARGS interface. 763 (cr16_compute_frame, cr16_initial_elimination_offset): Add casts 764 to HOST_WIDE_INT. 765 * config/ft32/ft32.c (ft32_compute_frame): Likewise. 766 * config/i386/i386.c (ix86_return_pops_args): Update for new 767 TARGET_RETURN_POPS_ARGS interface. 768 (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT. 769 * config/moxie/moxie.c (moxie_compute_frame): Likewise. 770 * config/m68k/m68k.c (m68k_return_pops_args): Update for new 771 TARGET_RETURN_POPS_ARGS interface. 772 * config/vax/vax.c (vax_return_pops_args): Likewise. 773 * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64. 774 (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size. 775 * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise. 776 * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise. 777 * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. 778 * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise. 779 * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise. 780 * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. 781 * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise. 782 * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust 783 and x_stack_pointer_delta from int to poly_int64. 784 * dojump.c (do_pending_stack_adjust): Update accordingly. 785 * explow.c (allocate_dynamic_stack_space): Handle polynomial 786 stack_pointer_deltas. 787 * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64. 788 (pad_to_arg_alignment): Track polynomial offsets. 789 (assign_parm_find_stack_rtl): Likewise. 790 (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes. 791 * toplev.c (output_stack_usage): Update reference to 792 current_function_pushed_stack_size. 793 7942017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 795 Alan Hayward <alan.hayward@arm.com> 796 David Sherwood <david.sherwood@arm.com> 797 798 * function.c (in_arg_offset, var_offset, dynamic_offset) 799 (out_arg_offset, cfa_offset): Change from int to poly_int64. 800 (instantiate_new_reg): Return the new offset as a poly_int64_pod 801 rather than a HOST_WIDE_INT. 802 (instantiate_virtual_regs_in_rtx): Track polynomial offsets. 803 (instantiate_virtual_regs_in_insn): Likewise. 804 8052017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 806 Alan Hayward <alan.hayward@arm.com> 807 David Sherwood <david.sherwood@arm.com> 808 809 * rtl.h (get_args_size, add_args_size_note): New functions. 810 (find_args_size_adjust): Return a poly_int64 rather than a 811 HOST_WIDE_INT. 812 (fixup_args_size_notes): Likewise. Make the same change to the 813 end_args_size parameter. 814 * rtlanal.c (get_args_size, add_args_size_note): New functions. 815 * builtins.c (expand_builtin_trap): Use add_args_size_note. 816 * calls.c (emit_call_1): Likewise. 817 * explow.c (adjust_stack_1): Likewise. 818 * cfgcleanup.c (old_insns_match_p): Update use of 819 find_args_size_adjust. 820 * combine.c (distribute_notes): Track polynomial arg sizes. 821 * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size, 822 end_true_args_size, beg_delay_args_size and end_delay_args_size 823 from HOST_WIDE_INT to poly_int64. 824 (add_cfi_args_size): Take the args_size as a poly_int64 rather 825 than a HOST_WIDE_INT. 826 (notice_args_size, notice_eh_throw, maybe_record_trace_start) 827 (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track 828 polynomial arg sizes. 829 * emit-rtl.c (try_split): Use get_args_size. 830 * recog.c (peep2_attempt): Likewise. 831 * reload1.c (reload_as_needed): Likewise. 832 * expr.c (find_args_size_adjust): Return the adjustment as a 833 poly_int64 rather than a HOST_WIDE_INT. 834 (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT 835 to a poly_int64 and change the return type in the same way. 836 (emit_single_push_insn): Track polynomial arg sizes. 837 8382017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 839 Alan Hayward <alan.hayward@arm.com> 840 David Sherwood <david.sherwood@arm.com> 841 842 * expr.h (push_block, emit_push_insn): Change the "extra" parameter 843 from HOST_WIDE_INT to poly_int64. 844 * expr.c (push_block, emit_push_insn): Likewise. 845 8462017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 847 Alan Hayward <alan.hayward@arm.com> 848 David Sherwood <david.sherwood@arm.com> 849 850 * function.h (frame_space): Change start and length from HOST_WIDE_INT 851 to poly_int64. 852 (get_frame_size): Return the size as a poly_int64 rather than a 853 HOST_WIDE_INT. 854 (frame_offset_overflow): Take the offset as a poly_int64 rather 855 than a HOST_WIDE_INT. 856 (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) 857 (assign_stack_temp): Likewise for the size. 858 * function.c (get_frame_size): Return a poly_int64 rather than 859 a HOST_WIDE_INT. 860 (frame_offset_overflow): Take the offset as a poly_int64 rather 861 than a HOST_WIDE_INT. 862 (try_fit_stack_local): Take the start, length and size as poly_int64s 863 rather than HOST_WIDE_INTs. Return the offset as a poly_int64_pod 864 rather than a HOST_WIDE_INT. 865 (add_frame_space): Take the start and end as poly_int64s rather than 866 HOST_WIDE_INTs. 867 (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) 868 (assign_stack_temp): Likewise for the size. 869 (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT 870 to poly_int64. 871 (find_temp_slot_from_address): Handle polynomial offsets. 872 (combine_temp_slots): Likewise. 873 * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT 874 to poly_int64. 875 * cfgexpand.c (alloc_stack_frame_space): Return the offset as a 876 poly_int64 rather than a HOST_WIDE_INT. 877 (expand_one_stack_var_at): Take the offset as a poly_int64 rather 878 than a HOST_WIDE_INT. 879 (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle 880 polynomial frame offsets. 881 * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size 882 as a poly_int64 rather than an int. 883 * config/m32r/m32r.c (m32r_compute_frame_size): Likewise. 884 * config/v850/v850-protos.h (compute_frame_size): Likewise. 885 * config/v850/v850.c (compute_frame_size): Likewise. 886 * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise. 887 * config/xtensa/xtensa.c (compute_frame_size): Likewise. 888 * config/pa/pa-protos.h (pa_compute_frame_size): Likewise. 889 * config/pa/pa.c (pa_compute_frame_size): Likewise. 890 * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64 891 rather than a HOST_WIDE_INT. 892 * explow.c (get_dynamic_stack_base): Likewise. 893 * final.c (final_start_function): Use the constant lower bound 894 of the frame size for -Wframe-larger-than. 895 * ira.c (do_reload): Adjust for new get_frame_size return type. 896 * lra.c (lra): Likewise. 897 * reload1.c (reload): Likewise. 898 * config/avr/avr.c (avr_asm_function_end_prologue): Likewise. 899 * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise. 900 * rtlanal.c (get_initial_register_offset): Return the offset as 901 a poly_int64 rather than a HOST_WIDE_INT. 902 9032017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 904 Alan Hayward <alan.hayward@arm.com> 905 David Sherwood <david.sherwood@arm.com> 906 907 * reload1.c (elim_table): Change initial_offset, offset and 908 previous_offset from HOST_WIDE_INT to poly_int64_pod. 909 (offsets_at): Change the target array's element type from 910 HOST_WIDE_INT to poly_int64_pod. 911 (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn) 912 (elimination_costs_in_insn, update_eliminable_offsets) 913 (verify_initial_elim_offsets, set_offsets_for_label) 914 (init_eliminable_invariants): Update after above changes. 915 9162017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 917 Alan Hayward <alan.hayward@arm.com> 918 David Sherwood <david.sherwood@arm.com> 919 920 * reload.h (reload::inc): Change from an int to a poly_int64_pod. 921 * reload.c (combine_reloads, debug_reload_to_stream): Likewise. 922 (decomposition): Change start and end from HOST_WIDE_INT 923 to poly_int64_pod. 924 (decompose, immune_p): Update accordingly. 925 (find_inc_amount): Return a poly_int64 rather than an int. 926 * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64 927 rather than an int. 928 9292017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 930 Alan Hayward <alan.hayward@arm.com> 931 David Sherwood <david.sherwood@arm.com> 932 933 * tree.h (get_inner_reference): Return the bitsize and bitpos 934 as poly_int64_pods rather than HOST_WIDE_INT. 935 * fold-const.h (ptr_difference_const): Return the pointer difference 936 as a poly_int64_pod rather than a HOST_WIDE_INT. 937 * expr.c (get_inner_reference): Return the bitsize and bitpos 938 as poly_int64_pods rather than HOST_WIDE_INT. 939 (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial 940 offsets and sizes. 941 * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64 942 rather than a HOST_WIDE_INT. Update call to get_inner_reference. 943 (optimize_bit_field_compare): Update call to get_inner_reference. 944 (decode_field_reference): Likewise. 945 (fold_unary_loc): Track polynomial offsets and sizes. 946 (split_address_to_core_and_offset): Return the bitpos as a 947 poly_int64_pod rather than a HOST_WIDE_INT. 948 (ptr_difference_const): Likewise for the pointer difference. 949 * asan.c (instrument_derefs): Track polynomial offsets and sizes. 950 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise. 951 * dbxout.c (dbxout_expand_expr): Likewise. 952 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref) 953 (loc_list_from_tree_1, fortran_common): Likewise. 954 * gimple-laddress.c (pass_laddress::execute): Likewise. 955 * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise. 956 * gimplify.c (gimplify_scan_omp_clauses): Likewise. 957 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. 958 * tree-affine.c (tree_to_aff_combination): Likewise. 959 (get_inner_reference_aff): Likewise. 960 * tree-data-ref.c (split_constant_offset_1): Likewise. 961 (dr_analyze_innermost): Likewise. 962 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise. 963 * tree-sra.c (ipa_sra_check_caller): Likewise. 964 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. 965 * ubsan.c (maybe_instrument_pointer_overflow): Likewise. 966 (instrument_bool_enum_load, instrument_object_size): Likewise. 967 * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call 968 to get_inner_reference. 969 * hsa-gen.c (gen_hsa_addr): Likewise. 970 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. 971 * tsan.c (instrument_expr): Likewise. 972 * match.pd: Update call to ptr_difference_const. 973 9742017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 975 Alan Hayward <alan.hayward@arm.com> 976 David Sherwood <david.sherwood@arm.com> 977 978 * fold-const.c (fold_comparison): Track sizes and offsets as 979 poly_int64s rather than HOST_WIDE_INTs when folding address 980 comparisons. 981 9822017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 983 Alan Hayward <alan.hayward@arm.com> 984 David Sherwood <david.sherwood@arm.com> 985 986 * expr.h (get_bit_range): Return the bitstart and bitend as 987 poly_uint64s rather than unsigned HOST_WIDE_INTs. Return the bitpos 988 as a poly_int64 rather than a HOST_WIDE_INT. 989 * expr.c (get_bit_range): Likewise. 990 (expand_assignment): Update call accordingly. 991 * fold-const.c (optimize_bit_field_compare): Likewise. 992 9932017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 994 Alan Hayward <alan.hayward@arm.com> 995 David Sherwood <david.sherwood@arm.com> 996 997 * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum. 998 (aarch64_legitimate_address_p): Use it instead of an rtx code, 999 as an optional final parameter. 1000 * config/aarch64/aarch64.c (aarch64_classify_address): Likewise. 1001 (aarch64_legitimate_address_p): Likewise. 1002 (aarch64_print_address_internal): Take an aarch64_addr_query_type 1003 instead of an rtx code. 1004 (aarch64_address_valid_for_prefetch_p): Update calls accordingly. 1005 (aarch64_legitimate_address_hook_p): Likewise. 1006 (aarch64_print_ldpstp_address): Likewise. 1007 (aarch64_print_operand_address): Likewise. 1008 (aarch64_address_cost): Likewise. 1009 * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise. 1010 * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise. 1011 (aarch64_mem_pair_lanes_operand): Likewise. 1012 10132017-12-20 Richard Biener <rguenther@suse.de> 1014 1015 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call 1016 update_stmt_if_modified. 1017 10182017-12-20 Wilco Dijkstra <wdijkstr@arm.com> 1019 1020 PR tree-optimization/83491 1021 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME 1022 before walking uses. Improve coding style and comments. 1023 10242017-12-20 Tom de Vries <tom@codesourcery.com> 1025 1026 * gimple-fold.c (fold_internal_goacc_dim): Simplify. 1027 10282017-12-20 Jakub Jelinek <jakub@redhat.com> 1029 1030 PR ipa/83506 1031 * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for 1032 todo_flags_finish. 1033 (pass_ipa_free_fn_summary): Add small_p private data member, 1034 initialize to false in the ctor. 1035 (pass_ipa_free_fn_summary::clone, 1036 pass_ipa_free_fn_summary::set_pass_param, 1037 pass_ipa_free_fn_summary::gate): New methods. 1038 (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions 1039 | TODO_dump_symtab if small_p. 1040 * passes.def: Add true parm for the existing pass_ipa_free_fn_summary 1041 entry and add another instance of the pass with false parm after 1042 ipa-pure-const. 1043 * ipa-pure-const.c (pass_ipa_pure_const): Don't call 1044 ipa_free_fn_summary here. 1045 10462017-12-20 Paolo Carlini <paolo.carlini@oracle.com> 1047 1048 * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check. 1049 10502017-12-20 Martin Sebor <msebor@redhat.com> 1051 1052 PR testsuite/83131 1053 * builtins.c (expand_builtin_strlen): Use get_callee_fndecl. 1054 (expand_builtin_strcmp): Call maybe_warn_nonstring_arg. 1055 (expand_builtin_strncmp): Same. 1056 10572017-12-20 Alexandre Oliva <aoliva@redhat.com> 1058 1059 PR bootstrap/83396 1060 * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that 1061 allowed debug stmts before labels. 1062 (expand_gimple_basic_block): Likewise. 1063 * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise. 1064 * gimple-iterator.h (gsi_after_labels): Likewise. 1065 * tree-cfgcleanup (remove_forwarder_block): Likewise, but 1066 rename reused variable, and simplify using gsi_move_before. 1067 * tree-ssa-tail-merge.c (find_duplicate): Likewise. 1068 * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise. 1069 (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise. 1070 (gimple_verify_flow_info, gimple_block_label): Likewise. 1071 (make_blocks): Move debug markers after adjacent labels. 1072 * cfgrtl.c (skip_insns_after_block): Revert SFN changes that 1073 allowed debug insns outside blocks. 1074 * df-scan.c (df_insn_delete): Likewise. 1075 * lra-constraints.c (update_ebb_live_info): Likewise. 1076 * var-tracking.c (get_first_insn, vt_emit_notes): Likewise. 1077 (vt_initialize, delete_vta_debug_insns): Likewise. 1078 (reemit_marker_as_note): Drop BB parm. Adjust callers. 1079 10802017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1081 Alan Hayward <alan.hayward@arm.com> 1082 David Sherwood <david.sherwood@arm.com> 1083 1084 * poly-int-types.h (round_down_to_byte_boundary): New macro. 1085 (round_up_to_byte_boundary): Likewise. 1086 * expr.h (get_bit_range): Add temporary shim. 1087 * gimple-ssa-store-merging.c (store_operand_info): Change the 1088 bitsize, bitpos, bitregion_start and bitregion_end fields from 1089 unsigned HOST_WIDE_INT to poly_uint64. 1090 (merged_store_group): Likewise load_align_base. 1091 (compatible_load_p, compatible_load_p): Update accordingly. 1092 (imm_store_chain_info::coalesce_immediate_stores): Likewise. 1093 (split_group, imm_store_chain_info::output_merged_store): Likewise. 1094 (mem_valid_for_store_merging): Return the bitsize, bitpos, 1095 bitregion_start and bitregion_end as poly_uint64s rather than 1096 unsigned HOST_WIDE_INTs. Track polynomial offsets internally. 1097 (handled_load): Take the bitsize, bitpos, 1098 bitregion_start and bitregion_end as poly_uint64s rather than 1099 unsigned HOST_WIDE_INTs. 1100 (pass_store_merging::process_store): Update call to 1101 mem_valid_for_store_merging. 1102 11032017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1104 Alan Hayward <alan.hayward@arm.com> 1105 David Sherwood <david.sherwood@arm.com> 1106 1107 * builtins.c (get_object_alignment_2): Track polynomial offsets 1108 and sizes. Update the alignment handling. 1109 11102017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1111 Alan Hayward <alan.hayward@arm.com> 1112 David Sherwood <david.sherwood@arm.com> 1113 1114 * tree.h (get_inner_reference): Add a version that returns the 1115 offset and size as poly_int64_pods rather than HOST_WIDE_INTs. 1116 * cfgexpand.c (expand_debug_expr): Track polynomial offsets. Simply 1117 the case in which bitpos is not associated with the first byte. 1118 11192017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1120 Alan Hayward <alan.hayward@arm.com> 1121 David Sherwood <david.sherwood@arm.com> 1122 1123 * tree-affine.h (get_inner_reference_aff): Return the size as a 1124 poly_widest_int. 1125 * tree-affine.c (get_inner_reference_aff): Likewise. 1126 * tree-data-ref.c (dr_may_alias_p): Update accordingly. 1127 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise. 1128 11292017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1130 Alan Hayward <alan.hayward@arm.com> 1131 David Sherwood <david.sherwood@arm.com> 1132 1133 * fold-const.c (pointer_may_wrap_p): Take the offset as a 1134 HOST_WIDE_INT rather than a poly_int64. 1135 11362017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1137 Alan Hayward <alan.hayward@arm.com> 1138 David Sherwood <david.sherwood@arm.com> 1139 1140 * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from 1141 HOST_WIDE_INT to poly_int64_pod. 1142 (perform_symbolic_merge): Update accordingly. 1143 (bswap_replace): Likewise. 1144 11452017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1146 Alan Hayward <alan.hayward@arm.com> 1147 David Sherwood <david.sherwood@arm.com> 1148 1149 * tree-affine.h (aff_tree::offset): Change from widest_int 1150 to poly_widest_int. 1151 (wide_int_ext_for_comb): Delete. 1152 (aff_combination_const, aff_comb_cannot_overlap_p): Take the 1153 constants as poly_widest_int rather than widest_int. 1154 (aff_combination_constant_multiple_p): Return the multiplier 1155 as a poly_widest_int. 1156 (aff_combination_zero_p, aff_combination_singleton_var_p): Handle 1157 polynomial offsets. 1158 * tree-affine.c (wide_int_ext_for_comb): Make original widest_int 1159 version static and add an overload for poly_widest_int. 1160 (aff_combination_const, aff_combination_add_cst) 1161 (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take 1162 the constants as poly_widest_int rather than widest_int. 1163 (tree_to_aff_combination): Generalize INTEGER_CST case to 1164 poly_int_tree_p. 1165 (aff_combination_to_tree): Track offsets as poly_widest_ints. 1166 (aff_combination_add_product, aff_combination_mult): Handle 1167 polynomial offsets. 1168 (aff_combination_constant_multiple_p): Return the multiplier 1169 as a poly_widest_int. 1170 * tree-predcom.c (determine_offset): Return the offset as a 1171 poly_widest_int. 1172 (split_data_refs_to_components, suitable_component_p): Update 1173 accordingly. 1174 (valid_initializer_p): Update call to 1175 aff_combination_constant_multiple_p. 1176 * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets. 1177 * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step 1178 as a poly_int64 rather than a HOST_WIDE_INT. 1179 (get_address_cost): Handle polynomial offsets. 1180 (iv_elimination_compare_lt): Likewise. 1181 (rewrite_use_nonlinear_expr): Likewise. 1182 11832017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1184 Alan Hayward <alan.hayward@arm.com> 1185 David Sherwood <david.sherwood@arm.com> 1186 1187 * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset 1188 as a poly_int64_pod rather than a HOST_WIDE_INT. 1189 (get_addr_base_and_unit_offset): Likewise. 1190 * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. 1191 (get_addr_base_and_unit_offset): Likewise. 1192 * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT 1193 to poly_int64 in example. 1194 * fold-const.c (fold_binary_loc): Update call to 1195 get_addr_base_and_unit_offset. 1196 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. 1197 (maybe_canonicalize_mem_ref_addr): Likewise. 1198 (gimple_fold_stmt_to_constant_1): Likewise. 1199 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): 1200 Likewise. 1201 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. 1202 * match.pd: Likewise. 1203 * omp-low.c (lower_omp_target): Likewise. 1204 * tree-sra.c (build_ref_for_offset): Likewise. 1205 (build_debug_ref_for_model): Likewise. 1206 * tree-ssa-address.c (maybe_fold_tmr): Likewise. 1207 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise. 1208 * tree-ssa-ccp.c (optimize_memcpy): Likewise. 1209 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. 1210 (constant_pointer_difference): Likewise. 1211 * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. 1212 * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise. 1213 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. 1214 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. 1215 (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise. 1216 (set_ssa_val_to): Likewise. 1217 * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr) 1218 (maybe_diag_stxncpy_trunc): Likewise. 1219 * tree-vrp.c (vrp_prop::check_array_ref): Likewise. 1220 * tree.c (build_simple_mem_ref_loc): Likewise. 1221 (array_at_struct_end_p): Likewise. 1222 12232017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1224 Alan Hayward <alan.hayward@arm.com> 1225 David Sherwood <david.sherwood@arm.com> 1226 1227 * tree-dfa.h (get_ref_base_and_extent): Return the base, size and 1228 max_size as poly_int64_pods rather than HOST_WIDE_INTs. 1229 (get_ref_base_and_extent_hwi): Declare. 1230 * tree-dfa.c (get_ref_base_and_extent): Return the base, size and 1231 max_size as poly_int64_pods rather than HOST_WIDE_INTs. 1232 (get_ref_base_and_extent_hwi): New function. 1233 * cfgexpand.c (expand_debug_expr): Update call to 1234 get_ref_base_and_extent. 1235 * dwarf2out.c (add_var_loc_to_decl): Likewise. 1236 * gimple-fold.c (get_base_constructor): Return the offset as a 1237 poly_int64_pod rather than a HOST_WIDE_INT. 1238 (fold_const_aggregate_ref_1): Track polynomial sizes and offsets. 1239 * ipa-polymorphic-call.c 1240 (ipa_polymorphic_call_context::set_by_invariant) 1241 (extr_type_from_vtbl_ptr_store): Track polynomial offsets. 1242 (ipa_polymorphic_call_context::ipa_polymorphic_call_context) 1243 (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi 1244 rather than get_ref_base_and_extent. 1245 (ipa_polymorphic_call_context::get_dynamic_type): Likewise. 1246 * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func) 1247 (get_ancestor_addr_info, determine_locally_known_aggregate_parts): 1248 Likewise. 1249 * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update 1250 call to get_ref_base_and_extent. 1251 * tree-sra.c (create_access, get_access_for_expr): Likewise. 1252 * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p) 1253 (stmt_kills_ref_p): Likewise. 1254 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. 1255 * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p): 1256 Likewise. 1257 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. 1258 Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent 1259 when calling native_encode_expr. 1260 * tree-ssa-structalias.c (get_constraint_for_component_ref): Update 1261 call to get_ref_base_and_extent. 1262 (do_structure_copy): Use get_ref_base_and_extent_hwi rather than 1263 get_ref_base_and_extent. 1264 * var-tracking.c (track_expr_p): Likewise. 1265 12662017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1267 Alan Hayward <alan.hayward@arm.com> 1268 David Sherwood <david.sherwood@arm.com> 1269 1270 * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from 1271 HOST_WIDE_INT to poly_int64_pod. 1272 * ipa-param-manipulation.c (ipa_modify_call_arguments): Track 1273 polynomail parameter offsets. 1274 12752017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1276 Alan Hayward <alan.hayward@arm.com> 1277 David Sherwood <david.sherwood@arm.com> 1278 1279 * gengtype.c (main): Handle poly_int64_pod. 1280 * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type. 1281 (dw_cfi_oprnd::dw_cfi_cfa_loc): New field. 1282 (dw_cfa_location::offset, dw_cfa_location::base_offset): Change 1283 from HOST_WIDE_INT to poly_int64_pod. 1284 * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise. 1285 (copy_cfa): New function. 1286 (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists. 1287 (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc. 1288 (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa) 1289 (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr) 1290 (initial_return_save): Treat offsets as poly_ints. 1291 (def_cfa_0): Likewise. Cache the CFA in dw_cfi_cfa_loc if either 1292 offset is nonconstant. 1293 (reg_save): Take the offset as a poly_int64. Fall back to 1294 DW_CFA_expression for nonconstant offsets. 1295 (queue_reg_save): Take the offset as a poly_int64. 1296 * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression. 1297 12982017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1299 Alan Hayward <alan.hayward@arm.com> 1300 David Sherwood <david.sherwood@arm.com> 1301 1302 * rtl.h (operand_subword, operand_subword_force): Take the offset 1303 as a poly_uint64 an unsigned int. 1304 * emit-rtl.c (operand_subword, operand_subword_force): Likewise. 1305 13062017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1307 Alan Hayward <alan.hayward@arm.com> 1308 David Sherwood <david.sherwood@arm.com> 1309 1310 * doc/rtl.texi: Update documentation of SUBREG_BYTE. Document the 1311 'p' format code. Use INT_LIST rather than SUBREG as the example of 1312 a code with an XINT and an XEXP. Remove the implication that 1313 accessing an rtx field using XINT is expected to work. 1314 * rtl.def (SUBREG): Change format from "ei" to "ep". 1315 * rtl.h (rtunion::rt_subreg): New field. 1316 (XCSUBREG): New macro. 1317 (SUBREG_BYTE): Use it. 1318 (subreg_shape): Change offset from an unsigned int to a poly_uint16. 1319 Update constructor accordingly. 1320 (subreg_shape::operator ==): Update accordingly. 1321 (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather 1322 than an unsigned int. 1323 (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return 1324 a poly_uint64 rather than an unsigned int. 1325 (subreg_lsb_1): Likewise. Take the offset as a poly_uint64 rather 1326 than an unsigned int. 1327 (subreg_size_offset_from_lsb, subreg_size_lowpart_offset) 1328 (subreg_size_highpart_offset): Return a poly_uint64 rather than 1329 an unsigned int. Take the sizes as poly_uint64s. 1330 (subreg_offset_from_lsb): Return a poly_uint64 rather than 1331 an unsigned int. Take the shift as a poly_uint64 rather than 1332 an unsigned int. 1333 (subreg_regno_offset, subreg_offset_representable_p): Take the offset 1334 as a poly_uint64 rather than an unsigned int. 1335 (simplify_subreg_regno): Likewise. 1336 (byte_lowpart_offset): Return the memory offset as a poly_int64 1337 rather than an int. 1338 (subreg_memory_offset): Likewise. Take the subreg offset as a 1339 poly_uint64 rather than an unsigned int. 1340 (simplify_subreg, simplify_gen_subreg, subreg_get_info) 1341 (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a 1342 poly_uint64 rather than an unsigned int. 1343 * rtl.c (rtx_format): Describe 'p' in comment. 1344 (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'. 1345 * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg 1346 offset as a poly_uint64 rather than an unsigned int. 1347 (byte_lowpart_offset): Return the memory offset as a poly_int64 1348 rather than an int. 1349 (subreg_memory_offset): Likewise. Take the subreg offset as a 1350 poly_uint64 rather than an unsigned int. 1351 (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the 1352 mode sizes as poly_uint64s rather than unsigned ints. Return a 1353 poly_uint64 rather than an unsigned int. 1354 (subreg_lowpart_p): Treat subreg offsets as poly_ints. 1355 (copy_insn_1): Handle 'p'. 1356 * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s. 1357 (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than 1358 an unsigned int. Return the shift in the same way. 1359 (subreg_lsb): Return the shift as a poly_uint64 rather than an 1360 unsigned int. 1361 (subreg_size_offset_from_lsb): Take the sizes and shift as 1362 poly_uint64s rather than unsigned ints. Return the offset as 1363 a poly_uint64. 1364 (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p) 1365 (simplify_subreg_regno): Take the offset as a poly_uint64 rather than 1366 an unsigned int. 1367 * rtlhash.c (add_rtx): Handle 'p'. 1368 * genemit.c (gen_exp): Likewise. 1369 * gengenrtl.c (type_from_format, gendef): Likewise. 1370 * gensupport.c (subst_pattern_match, get_alternatives_number) 1371 (collect_insn_data, alter_predicate_for_insn, alter_constraints) 1372 (subst_dup): Likewise. 1373 * gengtype.c (adjust_field_rtx_def): Likewise. 1374 * genrecog.c (find_operand, find_matching_operand, validate_pattern) 1375 (match_pattern_2): Likewise. 1376 (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum. 1377 (rtx_test::subreg_field): New function. 1378 (operator ==, safe_to_hoist_p, transition_parameter_type) 1379 (print_nonbool_test, print_test): Handle SUBREG_FIELD. 1380 * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled. 1381 * genpeep.c (match_rtx): Likewise. 1382 * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too. 1383 (rtx_writer::print_rtx_operand): Handle 'p'. 1384 (print_value): Handle SUBREG. 1385 * read-rtl.c (apply_int_iterator): Likewise. 1386 (rtx_reader::read_rtx_operand): Handle 'p'. 1387 * alias.c (rtx_equal_for_memref_p): Likewise. 1388 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise. 1389 * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets 1390 as poly_ints. 1391 * calls.c (expand_call): Likewise. 1392 * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise. 1393 (make_extraction, gen_lowpart_for_combine): Likewise. 1394 * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p): 1395 Likewise. 1396 * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64 1397 rather than an unsigned int. Treat subreg offsets as poly_ints. 1398 (exp_equiv_p): Handle 'p'. 1399 (hash_rtx_cb): Likewise. Treat subreg offsets as poly_ints. 1400 (equiv_constant, cse_insn): Treat subreg offsets as poly_ints. 1401 * dse.c (find_shift_sequence): Likewise. 1402 * dwarf2out.c (rtl_for_decl_location): Likewise. 1403 * expmed.c (extract_low_bits): Likewise. 1404 * expr.c (emit_group_store, undefined_operand_subword_p): Likewise. 1405 (expand_expr_real_2): Likewise. 1406 * final.c (alter_subreg): Likewise. 1407 (leaf_renumber_regs_insn): Handle 'p'. 1408 * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack): 1409 Treat subreg offsets as poly_ints. 1410 * fwprop.c (forward_propagate_and_simplify): Likewise. 1411 * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise. 1412 * ira.c (get_subreg_tracking_sizes): Likewise. 1413 * ira-conflicts.c (go_through_subreg): Likewise. 1414 * ira-lives.c (process_single_reg_class_operands): Likewise. 1415 * jump.c (rtx_renumbered_equal_p): Likewise. Handle 'p'. 1416 * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset 1417 as a poly_uint64 rather than an unsigned int. 1418 (simplify_gen_subreg_concatn, resolve_simple_move): Treat 1419 subreg offsets as poly_ints. 1420 * lra-constraints.c (operands_match_p): Handle 'p'. 1421 (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints. 1422 * lra-spills.c (assign_mem_slot): Likewise. 1423 * postreload.c (move2add_valid_value_p): Likewise. 1424 * recog.c (general_operand, indirect_operand): Likewise. 1425 * regcprop.c (copy_value, maybe_mode_change): Likewise. 1426 (copyprop_hardreg_forward_1): Likewise. 1427 * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs) 1428 (record_subregs_of_mode): Likewise. 1429 * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise. 1430 * reload.c (operands_match_p): Handle 'p'. 1431 (find_reloads_subreg_address): Treat subreg offsets as poly_ints. 1432 * reload1.c (alter_reg, choose_reload_regs): Likewise. 1433 (compute_reload_subreg_offset): Likewise, and return an poly_int64. 1434 * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1): 1435 (test_vector_ops_duplicate): Treat subreg offsets as poly_ints. 1436 (simplify_const_poly_int_tests<N>::run): Likewise. 1437 (simplify_subreg, simplify_gen_subreg): Take the subreg offset as 1438 a poly_uint64 rather than an unsigned int. 1439 * valtrack.c (debug_lowpart_subreg): Likewise. 1440 * var-tracking.c (var_lowpart): Likewise. 1441 (loc_cmp): Handle 'p'. 1442 14432017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1444 Alan Hayward <alan.hayward@arm.com> 1445 David Sherwood <david.sherwood@arm.com> 1446 1447 * ira.c (get_subreg_tracking_sizes): New function. 1448 (init_live_subregs): Take an integer size rather than a register. 1449 (build_insn_chain): Use get_subreg_tracking_sizes. Update calls 1450 to init_live_subregs. 1451 14522017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1453 Alan Hayward <alan.hayward@arm.com> 1454 David Sherwood <david.sherwood@arm.com> 1455 1456 * expr.c (store_constructor_field): Change bitsize from a 1457 unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a 1458 HOST_WIDE_INT to a poly_int64. 1459 (store_constructor): Change size from a HOST_WIDE_INT to 1460 a poly_int64. 1461 (store_field): Likewise bitsize and bitpos. 1462 14632017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1464 Alan Hayward <alan.hayward@arm.com> 1465 David Sherwood <david.sherwood@arm.com> 1466 1467 * expmed.h (store_bit_field): Change bitregion_start and 1468 bitregion_end from unsigned HOST_WIDE_INT to poly_uint64. 1469 * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p) 1470 (store_bit_field_1, store_integral_bit_field, store_bit_field) 1471 (store_fixed_bit_field, store_split_bit_field): Likewise. 1472 * expr.c (store_constructor_field, store_field): Likewise. 1473 (optimize_bitfield_assignment_op): Likewise. Make the same change 1474 to bitsize and bitpos. 1475 * machmode.h (bit_field_mode_iterator): Change m_bitregion_start 1476 and m_bitregion_end from HOST_WIDE_INT to poly_int64. Make the 1477 same change in the constructor arguments. 1478 (get_best_mode): Change bitregion_start and bitregion_end from 1479 unsigned HOST_WIDE_INT to poly_uint64. 1480 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 1481 Change bitregion_start and bitregion_end from HOST_WIDE_INT to 1482 poly_int64. 1483 (bit_field_mode_iterator::next_mode): Update for new types 1484 of m_bitregion_start and m_bitregion_end. 1485 (get_best_mode): Change bitregion_start and bitregion_end from 1486 unsigned HOST_WIDE_INT to poly_uint64. 1487 14882017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1489 Alan Hayward <alan.hayward@arm.com> 1490 David Sherwood <david.sherwood@arm.com> 1491 1492 * rtl.h (simplify_gen_subreg): Add a temporary overload that 1493 accepts poly_uint64 offsets. 1494 * expmed.h (extract_bit_field): Take bitsize and bitnum as 1495 poly_uint64s rather than unsigned HOST_WIDE_INTs. 1496 * expmed.c (lowpart_bit_field_p): Likewise. 1497 (extract_bit_field_as_subreg): New function, split out from... 1498 (extract_bit_field_1): ...here. Take bitsize and bitnum as 1499 poly_uint64s rather than unsigned HOST_WIDE_INTs. For vector 1500 extractions, check that BITSIZE matches the size of the extracted 1501 value and that BITNUM is an exact multiple of that size. 1502 If all else fails, try forcing the value into memory if 1503 BITNUM is variable, and adjusting the address so that the 1504 offset is constant. Split the part that can only handle constant 1505 bitsize and bitnum out into... 1506 (extract_integral_bit_field): ...this new function. 1507 (extract_bit_field): Take bitsize and bitnum as poly_uint64s 1508 rather than unsigned HOST_WIDE_INTs. 1509 15102017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1511 Alan Hayward <alan.hayward@arm.com> 1512 David Sherwood <david.sherwood@arm.com> 1513 1514 * expmed.h (store_bit_field): Take bitsize and bitnum as 1515 poly_uint64s rather than unsigned HOST_WIDE_INTs. 1516 * expmed.c (simple_mem_bitfield_p): Likewise. Add a parameter 1517 that returns the byte size. 1518 (store_bit_field_1): Take bitsize and bitnum as 1519 poly_uint64s rather than unsigned HOST_WIDE_INTs. Update call 1520 to simple_mem_bitfield_p. Split the part that can only handle 1521 constant bitsize and bitnum out into... 1522 (store_integral_bit_field): ...this new function. 1523 (store_bit_field): Take bitsize and bitnum as poly_uint64s rather 1524 than unsigned HOST_WIDE_INTs. 1525 (extract_bit_field_1): Update call to simple_mem_bitfield_p. 1526 15272017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1528 Alan Hayward <alan.hayward@arm.com> 1529 David Sherwood <david.sherwood@arm.com> 1530 1531 * lra-int.h (lra_reg): Change offset from int to poly_int64. 1532 (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT 1533 to poly_int64. 1534 (lra_eliminate_regs_1, eliminate_regs_in_insn): Change 1535 update_sp_offset from a HOST_WIDE_INT to a poly_int64. 1536 (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the 1537 offset as a poly_int64 rather than an int. 1538 * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets. 1539 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. 1540 * lra-constraints.c (equiv_address_substitution): Track offsets 1541 as poly_int64s. 1542 (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P. 1543 (curr_insn_transform): Handle the new form of sp_offset. 1544 * lra-eliminations.c (lra_elim_table): Change previous_offset 1545 and offset from HOST_WIDE_INT to poly_int64. 1546 (print_elim_table, update_reg_eliminate): Update accordingly. 1547 (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod. 1548 (get_elimination): Update accordingly. 1549 (form_sum): Check poly_int_rtx_p instead of CONST_INT_P. 1550 (lra_eliminate_regs_1, eliminate_regs_in_insn): Change 1551 update_sp_offset from a HOST_WIDE_INT to a poly_int64. Handle 1552 poly_int64 offsets generally. 1553 (curr_sp_change): Change from HOST_WIDE_INT to poly_int64. 1554 (mark_not_eliminable, init_elimination): Update accordingly. 1555 (remove_reg_equal_offset_note): Return a bool and pass the new 1556 offset back by pointer as a poly_int64. 1557 * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64 1558 rather than a HOST_WIDE_INT. 1559 (do_remat): Track offsets poly_int64s. 1560 * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise. 1561 15622017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1563 Alan Hayward <alan.hayward@arm.com> 1564 David Sherwood <david.sherwood@arm.com> 1565 1566 * rtl.h (mem_attrs): Add a default constructor. Change size and 1567 offset from HOST_WIDE_INT to poly_int64. 1568 * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1) 1569 (adjust_automodify_address_1, set_mem_attributes_minus_bitpos) 1570 (widen_memory_access): Take the sizes and offsets as poly_int64s 1571 rather than HOST_WIDE_INTs. 1572 * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET. 1573 (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs 1574 and ints. 1575 (adjust_offset_for_component_ref): Change the offset from a 1576 HOST_WIDE_INT to a poly_int64. 1577 (nonoverlapping_memrefs_p): Track polynomial offsets and sizes. 1578 * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes. 1579 * dce.c (find_call_stack_args): Likewise. 1580 * dse.c (record_store): Likewise. 1581 * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise. 1582 * print-rtl.c (rtx_writer::print_rtx): Likewise. 1583 * read-rtl-function.c (test_loading_mem): Likewise. 1584 * rtlanal.c (may_trap_p_1): Likewise. 1585 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. 1586 * var-tracking.c (int_mem_offset, track_expr_p): Likewise. 1587 * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise. 1588 (mem_attrs::mem_attrs): New function. 1589 (set_mem_attributes_minus_bitpos): Change bitpos from a 1590 HOST_WIDE_INT to poly_int64. 1591 (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr) 1592 (clear_mem_offset, clear_mem_size, change_address) 1593 (get_spill_slot_decl, set_mem_attrs_for_spill): Directly 1594 initialize mem_attrs. 1595 (set_mem_offset, set_mem_size, adjust_address_1) 1596 (adjust_automodify_address_1, offset_address, widen_memory_access): 1597 Likewise. Take poly_int64s rather than HOST_WIDE_INT. 1598 15992017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1600 Alan Hayward <alan.hayward@arm.com> 1601 David Sherwood <david.sherwood@arm.com> 1602 1603 * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size 1604 as poly_int64s rather than HOST_WIDE_INTs. Use a size of -1 1605 rather than 0 to represent an unknown size. Assert that the size 1606 is known when the mode isn't BLKmode. 1607 (may_trap_p_1): Use -1 for unknown sizes. 1608 (rtx_addr_can_trap_p): Likewise. Pass BLKmode rather than VOIDmode. 1609 16102017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1611 Alan Hayward <alan.hayward@arm.com> 1612 David Sherwood <david.sherwood@arm.com> 1613 1614 * dse.c (store_info): Change offset and width from HOST_WIDE_INT 1615 to poly_int64. Update commentary for positions_needed.large. 1616 (read_info_type): Change offset and width from HOST_WIDE_INT 1617 to poly_int64. 1618 (set_usage_bits): Likewise. 1619 (canon_address): Return the offset as a poly_int64 rather than 1620 a HOST_WIDE_INT. Use strip_offset_and_add. 1621 (set_all_positions_unneeded, any_positions_needed_p): Use 1622 positions_needed.large to track stores with non-constant widths. 1623 (all_positions_needed_p): Likewise. Take the offset and width 1624 as poly_int64s rather than ints. Assert that rhs is nonnull. 1625 (record_store): Cope with non-constant offsets and widths. 1626 Nullify the rhs of an earlier store if we can't tell which bytes 1627 of it are needed. 1628 (find_shift_sequence): Take the access_size and shift as poly_int64s 1629 rather than ints. 1630 (get_stored_val): Take the read_offset and read_width as poly_int64s 1631 rather than HOST_WIDE_INTs. 1632 (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle 1633 non-constant offsets and widths. 1634 16352017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1636 Alan Hayward <alan.hayward@arm.com> 1637 David Sherwood <david.sherwood@arm.com> 1638 1639 * inchash.h (inchash::hash::add_poly_int): New function. 1640 * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size): 1641 Use poly_int64 rather than HOST_WIDE_INT. 1642 (ao_ref::max_size_known_p): New function. 1643 * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod 1644 rather than HOST_WIDE_INT. 1645 * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent 1646 to temporaries until its interface is adjusted to match. 1647 (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes. 1648 (aliasing_component_refs_p, decl_refs_may_alias_p) 1649 (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take 1650 the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs. 1651 (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to 1652 ao_ref fields. 1653 * alias.c (ao_ref_from_mem): Likewise. 1654 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. 1655 * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref) 1656 (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims) 1657 (maybe_trim_complex_store, maybe_trim_constructor_store) 1658 (live_bytes_read, dse_classify_store): Likewise. 1659 * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq): 1660 (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference) 1661 (fully_constant_vn_reference_p, valueize_refs_1): Likewise. 1662 (vn_reference_lookup_3): Likewise. 1663 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise. 1664 16652017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1666 Alan Hayward <alan.hayward@arm.com> 1667 David Sherwood <david.sherwood@arm.com> 1668 1669 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p) 1670 (indirect_refs_may_alias_p): Use ranges_may_overlap_p 1671 instead of ranges_overlap_p. 1672 16732017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1674 Alan Hayward <alan.hayward@arm.com> 1675 David Sherwood <david.sherwood@arm.com> 1676 1677 * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and 1678 sizes as poly_int64s rather than HOST_WIDE_INTs. 1679 16802017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1681 Alan Hayward <alan.hayward@arm.com> 1682 David Sherwood <david.sherwood@arm.com> 1683 1684 * gimple-fold.h (fold_ctor_reference): Take the offset and size 1685 as poly_uint64 rather than unsigned HOST_WIDE_INT. 1686 * gimple-fold.c (fold_ctor_reference): Likewise. 1687 16882017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1689 Alan Hayward <alan.hayward@arm.com> 1690 David Sherwood <david.sherwood@arm.com> 1691 1692 * target.def (dwarf_poly_indeterminate_value): New hook. 1693 * targhooks.h (default_dwarf_poly_indeterminate_value): Declare. 1694 * targhooks.c (default_dwarf_poly_indeterminate_value): New function. 1695 * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document. 1696 * doc/tm.texi: Regenerate. 1697 * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the 1698 offset as a poly_int64. 1699 * dwarf2out.c (new_reg_loc_descr): Move later in file. Take the 1700 offset as a poly_int64. 1701 (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc): 1702 Take the offset as a poly_int64. 1703 (build_cfa_loc): Likewise. Use loc_descr_plus_const. 1704 (frame_pointer_fb_offset): Change to a poly_int64. 1705 (int_loc_descriptor): Take the offset as a poly_int64. Use 1706 targetm.dwarf_poly_indeterminate_value for polynomial offsets. 1707 (based_loc_descr): Take the offset as a poly_int64. 1708 Use strip_offset_and_add to handle (plus X (const)). 1709 Use new_reg_loc_descr instead of an open-coded version of the 1710 previous implementation. 1711 (mem_loc_descriptor): Handle CONST_POLY_INT. 1712 (compute_frame_pointer_to_fb_displacement): Take the offset as a 1713 poly_int64. Use strip_offset_and_add to handle (plus X (const)). 1714 17152017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1716 Alan Hayward <alan.hayward@arm.com> 1717 David Sherwood <david.sherwood@arm.com> 1718 1719 * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64. 1720 (gen_rtx_REG_offset): Take the offset as a poly_int64. 1721 * inchash.h (inchash::hash::add_poly_hwi): New function. 1722 * gengtype.c (main): Register poly_int64. 1723 * emit-rtl.c (reg_attr_hasher::hash): Use inchash. Treat the 1724 offset as a poly_int. 1725 (reg_attr_hasher::equal): Use must_eq to compare offsets. 1726 (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the 1727 offset as a poly_int64. 1728 (set_reg_attrs_from_value): Treat the offset as a poly_int64. 1729 * print-rtl.c (print_poly_int): New function. 1730 (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as 1731 a poly_int. 1732 * var-tracking.c (track_offset_p, get_tracked_reg_offset): New 1733 functions. 1734 (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them. 1735 (same_variable_part_p, track_loc_p): Take the offset as a poly_int64. 1736 (vt_get_decl_and_offset): Return the offset as a poly_int64. 1737 Enforce track_offset_p for parts of a PARALLEL. 1738 (vt_add_function_parameter): Use const_offset for the final 1739 offset to track. Use get_tracked_reg_offset for the parts 1740 of a PARALLEL. 1741 17422017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1743 Alan Hayward <alan.hayward@arm.com> 1744 David Sherwood <david.sherwood@arm.com> 1745 1746 * target.def (truly_noop_truncation): Take poly_uint64s instead of 1747 unsigned ints. Change default to hook_bool_puint64_puint64_true. 1748 * doc/tm.texi: Regenerate. 1749 * hooks.h (hook_bool_uint_uint_true): Delete. 1750 (hook_bool_puint64_puint64_true): Declare. 1751 * hooks.c (hook_bool_uint_uint_true): Delete. 1752 (hook_bool_puint64_puint64_true): New function. 1753 * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s 1754 instead of unsigned ints. 1755 * config/spu/spu.c (spu_truly_noop_truncation): Likewise. 1756 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise. 1757 17582017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1759 Alan Hayward <alan.hayward@arm.com> 1760 David Sherwood <david.sherwood@arm.com> 1761 1762 * optabs.h (expand_operand): Add an int_value field. 1763 (create_expand_operand): Add an int_value parameter and use it 1764 to initialize the new expand_operand field. 1765 (create_integer_operand): Replace with a declaration of a function 1766 that accepts poly_int64s. Move the implementation to... 1767 * optabs.c (create_integer_operand): ...here. 1768 (maybe_legitimize_operand): For EXPAND_INTEGER, check whether 1769 the mode preserves the value of int_value, instead of calling 1770 const_int_operand on the rtx. Use gen_int_mode to generate 1771 the new rtx. 1772 17732017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1774 Alan Hayward <alan.hayward@arm.com> 1775 David Sherwood <david.sherwood@arm.com> 1776 1777 * dumpfile.h (dump_dec): Declare. 1778 * dumpfile.c (dump_dec): New function. 1779 * pretty-print.h (pp_wide_integer): Turn into a function and 1780 declare a poly_int version. 1781 * pretty-print.c (pp_wide_integer): New function for poly_ints. 1782 17832017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1784 Alan Hayward <alan.hayward@arm.com> 1785 David Sherwood <david.sherwood@arm.com> 1786 1787 * doc/generic.texi (POLY_INT_CST): Document. 1788 * tree.def (POLY_INT_CST): New tree code. 1789 * treestruct.def (TS_POLY_INT_CST): New tree layout. 1790 * tree-core.h (tree_poly_int_cst): New struct. 1791 (tree_node): Add a poly_int_cst field. 1792 * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros. 1793 (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref 1794 instead of a wide_int_ref. 1795 (build_int_cst, build_int_cst_type): Take a poly_int64 instead 1796 of a HOST_WIDE_INT. 1797 (build_int_cstu, build_array_type_nelts): Take a poly_uint64 1798 instead of an unsigned HOST_WIDE_INT. 1799 (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p) 1800 (ptrdiff_tree_p): Declare. 1801 (tree_to_poly_int64, tree_to_poly_uint64): Likewise. Provide 1802 extern inline implementations if the target doesn't use POLY_INT_CST. 1803 (poly_int_tree_p): New function. 1804 (wi::unextended_tree): New class. 1805 (wi::int_traits <unextended_tree>): New override. 1806 (wi::extended_tree): Add a default constructor. 1807 (wi::extended_tree::get_tree): New function. 1808 (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs. 1809 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them. 1810 (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref) 1811 (wi::tree_to_poly_wide_ref): New typedefs. 1812 (wi::ints_for): Provide overloads for extended_tree and 1813 unextended_tree. 1814 (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset) 1815 (wi::to_wide): New functions. 1816 (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints. 1817 * tree.c (poly_int_cst_hasher): New struct. 1818 (poly_int_cst_hash_table): New variable. 1819 (tree_node_structure_for_code, tree_code_size, simple_cst_equal) 1820 (valid_constant_size_p, add_expr, drop_tree_overflow): Handle 1821 POLY_INT_CST. 1822 (initialize_tree_contains_struct): Handle TS_POLY_INT_CST. 1823 (init_ttree): Initialize poly_int_cst_hash_table. 1824 (build_int_cst, build_int_cst_type, build_invariant_address): Take 1825 a poly_int64 instead of a HOST_WIDE_INT. 1826 (build_int_cstu, build_array_type_nelts): Take a poly_uint64 1827 instead of an unsigned HOST_WIDE_INT. 1828 (wide_int_to_tree): Rename to... 1829 (wide_int_to_tree_1): ...this. 1830 (build_new_poly_int_cst, build_poly_int_cst): New functions. 1831 (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref. 1832 (wide_int_to_tree): New function that takes a poly_wide_int_ref. 1833 (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64) 1834 (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions. 1835 * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle 1836 TS_POLY_INT_CST. 1837 * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise. 1838 (streamer_read_tree_body): Likewise. 1839 * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise. 1840 (streamer_write_tree_body): Likewise. 1841 * tree-streamer.c (streamer_check_handled_ts_structures): Likewise. 1842 * asan.c (asan_protect_global): Require the size to be an INTEGER_CST. 1843 * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST. 1844 * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise. 1845 * gimple-expr.h (is_gimple_constant): Likewise. 1846 * gimplify.c (maybe_with_size_expr): Likewise. 1847 * print-tree.c (print_node): Likewise. 1848 * tree-data-ref.c (data_ref_compare_tree): Likewise. 1849 * tree-pretty-print.c (dump_generic_node): Likewise. 1850 * tree-ssa-address.c (addr_for_mem_ref): Likewise. 1851 * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise. 1852 * tree-vrp.c (compare_values_warnv): Likewise. 1853 * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of) 1854 (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1) 1855 (force_expr_to_var_cost): Likewise. 1856 * tree-ssa-loop.c (for_each_index): Likewise. 1857 * fold-const.h (build_invariant_address, size_int_kind): Take a 1858 poly_int64 instead of a HOST_WIDE_INT. 1859 * fold-const.c (fold_negate_expr_1, const_binop, const_unop) 1860 (fold_convert_const, multiple_of_p, fold_negate_const): Handle 1861 POLY_INT_CST. 1862 (size_binop_loc): Likewise. Allow int_const_binop_1 to fail. 1863 (int_const_binop_2): New function, split out from... 1864 (int_const_binop_1): ...here. Handle POLY_INT_CST. 1865 (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT. 1866 * expmed.c (make_tree): Handle CONST_POLY_INT_P. 1867 * gimple-ssa-strength-reduction.c (slsr_process_add) 1868 (slsr_process_mul): Check for INTEGER_CSTs before using them 1869 as candidates. 1870 * stor-layout.c (bits_from_bytes): New function. 1871 (bit_from_pos): Use it. 1872 (layout_type): Likewise. For vectors, multiply the TYPE_SIZE_UNIT 1873 by BITS_PER_UNIT to get the TYPE_SIZE. 1874 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow 1875 MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST. 1876 18772017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1878 Alan Hayward <alan.hayward@arm.com> 1879 David Sherwood <david.sherwood@arm.com> 1880 1881 * doc/rtl.texi (const_poly_int): Document. Also document the 1882 rtl sharing behavior. 1883 * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT. 1884 * rtl.h (const_poly_int_def): New struct. 1885 (rtx_def::u): Add a cpi field. 1886 (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT. 1887 (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros. 1888 (wi::rtx_to_poly_wide_ref): New typedef 1889 (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64) 1890 (poly_int_rtx_p): New functions. 1891 (trunc_int_for_mode): Declare a poly_int64 version. 1892 (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. 1893 (immed_wide_int_const): Take a poly_wide_int_ref rather than 1894 a wide_int_ref. 1895 (strip_offset): Declare. 1896 (strip_offset_and_add): New function. 1897 * rtl.def (CONST_POLY_INT): New rtx code. 1898 * rtl.c (rtx_size): Handle CONST_POLY_INT. 1899 (shared_const_p): Use poly_int_rtx_p. 1900 * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a 1901 HOST_WIDE_INT. 1902 (gen_int_shift_amount): Likewise. 1903 * emit-rtl.c (const_poly_int_hasher): New class. 1904 (const_poly_int_htab): New variable. 1905 (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1. 1906 (const_poly_int_hasher::hash): New function. 1907 (const_poly_int_hasher::equal): Likewise. 1908 (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT. 1909 (immed_wide_int_const): Rename to... 1910 (immed_wide_int_const_1): ...this and make static. 1911 (immed_wide_int_const): New function, taking a poly_wide_int_ref 1912 instead of a wide_int_ref. 1913 (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT. 1914 (gen_lowpart_common): Handle CONST_POLY_INT. 1915 * cse.c (hash_rtx_cb, equiv_constant): Likewise. 1916 * cselib.c (cselib_hash_rtx): Likewise. 1917 * dwarf2out.c (const_ok_for_output_1): Likewise. 1918 * expr.c (convert_modes): Likewise. 1919 * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise. 1920 * rtlhash.c (add_rtx): Likewise. 1921 * explow.c (trunc_int_for_mode): Add a poly_int64 version. 1922 (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. 1923 Handle existing CONST_POLY_INT rtxes. 1924 * expmed.h (expand_shift): Take a poly_int64 instead of a 1925 HOST_WIDE_INT. 1926 * expmed.c (expand_shift): Likewise. 1927 * rtlanal.c (strip_offset): New function. 1928 (commutative_operand_precedence): Give CONST_POLY_INT the same 1929 precedence as CONST_DOUBLE and put CONST_WIDE_INT between that 1930 and CONST_INT. 1931 * rtl-tests.c (const_poly_int_tests): New struct. 1932 (rtl_tests_c_tests): Use it. 1933 * simplify-rtx.c (simplify_const_unary_operation): Handle 1934 CONST_POLY_INT. 1935 (simplify_const_binary_operation): Likewise. 1936 (simplify_binary_operation_1): Fold additions of symbolic constants 1937 and CONST_POLY_INTs. 1938 (simplify_subreg): Handle extensions and truncations of 1939 CONST_POLY_INTs. 1940 (simplify_const_poly_int_tests): New struct. 1941 (simplify_rtx_c_tests): Use it. 1942 * wide-int.h (storage_ref): Add default constructor. 1943 (wide_int_ref_storage): Likewise. 1944 (trailing_wide_ints): Use GTY((user)). 1945 (trailing_wide_ints::operator[]): Add a const version. 1946 (trailing_wide_ints::get_precision): New function. 1947 (trailing_wide_ints::extra_size): Likewise. 1948 19492017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1950 Alan Hayward <alan.hayward@arm.com> 1951 David Sherwood <david.sherwood@arm.com> 1952 1953 * emit-rtl.h (gen_int_shift_amount): Declare. 1954 * emit-rtl.c (gen_int_shift_amount): New function. 1955 * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount 1956 instead of GEN_INT. 1957 * calls.c (shift_return_value): Likewise. 1958 * cse.c (fold_rtx): Likewise. 1959 * dse.c (find_shift_sequence): Likewise. 1960 * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1) 1961 (expand_shift, expand_smod_pow2): Likewise. 1962 * lower-subreg.c (shift_cost): Likewise. 1963 * optabs.c (expand_superword_shift, expand_doubleword_mult) 1964 (expand_unop, expand_binop, shift_amt_for_vec_perm_mask) 1965 (expand_vec_perm_var): Likewise. 1966 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 1967 (simplify_binary_operation_1): Likewise. 1968 * combine.c (try_combine, find_split_point, force_int_to_mode) 1969 (simplify_shift_const_1, simplify_shift_const): Likewise. 1970 (change_zero_ext): Likewise. Use simplify_gen_binary. 1971 19722017-12-20 Richard Sandiford <richard.sandiford@linaro.org> 1973 1974 * poly-int.h (multiple_p): Fix handling of two non-poly_ints. 1975 19762017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1977 1978 * doc/invoke.texi (ARM Options): Document accepted extension options 1979 for -march=armv8.3-a. 1980 19812017-12-20 Richard Earnshaw <rearnsha@arm.com> 1982 1983 PR target/83105 1984 * config.gcc (arm*-*-linux*): When configured with --with-float=hard 1985 or --with-float=softfp, set the default CPU to arm10e. 1986 19872017-12-20 Eric Botcazou <ebotcazou@adacore.com> 1988 1989 * config/visium/constraints.md (J, K, L): Use IN_RANGE macro. 1990 * config/visium/predicates.md (const_shift_operand): Likewise. 1991 * config/visium/visium.c (visium_legitimize_address): Fix oversight. 1992 (visium_legitimize_reload_address): Likewise. 1993 19942017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1995 1996 PR target/82975 1997 * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830. 1998 19992017-12-20 Jakub Jelinek <jakub@redhat.com> 2000 2001 PR c++/83490 2002 * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments. 2003 20042017-12-20 Julia Koval <julia.koval@intel.com> 2005 2006 * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET, 2007 OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New. 2008 (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2. 2009 * config.gcc: Include vpclmulqdqintrin.h. 2010 * config/i386/cpuid.h: Handle bit_VPCLMULQDQ. 2011 * config/i386/driver-i386.c (host_detect_local_cpu): Handle 2012 -mvpclmulqdq. 2013 * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di, 2014 __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New. 2015 * config/i386/i386-c.c (__VPCLMULQDQ__): New. 2016 * config/i386/i386.c (isa2_opts): Add -mcx16. 2017 (isa_opts): Add -mpclmulqdq, remove -mcx16. 2018 (ix86_option_override_internal): Move mcx16 to flags2. 2019 (ix86_valid_target_attribute_inner_p): Add vpclmulqdq. 2020 (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ. 2021 * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New. 2022 * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2. 2023 * config/i386/immintrin.h: Include vpclmulqdqintrin.h. 2024 * config/i386/sse.md (vpclmulqdq_<mode>): New pattern. 2025 * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128, 2026 _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics. 2027 * doc/invoke.texi: Add -mvpclmulqdq. 2028 20292017-12-20 Tom de Vries <tom@codesourcery.com> 2030 2031 PR middle-end/83423 2032 * config/i386/i386.c (ix86_static_chain): Move 2033 DECL_STATIC_CHAIN test ... 2034 * calls.c (rtx_for_static_chain): ... here. New function. 2035 * calls.h (rtx_for_static_chain): Declare. 2036 * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain 2037 instead of targetm.calls.static_chain. 2038 * df-scan.c (df_get_entry_block_def_set): Same. 2039 20402017-12-19 Tom de Vries <tom@codesourcery.com> 2041 2042 PR tree-optimization/83493 2043 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub 2044 and lb. 2045 20462017-12-19 Jakub Jelinek <jakub@redhat.com> 2047 2048 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of 2049 inform with hardcoded english plural handling. 2050 20512017-12-18 Jeff Law <law@redhat.com> 2052 2053 PR tree-optimization/83477 2054 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For 2055 a non-virtual PHI, always push a new range. 2056 20572017-12-19 Martin Sebor <msebor@redhat.com> 2058 2059 PR middle-end/77608 2060 * builtins.c (compute_objsize): Handle non-constant offsets. 2061 20622017-12-19 Jakub Jelinek <jakub@redhat.com> 2063 2064 PR tree-optimization/83444 2065 * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the 2066 character load case, if get_stridx on MEM_REF's operand doesn't 2067 look usable, retry with get_addr_stridx. 2068 20692017-12-19 Alexandre Oliva <aoliva@redhat.com> 2070 2071 PR debug/83422 2072 * var-tracking.c (vt_debug_insns_local): Do not drop markers. 2073 (variable_tracking_main_1): Keep markers even when VTA fails. 2074 2075 PR bootstrap/83396 2076 * cfgexpand.c (expand_gimple_basic_block): Expand label first, 2077 even if there are markers before it. 2078 * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs. 2079 20802017-12-19 Jakub Jelinek <jakub@redhat.com> 2081 2082 * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with 2083 typical order conditions. 2084 * sel-sched.c (extract_new_fences_from): Likewise. 2085 * config/visium/constraints.md (J, K, L): Likewise. 2086 * config/visium/predicates.md (const_shift_operand): Likewise. 2087 * config/visium/visium.c (visium_legitimize_address, 2088 visium_legitimize_reload_address): Likewise. 2089 * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise. 2090 * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise. 2091 * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise. 2092 * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log, 2093 SET_DUMP_DETAIL): Likewise. 2094 * config/avr/predicates.md (const_8_16_24_operand): Likewise. 2095 * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte, 2096 avr_is_casesi_sequence, avr_casei_sequence_check_operands, 2097 avr_set_core_architecture, avr_set_current_function, 2098 avr_legitimize_reload_address, avr_asm_len, avr_print_operand, 2099 output_movqi, output_movsisf, avr_out_plus, avr_out_bitop, 2100 avr_out_fract, avr_adjust_insn_length, avr_encode_section_info, 2101 avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf, 2102 avr_map_decompose, avr_fold_builtin): Likewise. 2103 * config/avr/driver-avr.c (avr_devicespecs_file): Likewise. 2104 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise. 2105 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise. 2106 * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise. 2107 * config/m32c/m32c.c (m32c_conditional_register_usage, 2108 m32c_address_cost): Likewise. 2109 * config/m32c/predicates.md (shiftcount_operand, 2110 longshiftcount_operand): Likewise. 2111 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. 2112 * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option, 2113 can_use_cdx_ldstw): Likewise. 2114 * config/nios2/nios2.h (CDX_REG_P): Likewise. 2115 * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P): 2116 Likewise. 2117 * config/cr16/cr16.md (*mov<mode>_double): Likewise. 2118 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise. 2119 * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise. 2120 * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise. 2121 * config/vax/vax.c (adjacent_operands_p): Likewise. 2122 * config/ft32/constraints.md (L, b, KA): Likewise. 2123 * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue): 2124 Likewise. 2125 * cfgexpand.c (expand_stack_alignment): Likewise. 2126 * gcse.c (insert_expr_in_table): Likewise. 2127 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise. 2128 * cgraphunit.c (cgraph_node::expand): Likewise. 2129 * ira-build.c (setup_min_max_allocno_live_range_point): Likewise. 2130 * emit-rtl.c (add_insn): Likewise. 2131 * input.c (dump_location_info): Likewise. 2132 * passes.c (NEXT_PASS): Likewise. 2133 * read-rtl-function.c (parse_note_insn_name, 2134 function_reader::read_rtx_operand_r, function_reader::parse_mem_expr): 2135 Likewise. 2136 * sched-rgn.c (sched_rgn_init): Likewise. 2137 * diagnostic-show-locus.c (layout::show_ruler): Likewise. 2138 * combine.c (find_split_point, simplify_if_then_else, force_to_mode, 2139 if_then_else_cond, simplify_shift_const_1, simplify_comparison): 2140 Likewise. 2141 * explow.c (eliminate_constant_term): Likewise. 2142 * final.c (leaf_renumber_regs_insn): Likewise. 2143 * cfgrtl.c (print_rtl_with_bb): Likewise. 2144 * genhooks.c (emit_init_macros): Likewise. 2145 * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise. 2146 * tree-data-ref.c (conflict_fn): Likewise. 2147 * selftest.c (assert_streq): Likewise. 2148 * expr.c (store_constructor_field, expand_expr_real_1): Likewise. 2149 * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor, 2150 fold_binary_loc, multiple_of_p): Likewise. 2151 * reload.c (push_reload, find_equiv_reg): Likewise. 2152 * et-forest.c (et_nca, et_below): Likewise. 2153 * dbxout.c (dbxout_symbol_location): Likewise. 2154 * reorg.c (relax_delay_slots): Likewise. 2155 * dojump.c (do_compare_rtx_and_jump): Likewise. 2156 * gengtype-parse.c (type): Likewise. 2157 * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational, 2158 simplify_const_relational_operation): Likewise. 2159 * reload1.c (do_output_reload): Likewise. 2160 * dumpfile.c (get_dump_file_info_by_switch): Likewise. 2161 * gengtype.c (type_for_name): Likewise. 2162 * gimple-ssa-sprintf.c (format_directive): Likewise. 2163 21642017-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2165 2166 PR target/82975 2167 * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before 2168 accessing it. Adjust comment. 2169 21702017-12-19 Jakub Jelinek <jakub@redhat.com> 2171 2172 PR middle-end/81914 2173 * predict.c (zero_one_minusone): New function. 2174 (apply_return_prediction): Avoid return prediction for functions 2175 returning only -1, 0 and 1 values, unless they only return -1 and 0 2176 or 0 and 1. 2177 21782017-12-19 Claudiu Zissulescu <claziss@synopsys.com> 2179 2180 * config/arc/arc.c (legitimate_scaled_address_p): Clean 2181 fall-through warning. 2182 (arc_compute_frame_size): Remove unused variables. 2183 (arc_print_operand): Fix fprintif format. 2184 (arc_can_follow_jump): Clean fall-through warning. 2185 21862017-12-19 Marek Polacek <polacek@redhat.com> 2187 2188 PR c++/83489 2189 * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P 2190 on an error node. 2191 21922017-12-19 Claudiu Zissulescu <claziss@synopsys.com> 2193 2194 * config/arc/arc.c (overriderregs): New variable. 2195 (arc_override_options): Track fixed/call saved/call options. 2196 (arc_conditional_register_usage): Check against overrideregs 2197 variable whenever we change register properties. 2198 21992017-12-19 Nathan Sidwell <nathan@acm.org> 2200 2201 * opts.c (finish_options): Don't prefix dump_base_name if it 2202 already contains directories. 2203 22042017-12-19 Martin Liska <mliska@suse.cz> 2205 2206 PR rtl-optimization/82675 2207 * loop-unroll.c (unroll_loop_constant_iterations): Allocate one 2208 more element in sbitmap. 2209 22102017-12-19 Paolo Carlini <paolo.carlini@oracle.com> 2211 2212 * gimplify.c (gimplify_expr): Use error_operand_p. 2213 22142017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de> 2215 2216 PR target/83387 2217 * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float 2218 multilib. 2219 22202017-12-19 Daniel Cederman <cederman@gaisler.com> 2221 2222 * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure 2223 the jump is to a label. 2224 22252017-12-19 Jakub Jelinek <jakub@redhat.com> 2226 2227 PR tree-optimization/83444 2228 * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize 2229 character loads. 2230 2231 PR ipa/82801 2232 PR ipa/83346 2233 * ipa-inline.c (flatten_remove_node_hook): New function. 2234 (ipa_inline): Keep only nodes with flatten attribute at the end of 2235 the array in the order from ipa_reverse_postorder, only walk that 2236 portion of array for flattening, if there is more than one such 2237 node, temporarily register a removal hook and ignore removed nodes. 2238 2239 PR tree-optimization/80631 2240 * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare 2241 induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against 2242 IFN_REDUC_MAX or IFN_REDUC_MIN. 2243 22442017-12-18 Jeff Law <law@redhat.com> 2245 2246 * tree-ssa-dom.c (record_equivalences_from_phis): Do not 2247 record symbolic equivalences from backedges in the CFG. 2248 2249 Revert 2250 2017-11-19 Jeff Law <law@redhat.com> 2251 2252 * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling 2253 of degenerates resulting from ignoring an edge. 2254 22552017-12-18 Martin Sebor <msebor@redhat.com> 2256 2257 PR middle-end/83373 2258 PR tree-optimization/78450 2259 * tree-ssa-strlen.c (maybe_set_strlen_range): New function. 2260 (handle_builtin_strlen): Call it. 2261 22622017-12-18 Segher Boessenkool <segher@kernel.crashing.org> 2263 2264 PR rtl-optimization/83424 2265 * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET. 2266 22672017-12-18 Marek Polacek <polacek@redhat.com> 2268 2269 PR middle-end/83463 2270 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): 2271 Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max 2272 values. 2273 22742017-12-18 Claudiu Zissulescu <claziss@synopsys.com> 2275 2276 * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern. 2277 (umaddsidi4, umaddsidi_split): Likewise. 2278 22792017-12-18 Claudiu Zissulescu <claziss@synopsys.com> 2280 2281 * config/arc/arc.c (arc_legitimate_constant_p): Always check all 2282 constants. 2283 22842017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 2285 2286 PR target/83420 2287 * config/s390/s390.c (s390_option_override): Avoid strncpy. 2288 22892017-12-18 Richard Biener <rguenther@suse.de> 2290 2291 PR tree-optimization/81877 2292 * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters. 2293 (outermost_indep_loop): Adjust. 2294 (ref_indep_loop_p_1): Likewise. Remove safelen handling again. 2295 (can_sm_ref_p): Adjust. 2296 22972017-12-18 Richard Biener <rguenther@suse.de> 2298 2299 PR middle-end/77291 2300 * tree.c (array_at_struct_end_p): Return true if the underlying 2301 object has space for at least one element in excess of what 2302 the array domain specifies. 2303 23042017-12-17 Sandra Loosemore <sandra@codesourcery.com> 2305 2306 * doc/extend.texi (x86 Function Attributes): Reformat nocf_check 2307 example to avoid overfull hbox. 2308 * doc/invoke.texi (Option Summary): Add missing @gol. 2309 (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid 2310 overfull hbox. 2311 23122017-12-17 Sandra Loosemore <sandra@codesourcery.com> 2313 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2314 2315 * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump 2316 to AArch64 and ARM lists, plus missing -mflip-thumb for ARM. 2317 (AArch64 Options): Document -mverbose-cost-dump. 2318 (ARM Options): Likewise, plus -mflip-thumb. 2319 23202017-12-17 Martin Sebor <msebor@redhat.com> 2321 2322 PR bootstrap/83446 2323 * gimple-ssa-warn-restrict.c 2324 (builtin_memref::offset_out_of_bounds): Correct the handling of 2325 anti-ranges. 2326 23272017-12-17 Sandra Loosemore <sandra@codesourcery.com> 2328 2329 * doc/invoke.texi (ARC Options): Add missing -mlra entry. 2330 23312017-12-17 John David Anglin <danglin@gcc.gnu.org> 2332 2333 * config/pa/pa.c (pa_som_asm_init_sections): Fix comment. 2334 23352017-12-17 Markus Trippelsdorf <markus@trippelsdorf.de> 2336 2337 * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply 2338 latencies. 2339 23402017-12-16 Sandra Loosemore <sandra@codesourcery.com> 2341 2342 * doc/invoke.texi: Fix some typos. 2343 23442017-12-16 Martin Sebor <msebor@redhat.com> 2345 2346 PR tree-optimization/78918 2347 * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o. 2348 * builtins.c (check_sizes): Rename... 2349 (check_access): ...to this. Rename function arguments for clarity. 2350 (check_memop_sizes): Adjust names. 2351 (expand_builtin_memchr, expand_builtin_memcpy): Same. 2352 (expand_builtin_memmove, expand_builtin_mempcpy): Same. 2353 (expand_builtin_strcat, expand_builtin_stpncpy): Same. 2354 (check_strncat_sizes, expand_builtin_strncat): Same. 2355 (expand_builtin_strncpy, expand_builtin_memset): Same. 2356 (expand_builtin_bzero, expand_builtin_memcmp): Same. 2357 (expand_builtin_memory_chk, maybe_emit_chk_warning): Same. 2358 (maybe_emit_sprintf_chk_warning): Same. 2359 (expand_builtin_strcpy): Adjust. 2360 (expand_builtin_stpcpy): Same. 2361 (expand_builtin_with_bounds): Detect out-of-bounds accesses 2362 in pointer-checking forms of memcpy, memmove, and mempcpy. 2363 (gcall_to_tree_minimal, max_object_size): Define new functions. 2364 * builtins.h (max_object_size): Declare. 2365 * calls.c (alloc_max_size): Call max_object_size instead of 2366 hardcoding ssizetype limit. 2367 (get_size_range): Handle new argument. 2368 * calls.h (get_size_range): Add a new argument. 2369 * cfgexpand.c (expand_call_stmt): Propagate no-warning bit. 2370 * doc/invoke.texi (-Wrestrict): Adjust, add example. 2371 * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping 2372 operations. 2373 (gimple_fold_builtin_memory_chk): Same. 2374 (gimple_fold_builtin_stxcpy_chk): New function. 2375 * gimple-ssa-warn-restrict.c: New source. 2376 * gimple-ssa-warn-restrict.h: New header. 2377 * gimple.c (gimple_build_call_from_tree): Propagate location. 2378 * passes.def (pass_warn_restrict): Add new pass. 2379 * tree-pass.h (make_pass_warn_restrict): Declare. 2380 * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping 2381 operations. 2382 (handle_builtin_strcat): Same. 2383 (strlen_optimize_stmt): Rename... 2384 (strlen_check_and_optimize_stmt): ...to this. Handle strncat, 2385 stpncpy, strncpy, and their checking forms. 2386 23872017-12-16 Jan Hubicka <hubicka@ucw.cz> 2388 2389 PR rtl-optimization/82849 2390 * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int 2391 and get_max_loop_iterations_int. 2392 23932017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2394 Alan Hayward <alan.hayward@arm.com> 2395 David Sherwood <david.sherwood@arm.com> 2396 2397 * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size) 2398 (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode 2399 size as a poly_uint64. 2400 (mode_for_vector, mode_for_int_vector): Take the number of vector 2401 elements as a poly_uint64. 2402 * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode 2403 size as a poly_uint64. 2404 (mode_for_vector, mode_for_int_vector): Take the number of vector 2405 elements as a poly_uint64. 2406 24072017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2408 Alan Hayward <alan.hayward@arm.com> 2409 David Sherwood <david.sherwood@arm.com> 2410 2411 * machmode.h (MACRO_MODE): New macro. 2412 * addresses.h (base_reg_class, ok_for_base_p_1): Use it. 2413 * targhooks.c (default_libcall_value, default_secondary_reload) 2414 (default_memory_move_cost, default_register_move_cost) 2415 (default_class_max_nregs): Likewise. 2416 24172017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2418 Alan Hayward <alan.hayward@arm.com> 2419 David Sherwood <david.sherwood@arm.com> 2420 2421 * doc/sourcebuild.texi: Document IN_TARGET_CODE. 2422 * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the 2423 target C file. 2424 * genautomata.c (main): Likewise. 2425 * genconditions.c (write_header): Likewise. 2426 * genemit.c (main): Likewise. 2427 * genextract.c (print_header): Likewise. 2428 * genopinit.c (main): Likewise. 2429 * genoutput.c (output_prologue): Likewise. 2430 * genpeep.c (main): Likewise. 2431 * genpreds.c (write_insn_preds_c): Likewise. 2432 * genrecog.c (writer_header): Likewise. 2433 * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define. 2434 * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise. 2435 * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise. 2436 * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise. 2437 * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise. 2438 * config/alpha/alpha.c (IN_TARGET_CODE): Likewise. 2439 * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise. 2440 * config/arc/arc-c.c (IN_TARGET_CODE): Likewise. 2441 * config/arc/arc.c (IN_TARGET_CODE): Likewise. 2442 * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise. 2443 * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise. 2444 * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise. 2445 * config/arm/arm-c.c (IN_TARGET_CODE): Likewise. 2446 * config/arm/arm.c (IN_TARGET_CODE): Likewise. 2447 * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise. 2448 * config/avr/avr-c.c (IN_TARGET_CODE): Likewise. 2449 * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise. 2450 * config/avr/avr-log.c (IN_TARGET_CODE): Likewise. 2451 * config/avr/avr.c (IN_TARGET_CODE): Likewise. 2452 * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise. 2453 * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise. 2454 * config/bfin/bfin.c (IN_TARGET_CODE): Likewise. 2455 * config/c6x/c6x.c (IN_TARGET_CODE): Likewise. 2456 * config/cr16/cr16.c (IN_TARGET_CODE): Likewise. 2457 * config/cris/cris.c (IN_TARGET_CODE): Likewise. 2458 * config/darwin.c (IN_TARGET_CODE): Likewise. 2459 * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise. 2460 * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise. 2461 * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise. 2462 * config/fr30/fr30.c (IN_TARGET_CODE): Likewise. 2463 * config/frv/frv.c (IN_TARGET_CODE): Likewise. 2464 * config/ft32/ft32.c (IN_TARGET_CODE): Likewise. 2465 * config/h8300/h8300.c (IN_TARGET_CODE): Likewise. 2466 * config/i386/djgpp.c (IN_TARGET_CODE): Likewise. 2467 * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise. 2468 * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise. 2469 * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise. 2470 * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise. 2471 * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise. 2472 * config/i386/i386-c.c (IN_TARGET_CODE): Likewise. 2473 * config/i386/i386.c (IN_TARGET_CODE): Likewise. 2474 * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise. 2475 * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise. 2476 * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise. 2477 * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise. 2478 * config/i386/winnt.c (IN_TARGET_CODE): Likewise. 2479 * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise. 2480 * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise. 2481 * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise. 2482 * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise. 2483 * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise. 2484 * config/ia64/ia64.c (IN_TARGET_CODE): Likewise. 2485 * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise. 2486 * config/lm32/lm32.c (IN_TARGET_CODE): Likewise. 2487 * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise. 2488 * config/m32c/m32c.c (IN_TARGET_CODE): Likewise. 2489 * config/m32r/m32r.c (IN_TARGET_CODE): Likewise. 2490 * config/m68k/m68k.c (IN_TARGET_CODE): Likewise. 2491 * config/mcore/mcore.c (IN_TARGET_CODE): Likewise. 2492 * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise. 2493 * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise. 2494 * config/mips/driver-native.c (IN_TARGET_CODE): Likewise. 2495 * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise. 2496 * config/mips/mips.c (IN_TARGET_CODE): Likewise. 2497 * config/mmix/mmix.c (IN_TARGET_CODE): Likewise. 2498 * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise. 2499 * config/moxie/moxie.c (IN_TARGET_CODE): Likewise. 2500 * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise. 2501 * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise. 2502 * config/msp430/msp430.c (IN_TARGET_CODE): Likewise. 2503 * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise. 2504 * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise. 2505 * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise. 2506 * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise. 2507 * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise. 2508 * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise. 2509 * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise. 2510 * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise. 2511 * config/nds32/nds32.c (IN_TARGET_CODE): Likewise. 2512 * config/nios2/nios2.c (IN_TARGET_CODE): Likewise. 2513 * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise. 2514 * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise. 2515 * config/pa/pa.c (IN_TARGET_CODE): Likewise. 2516 * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise. 2517 * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise. 2518 * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise. 2519 * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. 2520 * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise. 2521 * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise. 2522 * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise. 2523 * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise. 2524 * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise. 2525 * config/riscv/riscv.c (IN_TARGET_CODE): Likewise. 2526 * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise. 2527 * config/rl78/rl78.c (IN_TARGET_CODE): Likewise. 2528 * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise. 2529 * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise. 2530 * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. 2531 * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise. 2532 * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise. 2533 * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise. 2534 * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise. 2535 * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise. 2536 * config/rx/rx.c (IN_TARGET_CODE): Likewise. 2537 * config/s390/driver-native.c (IN_TARGET_CODE): Likewise. 2538 * config/s390/s390-c.c (IN_TARGET_CODE): Likewise. 2539 * config/s390/s390.c (IN_TARGET_CODE): Likewise. 2540 * config/sh/sh-c.c (IN_TARGET_CODE): Likewise. 2541 * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise. 2542 * config/sh/sh.c (IN_TARGET_CODE): Likewise. 2543 * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise. 2544 * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise. 2545 * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise. 2546 * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise. 2547 * config/sparc/sparc.c (IN_TARGET_CODE): Likewise. 2548 * config/spu/spu-c.c (IN_TARGET_CODE): Likewise. 2549 * config/spu/spu.c (IN_TARGET_CODE): Likewise. 2550 * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise. 2551 * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise. 2552 * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise. 2553 * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise. 2554 * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise. 2555 * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise. 2556 * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise. 2557 * config/v850/v850-c.c (IN_TARGET_CODE): Likewise. 2558 * config/v850/v850.c (IN_TARGET_CODE): Likewise. 2559 * config/vax/vax.c (IN_TARGET_CODE): Likewise. 2560 * config/visium/visium.c (IN_TARGET_CODE): Likewise. 2561 * config/vms/vms-c.c (IN_TARGET_CODE): Likewise. 2562 * config/vms/vms-f.c (IN_TARGET_CODE): Likewise. 2563 * config/vms/vms.c (IN_TARGET_CODE): Likewise. 2564 * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise. 2565 25662017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2567 Alan Hayward <alan.hayward@arm.com> 2568 David Sherwood <david.sherwood@arm.com> 2569 2570 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated 2571 checks for MEM_REF. 2572 25732017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2574 Alan Hayward <alan.hayward@arm.com> 2575 David Sherwood <david.sherwood@arm.com> 2576 2577 * doc/generic.texi (VEC_SERIES_EXPR): Document. 2578 * doc/md.texi (vec_series@var{m}): Document. 2579 * tree.def (VEC_SERIES_EXPR): New tree code. 2580 * tree.h (build_vec_series): Declare. 2581 * tree.c (build_vec_series): New function. 2582 * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR. 2583 * tree-pretty-print.c (dump_generic_node): Likewise. 2584 * gimple-pretty-print.c (dump_binary_rhs): Likewise. 2585 * tree-inline.c (estimate_operator_cost): Likewise. 2586 * expr.c (expand_expr_real_2): Likewise. 2587 * optabs-tree.c (optab_for_tree_code): Likewise. 2588 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 2589 * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants. 2590 * expmed.c (make_tree): Handle VEC_SERIES. 2591 * optabs.def (vec_series_optab): New optab. 2592 * optabs.h (expand_vec_series_expr): Declare. 2593 * optabs.c (expand_vec_series_expr): New function. 2594 * tree-vect-generic.c (expand_vector_operations_1): Check that 2595 the operands also have vector type. 2596 25972017-12-16 Richard Sandiford <richard.sandiford@linaro.org> 2598 Alan Hayward <alan.hawyard@arm.com> 2599 David Sherwood <david.sherwood@arm.com> 2600 2601 * doc/generic.texi (VEC_DUPLICATE_EXPR): Document. 2602 (VEC_COND_EXPR): Add missing @tindex. 2603 * doc/md.texi (vec_duplicate@var{m}): Document. 2604 * tree.def (VEC_DUPLICATE_EXPR): New tree codes. 2605 * tree.c (build_vector_from_val): Add stubbed-out handling of 2606 variable-length vectors, using VEC_DUPLICATE_EXPR. 2607 (uniform_vector_p): Handle VEC_DUPLICATE_EXPR. 2608 * cfgexpand.c (expand_debug_expr): Likewise. 2609 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 2610 * tree-inline.c (estimate_operator_cost): Likewise. 2611 * tree-pretty-print.c (dump_generic_node): Likewise. 2612 * tree-vect-generic.c (ssa_uniform_vector_p): Likewise. 2613 * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant. 2614 (test_vec_duplicate_folding): New function. 2615 (fold_const_c_tests): Call it. 2616 * optabs.def (vec_duplicate_optab): New optab. 2617 * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR. 2618 * optabs.h (expand_vector_broadcast): Declare. 2619 * optabs.c (expand_vector_broadcast): Make non-static. Try using 2620 vec_duplicate_optab. 2621 * expr.c (store_constructor): Try using vec_duplicate_optab for 2622 uniform vectors. 2623 (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR. 2624 26252017-12-15 Markus Trippelsdorf <markus@trippelsdorf.de> 2626 2627 PR target/83358 2628 * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase 2629 div/mod latencies a bit. 2630 26312017-12-15 Jeff Law <law@redhat.com> 2632 2633 PR tree-optimization/36550 2634 * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New. 2635 (mark_threaded_blocks): Rewrite code to avoid block copying when 2636 optimizing for size. Don't pessimize blocks which will be 2637 copied, but all the statements will be dead. 2638 26392017-12-15 Alexandre Oliva <aoliva@redhat.com> 2640 2641 PR tree-optimization/81165 2642 * tree-ssa-threadupdate.c (uses_in_bb): New. 2643 (estimate_threading_killed_stmts): New. 2644 * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype. 2645 * tree-ssa-threadedge.c 2646 (record_temporary_equivalences_from_stmts_at_dest): Expand limit 2647 when its hit. 2648 26492017-12-15 Jeff Law <law@redhat.com> 2650 2651 PR tree-optimization/83410 2652 * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump 2653 threads when parallelizing loops. 2654 26552017-12-15 Jakub Jelinek <jakub@redhat.com> 2656 2657 * tree-core.h (struct attribute_spec): Swap affects_type_identity and 2658 handler fields. 2659 * config/alpha/alpha.c (vms_attribute_table): Swap 2660 affects_type_identity and handler fields, adjust comments. 2661 * config/mips/mips.c (mips_attribute_table): Likewise. 2662 * config/visium/visium.c (visium_attribute_table): Likewise. 2663 * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise. 2664 * config/microblaze/microblaze.c (microblaze_attribute_table): 2665 Likewise. 2666 * config/spu/spu.c (spu_attribute_table): Likewise. 2667 * config/mcore/mcore.c (mcore_attribute_table): Likewise. 2668 * config/arc/arc.c (arc_attribute_table): Likewise. 2669 * config/m68k/m68k.c (m68k_attribute_table): Likewise. 2670 * config/v850/v850.c (v850_handle_interrupt_attribute, 2671 v850_handle_data_area_attribute): Formatting fixes. 2672 (v850_attribute_table): Swap affects_type_identity and handler 2673 fields, adjust comments. 2674 * config/m32r/m32r.c (m32r_attribute_table): Likewise. 2675 * config/arm/arm.c (arm_attribute_table): Likewise. 2676 * config/avr/avr.c (avr_attribute_table): Likewise. 2677 * config/s390/s390.c (s390_attribute_table): Likewise. 2678 * config/sh/sh.c (sh_attribute_table): Likewise. 2679 * config/i386/i386.c (ix86_handle_cconv_attribute, 2680 ix86_handle_callee_pop_aggregate_return): Formatting fixes. 2681 (ix86_attribute_table): Swap affects_type_identity and handler 2682 fields, adjust comments. 2683 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. 2684 * config/sparc/sparc.c (sparc_attribute_table): Likewise. 2685 * config/m32c/m32c.c (m32c_attribute_table): Likewise. 2686 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise. 2687 * config/ia64/ia64.c (ia64_attribute_table): Likewise. 2688 * config/msp430/msp430.c (msp430_attribute_table): Likewise. 2689 * config/rx/rx.c (rx_attribute_table): Likewise. 2690 * config/cr16/cr16.c (cr16_attribute_table): Likewise. 2691 * config/h8300/h8300.c (h8300_attribute_table): Likewise. 2692 * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise. 2693 * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise. 2694 * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. 2695 * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise. 2696 * config/bfin/bfin.c (bfin_attribute_table): Likewise. 2697 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. 2698 * config/rl78/rl78.c (rl78_attribute_table): Likewise. 2699 * config/nds32/nds32.c (nds32_attribute_table): Likewise. 2700 * doc/plugins.texi (user_attr): Likewise. Add NULL for 2701 exclude. 2702 * attribs.c (empty_attribute_table): Swap affects_type_identity and 2703 handler fields. 2704 (register_scoped_attributes, decl_attributes): Formatting fixes. 2705 2706 PR tree-optimization/83269 2707 * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A 2708 subtraction in arg0's type if type is signed and arg0 is unsigned. 2709 Formatting fix. 2710 2711 PR sanitizer/81281 2712 * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and 2713 convert? on @0 instead of convert. Check type of @1, not @0. 2714 ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and 2715 convert? on @0 instead of convert. Check type of @1, not @0. 2716 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0, 2717 only optimize if either both @1 and @2 types are narrower 2718 precision, or both are wider or equal precision, and in the former 2719 case only if both have undefined overflow. 2720 27212017-12-15 Richard Biener <rguenther@suse.de> 2722 2723 PR lto/83388 2724 * internal-fn.def (IFN_NOP): Add. 2725 * internal-fn.c (expand_NOP): Do nothing. 2726 * lto-streamer-in.c (input_function): Instead of removing 2727 sanitizer calls replace them with IFN_NOP calls. 2728 27292017-12-15 Richard Sandiford <richard.sandiford@linaro.org> 2730 Alan Hayward <alan.hayward@arm.com> 2731 David Sherwood <david.sherwood@arm.com> 2732 2733 * dse.c (store_info, read_info_type): Replace begin and end with 2734 offset and width. 2735 (print_range): New function. 2736 (set_all_positions_unneeded, any_positions_needed_p) 2737 (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update 2738 accordingly. 2739 (record_store): Likewise. Optimize the case in which all positions 2740 are unneeded. 2741 (get_stored_val): Replace read_begin and read_end with read_offset 2742 and read_width. 2743 (replace_read): Update call accordingly. 2744 27452017-12-15 Bin Cheng <bin.cheng@arm.com> 2746 2747 * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro. 2748 (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members. 2749 (loop_cand::loop_cand): Initialize above members. 2750 (loop_cand::supported_operations): Delete. 2751 (loop_cand::can_interchange_p): Inline above function. 2752 (loop_cand::classify_simple_reduction): Record number of constant 2753 initialized simple reductions. 2754 (should_interchange_loops): New parameters. Check stmt cost of loops 2755 to be interchange. 2756 (tree_loop_interchange::interchange): Prepare stmt cost of outer loop. 2757 Update call to should_interchange_loops. 2758 (should_interchange_loop_nest): Update call to 2759 should_interchange_loops. 2760 27612017-12-15 Eric Botcazou <ebotcazou@adacore.com> 2762 2763 PR target/66488 2764 * ggc-page.c (HOST_BITS_PER_PTR): Do not define here... 2765 * hwint.h (HOST_BITS_PER_PTR): ...but here instead. 2766 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete. 2767 27682017-12-15 Julia Koval <julia.koval@intel.com> 2769 2770 * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi, 2771 __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): 2772 New. 2773 * config/i386/sse.md (vaesenclast_<mode>): New pattern. 2774 * config/i386/vaesintrin.h (_mm256_aesenclast_epi128, 2775 _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics. 2776 27772017-12-15 Julia Koval <julia.koval@intel.com> 2778 2779 * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi, 2780 __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New. 2781 * config/i386/sse.md (vaesenc_<mode>): New pattern. 2782 * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128, 2783 _mm_aesenc_epi128): New intrinsics. 2784 27852017-12-15 Julia Koval <julia.koval@intel.com> 2786 2787 * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi, 2788 __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): 2789 New. 2790 * config/i386/sse.md (vaesdeclast_<mode>): New pattern. 2791 * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128, 2792 _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics. 2793 27942017-12-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2795 2796 * gimple-ssa-strength-reduction.c (analyze_increments): 2797 Distinguish replacement costs for constant strides from those for 2798 unknown strides. 2799 28002017-12-14 Jakub Jelinek <jakub@redhat.com> 2801 2802 * var-tracking.c (variable_tracking_main_1): Formatting fix. 2803 28042017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 2805 2806 * doc/invoke.texi: Document -Wcast-function-type. 2807 * recog.h (stored_funcptr): Change signature. 2808 * tree-dump.c (dump_node): Avoid warning. 2809 * typed-splay-tree.h (typed_splay_tree): Avoid warning. 2810 28112017-12-14 Qing Zhao <qing.zhao@oracle.com> 2812 2813 PR middle_end/79538 2814 * gimple-fold.c (get_range_strlen): Add the handling of non-member 2815 array. 2816 28172017-12-14 David Malcolm <dmalcolm@redhat.com> 2818 2819 PR tree-optimization/83312 2820 * domwalk.h (dom_walker::dom_walker): Fix typo in comment. 2821 * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for 2822 "val" param, and to cope with arbitrary basic blocks. 2823 (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to 2824 handle NULL_TREE for "val", dropping "bb" param. 2825 (find_taken_edge_switch_expr): Make "switch_stmt" param const and 2826 drop "bb" param. Handle NULL_TREE for "val". 2827 (find_case_label_for_value): Make "switch_stmt" param const. 2828 * tree-vrp.c (class check_array_bounds_dom_walker): New subclass 2829 of dom_walker. 2830 (vrp_prop::check_all_array_refs): Reimplement as... 2831 (check_array_bounds_dom_walker::before_dom_children): ...this new 2832 vfunc. Replace linear search through BB block list, excluding 2833 those with non-executable in-edges via dominator walk. 2834 28352017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2836 2837 * config/arm/arm.opt (mverbose-cost-dump): New option. 2838 * config/arm/arm.c (arm_rtx_costs): Use it. 2839 28402017-12-14 Andreas Schwab <schwab@linux-m68k.org> 2841 2842 PR bootstrap/83396 2843 * reload1.c (emit_input_reload_insns): Skip debug markers. 2844 28452017-12-14 Alexandre Oliva <aoliva@redhat.com> 2846 2847 * config/i386/i386.c (rest_of_insert_endbranch): Use call loc 2848 for its nop_endbr. 2849 2850 PR bootstrap/83396 2851 * config/arc/arc.c (hwloop_optimize): Skip debug insns. 2852 * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust. 2853 * config/sh/sh.c: Skip debug insns besides notes. 2854 * config/sh/sh.md: Likewise. 2855 * config/sh/sh_treg_combine.cc: Likewise. 2856 * config/sh/sync.md: Likewise. 2857 28582017-12-14 Tom de Vries <tom@codesourcery.com> 2859 2860 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 2861 Add item for weak_undefined. 2862 28632017-12-14 Richard Biener <rguenther@suse.de> 2864 2865 PR tree-optimization/67842 2866 * sese.h (bb_in_region): Remove #if 0'ed code. 2867 28682017-12-14 Richard Biener <rguenther@suse.de> 2869 2870 PR tree-optimization/83326 2871 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add 2872 may_be_zero parameter and handle it by not marking the first 2873 peeled copy as not exiting the loop. 2874 (try_peel_loop): Likewise. 2875 (canonicalize_loop_induction_variables): Use number_of_iterations_exit 2876 to handle the case of constant or zero iterations and perform 2877 loop header copying on-the-fly. 2878 28792017-12-14 Richard Biener <rguenther@suse.de> 2880 2881 PR tree-optimization/83418 2882 * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): 2883 Instead of asserting we don't get unfolded comparisons deal with them. 2884 28852017-12-14 Jakub Jelinek <jakub@redhat.com> 2886 2887 PR bootstrap/83396 2888 * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of 2889 basic blocks. Assert debug bind insns don't appear outside of bbs, 2890 don't reset them. Assert insns without BLOCK_FOR_INSN are outside of 2891 bb. Simplify. 2892 2893 PR tree-optimization/83198 2894 * gimple-ssa-sprintf.c (format_floating): Set type solely based on 2895 dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST 2896 value if arg is a REAL_CST with incompatible type. 2897 28982017-12-14 Sudakshina Das <sudi.das@arm.com> 2899 Bin Cheng <bin.cheng@arm.com> 2900 2901 PR target/81228 2902 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT 2903 to CCFPEmode. 2904 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add 2905 LTGT. 2906 29072017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2908 2909 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75, 2910 cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features. 2911 29122017-12-14 Richard Sandiford <richard.sandiford@linaro.org> 2913 Alan Hayward <alan.hayward@arm.com> 2914 David Sherwood <david.sherwood@arm.com> 2915 2916 * poly-int.h: New file. 2917 * poly-int-types.h: Likewise. 2918 * coretypes.h: Include them. 2919 (POLY_INT_CONVERSION): Define. 2920 * target.def (estimated_poly_value): New hook. 2921 * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook. 2922 * doc/tm.texi: Regenerate. 2923 * doc/poly-int.texi: New file. 2924 * doc/gccint.texi: Include it. 2925 * doc/rtl.texi: Describe restrictions on subreg modes. 2926 * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi. 2927 * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition. 2928 (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS. 2929 * targhooks.h (default_estimated_poly_value): Declare. 2930 * targhooks.c (default_estimated_poly_value): New function. 2931 * target.h (estimated_poly_value): Likewise. 2932 * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits. 2933 (wi::unary_traits): Delete. 2934 (wi::binary_traits::signed_shift_result_type): Define for 2935 offset_int << HOST_WIDE_INT, etc. 2936 (generic_wide_int::operator <<=): Define for all types and use 2937 wi::lshift instead of <<. 2938 (wi::hwi_with_prec): Add a default constructor. 2939 (wi::ints_for): New class. 2940 (operator <<): Define for all wide-int types. 2941 (operator /): New function. 2942 (operator %): Likewise. 2943 * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE) 2944 (ASSERT_MAYBE_NE_AT): New macros. 2945 29462017-12-13 Eric Botcazou <ebotcazou@adacore.com> 2947 Dominik Vogt <vogt@linux.vnet.ibm.com> 2948 2949 PR middle-end/78468 2950 * emit-rtl.c (init_emit): Remove ??? comment. 2951 * explow.c (get_dynamic_stack_size): Take known alignment of stack 2952 pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY. 2953 * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the 2954 alignment of 3 virtual registers to BITS_PER_WORD. 2955 2956 * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. 2957 29582017-12-13 Peter Bergner <bergner@vnet.ibm.com> 2959 2960 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define. 2961 * config/rs6000/rs6000.c (cpu_supports_info): Use it. 2962 29632017-12-13 Alexandre Oliva <aoliva@redhat.com> 2964 2965 PR bootstrap/83396 2966 * reload1.c (eliminate_regs_in_insn): Skip debug markers. 2967 29682017-12-13 Jakub Jelinek <jakub@redhat.com> 2969 2970 * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts 2971 with the exception of debug begin stmt markers appear before 2972 labels. 2973 2974 PR bootstrap/83396 2975 * final.c (rest_of_handle_final): Call variable_tracking_main only 2976 if !flag_var_tracking. 2977 29782017-12-13 Alexandre Oliva <aoliva@redhat.com> 2979 Jakub Jelinek <jakub@redhat.com> 2980 2981 PR bootstrap/83396 2982 PR debug/83391 2983 * tree-cfgcleanup.c (remove_forwarder_block): Keep after 2984 labels debug stmts that can only appear after labels. 2985 29862017-12-13 Alexander Monakov <amonakov@ispras.ru> 2987 2988 PR rtl-optimization/82398 2989 * sel-sched.c (sel_rank_for_schedule): Fix check for zero 2990 EXPR_USEFULNESS in priority comparison. 2991 29922017-12-13 Segher Boessenkool <segher@kernel.crashing.org> 2993 2994 PR rtl-optimization/83393 2995 * combine.c (move_deaths): If reg_stat points to a too new insn in 2996 last_death, do not use it: find the proper insn instead. 2997 29982017-12-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 2999 3000 PR target/82190 3001 * config/rs6000/rs6000-string.c (expand_block_compare, 3002 expand_strn_compare): Fix set_mem_size() calls. 3003 30042017-12-12 Jeff Law <law@redhat.com> 3005 3006 PR tree-optimization/83298 3007 PR tree-optimization/83362 3008 PR tree-optimization/83383 3009 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make 3010 push_value_range a public interface. Add new argument to 3011 record_ranges_from_stmt. 3012 * gimple-ssa-evrp-analyze.c 3013 (evrp_range_analyzer::record_ranges_from_stmt): Add new argument. 3014 Update comments. Handle recording temporary equivalences. 3015 * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add 3016 new argument to call to evrp_range_analyzer::record_ranges_from_stmt. 3017 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise. 3018 * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and 3019 gimple-ssa-evrp-analyze.h. 3020 (record_temporary_equivalences_from_phis): Add new argument. When 3021 the PHI arg is an SSA_NAME, set the result's range to the range 3022 of the PHI arg. 3023 (record_temporary_equivalences_from_stmts_at_dest): Record ranges 3024 from statements too. 3025 (thread_through_normal_block): Accept new argument, evrp_range_analyzer. 3026 Pass it down to children as needed. 3027 (thread_outgoing_edges): Likewise. 3028 (thread_across_edge): Likewise. Push/pop range state as needed. 3029 * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype. 3030 30312017-12-12 Julia Koval <julia.koval@intel.com> 3032 3033 * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB. 3034 (PTA_CANNONLAKE): Remove PTA_CLWB. 3035 30362017-12-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 3037 3038 PR target/83332 3039 * config/rs6000/vector.md (vcondv2dfv2di): New define_expand. 3040 (vcondv2div2df): Likewise. 3041 (vconduv2dfv2di): Likewise. 3042 30432017-12-12 Jakub Jelinek <jakub@redhat.com> 3044 3045 * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF, 3046 BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF, 3047 BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of 3048 ATTR_MATHFN_FPROUNDING_ERRNO. 3049 30502017-12-12 Richard Biener <rguenther@suse.de> 3051 3052 PR tree-optimization/83385 3053 * graphite-scop-detection.c (get_order, order): Remove. 3054 (bb_to_rpo): New global. 3055 (cmp_pbbs): Adjust. 3056 (build_scops): Sort pbbs in RPO order. 3057 30582017-12-12 James Greenhalgh <james.greenhalgh@arm.com> 3059 3060 * combine.c (simplify_set): Do not transform subregs to zero_extends 3061 if the destination mode is a vector mode. 3062 30632017-12-12 Jakub Jelinek <jakub@redhat.com> 3064 3065 PR tree-optimization/83359 3066 * tree-cfg.h (fold_loop_internal_call): Declare. 3067 * tree-vectorizer.c (fold_loop_internal_call): Moved to ... 3068 * tree-cfg.c (fold_loop_internal_call): ... here. No longer static. 3069 (find_loop_dist_alias): New function. 3070 (move_sese_region_to_fn): If any dloop->orig_loop_num value is 3071 updated, also adjust any corresponding LOOP_DIST_ALIAS internal 3072 calls. 3073 3074 PR tree-optimization/80631 3075 * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo. 3076 (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE 3077 arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of 3078 hardcoding zero as the value if COND_EXPR is never true. For 3079 INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if 3080 INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of 3081 hardcoding MAX_EXPR as the reduction operation. 3082 (is_nonwrapping_integer_induction): Allow negative step. 3083 (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for 3084 vect_create_epilog_for_reduction, if no value is suitable, don't 3085 use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes. 3086 30872017-12-12 Richard Biener <rguenther@suse.de> 3088 3089 PR tree-optimization/81889 3090 * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use 3091 range info from the non-wrapping IV instead of just the range 3092 of the type. 3093 30942017-12-12 Julia Koval <julia.koval@intel.com> 3095 3096 * config.gcc: Add vaesintrin.h. 3097 * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): 3098 New type. 3099 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi, 3100 __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): 3101 New builtins. 3102 * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. 3103 * config/i386/immintrin.h: Include vaesintrin.h. 3104 * config/i386/sse.md (vaesdec_<mode>): New pattern. 3105 * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128, 3106 _mm_aesdec_epi128): New intrinsics. 3107 31082017-12-12 Julia Koval <julia.koval@intel.com> 3109 3110 * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET, 3111 OPTION_MASK_ISA_VAES_UNSET): New. 3112 (ix86_handle_option): Handle -mvaes. 3113 * config/i386/cpuid.h: Define bit_VAES. 3114 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes. 3115 * config/i386/i386-c.c (__VAES__): New. 3116 * config/i386/i386.c (ix86_target_string): Add -mvaes. 3117 (ix86_valid_target_attribute_inner_p): Ditto. 3118 * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New. 3119 * config/i386/i386.opt: Add -mvaes. 3120 * doc/invoke.texi: Ditto. 3121 31222017-12-12 Alexandre Oliva <aoliva@redhat.com> 3123 3124 * debug.h (gcc_debug_hooks): Add inline_entry. 3125 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. 3126 * debug.c (do_nothing_debug_hooks): Likewise. 3127 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 3128 * dwarf2out.c (dwarf2_debug_hooks): Likewise. 3129 (dwarf2_lineno_debug_hooks): Likewise. 3130 3131 * common.opt (gstatement-frontiers): New, setting 3132 debug_nonbind_markers_p. 3133 * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate. 3134 * toplev.c (process_options): Autodetect value for debug statement 3135 frontiers option. 3136 * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate. 3137 * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New. 3138 3139 * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt 3140 markers. Integrate source bind into debug stmt expand loop. 3141 (pass_expand::execute): Check debug marker limit. Avoid deep 3142 TER and expand debug locations for debug bind insns only. 3143 * cse.c (insn_live_p): Keep nonbind markers and debug bindings 3144 followed by them. 3145 * df-scan.c (df_insn_delete): Accept out-of-block debug insn. 3146 * final.c (reemit_insn_block_notes): Take current block from 3147 nonbind markers. Declare note where it's first set. 3148 (final_scan_insn): Handle begin stmt notes. Emit is_stmt according to 3149 begin stmt markers if enabled. 3150 (notice_source_line): Handle nonbind markers. Fail if their 3151 location is unknown or that of builtins. 3152 (rest_of_handle_final): Convert begin stmt markers to notes if 3153 var-tracking didn't run. 3154 (rest_of_clean_state): Skip begin stmt markers. 3155 * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt 3156 markers. 3157 * function.c (allocate_struct_function): Set begin_stmt_markers. 3158 * function.h (struct function): Add debug_marker_count counter 3159 and debug_nonbind_markers flag. 3160 * gimple-iterator.c (gsi_remove): Adjust debug_marker_count. 3161 * gimple-low.c (lower_function_body): Adjust 3162 debug_nonbind_markers. 3163 (lower_stmt): Drop or skip gimple debug stmts. 3164 (lower_try_catch): Skip debug stmts. 3165 * gimple.c (gimple_build_debug_begin_stmt): New. 3166 (gimple_copy): Increment debug_marker_count if copying one. 3167 * gimple.h (gimple_build_debug_begin_stmt): Declare. 3168 * gimplify.c (rexpr_location): New. 3169 (rexpr_has_location): New. 3170 (warn_switch_unreachable_r): Handle gimple debug stmts. 3171 (shortcut_cond_r): Call expr_location. 3172 (find_goto): New. 3173 (find_goto_label): New. 3174 (shortcut_cond_expr): Call expr_has_location, expr_location, and 3175 find_goto_label. 3176 (gimplify_cond_expr): Call find_goto_label, expr_has_location, and 3177 expr_location. 3178 (gimplify_expr): Handle begin stmt markers. Reject debug expr decls. 3179 * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New. Add to... 3180 (LANG_HOOKS_INITIALIZER): ... this. 3181 * langhooks.h (struct lang_hooks): Add emits_begin_stmt. 3182 * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks 3183 debug insns. 3184 (update_ebb_live_info): Skip debug insn markers. 3185 * lra.c (debug_insn_static_data): Rename to... 3186 (debug_bind_static_data): ... this. 3187 (debug_marker_static_data): New. 3188 (lra_set_insn_recog_data): Select one of the above depending 3189 on debug insn kind. 3190 (lra_update_isn_regno_info): Don't assume debug insns have 3191 freqs. 3192 (push_insns): Skip debug insns. 3193 * lto-streamer-in.c (input_function): Drop debug stmts 3194 depending on active options. Adjust debug_nonbind_markers. 3195 * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New. 3196 * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle 3197 begin stmt marker notes. 3198 (print_insn): Likewise. 3199 * recog.c (extract_insn): Recognize rtl for debug markers. 3200 * rtl.def (DEBUG_MARKER): New. 3201 * tree-inline.c: Include params.h. 3202 (remap_gimple_stmt): Handle nonbind markers. 3203 (maybe_move_debug_stmts_to_successors): Likewise. 3204 (copy_debug_stmt): Likewise. 3205 * tree-iterator.c (append_to_statement_list_1): Append begin stmt 3206 markers regardless of no side effects. 3207 (tsi_link_before): Don't update container's side effects when adding 3208 a begin stmt marker. 3209 (tsi_link_after): Likewise. 3210 (expr_first): Skip begin stmt markers. 3211 (expr_last): Likewise. 3212 * tree-pretty-print (dump_generic_node): Handle begin stmt markers. 3213 * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): 3214 Disregard nonbind markers. 3215 * tree.c (make_node_stat): Don't set side effects for begin stmt 3216 markers. 3217 (build1_stat): Likewise. 3218 * tree.def (DEBUG_BEGIN_STMT): New. 3219 * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR. 3220 * var-tracking.c (delete_debug_insns): Renamed to... 3221 (delete_vta_debug_insns): ... this. 3222 (reemit_marker_as_note): New. 3223 (vt_initialize): Reemit markers. 3224 (delete_vta_debug_insns): Likewise. 3225 (vt_debug_insns_local): Reemit or delete markers. 3226 (variable_tracking_main_1): Likewise. 3227 * doc/generic.texi (DEBUG_BEGIN_STMT): Document. 3228 * doc/gimple.texi (gimple_debug_begin_stmt_p): New. 3229 (gimple_debug_nonbind_marker_p): New. 3230 (gimple_build_debug_bind): Adjust. 3231 (gimple_build_debug_begin_stmt): New. 3232 * doc/invoke.texi (max-debug-marker-count): New param. 3233 * doc/rtl.texi (debug_implicit_ptr, entry_value): New. 3234 (debug_parameter_ref, debug_marker): New. 3235 (NOTE_INSN_BEGIN_STMT): New. 3236 (DEBUG_INSN): Describe begin stmt markers. 3237 3238 * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if, 3239 without debug insns, we wouldn't, but clean up debug insns 3240 after a control flow insn nevertheless. 3241 3242 * cfgcleanup.c (delete_unreachable_blocks): Use alternate 3243 block removal order if MAY_HAVE_DEBUG_BIND_INSNS. 3244 * cfgexpand.c (label_rtx_for_bb): Skip debug insns. 3245 * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns. 3246 (rtl_tidy_fallthru_edge): Likewise. 3247 (rtl_verify_fallthru): Likewise. 3248 (rtl_verify_bb_layout): Likewise. 3249 (skip_insns_after_block): Likewise. 3250 (duplicate_insn_chain): Use DEBUG_BIND_INSN_P. 3251 * dwarf2out.c: Include print-rtl.h. 3252 (dwarf2out_next_real_insn): New. 3253 (dwarf2out_var_location): Call it. Disregard begin stmt markers. 3254 Dump debug binds in asm comments. 3255 * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts. 3256 * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust 3257 callers to use gsi_start_nondebug_bb instead. 3258 (gsi_after_labels): Skip gimple debug stmts. 3259 (gsi_start_nondebug): New. 3260 * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust. 3261 (proper_loop_form_for_interchange): Adjust. 3262 * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt. 3263 * gimple.h (gimple_seq_last_nondebug_stmt): New. 3264 * gimplify.c (last_stmt_in_scope): Skip debug stmts. 3265 (collect_fallthrough_labels): Likewise. 3266 (should_warn_for_implicit_fallthrough): Likewise. 3267 (warn_implicit_fallthrough_r): Likewise. 3268 (expand_FALLTHROUGH_r): Likewise. 3269 * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust. 3270 (graphite_copy_stmts_from_block): Skip nonbind markers. 3271 * haifa-sched.c (sched_extend_bb): Skip debug insns. 3272 * ipa-icf-gimple.c (func_checker::compare_bb): Adjust. 3273 * jump.c (clean_barriers): Skip debug insns. 3274 * omp-expand.c (expand_parallel_call): Skip debug insns. 3275 (expand_task_call): Likewise. 3276 (remove_exit_barrier): Likewise. 3277 (expand_omp_taskreg): Likewise. 3278 (expand_omp_for_init_counts): Likewise. 3279 (expand_omp_for_generic): Likewise. 3280 (expand_omp_for_static_nochunk): Likewise. 3281 (expand_omp_for_static_chunk): Likewise. 3282 (expand_omp_simd): Likewise. 3283 (expand_omp_taskloop_for_outer): Likewise. 3284 (expand_omp_taskloop_for_inner): Likewise. 3285 (expand_oacc_for): Likewise. 3286 (expand_omp_sections): Likewise. 3287 (expand_omp_single): Likewise. 3288 (expand_omp_synch): Likewise. 3289 (expand_omp_atomic_load): Likewise. 3290 (expand_omp_atomic_store): Likewise. 3291 (expand_omp_atomic_fetch_op): Likewise. 3292 (expand_omp_atomic_pipeline): Likewise. 3293 (expand_omp_atomic_mutex): Likewise. 3294 (expand_omp_target): Likewise. 3295 (grid_expand_omp_for_loop): Likewise. 3296 (grid_expand_target_grid_body): Likewise. 3297 (build_omp_regions_1): Likewise. 3298 * omp-low.c (check_combined_parallel): Skip debug stmts. 3299 * postreload.c (fixup_debug_insns): Skip nonbind debug insns. 3300 * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo. 3301 * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in 3302 test. 3303 * tree-cfg.c (make_blobs_1): Skip debug stmts. 3304 (make_edges): Likewise. 3305 (cleanup_dead_labels): Likewise. 3306 (gimple_can_merge_blocks_p): Likewise. 3307 (stmt_starts_bb_p): Likewise. 3308 (gimple_block_label): Likewise. 3309 (gimple_redirect_edge_and_branch): Likewise. 3310 * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping 3311 of debug stmts. 3312 (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with 3313 TDF_SLIM. 3314 * tree-pretty-print (print_declaration): Omit initializer in slim 3315 dumps. 3316 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt 3317 markers. 3318 (eliminate_unnecessary_stmts): Stabilize block removal order. 3319 * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts. 3320 * var-tracking.c (get_first_insn): New. 3321 (vt_emit_notes): Call it. 3322 (vt_initialize): Walk any insns before the first BB. 3323 (delete_debug_insns): Likewise. 3324 3325 * gimple.h (enum gimple_debug_subcode): Add 3326 GIMPLE_DEBUG_BEGIN_STMT. 3327 (gimple_debug_begin_stmt_p): New. 3328 (gimple_debug_nonbind_marker_p): New. 3329 * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New. 3330 (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from.... 3331 (MAY_HAVE_DEBUG_STMTS): ... this. Check both. 3332 * insn-notes.def (BEGIN_STMT): New. 3333 * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New. 3334 (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from.... 3335 (MAY_HAVE_DEBUG_INSNS): ... this. Check both. 3336 (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New. 3337 (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New. 3338 (INSN_DEBUG_MARKER_KIND): New. 3339 (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New. 3340 (INSN_VAR_LOCATION): Check for VAR_LOCATION. 3341 (INSN_VAR_LOCATION_PTR): New. 3342 * cfgexpand.c (expand_debug_locations): Handle debug bind insns 3343 only. 3344 (expand_gimple_basic_block): Likewise. Emit debug temps for TER 3345 deps only if debug bind insns are enabled. 3346 (pass_expand::execute): Avoid deep TER and expand 3347 debug locations for debug bind insns only. 3348 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow 3349 debug stmts special handling down to debug bind stmts. 3350 * combine.c (try_combine): Narrow debug insns special handling 3351 down to debug bind insns. 3352 * cse.c (delete_trivially_dead_insns): Handle debug bindings. 3353 Narrow debug insns preexisting special handling down to debug 3354 bind insns. 3355 * dce.c (rest_of_handle_ud_dce): Narrow debug insns special 3356 handling down to debug bind insns. 3357 * function.c (instantiate_virtual_regs): Skip debug markers, 3358 adjust handling of debug binds. 3359 * gimple-ssa-backprop.c (backprop::prepare_change): Try debug 3360 temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS. 3361 * haifa-sched.c (schedule_insn): Narrow special handling of debug 3362 insns to debug bind insns. 3363 * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow 3364 special handling of debug stmts to debug bind stmts. 3365 * ipa-split.c (split_function): Likewise. 3366 * ira.c (combine_and_move_insns): Adjust debug bind insns only. 3367 * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind 3368 debug insns. 3369 * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P. 3370 * regrename.c (build_def_use): Likewise. 3371 * regcprop.c (copyprop_hardreg_forward_1): Likewise. 3372 (pass_cprop_hardreg): Narrow special casing of debug insns to 3373 debug bind insns. 3374 * regstat.c (regstat_init_n_sets_and_refs): Likewise. 3375 * reload1.c (reload): Likewise. 3376 * sese.c (sese_insert_phis_for_liveouts): Narrow special 3377 casing of debug stmts to debug bind stmts. 3378 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. 3379 * ssa-iterators.h (num_imm_uses): Likewise. 3380 * tree-cfg.c (gimple_merge_blocks): Narrow special casing of 3381 debug stmts to debug bind stmts. 3382 * tree-inline.c (tree_function_versioning): Narrow special casing 3383 of debug stmts to debug bind stmts. 3384 * tree-loop-distribution.c (generate_loops_for_partition): 3385 Narrow special casing of debug stmts to debug bind stmts. 3386 * tree-sra.c (analyze_access_subtree): Narrow special casing 3387 of debug stmts to debug bind stmts. 3388 * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug 3389 stmts to debug bind stmts. 3390 * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special 3391 casing of debug stmts to debug bind stmts. 3392 * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. 3393 * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special 3394 casing of debug stmts to debug bind stmts. 3395 * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): 3396 Likewise. 3397 * tree-ssa.c (flush_pending_stmts): Narrow special casing of 3398 debug stmts to debug bind stmts. 3399 (gimple_replace_ssa_lhs): Likewise. 3400 (insert_debug_temp_for_var_def): Likewise. 3401 (insert_debug_temps_for_defs): Likewise. 3402 (reset_debug_uses): Likewise. 3403 * tree-ssanames.c (release_ssa_name_fn): Likewise. 3404 * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise. 3405 (adjust_debug_stmts): Likewise. 3406 (adjust_phi_and_debug_stmts): Likewise. 3407 (vect_do_peeling): Likewise. 3408 * tree-vect-loop.c (vect_transform_loop): Likewise. 3409 * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P. 3410 * var-tracking.c (adjust_mems): Narrow special casing of debug 3411 insns to debug bind insns. 3412 (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise. 3413 (compute_bb_dataflow, vt_find_locations): Likewise. 3414 (vt_expand_loc, emit_notes_for_changes): Likewise. 3415 (vt_init_cfa_base): Likewise. 3416 (vt_emit_notes): Likewise. 3417 (vt_initialize): Likewise. 3418 (vt_finalize): Likewise. 3419 3420 * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder. 3421 (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder. 3422 (next_nonnote_nondebug_insn_bb): New. 3423 (prev_nonnote_nondebug_insn_bb): New. 3424 (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove. 3425 * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls. 3426 (prev_nonnote_nondebug_insn_bb): Declare. 3427 (next_nonnote_nondebug_insn_bb): Declare. 3428 * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns. 3429 * cfgrtl.c (get_last_bb_insn): Likewise. 3430 * lra.c (push_insns): Likewise. 3431 34322017-12-11 David Malcolm <dmalcolm@redhat.com> 3433 3434 PR c/82050 3435 * selftest-run-tests.c (selftest::run_tests): Move start/finish code 3436 to... 3437 * selftest.c (selftest::test_runner::test_runner): New ctor. 3438 (selftest::test_runner::~test_runner): New dtor. 3439 * selftest.h (class selftest::test_runner): New class. 3440 34412017-12-11 Carl Love <cel@us.ibm.com> 3442 3443 * config/rs6000/altivec.h (vec_extract_fp32_from_shorth, 3444 vec_extract_fp32_from_shortl]): Add #defines. 3445 * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion. 3446 * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH, 3447 ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND, 3448 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL, 3449 ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD, 3450 ALTIVEC_BUILTIN_VEC_SLL): Add expansions. 3451 * doc/extend.texi: Add documentation for the added builtins. 3452 34532017-12-11 Alexandre Oliva <aoliva@redhat.com> 3454 3455 PR rtl-optimization/80693 3456 PR rtl-optimization/81019 3457 PR rtl-optimization/81020 3458 * combine.c (distribute_notes): Reset any REG_UNUSED REGs that 3459 are not mentioned in i3. Place the REG_UNUSED note on i2, 3460 possibly modified to REG_DEAD, if it did not originate in i3. 3461 34622017-12-11 Jakub Jelinek <jakub@redhat.com> 3463 3464 * recog.c (store_data_bypass_p_1): New function. 3465 (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER. Use 3466 store_data_bypass_p_1 to avoid code duplication. Formatting fixes. 3467 34682017-12-11 Segher Boessenkool <segher@kernel.crashing.org> 3469 3470 PR rtl-optimization/83361 3471 * ifcvt.c (if_convert): Call fixup_partitions. 3472 34732017-12-11 Will Schmidt <will_schmidt@vnet.ibm.com> 3474 3475 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for 3476 early folding of splat_u{8,16,32}. 3477 34782017-12-11 Jakub Jelinek <jakub@redhat.com> 3479 3480 * config/aarch64/aarch64.c (aarch64_print_operand): Don't start 3481 output_operand_lossage first argument with capital letter. 3482 (aarch64_override_options): Don't start error and sorry first argument 3483 with capital letter. 3484 34852017-12-11 Andi Kleen <ak@linux.intel.com> 3486 3487 PR gcov-profile/83355 3488 * auto-profile.c (string_table::get_index_by_decl): Don't 3489 recurse when abstract origin points to itself. 3490 34912017-12-11 Bin Cheng <bin.cheng@arm.com> 3492 3493 PR tree-optimization/83320 3494 * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete. 3495 (prune_datarefs_not_in_loop): Ditto. 3496 34972017-12-10 Gerald Pfeifer <gerald@pfeifer.com> 3498 3499 * doc/install.texi (Specific): Tweak link to mkssoftware.com. 3500 35012017-12-10 Jakub Jelinek <jakub@redhat.com> 3502 3503 PR tree-optimization/83337 3504 * gimple-loop-interchange.cc (compute_access_stride): Handle 3505 bitfield DRs properly. 3506 35072017-12-09 Jakub Jelinek <jakub@redhat.com> 3508 3509 PR tree-optimization/83338 3510 * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR 3511 vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from 3512 vector of unsigned integers to vector of signed integers. 3513 35142017-12-08 Vladimir Makarov <vmakarov@redhat.com> 3515 3516 PR rtl-optimization/83317 3517 * lra-constraints.c (process_address_1): Add insn code check. 3518 35192017-12-08 Michael Matz <matz@suse.de> 3520 3521 Fix PR tree-optimization/83323 3522 * gimple-loop-jam (unroll_jam_possible_p): Correct test for 3523 head-controlled loops and loop BBs. 3524 * common.opt (funroll-and-jam): Remove, instead ... 3525 (floop-unroll-and-jam): ... reuse this option. 3526 * opts.c (default_options_table): Use OPT_floop_unroll_and_jam. 3527 * doc/invoke.texi (-funroll-and-jam): Move docu to ... 3528 (-floop-unroll-and-jam): ... this option. 3529 35302017-12-08 Jakub Jelinek <jakub@redhat.com> 3531 3532 * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix 3533 a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent. 3534 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise. 3535 35362017-12-08 Richard Biener <rguenther@suse.de> 3537 3538 PR middle-end/81782 3539 * tree-ssa-uninit.c (warn_uninitialized_vars): Properly 3540 handle accesses outside of zero-sized vars. 3541 35422017-12-08 Martin Jambor <mjambor@suse.cz> 3543 3544 PR tree-optimization/83141 3545 * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also 3546 test for MEM_REFs implicitely changing types with padding. Remove 3547 inline keyword. 3548 (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks. 3549 35502017-12-08 Jakub Jelinek <jakub@redhat.com> 3551 3552 * config/arc/arc.c (arc_attribute_table): Add exclusions to 3553 the comment. 3554 * config/avr/avr.c (avr_attribute_table): Likewise. 3555 * config/msp430/msp430.c (msp430_attribute_table): Likewise. 3556 * config/rl78/rl78.c (rl78_attribute_table): Likewise. 3557 * config/nds32/nds32.c (nds32_attribute_table): Likewise. 3558 * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member 3559 of struct attribute_spec. 3560 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. 3561 35622017-12-08 Ulrich Weigand <uweigand@de.ibm.com> 3563 3564 PR target/82960 3565 * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true. 3566 35672017-12-08 Jan Hubicka <hubicka@ucw.cz> 3568 3569 PR middle-end/83609 3570 * profile-count.c (profile_count::from_gcov_type): Move from 3571 profile-count.h; handle overflow. 3572 * profile-count.h (profile_count::from_gcov_type): Move offline. 3573 35742017-12-08 Segher Boessenkool <segher@kernel.crashing.org> 3575 3576 PR rtl-optimization/83304 3577 * combine.c (move_deaths): If we do not know where a register died, 3578 search for it. 3579 35802017-12-08 Richard Biener <rguenther@suse.de> 3581 3582 * gimple-loop-interchange.cc (tree_loop_interchange::interchange): 3583 Provide -fopt-info-loop feedback when we interchange in a nest. 3584 35852017-06-08 Richard Earnshaw <rearnsha@arm.com> 3586 3587 * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names 3588 for armv6 ARM CPU IDs. 3589 35902017-06-08 Richard Earnshaw <rearnsha@arm.com> 3591 3592 * common/config/arm/arm-common.c: Include <algorithm>. 3593 (INCLUDE_VECTOR): Define. 3594 (compare_opt_names): New function. 3595 (arm_rewrite_selected_arch): Only strip out extensions that can be 3596 expressed through -mfpu. Sort the remaining extensions 3597 alphabetically. 3598 35992017-06-08 Richard Earnshaw <rearnsha@arm.com> 3600 3601 * config/arm/arm.h (arm_asm_auto_mfpu): Declare. 3602 (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu. 3603 (ASM_CPU_SPEC): Use it if -mfpu is set to auto. 3604 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function. 3605 36062017-06-08 Tristan Gingold <gindold@adacore.com> 3607 3608 PR ada/81470 3609 * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit 3610 .cfi_personality or .cfi_lsda if the eh data format is dwarf2. 3611 36122017-12-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3613 3614 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member 3615 of struct attribute_spec. 3616 36172017-12-08 Julia Koval <julia.koval@intel.com> 3618 3619 * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32, 3620 _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics. 3621 * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32, 3622 _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32, 3623 _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32, 3624 _mm_maskz_dpwssds_epi32): Ditto. 3625 36262017-12-08 Richard Biener <rguenther@suse.de> 3627 3628 PR tree-optimization/81303 3629 * tree-vect-stmts.c (vect_is_simple_cond): For invariant 3630 conditions try to create a comparison vector type matching 3631 the data vector type. 3632 (vectorizable_condition): Adjust. 3633 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): 3634 Leave invariant conditions alone in case we can vectorize those. 3635 36362017-12-08 Julia Koval <julia.koval@intel.com> 3637 3638 * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32, 3639 _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics. 3640 * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32, 3641 _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32, 3642 _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto. 3643 36442017-12-08 Julia Koval <julia.koval@intel.com> 3645 3646 * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32, 3647 _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New. 3648 * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32, 3649 _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32, 3650 _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32, 3651 _mm_maskz_dpbusds_epi32): New intrinsics. 3652 36532017-12-07 Sandra Loosemore <sandra@codesourcery.com> 3654 3655 * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory 3656 operand. 3657 (ld<bh>io_signed): Likewise. 3658 (st<bhw>io): Likewise. 3659 * config/nios2/predicates.md (ldstio_memory_operand): Allow 3660 SMALL_INT12 constant integer operand. 3661 36622017-12-07 Sandra Loosemore <sandra@codesourcery.com> 3663 3664 * config/nios2/nios2.c (nios2_symbolic_constant_allowed): 3665 Rename to... 3666 (nios2_large_constant_allowed): ...this. Adjust uses. 3667 (nios2_plus_symbolic_constant_p): Rename to... 3668 (nios2_plus_large_constant_p): ...this. Adjust uses. 3669 (nios2_legitimate_address_p): Correct CONST_INT handling. 3670 (nios2_symbolic_memory_operand_p): Rename to... 3671 (nios2_large_constant_memory_operand_p): ...this. Adjust uses. 3672 (nios2_large_constant_p): Check for large constant integers too. 3673 (nios2_split_large_constant): Handle constant integers. 3674 (nios2_split_symbolic_memory_operand): Rename to... 3675 (nios2_split_large_constant_memory_operand): ...this. Adjust uses. 3676 (nios2_legitimize_constant_address): Handle constant integers. 3677 (r0rel_constant_p): Handle small constant integers. 3678 (nios2_print_operand_address): Handle r0-relative integer addresses. 3679 * config/nios2/nios2-protos.h: Adjust for renamed functions. 3680 * config/nios2/nios2.md: Adjust for renamed functions. 3681 36822017-12-07 Andrew Waterman <andrew@sifive.com> 3683 3684 * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define. 3685 (TARGET_HAVE_SRODATA_SECTION): New define. 3686 (riscv_select_section): New function. 3687 36882017-12-08 Joseph Myers <joseph@codesourcery.com> 3689 Alexander Monakov <amonakov@ispras.ru> 3690 Jakub Jelinek <jakub@redhat.com> 3691 3692 PR target/81906 3693 * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math. 3694 36952017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3696 3697 * config/aarch64/aarch64.c (aarch64_print_address_internal): Return 3698 a bool success value. Don't call output_operand_lossage here. 3699 (aarch64_print_ldpstp_address): Return a bool success value. 3700 (aarch64_print_operand_address): Call output_addr_const if 3701 aarch64_print_address_internal fails. 3702 (aarch64_print_operand): Don't assert that the mode is 16 bytes for 3703 'y'; call output_operand_lossage instead. Call output_operand_lossage 3704 if aarch64_print_ldpstp_address fails. 3705 37062017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3707 3708 * tree-vector-builder.h 3709 (tree_vector_builder::binary_encoded_nelts): Declare. 3710 * tree-vector-builder.c 3711 (tree_vector_builder::binary_encoded_nelts): New function. 3712 * fold-const.c (negate_expr_p): Likewise. 3713 (operand_equal_p, fold_checksum_tree): Likewise. 3714 * tree-loop-distribution.c (const_with_all_bytes_same): Likewise. 3715 * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop) 3716 (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise. 3717 (uniform_vector_p): Likewise. 3718 * varasm.c (const_hash_1, compare_constant): Likewise. 3719 * tree-ssa-ccp.c: Include tree-vector-builder.h. 3720 (valid_lattice_transition): Operate directly on the VECTOR_CST 3721 encoding. 3722 * ipa-icf.c: Include tree-vector-builder.h. 3723 (sem_variable::equals): Operate directly on the VECTOR_CST encoding. 3724 * print-tree.c (print_node): Print encoding of VECTOR_CSTs. 3725 37262017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3727 3728 * tree.c (build_vector): Delete. 3729 * tree.h (build_vector): Make static and move into the self-testing 3730 block. 3731 37322017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3733 3734 * vector-builder.h (vector_builder::derived): New const overload. 3735 (vector_builder::elt): New function. 3736 * tree-vector-builder.h (tree_vector_builder::type): New function. 3737 (tree_vector_builder::apply_step): Declare. 3738 * tree-vector-builder.c (tree_vector_builder::apply_step): New 3739 function. 3740 * gimple-fold.h (tree_vector_builder): Declare. 3741 (gimple_build_vector): Take a tree_vector_builder instead of a 3742 type and vector of elements. 3743 * gimple-fold.c (gimple_build_vector): Likewise. 3744 * tree-vect-loop.c (get_initial_def_for_reduction): Update call 3745 accordingly. 3746 (get_initial_defs_for_reduction): Likewise. 3747 (vectorizable_induction): Likewise. 3748 37492017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3750 3751 * tree-vector-builder.h 3752 (tree_vector_builder::new_binary_operation): Declare. 3753 * tree-vector-builder.c 3754 (tree_vector_builder::new_binary_operation): New function. 3755 * fold-const.c (fold_relational_const): Use it. 3756 (const_binop): Likewise. Check that both input vectors have 3757 the same number of elements, thus excluding things like WIDEN_SUM. 3758 Check whether it is possible to operate directly on the encodings 3759 of stepped inputs. 3760 37612017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3762 3763 * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and 3764 new_unary_operation, operating only on the encoded elements. 3765 (const_unop): Likewise. 3766 (exact_inverse): Likewise. 3767 (distributes_over_addition_p): New function. 3768 (const_binop): Use tree_vector_builder and new_unary_operation 3769 for combinations of VECTOR_CST and INTEGER_CST. Operate only 3770 on the encoded elements unless the encoding is strided and the 3771 operation does not distribute over addition. 3772 (fold_convert_const): Use tree_vector_builder and 3773 new_unary_operation. Operate only on the encoded elements 3774 for truncating integer conversions, or for non-stepped encodings. 3775 37762017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3777 3778 * config/sparc/sparc.c: Include tree-vector-builder.h. 3779 (sparc_fold_builtin): Use tree_vector_builder instead of build_vector. 3780 * expmed.c: Include tree-vector-builder.h. 3781 (make_tree): Use tree_vector_builder instead of build_vector. 3782 * fold-const.c: Include tree-vector-builder.h. 3783 (const_binop): Use tree_vector_builder instead of build_vector. 3784 (const_unop): Likewise. 3785 (native_interpret_vector): Likewise. 3786 (fold_vec_perm): Likewise. 3787 (fold_ternary_loc): Likewise. 3788 * gimple-fold.c: Include tree-vector-builder.h. 3789 (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead 3790 of build_vector. 3791 * tree-ssa-forwprop.c: Include tree-vector-builder.h. 3792 (simplify_vector_constructor): Use tree_vector_builder instead 3793 of build_vector. 3794 * tree-vect-generic.c: Include tree-vector-builder.h. 3795 (add_rshift): Use tree_vector_builder instead of build_vector. 3796 (expand_vector_divmod): Likewise. 3797 (optimize_vector_constructor): Likewise. 3798 * tree-vect-loop.c: Include tree-vector-builder.h. 3799 (vect_create_epilog_for_reduction): Use tree_vector_builder instead 3800 of build_vector. Explicitly use a stepped encoding for 3801 { 1, 2, 3, ... }. 3802 * tree-vect-slp.c: Include tree-vector-builder.h. 3803 (vect_get_constant_vectors): Use tree_vector_builder instead 3804 of build_vector. 3805 (vect_transform_slp_perm_load): Likewise. 3806 (vect_schedule_slp_instance): Likewise. 3807 * tree-vect-stmts.c: Include tree-vector-builder.h. 3808 (vectorizable_bswap): Use tree_vector_builder instead of build_vector. 3809 (vect_gen_perm_mask_any): Likewise. 3810 (vectorizable_call): Likewise. Explicitly use a stepped encoding. 3811 * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead 3812 of build_vector. 3813 (build_vector_from_val): Likewise. Explicitly use a duplicate 3814 encoding. 3815 38162017-12-07 Richard Sandiford <richard.sandiford@arm.com> 3817 3818 * doc/generic.texi (VECTOR_CST): Describe new representation of 3819 vector constants. 3820 * vector-builder.h: New file. 3821 * tree-vector-builder.h: Likewise. 3822 * tree-vector-builder.c: Likewise. 3823 * Makefile.in (OBJS): Add tree-vector-builder.o. 3824 * tree.def (VECTOR_CST): Update comment to refer to generic.texi. 3825 * tree-core.h (tree_base): Add a vector_cst field to the u union. 3826 (tree_vector): Change the number of elements to 3827 vector_cst_encoded_nelts. 3828 * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS. 3829 (VECTOR_CST_ELTS): Delete. 3830 (VECTOR_CST_ELT): Redefine using vector_cst_elt. 3831 (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros. 3832 (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise. 3833 (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise. 3834 (VECTOR_CST_ENCODED_ELT): Likewise. 3835 (vector_cst_encoded_nelts): New function. 3836 (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and 3837 VECTOR_CST_NELTS_PER_PATTERN as arguments. 3838 (vector_cst_int_elt, vector_cst_elt): Declare. 3839 * tree.c: Include tree-vector-builder.h. 3840 (tree_code_size): Abort if passed VECTOR_CST. 3841 (tree_size): Update for new VECTOR_CST layout. 3842 (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and 3843 VECTOR_CST_NELTS_PER_PATTERN as arguments. 3844 (build_vector): Use tree_vector_builder. 3845 (vector_cst_int_elt, vector_cst_elt): New functions. 3846 (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the 3847 encoded elements and then create the vector in the canonical form. 3848 (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill) 3849 (check_vector_cst_stepped, test_vector_cst_patterns): New functions. 3850 (tree_c_tests): Call test_vector_cst_patterns. 3851 * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new 3852 VECTOR_CST fields. 3853 (hash_tree): Likewise. 3854 * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise. 3855 (streamer_write_tree_header): Likewise. 3856 * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise. 3857 (streamer_alloc_tree): Likewise. Update call to make_vector. 3858 * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS. 3859 38602017-12-07 Richard Sandiford <richard.sandiford@linaro.org> 3861 3862 * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT) 3863 (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names 3864 * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise. 3865 38662017-12-07 Bin Cheng <bin.cheng@arm.com> 3867 Richard Biener <rguenther@suse.de> 3868 3869 PR tree-optimization/81303 3870 * Makefile.in (gimple-loop-interchange.o): New object file. 3871 * common.opt (floop-interchange): Reuse the option from graphite. 3872 * doc/invoke.texi (-floop-interchange): Ditto. New document for 3873 -floop-interchange and mention it for -O3. 3874 * opts.c (default_options_table): Enable -floop-interchange at -O3. 3875 * gimple-loop-interchange.cc: New file. 3876 * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter. 3877 (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter. 3878 * passes.def (pass_linterchange): New pass. 3879 * timevar.def (TV_LINTERCHANGE): New time var. 3880 * tree-pass.h (make_pass_linterchange): New declaration. 3881 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external 3882 interchange. Record IV before/after increment in new parameters. 3883 * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration. 3884 * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction 3885 path check into... 3886 (check_reduction_path): ...New function here. 3887 * tree-vectorizer.h (check_reduction_path): New declaration. 3888 38892017-12-07 Vladimir Makarov <vmakarov@redhat.com> 3890 3891 PR target/83252 3892 PR rtl-optimization/80818 3893 * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER 3894 always early clobbered. 3895 * lra-lives.c (process_bb_lives): Check input hard regs for early 3896 clobbered non-operand hard reg. 3897 38982017-12-07 Jakub Jelinek <jakub@redhat.com> 3899 3900 PR middle-end/83164 3901 * tree-cfg.c (verify_gimple_assign_binary): Don't require 3902 types_compatible_p, just that TYPE_MODE is the same. 3903 39042017-12-07 Martin Sebor <msebor@redhat.com> 3905 3906 PR c/81544 3907 * attribs.c (empty_attribute_table): Initialize new member of 3908 struct attribute_spec. 3909 (decl_attributes): Add argument. Handle mutually exclusive 3910 combinations of attributes. 3911 (selftests::test_attribute_exclusions): New function. 3912 (selftests::attribute_c_tests): Ditto. 3913 * attribs.h (decl_attributes): Add default argument. 3914 * selftest.h (attribute_c_tests): Declare. 3915 * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests. 3916 * tree-core.h (attribute_spec::exclusions, exclude): New type and 3917 member. 3918 * doc/extend.texi (Common Function Attributes): Update const and pure. 3919 * config/alpha/alpha.c (vms_attribute_table): Initialize new member 3920 of struct attribute_spec. 3921 * config/arc/arc.c (arc_attribute_table): Same. 3922 * config/arm/arm.c (arm_attribute_table): Same. 3923 * config/avr/avr.c ( avr_attribute_table): Same. 3924 * config/bfin/bfin.c (bfin_attribute_table): Same. 3925 * config/cr16/cr16.c (cr16_attribute_table): Same. 3926 * config/epiphany/epiphany.c (epiphany_attribute_table): Same. 3927 * config/h8300/h8300.c (h8300_attribute_table): Same. 3928 * config/i386/i386.c (ix86_attribute_table): Same. 3929 * config/ia64/ia64.c (ia64_attribute_table): Same. 3930 * config/m32c/m32c.c (m32c_attribute_table): Same. 3931 * config/m32r/m32r.c (m32r_attribute_table): Same. 3932 * config/m68k/m68k.c (m68k_attribute_table): Same. 3933 * config/mcore/mcore.c (mcore_attribute_table): Same. 3934 * config/microblaze/microblaze.c (microblaze_attribute_table): Same. 3935 * config/mips/mips.c (mips_attribute_table): Same. 3936 * config/msp430/msp430.c (msp430_attribute_table): Same. 3937 * config/nds32/nds32.c (nds32_attribute_table): Same. 3938 * config/nvptx/nvptx.c (nvptx_attribute_table): Same. 3939 * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same. 3940 * config/rl78/rl78.c (rl78__attribute_table): Same. 3941 * config/rs6000/rs6000.c (rs6000_attribute_table): Same. 3942 * onfig/rx/rx.c (rx_attribute_table): Same. 3943 * config/s390/s390.c (s390_handle_vectorbool_attribute): Same. 3944 * config/sh/sh.c (sh_attribute_table): Same. 3945 * config/sparc/sparc.c (sparc_attribute_table): Same. 3946 * config/spu/spu.c (spu_attribute_table): Same. 3947 * config/stormy16/stormy16.c (xstormy16_attribute_table): Same. 3948 * config/v850/v850.c (v850_attribute_table): Same. 3949 * config/visium/visium.c (visium_attribute_table): Same. 3950 39512017-12-07 Tamar Christina <tamar.christina@arm.com> 3952 3953 PR target/82641 3954 * config/arm/arm.c (INCLUDE_STRING): Define. 3955 (arm_last_printed_arch_string, arm_last_printed_fpu_string): New. 3956 (arm_declare_function_name): Conservatively emit .arch, .arch_extensions 3957 and .fpu. 3958 39592017-12-07 Michael Matz <matz@suse.de> 3960 3961 Add unroll and jam pass 3962 3963 * gimple-loop-jam.c: New file. 3964 * Makefile.in (OBJS): Add gimple-loop-jam.o. 3965 * common.opt (funroll-and-jam): New option. 3966 * opts.c (default_options_table): Add unroll-and-jam at -O3. 3967 * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param. 3968 (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto. 3969 * passes.def: Add pass_loop_jam. 3970 * timevar.def (TV_LOOP_JAM): Add. 3971 * tree-pass.h (make_pass_loop_jam): Declare. 3972 * cfgloop.c (flow_loop_tree_node_add): Add AT argument. 3973 * cfgloop.h (flow_loop_tree_node_add): Adjust declaration. 3974 * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call 3975 to flow_loop_tree_node_add. 3976 (duplicate_subloops, copy_loops_to): Append to sibling list. 3977 * cfgloopmanip.h: (duplicate_loop): Adjust declaration. 3978 * doc/invoke.texi (-funroll-and-jam): Document new option. 3979 (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params. 3980 39812017-12-07 Richard Biener <rguenther@suse.de> 3982 3983 PR tree-optimization/83296 3984 PR tree-optimization/67769 3985 * tree-ssa-phiopt.c (conditional_replacement): Do not reset 3986 flow sensitive info in an unrelated BB. 3987 (value_replacement): Use reset_flow_sensitive_info. 3988 (minmax_replacement): Reset flow sensitive info on the def 3989 we move. Do not reset flow sensitive info in the whole BB 3990 we move the stmt to. 3991 (abs_replacement): Likewise. 3992 39932017-12-07 Segher Boessenkool <segher@kernel.crashing.org> 3994 3995 PR target/43871 3996 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set 3997 rs6000_cpu to the given -mcpu=, or to the default processor. 3998 39992017-12-07 Segher Boessenkool <segher@kernel.crashing.org> 4000 4001 * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete. 4002 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune 4003 instead of rs6000_cpu_attr. 4004 (rs6000_adjust_cost): Ditto. 4005 (is_microcoded_insn): Ditto. 4006 (rs6000_adjust_priority): Ditto. 4007 (rs6000_issue_rate): Ditto. 4008 (rs6000_use_sched_lookahead): Ditto. 4009 (rs6000_use_sched_lookahead_guard): Ditto. 4010 (rs6000_sched_reorder): Ditto. 4011 (force_new_group): Ditto. 4012 * config/rs6000/rs6000.md (cpu attribute): Ditto. 4013 (group_ending_nop): Ditto. 4014 40152017-12-07 Segher Boessenkool <segher@kernel.crashing.org> 4016 4017 * config/rs6000/rs6000.opt (rs6000_tune): New variable. 4018 * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set 4019 rs6000_tune. Use rs6000_tune instead of rs6000_cpu where appropriate. 4020 (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where 4021 appropriate. 4022 (rs6000_reassociation_width): Ditto. 4023 (rs6000_emit_epilogue): Ditto. 4024 (rs6000_adjust_cost): Ditto. 4025 (is_microcoded_insn): Ditto. 4026 (is_cracked_insn): Ditto. 4027 (rs6000_adjust_priority): Ditto. 4028 (rs6000_sched_reorder): Ditto. 4029 (rs6000_sched_reorder2): Ditto. 4030 (insn_must_be_first_in_group): Ditto. 4031 (insn_must_be_last_in_group): Ditto. 4032 (rs6000_register_move_cost): Ditto. 4033 * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of 4034 rs6000_cpu. 4035 40362017-12-07 Julia Koval <julia.koval@intel.com> 4037 4038 * config.gcc: Add vaesintrin.h. 4039 * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): 4040 New type. 4041 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi, 4042 __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): 4043 New builtins. 4044 * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. 4045 * config/i386/immintrin.h: Include vaesintrin.h. 4046 * config/i386/sse.md (vaesdec_<mode>): New pattern. 4047 * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128, 4048 _mm_aesdec_epi128): New intrinsics. 4049 40502017-12-06 David Malcolm <dmalcolm@redhat.com> 4051 4052 * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o. 4053 * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to 4054 c-family/c-spellcheck.cc. 4055 (best_macro_match::best_macro_match): Likewise. 4056 * spellcheck-tree.h 4057 (struct edit_distance_traits<cpp_hashnode *>): Move to 4058 c-family/c-spellcheck.h. 4059 (class best_macro_match): Likewise. 4060 40612017-12-06 Jakub Jelinek <jakub@redhat.com> 4062 4063 PR tree-optimization/83293 4064 * gimple-ssa-strength-reduction.c (insert_initializers): Use 4065 GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that 4066 might insert into empty bb. 4067 4068 PR sanitizer/81281 4069 * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate 4070 simplify for plus with :c added, and pointer_plus without that. 4071 ((T)P - (T)(P + A) -> -(T) A): Likewise. If type is integral 4072 with undefined overflow and the conversion is not widening, 4073 perform negation in utype and only convert to type afterwards. 4074 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate 4075 simplify for plus with :c added, and pointer_plus without that. 4076 If type is integral with undefined overflow and the conversion is 4077 not widening, perform minus in utype and only convert to type 4078 afterwards. Move the last pointer_diff_expr simplify into the 4079 two outermost ifs. 4080 40812017-12-06 Martin Sebor <msebor@redhat.com> 4082 4083 PR tree-optimization/82646 4084 * builtins.c (maybe_emit_chk_warning): Use size as the bound for 4085 strncpy, not maxlen. 4086 40872017-12-06 Martin Sebor <msebor@redhat.com> 4088 4089 * doc/invoke.texi (-Wstringop-truncation): Mention attribute 4090 nonstring. 4091 4092 PR tree-optimization/83075 4093 * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming 4094 strncat/strncpy don't change length of source string. 4095 40962017-12-06 Eric Botcazou <ebotcazou@adacore.com> 4097 4098 Revert 4099 2017-11-29 Martin Aberg <maberg@gaisler.com> 4100 4101 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length 4102 to prevent b2bst errata sequence. 4103 (sqrtdf2_fix): Likewise. 4104 41052017-12-06 Jakub Jelinek <jakub@redhat.com> 4106 4107 PR tree-optimization/81945 4108 * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn. 4109 * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved 4110 to dest_cfun has orig_loop_num set, either remap it to the new 4111 loop number if the loop got moved too, or clear it. 4112 41132017-12-05 Steve Ellcey <sellcey@cavium.com> 4114 4115 * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap 4116 to reservation. 4117 (thunderx2t99_nothing): New insn reservation. 4118 (thunderx2t99_mrs): New insn reservation. 4119 (thunderx2t99_multiple): New insn reservation. 4120 (thunderx2t99_alu_basi): Add bfx to reservation. 4121 (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation. 4122 41232017-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4124 4125 PR target/82248 4126 * config/arm/arm.md (probe_stack) : Use the 'o' constraint. 4127 41282017-12-05 Bin Cheng <bin.cheng@arm.com> 4129 4130 * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from 4131 tree-ssa-pre.c::remove_dead_inserted_code. 4132 * tree-ssa-dce.h: New file. 4133 * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file. 4134 (remove_dead_inserted_code): Move and rename to function 4135 tree-ssa-dce.c::simple_dce_from_worklist. 4136 (pass_pre::execute): Update use. 4137 41382017-12-05 Richard Biener <rguenther@suse.de> 4139 4140 PR tree-optimization/83277 4141 * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure 4142 to code-gen liveout vars. 4143 41442017-12-05 Richard Sandiford <richard.sandiford@linaro.org> 4145 4146 * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal) 4147 (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P. 4148 (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to 4149 split condition. 4150 41512017-12-05 Max Filippov <jcmvbkbc@gmail.com> 4152 4153 * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New 4154 function. 4155 (TARGET_ASAN_SHADOW_OFFSET): New macro definition. 4156 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if 4157 ASAN is enabled. 4158 41592017-12-05 Richard Biener <rguenther@suse.de> 4160 4161 * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add. 4162 * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP. 4163 (pass_data_cse_sincos): Use TV_TREE_SINCOS. 4164 (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL. 4165 41662017-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 4167 4168 * dbxout.c (dbxout_block): Grow buf to 30 bytes. 4169 41702017-12-05 Martin Liska <mliska@suse.cz> 4171 Jakub Jelinek <jakub@redhat.com> 4172 4173 * doc/invoke.texi: Document the options. 4174 * flag-types.h (enum sanitize_code): Add 4175 SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. 4176 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling 4177 of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. 4178 * opts.c: Define new sanitizer options. 4179 * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise. 4180 (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise. 4181 41822017-12-05 Julia Koval <julia.koval@intel.com> 4183 4184 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET, 4185 OPTION_MASK_ISA_AVX512VNNI_UNSET): New. 4186 (ix86_handle_option): Handle -mavx512vnni. 4187 * config/i386/cpuid.h (bit_AVX512VNNI): New bit. 4188 * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. 4189 * config/i386/i386-c (__AVX512VNNI__): New. 4190 * config/i386/i386.c (ix86_target_string): Handle new option. 4191 (ix86_valid_target_attribute_inner_p): Handle new option. 4192 * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New. 4193 * config/i386/i386.opt (mavx512vnni): New option. 4194 41952017-12-01 Jan Hubicka <hubicka@ucw.cz> 4196 4197 PR target/81616 4198 * athlon.md: Disable for generic. 4199 * haswell.md: Enable for generic. 4200 * i386.c (ix86_sched_init_global): Add core hooks for generic. 4201 * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic 4202 to 4. 4203 (ix86_adjust_cost): Move generic to haswell path. 4204 42052017-12-04 Eric Botcazou <ebotcazou@adacore.com> 4206 4207 * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref 4208 instead of MEM_P in a couple more places. Fix formatting issues. 4209 42102017-12-04 Jim Wilson <jimw@sifive.com> 4211 4212 * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST 4213 instead of GP_REG_LAST-1. 4214 (riscv_adjust_libcall_cfi_prologue): Likewise. 4215 (riscv_adjust_libcall_cri_epilogue): Likewise. 4216 * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in 4217 comment. 4218 42192017-12-04 Luis Machado <luis.machado@linaro.org> 4220 4221 * ipa-pure-const.c (check_decl): Add missing newline. 4222 (state_from_flags): Likewise. 4223 42242017-12-04 Jeff Law <law@redhat.com> 4225 4226 PR tree-optimizatin/78496 4227 * gimple-ssa-evrp-analyze.h 4228 (evrp_range_analyzer::get_vr_values): Simplify. 4229 * gimple-ssa-evrp-analyze.c: Corresponding changes. 4230 * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h 4231 and gimple-ssa-evrp-analyze.h. 4232 (dom_opt_dom_walker class): Add evrp_range_analyzer member. 4233 (simplify_stmt_for_jump_threading): Copy a blob of code from 4234 tree-vrp.c to use ranges to simplify statements. 4235 (dom_opt_dom_walker::before_dom_children): Call 4236 evrp_range_analyzer::{enter,record_ranges_from_stmt} methods. 4237 (dom_opt_dom_walker::after_dom_children): Similarly for 4238 evrp_range_analyzer::leave. 4239 (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize 4240 conditionals. 4241 4242 * gimple-ssa-evrp-analyze.c 4243 (evrp_range_analyzer::extract_range_from_stmt): Always use 4244 vr_values::update_value_range so preexisting range info is 4245 medged with new range info, even if the new range is VR_VARYING. 4246 42472017-12-04 Segher Boessenkool <segher@kernel.crashing.org> 4248 4249 * combine.c: Adjust comment. 4250 (use_crosses_set_p): Delete. 4251 (can_combine_p): Use modified_between_p instead of use_crosses_set_p. 4252 (try_combine): Ditto. 4253 42542017-12-04 Richard Biener <rguenther@suse.de> 4255 4256 PR tree-optimization/83255 4257 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): 4258 Re-add zero-iteration check. 4259 42602017-12-04 Segher Boessenkool <segher@kernel.crashing.org> 4261 4262 PR rtl-optimization/83245 4263 * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand 4264 hard registers as earlyclobber, also if not in an asm. 4265 42662017-12-04 Segher Boessenkool <segher@kernel.crashing.org> 4267 4268 PR bootstrap/83265 4269 Revert 4270 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> 4271 4272 PR target/43871 4273 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set 4274 rs6000_cpu based on cpu_index, not tune_index. 4275 42762017-12-04 Richard Biener <rguenther@suse.de> 4277 4278 PR tree-optimization/83238 4279 * graphite-scop-detection.c (scop_detection::merge_sese): Make 4280 code match comment, rejecting invalid SESE regions. 4281 42822017-12-03 John David Anglin <danglin@gcc.gnu.org> 4283 4284 * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing, 4285 require base operand is a REG_POINTER prior to reload on targets 4286 with non-equivalent space registers. 4287 42882017-12-01 Jan Hubicka <hubicka@ucw.cz> 4289 4290 * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping. 4291 (update_specialized_profile): Fix updating of counts. 4292 (perhaps_add_new_callers): Likewise. 4293 42942017-12-01 Jan Hubicka <hubicka@ucw.cz> 4295 4296 PR target/81616 4297 * x86-tune.def: Remove obsolette FIXMEs. 4298 (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic 4299 (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64, 4300 X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH): 4301 Enable for generic. 4302 (X86_TUNE_PAD_RETURNS): Disable for generic. 4303 43042017-12-02 Jakub Jelinek <jakub@redhat.com> 4305 4306 PR tree-optimization/83170 4307 PR tree-optimization/83241 4308 * gimple-ssa-store-merging.c 4309 (imm_store_chain_info::try_coalesce_bswap): Update vuse field from 4310 gimple_vuse (ins_stmt) in case it has changed. 4311 (imm_store_chain_info::output_merged_store): Likewise. 4312 4313 * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle 4314 POINTER_DIFF_EXPR. 4315 4316 PR c++/81212 4317 * tree-cfg.c (pass_warn_function_return::execute): Handle 4318 __builtin_ubsan_handle_missing_return like __builtin_unreachable 4319 with BUILTINS_LOCATION. 4320 4321 PR target/78643 4322 PR target/80583 4323 * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield 4324 is BLKmode for vector field with vector raw mode, use TYPE_MODE 4325 instead of DECL_MODE. 4326 4327 * config/i386/i386-protos.h (standard_sse_constant_opcode): Change 4328 last argument to rtx pointer. 4329 * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument 4330 with OPERANDS. For AVX+ 128-bit VEX encoded instructions over 256-bit 4331 or 512-bit. If setting EXT_REX_SSE_REG_P, use EVEX encoded insn 4332 depending on the chosen ISAs. 4333 * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx, 4334 *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal, 4335 *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode 4336 callers. 4337 * config/i386/sse.md (mov<mode>_internal): Likewise. 4338 * config/i386/mmx.md (*mov<mode>_internal): Likewise. 4339 43402017-12-01 Segher Boessenkool <segher@kernel.crashing.org> 4341 4342 * doc/invoke.texi (-dp): Say that instruction cost is printed as well. 4343 43442017-12-01 Segher Boessenkool <segher@kernel.crashing.org> 4345 4346 * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two 4347 parameters from prototype. 4348 * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two 4349 parameters. Don't print a comment. 4350 (emit_fusion_gpr_load): Adjust. 4351 (emit_fusion_load_store): Adjust. 4352 * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust. 4353 * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion" 4354 comment on the second line. 4355 43562017-12-01 Segher Boessenkool <segher@kernel.crashing.org> 4357 4358 PR target/43871 4359 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set 4360 rs6000_cpu based on cpu_index, not tune_index. 4361 43622017-12-01 Segher Boessenkool <segher@kernel.crashing.org> 4363 4364 * final.c (output_asm_name): Print insn_cost. Shorten output. Print 4365 which_alternative instead of which_alternative + 1. 4366 (output_asm_insn): Print an extra tab if the template is short. 4367 43682017-12-01 Jim Wilson <jimw@sifive.com> 4369 4370 * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from 4371 comment. 4372 * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef. 4373 * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG 4374 reference. 4375 * doc/tm.texi: Regenerate. 4376 43772017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com> 4378 4379 PR target/81959 4380 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for 4381 whether we can allocate pseudos before trying to fix an address. 4382 * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the 4383 memory address is indexed or indirect. 4384 (floatuns_<mode>si2_hw2): Likewise. 4385 43862017-12-01 Jason Merrill <jason@redhat.com> 4387 4388 * Makefile.in (TAGS): Add c-family/*.cc. 4389 43902017-12-01 Wilco Dijkstra <wdijkstr@arm.com> 4391 4392 * config/aarch64/aarch64.md (call_insn): Use %c rather than %a. 4393 (call_value_insn): Likewise. 4394 (sibcall_insn): Likewise. 4395 (sibcall_value_insn): Likewise. 4396 (movsi_aarch64): Likewise. 4397 (movdi_aarch64): Likewise. 4398 (add_losym_): Likewise. 4399 (ldr_got_small_): Likewise. 4400 (ldr_got_small_sidi): Likewise. 4401 (ldr_got_small_28k_): Likewise. 4402 (ldr_got_small_28k_sidi): Likewise. 4403 * config/aarch64/aarch64.c (aarch64_print_address_internal): 4404 Move output_addr_const to symbolic case. Add error check. 4405 44062017-12-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 4407 4408 * config/s390/predicates.md (plus16_Q_operand): New predicate. 4409 * config/s390/s390.md: Disable MVC merging peephole if it would 4410 disable operand forwarding. 4411 (new peephole2): Split MVCs if it would turn them into up to 2 4412 forwardable MVCs. 4413 44142017-12-01 Richard Biener <rguenther@suse.de> 4415 4416 PR tree-optimization/83232 4417 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix 4418 detection of same access. Instead of breaking the group here 4419 do not consider the duplicate. Add comment explaining real fix. 4420 44212017-12-01 Jonathan Wakely <jwakely@redhat.com> 4422 4423 * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo. 4424 44252017-12-01 Sudakshina Das <sudi.das@arm.com> 4426 4427 * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute. 4428 44292017-12-01 Jakub Jelinek <jakub@redhat.com> 4430 4431 * function.h (struct function): Remove cilk_frame_decl, 4432 is_cilk_function and calls_cilk_spawn fields. 4433 * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk 4434 field. 4435 * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear 4436 cilk_elemental field. 4437 * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field. 4438 * target.def: Adjust comment. 4439 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 4440 Don't test cilk_elemental. 4441 4442 PR tree-optimization/83233 4443 * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use 4444 bswap_stat name for the struct. 4445 4446 PR c/79153 4447 * tree.h (SWITCH_BREAK_LABEL_P): Define. 4448 * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND 4449 starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with 4450 SWITCH_BREAK_LABEL_P set on the label. 4451 (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label 4452 added for default case if it was missing and not all cases covered. 4453 Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if 4454 switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P 4455 set on the label. 4456 * tree-chrec.c (evolution_function_is_univariate_p): Add return true; 4457 to avoid -Wimplicit-fallthrough warning. 4458 * config/i386/i386.c (ix86_expand_special_args_builtin): Add 4459 FALLTHRU comment to avoid -Wimplicit-fallthrough warning. 4460 4461 PR tree-optimization/83221 4462 * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank 4463 down by 16. 4464 (init_reassoc): Formatting fix. 4465 4466 PR sanitizer/81275 4467 * tree-cfg.c (group_case_labels_stmt): Don't optimize away 4468 C++ FE implicitly added __builtin_unreachable () until -Wreturn-type 4469 is diagnosed. 4470 4471 PR sanitizer/83219 4472 * tree-cfg.c: Include asan.h. 4473 (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable. 4474 44752017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> 4476 4477 * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction. 4478 44792017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> 4480 4481 * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for 4482 vpcmpeqd instruction. 4483 44842017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> 4485 4486 * config/i386/i386.c (standard_sse_constant_opcode): Fix 4487 registers type for 128bit mode. 4488 44892017-11-30 Jakub Jelinek <jakub@redhat.com> 4490 4491 * spellcheck-tree.c (test_find_closest_identifier): Use ; instead 4492 of ;;. 4493 * gengtype-state.c (read_state_pair): Likewise. 4494 * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise. 4495 * sel-sched-dump.c (dump_insn_rtx_1): Likewise. 4496 * ipa-cp.c (intersect_aggregates_with_edge): Likewise. 4497 * ifcvt.c (noce_try_store_flag_constants): Likewise. 4498 * tree-ssa-ccp.c (ccp_finalize): Likewise. 4499 * omp-grid.c (grid_process_kernel_body_copy): Likewise. 4500 * builtins.c (fold_builtin_3): Likewise. 4501 * graphite-scop-detection.c 4502 (scop_detection::stmt_has_simple_data_refs_p): Likewise. 4503 * hsa-gen.c (hsa_function_representation::hsa_function_representation): 4504 Likewise. 4505 45062017-12-01 Maxim Ostapenko <m.ostapenko@samsung.com> 4507 4508 PR sanitizer/81697 4509 * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p 4510 parameter. Return true if ignore_decl_rtl_set_p is true and other 4511 conditions are satisfied. 4512 * asan.h (asan_protect_global): Add new parameter. 4513 * varasm.c (categorize_decl_for_section): Pass true as second parameter 4514 to asan_protect_global calls. 4515 45162017-11-30 Jim Wilson <jimw@sifive.com> 4517 4518 * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and 4519 -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and 4520 -mstrict-align, add info on default value. Delete redundant lines for 4521 -mabi. Add missing -mexplicit-relocs docs. 4522 45232017-11-30 Claudiu Zissulescu <claziss@synopsys.com> 4524 4525 * config/arc/arc.md (trap): New pattern. 4526 45272017-11-30 Claudiu Zissulescu <claziss@synopsys.com> 4528 4529 * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL 4530 instruction to end into a delay slot. 4531 * config/arc/arc.md (cond_delay_insn): Check if the instruction 4532 can be placed into a delay slot against reg_note. 4533 45342017-11-30 Claudiu Zissulescu <claziss@synopsys.com> 4535 4536 * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start 4537 labels number of usages. 4538 45392017-11-30 Claudiu Zissulescu <claziss@synopsys.com> 4540 4541 * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New 4542 function. 4543 (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. 4544 45452017-11-30 Jakub Jelinek <jakub@redhat.com> 4546 4547 PR target/83210 4548 * internal-fn.c (expand_mul_overflow): Optimize unsigned 4549 multiplication by power of 2 constant into two shifts + comparison. 4550 45512017-11-30 Jan Hubicka <hubicka@ucw.cz> 4552 4553 PR target/81616 4554 * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs. 4555 45562017-11-30 Richard Biener <rguenther@suse.de> 4557 4558 PR tree-optimization/83202 4559 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add 4560 allow_peel argument and guard peeling. 4561 (canonicalize_loop_induction_variables): Likewise. 4562 (canonicalize_induction_variables): Pass false. 4563 (tree_unroll_loops_completely_1): Pass unroll_outer to disallow 4564 peeling from cunrolli. 4565 45662017-11-29 Segher Boessenkool <segher@kernel.crashing.org> 4567 4568 * combine.c (try_combine): Print a message to dump file whenever 4569 I0, I1, or I2 cannot be combined into I3. 4570 45712017-11-29 Segher Boessenkool <segher@kernel.crashing.org> 4572 4573 PR rtl-optimization/83156 4574 PR rtl-optimization/82621 4575 * combine.c (try_combine): Don't split an I2 if one of the dests is 4576 set again before I3. Allow unused dests. 4577 45782017-11-29 Segher Boessenkool <segher@kernel.crashing.org> 4579 4580 * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New. 4581 45822017-11-29 Vladimir Makarov <vmakarov@redhat.com> 4583 4584 PR rtl-optimization/80818 4585 * lra.c (collect_non_operand_hard_regs): New arg insn. Pass it 4586 recursively. Use insn code for clobber. 4587 (lra_set_insn_recog_data): Pass the new arg to 4588 collect_non_operand_hard_regs. 4589 (add_regs_to_insn_regno_info): Pass insn instead of uid. Use insn 4590 code for clobber. 4591 (lra_update_insn_regno_info): Pass insn to 4592 add_regs_to_insn_regno_info. 4593 45942017-11-29 Jim Wilson <jimw@sifive.com> 4595 Andrew Waterman <andrew@sifive.com> 4596 4597 * config/riscv/riscv.c (SINGLE_SHIFT_COST): New. 4598 (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return 4599 SINGLE_SHIFT_COST. Case LT and ZERO_EXTEND, likewise. Case ASHIFT, 4600 use SINGLE_SHIFT_COST. 4601 * config/riscv/riscv.md (lshrsi3_zero_extend_1): New. 4602 (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New. 4603 46042017-11-29 Julia Koval <julia.koval@intel.com> 4605 4606 * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16, 4607 _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32, 4608 _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64, 4609 _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics. 4610 * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16, 4611 _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32, 4612 _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64, 4613 _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16, 4614 _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32, 4615 _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64, 4616 _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto. 4617 * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi, 4618 __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz, 4619 __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, 4620 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, 4621 __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, 4622 __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask, 4623 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si, 4624 __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz, 4625 __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask, 4626 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di, 4627 __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz, 4628 __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, 4629 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, 4630 __builtin_ia32_vpshldv_v2di_mask, 4631 __builtin_ia32_vpshldv_v2di_maskz): New builtins. 4632 * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask, 4633 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns. 4634 46352017-11-29 Julia Koval <julia.koval@intel.com> 4636 4637 * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16, 4638 _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32, 4639 _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, 4640 _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics. 4641 * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16, 4642 _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32, 4643 _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64, 4644 _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16, 4645 _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32, 4646 _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64, 4647 _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto. 4648 * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI, 4649 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, 4650 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, 4651 V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI, 4652 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, 4653 V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, 4654 V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types. 4655 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. 4656 * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask, 4657 vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern. 4658 46592017-11-29 Daniel Cederman <cederman@gaisler.com> 4660 4661 * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the 4662 movsi_pic_gotdata_op instruction as a load for the UT699 errata 4663 workaround. 4664 46652017-11-29 Martin Aberg <maberg@gaisler.com> 4666 4667 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length 4668 to prevent b2bst errata sequence. 4669 (sqrtdf2_fix): Likewise. 4670 46712017-11-29 Daniel Cederman <cederman@gaisler.com> 4672 4673 * config/sparc/sparc.c (fpop_reg_depend_p): New function. 4674 (div_sqrt_insn_p): New function. 4675 (sparc_do_work_around_errata): Insert NOP instructions to 4676 prevent sequences that could trigger the TN-0013 errata for 4677 certain LEON3 processors. 4678 (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt. 4679 (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately. 4680 * config/sparc/sparc.md (fix_lost_divsqrt): New attribute. 4681 (in_branch_delay): Prevent div and sqrt in delay slot if 4682 fix_lost_divsqrt. 4683 * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable. 4684 46852017-11-29 Daniel Cederman <cederman@gaisler.com> 4686 4687 * config/sparc/sparc.c (atomic_insn_p): New function. 4688 (sparc_do_work_around_errata): Insert NOP instructions to 4689 prevent sequences that could trigger the TN-0010 errata for 4690 UT700. 4691 * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make 4692 instruction referable in atomic_insns_p. 4693 46942017-11-29 Daniel Cederman <cederman@gaisler.com> 4695 4696 * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc. 4697 (atomic_compare_and_swap_leon3_1): Likewise. 4698 (ldstub): Likewise. 4699 47002017-11-29 Daniel Cederman <cederman@gaisler.com> 4701 4702 * config/sparc/sparc.c (fpop_insn_p): New function. 4703 (sparc_do_work_around_errata): Insert NOP instructions to 4704 prevent sequences that could trigger the TN-0012 errata for 4705 GR712RC. 4706 (pass_work_around_errata::gate): Also test sparc_fix_gr712rc. 4707 * config/sparc/sparc.md (fix_gr712rc): New attribute. 4708 (in_branch_annul_delay): Prevent floating-point instructions 4709 in delay slot of annulled integer branch. 4710 47112017-11-29 Richard Biener <rguenther@suse.de> 4712 4713 PR tree-optimization/83202 4714 * tree-vect-slp.c (scalar_stmts_set_t): New typedef. 4715 (bst_fail): Use it. 4716 (vect_analyze_slp_cost_1): Add visited set, do not account SLP 4717 nodes vectorized to the same stmts multiple times. 4718 (vect_analyze_slp_cost): Allocate a visited set and pass it down. 4719 (vect_analyze_slp_instance): Adjust. 4720 (scalar_stmts_to_slp_tree_map_t): New typedef. 4721 (vect_schedule_slp_instance): Add a map recording the SLP node 4722 representing the vectorized stmts for a set of scalar stmts. 4723 Avoid code-generating redundancies. 4724 (vect_schedule_slp): Allocate map and pass it down. 4725 47262017-11-29 Nathan Sidwell <nathan@acm.org> 4727 4728 PR c++/83187 4729 * tree.c (build_complex_type): Fix canonicalization. Only fill in 4730 type if it is new. 4731 47322017-11-29 Wilco Dijkstra <wdijkstr@arm.com> 4733 4734 * config/aarch64/aarch64.c (aarch64_print_operand): Add new 4735 cases for printing LDP/STP memory addresses. 4736 (aarch64_print_address_internal): Renamed from 4737 aarch64_print_operand_address, added parameter, add Pmode check. 4738 (aarch64_print_ldpstp_address): New function for LDP/STP addresses. 4739 (aarch64_print_operand_address): Indirect to 4740 aarch64_print_address_internal. 4741 * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new 4742 'y' operand output specifier. 4743 47442017-11-29 Jakub Jelinek <jakub@redhat.com> 4745 4746 PR middle-end/83185 4747 * tree.c (build_simple_mem_ref_loc): Handle 4748 get_addr_base_and_unit_offset returning a MEM_REF. 4749 4750 PR middle-end/80929 4751 * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost. 4752 4753 PR target/80819 4754 * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm) 4755 alternative. 4756 47572017-11-28 David Malcolm <dmalcolm@redhat.com> 4758 4759 * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle 4760 m_x_offset. 4761 (layout::move_to_column): Likewise. 4762 47632017-11-28 Jakub Jelinek <jakub@redhat.com> 4764 4765 PR sanitizer/81275 4766 * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P 4767 is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()). 4768 47692017-11-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 4770 Martin Jambor <mjambor@suse.cz> 4771 4772 PR ipa/82808 4773 * tree.h (expr_type_first_operand_type_p): Declare 4774 * tree.c (expr_type_first_operand_type_p): New function. 4775 * ipa-prop.h (ipa_get_type): Allow i to be out of bounds. 4776 (ipa_value_from_jfunc): Adjust declaration. 4777 * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE. 4778 Use it as result type for arithmetics, unless it is NULL in which case 4779 be more conservative. 4780 (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to 4781 ipa_get_jf_pass_through_result. 4782 (propagate_vals_across_pass_through): Likewise. 4783 (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass 4784 is to propagate_vals_across_pass_through. 4785 (propagate_constants_across_call): Pass PARM_TYPE to 4786 propagate_scalar_across_jump_function. 4787 (find_more_scalar_values_for_callers_subset): Pass parameter type to 4788 ipa_value_from_jfunc. 4789 (cgraph_edge_brings_all_scalars_for_node): Likewise. 4790 * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info 4791 to caller_parms_info, pass parameter type to ipa_value_from_jfunc. 4792 * ipa-prop.c (try_make_edge_direct_simple_call): New parameter 4793 target_type, pass it to ipa_value_from_jfunc. 4794 (update_indirect_edges_after_inlining): Pass parameter type to 4795 try_make_edge_direct_simple_call. 4796 47972017-11-28 Jeff Law <law@redhat.com> 4798 4799 * gimple-ssa-evrp-analyze.c 4800 (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to 4801 refine ranges if scev_initialized_p returns true. 4802 * vr-values.c (vr_values::extract_range_from_phi_node): Likewise. 4803 48042017-11-28 Julia Koval <julia.koval@intel.com> 4805 4806 * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, 4807 _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, 4808 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64, 4809 _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics. 4810 * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16, 4811 _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16, 4812 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32, 4813 _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64, 4814 _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16, 4815 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32, 4816 _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto. 4817 * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi, 4818 __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi, 4819 __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi, 4820 __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si, 4821 __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si, 4822 __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si, 4823 __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di, 4824 __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di, 4825 __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di, 4826 __builtin_ia32_vpshrd_v2di_mask): New builtins. 4827 * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern. 4828 48292017-11-28 Julia Koval <julia.koval@intel.com> 4830 4831 * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16, 4832 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32, 4833 _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, 4834 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics. 4835 * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16, 4836 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, 4837 _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32, 4838 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64, 4839 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16, 4840 _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32, 4841 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto. 4842 * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT, 4843 V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT, 4844 V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT, 4845 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT, 4846 V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT, 4847 V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT, 4848 V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT, 4849 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT, 4850 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types. 4851 * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi, 4852 __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi, 4853 __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi, 4854 __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si, 4855 __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si, 4856 __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si, 4857 __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di, 4858 __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di, 4859 __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di, 4860 __builtin_ia32_vpshld_v2di_mask): New builtins. 4861 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. 4862 * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern. 4863 48642017-11-28 Richard Biener <rguenther@suse.de> 4865 4866 PR tree-optimization/80776 4867 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info): 4868 Declare. 4869 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): 4870 New function. 4871 (evrp_range_analyzer::record_ranges_from_incoming_edges): 4872 If the incoming edge is an effective fallthru because the other 4873 edge only reaches a __builtin_unreachable () then record ranges 4874 derived from the controlling condition in SSA info. 4875 (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info. 4876 (evrp_range_analyzer::record_ranges_from_stmt): Likewise. 4877 48782017-11-28 Olivier Hainque <hainque@adacore.com> 4879 4880 * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null 4881 on mingw build hosts. 4882 48832017-11-28 Jakub Jelinek <jakub@redhat.com> 4884 4885 PR debug/81307 4886 * dbxout.c (dbx_block_with_cold_children): Fix function comment. 4887 48882017-11-28 Richard Biener <rguenther@suse.de> 4889 4890 PR middle-end/83141 4891 * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate 4892 copies generated from memcpy use a character array as reference 4893 type. 4894 48952017-11-28 Julia Koval <julia.koval@intel.com> 4896 Sebastian Peryt <sebastian.peryt@intel.com> 4897 4898 * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, 4899 c-family/c-cilkplus.o, c-family/array-notation-common.o, 4900 cilk-common.o, cilk.h, cilk-common.c): Remove. 4901 * builtin-types.def 4902 (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove. 4903 * builtins.c (is_builtin_name): Remove cilkplus condition. 4904 (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove. 4905 * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN, 4906 cilk-builtins.def, cilkplus.def): Remove. 4907 * cif-code.def (CILK_SPAWN): Remove. 4908 * cilk-builtins.def: Delete. 4909 * cilk-common.c: Ditto. 4910 * cilk.h: Ditto. 4911 * cilkplus.def: Ditto. 4912 * config/darwin.h (fcilkplus): Delete. 4913 * cppbuiltin.c: Ditto. 4914 * doc/extend.texi: Remove cilkplus doc. 4915 * doc/generic.texi: Ditto. 4916 * doc/invoke.texi: Ditto. 4917 * doc/passes.texi: Ditto. 4918 * gcc.c (fcilkplus): Remove. 4919 * gengtype.c (cilk.h): Remove. 4920 * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus 4921 support. 4922 * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): 4923 Remove. 4924 * gimplify.c (gimplify_return_expr, maybe_fold_stmt, 4925 gimplify_call_expr, 4926 is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses, 4927 gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove 4928 cilkplus conditions. 4929 * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary, 4930 inline_read_section): Ditto. 4931 * ipa-inline-analysis.c (cilk.h): Remove. 4932 * ira.c (ira_setup_eliminable_regset): Remove cilkplus support. 4933 * lto-wrapper.c (merge_and_complain, append_compiler_options, 4934 append_linker_options): Remove condition for fcilkplus. 4935 * lto/lto-lang.c (cilk.h): Remove. 4936 (lto_init): Remove condition for fcilkplus. 4937 * omp-expand.c (expand_cilk_for_call): Delete. 4938 (expand_omp_taskreg, expand_omp_for_static_chunk, 4939 expand_omp_for): Remove cilkplus 4940 conditions. 4941 (expand_cilk_for): Delete. 4942 * omp-general.c (omp_extract_for_data): Remove cilkplus support. 4943 * omp-low.c (scan_sharing_clauses, create_omp_child_function, 4944 execute_lower_omp, diagnose_sb_0): Ditto. 4945 * omp-simd-clone.c (simd_clone_clauses_extract): Ditto. 4946 * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. 4947 * tree-nested.c: Ditto. 4948 * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support. 4949 (dump_generic_node): Ditto. 4950 * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. 4951 * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt): 4952 Delete. 4953 * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete. 4954 49552017-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4956 4957 * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT. 4958 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit 4959 for vector mode and !TARGET_SIMD. 4960 49612017-11-28 Jakub Jelinek <jakub@redhat.com> 4962 4963 * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. 4964 Adjust comment. 4965 * tree.h (SWITCH_LABELS): Remove. 4966 * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS, 4967 assert SWITCH_BODY is non-NULL. 4968 * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS 4969 handling. 4970 * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR. 4971 4972 PR tree-optimization/80788 4973 * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res 4974 has TREE_OVERFLOW set, call drop_tree_overflow. 4975 49762017-11-28 Richard Biener <rguenther@suse.de> 4977 4978 PR tree-optimization/83158 4979 * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases. 4980 49812017-11-28 Segher Boessenkool <segher@kernel.crashing.org> 4982 4983 PR 81288/target 4984 * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle 4985 TARGET_ISEL && !TARGET_MFCRF differently. Simplify code. 4986 49872017-11-27 Segher Boessenkool <segher@kernel.crashing.org> 4988 4989 * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change 4990 LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible. 4991 49922017-11-27 Michael Meissner <meissner@linux.vnet.ibm.com> 4993 4994 PR middle_end/82333 4995 * varasm.c (compare_constant): Take the mode of the constants into 4996 account when comparing floating point constants. 4997 49982017-11-27 Gerald Pfeifer <gerald@pfeifer.com> 4999 5000 * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier 5001 from explicit instantiation of debug_helper. 5002 * vec.h (DEFINE_DEBUG_VEC): Ditto. 5003 50042017-11-27 Richard Biener <rguenther@suse.de> 5005 5006 * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, 5007 refactor a bit. 5008 50092017-11-27 Richard Biener <rguenther@suse.de> 5010 5011 * tree.c (wide_int_to_tree): Free discarded INTEGER_CST. 5012 (type_hash_canon): Also clear int_cst_hash_table entry for 5013 TYPE_MIN/MAX_VALUE. 5014 (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs. 5015 50162017-11-27 Tamar Christina <tamar.christina@arm.com> 5017 5018 * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). 5019 * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A). 5020 * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A). 5021 50222017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> 5023 5024 * hash-map.h (gt_cleare_cache): Avoid UB. 5025 50262017-11-27 Eric Botcazou <ebotcazou@adacore.com> 5027 5028 * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. 5029 * loop-unroll.c (decide_unroll_constant_iterations): Implement it. 5030 (decide_unroll_runtime_iterations): Likewise. 5031 (decide_unroll_stupid): Likewise. 5032 50332017-11-27 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 5034 5035 PR target/83109 5036 * config/i386/i386.md: Add a loop with incssp. 5037 50382017-11-27 Martin Jambor <mjambor@suse.cz> 5039 5040 PR tree-optimization/81248 5041 * tree-sra.c (splice_param_accesses): Remove size check. 5042 (decide_one_param_reduction): Fix size check. 5043 * gimple-pretty-print.c (dump_profile): Silence warning. 5044 * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description. 5045 50462017-11-27 Jakub Jelinek <jakub@redhat.com> 5047 5048 PR debug/81307 5049 * dbxout.c (lastlineno): New variable. 5050 (dbx_debug_hooks): Use dbxout_switch_text_section as 5051 switch_text_section debug hook. 5052 (dbxout_function_end): Switch to current_function_section 5053 rather than function_section. If crtl->has_bb_partition, 5054 output just one N_FUN, depending on in_cold_section_p. 5055 (dbxout_source_line): Remember last lineno in lastlineno. 5056 (dbxout_switch_text_section): New function. 5057 (dbxout_function_decl): Adjust dbxout_block caller. 5058 (dbx_block_with_cold_children): New function. 5059 (dbxout_block): Return true if any LBRAC/RBRAC have been 5060 emitted. Use dbx_block_with_cold_children at depth == 0 5061 in second partition. Add PARENT_BLOCKNUM argument, pass 5062 it optionally adjusted to children. Output LBRAC/RBRAC 5063 around recursive call only if the block is in the current 5064 partition, if not and anything was output, emit empty 5065 range LBRAC/RBRAC. 5066 * final.c (final_scan_insn): Compute cold_function_name 5067 before calling switch_text_section debug hook. Call 5068 that hook even if dwarf2out_do_frame if not emitting 5069 dwarf debug info. 5070 5071 PR target/83100 5072 * varasm.c (bss_initializer_p): Return true for DECL_COMMON 5073 TREE_READONLY decls. 5074 50752017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> 5076 5077 PR rtl-optimization/82488 5078 * expr.c (fixup_args_size_notes): Avoid signed integer overflow. 5079 50802017-11-26 Julia Koval <julia.koval@intel.com> 5081 5082 * config/i386/i386.c (processor_target_table): Add skylake_cost for 5083 skylake-avx512. 5084 * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset, 5085 skylake_cost): New. 5086 50872017-11-26 Julia Koval <julia.koval@intel.com> 5088 5089 * config/i386/driver-i386.c (host_detect_local_cpu): 5090 Detect skylake-avx512. 5091 50922017-11-26 Julia Koval <julia.koval@intel.com> 5093 5094 * config.gcc: Add -march=cannonlake. 5095 * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake. 5096 * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake. 5097 * config/i386/i386.c (processor_costs): Add m_CANNONLAKE. 5098 (PTA_CANNONLAKE): New. 5099 (processor_target_table): Add cannonlake. 5100 (ix86_option_override_internal): Ditto. 5101 (fold_builtin_cpu): Ditto. 5102 (get_builtin_code_for_version): Handle cannonlake. 5103 (M_INTEL_COREI7_CANNONLAKE): New. 5104 * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New. 5105 * doc/invoke.texi: Add -march=cannonlake. 5106 51072017-11-14 Boris Kolpackov <boris@codesynthesis.com> 5108 5109 * plugin.c (add_new_plugin): Use platform-specific library extensions. 5110 (try_init_one_plugin): Alternative implementation for MinGW. 5111 * Makefile.in (plugin_implib): New. 5112 (gengtype-lex.c): Fix broken AIX workaround. 5113 * configure: Regenerate. 5114 * doc/plugins.texi: Document support for MinGW. 5115 51162017-11-25 Jakub Jelinek <jakub@redhat.com> 5117 5118 PR rtl-optimization/81553 5119 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z) 5120 to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP 5121 is a shift where C1 has different mode than the whole shift, use C1's 5122 mode for MULT rather than the shift's mode. 5123 5124 PR target/82848 5125 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold 5126 builtins not enabled in the currently selected ISA. 5127 51282017-11-24 Jackson Woodruff <jackson.woodruff@arm.com> 5129 5130 PR tree-optimization/71026 5131 * tree-ssa-math-opts (is_division_by_square, is_square_of): New. 5132 (insert_reciprocals): Change to insert reciprocals before a division 5133 by a square and to insert the square of a reciprocal. 5134 (execute_cse_reciprocals_1): Change to consider division by a square. 5135 (register_division_in): Add importance parameter. 5136 51372017-11-24 Richard Biener <rguenther@suse.de> 5138 5139 PR tree-optimization/82402 5140 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly 5141 set SSA_NAME_OCCURS_IN_ABNORMAL_PHI. 5142 51432017-11-24 Marc Glisse <marc.glisse@inria.fr> 5144 5145 * match.pd (0-ptr): New transformation. 5146 51472017-11-24 Jan Hubicka <hubicka@ucw.cz> 5148 5149 PR bootstrap/83015 5150 * ipa-inline.c (inline_small_functions): Set current badnes correctly 5151 when skipping checking. 5152 51532017-11-24 Richard Biener <rguenther@suse.de> 5154 5155 PR tree-optimization/83128 5156 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs. 5157 (vn_reference_lookup_3): Likewise. 5158 51592017-11-24 Jakub Jelinek <jakub@redhat.com> 5160 5161 PR sanitizer/83014 5162 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer 5163 instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling 5164 tree_to_uhwi twice. 5165 5166 * tree-object-size.c (pass_through_call): Use gimple_call_return_flags 5167 ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED, 5168 check for the latter with gimple_call_builtin_p. Do not handle 5169 BUILT_IN_STPNCPY_CHK which is not a pass through call. 5170 51712017-11-24 Christophe Lyon <christophe.lyon@linaro.org> 5172 5173 * config/arm/arm_neon.h: Fix pragma GCC push_options before 5174 vdot_u32. 5175 51762017-11-23 Julia Koval <julia.koval@intel.com> 5177 5178 * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8, 5179 _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8, 5180 _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16, 5181 _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16, 5182 _mm512_maskz_expandloadu_epi16): New intrinsics. 5183 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8, 5184 _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8, 5185 _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16, 5186 _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16, 5187 _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16, 5188 _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16, 5189 _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8, 5190 _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8, 5191 _mm256_maskz_expandloadu_epi8): New intrinsics. 5192 * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI, 5193 V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI, 5194 V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI, 5195 V8HI_FTYPE_PCV8HI_V8HI_UQI): New types. 5196 * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types. 5197 * config/i386/sse.md (VI248_VLBW): New iterator. 5198 (expand<mode>_mask, expand<mode>_maskz): New patterns. 5199 52002017-11-23 Julia Koval <julia.koval@intel.com> 5201 5202 * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers. 5203 * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8, 5204 _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8, 5205 _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16, 5206 _mm512_mask_compressstoreu_epi16): New. 5207 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8, 5208 _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16, 5209 _mm_mask_compress_epi16, _mm_maskz_compress_epi16, 5210 _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16, 5211 _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16, 5212 _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8, 5213 _mm256_mask_compressstoreu_epi8): New. 5214 * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI, 5215 VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI, 5216 VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI, 5217 VOID_FTYPE_PV8HI_V8HI_UQI): New types. 5218 * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask, 5219 __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask, 5220 __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask, 5221 __builtin_ia32_compresshi128_mask, 5222 __builtin_ia32_compressstoreuqi512_mask, 5223 __builtin_ia32_compressstoreuhi512_mask, 5224 __builtin_ia32_compressstoreuqi256_mask, 5225 __builtin_ia32_compressstoreuqi128_mask, 5226 __builtin_ia32_compressstoreuhi256_mask, 5227 __builtin_ia32_compressstoreuhi128_mask): New builtins. 5228 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args 5229 array for flags2. 5230 (ix86_expand_special_args_builtin): Handle new types. 5231 (s4fma_expand): Handle new builtin array. 5232 * config/i386/immintrin.h: Include new headers. 5233 * config/i386/sse.md (VI12_AVX512VLBW): New iterator. 5234 (compress<mode>_mask, compressstore<mode>_mask): New patterns. 5235 52362017-11-23 Jakub Jelinek <jakub@redhat.com> 5237 5238 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting 5239 fixes. Declare temp and g variables at the top in order to avoid 5240 {} in most of the cases. 5241 52422017-11-23 Marc Glisse <marc.glisse@inria.fr> 5243 5244 * match.pd (ptr-0): New transformation. 5245 52462017-11-23 Charles Baylis <charles.baylis@linaro.org> 5247 5248 * config/arm/arm-protos.h (enum arm_addr_mode_op): New. 5249 (struct addr_mode_cost_table): New. 5250 (struct tune_params): Add field addr_mode_costs. 5251 * config/arm/arm.c (generic_addr_mode_costs): New. 5252 (arm_slowmul_tune): Initialise addr_mode_costs field. 5253 (arm_fastmul_tune): Likewise. 5254 (arm_strongarm_tune): Likewise. 5255 (arm_xscale_tune): Likewise. 5256 (arm_9e_tune): Likewise. 5257 (arm_marvell_pj4_tune): Likewise. 5258 (arm_v6t2_tune): Likewise. 5259 (arm_cortex_tune): Likewise. 5260 (arm_cortex_a8_tune): Likewise. 5261 (arm_cortex_a7_tune): Likewise. 5262 (arm_cortex_a15_tune): Likewise. 5263 (arm_cortex_a35_tune): Likewise. 5264 (arm_cortex_a53_tune): Likewise. 5265 (arm_cortex_a57_tune): Likewise. 5266 (arm_exynosm1_tune): Likewise. 5267 (arm_xgene1_tune): Likewise. 5268 (arm_cortex_a5_tune): Likewise. 5269 (arm_cortex_a9_tune): Likewise. 5270 (arm_cortex_a12_tune): Likewise. 5271 (arm_cortex_a73_tune): Likewise. 5272 (arm_v7m_tune): Likewise. 5273 (arm_cortex_m7_tune): Likewise. 5274 (arm_v6m_tune): Likewise. 5275 (arm_fa726te_tune): Likewise. 5276 (arm_mem_costs): Use table lookup to calculate cost of addressing mode. 5277 52782017-11-23 Charles Baylis <charles.baylis@linaro.org> 5279 5280 * config/arm/arm.c (arm_mem_costs): New function. 5281 (arm_rtx_costs_internal): Use arm_mem_costs. 5282 52832017-11-23 Mark Wielaard <mark@klomp.org> 5284 5285 * dwarf2out.c (init_sections_and_labels): Use generation to create 5286 unique ranges_section_label and ranges_base_label. Return generation. 5287 (output_rnglists): Add generation argument. Use generation to create 5288 unique ranges labels. 5289 (dwarf2out_finish): Get generation from init_sections_and_labels 5290 and pass generation to output_rnglists. 5291 52922017-11-23 Mike Stump <mikestump@comcast.net> 5293 Eric Botcazou <ebotcazou@adacore.com> 5294 5295 * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand. 5296 * cfgloop.h (struct loop): Add unroll field. 5297 * function.h (struct function): Add has_unroll bitfield. 5298 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind. 5299 (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand. 5300 * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll. 5301 (pass_rtl_unroll_loops::gate): Likewise. 5302 * loop-unroll.c (decide_unrolling): Tweak note message. Skip loops 5303 for which loop->unroll==1. 5304 (decide_unroll_constant_iterations): Use note for consistency and 5305 take loop->unroll into account. Return early if loop->unroll is set. 5306 Fix thinko in existing test. 5307 (decide_unroll_runtime_iterations): Use note for consistency and 5308 take loop->unroll into account. 5309 (decide_unroll_stupid): Likewise. 5310 * lto-streamer-in.c (input_cfg): Read loop->unroll. 5311 * lto-streamer-out.c (output_cfg): Write loop->unroll. 5312 * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>: 5313 New case. 5314 (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise. 5315 (print_loop): Print loop->unroll if set. 5316 * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind. 5317 * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll. 5318 * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>: 5319 New case. 5320 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if 5321 loop->unroll is set and smaller than the trip count. Otherwise bypass 5322 entirely the heuristics if loop->unroll is set. Remove dead note. 5323 Fix off-by-one bug in other note. 5324 (try_peel_loop): Bail out if loop->unroll is set. Fix formatting. 5325 (tree_unroll_loops_completely_1): Force unrolling if loop->unroll 5326 is greater than 1. 5327 (tree_unroll_loops_completely): Make static. 5328 (pass_complete_unroll::execute): Use correct type for variable. 5329 (pass_complete_unrolli::execute): Fix formatting. 5330 * tree.def (ANNOTATE_EXPR): Add 3rd operand. 5331 53322017-11-23 Sergey Shalnov <Sergey.Shalnov@intel.com> 5333 5334 * config/i386/i386.h (TARGET_PREFER_AVX256): Also 5335 enable when TARGET_PREFER_AVX128 is set. 5336 53372017-11-23 Jan Hubicka <hubicka@ucw.cz> 5338 5339 * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of 5340 frequency. 5341 * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies. 5342 (cgraph_edge::maybe_hot_p): Use sreal frequencies. 5343 53442017-11-23 Jan Hubicka <hubicka@ucw.cz> 5345 5346 * ipa-fnsummary.c (record_modified_bb_info): Use sreal 5347 frequencies. Fix estimation of aggregate parameters. 5348 53492017-11-23 Jan Hubicka <hubicka@ucw.cz> 5350 5351 * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile 5352 when inlining. 5353 53542017-11-23 Tom de Vries <tom@codesourcery.com> 5355 5356 * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)". 5357 53582017-11-23 Tom de Vries <tom@codesourcery.com> 5359 5360 * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after 5361 macro. 5362 53632017-11-23 Oleg Endo <olegendo@gcc.gnu.org> 5364 5365 PR target/83111 5366 * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel, 5367 sibcall_value_pcrel_fdpic): Use local variable instead of 5368 operands[3]. 5369 (calli_tbr_rel): Add missing operand 2. 5370 (call_valuei_tbr_rel): Add missing operand 3. 5371 53722017-11-23 Jakub Jelinek <jakub@redhat.com> 5373 5374 PR middle-end/82253 5375 * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and 5376 bitpos/bitsize covering the whole destination, use store_expr only if 5377 the complex mode is the same. Otherwise, use expand_normal and if 5378 it returns CONCAT, subreg each part separately instead of trying to 5379 subreg the whole result. 5380 53812017-11-23 Richard Biener <rguenther@suse.de> 5382 5383 PR tree-optimization/23094 5384 * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we 5385 come here from walking over backedges in the first iteration. 5386 (vn_reference_lookup_3): Skip clobbers that store the same value. 5387 53882017-11-23 Richard Biener <rguenther@suse.de> 5389 5390 PR tree-optimization/81403 5391 * tree-ssa-pre.c (get_representative_for): Add parameter specifying 5392 a block we need a leader relative to. 5393 (phi_translate_1): For nary processing require a leader from 5394 get_representative_for given we run expression simplification 5395 using match-and-simplify. Remove previous fix. 5396 53972017-11-22 Jeff Law <law@redhat.com> 5398 5399 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): 5400 Use new method allocate_value_range rather than accessing the 5401 vrp_value_range_pool data member directly. 5402 * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly 5403 to use extract_range_from_stmt method to avoid need for 5404 extract_range_from_assignment method. 5405 (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete 5406 method rather than setting values_propgated data member directly. 5407 * vr-values.h (class vr_values): Privatize vrp_value_range_pool, 5408 and values propagated data members and extract_range_from_assignment 5409 method. Reorder private data members to conform to standards. 5410 Add new methods set_lattice_propagation_complete and 5411 allocate_value_range. 5412 54132017-11-22 Eric Botcazou <ebotcazou@adacore.com> 5414 5415 PR rtl-optimization/83030 5416 * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry 5417 for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs. 5418 (Insns): Delete entry for REG_CROSSING_JUMP in register notes. 5419 * bb-reorder.c (update_crossing_jump_flags): Do not test whether the 5420 CROSSING_JUMP_P flag is already set before setting it. 5421 * cfgrtl.c (fixup_partition_crossing): Likewise. 5422 * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P 5423 insn as useless. 5424 54252017-11-22 Jakub Jelinek <jakub@redhat.com> 5426 5427 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>: 5428 Handle the case where both arguments are using gen_const_vec_series. 5429 54302017-11-22 David Malcolm <dmalcolm@redhat.com> 5431 5432 PR c++/62170 5433 * pretty-print.c (pp_format): Move quoting implementation to 5434 pp_begin_quote and pp_end_quote. Update pp_format_decoder call 5435 to pass address of "quote" local. 5436 (pp_begin_quote): New function. 5437 (pp_end_quote): New function. 5438 * pretty-print.h (printer_fn): Convert penultimate param from bool 5439 to bool *. 5440 (pp_begin_quote): New decl. 5441 (pp_end_quote): New decl. 5442 * tree-diagnostic.c (default_tree_printer): Convert penultimate 5443 param from bool to bool *. 5444 * tree-diagnostic.h (default_tree_printer): Likewise. 5445 54462017-11-22 Jeff Law <law@redhat.com> 5447 5448 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) 5449 Initialize vr_values. 5450 (evrp_range_analyzer::try_find_new_range): Call methods attached to 5451 vr_values via vr_values class instance rather than delegators. 5452 (evrp_range_analyzer::record_ranges_from_phis): Likewise. 5453 (evrp_range_analyzer::record_ranges_from_stmt): Likewise. 5454 (evrp_range_analyzer::push_value_range): Likewise. 5455 (evrp_range_analyzer::pop_value_range): Likewise. 5456 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove 5457 most delegators. Those remaining are exposed as public interfaces. 5458 Make vr_values a pointer and private. 5459 (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached 5460 vr_values. 5461 (evrp_range_analyzer::get_vr_value): New method. 5462 * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN. 5463 (evrp_folder::evrp_folder): New ctor to initialize vr_values. 5464 (class evrp_dom_walker): Attach evrp_folder class, initialize 5465 it in the ctor. Remove temporary delegators. 5466 (evrp_dom_walker::before_dom_children): Call methods in attached 5467 evrp_range_analyzer class via class instance pointer. Use 5468 free value_range_constant_singleton to remove need for 5469 op_with_constant_singleton_value delegator method. Do not 5470 create a vrp_prop class instance for every call! Narrow 5471 scope of a couple variables. 5472 (evrp_dom_walker::cleanup): Call methods in attached 5473 evrp_range_analyzer class via class instance pointer. 5474 * vr-values.h (class vr_values): Privatize many methods and 5475 data members. 5476 54772017-11-22 Richard Sandiford <richard.sandiford@linaro.org> 5478 5479 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete. 5480 * cfgexpand.c (expand_debug_expr): Remove handling for them. 5481 * expr.c (expand_expr_real_2): Likewise. 5482 * fold-const.c (const_unop): Likewise. 5483 * optabs-tree.c (optab_for_tree_code): Likewise. 5484 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 5485 * tree-inline.c (estimate_operator_cost): Likewise. 5486 * tree-pretty-print.c (dump_generic_node): Likewise. 5487 (op_code_prio): Likewise. 5488 (op_symbol_code): Likewise. 5489 * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define. 5490 (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions. 5491 * internal-fn.c (direct_internal_fn_optab): New function. 5492 (direct_internal_fn_array, direct_internal_fn_supported_p 5493 (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN. 5494 * fold-const-call.c (fold_const_reduction): New function. 5495 (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and 5496 CFN_REDUC_MIN. 5497 * tree-vect-loop.c: Include internal-fn.h. 5498 (reduction_code_for_scalar_code): Rename to... 5499 (reduction_fn_for_scalar_code): ...this and return an internal 5500 function. 5501 (vect_model_reduction_cost): Take an internal_fn rather than 5502 a tree_code. 5503 (vect_create_epilog_for_reduction): Likewise. Build calls rather 5504 than assignments. 5505 (vectorizable_reduction): Use internal functions rather than tree 5506 codes for the reduction operation. Update calls to the functions 5507 above. 5508 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): 5509 Use calls to internal functions rather than REDUC tree codes. 5510 * config/aarch64/aarch64-simd.md: Update comment accordingly. 5511 55122017-11-22 Olivier Hainque <hainque@adacore.com> 5513 5514 * config/vxworks.c (vxworks_override_options): Pick default 5515 dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT. 5516 * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and 5517 DWARF_GNAT_ENCODINGS_DEFAULT. 5518 * config/vxworksae.h: Likewise. 5519 55202017-11-22 Marc Glisse <marc.glisse@inria.fr> 5521 5522 PR tree-optimization/83104 5523 * vr-values.c (simplify_stmt_using_ranges): Check integral argument, 5524 not result. 5525 55262017-11-22 Marek Polacek <polacek@redhat.com> 5527 H.J. Lu <hongjiu.lu@intel.com> 5528 Jason Merrill <jason@redhat.com> 5529 5530 PR c++/60336 5531 PR middle-end/67239 5532 PR target/68355 5533 * calls.c (initialize_argument_information): Call 5534 warn_parameter_passing_abi target hook. 5535 (store_one_arg): Use 0 for empty record size. Don't push 0 size 5536 argument onto stack. 5537 (must_pass_in_stack_var_size_or_pad): Return false for empty types. 5538 * common.opt: Update -fabi-version description. 5539 * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty. 5540 (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of 5541 int_size_in_bytes. 5542 (ix86_is_empty_record): New function. 5543 (ix86_warn_parameter_passing_abi): New function. 5544 (TARGET_EMPTY_RECORD_P): Redefine. 5545 (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine. 5546 * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty. 5547 * doc/tm.texi: Regenerated. 5548 * doc/tm.texi.in (TARGET_EMPTY_RECORD_P, 5549 TARGET_WARN_PARAMETER_PASSING_ABI): Add. 5550 * dwarf2out.c (get_ultimate_context): Move to tree.c. 5551 * explow.c (hard_function_value): Call arg_int_size_in_bytes 5552 instead of int_size_in_bytes. 5553 * expr.c (copy_blkmode_to_reg): Likewise. 5554 * function.c (aggregate_value_p): Return 0 for empty types. 5555 (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi 5556 target hook. 5557 (locate_and_pad_parm): Call arg size_in_bytes instead 5558 size_in_bytes. 5559 * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P. 5560 * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P. 5561 * target.def (empty_record_p, warn_parameter_passing_abi): New target 5562 hooks. 5563 * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook. 5564 (std_gimplify_va_arg_expr): Skip empty records. Call 5565 arg_size_in_bytes instead size_in_bytes. 5566 * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare. 5567 * tree-core.h (tree_type_common): Add empty_flag. 5568 (tree_decl_common): Update comments. 5569 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream 5570 DECL_PADDING_P. 5571 (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. 5572 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream 5573 DECL_PADDING_P. 5574 (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. 5575 * tree.c (default_is_empty_type): New function. 5576 (default_is_empty_record): New function. 5577 (arg_int_size_in_bytes): New function. 5578 (arg_size_in_bytes): New function. 5579 (get_ultimate_context): New function. 5580 * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and 5581 TRANSLATION_UNIT_WARN_EMPTY_P. 5582 (default_is_empty_record, arg_int_size_in_bytes, 5583 arg_size_in_bytes, get_ultimate_context): Declare. 5584 55852017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 5586 5587 * config/arm/arm.c (cmse_clear_registers): New function. 5588 (cmse_nonsecure_call_clear_caller_saved): Replace register clearing 5589 code by call to cmse_clear_registers. 5590 (cmse_nonsecure_entry_clear_before_return): Likewise. 5591 55922017-11-22 Tamar Christina <tamar.christina@arm.com> 5593 5594 * config/arm/arm_neon.h (vdot_u32, vdotq_u32) 5595 (vdot_s32, vdotq_s32): New. 5596 (vdot_lane_u32, vdotq_lane_u32): New. 5597 (vdot_lane_s32, vdotq_lane_s32): New. 5598 5599 56002017-11-22 Richard Sandiford <richard.sandiford@linaro.org> 5601 5602 PR middle-end/82547 5603 * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection 5604 for unsigned values with fewer HWIs than the precision. 5605 (test_overflow): New function. 5606 (wide_int_cc_tests): Call it. 5607 56082017-11-22 Richard Sandiford <richard.sandiford@linaro.org> 5609 5610 * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode 5611 has the same mode class as Pmode. 5612 56132017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 5614 5615 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of 5616 padding_bits_to_clear_ptr. 5617 (cmse_nonsecure_entry_clear_before_return): Likewise. 5618 56192017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 5620 5621 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use 5622 auto_sbitap instead of integer bitfield to control register needing 5623 clearing. 5624 56252017-11-22 Jakub Jelinek <jakub@redhat.com> 5626 5627 PR tree-optimization/83044 5628 * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not 5629 INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests 5630 that need the upper bound. Subtract offset from 5631 get_addr_base_and_unit_offset only if positive and subtract it 5632 before division by eltsize rather than after it. 5633 5634 PR debug/83084 5635 * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset 5636 debug insns if they would contain UNSPEC_VOLATILE or volatile asm. 5637 (dead_debug_insert_temp): Likewise, but also ignore even non-volatile 5638 asm. 5639 5640 PR middle-end/82875 5641 * optabs.c (expand_doubleword_mult, expand_binop): Before calling 5642 expand_binop with *mul_widen_optab, make sure at least one of the 5643 operands doesn't have VOIDmode. 5644 5645 PR debug/83034 5646 * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES. 5647 5648 PR rtl-optimization/82044 5649 PR tree-optimization/82042 5650 * dse.c (record_store): Check for overflow. 5651 (check_mem_read_rtx): Properly check for overflow if width == -1, call 5652 add_wild_read instead of clear_rhs_from_active_local_stores on 5653 overflow and log it into dump_file. 5654 56552017-11-22 Richard Biener <rguenther@suse.de> 5656 5657 * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore 5658 fake edges to exit when looking for a place to insert. 5659 * tree-ssa-pre.c (clear_expression_ids): Inline into callers 5660 and remove. 5661 (insert_into_preds_of_block): Commit edge insertion immediately, 5662 assert that doesn't require new BBs. 5663 (fini_pre): Release expressions. 5664 (pass_pre::execute): Shuffle things around a bit, if the fn 5665 is too large do not compute AVAIL either as this is really the 5666 quadratic bit. 5667 56682017-11-22 Richard Biener <rguenther@suse.de> 5669 5670 PR tree-optimization/83089 5671 * tree-if-conv.c (pass_if_conversion::execute): If anything 5672 changed reset SCEV and free the number of iteration estimates. 5673 56742017-11-21 Martin Sebor <msebor@redhat.com> 5675 5676 PR tree-optimization/82945 5677 * calls.h (warn_nonstring_bound): Remove unused function. 5678 56792017-11-21 Martin Sebor <msebor@redhat.com> 5680 5681 PR tree-optimization/82945 5682 * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg. 5683 * calls.h (maybe_warn_nonstring_arg): Declare new function. 5684 * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New 5685 functions. 5686 (initialize_argument_information): Call maybe_warn_nonstring_arg. 5687 * calls.h (get_attr_nonstring_decl): Declare new function. 5688 * doc/extend.texi (attribute nonstring): Update. 5689 * gimple-fold.c (gimple_fold_builtin_strncpy): Call 5690 get_attr_nonstring_decl and handle it. 5691 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. Improve 5692 detection of nul-termination. 5693 (strlen_to_stridx): Change to a pointer. 5694 (handle_builtin_strlen, handle_builtin_stxncpy): Adjust. 5695 (pass_strlen::execute): Same. 5696 56972017-11-21 Sergey Shalnov <Sergey.Shalnov@intel.com> 5698 5699 * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum 5700 for the new option -mprefer-vector-width=[none|128|256|512]. 5701 * config/i386/i386.c (ix86_target_string): remove old style options 5702 -mprefer-avx256 and make -mprefer-avx128 as alias. 5703 (ix86_option_override_internal): Apply defaults for the 5704 -mprefer-vector-width=[128|256] option. 5705 * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256): 5706 Implement macros to work with -mprefer-vector-width=. 5707 * config/i386/i386.opt: Implemented option 5708 -mprefer-vector-width=[none|128|256|512]. 5709 * doc/invoke.texi: Documentation for 5710 -mprefer-vector-width=[none|128|256|512]. 5711 57122017-11-21 Pat Haugen <pthaugen@us.ibm.com> 5713 5714 * config/rs6000/ppc-asm.h (f50, vs50): Fix values. 5715 57162017-11-21 Jonathan Wakely <jwakely@redhat.com> 5717 5718 * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity. 5719 57202017-11-21 Marc Glisse <marc.glisse@inria.fr> 5721 5722 * doc/generic.texi: Document POINTER_DIFF_EXPR, update 5723 POINTER_PLUS_EXPR. 5724 * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR. 5725 * expr.c (expand_expr_real_2): Likewise. 5726 * fold-const.c (const_binop, fold_addr_of_array_ref_difference, 5727 fold_binary_loc): Likewise. 5728 * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N), 5729 P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y), 5730 (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on 5731 MINUS_EXPR transformations. 5732 * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR. 5733 * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise. 5734 * tree-inline.c (estimate_operator_cost): Likewise. 5735 * tree-pretty-print.c (dump_generic_node, op_code_prio, 5736 op_symbol_code): Likewise. 5737 * tree-vect-stmts.c (vectorizable_operation): Likewise. 5738 * vr-values.c (extract_range_from_binary_expr): Likewise. 5739 * varasm.c (initializer_constant_valid_p_1): Likewise. 5740 * tree.def: New tree code POINTER_DIFF_EXPR. 5741 57422017-11-21 Uros Bizjak <ubizjak@gmail.com> 5743 5744 * config/i386/i386.md (*bswap<mode>2_movbe): Add 5745 integer suffix to movbe mnemonic. 5746 (*bswaphi2_movbe): Ditto. 5747 (bswaphi_lowpart): Merge with *bswaphi_lowpart_1. 5748 57492017-11-21 Jakub Jelinek <jakub@redhat.com> 5750 5751 PR c++/83045 5752 * tree-cfg.c (pass_warn_function_return::execute): Formatting fix. 5753 Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION. 5754 Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION. 5755 57562017-11-21 Martin Liska <mliska@suse.cz> 5757 5758 * tree-inline.c (expand_call_inline): Remove not needed 5759 xstrdup_for_dump. 5760 57612017-11-21 James Cowgill <James.Cowgill@imgtec.com> 5762 Jakub Jelinek <jakub@redhat.com> 5763 5764 PR target/82880 5765 * config/mips/frame-header-opt.c (mips_register_frame_header_opt): 5766 Remove static keyword from f variable. 5767 57682017-11-21 Jakub Jelinek <jakub@redhat.com> 5769 5770 PR tree-optimization/83086 5771 * gimple-ssa-store-merging.c 5772 (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr 5773 rather than n.base_addr. 5774 57752017-11-21 Martin Liska <mliska@suse.cz> 5776 5777 PR rtl-optimization/82044 5778 PR tree-optimization/82042 5779 * dse.c (check_mem_read_rtx): Check for overflow. 5780 57812017-11-21 Aldy Hernandez <aldyh@redhat.com> 5782 5783 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix 5784 typo in comment. 5785 57862017-11-21 Claudiu Zissulescu <claziss@synopsys.com> 5787 5788 * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call 5789 and its corresponding call arg location note. 5790 57912017-11-21 Claudiu Zissulescu <claziss@synopsys.com> 5792 Andrew Burgess <andrew.burgess@embecosm.com> 5793 5794 * config/arc/arc-protos.h (arc_compute_frame_size): Delete 5795 declaration. 5796 (arc_return_slot_offset): Likewise. 5797 (arc_eh_return_address_location): New declaration. 5798 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. 5799 (MUST_SAVE_REGISTER): Add exception handler case. 5800 (MUST_SAVE_RETURN_ADDR): Likewise. 5801 (arc_frame_pointer_required): Likewise. 5802 (arc_frame_pointer_needed): New function. 5803 (arc_compute_frame_size): Changed. 5804 (arc_expand_prologue): Likewise. 5805 (arc_expand_epilogue): Likewise. 5806 (arc_initial_elimination_offset): Likewise. 5807 (arc_return_slot_offset): Delete. 5808 (arc_eh_return_address_location): New function. 5809 (arc_builtin_setjmp_frame_value): Likewise. 5810 * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers. 5811 (EH_RETURN_STACKADJ_RTX): Define. 5812 (EH_RETURN_HANDLER_RTX): Likewise. 5813 * config/arc/arc.md (eh_return): Delete. 5814 58152017-11-21 Aldy Hernandez <aldyh@redhat.com> 5816 5817 * print-tree.h (debug_vec_tree): Remove prototype. 5818 * gdbinit.in (pvt): Remove macro. 5819 58202017-11-21 Jakub Jelinek <jakub@redhat.com> 5821 5822 PR tree-optimization/83047 5823 * gimple-ssa-store-merging.c 5824 (imm_store_chain_info::output_merged_store): If the loads with the 5825 same vuse are in different basic blocks, for load_gsi pick a load 5826 location that is dominated by the other loads. 5827 5828 PR c++/83059 5829 * config/i386/i386.c (ix86_memmodel_check): Start 5830 -Winvalid-memory-model diagnostics with lowercase letter. 5831 5832 PR debug/82718 5833 * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily 5834 set in_cold_section_p to the partition containing loc_list->first. 5835 When seeing loc_list->last_before_switch node, update secname and 5836 perform range_across_switch second partition handling only after that. 5837 5838 PR debug/82933 5839 * run-rtl-passes.c: Include debug.h. 5840 (run_rtl_passes): Call debug_hooks->assembly_start. 5841 * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked 5842 multiple times. 5843 5844 PR target/82981 5845 * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of 5846 OPTAB_DIRECT in calls to expand_simple_binop. 5847 58482017-11-20 David Malcolm <dmalcolm@redhat.com> 5849 5850 PR c/81404 5851 * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o. 5852 58532017-11-20 David Malcolm <dmalcolm@redhat.com> 5854 5855 PR c++/72786 5856 * spellcheck.h (best_match::blithely_get_best_candidate): New 5857 accessor. 5858 58592017-11-20 Jakub Jelinek <jakub@redhat.com> 5860 5861 * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics 5862 with lower case letter. 5863 58642017-11-20 Uros Bizjak <ubizjak@gmail.com> 5865 5866 * config/i386/i386.md (bswaphi2): New expander. 5867 (*bswaphi2_movbe): New insn pattern. 5868 (bswaphi -> rorhi pepehole2): New peephole pattern. 5869 58702017-11-20 Jeff Law <law@redhat.com> 5871 5872 * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o. 5873 * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c. 5874 * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c. 5875 * gimple-ssa-evrp.c: Remove bits moved into new files. Include 5876 gimple-ssa-evrp-analyze.h. 5877 5878 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not 5879 set BB_VISITED here. 5880 (evrp_range_analyzer::enter): Set BB_VISITED here instead. 5881 58822017-11-20 Bin Cheng <bin.cheng@arm.com> 5883 5884 * tree-predcom.c: Add general comment on Store-Store chains. 5885 (split_data_refs_to_components): Postpone clearing eliminate_store_p 5886 flag in component. 5887 (get_chain_last_ref_at): Rename into... 5888 (get_chain_last_write_at): ...this. 5889 (get_chain_last_write_before_load): New function. 5890 (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to 5891 CT_STORE_STORE when write reference is added. 5892 (determine_roots_comp): Support load ref in CT_STORE_STORE chains. 5893 (is_inv_store_elimination_chain): Update get_chain_last_write_at call. 5894 (initialize_root_vars_store_elim_1): Ditto. 5895 (initialize_root_vars_store_elim_2): Ditto. Replace rhs once default 5896 definition is created. 5897 (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE 5898 chain by replacing it with dominant stored value. 5899 59002017-11-20 Bin Cheng <bin.cheng@arm.com> 5901 5902 * tree-predcom.c (add_ref_to_chain): Remove check on distance. 5903 59042017-11-20 Marc Glisse <marc.glisse@inria.fr> 5905 5906 * vr-values.c (extract_range_from_binary_expr): Use a full range 5907 for VR_VARYING. 5908 59092017-11-20 Thomas Preud'homme <thomas.preudhomme@arm.com> 5910 5911 * config/arm/arm.md (R4_REGNUM): Define constant. 5912 (nonsecure_call_internal): Remove r4 clobber. 5913 (nonsecure_call_value_internal): Likewise. 5914 * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second 5915 clobber and resequence match_operands. 5916 (nonsecure_call_value_reg_thumb1_v5): Likewise. 5917 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise. 5918 (nonsecure_call_value_reg_thumb2): Likewise. 5919 59202017-11-20 Jakub Jelinek <jakub@redhat.com> 5921 5922 PR tree-optimization/78821 5923 * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up 5924 if base is TARGET_MEM_REF. If base is not MEM_REF, set base_addr 5925 to the address of the base rather than the base itself. 5926 (find_bswap_or_nop_1): Just use pointer comparison for vuse check. 5927 (find_bswap_or_nop_finalize): New function. 5928 (find_bswap_or_nop): Use it. 5929 (bswap_replace): Return a tree rather than bool, change first 5930 argument from gimple * to gimple_stmt_iterator, allow inserting 5931 into an empty sequence, allow ins_stmt to be NULL - then emit 5932 all stmts into gsi. Fix up MEM_REF address gimplification. 5933 (pass_optimize_bswap::execute): Adjust bswap_replace caller. 5934 (struct store_immediate_info): Add N and INS_STMT non-static 5935 data members. 5936 (store_immediate_info::store_immediate_info): Initialize them 5937 from newly added ctor args. 5938 (merged_store_group::apply_stores): Formatting fixes. Sort by 5939 bitpos at the end. 5940 (stmts_may_clobber_ref_p): For stores call also 5941 refs_anti_dependent_p. 5942 (gather_bswap_load_refs): New function. 5943 (imm_store_chain_info::try_coalesce_bswap): New method. 5944 (imm_store_chain_info::coalesce_immediate_stores): Use it. 5945 (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially. 5946 (imm_store_chain_info::output_merged_store): Fail if number of 5947 new estimated stmts is bigger or equal than old. Handle LROTATE_EXPR 5948 and NOP_EXPR rhs_code. 5949 (pass_store_merging::process_store): Compute n and ins_stmt, if 5950 ins_stmt is non-NULL and the store rhs is otherwise invalid, use 5951 LROTATE_EXPR rhs_code. Pass n and ins_stmt to store_immediate_info 5952 ctor. 5953 (pass_store_merging::execute): Calculate dominators. 5954 5955 * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number, 5956 BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP, 5957 CMPXCHG, do_shift_rotate, verify_symbolic_number_p, 5958 init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, 5959 find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap, 5960 class pass_optimize_bswap, bswap_replace, 5961 pass_optimize_bswap::execute): Moved to ... 5962 * gimple-ssa-store-merging.c: ... this file. 5963 Include optabs-tree.h. 5964 (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p, 5965 init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, 5966 find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into 5967 anonymous namespace, remove static keywords. 5968 (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here... 5969 (pass_optimize_bswap::execute): ... rather than here. Formatting fix. 5970 59712017-11-20 Jan Hubicka <hubicka@ucw.cz> 5972 5973 PR bootstrap/83062 5974 * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch. 5975 59762017-11-20 Aldy Hernandez <aldyh@redhat.com> 5977 5978 * vec.h (debug_helper): New function. 5979 (DEFINE_DEBUG_VEC): New macro. 5980 * hash-set.h (debug_helper): New function. 5981 (DEFINE_DEBUG_HASH_SET): New macro. 5982 * cfg.c (debug_slim (edge)): New function. 5983 Call DEFINE_DEBUG_VEC for edges. 5984 Call DEFINE_DEBUG_HASH_SET for edges. 5985 * cfghooks.c (debug_slim (basic_block)): New function. 5986 Call DEFINE_DEBUG_VEC for basic blocks. 5987 Call DEFINE_DEBUG_HASH_SET for basic blocks. 5988 * print-tree.c (debug_slim): New function to handle trees. 5989 Call DEFINE_DEBUG_VEC for trees. 5990 Call DEFINE_DEBUG_HASH_SET for trees. 5991 (debug (vec<tree, va_gc>) &): Remove. 5992 (debug (<vec<tree, va_gc>) *): Remove. 5993 * print-rtl.c (debug_slim): New function to handle const_rtx. 5994 Call DEFINE_DEBUG_VEC for rtx_def. 5995 Call DEFINE_DEBUG_VEC for rtx_insn. 5996 Call DEFINE_DEBUG_HASH_SET for rtx_def. 5997 Call DEFINE_DEBUG_HASH_SET for rtx_insn. 5998 * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove. 5999 (debug (vec<rtx_insn *> *ptr): Remove. 6000 (debug_insn_vector): Remove. 6001 * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree. 6002 60032017-11-20 Tom de Vries <tom@codesourcery.com> 6004 6005 PR rtl-optimization/82020 6006 * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of 6007 IF_THEN_ELSE condition. 6008 60092017-11-19 Jeff Law <law@redhat.com> 6010 6011 * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling 6012 of degenerates resulting from ignoring an edge. 6013 60142017-11-19 Jan Hubicka <hubicka@ucw.cz> 6015 6016 PR ipa/81360 6017 * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized 6018 60192017-11-19 Jan Hubicka <hubicka@ucw.cz> 6020 6021 PR ipa/83001 6022 * profile-count.c (profile_count::to_sreal_scale): Fix return value 6023 for uninitialied counts. 6024 60252017-11-19 Jan Hubicka <hubicka@ucw.cz> 6026 6027 PR ipa/60243 6028 * tree-inline.c (estimate_num_insns): Set to 1 at least. 6029 60302017-11-19 Jan Hubicka <hubicka@ucw.cz> 6031 6032 PR target/82713 6033 * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types. 6034 60352017-11-19 Tom de Vries <tom@codesourcery.com> 6036 6037 * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after 6038 "do while (0)". 6039 60402017-11-19 Tom de Vries <tom@codesourcery.com> 6041 6042 * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after 6043 "do {} while (0)". 6044 60452017-11-19 Tom de Vries <tom@codesourcery.com> 6046 6047 * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after 6048 macro body. 6049 60502017-11-19 Tom de Vries <tom@codesourcery.com> 6051 6052 * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after 6053 "do {} while (0)". 6054 * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same. 6055 60562017-11-19 Tom de Vries <tom@codesourcery.com> 6057 6058 * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after 6059 "do {} while (0)". 6060 * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing 6061 semicolon after MCORE_EXPORT_NAME call. 6062 60632017-11-19 Tom de Vries <tom@codesourcery.com> 6064 6065 PR target/82961 6066 * vmsdbgout.c (vmsdbgout_early_finish): New function. 6067 (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish. 6068 60692017-11-18 Jan Hubicka <hubicka@ucw.cz> 6070 6071 * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. 6072 (cgraph_edge::clone): Cleanup updating of profile. 6073 * ipa-cp.c (update_profiling_info): Likewise. 6074 * ipa-inline-transform.c (inline_transform): Likewise. 6075 * ipa-inline.c (inline_small_functions): Add missing space to dump. 6076 * ipa-split.c (execute_split_functions): Do not split when function 6077 is cold. 6078 * predict.c (estimate_bb_frequencies): Cleanup updating of profile. 6079 * profile-count.c (profile_count::dump): Add global0. 6080 (profile_count::to_cgraph_frequency): Do not ICE when entry is 6081 undefined. 6082 (profile_count::to_sreal_scale): Likewise. 6083 (profile_count::adjust_for_ipa_scaling): Fix typo in comment. 6084 (profile_count::combine_with_ipa_count): New function. 6085 * profile-count.h (profile_guessed_global0adjusted): New. 6086 (profile_count::adjusted_zero): New. 6087 (profile_count::global0adjusted): New. 6088 (profile_count::combine_with_ipa_count): New. 6089 * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment; 6090 correct profile of return block of split functions. 6091 (copy_cfg_body): Remove unused profile_count. 6092 (copy_body): Likewise. 6093 (expand_call_inline): Update. 6094 (tree_function_versioning): Update. 6095 60962017-11-18 Aldy Hernandez <aldyh@redhat.com> 6097 6098 * hash-set.h (hash_set::empty): New. 6099 * tree-ssa-threadbackward.h: Delete. 6100 * tree-ssa-threadbackward.c (class thread_jumps): New. 6101 Move max_threaded_paths into class. 6102 (fsm_find_thread_path): Remove arguments that are now in class. 6103 (profitable_jump_thread_path): Rename to... 6104 (thread_jumps::profitable_jump_thread_path): ...this. 6105 (convert_and_register_jump_thread_path): Rename to... 6106 (thread_jumps::convert_and_register_current_path): ...this. 6107 (check_subpath_and_update_thread_path): Rename to... 6108 (thread_jumps::check_subpath_and_update_thread_path): ...this. 6109 (register_jump_thread_path_if_profitable): Rename to... 6110 (thread_jumps::register_jump_thread_path_if_profitable): ...this. 6111 (handle_phi): Rename to... 6112 (thread_jumps::handle_phi): ...this. 6113 (handle_assignment): Rename to... 6114 (thread_jumps::handle_assignment): ...this. 6115 (fsm_find_control_statement_thread_paths): Rename to... 6116 (thread_jumps::fsm_find_control_statement_thread_paths): ...this. 6117 (find_jump_threads_backwards): Rename to... 6118 (thread_jumps::find_jump_threads_backwards): ...this. 6119 Initialize path local data. 6120 (pass_thread_jumps::execute): Call find_jump_threads_backwards 6121 from within thread_jumps class. 6122 (pass_early_thread_jumps::execute): Same. 6123 61242017-11-17 Jan Hubicka <hubicka@ucw.cz> 6125 6126 * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts. 6127 61282017-11-17 Steve Ellcey <sellcey@cavium.com> 6129 6130 * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator 6131 to canonical location. 6132 61332017-11-17 Steve Ellcey <sellcey@cavium.com> 6134 6135 PR target/81356 6136 * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p): 6137 Remove. 6138 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define. 6139 61402017-11-17 H.J. Lu <hongjiu.lu@intel.com> 6141 6142 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use 6143 rcrt1.o%s/grcrt1.o%s for -static-pie. 6144 61452017-11-17 Jan Hubicka <hubicka@ucw.cz> 6146 6147 * i386.c (ix86_multiplication_cost, ix86_division_cost, 6148 ix86_shift_rotate_cost): Break out from ... 6149 (ix86_rtx_costs): ... here. 6150 (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of 6151 vector operations. 6152 61532017-11-17 Jan Hubicka <hubicka@ucw.cz> 6154 6155 * predict.c (determine_unlikely_bbs): Set cgraph node count to 0 6156 when entry block was promoted unlikely. 6157 (estimate_bb_frequencies): Increase frequency scale. 6158 * profile-count.h (profile_count): Export precision info. 6159 61602017-11-17 Jan Hubicka <hubicka@ucw.cz> 6161 6162 * tree-tailcall.c (eliminate_tail_call): Be more careful about not 6163 disturbin profile of entry block. 6164 61652017-11-17 Jan Hubicka <hubicka@ucw.cz> 6166 6167 * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for 6168 roundoff errors. 6169 61702017-11-17 Jan Hubicka <hubicka@ucw.cz> 6171 6172 * ipa-cp.c (update_profiling_info): Handle conversion to local profile. 6173 * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does. 6174 61752017-11-17 Jeff Law <law@redhat.com> 6176 6177 * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted 6178 from evrp_dom_walker class. Various methods moved into new class. 6179 (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class. 6180 (evrp_range_analyzer::enter): New method. 6181 (evrp_range_analyzer::leave): New method. 6182 (evrp_dom_walker): Remove delegators no longer needed by this class. 6183 Replace vr_values data member with evrp_range_analyzer 6184 6185 * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New 6186 method extracted from evrp_dom_walker::before_dom_children. 6187 (evrp_dom_walker::record_ranges_from_stmt): Likewise. 6188 (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise. 6189 6190 * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method. 6191 Add private copy constructor and move assignment operators. 6192 Privatize methods and class data where trivially possible. 6193 (evrp_dom_walker::cleanup): New function, extracted from 6194 execute_early_vrp. Simplify access to class data. 6195 6196 * vr-values.h (get_output_for_vrp): Prototype. 6197 * vr-values.c (get_output_for_vrp): New function extracted from 6198 vrp_visit_assignment_or_call and extract_range_from_stmt. 6199 (vrp_visit_assignment_or_call): Use get_output_for_vrp. Simplify. 6200 62012017-11-17 Luis Machado <luis.machado@linaro.org> 6202 6203 * config/aarch64/aarch64.c 6204 (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1. 6205 (qdf24xx_tunings) <autoprefetcher_model>: Set to 6206 tune_params::AUTOPREFETCHER_WEAK. 6207 62082017-11-17 Tamar Christina <tamar.christina@arm.com> 6209 6210 PR target/82641 6211 * config/arm/arm.c (arm_valid_target_attribute_rec): 6212 Parse "arch=" and "+<ext>". 6213 (arm_valid_target_attribute_tree): Re-init global options. 6214 (arm_option_override): Make non-static. 6215 (arm_options_perform_arch_sanity_checks): Make errors fatal. 6216 * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef. 6217 (__ARM_FEATURE_CRC32): Support undef. 6218 * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma. 6219 * doc/extend.texi (ARM Function Attributes): Add pragma and target. 6220 62212017-11-17 David Malcolm <dmalcolm@redhat.com> 6222 6223 * gdbinit.in (break-on-diagnostic): New command. 6224 62252017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 6226 6227 * config/i386/i386.c (ix86_expand_epilogue): Change simple 6228 return to indirect jump for EH return if control-flow 6229 protection is enabled. Change explicit 'false' argument in 6230 pro_epilogue_adjust_stack with a value of 6231 flag_cf_protection. 6232 * config/i386/i386.md (simple_return_indirect_internal): 6233 Remove SImode restriction to support 64-bit. 6234 62352017-11-17 Segher Boessenkool <segher@kernel.crashing.org> 6236 6237 * combine.c (added_notes_insn): New. 6238 (try_combine): Handle added_notes_insn like added_links_insn. 6239 Rewrite return value code. 6240 (distribute_notes): Set added_notes_insn to the earliest insn we added 6241 a note to. 6242 62432017-11-17 Segher Boessenkool <segher@kernel.crashing.org> 6244 6245 PR rtl-optimization/82621 6246 * combine.c (try_combine): Do not split PARALLELs of two SETs if the 6247 dest of one of those SETs is unused. 6248 62492017-11-17 Richard Biener <rguenther@suse.de> 6250 6251 PR fortran/83017 6252 * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind. 6253 * tree-pretty-print.c (dump_generic_node): Handle 6254 annot_expr_parallel_kind. 6255 * tree-cfg.c (replace_loop_annotate_in_block): Likewise. 6256 * gimplify.c (gimple_boolify): Likewise. 6257 62582017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 6259 6260 * config.gcc (extra_headers): Add cet.h for x86 targets. 6261 * config/i386/cet.h: New file. 6262 * doc/install.texi: Add --enable-cet/--disable-cet. 6263 62642017-11-17 Richard Biener <rguenther@suse.de> 6265 6266 PR tree-optimization/83017 6267 * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread. 6268 (gen_parallel_loop): Properly count iterations. 6269 (parallelize_loops): Handle loop->can_be_parallel independent 6270 of flag_loop_parallelize_all. Make static profitability test match 6271 the runtime one. 6272 * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New. 6273 * invoke.texi (parloops-min-per-thread): Document. 6274 62752017-11-17 Vineet Gupta <vgupta@synopsys.com> 6276 6277 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc 6278 upstreaming review comments. 6279 62802017-11-17 Tamar Christina <tamar.christina@arm.com> 6281 6282 * expr.c (copy_blkmode_to_reg): Fix bitsize for targets 6283 with fast unaligned access. 6284 * doc/sourcebuild.texi (word_mode_no_slow_unalign): New. 6285 62862017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> 6287 6288 * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate 6289 to_clear_arg_regs_bitmap to the same size as to_clear_bitmap. 6290 62912017-11-17 Richard Biener <rguenther@suse.de> 6292 6293 * tree-ssa-pre.c (phi_translate_1): Remove redundant constant 6294 folding of references. 6295 62962017-11-17 Qing Zhao <qing.zhao@oracle.com> 6297 6298 PR middle-end/78809 6299 * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling 6300 of replacing call to strncmp with corresponding call to strcmp when 6301 meeting conditions. 6302 63032017-11-17 Sergey Shalnov <Sergey.Shalnov@intel.com> 6304 6305 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning 6306 option prefer-avx256 for skylake-avx512 configuration. 6307 * config/i386/i386.c (ix86_option_override_internal): Ditto. 6308 (get_builtin_code_for_version): Ditto. 6309 63102017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> 6311 Monk Chiang <sh.chiang04@gmail.com> 6312 6313 * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify. 6314 (FIXED_REGISTERS): Reserve more register numbers. 6315 (CALL_USED_REGISTERS): Likewise. 6316 (REG_ALLOC_ORDER): Likewise. 6317 (REG_CLASS_CONTENTS): Likewise. 6318 (REGISTER_NAMES): Likewise. 6319 63202017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> 6321 Kito Cheng <kito.cheng@gmail.com> 6322 6323 * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI 6324 V2SI. 6325 * config/nds32/iterators.md: Add vector mode iterators and attributes. 6326 63272017-11-16 Steven Munroe <munroesj@gcc.gnu.org> 6328 6329 * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct 6330 parameter list for vec_splats. 6331 63322017-11-16 Joseph Myers <joseph@codesourcery.com> 6333 6334 * doc/invoke.texi (-std=c17): Refer to 2018 expected publication 6335 date of C17. 6336 (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases. 6337 63382017-11-16 Thomas Koenig <tkoenig@gcc.gnu.org> 6339 6340 PR bootstrap/82856 6341 * doc/install.texi: Document incompatibility of Perl >=5.6.26 6342 with the required version of automake 1.11.6. 6343 63442017-11-16 Pat Haugen <pthaugen@us.ibm.com> 6345 6346 * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined 6347 for it. 6348 (DU_C2_3_power9): Correct reservation combinations. 6349 (FP_DIV_power9, VEC_DIV_power9): New. 6350 (power9-alu): Split out rotate/shift... 6351 (power9-rot): ...to here, correct dispatch resource. 6352 (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch 6353 resource. 6354 (power9-fp): Correct latency. 6355 (power9-sdiv): Add div/sqrt resource. 6356 (power9-ddiv): Correct latency, add div/sqrt resource. 6357 (power9-sqrt, power9-dsqrt): Add div/sqrt resource. 6358 (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt 6359 resource. 6360 (power9-qpdiv, power9-qpmul): Adjust resource usage. 6361 63622017-11-15 Michael Meissner <meissner@linux.vnet.ibm.com> 6363 6364 * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the 6365 switch statement mapping KF built-ins to TF built-ins if we don't 6366 have the proper ISA 3.0 assembler support. 6367 63682017-11-16 Jan Hubicka <hubicka@ucw.cz> 6369 6370 * tree-emutls.c (lower_emutls_data): Remove unused bb_freq. 6371 (lower_emutls_function_body): Do not compute it. 6372 63732017-11-16 Jan Hubicka <hubicka@ucw.cz> 6374 6375 * ipa-split.c (split_bb_info): Turn time to sreal. 6376 (split_point): Likewise. 6377 (dump_split_point): Likewise. 6378 (fine_split_points): Likewise. 6379 (execute_split_functions): Only zero split_bbs; turn time to sreals. 6380 63812017-11-16 Jan Hubicka <hubicka@ucw.cz> 6382 6383 * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently 6384 in sreal. 6385 63862017-11-16 Jan Hubicka <hubicka@ucw.cz> 6387 6388 * predict.c (combine_predictions_for_bb): Preserve zero predicted 6389 edges. 6390 (expensive_function_p): Remove useless assert. 6391 (determine_unlikely_bbs): Propagate also forward; determine cold blocks 6392 63932017-11-16 Martin Sebor <msebor@redhat.com> 6394 6395 PR tree-optimization/82588 6396 PR tree-optimization/82583 6397 * tree-vrp.c (check_array_ref): Handle flexible array members, 6398 string literals, and inner indices. 6399 (search_for_addr_array): Add detail to diagnostics. 6400 64012017-11-16 Nathan Sidwell <nathan@acm.org> 6402 6403 PR c++/82836 6404 PR c++/82737 6405 * tree.h (COPY_DECL_RTL): Rename parms for clarity. 6406 (SET_DECL_ASSEMBLER_NAME): Forward to 6407 overwrite_decl_assembler_name. 6408 (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity. 6409 (overwrite_decl_assembler_name): Declare. 6410 * tree.c (overwrite_decl_assembler_name): New. 6411 * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare. 6412 (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default. 6413 (LANG_HOOKS_INITIALIZER): Add it. 6414 * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name. 6415 * langhooks.c (lhd_set_decl_assembler_name): Use 6416 SET_DECL_ASSEMBLER_NAME. 6417 (lhd_overwrite_decl_assembler_name): Default implementation. 6418 64192017-11-16 Wilco Dijkstra <wdijkstr@arm.com> 6420 Jackson Woodruff <jackson.woodruff@arm.com> 6421 6422 PR tree-optimization/71026 6423 * match.pd: Canonicalize constant multiplies in division. 6424 64252017-11-16 Wilco Dijkstra <wdijkstr@arm.com> 6426 6427 * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry. 6428 * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE): 6429 Remove OPT_fomit_frame_pointer entry. 6430 * common/config/arc/arc-common.c: Likewise. 6431 * common/config/arm/arm-common.c: Likewise. 6432 * common/config/avr/avr-common.c: Likewise. 6433 * common/config/c6x/c6x-common.c: Likewise. 6434 * common/config/cr16/cr16-common.c: Likewise. 6435 * common/config/cris/cris-common.c: Likewise. 6436 * common/config/epiphany/epiphany-common.c: Likewise. 6437 * common/config/fr30/fr30-common.c: Likewise. 6438 * common/config/frv/frv-common.c: Likewise. 6439 * common/config/ia64/ia64-common.c: Likewise. 6440 * common/config/iq2000/iq2000-common.c: Likewise. 6441 * common/config/lm32/lm32-common.c: Likewise. 6442 * common/config/m32r/m32r-common.c: Likewise. 6443 * common/config/mcore/mcore-common.c: Likewise. 6444 * common/config/microblaze/microblaze-common.c: Likewise. 6445 * common/config/mips/mips-common.c: Likewise. 6446 * common/config/mmix/mmix-common.c: Likewise. 6447 * common/config/mn10300/mn10300-common.c: Likewise. 6448 * common/config/nios2/nios2-common.c: Likewise. 6449 * common/config/pa/pa-common.c: Likewise. 6450 * common/config/pdp11/pdp11-common.c: Likewise. 6451 * common/config/powerpcspe/powerpcspe-common.c: Likewise. 6452 * common/config/riscv/riscv-common.c: Likewise. 6453 * common/config/rs6000/rs6000-common.c: Likewise. 6454 * common/config/rx/rx-common.c: Likewise. 6455 * common/config/s390/s390-common.c: Likewise. 6456 * common/config/sh/sh-common.c: Likewise. 6457 * common/config/sparc/sparc-common.c: Likewise. 6458 * common/config/tilegx/tilegx-common.c: Likewise. 6459 * common/config/tilepro/tilepro-common.c: Likewise. 6460 * common/config/v850/v850-common.c: Likewise. 6461 * common/config/visium/visium-common.c: Likewise. 6462 * common/config/xstormy16/xstormy16-common.c: Likewise. 6463 * common/config/xtensa/xtensa-common.c: Likewise. 6464 * invoke.texi (-fomit-frame-pointer): Update documentation. 6465 64662017-11-16 Jan Hubicka <hubicka@ucw.cz> 6467 6468 * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq. 6469 64702017-11-14 Jan Hubicka <hubicka@ucw.cz> 6471 6472 * cfg.c (scale_bbs_frequencies_int, 6473 cale_bbs_frequencies_gcov_type): Remove. 6474 * cfg.h (scale_bbs_frequencies_int, 6475 cale_bbs_frequencies_gcov_type): Remove. 6476 64772017-11-14 Jan Hubicka <hubicka@ucw.cz> 6478 6479 * tree-ssa-loop-manip.c 6480 (scale_dominated_blocks_in_loop): Update to profile counts. 6481 (tree_transform_and_unroll_loop): Likewise. 6482 64832017-11-14 Jan Hubicka <hubicka@ucw.cz> 6484 6485 * tree-vect-loop-manip.c (vect_do_peeling): Do not use 6486 scale_bbs_frequencies_int. 6487 64882017-11-14 Jan Hubicka <hubicka@ucw.cz> 6489 6490 * final.c (compute_alignments): Use counts rather than frequencies. 6491 64922017-11-14 Jan Hubicka <hubicka@ucw.cz> 6493 6494 * cfgloopanal.c: Include sreal.h 6495 (average_num_loop_insns): Use counts and sreal for accounting. 6496 64972017-11-14 Jan Hubicka <hubicka@ucw.cz> 6498 6499 * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile 6500 manipulation. 6501 65022017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> 6503 Kito Cheng <kito.cheng@gmail.com> 6504 6505 * config/nds32/constraints.md: Provide more constraints. 6506 * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES, 6507 REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to 6508 support constraints usage. 6509 65102017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> 6511 6512 * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove. 6513 65142017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> 6515 Kito Cheng <kito.cheng@gmail.com> 6516 6517 * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string. 6518 * config/nds32/nds32.opt: Refine the layout. 6519 * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2, 6520 TARGET_EXT_STRING): Support new options. 6521 * config/nds32/nds32.h: Likewise. 6522 * config/nds32/nds32.md: Likewise. 6523 * config/nds32/nds32-predicates.c: Likewise. 6524 * config/nds32/constraints.md: Likewise. 6525 * common/config/nds32/nds32-common.c: Likewise. 6526 65272017-11-16 Julia Koval <julia.koval@intel.com> 6528 6529 PR target/82983 6530 * config/i386/gfniintrin.h: Add sse check. 6531 * config/i386/i386.c (ix86_expand_builtin): Fix gfni check. 6532 65332017-11-16 Julia Koval <julia.koval@intel.com> 6534 6535 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET, 6536 OPTION_MASK_ISA_AVX512VBMI2_UNSET): New. 6537 (ix86_handle_option): Handle -mavx512vbmi2. 6538 * config/i386/cpuid.h: Add bit_AVX512VBMI2. 6539 * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. 6540 * config/i386/i386-c.c (__AVX512VBMI2__): New. 6541 * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2. 6542 (ix86_valid_target_attribute_inner_p): Ditto. 6543 * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New. 6544 * config/i386/i386.opt (mavx512vbmi2): New option. 6545 * doc/invoke.texi: Add new option. 6546 65472017-11-16 Julia Koval <julia.koval@intel.com> 6548 6549 * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8, 6550 _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8, 6551 _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8, 6552 _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8, 6553 _mm512_gf2p8mul_epi8): New intrinsics. 6554 * config/i386/i386-builtin-types.def 6555 (V64QI_FTYPE_V64QI_V64QI): New type. 6556 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi, 6557 __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi, 6558 __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi, 6559 __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins. 6560 * config/i386/sse.md (vgf2p8mulb_*): New pattern. 6561 * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. 6562 65632017-11-15 Uros Bizjak <ubizjak@gmail.com> 6564 6565 * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop 6566 explicitly as a stream of bytes. 6567 65682017-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 6569 6570 * config/rs6000/altivec.h (vec_xst_be): New #define. 6571 * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename 6572 and externalize from *altivec_vperm_<mode>_internal. 6573 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro 6574 instantiation. 6575 (XL_BE_V8HI): Likewise. 6576 (XL_BE_V4SI): Likewise. 6577 (XL_BE_V4SI): Likewise. 6578 (XL_BE_V2DI): Likewise. 6579 (XL_BE_V4SF): Likewise. 6580 (XL_BE_V2DF): Likewise. 6581 (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation. 6582 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct 6583 all array entries with these keys: VSX_BUILTIN_VEC_XL, 6584 VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST. Add entries for key 6585 VSX_BUILTIN_VEC_XST_BE. 6586 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove. 6587 (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_* 6588 built-ins. 6589 (altivec_init_builtins): Replace conditional calls to def_builtin 6590 for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and 6591 __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR 6592 with unconditional calls. Remove calls to def_builtin for 6593 __builtin_vsx_le_be_<mode>. Add a call to def_builtin for 6594 __builtin_vec_xst_be. 6595 * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn 6596 to define_expand, and add alternate RTL generation for P8. 6597 (*vsx_ld_elemrev_v8hi_internal): New define_insn based on 6598 vsx_ld_elemrev_v8hi. 6599 (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and 6600 add alternate RTL generation for P8. 6601 (*vsx_ld_elemrev_v16qi_internal): New define_insn based on 6602 vsx_ld_elemrev_v16qi. 6603 (vsx_st_elemrev_v8hi): Convert define_insn 6604 to define_expand, and add alternate RTL generation for P8. 6605 (*vsx_st_elemrev_v8hi_internal): New define_insn based on 6606 vsx_st_elemrev_v8hi. 6607 (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and 6608 add alternate RTL generation for P8. 6609 (*vsx_st_elemrev_v16qi_internal): New define_insn based on 6610 vsx_st_elemrev_v16qi. 6611 66122017-11-15 H.J. Lu <hongjiu.lu@intel.com> 6613 6614 PR target/82990 6615 * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove 6616 TARGET_AVX512ER check. 6617 (ix86_option_override_internal): Set MASK_VZEROUPPER if 6618 neither -mzeroupper nor -mno-zeroupper is used and 6619 TARGET_EMIT_VZEROUPPER is set. 6620 * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New. 6621 * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. 6622 66232017-11-15 Will Schmidt <will_schmidt@vnet.ibm.com> 6624 6625 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for 6626 folding of vector compares. 6627 (fold_build_vec_cmp): New helper function. 6628 (fold_compare_helper): New helper function. 6629 (builtin_function_type): Add compare builtins to the list of functions 6630 having unsigned arguments. Cosmetic updates to comment indentation. 6631 * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify 6632 the not+eq combination. 6633 66342017-11-15 Bin Cheng <bin.cheng@arm.com> 6635 6636 PR tree-optimization/82726 6637 PR tree-optimization/70754 6638 * tree-predcom.c (order_drefs_by_pos): New function. 6639 (combine_chains): Move code setting has_max_use_after to... 6640 (try_combine_chains): ...here. New parameter. Sort combined chains 6641 according to position information. 6642 (tree_predictive_commoning_loop): Update call to above function. 6643 (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New. 6644 66452017-11-15 Bin Cheng <bin.cheng@arm.com> 6646 6647 PR tree-optimization/82726 6648 Revert 6649 2017-01-23 Bin Cheng <bin.cheng@arm.com> 6650 6651 PR tree-optimization/70754 6652 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. 6653 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert 6654 combined stmt before it if not NULL. 6655 (combine_chains): Process refs reversely and compute dominance point 6656 for root ref. 6657 6658 Revert 6659 2017-02-23 Bin Cheng <bin.cheng@arm.com> 6660 6661 PR tree-optimization/79663 6662 * tree-predcom.c (combine_chains): Process refs in reverse order 6663 only for ZERO length chains, and add explaining comment. 6664 66652017-11-15 Tamar Christina <tamar.christina@arm.com> 6666 6667 * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New 6668 * config/arm/arm-tables.opt (armv8.3-a): Regenerated. 6669 * doc/invoke.texi (ARM Options): Add armv8.3-a. 6670 66712017-11-15 Tamar Christina <tamar.christina@arm.com> 6672 6673 * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2. 6674 66752017-11-15 Martin Liska <mliska@suse.cz> 6676 6677 * tree-cfg.c (pass_warn_function_return::execute): 6678 Compare warn_return_type for greater than zero. 6679 66802017-11-15 Sebastian Peryt <sebastian.peryt@intel.com> 6681 6682 PR target/82941 6683 PR target/82942 6684 * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition 6685 to return true on Xeon and not on Xeon Phi. 6686 (ix86_check_avx256_register): Changed to ... 6687 (ix86_check_avx_upper_register): ... this. Add extra check for 6688 VALID_AVX512F_REG_OR_XI_MODE. 6689 (ix86_avx_u128_mode_needed): Changed 6690 ix86_check_avx256_register to ix86_check_avx_upper_register. 6691 (ix86_check_avx256_stores): Changed to ... 6692 (ix86_check_avx_upper_stores): ... this. Changed 6693 ix86_check_avx256_register to ix86_check_avx_upper_register. 6694 (ix86_avx_u128_mode_after): Changed 6695 avx_reg256_found to avx_upper_reg_found. Changed 6696 ix86_check_avx256_stores to ix86_check_avx_upper_stores. 6697 (ix86_avx_u128_mode_entry): Changed 6698 ix86_check_avx256_register to ix86_check_avx_upper_register. 6699 (ix86_avx_u128_mode_exit): Ditto. 6700 * config/i386/i386.h: (host_detect_local_cpu): New define. 6701 67022017-11-15 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> 6703 6704 * config/arm/xgene1.md (xgene1): Split into automatons 6705 xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd. 6706 (xgene1_f_load): Adjust reservations and/or types. 6707 (xgene1_f_store): Likewise. 6708 (xgene1_load_pair): Likewise. 6709 (xgene1_store_pair): Likewise. 6710 (xgene1_fp_load1): Likewise. 6711 (xgene1_load1): Likewise. 6712 (xgene1_store1): Likewise. 6713 (xgene1_move): Likewise. 6714 (xgene1_alu): Likewise. 6715 (xgene1_simd): Likewise. 6716 (xgene1_bfm): Likewise. 6717 (xgene1_neon_load1): Likewise. 6718 (xgene1_neon_store1): Likewise. 6719 (xgene1_neon_logic): Likewise. 6720 (xgene1_neon_st1): Likewise. 6721 (xgene1_neon_ld1r): Likewise. 6722 (xgene1_alu_cond): Added. 6723 (xgene1_shift_reg): Likwise. 6724 (xgene1_bfx): Likewise. 6725 (xgene1_mul): Split into xgene1_mul32, xgene1_mul64. 6726 67272017-11-15 Jakub Jelinek <jakub@redhat.com> 6728 6729 PR target/82981 6730 * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and 6731 ssa-iterators.h. 6732 (can_widen_mult_without_libcall): New function. 6733 (expand_mul_overflow): If only checking unsigned mul overflow, 6734 not result, and can do efficiently MULT_HIGHPART_EXPR, emit that. 6735 Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless 6736 no other way works. Add MULT_HIGHPART_EXPR + MULT_EXPR support. 6737 (expand_DIVMOD): Formatting fix. 6738 * expmed.h (expand_mult): Add NO_LIBCALL argument. 6739 * expmed.c (expand_mult): Likewise. Use OPTAB_WIDEN rather 6740 than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail. 6741 6742 PR tree-optimization/82977 6743 * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy 6744 constructed temporary to strlen_to_stridx.put. 6745 67462017-11-15 Martin Liska <mliska@suse.cz> 6747 6748 * configure.ac: Remove -fkeep-inline-functions from coverage_flags. 6749 * configure: Regenerate. 6750 67512017-11-15 Martin Liska <mliska@suse.cz> 6752 6753 PR target/82927 6754 * config/sh/sh-mem.cc: Use proper probability for 6755 REG_BR_PROB_NOTE. 6756 67572017-11-14 Jeff Law <law@redhat.com> 6758 6759 * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing 6760 the red zone for stack_clash_protection_final_dynamic_probe targets 6761 when the total dynamic stack size is zero bytes. 6762 6763 * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread 6764 blocks is post order. 6765 67662017-11-15 Alexandre Oliva <aoliva@redhat.com> 6767 6768 * dumpfile.h (TDF_COMPARE_DEBUG): New. 6769 * final.c (rest_of_clean_state): Set it for the 6770 -fcompare-debug dump. 6771 * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF 6772 class when TDF_COMPARE_DEBUG is set. 6773 6774 * dwarf2out.c (gen_producer_string): Discard 6775 OPT_fcompare_debug. 6776 67772017-11-15 Joseph Myers <joseph@codesourcery.com> 6778 6779 PR c/81156 6780 * doc/extend.texi (Other Builtins): Document __builtin_tgmath. 6781 * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose) 6782 (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2) 6783 (__TGMATH_REAL_2_3): Remove macros. 6784 (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2) 6785 (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using 6786 __builtin_tgmath. 6787 (frexp, ldexp, nexttoward, scalbn, scalbln): Define using 6788 __TGMATH_REAL_2. 6789 (remquo): Define using __TGMATH_REAL_3. 6790 67912017-11-14 Jeff Law <law@redhat.com> 6792 6793 * vr-values.c: New file with contents extracted from tree-vrp.c. 6794 * Makefile.in (OBJS): Add vr-values.o 6795 * tree-vrp.h (set_value_range_to_nonnull): Prototype. 6796 (set_value_range, set_and_canonicalize_value_range): Likewise. 6797 (vrp_bitmap_equal_p, range_is_nonnull): Likewise. 6798 (value_range_constant_singleton, symbolic_range_p): Likewise. 6799 (compare_values, compare_values_warnv, vrp_val_is_min): Likewise. 6800 (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise. 6801 (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise. 6802 (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise. 6803 (find_case_label_range, find_case_label_index): Likewise. 6804 (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise. 6805 (range_int_cst_singleton_p, value_inside_range): Likewise. 6806 (get_single_symbol): Likewise. 6807 (switch_update): Move structure definition here. 6808 (to_remove_edges, to_update_switch_stmts): Provide externs. 6809 * tree-vrp.c: Move all methods for vr-values class to vr-values.c 6810 (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible. 6811 (vrp_val_is_min, set_value_range): Likewise. 6812 (set_and_canonicalize_value_range, copy_value_range): Likewise. 6813 (set_value_range_to_value, set_value_range_to_nonnull): Likewise. 6814 (set_value_range_to_null, vrp_bitmap_equal_p): Likewise. 6815 (range_is_nonnull, range_int_cst_p): Likewwise. 6816 (range_int_cst_singleton_p, symbolic_range_p): Likewise. 6817 (get_single_symbol, operand_less_p): Likewise 6818 (compare_values_warnv, compare_values): Likewise. 6819 (value_inside_range, value_range_constant_singleton): Likewise. 6820 (zero_nonzero_bitgs_from_vr): Likewise. 6821 (extract_range_from_binary_expr_1): Likewise. 6822 (overflow_comparison_p): Likewise. 6823 (to_remove_edges, to_update_switch_stmts): Likewise. 6824 (find_case_label-index, find_case_label_range): Likewise. 6825 (switch_update, set_value_range_to_nonnegative): Remove. 6826 (set_value_range_to_truthvalue): Likewise. 6827 (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise. 6828 (gimple_stmt_nonzero_p, compare_ranges): Likewise. 6829 (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise. 6830 (find_case_label_ranges, test_for_singularity): Likewise. 6831 (range_fits_type_p, simplify_conversion_using_ranges): LIkewise. 6832 (x_vr_values): Move to its remaining use site. 6833 68342017-11-10 Jeff Law <law@redhat.com> 6835 6836 * vr-values.h (VR_INITIALIZER): Move #define here. 6837 * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c 6838 * Makefile.in (OBJS): Add tree-evrp.o 6839 * tree-vrp.h (assert_info): Move structure definition here. 6840 (set_value_range_to_varying): Prototype. 6841 (vrp_operand_equal_p, range_includes_zero_p): Likewise. 6842 (infer_value_range, register_edge_assert_for): Likewise. 6843 (stmt_interesting_for_vrp): Likewise. 6844 * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c. 6845 (set_value_range_to_varying): No longer static. 6846 (vrp_operand_equal_p, range_includes_zero_p): Likewise. 6847 (infer_value_range, register_edge_assert_for): Likewise. 6848 68492017-11-14 Michael Meissner <meissner@linux.vnet.ibm.com> 6850 6851 * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't 6852 generate the XXBRD instruction. 6853 6854 * config/rs6000/rs6000-c.c (is_float128_p): New helper function. 6855 (rs6000_builtin_type_compatible): Treat _Float128 and long double 6856 as being compatible if -mabi=ieeelongdouble. 6857 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros 6858 to setup float128 built-ins with hardware support. 6859 (BU_FLOAT128_HW_2): Likewise. 6860 (BU_FLOAT128_HW_3): Likewise. 6861 (BU_FLOAT128_HW_VSX_1): Likewise. 6862 (BU_FLOAT128_HW_VSX_2): Likewise. 6863 (scalar_extract_expq): Change float128 built-in functions to 6864 accommodate having both KFmode and TFmode functions. Use the 6865 KFmode variant as the default. 6866 (scalar_extract_sigq): Likewise. 6867 (scalar_test_neg_qp): Likewise. 6868 (scalar_insert_exp_q): Likewise. 6869 (scalar_insert_exp_qp): Likewise. 6870 (scalar_test_data_class_qp): Likewise. 6871 (sqrtf128_round_to_odd): Delete processing the round to odd 6872 built-in functions as special built-in functions, and define them 6873 as float128 built-ins. Use the KFmode variant as the default. 6874 (truncf128_round_to_odd): Likewise. 6875 (addf128_round_to_odd): Likewise. 6876 (subf128_round_to_odd): Likewise. 6877 (mulf128_round_to_odd): Likewise. 6878 (divf128_round_to_odd): Likewise. 6879 (fmaf128_round_to_odd): Likewise. 6880 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add 6881 support for KFmode and TFmode xststdcqp calls. 6882 (rs6000_expand_builtin): If long double is IEEE 128-bit floating 6883 point, switch the built-in handlers for the get/set float128 6884 exponent, get float128 mantissa, float128 test built-ins, and the 6885 float128 round to odd built-in functions. Eliminate creating the 6886 float128 round to odd built-in functions as special built-ins. 6887 (rs6000_init_builtins): Eliminate special creation of the float128 6888 round to odd built-in functions. 6889 * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in 6890 function insns to support both TFmode and KFmode variants. 6891 (xsxsigqp_<mode>): Likewise. 6892 (xsiexpqpf_<mode>): Likewise. 6893 (xsiexpqp_<mode>): Likewise. 6894 (xststdcqp_<mode>): Likewise. 6895 (xststdcnegqp_<mode>): Likewise. 6896 (xststdcqp_<mode>): Likewise. 6897 68982017-11-14 Jan Hubicka <hubicka@ucw.cz> 6899 6900 * tree-ssa-threadupdate.c (compute_path_counts): Remove 6901 unused path_in_freq_ptr parameter. 6902 (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq 6903 69042017-11-14 Jan Hubicka <hubicka@ucw.cz> 6905 6906 * ipa-inline.c (edge_badness): Dump sreal frequency. 6907 (compute_inlined_call_time): Match natural implementaiton ... 6908 * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove 6909 forgotten division by CGRAPH_FREQ_BASE. 6910 69112017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6912 6913 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since 6914 Solaris 11. Update comment. 6915 * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12 6916 renaming. 6917 * config/sol2.h (STARTFILE_SPEC): Likewise. 6918 * configure: Regenerate. 6919 69202017-11-14 Carl Love <cel@us.ibm.com> 6921 6922 * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove 6923 le_ and be_ prefixes to swap* variables. Remove 6924 if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case 6925 statements. 6926 69272017-11-14 Jason Merrill <jason@redhat.com> 6928 6929 Support GTY((cache)) on hash_map. 6930 * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function. 6931 (ggc_cache_remove): Override it instead of ggc_mx. 6932 * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx. 6933 (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx. 6934 * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member. 6935 (simple_cache_map_traits): Override maybe_mx. 6936 * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry. 6937 (hash_map): Friend gt_cleare_cache. 6938 (gt_cleare_cache): New. 6939 * tree.h (tree_cache_traits): New hash_map traits class. 6940 (tree_cache_map): New typedef. 6941 69422017-11-14 Richard Biener <rguenther@suse.de> 6943 6944 * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p 6945 paramter and handling. 6946 (cleanup_control_flow_bb): Likewise. 6947 (cleanup_control_flow_pre): New helper performing a DFS walk 6948 to call cleanup_control_flow_bb in PRE order. 6949 (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb 6950 via cleanup_control_flow_pre. 6951 69522017-11-14 James Greenhalgh <james.greenhalgh@arm.com> 6953 6954 * config/aarch64/aarch64-simd.md 6955 (aarch64_simd_bsl<mode>_internal): Remove DImode. 6956 (*aarch64_simd_bsl<mode>_alt): Likewise. 6957 (aarch64_simd_bsldi_internal): New. 6958 (aarch64_simd_bsldi_alt): Likewise. 6959 69602017-11-13 Jan Hubicka <hubicka@ucw.cz> 6961 6962 * tracer.c (better_p): Do not compare frequencies. 6963 * reg-stack.c (better_edge): Likewise. 6964 * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts 6965 and back. 6966 69672017-11-13 Jan Hubicka <hubicka@ucw.cz> 6968 6969 * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. 6970 * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count. 6971 * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count. 6972 * lto-streamer-in.c (input_function): Use update_max_bb_count. 6973 * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count. 6974 * predict.c (maybe_hot_frequency_p): Inline to ... 6975 (maybe_hot_count_p): ... here; rewrite to counts. 6976 (counts_to_freqs): Rename to ... 6977 (update_max_bb_count): ... this one. 6978 (expensive_function_p): Use counts. 6979 (estimate_bb_frequencies): Update. 6980 (rebuild_frequencies): Update. 6981 * predict.h (counts_to_freqs): Rename to ... 6982 (update_max_bb_count): ... this one. 6983 * profile.c (compute_branch_probabilities): Add debug info 6984 * tree-inline.c (expand_call_inline): Update debug info. 6985 (optimize_inline_calls): Use update_max_bb_count.. 6986 (tree_function_versioning): Use update_max_bb_count.. 6987 * value-prof.c (gimple_value_profile_transformations): 6988 Do not use update_max_bb_count. 6989 69902017-11-13 Jan Hubicka <hubicka@ucw.cz> 6991 6992 * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time): 6993 always use frequencies. 6994 69952017-11-13 Jan Hubicka <hubicka@ucw.cz> 6996 6997 * bb-reorder.c: Remove frequencies from comments. 6998 (better_edge_p): Use profile counts. 6999 (find_traces): Dump profile counts. 7000 (rotate_loop): Use profile counts. 7001 (find_traces_1_round): Likewise. 7002 (connect_better_edge_p): Use counts instead of probabilities for 7003 reverse walk. 7004 (copy_bb_p): Drop early check for non-0 frequency. 7005 (sanitize_hot_paths): Update comments. 7006 70072017-11-13 Jan Hubicka <hubicka@ucw.cz> 7008 7009 * ipa-split.c (struct split_point): Add count. 7010 (consider_split): Do not compute incoming frequency; compute incoming 7011 count and store it to split_point. 7012 (split_function): Set count of the call to split part correctly. 7013 70142017-11-13 Carl Love <cel@us.ibm.com> 7015 7016 * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand. 7017 70182017-11-13 Tom Tromey <tom@tromey.com> 7019 7020 * doc/cpp.texi (Variadic Macros): Document __VA_OPT__. 7021 70222017-11-13 Carl Love <cel@us.ibm.com> 7023 7024 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): 7025 Add support for builtins: 7026 unsigned int vec_first_{,miss}_match_{,or_eos}index, 7027 vector {un,}signed {char,int,short}, 7028 vector {un,}signed {char,int,short}) arguments. 7029 * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX, 7030 VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX): 7031 Add BU_P9V_AV_2 expansions for the builtins. 7032 * config/rs6000/altivec.h (vec_first_match_index, 7033 vec_first_mismatch_index, vec_first_match_or_eos_index, 7034 vec_first_mismatch_or_eos_index): Add #defines for the builtins. 7035 * config/rs6000/rs6000-protos.h (bytes_in_mode): Add 7036 new extern declaration. 7037 * config/rs6000/rs6000.c (bytes_in_mode): Add new function. 7038 * config/rs6000/vsx.md (first_match_index_<mode>, 7039 first_match_or_eos_index_<mode>, first_mismatch_index_<mode>, 7040 first_mismatch_or_eos_index_<mode>): Add define expand. 7041 (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb. 7042 * doc/extend.texi: Update the built-in documenation file for the new 7043 built-in functions. 7044 70452017-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> 7046 7047 * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x 7048 into the min/max operations for _Float<N> and _Float<N>X types. 7049 70502017-11-13 Eric Botcazou <ebotcazou@adacore.com> 7051 7052 PR lto/81351 7053 * dwarf2out.c (do_eh_frame): New static variable. 7054 (dwarf2out_begin_prologue): Set it. 7055 (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame. 7056 70572017-11-13 Jan Hubicka <hubicka@ucw.cz> 7058 7059 * tree-ssa-coalesce.c (coalesce_cost): Fix formating. 7060 7061 * tree-ssa-sink.c (select_best_block): Do not use frequencies. 7062 70632017-11-13 Eric Botcazou <ebotcazou@adacore.com> 7064 7065 PR lto/81351 7066 * debug.h (dwarf2out_do_eh_frame): Declare. 7067 * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate. 7068 (dwarf2out_do_frame): Use it. 7069 (dwarf2out_do_cfi_asm): Likewise. 7070 * dwarf2out.c (dwarf2out_frame_finish): Likewise. 7071 (dwarf2out_assembly_start): Likewise. 7072 (dwarf2out_begin_prologue): Fix comment. 7073 * toplev.c (compile_file): Always call dwarf2out_frame_finish 7074 if the target needs either debug or unwind DWARF2 info. 7075 * lto-opts.c (lto_write_options): Do not save -fexceptions, 7076 -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros, 7077 -ftrapping-math, -ftrapv and -fwrapv. 7078 70792017-11-13 Jan Hubicka <hubicka@ucw.cz> 7080 7081 * cgraph.c (cgraph_edge::sreal_frequency): New function. 7082 * cgraph.h (cgraph_edge::sreal_frequency): Declare. 7083 * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency. 7084 (estimate_edge_size_and_time): Likewise. 7085 (ipa_merge_fn_summary_after_inlining): Likewise. 7086 * ipa-inline.c (cgraph_freq_base_rec): Remove. 7087 (compute_uninlined_call_time): Use sreal_frequency. 7088 (compute_inlined_call_time): Likewise. 7089 (ipa_inline): Do not initialize cgraph_freq_base_rec. 7090 * profile-count.c: Include sreal.h. 7091 (profile_count::to_sreal_scale): New. 7092 * profile-count.h: Forward declare sreal. 7093 (profile_count::to_sreal_scale): Declare. 7094 70952017-11-13 Nathan Sidwell <nathan@acm.org> 7096 7097 * diagnostic.c (maybe_line_and_column): New. 7098 (diagnostic_get_location_text): Use it. 7099 (diagnostic_report_current_module): Likewise. 7100 (test_diagnostic_get_location_text): Add tests. 7101 71022017-11-13 Luis Machado <luis.machado@linaro.org> 7103 7104 * doc/md.texi (Specifying processor pipeline description): Fix 7105 incorrect latency for the div instruction example. 7106 71072017-11-13 Jakub Jelinek <jakub@redhat.com> 7108 7109 PR tree-optimization/78821 7110 * gimple-ssa-store-merging.c (compatible_load_p): Don't require 7111 that bit_not_p is the same. 7112 (imm_store_chain_info::coalesce_immediate_stores): Likewise. 7113 (split_group): Count precisely bit_not_p bits in each statement. 7114 (invert_op): New function. 7115 (imm_store_chain_info::output_merged_store): Use invert_op to 7116 emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some 7117 but not all orig_stores have BIT_NOT_EXPR in the corresponding spots. 7118 71192017-11-13 Martin Liska <mliska@suse.cz> 7120 7121 * gcov.c (struct coverage_info): Remove typedef of coverage_t. 7122 (struct source_info): Likewise. 7123 (add_branch_counts): Likewise. 7124 (add_line_counts): Likewise. 7125 (function_summary): Likewise. 7126 (output_intermediate_line): Likewise. 7127 (generate_results): Likewise. 7128 71292017-11-13 Martin Liska <mliska@suse.cz> 7130 7131 * gcov.c (struct block_info): Remove typedef for block_t. 7132 (struct line_info): Likewise. 7133 (line_info::has_block): Likewise. 7134 (EXIT_BLOCK): Likewise. 7135 (unblock): Likewise. 7136 (circuit): Likewise. 7137 (get_cycles_count): Likewise. 7138 (process_file): Likewise. 7139 (read_graph_file): Likewise. 7140 (solve_flow_graph): Likewise. 7141 (find_exception_blocks): Likewise. 7142 (add_line_counts): Likewise. 7143 (accumulate_line_info): Likewise. 7144 (output_line_details): Likewise. 7145 71462017-11-13 Martin Liska <mliska@suse.cz> 7147 7148 * gcov.c (struct arc_info): Remove typedef for arc_t. 7149 (struct line_info): Likewise. 7150 (add_branch_counts): Likewise. 7151 (output_branch_count): Likewise. 7152 (function_info::~function_info): Likewise. 7153 (circuit): Likewise. 7154 (output_intermediate_line): Likewise. 7155 (read_graph_file): Likewise. 7156 (solve_flow_graph): Likewise. 7157 (find_exception_blocks): Likewise. 7158 (add_line_counts): Likewise. 7159 (accumulate_line_info): Likewise. 7160 (output_line_details): Likewise. 7161 (output_function_details): Likewise. 7162 71632017-11-13 Martin Liska <mliska@suse.cz> 7164 7165 * gcov.c (struct function_info): Remove typedef for function_t. 7166 (struct source_info): Likewise. 7167 (source_info::get_functions_at_location): Likewise. 7168 (solve_flow_graph): Likewise. 7169 (find_exception_blocks): Likewise. 7170 (add_line_counts): Likewise. 7171 (output_intermediate_file): Likewise. 7172 (process_file): Likewise. 7173 (generate_results): Likewise. 7174 (release_structures): Likewise. 7175 (read_graph_file): Likewise. 7176 (read_count_file): Likewise. 7177 (accumulate_line_counts): Likewise. 7178 (output_lines): Likewise. 7179 71802017-11-13 Martin Liska <mliska@suse.cz> 7181 7182 * gcov.c (function_info::function_info): Remove num_counts 7183 and add vector<gcov_type>. 7184 (function_info::~function_info): Use the vector. 7185 (process_file): Likewise. 7186 (read_graph_file): Likewise. 7187 (read_count_file): Likewise. 7188 (solve_flow_graph): Likewise. 7189 71902017-11-13 Martin Liska <mliska@suse.cz> 7191 7192 * gcov.c (function_info::is_artificial): New function. 7193 (process_file): Erase all artificial early. 7194 (generate_results): Skip as all artificial are already 7195 removed. 7196 71972017-11-13 Martin Liska <mliska@suse.cz> 7198 7199 * gcov.c (read_graph_file): Store to global vector of functions. 7200 (read_count_file): Iterate the vector. 7201 (process_file): Likewise. 7202 (generate_results): Likewise. 7203 (release_structures): Likewise. 7204 72052017-11-13 Jakub Jelinek <jakub@redhat.com> 7206 7207 PR tree-optimization/82954 7208 * gimple-ssa-store-merging.c 7209 (imm_store_chain_info::coalesce_immediate_stores): If 7210 !infof->ops[N].base_addr, split group if info->ops[N].base_addr. 7211 72122017-11-13 Richard Sandiford <richard.sandiford@linaro.org> 7213 7214 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): 7215 Upddate call to ENDIAN_LANE_N. 7216 (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx. 7217 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. 7218 (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N 7219 and use aarch64_endian_lane_rtx. 7220 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise. 7221 72222017-11-12 Tom de Vries <tom@codesourcery.com> 7223 7224 * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0). 7225 72262017-11-12 Tom de Vries <tom@codesourcery.com> 7227 7228 * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body. 7229 72302017-11-12 Tom de Vries <tom@codesourcery.com> 7231 7232 * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro 7233 body. 7234 * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same. 7235 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same. 7236 * defaults.h (ASM_OUTPUT_LABELREF): Same. 7237 72382017-11-11 Martin Sebor <msebor@redhat.com> 7239 7240 PR c/81117 7241 * doc/extend.texi (attribute nonstring): Remove spurious argument. 7242 7243 PR bootstrap/82948 7244 * prefic.c (translate_name): Replace strncpy with memcpy to 7245 avoid -Wstringop-truncation. 7246 72472017-11-10 Jan Hubicka <hubicka@ucw.cz> 7248 7249 * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum. 7250 72512017-11-10 Jan Hubicka <hubicka@ucw.cz> 7252 7253 * predict.c (maybe_hot_frequency_p): Do not use cfun. 7254 72552017-11-10 Jan Hubicka <hubicka@ucw.cz> 7256 7257 * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile 7258 merging. 7259 72602017-11-10 Michael Meissner <meissner@linux.vnet.ibm.com> 7261 7262 * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems, 7263 enable generating XXBRH if the value is in a vector register. 7264 (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the 7265 value is in a vector register. 7266 (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do 7267 register to register bswap64's instead of doing the GPR sequence 7268 used on previous machines. 7269 (bswapdi2_xxbrd): New insn. 7270 (bswapdi2_reg): Disallow on ISA 3.0. 7271 (register to register bswap64 splitter): Do not split the insn on 7272 ISA 3.0 systems that use XXBRD. 7273 72742017-11-10 Martin Sebor <msebor@redhat.com> 7275 7276 PR c/81117 7277 * config/darwin-c.c (framework_construct_pathname): Replace strncpy 7278 with memcpy. 7279 (find_subframework_file): Same. 7280 72812017-11-10 Jan Hubicka <hubicka@ucw.cz> 7282 7283 * auto-profile.c (afdo_indirect_call): Drop frequency. 7284 * cgraph.c (symbol_table::create_edge): Drop frequency argument. 7285 (cgraph_node::create_edge): Drop frequency argument. 7286 (cgraph_node::create_indirect_edge): Drop frequency argument. 7287 (cgraph_edge::make_speculative): Drop frequency arguments. 7288 (cgraph_edge::resolve_speculation): Do not update frequencies 7289 (cgraph_edge::dump_edge_flags): Do not dump frequency. 7290 (cgraph_node::dump): Check consistency in IPA mode. 7291 (cgraph_edge::maybe_hot_p): Use IPA counter. 7292 (cgraph_edge::verify_count_and_frequency): Rename to ... 7293 (cgraph_edge::verify_count): ... this one; drop frequency checking. 7294 (cgraph_node::verify_node): Update. 7295 * cgraph.h (struct cgraph_edge): Drop frequency. 7296 (cgraph_edge::frequency): New function. 7297 * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass 7298 frequencies. 7299 (cgraph_edge::rebuild_edges): Likewise. 7300 * cgraphclones.c (cgraph_edge::clone): Scale only counts. 7301 (duplicate_thunk_for_node): Do not pass frequency. 7302 (cgraph_node::create_clone): Scale only counts. 7303 (cgraph_node::create_virtual_clone): Do not pass frequency. 7304 (cgraph_node::create_edge_including_clones): Do not pass frequency. 7305 (cgraph_node::create_version_clone): Do not pass frequency. 7306 * cgraphunit.c (cgraph_node::analyze): Do not pass frequency. 7307 (cgraph_node::expand_thunk): Do not pass frequency. 7308 (cgraph_node::create_wrapper): Do not pass frequency. 7309 * gimple-iterator.c (update_call_edge_frequencies): Do not pass 7310 frequency. 7311 * gimple-streamer-in.c (input_bb): Scale only IPA counts. 7312 * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency. 7313 * ipa-cp.c (ipcp_lattice::print): Use frequency function. 7314 (gather_caller_stats): Use frequency function. 7315 (ipcp_cloning_candidate_p): Use frequency function. 7316 (ipcp_propagate_stage): Use frequency function. 7317 (get_info_about_necessary_edges): Use frequency function. 7318 (update_profiling_info): Update only IPA profile. 7319 (update_specialized_profile): Use frequency functoin. 7320 (perhaps_add_new_callers): Update only IPA profile. 7321 * ipa-devirt.c (ipa_devirt): Use IPA profile. 7322 * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency. 7323 (dump_ipa_call_summary): Use frequency function. 7324 (estimate_edge_size_and_time): Use frequency function. 7325 (ipa_merge_fn_summary_after_inlining): Use frequency function. 7326 * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile. 7327 * ipa-inline-transform.c (update_noncloned_frequencies): Rename to .. 7328 (update_noncloned_counts): ... ths one; scale counts only. 7329 (clone_inlined_nodes): Do not scale frequency. 7330 (inline_call): Do not pass frequency. 7331 * ipa-inline.c (compute_uninlined_call_time): Use IPA profile. 7332 (compute_inlined_call_time): Use IPA profile. 7333 (want_inline_small_function_p): Use IPA profile. 7334 (want_inline_self_recursive_call_p): Use IPA profile. 7335 (edge_badness): Use IPA profile. 7336 (lookup_recursive_calls): Use IPA profile. 7337 (recursive_inlining): Do not pass frequency. 7338 (resolve_noninline_speculation): Do not update frequency. 7339 (inline_small_functions): Collect max of IPA profile. 7340 (dump_overall_stats): Dump IPA porfile. 7341 (dump_inline_stats): Dump IPA porfile. 7342 (ipa_inline): Collect IPA stats. 7343 * ipa-inline.h (clone_inlined_nodes): Update prototype. 7344 * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function. 7345 (ipa_propagate_frequency): Use frequency function. 7346 (ipa_profile): Cleanup. 7347 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency 7348 * ipa-utils.c (ipa_merge_profiles): Merge all profiles. 7349 * lto-cgraph.c (lto_output_edge): Do not stream frequency. 7350 (input_node): Do not stream frequency. 7351 (input_edge): Do not stream frequency. 7352 (merge_profile_summaries): Scale only IPA profiles. 7353 * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency. 7354 * predict.c (drop_profile): Do not recompute frequency. 7355 * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency. 7356 (ipa_tm_insert_gettmclone_call): Do not pass frequency. 7357 * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed. 7358 * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency. 7359 * tree-emutls.c (gen_emutls_addr): Do not pass frequency. 7360 * tree-inline.c (copy_bb): Do not scale frequency. 7361 (expand_call_inline): Do not scale frequency. 7362 (tree_function_versioning): Do not scale frequency. 7363 * ubsan.c (ubsan_create_edge): Do not pass frequency. 7364 73652017-11-10 Julia Koval <julia.koval@intel.com> 7366 7367 * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8) 7368 (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8) 7369 (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8) 7370 (_mm256_maskz_gf2p8affine_epi64_epi8) 7371 (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8) 7372 (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics. 7373 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi) 7374 (__builtin_ia32_vgf2p8affineqb_v32qi) 7375 (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins. 7376 * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern. 7377 73782017-11-10 Tamar Christina <tamar.christina@arm.com> 7379 7380 PR target/82641 7381 * config/arm/arm.c 7382 (arm_option_override): Refactor. 7383 (arm_option_reconfigure_globals): New. 7384 (arm_options_perform_arch_sanity_checks): New. 7385 * config/arm/arm-protos.h (arm_option_reconfigure_globals): 7386 New prototype. 7387 (arm_options_perform_arch_sanity_checks): Likewise 7388 73892017-11-10 Pat Haugen <pthaugen@us.ibm.com> 7390 7391 * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage. 7392 (power9-qpmul): New. 7393 * rs6000/rs6000.md ("type" attr): Add qmul. 7394 (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, 7395 *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd, 7396 *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul. 7397 73982017-11-10 Martin Sebor <msebor@redhat.com> 7399 7400 PR c/81117 7401 * builtins.c (compute_objsize): Handle arrays that 7402 compute_builtin_object_size likes to fail for. Make extern. 7403 * builtins.h (compute_objsize): Declare. 7404 (check_strncpy_sizes): New function. 7405 (expand_builtin_strncpy): Call check_strncpy_sizes. 7406 * gimple-fold.c (gimple_fold_builtin_strncpy): Implement 7407 -Wstringop-truncation. 7408 (gimple_fold_builtin_strncat): Same. 7409 * gimple.c (gimple_build_call_from_tree): Set call location. 7410 * tree-ssa-strlen.c (strlen_to_stridx): New global variable. 7411 (maybe_diag_bound_equal_length, is_strlen_related_p): New functions. 7412 (handle_builtin_stxncpy, handle_builtin_strncat): Same. 7413 (handle_builtin_strlen): Use strlen_to_stridx. 7414 (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and 7415 stpncpy. 7416 Use strlen_to_stridx. 7417 (pass_strlen::execute): Release strlen_to_stridx. 7418 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement. 7419 (-Wstringop-truncation): Document new option. 7420 74212017-11-10 Martin Liska <mliska@suse.cz> 7422 7423 PR gcov-profile/82702 7424 * gcov.c (main): Handle intermediate files in a different 7425 way. 7426 (get_gcov_intermediate_filename): New function. 7427 (output_gcov_file): Remove support of intermediate files. 7428 (generate_results): Allocate intermediate file. 7429 (release_structures): Clean-up properly fn_end. 7430 (output_intermediate_file): Start iterating with line 1. 7431 74322017-11-10 Jakub Jelinek <jakub@redhat.com> 7433 7434 PR tree-optimization/82929 7435 * gimple-ssa-store-merging.c (struct store_immediate_info): Add 7436 ops_swapped_p non-static data member. 7437 (store_immediate_info::store_immediate_info): Clear it. 7438 (imm_store_chain_info::coalesce_immediate_stores): If swapping 7439 ops set ops_swapped_p. 7440 (count_multiple_uses): Handle ops_swapped_p. 7441 74422017-11-10 Martin Liska <mliska@suse.cz> 7443 7444 * coverage.c (coverage_init): Stream information about 7445 support of has_unexecuted_blocks. 7446 * doc/gcov.texi: Document that. 7447 * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool. 7448 * gcov.c (read_graph_file): Likewise. 7449 (output_line_beginning): Fix a small issue with 7450 color output. 7451 74522017-11-10 Bin Cheng <bin.cheng@arm.com> 7453 7454 * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing 7455 reference of trivial component. 7456 74572017-11-10 Jakub Jelinek <jakub@redhat.com> 7458 7459 PR bootstrap/82916 7460 * gimple-ssa-store-merging.c 7461 (pass_store_merging::terminate_all_aliasing_chains): For 7462 gimple_store_p stmts also call refs_output_dependent_p. 7463 7464 PR rtl-optimization/82913 7465 * compare-elim.c (try_merge_compare): Punt if def_insn is not 7466 single set. 7467 74682017-11-09 Jeff Law <law@redhat.com> 7469 7470 * vr-values.h: New file with vr_values class. 7471 * tree-vrp.c: Include vr-values.h 7472 (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static 7473 data objects into the vr_values class. 7474 (vr_value, values_propagated, vr_phi_edge_counts): Likewise. 7475 (get_value_range): Make it a member function within vr_values class. 7476 (set_defs_to_varying, update_value_range, add_equivalence): Likewise. 7477 (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise. 7478 (op_with_constant_singleton_value_range): Likewise. 7479 (extract_range_for_var_from_comparison_expr): Likewise. 7480 (extract_range_from_assert, extract_range_from_ssa_name): Likewise. 7481 (extract_range_from_binary_expr): Likewise. 7482 (extract_range_from_unary_expr): Likewise. 7483 (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise. 7484 (check_for_binary_op_overflow, extract_range_basic): Likewise. 7485 (extract_range_from_assignment, adjust_range_with_scev): Likewise. 7486 (dump_all_value_ranges, get_vr_for_comparison): Likewise. 7487 (compare_name_with_value, compare_names): Likewise. 7488 (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise. 7489 (vrp_evaluate_conditional_warnv_with_ops): Likewise. Remove prototype. 7490 (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise. 7491 (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise. 7492 (extract_range_from_phi_node): Likewise. 7493 (simplify_truth_ops_using_ranges): Likewise. 7494 (simplify_div_or_mod_using_ranges): Likewise. 7495 (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise. 7496 (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise. 7497 (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise. 7498 (simplify_float_conversion_using_ranges): Likewise. 7499 (simplify_internal_call_using_ranges): Likewise. 7500 (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise. 7501 (vrp_visit_assignment_or_call): Likewise. Smuggle class instance 7502 poitner via x_vr_values for calls into gimple folder. 7503 (vrp_initialize_lattice): Make this the vr_values ctor. 7504 (vrp_free_lattice): Make this the vr_values dtor. 7505 (set_vr_value): New function. 7506 (class vrp_prop): Add vr_values data member. Add various member 7507 functions as well as member functions that delegate to vr_values. 7508 (check_array_ref): Make a member function within vrp_prop class. 7509 (search_for_addr_array, vrp_initialize): Likewise. 7510 (vrp_finalize): Likewise. Revamp to avoid direct access to 7511 vr_value, values_propagated, etc. 7512 (check_array_bounds): Extract vrp_prop class instance pointer from 7513 walk info structure. Use it to call member functions. 7514 (check_all_array_refs): Make a member function within vrp_prop class. 7515 Smuggle class instance pointer via walk info structure. 7516 (x_vr_values): New local static. 7517 (vrp_valueize): Use x_vr_values to get class instance. 7518 (vr_valueize_1): Likewise. 7519 (class vrp_folder): Add vr_values data member. Add various member 7520 functions as well as member functions that delegate to vr_values. 7521 (fold_predicate_in): Make a mber fucntion within vrp_folder class. 7522 (simplify_stmt_for_jump_threading): Extract smuggled vr_values 7523 class instance from vr_values. Use it to call member functions. 7524 (vrp_dom_walker): Add vr_values data member. 7525 (vrp_dom_walker::after_dom_children): Smuggle vr_values class 7526 instance via x_vr_values. 7527 (identify_jump_threads): Accept vr_values as argument. Store 7528 it into the walker structure. 7529 (evrp_dom_walker): Add vr_values class data member. Add various 7530 delegators. 7531 (evrp_dom_walker::try_find_new_range): Use vr_values data 7532 member to access the memory allocator. 7533 (evrp_dom_walker::before_dom_children): Store vr_values class 7534 instance into the vrp_folder class. 7535 (evrp_dom_walker::push_value_range): Rework to avoid direct 7536 access to num_vr_values and vr_value. 7537 (evrp_dom_walker::pop_value_range): Likewise. 7538 (execute_early_vrp): Remove call to vrp_initialize_lattice. 7539 Use vr_values to get to dump_all_value_ranges member function. 7540 Remove call to vrp_free_lattice. Call vrp_initialize, vrp_finalize, 7541 and simplify_cond_using_ranges_2 via vrp_prop class instance. 7542 Pass vr_values class instance down to identify_jump_threads. 7543 Remove call to vrp_free_lattice. 7544 (debug_all_value_ranges): Remove. 7545 7546 * tree-vrp.c (vrp_prop): Move class to earlier point in the file. 7547 (vrp_folder): Likewise. 7548 7549 * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack. 7550 Get it from the existing bitmap instead. 7551 (vrp_intersect_ranges_1): Likewise. 7552 75532017-11-09 Jakub Jelinek <jakub@redhat.com> 7554 7555 * gimple-ssa-store-merging.c (struct store_immediate_info): Add 7556 bit_not_p field. 7557 (store_immediate_info::store_immediate_info): Add bitnotp argument, 7558 set bit_not_p to it. 7559 (imm_store_chain_info::coalesce_immediate_stores): Break group 7560 if bit_not_p is different. 7561 (count_multiple_uses, split_group, 7562 imm_store_chain_info::output_merged_store): Handle info->bit_not_p. 7563 (handled_load): Avoid multiple chained BIT_NOT_EXPRs. 7564 (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR 7565 result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it 7566 to store_immediate_info ctor. 7567 75682017-11-09 Jim Wilson <jimw@sifive.com> 7569 7570 * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support. 7571 (scan_prog_file): Likewise. 7572 75732017-11-09 Jan Hubicka <hubicka@ucw.cz> 7574 7575 * bb-reorder.c (max_entry_frequency): Remove. 7576 (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p, 7577 connect_traces, push_to_next_round_p): Remove prototypes. 7578 (find_traces_1_round): Use counts only. 7579 (push_to_next_round_p): Likewise. 7580 (find_traces): Likewise. 7581 (rotate_loop): Likewise. 7582 (find_traces_1_round): Likewise. 7583 (connect_traces): Likewise. 7584 (edge_order): Likewise. 7585 75862017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com> 7587 7588 * config/arm/arm.c (output_return_instruction): Add comments to 7589 indicate requirement for cmse_nonsecure_entry return to account 7590 for the size of clearing instruction output here. 7591 (thumb_exit): Likewise. 7592 * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for 7593 return in hardfloat mode. 7594 75952017-11-09 Segher Boessenkool <segher@kernel.crashing.org> 7596 7597 * config/rs6000/rs6000.c (machine_function): Add a bool, 7598 "toc_is_wrapped_separately". 7599 (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT 7600 if it wasn't explicitly set or unset, we are optimizing for speed, and 7601 doing separate shrink-wrapping. 7602 (rs6000_get_separate_components): Enable the TOC component if 7603 saving the TOC register in the prologue. 7604 (rs6000_components_for_bb): Handle the TOC component. 7605 (rs6000_emit_prologue_components): Store the TOC register where needed. 7606 (rs6000_set_handled_components): Mark TOC as handled, if handled. 7607 (rs6000_emit_prologue): Don't save the TOC if that is already done. 7608 76092017-11-09 Martin Jambor <mjambor@suse.cz> 7610 7611 * ipa-param-manipulation.c: New file. 7612 * ipa-param-manipulation.h: Likewise. 7613 * Makefile.in (OBJS): Add ipa-param-manipulation.o. 7614 (PLUGIN_HEADERS): Addded ipa-param-manipulation.h 7615 * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h. 7616 (ipa_parm_adjustment): Likewise. 7617 (ipa_parm_adjustment_vec): Likewise. 7618 (ipa_get_vector_of_formal_parms): Moved declaration to 7619 ipa-param-manipulation.h. 7620 (ipa_get_vector_of_formal_parm_types): Likewise. 7621 (ipa_modify_formal_parameters): Likewise. 7622 (ipa_modify_call_arguments): Likewise. 7623 (ipa_combine_adjustments): Likewise. 7624 (ipa_dump_param_adjustments): Likewise. 7625 (ipa_modify_expr): Likewise. 7626 (ipa_get_adjustment_candidate): Likewise. 7627 * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to 7628 ipa-param-manipulation.c. 7629 (ipa_get_vector_of_formal_parm_types): Likewise. 7630 (ipa_modify_formal_parameters): Likewise. 7631 (ipa_modify_call_arguments): Likewise. 7632 (ipa_modify_expr): Likewise. 7633 (get_ssa_base_param): Likewise. 7634 (ipa_get_adjustment_candidate): Likewise. 7635 (index_in_adjustments_multiple_times_p): Likewise. 7636 (ipa_combine_adjustments): Likewise. 7637 (ipa_dump_param_adjustments): Likewise. 7638 * tree-sra.c: Also include ipa-param-manipulation.h 7639 * omp-simd-clone.c: Include ipa-param-manipulation.h instead of 7640 ipa-param.h. 7641 76422017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7643 Alan Hayward <alan.hayward@arm.com> 7644 David Sherwood <david.sherwood@arm.com> 7645 7646 * doc/sourcebuild.texi (vect_masked_store): Document. 7647 76482017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7649 Alan Hayward <alan.hayward@arm.com> 7650 David Sherwood <david.sherwood@arm.com> 7651 7652 * doc/sourcebuild.texi (vect_align_stack_vars): Document. 7653 76542017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7655 Alan Hayward <alan.hayward@arm.com> 7656 David Sherwood <david.sherwood@arm.com> 7657 7658 * doc/sourcebuild.texi (vect_variable_length): Document. 7659 76602017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7661 Alan Hayward <alan.hayward@arm.com> 7662 David Sherwood <david.sherwood@arm.com> 7663 7664 * doc/sourcebuild.texi (vect_unaligned_possible): Document. 7665 76662017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7667 Alan Hayward <alan.hayward@arm.com> 7668 David Sherwood <david.sherwood@arm.com> 7669 7670 * doc/sourcebuild.texi (vect_element_align_preferred): Document. 7671 76722017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7673 Alan Hayward <alan.hayward@arm.com> 7674 David Sherwood <david.sherwood@arm.com> 7675 7676 * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document 7677 previously undocumented selectors. 7678 (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document. 7679 76802017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7681 7682 * doc/rtl.texi (const_vector): Say that elements can be 7683 const_wide_ints too. 7684 * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare. 7685 * emit-rtl.c (valid_for_const_vec_duplicate_p): New function. 7686 (gen_vec_duplicate): Use it instead of CONSTANT_P. 7687 * optabs.c (expand_vector_broadcast): Likewise. 7688 76892017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7690 Alan Hayward <alan.hayward@arm.com> 7691 David Sherwood <david.sherwood@arm.com> 7692 7693 * tree-ssa-loop-ivopts.c (get_address_cost): Try using a 7694 scaled index even if the unscaled address was invalid. 7695 Don't increase the complexity of using a scale in that case. 7696 76972017-11-09 Richard Sandiford <richard.sandiford@linaro.org> 7698 Alan Hayward <alan.hayward@arm.com> 7699 David Sherwood <david.sherwood@arm.com> 7700 7701 * doc/rtl.texi: Rewrite the subreg rules so that they partition 7702 the inner register into REGMODE_NATURAL_SIZE bytes rather than 7703 UNITS_PER_WORD bytes. 7704 * emit-rtl.c (validate_subreg): Divide subregs into blocks 7705 based on REGMODE_NATURAL_SIZE of the inner mode. 7706 (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and 7707 !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter. 7708 * expmed.c (lowpart_bit_field_p): Divide the value up into 7709 chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD. 7710 * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test 7711 whether something is likely to occupy more than one register. 7712 77132017-11-09 Jan Hubicka <hubicka@ucw.cz> 7714 7715 PR ipa/82879 7716 * ipa-inline-transform.c (update_noncloned_frequencies): Use 7717 profile_count::adjust_for_ipa_scaling. 7718 * tree-inline.c (copy_bb, copy_cfg_body): Likewise. 7719 * profile-count.c (profile_count::adjust_for_ipa_scaling): New member 7720 function. 7721 * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare. 7722 77232017-11-09 Jakub Jelinek <jakub@redhat.com> 7724 7725 * gimple-ssa-store-merging.c (count_multiple_uses): New function. 7726 (split_group): Add total_orig and total_new arguments, estimate the 7727 number of statements related to the store group without store merging 7728 and with store merging. 7729 (imm_store_chain_info::output_merged_store): Adjust split_group 7730 callers, punt if estimated number of statements with store merging 7731 is not smaller than estimated number of statements without it. 7732 Formatting fix. 7733 (handled_load): Remove has_single_use checks. 7734 (pass_store_merging::process_store): Likewise. 7735 77362017-11-09 Richard Biener <rguenther@suse.de> 7737 7738 PR tree-optimization/82902 7739 * tree-ssa-phiprop.c (propagate_with_phi): Test proper type. 7740 77412017-11-09 Martin Liska <mliska@suse.cz> 7742 7743 PR target/82863 7744 * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to 7745 uninitialized. 7746 77472017-11-09 Martin Liska <mliska@suse.cz> 7748 7749 PR tree-optimization/82669 7750 * sbitmap.h (bmp_iter_set_init): Remove non needed check. 7751 77522017-11-09 Martin Liska <mliska@suse.cz> 7753 7754 PR gcov-profile/48463 7755 * coverage.c (coverage_begin_function): Output also end locus 7756 of a function and information whether the function is 7757 artificial. 7758 * gcov-dump.c (tag_function): Parse and print the information. 7759 * gcov.c (INCLUDE_MAP): Add include. 7760 (INCLUDE_SET): Likewise. 7761 (struct line_info): Move earlier in the source file because 7762 of vector<line_info> in function_info structure. 7763 (line_info::line_info): Likewise. 7764 (line_info::has_block): Likewise. 7765 (struct source_info): Add new member index. 7766 (source_info::get_functions_at_location): New function. 7767 (function_info::group_line_p): New function. 7768 (output_intermediate_line): New function. 7769 (output_intermediate_file): Use the mentioned function. 7770 (struct function_start): New. 7771 (struct function_start_pair_hash): Likewise. 7772 (process_file): Add code that identifies group functions. 7773 Assign lines either to global or function scope. 7774 (generate_results): Skip artificial functions. 7775 (find_source): Assign index for each source file. 7776 (read_graph_file): Read new flag artificial and end_line. 7777 (add_line_counts): Assign it either to global of function scope. 7778 (accumulate_line_counts): Isolate core of the function to 7779 accumulate_line_info and call it for both function and global 7780 scope lines. 7781 (accumulate_line_info): New function. 7782 (output_line_beginning): Fix GNU coding style. 7783 (print_source_line): New function. 7784 (output_line_details): Likewise. 7785 (output_function_details): Likewise. 7786 (output_lines): Iterate both source (global) scope and function 7787 scope. 7788 (struct function_line_start_cmp): New class. 7789 * doc/gcov.texi: Reflect changes in documentation. 7790 77912017-11-09 Jakub Jelinek <jakub@redhat.com> 7792 7793 PR debug/82837 7794 * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT. 7795 (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...))) 7796 and similarly for not instead of neg. 7797 77982017-11-08 Andi Kleen <ak@linux.intel.com> 7799 7800 * config/i386/i386.opt: Add -mforce-indirect-call. 7801 * config/i386/predicates.md: Check for flag_force_indirect_call. 7802 * doc/invoke.texi: Document -mforce-indirect-call 7803 78042017-11-08 Kito Cheng <kito.cheng@gmail.com> 7805 7806 * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p): 7807 New extern. 7808 (MOVE_RATIO): Use riscv_slow_unaligned_access_p. 7809 config/riscv/riscv.c (predict.h): New include. 7810 (riscv_slow_unaligned_access_p): No longer static. 7811 (riscv_block_move_straight): Add require. 7812 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. 7813 78142017-11-08 Jakub Jelinek <jakub@redhat.com> 7815 7816 PR target/82855 7817 * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>, 7818 <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use 7819 nonimmediate_operand predicate for operand 1 instead of 7820 register_operand. 7821 78222017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7823 7824 * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>): 7825 New pattern. 7826 * config/aarch64/constraints.md (Uml): New constraint. 7827 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New 7828 predicate. 7829 78302017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7831 7832 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge 7833 of two vec_duplicates into a vec_concat. 7834 78352017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7836 7837 * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): 7838 Simplify vec_merge of vec_duplicate and vec_concat. 7839 * config/aarch64/constraints.md (Utq): New constraint. 7840 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New 7841 define_insn. 7842 78432017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7844 7845 * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): 7846 Simplify vec_merge of vec_duplicate and const_vector. 7847 * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero): 7848 New predicate. 7849 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC 7850 mode iterator. Update predicate on operand 1 to 7851 handle non-const_vec constants. Delete constraints. 7852 (*aarch64_combinez_be<mode>): Likewise for operand 2. 7853 78542017-11-08 Jakub Jelinek <jakub@redhat.com> 7855 7856 PR tree-optimization/78821 7857 * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p 7858 data member. 7859 (store_operand_info::store_operand_info): Initialize it to false. 7860 (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use 7861 ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each 7862 store in the group, and if chain_info is non-NULL, to ignore altogether 7863 that chain. 7864 (compatible_load_p): Fail if bit_not_p does not match. 7865 (imm_store_chain_info::output_merged_store): Handle bit_not_p loads. 7866 (handled_load): Fill in bit_not_p. Handle BIT_NOT_EXPR. 7867 (pass_store_merging::process_store): Adjust 7868 terminate_all_aliasing_chains calls to pass NULL in all current spots, 7869 call terminate_all_aliasing_chains newly when adding a store into 7870 a chain with non-NULL chain_info. 7871 78722017-11-08 Wilco Dijkstra <wdijkstr@arm.com> 7873 7874 * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic. 7875 78762017-11-08 Wilco Dijkstra <wdijkstr@arm.com> 7877 7878 * config/aarch64/aarch64.c (aarch64_frame_pointer_required) 7879 Remove. 7880 (aarch64_layout_frame): Initialise emit_frame_chain. 7881 (aarch64_can_eliminate): Remove omit leaf frame pointer code. 7882 (TARGET_FRAME_POINTER_REQUIRED): Remove define. 7883 78842017-11-08 Martin Liska <mliska@suse.cz> 7885 7886 * gimplify.c (expand_FALLTHROUGH_r): Simplify usage 7887 of gimple_call_internal_p. 7888 78892017-11-07 Tom de Vries <tom@codesourcery.com> 7890 7891 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)". 7892 78932017-11-07 Tom de Vries <tom@codesourcery.com> 7894 7895 * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after 7896 "do {} while (0)". 7897 78982017-11-08 Martin Liska <mliska@suse.cz> 7899 7900 PR sanitizer/82792 7901 * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK. 7902 79032017-11-07 Eric Botcazou <ebotcazou@adacore.com> 7904 7905 * gimple-pretty-print.c (dump_profile): Return "" instead of NULL. 7906 79072017-11-07 Jakub Jelinek <jakub@redhat.com> 7908 7909 PR target/82855 7910 * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator. 7911 (*cmp<mode>_ccz_1): New insn with $k alternative. 7912 7913 PR target/82855 7914 * config/i386/i386.c (ix86_swap_binary_operands_p): Treat 7915 RTX_COMM_COMPARE as commutative as well. 7916 (ix86_binary_operator_ok): Formatting fix. 7917 * config/i386/sse.md (*mul<mode>3<mask_name><round_name>, 7918 *<code><mode>3<mask_name><round_saeonly_name>, 7919 *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>, 7920 *<s>mul<mode>3_highpart<mask_name>, 7921 *vec_widen_umult_even_v16si<mask_name>, 7922 *vec_widen_umult_even_v8si<mask_name>, 7923 *vec_widen_umult_even_v4si<mask_name>, 7924 *vec_widen_smult_even_v16si<mask_name>, 7925 *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>, 7926 *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>, 7927 *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>, 7928 *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3, 7929 *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3, 7930 <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3, 7931 *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>, 7932 *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>, 7933 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use 7934 !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of 7935 ix86_binary_operator_ok. Formatting fixes. 7936 (*<plusminus_insn><mode>3<mask_name><round_name>, 7937 *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting 7938 fixes. 7939 79402017-11-07 Segher Boessenkool <segher@kernel.crashing.org> 7941 7942 * config/rs6000/rs6000.md (GPR2): New mode_iterator. 7943 ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for 7944 eq and ne if TARGET_ISEL. 7945 (cmp): New code_iterator. 7946 (UNS, UNSU_, UNSIK): New code_attrs. 7947 (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split. 7948 ("eq<mode>3"): New define_expand, rename the define_insn_and_split 7949 to... 7950 ("eq<mode>3"): ... this. 7951 ("ne<mode>3"): New define_expand, rename the define_insn_and_split 7952 to... 7953 ("ne<mode>3"): ... this. 7954 79552017-11-07 Julia Koval <julia.koval@intel.com> 7956 7957 PR target/82812 7958 * common/config/i386/i386-common.c 7959 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag. 7960 (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags. 7961 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto. 7962 * config/i386/i386.opt: Ditto. 7963 * config/i386/i386.c (ix86_target_string): Ditto. 7964 (ix86_option_override_internal): Ditto. 7965 (ix86_init_mpx_builtins): Move MPX to args2. 7966 (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI. 7967 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi, 7968 __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, 7969 __builtin_ia32_vgf2p8affineinvqb_v32qi, 7970 __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, 7971 __builtin_ia32_vgf2p8affineinvqb_v16qi, 7972 __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array. 7973 79742017-11-07 Uros Bizjak <ubizjak@gmail.com> 7975 7976 PR target/80425 7977 * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r) 7978 and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m). 7979 (zero-extendsidi peephole2): Remove peephole. 7980 79812017-11-07 Eric Botcazou <ebotcazou@adacore.com> 7982 7983 PR c/53037 7984 * stor-layout.c: Include attribs.h. 7985 (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with 7986 explicit lookup of "aligned" attribute. 7987 79882017-11-07 Andrew Waterman <andrew@sifive.com> 7989 7990 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype. 7991 (riscv_expand_block_move): Likewise. 7992 * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi 7993 implementation. 7994 (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define. 7995 (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define. 7996 * config/riscv/riscv.c (riscv_block_move_straight): New function. 7997 (riscv_adjust_block_mem): Likewise. 7998 (riscv_block_move_loop): Likewise. 7999 (riscv_expand_block_move): Likewise. 8000 * config/riscv/riscv.md (movmemsi): New pattern. 8001 80022017-11-07 Michael Clark <michaeljclark@mac.com> 8003 8004 * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define. 8005 (MUSL_DYNAMIC_LINKER): Likewise. 8006 80072017-11-07 Richard Sandiford <richard.sandiford@linaro.org> 8008 8009 * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3) 8010 (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of 8011 nonmmory_operand. 8012 80132017-11-07 Richard Biener <rguenther@suse.de> 8014 8015 * match.pd: Fix build. 8016 80172017-11-07 Wilco Dijkstra <wdijkstr@arm.com> 8018 Jackson Woodruff <jackson.woodruff@arm.com> 8019 8020 PR tree-optimization/71026 8021 * match.pd: Canonicalize negate in division. 8022 80232017-11-07 Sudakshina Das <sudi.das@arm.com> 8024 8025 PR middle-end/80131 8026 * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1. 8027 80282017-11-07 Marc Glisse <marc.glisse@inria.fr> 8029 8030 * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b), 8031 (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations. 8032 80332017-11-07 Marc Glisse <marc.glisse@inria.fr> 8034 8035 * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle 8036 non-scalar integral types. 8037 * match.pd (negate_expr_p): Handle MINUS_EXPR. 8038 (-(A-B), -(~A)): New transformations. 8039 80402017-11-07 Tom de Vries <tom@codesourcery.com> 8041 8042 * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove 8043 semicolon after "do {} while (0)". 8044 * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8045 * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8046 * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8047 * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8048 * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8049 80502017-11-07 Tom de Vries <tom@codesourcery.com> 8051 8052 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon 8053 after "do {} while (0)". 8054 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8055 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8056 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8057 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8058 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 8059 80602017-11-07 Tom de Vries <tom@codesourcery.com> 8061 8062 PR other/82784 8063 * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after 8064 "while {} do (0)". 8065 (arm_rtx_costs_internal): Add missing semicolon after 8066 HANDLE_NARROW_SHIFT_ARITH call. 8067 80682017-11-06 Segher Boessenkool <segher@kernel.crashing.org> 8069 8070 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 8071 disable isel if it was not set explicitly. 8072 80732017-11-06 James Bowman <james.bowman@ftdichip.com> 8074 8075 * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers. 8076 (add_type_attribute) likewise. 8077 80782017-11-06 H.J. Lu <hongjiu.lu@intel.com> 8079 8080 * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference 8081 of struct ix86_frame. 8082 (ix86_initial_elimination_offset): Likewise. 8083 (ix86_expand_split_stack_prologue): Likewise. 8084 80852017-11-06 Marc Glisse <marc.glisse@inria.fr> 8086 8087 * tree-vrp.h (enum value_range_type): Update stale comment. 8088 80892017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8090 Alan Hayward <alan.hayward@arm.com> 8091 David Sherwood <david.sherwood@arm.com> 8092 8093 * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm) 8094 (aarch64_expand_vec_perm_const): Take the number of units too. 8095 * config/aarch64/aarch64.c (aarch64_expand_vec_perm) 8096 (aarch64_expand_vec_perm_const): Likewise. 8097 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>) 8098 (vec_perm<mode>): Update accordingly. 8099 81002017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8101 Alan Hayward <alan.hayward@arm.com> 8102 David Sherwood <david.sherwood@arm.com> 8103 8104 * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half): 8105 Take the number of units too. 8106 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise. 8107 (aarch64_simd_check_vect_par_cnst_half): Update call accordingly, 8108 but check for a vector mode before rather than after the call. 8109 * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) 8110 (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>) 8111 (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>) 8112 (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>) 8113 (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>) 8114 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3) 8115 (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>) 8116 (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>) 8117 (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>) 8118 (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>) 8119 (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>) 8120 (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>) 8121 (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>) 8122 (aarch64_sqdmull2_n<mode>): Update accordingly. 8123 81242017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8125 Alan Hayward <alan.hayward@arm.com> 8126 David Sherwood <david.sherwood@arm.com> 8127 8128 * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take 8129 the number of units too. 8130 * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise. 8131 * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>) 8132 (vec_store_lanesoi<mode>, vec_load_lanesci<mode>) 8133 (vec_store_lanesci<mode>, vec_load_lanesxi<mode>) 8134 (vec_store_lanesxi<mode>): Update accordingly. 8135 81362017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8137 Alan Hayward <alan.hayward@arm.com> 8138 David Sherwood <david.sherwood@arm.com> 8139 8140 * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare. 8141 * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function. 8142 * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number 8143 of units rather than the mode. 8144 * config/aarch64/iterators.md (nunits): New mode attribute. 8145 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): 8146 Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...). 8147 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>) 8148 (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>) 8149 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. 8150 (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise. 8151 (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>) 8152 (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>) 8153 (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise. 8154 (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise. 8155 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. 8156 (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise. 8157 (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise. 8158 (reduc_<maxmin_uns>_scal_<mode>): Likewise. 8159 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. 8160 (*aarch64_get_lane_zero_extendsi<mode>): Likewise. 8161 (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>) 8162 (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise. 8163 (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>) 8164 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise. 8165 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise. 8166 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise. 8167 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise. 8168 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. 8169 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise. 8170 (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise. 8171 (aarch64_sqdmull2_lane<mode>_internal): Likewise. 8172 (aarch64_sqdmull2_laneq<mode>_internal): Likewise. 8173 (aarch64_vec_load_lanesoi_lane<mode>): Likewise. 8174 (aarch64_vec_store_lanesoi_lane<mode>): Likewise. 8175 (aarch64_vec_load_lanesci_lane<mode>): Likewise. 8176 (aarch64_vec_store_lanesci_lane<mode>): Likewise. 8177 (aarch64_vec_load_lanesxi_lane<mode>): Likewise. 8178 (aarch64_vec_store_lanesxi_lane<mode>): Likewise. 8179 (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N. 8180 (aarch64_simd_vec_setv2di): Likewise. 8181 81822017-11-06 Carl Love <cel@us.ibm.com> 8183 8184 * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 8185 definitions. 8186 (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions. 8187 * config/rs6000/altivec.h (vec_revb): Change the #define from power 9 8188 to power 8. 8189 * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new 8190 extern declaration. 8191 * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function. 8192 * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1): 8193 Add power 8 macro expansions. 8194 (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion. 8195 * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate 8196 power 8 instructions. (VSX_XXBR): Add iterator. 8197 81982017-11-06 Wilco Dijkstra <wdijkstr@arm.com> 8199 8200 * config/arm/arm.md (predicable_short_it): Change default to "no", 8201 improve documentation, remove uses that are identical to the default. 8202 (enabled_for_depr_it): Rename to enabled_for_short_it. 8203 * gcc/config/arm/arm-fixed.md (predicable_short_it): 8204 Remove default uses. 8205 * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise. 8206 * gcc/config/arm/sync.md (predicable_short_it): Likewise. 8207 * gcc/config/arm/thumb2.md (predicable_short_it): Likewise. 8208 * gcc/config/arm/vfp.md (predicable_short_it): Likewise. 8209 82102017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com> 8211 8212 PR target/82748 8213 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete 8214 float128 helper macros, which are no longer used after deleting 8215 the old 'q' built-in functions, and moving the round to odd 8216 built-in functions to being special built-in functions. 8217 (BU_FLOAT128_2): Likewise. 8218 (BU_FLOAT128_1_HW): Likewise. 8219 (BU_FLOAT128_2_HW): Likewise. 8220 (BU_FLOAT128_3_HW): Likewise. 8221 (FABSQ): Delete old 'q' built-in functions. 8222 (COPYSIGNQ): Likewise. 8223 (SQRTF128_ODD): Move round to odd built-in functions to be 8224 special built-in functions, so that we can handle 8225 -mabi=ieeelongdouble. 8226 (TRUNCF128_ODD): Likewise. 8227 (ADDF128_ODD): Likewise. 8228 (SUBF128_ODD): Likewise. 8229 (MULF128_ODD): Likewise. 8230 (DIVF128_ODD): Likewise. 8231 (FMAF128_ODD): Likewise. 8232 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q' 8233 built-in names to 'f128'. 8234 * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the 8235 old 'q' built-in functions, as the machine independent code for 8236 'f128' built-in functions handles this. 8237 (rs6000_expand_builtin): Add expansion for float128 round to odd 8238 functions, keying off on -mabi=ieeelongdouble of whether to use 8239 the KFmode or TFmode variant. 8240 (rs6000_init_builtins): Initialize the _Float128 round to odd 8241 built-in functions. 8242 * doc/extend.texi (PowerPC Built-in Functions): Document the old 8243 _Float128 'q' built-in functions are now mapped into the new 8244 'f128' built-in functions. 8245 82462017-11-06 David Edelsohn <dje.gcc@gmail.com> 8247 8248 * collect2.c (add_lto_object): Compile for OBJECT_COFF. 8249 (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects. 8250 82512017-11-06 David Malcolm <dmalcolm@redhat.com> 8252 8253 PR jit/82826 8254 * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function. 8255 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl. 8256 * toplev.c: Include "ipa-fnsummary.h". 8257 (toplev::finalize): Call ipa_fnsummary_c_finalize. 8258 82592017-11-06 Jakub Jelinek <jakub@redhat.com> 8260 8261 PR tree-optimization/82838 8262 * gimple-ssa-store-merging.c 8263 (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1 8264 on a separate gimple_seq which is then appended to seq. 8265 82662017-11-06 Jeff Law <law@redhat.com> 8267 8268 PR target/82788 8269 * config/i386/i386.c (PROBE_INTERVAL): Remove. 8270 (get_probe_interval): New functions. 8271 (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval. 8272 (ix86_adjust_stack_and_probe): Likewise. 8273 (output_adjust_stack_and_probe): Likewise. 8274 (ix86_emit_probe_stack_range): Likewise. 8275 (ix86_expand_prologue): Likewise. 8276 82772017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8278 8279 PR tree-optimization/82816 8280 * tree-ssa-math-opts.c (convert_mult_to_widen): Return false 8281 if the modes of the two types are the same. 8282 (convert_plusminus_to_widen): Likewise. 8283 82842017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 8285 8286 * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to 8287 p9_vadu<mode>3. 8288 (usadv16qi): New define_expand. 8289 (usadv8hi): New define_expand. 8290 82912017-11-06 Jan Hubicka <hubicka@ucw.cz> 8292 8293 PR bootstrap/82832 8294 * ipa-inline-transform.c (update_noncloned_frequencies): Always 8295 scale. 8296 (inline_transform): Likewise. 8297 * predict.c (counts_to_freqs): Remove useless conditional. 8298 * profile-count.h (profile_count::apply_scale): Move sanity check. 8299 * tree-inline.c (copy_bb): Always scale. 8300 (copy_cfg_body): Likewise. 8301 83022017-11-06 Christophe Lyon <christophe.lyon@linaro.org> 8303 8304 PR target/67591 8305 * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it 8306 attribute. 8307 (*cmp_ite0): Add enabled_for_depr_it attribute. 8308 (*cmp_ite1): Likewise. 8309 83102017-11-06 Segher Boessenkool <segher@kernel.crashing.org> 8311 8312 * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and 8313 TYPE_MFCRF. 8314 83152017-11-06 Richard Sandiford <richard.sandiford@linaro.org> 8316 8317 * tree-vrp.c (vrp_int_const_binop): Return true on success and 8318 return the value by pointer. 8319 (extract_range_from_multiplicative_op_1): Update accordingly. 8320 Return as soon as an operation fails. 8321 83222017-11-05 Tom de Vries <tom@codesourcery.com> 8323 8324 PR other/82784 8325 * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ... 8326 (DEF_SANITIZER_BUILTIN): ... here. 8327 (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of 8328 DEF_SANITIZER_BUILTIN in if stmt. Add missing semicolon. 8329 83302017-11-05 Tom de Vries <tom@codesourcery.com> 8331 8332 PR other/82784 8333 * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after 8334 macro body. 8335 (ASM_OUTPUT_CASE_LABEL): Add semicolon after 8336 ASM_OUTPUT_BEFORE_CASE_LABEL call. 8337 * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon 8338 after macro body. 8339 * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. 8340 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. 8341 * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. 8342 83432017-11-05 Tom de Vries <tom@codesourcery.com> 8344 8345 PR other/82784 8346 * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after 8347 "do {} while (0)". 8348 83492017-11-04 Michael Clark <michaeljclark@mac.com> 8350 8351 * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format. 8352 config/riscv/riscv.md (addsi3): Use 'i' for immediates. 8353 (adddi3): Likewise. 8354 (*addsi3_extended): Likewise. 8355 (*addsi3_extended2): Likewise. 8356 (<optab>si3): Likewise. 8357 (<optab>di3): Likewise. 8358 (<optab><mode>3): Likewise. 8359 (<*optabe>si3_internal): Likewise. 8360 (zero_extendqi<SUPERQI:mode>2): Likewise. 8361 (*add<mode>hi3): Likewise. 8362 (*xor<mode>hi3): Likewise. 8363 (<optab>di3): Likewise. 8364 (*<optab>si3_extend): Likewise. 8365 (*sge<u>_<X:mode><GPR:mode>): Likewise. 8366 (*slt<u>_<X:mode><GPR:mode>): Likewise. 8367 (*sle<u>_<X:mode><GPR:mode>): Likewise. 8368 83692017-11-04 Andrew Waterman <andrew@sifive.com> 8370 8371 * config/riscv/riscv.c (riscv_option_override): Conditionally set 8372 TARGET_STRICT_ALIGN based upon -mtune argument. 8373 83742017-11-04 Andrew Waterman <andrew@sifive.com> 8375 8376 * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1. 8377 83782017-11-04 Daniel Santos <daniel.santos@pobox.com> 8379 8380 * config/i386/i386.c (choose_basereg): Use optional scratch 8381 register and add assertion. 8382 (x86_emit_outlined_ms2sysv_save): Use scratch register when 8383 needed, and don't allocate stack. 8384 (ix86_expand_prologue): Rearrange where SSE saves/stub call is 8385 emitted, correct wrong allocation with -mcall-ms2sysv-xlogues. 8386 (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets. 8387 83882017-11-03 Jeff Law <law@redhat.com> 8389 8390 * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype. 8391 (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence 8392 to probe at the start of a noreturn function. 8393 83942017-11-03 Jakub Jelinek <jakub@redhat.com> 8395 8396 PR tree-optimization/78821 8397 * gimple-ssa-store-merging.c: Update the file comment. 8398 (MAX_STORE_ALIAS_CHECKS): Define. 8399 (struct store_operand_info): New type. 8400 (store_operand_info::store_operand_info): New constructor. 8401 (struct store_immediate_info): Add rhs_code and ops data members. 8402 (store_immediate_info::store_immediate_info): Add rhscode, op0r 8403 and op1r arguments to the ctor, initialize corresponding data members. 8404 (struct merged_store_group): Add load_align_base and load_align 8405 data members. 8406 (merged_store_group::merged_store_group): Initialize them. 8407 (merged_store_group::do_merge): Update them. 8408 (merged_store_group::apply_stores): Pick the constant for 8409 encode_tree_to_bitpos from one of the two operands, or skip 8410 encode_tree_to_bitpos if neither operand is a constant. 8411 (class pass_store_merging): Add process_store method decl. Remove 8412 bool argument from terminate_all_aliasing_chains method decl. 8413 (pass_store_merging::terminate_all_aliasing_chains): Remove 8414 var_offset_p argument and corresponding handling. 8415 (stmts_may_clobber_ref_p): New function. 8416 (compatible_load_p): New function. 8417 (imm_store_chain_info::coalesce_immediate_stores): Terminate group 8418 if there is overlap and rhs_code is not INTEGER_CST. For 8419 non-overlapping stores terminate group if rhs is not mergeable. 8420 (get_alias_type_for_stmts): Change first argument from 8421 auto_vec<gimple *> & to vec<gimple *> &. Add IS_LOAD, CLIQUEP and 8422 BASEP arguments. If IS_LOAD is true, look at rhs1 of the stmts 8423 instead of lhs. Compute *CLIQUEP and *BASEP in addition to the 8424 alias type. 8425 (get_location_for_stmts): Change first argument from 8426 auto_vec<gimple *> & to vec<gimple *> &. 8427 (struct split_store): Remove orig_stmts data member, add orig_stores. 8428 (split_store::split_store): Create orig_stores rather than orig_stmts. 8429 (find_constituent_stmts): Renamed to ... 8430 (find_constituent_stores): ... this. Change second argument from 8431 vec<gimple *> * to vec<store_immediate_info *> *, push pointers 8432 to info structures rather than the statements. 8433 (split_group): Rename ALLOW_UNALIGNED argument to 8434 ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle 8435 it. Adjust find_constituent_stores caller. 8436 (imm_store_chain_info::output_merged_store): Handle rhs_code other 8437 than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and 8438 get_location_for_stmts callers. Set MR_DEPENDENCE_CLIQUE and 8439 MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores. 8440 (mem_valid_for_store_merging): New function. 8441 (handled_load): New function. 8442 (pass_store_merging::process_store): New method. 8443 (pass_store_merging::execute): Use process_store method. Adjust 8444 terminate_all_aliasing_chains caller. 8445 84462017-11-03 Wilco Dijkstra <wdijkstr@arm.com> 8447 8448 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): 8449 Return true for more constants, symbols and label references. 8450 (aarch64_valid_floating_const): Remove unused function. 8451 84522017-11-03 Wilco Dijkstra <wdijkstr@arm.com> 8453 8454 PR target/82786 8455 * config/aarch64/aarch64.c (aarch64_layout_frame): 8456 Undo forcing of LR at bottom of frame. 8457 84582017-11-03 Jeff Law <law@redhat.com> 8459 8460 PR target/82823 8461 * config/i386/i386.c (ix86_expand_prologue): Tighten assert 8462 for int_registers_saved. 8463 8464 * cfganal.c (single_pred_edge_ignoring_loop_edges): New function 8465 extracted from tree-ssa-dom.c. 8466 * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype. 8467 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove. 8468 (record_equivalences_from_incoming_edge): Add additional argument 8469 to single_pred_edge_ignoring_loop_edges call. 8470 * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove. 8471 (uncprop_dom_walker::before_dom_children): Add additional argument 8472 to single_pred_edge_ignoring_loop_edges call. 8473 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use 8474 single_pred_edge_ignoring_loop_edges rather than open coding. 8475 * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly. 8476 84772017-11-03 Marc Glisse <marc.glisse@inria.fr> 8478 8479 * match.pd (-(-A)): Rewrite. 8480 84812017-11-03 Segher Boessenkool <segher@kernel.crashing.org> 8482 8483 * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete. 8484 (rs6000_emit_int_cmove): New declaration. 8485 * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration. 8486 (rs6000_emit_sISEL): Delete. 8487 (rs6000_emit_int_cmove): Make non-static. 8488 * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove 8489 instead of rs6000_emit_sISEL. 8490 84912017-11-03 Jan Hubicka <hubicka@ucw.cz> 8492 8493 * asan.c (create_cond_insert_point): Maintain profile. 8494 * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are 8495 merged. 8496 * basic-block.h (struct basic_block_def): Remove frequency. 8497 (EDGE_FREQUENCY): Use to_frequency 8498 * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global 8499 heuristics. 8500 (find_traces): Update to use to_frequency. 8501 (find_traces_1_round): Likewise; use only IPA counts. 8502 (bb_to_key): Likewise. 8503 (connect_traces): Use IPA counts only. 8504 (copy_bb_p): Update to use to_frequency. 8505 (fix_up_crossing_landing_pad): Likewise. 8506 (sanitize_hot_paths): Likewise. 8507 * bt-load.c (basic_block_freq): Likewise. 8508 * cfg.c (init_flow): Set count_max to uninitialized. 8509 (check_bb_profile): Remove frequencies; check counts. 8510 (dump_bb_info): Do not dump frequencies. 8511 (update_bb_profile_for_threading): Update counts only. 8512 (scale_bbs_frequencies_int): Likewise. 8513 (MAX_SAFE_MULTIPLIER): Remove. 8514 (scale_bbs_frequencies_gcov_type): Update counts only. 8515 (scale_bbs_frequencies_profile_count): Update counts only. 8516 (scale_bbs_frequencies): Update counts only. 8517 * cfg.h (struct control_flow_graph): Add count-max. 8518 (update_bb_profile_for_threading): Update prototype. 8519 * cfgbuild.c (find_bb_boundaries): Do not update frequencies. 8520 (find_many_sub_basic_blocks): Likewise. 8521 * cfgcleanup.c (try_forward_edges): Likewise. 8522 (try_crossjump_to_edge): Likewise. 8523 * cfgexpand.c (expand_gimple_cond): Likewise. 8524 (expand_gimple_tailcall): Likewise. 8525 (construct_init_block): Likewise. 8526 (construct_exit_block): Likewise. 8527 * cfghooks.c (verify_flow_info): Check consistency of counts. 8528 (dump_bb_for_graph): Do not dump frequencies. 8529 (split_block_1): Do not update frequencies. 8530 (split_edge): Do not update frequencies. 8531 (make_forwarder_block): Do not update frequencies. 8532 (duplicate_block): Do not update frequencies. 8533 (account_profile_record): Do not update frequencies. 8534 * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts 8535 for global heuristics. 8536 * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency. 8537 (expected_loop_iterations_unbounded): Use counts only. 8538 * cfgloopmanip.c (scale_loop_profile): Simplify. 8539 (create_empty_loop_on_edge): Simplify 8540 (loopify): Simplify 8541 (duplicate_loop_to_header_edge): Simplify 8542 * cfgrtl.c (force_nonfallthru_and_redirect): Update profile. 8543 (update_br_prob_note): Take care of removing note when profile 8544 becomes undefined. 8545 (relink_block_chain): Do not dump frequency. 8546 (rtl_account_profile_record): Use to_frequency. 8547 * cgraph.c (symbol_table::create_edge): Convert count to ipa count. 8548 (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count. 8549 (cgraph_update_edges_for_call_stmt_node): Likewise. 8550 (cgraph_edge::verify_count_and_frequency): Update. 8551 (cgraph_node::verify_node): Temporarily disable frequency verification. 8552 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use 8553 to_cgraph_frequency. 8554 (cgraph_edge::rebuild_edges): Convert to ipa counts. 8555 * cgraphunit.c (init_lowered_empty_function): Do not initialize 8556 frequencies. 8557 (cgraph_node::expand_thunk): Update profile. 8558 * except.c (dw2_build_landing_pads): Do not update frequency. 8559 * final.c (compute_alignments): Use to_frequency. 8560 (dump_basic_block_info): Do not dump frequency. 8561 * gimple-pretty-print.c (dump_profile): Do not dump frequency. 8562 (dump_gimple_bb_header): Do not dump frequency. 8563 * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency; 8564 do update count. 8565 * gimple-streamer-in.c (input_bb): Do not stream frequency. 8566 * gimple-streamer-out.c (output_bb): Do not stream frequency. 8567 * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency. 8568 (init_before_recovery): Do not update frequency. 8569 (sched_create_recovery_edges): Do not update frequency. 8570 * hsa-gen.c (convert_switch_statements): Do not update frequency. 8571 * ipa-cp.c (ipcp_propagate_stage): Update search for max_count. 8572 (ipa_cp_c_finalize): Set max_count to uninitialized. 8573 * ipa-fnsummary.c (get_minimal_bb): Use counts. 8574 (param_change_prob): Use counts. 8575 * ipa-profile.c (ipa_profile_generate_summary): Do not summarize 8576 local profiles. 8577 * ipa-split.c (consider_split): Use to_frequency. 8578 (split_function): Use to_frequency. 8579 * ira-build.c (loop_compare_func): Likewise. 8580 (mark_loops_for_removal): Likewise. 8581 (mark_all_loops_for_removal): Likewise. 8582 * loop-doloop.c (doloop_modify): Do not update frequency. 8583 * loop-unroll.c (unroll_loop_runtime_iterations): Do not update 8584 frequency. 8585 * lto-streamer-in.c (input_function): Update count_max. 8586 * omp-expand.c (expand_omp_taskreg): Update count_max. 8587 * omp-simd-clone.c (simd_clone_adjust): Update profile. 8588 * predict.c (maybe_hot_frequency_p): Use to_frequency. 8589 (maybe_hot_count_p): Use ipa counts only. 8590 (maybe_hot_bb_p): Simplify. 8591 (maybe_hot_edge_p): Simplify. 8592 (probably_never_executed): Do not take frequency argument. 8593 (probably_never_executed_bb_p): Do not pass frequency. 8594 (probably_never_executed_edge_p): Likewise. 8595 (combine_predictions_for_bb): Check that profile is nonzero. 8596 (propagate_freq): Do not set frequency. 8597 (drop_profile): Simplify. 8598 (counts_to_freqs): Simplify. 8599 (expensive_function_p): Use to_frequency. 8600 (propagate_unlikely_bbs_forward): Simplify. 8601 (determine_unlikely_bbs): Simplify. 8602 (estimate_bb_frequencies): Add hack to silence graphite issues. 8603 (compute_function_frequency): Use ipa counts. 8604 (pass_profile::execute): Update. 8605 (rebuild_frequencies): Use counts only. 8606 (force_edge_cold): Use counts only. 8607 * profile-count.c (profile_count::dump): Dump new count types. 8608 (profile_count::differs_from_p): Check compatiblity. 8609 (profile_count::to_frequency): New function. 8610 (profile_count::to_cgraph_frequency): New function. 8611 * profile-count.h (struct function): Declare. 8612 (enum profile_quality): Add profile_guessed_local and 8613 profile_guessed_global0. 8614 (class profile_proability): Decrease number of bits to 29; 8615 update from_reg_br_prob_note and to_reg_br_prob_note. 8616 (class profile_count: Update comment; decrease number of bits 8617 to 61. Check compatibility. 8618 (profile_count::compatible_p): New private member function. 8619 (profile_count::ipa_p): New member function. 8620 (profile_count::operator<): Handle global zero correctly. 8621 (profile_count::operator>): Handle global zero correctly. 8622 (profile_count::operator<=): Handle global zero correctly. 8623 (profile_count::operator>=): Handle global zero correctly. 8624 (profile_count::nonzero_p): New member function. 8625 (profile_count::force_nonzero): New member function. 8626 (profile_count::max): New member function. 8627 (profile_count::apply_scale): Handle IPA scalling. 8628 (profile_count::guessed_local): New member function. 8629 (profile_count::global0): New member function. 8630 (profile_count::ipa): New member function. 8631 (profile_count::to_frequency): Declare. 8632 (profile_count::to_cgraph_frequency): Declare. 8633 * profile.c (OVERLAP_BASE): Delete. 8634 (compute_frequency_overlap): Delete. 8635 (compute_branch_probabilities): Do not use compute_frequency_overlap. 8636 * regs.h (REG_FREQ_FROM_BB): Use to_frequency. 8637 * sched-ebb.c (rank): Use counts only. 8638 * shrink-wrap.c (handle_simple_exit): Use counts only. 8639 (try_shrink_wrapping): Use counts only. 8640 (place_prologue_for_one_component): Use counts only. 8641 * tracer.c (find_best_predecessor): Use to_frequency. 8642 (find_trace): Use to_frequency. 8643 (tail_duplicate): Use to_frequency. 8644 * trans-mem.c (expand_transaction): Do not update frequency. 8645 * tree-call-cdce.c: Do not update frequency. 8646 * tree-cfg.c (gimple_find_sub_bbs): Likewise. 8647 (gimple_merge_blocks): Likewise. 8648 (gimple_split_edge): Likewise. 8649 (gimple_duplicate_sese_region): Likewise. 8650 (gimple_duplicate_sese_tail): Likewise. 8651 (move_sese_region_to_fn): Likewise. 8652 (gimple_account_profile_record): Likewise. 8653 (insert_cond_bb): Likewise. 8654 * tree-complex.c (expand_complex_div_wide): Likewise. 8655 * tree-eh.c (lower_resx): Update profile. 8656 * tree-inline.c (copy_bb): Simplify count scaling; do not scale 8657 frequencies. 8658 (initialize_cfun): Do not initialize frequencies 8659 (freqs_to_counts): Delete. 8660 (copy_cfg_body): Ignore count parameter. 8661 (copy_body): Update. 8662 (expand_call_inline): Update count_max. 8663 (optimize_inline_calls): Update count_max. 8664 (tree_function_versioning): Update count_max. 8665 * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency. 8666 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update 8667 frequency. 8668 * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only. 8669 * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency. 8670 (try_peel_loop): Likewise. 8671 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use 8672 to_frequency. 8673 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1. 8674 (tree_transform_and_unroll_loop): Do not use frequencies 8675 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): 8676 Use reliable prediction only. 8677 * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies. 8678 * tree-ssa-sink.c (select_best_block): Use to_frequency. 8679 * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable 8680 probability scaling. 8681 * tree-ssa-threadupdate.c (create_block_for_threading): Do 8682 not update frequency 8683 (any_remaining_duplicated_blocks): Likewise. 8684 (update_profile): Likewise. 8685 (estimated_freqs_path): Delete. 8686 (freqs_to_counts_path): Delete. 8687 (clear_counts_path): Delete. 8688 (ssa_fix_duplicate_block_edges): Likewise. 8689 (duplicate_thread_path): Likewise. 8690 * tree-switch-conversion.c (gen_inbound_check): Use counts. 8691 * tree-tailcall.c (decrease_profile): Do not update frequency. 8692 (eliminate_tail_call): Likewise. 8693 * tree-vect-loop-manip.c (vect_do_peeling): Likewise. 8694 * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise. 8695 (optimize_mask_stores): Likewise. 8696 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 8697 * ubsan.c (ubsan_expand_null_ifn): Update profile. 8698 (ubsan_expand_ptr_ifn): Update profile. 8699 * value-prof.c (gimple_ic): Simplify. 8700 * value-prof.h (gimple_ic): Update prototype. 8701 * ipa-inline-transform.c (inline_transform): Fix scaling conditoins. 8702 * ipa-inline.c (compute_uninlined_call_time): Be sure that 8703 counts are nonzero. 8704 (want_inline_self_recursive_call_p): Likewise. 8705 (resolve_noninline_speculation): Only cummulate defined counts. 8706 (inline_small_functions): Use nonzero_p. 8707 (ipa_inline): Do not access freed node. 8708 87092017-11-03 Wilco Dijkstra <wdijkstr@arm.com> 8710 8711 * config/aarch64/aarch64.c (aarch64_override_options_internal): 8712 Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL. 8713 87142017-11-03 Kito Cheng <kito.cheng@gmail.com> 8715 8716 * config/riscv/riscv.c (riscv_legitimize_move): Handle 8717 non-legitimate address. 8718 87192017-11-03 Segher Boessenkool <segher@kernel.crashing.org> 8720 8721 * config/rs6000/rs6000.md (*lt0_disi): Delete. 8722 (*lt0_<mode>di, *lt0_<mode>si): New. 8723 87242017-11-03 Segher Boessenkool <segher@kernel.crashing.org> 8725 8726 * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to 8727 TARGET_PAIRED_FLOAT. 8728 87292017-11-03 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org> 8730 Jim Wilson <jim.wilson@linaro.org> 8731 8732 * config/aarch64/aarch64-cores.def (saphira): New CPU. 8733 * config/aarch64/aarch64-tune.md: Regenerated. 8734 * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira". 8735 * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table. 8736 87372017-11-03 Cupertino Miranda <cmiranda@synopsys.com> 8738 8739 * config/arc/arc.c (arc_save_restore): Corrected CFA note. 8740 (arc_expand_prologue): Restore blink for millicode. 8741 * config/arc/linux.h (LINK_EH_SPEC): Defined. 8742 87432017-11-03 Richard Sandiford <richard.sandiford@linaro.org> 8744 8745 PR target/82809 8746 * config/i386/i386.c (ix86_vector_duplicate_value): Use 8747 gen_vec_duplicate after forcing the scalar into a register. 8748 87492017-11-02 Segher Boessenkool <segher@kernel.crashing.org> 8750 8751 * combine (try_combine): Print the insns input to try_combine to the 8752 dump file. 8753 87542017-11-02 Steve Ellcey <sellcey@cavium.com> 8755 8756 PR target/79868 8757 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): 8758 Remove second argument from aarch64_process_target_attr call. 8759 * config/aarch64/aarch64-protos.h (aarch64_process_target_attr): 8760 Ditto. 8761 * config/aarch64/aarch64.c (aarch64_attribute_info): Change 8762 field type. 8763 (aarch64_handle_attr_arch): Remove second argument. 8764 (aarch64_handle_attr_cpu): Ditto. 8765 (aarch64_handle_attr_tune): Ditto. 8766 (aarch64_handle_attr_isa_flags): Ditto. 8767 (aarch64_process_one_target_attr): Ditto. 8768 (aarch64_process_target_attr): Ditto. 8769 (aarch64_option_valid_attribute_p): Remove second argument. 8770 on aarch64_process_target_attr call. 8771 87722017-11-02 David Malcolm <dmalcolm@redhat.com> 8773 8774 * diagnostic.c: Include "selftest-diagnostic.h". 8775 (selftest::assert_location_text): New function. 8776 (selftest::test_diagnostic_get_location_text): New function. 8777 (selftest::diagnostic_c_tests): Call it. 8778 87792017-11-02 David Malcolm <dmalcolm@redhat.com> 8780 8781 * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o. 8782 * diagnostic-show-locus.c: Include "selftest-diagnostic.h". 8783 (class selftest::test_diagnostic_context): Move to... 8784 * selftest-diagnostic.c: New file. 8785 * selftest-diagnostic.h: New file. 8786 87872017-11-02 James Bowman <james.bowman@ftdichip.com> 8788 8789 * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase 8790 offset range for FT32B. 8791 * config/ft32/ft32.h: option "mcompress" enables relaxation. 8792 * config/ft32/ft32.md: Add TARGET_NOPM. 8793 * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm. 8794 * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm. 8795 87962017-11-02 Wilco Dijkstra <wdijkstr@arm.com> 8797 8798 * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define. 8799 88002017-11-02 Jeff Law <law@redhat.com> 8801 8802 * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove 8803 virtual keyword on FINAL OVERRIDE members. 8804 8805 * tree-ssa-propagate.h (ssa_propagation_engine): Group 8806 virtuals together. Add virtual destructor. 8807 (substitute_and_fold_engine): Similarly. 8808 88092017-11-02 Jan Hubicka <hubicka@ucw.cz> 8810 8811 * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+. 8812 88132017-11-02 Richard Biener <rguenther@suse.de> 8814 8815 PR tree-optimization/82795 8816 * tree-if-conv.c (predicate_mem_writes): Remove bogus assert. 8817 88182017-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8819 8820 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require 8821 gcc_SUN_LD_VERSION. 8822 (gcc_GAS_CHECK_FEATURE): Remove. 8823 * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from 8824 gcc_AC_INITFINI_ARRAY here. Update for Solaris 11.4 changes. 8825 * configure: Regenerate. 8826 88272017-11-02 Claudiu Zissulescu <claziss@synopsys.com> 8828 8829 * config/arc/arc.c (hwloop_optimize): Account for empty 8830 body loops. 8831 88322017-11-02 Richard Biener <rguenther@suse.de> 8833 8834 PR middle-end/82765 8835 * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT. 8836 Truncate ARRAY_REF index and element size. 8837 88382017-11-01 Palmer Dabbelt <palmer@dabbelt.com> 8839 8840 * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB". 8841 88422017-11-01 Jeff Law <law@redhat.com> 8843 8844 * tree-ssa-ccp.c (ccp_folder): New class derived from 8845 substitute_and_fold_engine. 8846 (ccp_folder::get_value): New member function. 8847 (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt. 8848 (ccp_fold_stmt): Remove prototype. 8849 (ccp_finalize): Call substitute_and_fold from the ccp_class. 8850 * tree-ssa-copy.c (copy_folder): New class derived from 8851 substitute_and_fold_engine. 8852 (copy_folder::get_value): Renamed from get_value. 8853 (fini_copy_prop): Call substitute_and_fold from copy_folder class. 8854 * tree-vrp.c (vrp_folder): New class derived from 8855 substitute_and_fold_engine. 8856 (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt. 8857 (vrp_folder::get_value): New member function. 8858 (vrp_finalize): Call substitute_and_fold from vrp_folder class. 8859 (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in. 8860 * tree-ssa-propagate.h (substitute_and_fold_engine): New class to 8861 provide a class interface to folder/substitute routines. 8862 (ssa_prop_fold_stmt_fn): Remove typedef. 8863 (ssa_prop_get_value_fn): Likewise. 8864 (subsitute_and_fold): Remove prototype. 8865 (replace_uses_in): Likewise. 8866 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): 8867 Renamed from replace_uses_in. Call the virtual member function 8868 (substitute_and_fold_engine::replace_phi_args_in): Similarly. 8869 (substitute_and_fold_dom_walker): Remove initialization of 8870 data member entries for calbacks. Add substitute_and_fold_engine 8871 member and initialize it. 8872 (substitute_and_fold_dom_walker::before_dom_children0: Use the 8873 member functions for get_value, replace_phi_args_in c 8874 replace_uses_in, and fold_stmt calls. 8875 (substitute_and_fold_engine::substitute_and_fold): Renamed from 8876 substitute_and_fold. Remove assert. Update ctor call. 8877 8878 * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef. 8879 (ssa_prop_visit_phi_fn): Likewise. 8880 (class ssa_propagation_engine): New class to provide an interface 8881 into ssa_propagate. 8882 * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped 8883 variable. 8884 (ssa_prop_visit_phi): Likewise. 8885 (ssa_propagation_engine::simulate_stmt): Moved into class. 8886 Call visit_phi/visit_stmt from the class rather than via 8887 file scoped static variables. 8888 (ssa_propagation_engine::simulate_block): Moved into class. 8889 (ssa_propagation_engine::process_ssa_edge_worklist): Similarly. 8890 (ssa_propagation_engine::ssa_propagate): Similarly. No longer 8891 set file scoped statics for the visit_stmt/visit_phi callbacks. 8892 * tree-complex.c (complex_propagate): New class derived from 8893 ssa_propagation_engine. 8894 (complex_propagate::visit_stmt): Renamed from complex_visit_stmt. 8895 (complex_propagate::visit_phi): Renamed from complex_visit_phi. 8896 (tree_lower_complex): Call ssa_propagate via the complex_propagate 8897 class. 8898 * tree-ssa-ccp.c: (ccp_propagate): New class derived from 8899 ssa_propagation_engine. 8900 (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node. 8901 (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt. 8902 (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class. 8903 * tree-ssa-copy.c (copy_prop): New class derived from 8904 ssa_propagation_engine. 8905 (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt. 8906 (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node. 8907 (execute_copy_prop): Call ssa_propagate from the copy_prop class. 8908 * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine. 8909 (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt. 8910 (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node. 8911 (execute_vrp): Call ssa_propagate from the vrp_prop class. 8912 89132017-11-01 Jakub Jelinek <jakub@redhat.com> 8914 8915 PR rtl-optimization/82778 8916 PR rtl-optimization/82597 8917 * compare-elim.c (struct comparison): Add in_a_setter field. 8918 (find_comparison_dom_walker::before_dom_children): Remove killed 8919 bitmap and df_simulate_find_defs call, instead walk the defs. 8920 Compute last_setter and initialize in_a_setter. Merge definitions 8921 with first initialization for a few variables. 8922 (try_validate_parallel): Use insn_invalid_p instead of 8923 recog_memoized. Return insn rather than just the pattern. 8924 (try_merge_compare): Fix up comment. Don't uselessly test if 8925 in_a is a REG_P. Use cmp->in_a_setter instead of walking UD 8926 chains. 8927 (execute_compare_elim_after_reload): Remove df_chain_add_problem 8928 call. 8929 89302017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8931 Alan Hayward <alan.hayward@arm.com> 8932 David Sherwood <david.sherwood@arm.com> 8933 8934 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use 8935 aarch64_hard_regno_nregs to get the number of registers 8936 in a mode. 8937 89382017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8939 Alan Hayward <alan.hayward@arm.com> 8940 David Sherwood <david.sherwood@arm.com> 8941 8942 * config/aarch64/constraints.md (Upl): Rename to... 8943 (Uaa): ...this. 8944 * config/aarch64/aarch64.md 8945 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw): 8946 Update accordingly. 8947 89482017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8949 Alan Hayward <alan.hayward@arm.com> 8950 David Sherwood <david.sherwood@arm.com> 8951 8952 * config/aarch64/aarch64.c (aarch64_add_constant_internal) 8953 (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move 8954 earlier in file. 8955 89562017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8957 Alan Hayward <alan.hayward@arm.com> 8958 David Sherwood <david.sherwood@arm.com> 8959 8960 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp) 8961 (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev) 8962 (aarch64_evpc_dup): Generate rtl direcly, rather than using 8963 named expanders. 8964 (aarch64_expand_vec_perm_const_1): Explicitly check for permutes 8965 of a single element. 8966 * config/aarch64/iterators.md: Add a comment above the permute 8967 unspecs to say that they are generated directly by 8968 aarch64_expand_vec_perm_const. 8969 * config/aarch64/aarch64-simd.md: Likewise the permute instructions. 8970 89712017-11-01 Nathan Sidwell <nathan@acm.org> 8972 8973 * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P. 8974 89752017-11-01 Palmer Dabbelt <palmer@dabbelt.com> 8976 8977 * doc/invoke.texi (RISC-V Options): Explicitly name the medlow 8978 and medany code models, and describe what they do. 8979 89802017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8981 8982 Revert accidental duplicate: 8983 8984 * combine.c (can_change_dest_mode): Reject changes in 8985 REGMODE_NATURAL_SIZE. 8986 89872017-11-01 Segher Boessenkool <segher@kernel.crashing.org> 8988 8989 PR rtl-optimization/64682 8990 PR rtl-optimization/69567 8991 PR rtl-optimization/69737 8992 PR rtl-optimization/82683 8993 * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same 8994 register mentioned in the note, drop the note, unless it came from I3, 8995 in which case it should go to I3 again. 8996 89972017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 8998 8999 * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap 9000 and return false if not. 9001 (clear_bytes_written_by, live_bytes_read): Update accordingly. 9002 90032017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9004 9005 * tree-ssa-alias.h (ranges_overlap_p): Return false if either 9006 range is known to be empty. 9007 90082017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9009 Alan Hayward <alan.hayward@arm.com> 9010 David Sherwood <david.sherwood@arm.com> 9011 9012 * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS 9013 and CONST_VECTOR_NUNITS instead of computing the number of units from 9014 the byte sizes of the vector and element. 9015 (simplify_binary_operation_1): Likewise. 9016 (simplify_const_binary_operation): Likewise. 9017 (simplify_ternary_operation): Likewise. 9018 90192017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9020 Alan Hayward <alan.hayward@arm.com> 9021 David Sherwood <david.sherwood@arm.com> 9022 9023 * var-tracking.c (INT_MEM_OFFSET): Replace with... 9024 (int_mem_offset): ...this new function. 9025 (var_mem_set, var_mem_delete_and_set, var_mem_delete) 9026 (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs) 9027 (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset): 9028 Update accordingly. 9029 90302017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9031 Alan Hayward <alan.hayward@arm.com> 9032 David Sherwood <david.sherwood@arm.com> 9033 9034 * lower-subreg.c (interesting_mode_p): New function. 9035 (compute_costs, find_decomposable_subregs, decompose_register) 9036 (simplify_subreg_concatn, can_decompose_p, resolve_simple_move) 9037 (resolve_clobber, dump_choices): Use it. 9038 90392017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9040 Alan Hayward <alan.hayward@arm.com> 9041 David Sherwood <david.sherwood@arm.com> 9042 9043 * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'. 9044 90452017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9046 Alan Hayward <alan.hayward@arm.com> 9047 David Sherwood <david.sherwood@arm.com> 9048 9049 * alias.c (find_base_value, find_base_term): Only process integer 9050 truncations. Check the precision rather than the size. 9051 90522017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9053 Alan Hayward <alan.hayward@arm.com> 9054 David Sherwood <david.sherwood@arm.com> 9055 9056 * machmode.h (is_narrower_int_mode): New function 9057 * optabs.c (expand_float, expand_fix): Use it. 9058 * dwarf2out.c (rotate_loc_descriptor): Likewise. 9059 90602017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9061 Alan Hayward <alan.hayward@arm.com> 9062 David Sherwood <david.sherwood@arm.com> 9063 9064 * rtl.h (narrower_subreg_mode): New function. 9065 * ira-color.c (update_costs_from_allocno): Use it. 9066 90672017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9068 Alan Hayward <alan.hayward@arm.com> 9069 David Sherwood <david.sherwood@arm.com> 9070 9071 * optabs-query.h (convert_optab_p): New function, split out from... 9072 (convert_optab_handler): ...here. 9073 (widening_optab_handler): Delete. 9074 (find_widening_optab_handler): Remove permit_non_widening parameter. 9075 (find_widening_optab_handler_and_mode): Likewise. Provide an 9076 override that operates on mode class wrappers. 9077 * optabs-query.c (widening_optab_handler): Delete. 9078 (find_widening_optab_handler_and_mode): Remove permit_non_widening 9079 parameter. Assert that the two modes are the same class and that 9080 the "from" mode is narrower than the "to" mode. Use 9081 convert_optab_handler instead of widening_optab_handler. 9082 * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler 9083 instead of widening_optab_handler. 9084 * expr.c (expand_expr_real_2): Update calls to 9085 find_widening_optab_handler. 9086 * optabs.c (expand_widen_pattern_expr): Likewise. 9087 (expand_binop_directly): Take the insn_code as a parameter. 9088 (expand_binop): Only call find_widening_optab_handler for 9089 conversion optabs; use optab_handler otherwise. Update calls 9090 to find_widening_optab_handler and expand_binop_directly. 9091 Use convert_optab_handler instead of widening_optab_handler. 9092 * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to 9093 find_widening_optab_handler and use scalar_mode rather than 9094 machine_mode. 9095 (convert_plusminus_to_widen): Likewise. 9096 90972017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9098 Alan Hayward <alan.hayward@arm.com> 9099 David Sherwood <david.sherwood@arm.com> 9100 9101 * machmode.h (fixed_size_mode): New class. 9102 * rtl.h (get_pool_mode): Return fixed_size_mode. 9103 * gengtype.c (main): Add fixed_size_mode. 9104 * target.def (get_raw_result_mode): Return a fixed_size_mode. 9105 (get_raw_arg_mode): Likewise. 9106 * doc/tm.texi: Regenerate. 9107 * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode. 9108 * targhooks.c (default_get_reg_raw_mode): Likewise. 9109 * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise. 9110 * config/mips/mips.c (mips_get_reg_raw_mode): Likewise. 9111 * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise. 9112 (msp430_get_raw_result_mode): Likewise. 9113 * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode> 9114 * dbxout.c (dbxout_parms): Require fixed-size modes. 9115 * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise. 9116 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. 9117 * omp-low.c (lower_oacc_reductions): Likewise. 9118 * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes. 9119 (simplify_subreg): Update accordingly. 9120 * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode. 9121 (force_const_mem): Update accordingly. Return NULL_RTX for modes 9122 that aren't fixed-size. 9123 (get_pool_mode): Return a fixed_size_mode. 9124 (output_constant_pool_2): Take a fixed_size_mode. 9125 91262017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9127 Alan Hayward <alan.hayward@arm.com> 9128 David Sherwood <david.sherwood@arm.com> 9129 9130 * doc/rtl.texi (vec_series): Document. 9131 (const): Say that the operand can be a vec_series. 9132 * rtl.def (VEC_SERIES): New rtx code. 9133 * rtl.h (const_vec_series_p_1): Declare. 9134 (const_vec_series_p): New function. 9135 * emit-rtl.h (gen_const_vec_series): Declare. 9136 (gen_vec_series): Likewise. 9137 * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series) 9138 (gen_vec_series): Likewise. 9139 * optabs.c (expand_mult_highpart): Use gen_const_vec_series. 9140 * simplify-rtx.c (simplify_unary_operation): Handle negations 9141 of vector series. 9142 (simplify_binary_operation_series): New function. 9143 (simplify_binary_operation_1): Use it. Handle VEC_SERIES. 9144 (test_vector_ops_series): New function. 9145 (test_vector_ops): Call it. 9146 * config/powerpcspe/altivec.md (altivec_lvsl): Use 9147 gen_const_vec_series. 9148 (altivec_lvsr): Likewise. 9149 * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise. 9150 91512017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9152 Alan Hayward <alan.hayward@arm.com> 9153 David Sherwood <david.sherwood@arm.com> 9154 9155 * doc/rtl.texi (const): Update description of address constants. 9156 Say that vector constants are allowed too. 9157 * common.md (E, F): Use CONSTANT_P instead of checking for 9158 CONST_VECTOR. 9159 * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of 9160 checking for CONST_VECTOR. 9161 * expmed.c (make_tree): Use build_vector_from_val for a CONST 9162 VEC_DUPLICATE. 9163 * expr.c (expand_expr_real_2): Check for vector modes instead 9164 of checking for CONST_VECTOR. 9165 * rtl.h (const_vec_p): New function. 9166 (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE. 9167 (unwrap_const_vec_duplicate): Handle them here too. 9168 91692017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9170 David Malcolm <dmalcolm@redhat.com> 9171 Alan Hayward <alan.hayward@arm.com> 9172 David Sherwood <david.sherwood@arm.com> 9173 9174 * rtl.h (vec_duplicate_p): New function. 9175 * selftest-rtl.c (assert_rtx_eq_at): New function. 9176 * selftest-rtl.h (ASSERT_RTX_EQ): New macro. 9177 (assert_rtx_eq_at): Declare. 9178 * selftest.h (selftest::simplify_rtx_c_tests): Declare. 9179 * selftest-run-tests.c (selftest::run_tests): Call it. 9180 * simplify-rtx.c: Include selftest.h and selftest-rtl.h. 9181 (simplify_unary_operation_1): Recursively handle vector duplicates. 9182 (simplify_binary_operation_1): Likewise. Handle VEC_SELECTs of 9183 vector duplicates. 9184 (simplify_subreg): Handle subregs of vector duplicates. 9185 (make_test_reg, test_vector_ops_duplicate, test_vector_ops) 9186 (selftest::simplify_rtx_c_tests): New functions. 9187 91882017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9189 Alan Hayward <alan.hayward@arm.com> 9190 David Sherwood <david.sherwood@arm.com> 9191 9192 * emit-rtl.h (gen_const_vec_duplicate): Declare. 9193 (gen_vec_duplicate): Likewise. 9194 * emit-rtl.c (gen_const_vec_duplicate_1): New function, split 9195 out from... 9196 (gen_const_vector): ...here. 9197 (gen_const_vec_duplicate, gen_vec_duplicate): New functions. 9198 (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants 9199 whose elements are all equal. 9200 * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate. 9201 * simplify-rtx.c (simplify_const_unary_operation): Likewise. 9202 (simplify_relational_operation): Likewise. 9203 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): 9204 Likewise. 9205 (aarch64_simd_dup_constant): Use gen_vec_duplicate. 9206 (aarch64_expand_vector_init): Likewise. 9207 * config/arm/arm.c (neon_vdup_constant): Likewise. 9208 (neon_expand_vector_init): Likewise. 9209 (arm_expand_vec_perm): Use gen_const_vec_duplicate. 9210 (arm_block_set_unaligned_vect): Likewise. 9211 (arm_block_set_aligned_vect): Likewise. 9212 * config/arm/neon.md (neon_copysignf<mode>): Likewise. 9213 * config/i386/i386.c (ix86_expand_vec_perm): Likewise. 9214 (expand_vec_perm_even_odd_pack): Likewise. 9215 (ix86_vector_duplicate_value): Use gen_vec_duplicate. 9216 * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX. 9217 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use 9218 gen_const_vec_duplicate. 9219 * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX. 9220 * config/mips/mips.c (mips_gen_const_int_vector): Use 9221 gen_const_vec_duplicate. 9222 (mips_expand_vector_init): Use CONST0_RTX. 9223 * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise. 9224 (define_split): Use gen_const_vec_duplicate. 9225 * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX. 9226 (define_split): Use gen_const_vec_duplicate. 9227 * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise. 9228 (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise. 9229 * config/spu/spu.c (spu_const): Likewise. 9230 92312017-11-01 Richard Sandiford <richard.sandiford@linaro.org> 9232 Alan Hayward <alan.hayward@arm.com> 9233 David Sherwood <david.sherwood@arm.com> 9234 9235 * combine.c (can_change_dest_mode): Reject changes in 9236 REGMODE_NATURAL_SIZE. 9237 92382017-10-31 Sandra Loosemore <sandra@codesourcery.com> 9239 9240 * configure.ac (--enable-libssp): New. 9241 (gcc_cv_libc_provides_ssp): Check for explicit setting before 9242 trying to determine target-specific default. Adjust indentation. 9243 * configure: Regenerated. 9244 * doc/install.texi (Configuration): Expand --disable-libssp 9245 documentation. 9246 92472017-10-31 Daniel Santos <daniel.santos@pobox.com> 9248 9249 config/i386/i386.c (ix86_expand_epilogue): Correct stack 9250 calculation. 9251 92522017-10-31 Martin Jambor <mjambor@suse.cz> 9253 9254 PR c++/81702 9255 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert. 9256 92572017-10-31 David Malcolm <dmalcolm@redhat.com> 9258 9259 * auto-profile.c (autofdo_source_profile::read): Use 9260 UNKNOWN_LOCATION rather than 0. 9261 * diagnostic-core.h (warning_at_rich_loc): Rename to... 9262 (warning_at): ...this overload. 9263 (warning_at_rich_loc_n): Rename to... 9264 (warning_n): ...this overload. 9265 (error_at_rich_loc): Rename to... 9266 (error_at): ...this overload. 9267 (pedwarn_at_rich_loc): Rename to... 9268 (pedwarn): ...this overload. 9269 (permerror_at_rich_loc): Rename to... 9270 (permerror): ...this overload. 9271 (inform_at_rich_loc): Rename to... 9272 (inform): ...this overload. 9273 * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl. 9274 (diagnostic_n_impl_richloc): Rename to... 9275 (diagnostic_n_impl): ...this rich_location *-based decl. 9276 (inform_at_rich_loc): Rename to... 9277 (inform): ...this, and add an assertion. 9278 (inform_n): Update for removal of location_t-based diagnostic_n_impl. 9279 (warning_at_rich_loc): Rename to... 9280 (warning_at): ...this, and add an assertion. 9281 (warning_at_rich_loc_n): Rename to... 9282 (warning_n): ...this, and add an assertion. 9283 (warning_n): Update location_t-based implementation for removal of 9284 location_t-based diagnostic_n_impl. 9285 (pedwarn_at_rich_loc): Rename to... 9286 (pedwarn): ...this, and add an assertion. 9287 (permerror_at_rich_loc): Rename to... 9288 (permerror): ...this, and add an assertion. 9289 (error_n): Update for removal of location_t-based diagnostic_n_impl. 9290 (error_at_rich_loc): Rename to... 9291 (error_at): ...this, and add an assertion. 9292 * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0. 9293 (driver::do_spec_on_infiles): Likewise. 9294 * substring-locations.c (format_warning_va): Update for renaming 9295 of inform_at_rich_loc. 9296 92972017-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> 9298 9299 * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and 9300 _Float<N>X built-in functions so that the variant without the 9301 "__builtin_" prefix is only enabled for the GNU C and Objective C 9302 languages when they are in non-strict ANSI/ISO mode. 9303 (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise. 9304 * target.def (floatn_builtin_p): Add a target hook to control 9305 whether _Float<N> and _Float<N>X built-in functions without the 9306 "__builtin_" prefix are enabled, and return true for C and 9307 Objective C in the default hook. Include langhooks.h in 9308 targhooks.c. 9309 * targhooks.h (default_floatn_builtin_p): Likewise. 9310 * targhooks.c (default_floatn_builtin_p): Likewise. 9311 * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the 9312 floatn_builtin_p target hook. 9313 * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise. 9314 93152017-10-31 Matthew Fortune <matthew.fortune@imgtec.com> 9316 Eric Botcazou <ebotcazou@adacore.com> 9317 9318 PR rtl-optimization/81803 9319 * lra-constraints.c (curr_insn_transform): Also reload the whole 9320 register for a strict subreg no wider than a word if this is for 9321 a WORD_REGISTER_OPERATIONS target. 9322 93232017-10-31 Jason Merrill <jason@redhat.com> 9324 9325 * gdbinit.in: Skip over inlines from timevar.h. 9326 93272017-10-31 Martin Liska <mliska@suse.cz> 9328 9329 * doc/gcov.texi: Document new option. 9330 * gcov.c (print_usage): Likewise print it. 9331 (process_args): Support the argument. 9332 (format_count): New function. 9333 (format_gcov): Use the function. 9334 93352017-10-31 Martin Liska <mliska@suse.cz> 9336 9337 * gcov.c (struct name_map): do not use typedef. 9338 Define operator== and operator<. 9339 (name_search): Remove. 9340 (name_sort): Remove. 9341 (main): Do not allocate names. 9342 (process_file): Add vertical space. 9343 (generate_results): Use std::find. 9344 (release_structures): Do not release memory. 9345 (find_source): Use std::find. 9346 93472017-10-31 Martin Liska <mliska@suse.cz> 9348 9349 * gcov.c (struct line_info): Remove it's typedef. 9350 (line_info::line_info): Add proper ctor. 9351 (line_info::has_block): Do not use a typedef. 9352 (struct source_info): Do not use typedef. 9353 (circuit): Likewise. 9354 (get_cycles_count): Likewise. 9355 (output_intermediate_file): Iterate via vector iterator. 9356 (add_line_counts): Use std::vector methods. 9357 (accumulate_line_counts): Likewise. 9358 (output_lines): Likewise. 9359 93602017-10-31 Martin Liska <mliska@suse.cz> 9361 9362 * gcov.c (struct source_info): Remove typedef. 9363 (source_info::source_info): Add proper ctor. 9364 (accumulate_line_counts): Use struct, not it's typedef. 9365 (output_gcov_file): Likewise. 9366 (output_lines): Likewise. 9367 (main): Do not allocate an array. 9368 (output_intermediate_file): Use size of vector container. 9369 (process_file): Resize the vector. 9370 (generate_results): Do not preallocate, use newly added vector 9371 lines. 9372 (release_structures): Do not release sources. 9373 (find_source): Use vector methods. 9374 (add_line_counts): Do not use typedef. 9375 93762017-10-31 Martin Liska <mliska@suse.cz> 9377 9378 * doc/gcov.texi: Document that. 9379 * gcov.c (add_line_counts): Mark lines with a non-executed 9380 statement. 9381 (output_line_beginning): Handle such lines. 9382 (output_lines): Pass new argument. 9383 (output_intermediate_file): Print it in intermediate format. 9384 93852017-10-31 Martin Liska <mliska@suse.cz> 9386 9387 * color-macros.h: New file. 9388 * diagnostic-color.c: Factor out color related to macros to 9389 color-macros.h. 9390 * doc/gcov.texi: Document -k option. 9391 * gcov.c (INCLUDE_STRING): Include string.h. 9392 (print_usage): Add -k option. 9393 (process_args): Parse it. 9394 (pad_count_string): New function. 9395 (output_line_beginning): Likewise. 9396 (DEFAULT_LINE_START): New macro. 9397 (output_lines): Support color output. 9398 93992017-10-31 Martin Liska <mliska@suse.cz> 9400 9401 PR gcov-profile/82633 9402 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and 9403 their interaction with GCOV infrastructure. 9404 * configure.ac: Add -fkeep-{inline,static}-functions to 9405 coverage_flags. 9406 * configure: Regenerate. 9407 94082017-10-31 Uros Bizjak <ubizjak@gmail.com> 9409 9410 PR target/82772 9411 * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM". 9412 94132017-10-31 Segher Boessenkool <segher@kernel.crashing.org> 9414 9415 PR target/82674 9416 * config/rs6000/rs6000.md (allocate_stack): Force update interval 9417 into a register if it does not fit into an immediate offset field. 9418 94192017-10-31 Olivier Hainque <hainque@adacore.com> 9420 9421 * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well. 9422 94232017-10-31 Julia Koval <julia.koval@intel.com> 9424 9425 * config.gcc: Add gfniintrin.h. 9426 * config/i386/gfniintrin.h: New. 9427 * config/i386/i386-builtin-types.def 9428 (__builtin_ia32_vgf2p8affineinvqb_v64qi, 9429 __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, 9430 __builtin_ia32_vgf2p8affineinvqb_v32qi, 9431 __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, 9432 __builtin_ia32_vgf2p8affineinvqb_v16qi, 9433 __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins. 9434 * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI, 9435 V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI, 9436 V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI, 9437 V64QI_FTYPE_V64QI_V64QI_INT): New types. 9438 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. 9439 * config/i386/immintrin.h: Include gfniintrin.h. 9440 * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern. 9441 94422017-10-30 Eric Botcazou <ebotcazou@adacore.com> 9443 9444 * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge. 9445 94462017-10-30 Wilco Dijkstra <wdijkstr@arm.com> 9447 9448 * config/arm/arm.md (ashldi3): Remove shift by 1 expansion. 9449 (arm_ashldi3_1bit): Remove pattern. 9450 (ashrdi3): Remove shift by 1 expansion. 9451 (arm_ashrdi3_1bit): Remove pattern. 9452 (lshrdi3): Remove shift by 1 expansion. 9453 (arm_lshrdi3_1bit): Remove pattern. 9454 * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase 9455 cost of ashldi3 by 1. 9456 * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion. 9457 (<shift>di3_neon): Likewise. 9458 94592017-10-30 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> 9460 9461 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename 9462 both identically named patterns to (*aarch64_simd_mov<VD:mode>) 9463 and (*aarch64_simd_mov<VQ:mode>). 9464 (*aarch64_simd_mov<VD:mode>): Change type attribute to match 9465 pattern alternative. 9466 (*aarch64_simd_mov<VQ:mode>): Re-order and change type 9467 attributes to match pattern alternative. 9468 94692017-10-30 Steven Munroe <munroesj@gcc.gnu.org> 9470 9471 * config.gcc (powerpc*-*-*): Add emmintrin.h. 9472 * config/rs6000/emmintrin.h: New file. 9473 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h. 9474 94752017-10-30 Wilco Dijkstra <wdijkstr@arm.com> 9476 9477 * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8. 9478 * (movdi_vfp_cortexa8): Remove pattern. 9479 94802017-10-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 9481 9482 * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1 9483 etc. reference. 9484 (Specific, alpha*-dec-osf5.1): Remove. 9485 (Specific, mips-sgi-irix5): Remove. 9486 (Specific, mips-sgi-irix6): Remove. 9487 94882017-10-30 Jakub Jelinek <jakub@redhat.com> 9489 9490 PR middle-end/22141 9491 * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix 9492 arguments to clear_bit_region_be. 9493 94942017-10-30 Jim Wilson <wilson@tuliptree.org> 9495 9496 * gimplify.c: Include memmodel.h. 9497 94982017-10-30 Martin Jambor <mjambor@suse.cz> 9499 9500 * omp-grid.c (grid_attempt_target_gridification): Also insert a 9501 condition whether loop should be executed at all. 9502 95032017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com> 9504 9505 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for 9506 gimple folding of vec_madd() intrinsics. 9507 * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to 9508 fmav8hi4. (altivec_vmladduhm): Rename to fmav8hi4. 9509 * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4 9510 95112017-10-30 Richard Biener <rguenther@suse.de> 9512 9513 PR tree-optimization/82762 9514 Revert 9515 2017-10-23 Richard Biener <rguenther@suse.de> 9516 9517 PR tree-optimization/82129 9518 Revert 9519 2017-08-01 Richard Biener <rguenther@suse.de> 9520 9521 PR tree-optimization/81181 9522 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... 9523 (compute_antic): ... end of iteration here. 9524 95252017-10-30 Joseph Myers <joseph@codesourcery.com> 9526 9527 * doc/invoke.texi (C Dialect Options): Document -std=c17, 9528 -std=iso9899:2017 and -std=gnu17. 9529 * doc/standards.texi (C Language): Document C17 support. 9530 * doc/cpp.texi (Overview): Mention -std=c17. 9531 (Standard Predefined Macros): Document C11 and C17 values of 9532 __STDC_VERSION__. Do not refer to C99 support as incomplete. 9533 * doc/extend.texi (Inline): Do not list individual options for 9534 standards newer than C99. 9535 * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle 9536 "GNU C17". 9537 * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17" 9538 language name. 9539 95402017-10-30 Maxim Ostapenko <m.ostapenko@samsung.com> 9541 9542 * asan.c (asan_finish_file): Align asan globals array by shadow 9543 granularity. 9544 95452017-10-30 Jakub Jelinek <jakub@redhat.com> 9546 9547 PR middle-end/22141 9548 * gimple-ssa-store-merging.c: Include rtl.h and expr.h. 9549 (struct store_immediate_info): Add bitregion_start and bitregion_end 9550 fields. 9551 (store_immediate_info::store_immediate_info): Add brs and bre 9552 arguments and initialize bitregion_{start,end} from those. 9553 (struct merged_store_group): Add bitregion_start, bitregion_end, 9554 align_base and mask fields. Drop unnecessary struct keyword from 9555 struct store_immediate_info. Add do_merge method. 9556 (clear_bit_region_be): Use memset instead of loop storing zeros. 9557 (merged_store_group::do_merge): New method. 9558 (merged_store_group::merge_into): Use do_merge. Allow gaps in between 9559 stores as long as the surrounding bitregions have no gaps. 9560 (merged_store_group::merge_overlapping): Use do_merge. 9561 (merged_store_group::apply_stores): Test that bitregion_{start,end} 9562 is byte aligned, rather than requiring that start and width are 9563 byte aligned. Drop unnecessary struct keyword from 9564 struct store_immediate_info. Allocate and populate also mask array. 9565 Make start of the arrays relative to bitregion_start rather than 9566 start and size them according to bitregion_{end,start} difference. 9567 (struct imm_store_chain_info): Drop unnecessary struct keyword from 9568 struct store_immediate_info. 9569 (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8. 9570 (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary 9571 struct keyword from struct store_immediate_info. 9572 (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in 9573 between stores as long as the surrounding bitregions have no gaps. 9574 Formatting fixes. 9575 (struct split_store): Add orig non-static data member. 9576 (split_store::split_store): Initialize orig to false. 9577 (find_constituent_stmts): Return store_immediate_info *, non-NULL 9578 if there is exactly a single original stmt. Change stmts argument 9579 to pointer from reference, if NULL, don't push anything to it. Add 9580 first argument, use it to optimize skipping over orig stmts that 9581 are known to be before bitpos already. Simplify. 9582 (split_group): Return unsigned int count how many stores are or 9583 would be needed rather than a bool. Add allow_unaligned argument. 9584 Change split_stores argument from reference to pointer, if NULL, 9585 only do a dry run computing how many stores would be produced. 9586 Rewritten algorithm to use both alignment and misalign if 9587 !allow_unaligned and handle bitfield stores with gaps. 9588 (imm_store_chain_info::output_merged_store): Set start_byte_pos 9589 from bitregion_start instead of start. Compute allow_unaligned 9590 here, if true, do 2 split_group dry runs to compute which one 9591 produces fewer stores and prefer aligned if equal. Punt if 9592 new count is bigger or equal than original before emitting any 9593 statements, rather than during that. Remove no longer needed 9594 new_ssa_names tracking. Replace num_stmts with 9595 split_stores.length (). Use 32-bit stack allocated entries 9596 in split_stores auto_vec. Try to reuse original store lhs/rhs1 9597 if possible. Handle bitfields with gaps. 9598 (pass_store_merging::execute): Ignore bitsize == 0 stores. 9599 Compute bitregion_{start,end} for the stores and construct 9600 store_immediate_info with that. Formatting fixes. 9601 96022017-10-30 Uros Bizjak <ubizjak@gmail.com> 9603 9604 PR target/82725 9605 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow 9606 UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset. 9607 96082017-10-29 Jim Wilson <wilson@tuliptree.org> 9609 9610 * gimplify.c: Include tm_p.h. 9611 9612 * common.opt (gcoff): Re-add as ignored option. 9613 (gcoff1, gcoff2, gcoff3): Likewise. 9614 9615 * Makefile.in (OBJS): Delete sdbout.o. 9616 (GTFILES): Delete $(srcdir)/sdbout.c. 9617 * debug.h: Delete sdb_debug_hooks. 9618 * final.c: Delete sdbout.h include. 9619 (final_scan_insn): Delete SDB_DEBUG check. 9620 (rest_of_clean_state): Likewise. 9621 * output.h: Delete sdb_begin_function_line. 9622 * sdbout.c: Delete. 9623 * sdbout.h: Delete. 9624 * toplev.c: Delete sdbout.h include. 9625 (process_options): Delete SDB_DEBUG check. 9626 * tree-core.h (tree_type_common): Delete pointer field of 9627 tree_type_symtab. 9628 * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of 9629 TYPE_SYMTAB_POINTER. 9630 * tree.h (TYPE_SYMTAB_POINTER): Delete. 9631 (TYPE_SYMTAB_IS_POINTER): Delete. 9632 (TYPE_SYMTAB_IS_DIE): Renumber. 9633 * xcoffout.c: Refer to former sdbout.c file. 9634 (xcoffout_begin_prologue): Use past tense for sdbout.c reference. 9635 9636 * doc/install.texi (--with-stabs): Delete COFF and ECOFF info. 9637 * doc/invoke.texi (SEEALSO): Delete adb and sdb references. 9638 (Debugging Options): Delete -gcoff. 9639 (-gstabs): Delete SDB reference. 9640 (-gcoff): Delete. 9641 (-gcoff@var{level}): Delete. 9642 * doc/passes.texi (Debugging information output): Delete SDB and 9643 sdbout.c references. 9644 * doc/tm.texi: Regenerate. 9645 * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref. 9646 (SDB and DWARF): Change node name to DWARF and delete SDB and COFF 9647 references. 9648 (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references. 9649 (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references. 9650 (SDB_DEBUGGING_INFO): Delete. 9651 (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES) 9652 SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete. 9653 * target.def (output_source_filename): Delete COFF reference. 9654 9655 * common.opt (gcoff): Delete. 9656 (gxcoff+): Update Negative chain. 9657 * defaults.h: Delete all references to SDB_DEBUGGING_INFO and 9658 SDB_DEBUG. 9659 * dwarf2out.c (gen_array_type_die): Change SDB to debuggers. 9660 * flag-types.h (enum debug_info_type): Delete SDB_DEBUG. 9661 * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG, 9662 and SDB references. 9663 (expand_function_start): Change sdb reference to past tense. 9664 (expand_function_end): Change sdb reference to past tense. 9665 * gcc.c (cpp_unique_options): Delete gcoff3 reference. 9666 * opts.c (debug_type_names): Delete coff entry. 9667 (common_handle_option): Delete OPT_gcoff case. 9668 * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison. 9669 9670 * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG. 9671 * config/cris/cris.h: Delete SDB reference in comment. 9672 * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO. 9673 (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment. 9674 * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO. 9675 * config/i386/i386.c (svr4_dbx_register_map): Change SDB references 9676 to past tense. 9677 (ix86_expand_prologue): Likewise. 9678 * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG. 9679 * config/ia64/ia64.h: Likewise. 9680 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference. 9681 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff* 9682 support. 9683 * config/mmix/mmix.h: Likewise. 9684 * config/nds32/nds32.c: Likewise. 9685 * config/stormy/storym16.h: Likewise. 9686 * config/visium/visium.h: Likewise. 9687 * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef. 9688 96892017-10-28 Sandra Loosemore <sandra@codesourcery.com> 9690 9691 * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1. 9692 * config/nios2/nios2.c (nios2_initial_elimination_offset): Make 9693 FRAME_POINTER_REGNUM point at high end of local var area. 9694 96952017-10-27 Eric Botcazou <ebotcazou@adacore.com> 9696 9697 * bb-reorder.c (find_traces_1_round): Fix off-by-one index. 9698 Move comment around. Do not reset best_edge for a copiable 9699 destination if the copy would cause a partition change. 9700 (better_edge_p): Remove redundant check. 9701 97022017-10-27 Uros Bizjak <ubizjak@gmail.com> 9703 9704 * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype. 9705 97062017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> 9707 9708 * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases 9709 for math functions that have _Float<N> and _Float<N>X variants. 9710 (mathfn_built_in_2): Add support for math functions that have 9711 _Float<N> and _Float<N>X variants. 9712 (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro. 9713 (expand_builtin_mathfn_ternary): Add support for fma with 9714 _Float<N> and _Float<N>X variants. 9715 (expand_builtin): Likewise. 9716 (fold_builtin_3): Likewise. 9717 * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to 9718 create math function _Float<N> and _Float<N>X variants as external 9719 library builtins. 9720 (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use 9721 DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using 9722 the __builtin_ prefix and if not strict ansi, without the prefix. 9723 (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise. 9724 (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise. 9725 (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise. 9726 (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise. 9727 (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise. 9728 (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise. 9729 * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New 9730 function signatures for fma _Float<N> and _Float<N>X variants. 9731 (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise. 9732 (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise. 9733 (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise. 9734 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise. 9735 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise. 9736 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise. 9737 * gencfn-macros.c (print_case_cfn): Add support for math functions 9738 that have _Float<N> and _Float<N>X variants. 9739 (print_define_operator_list): Likewise. 9740 (fltfn_suffixes): Likewise. 9741 (main): Likewise. 9742 * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro 9743 for math functions that have _Float<N> and _Float<N>X variants. 9744 (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N> 9745 and _Float<N>X variants. 9746 (COPYSIGN): Likewise. 9747 (FMIN): Likewise. 9748 (FMAX): Likewise. 9749 * fold-const.c (tree_call_nonnegative_warnv_p): Add support for 9750 copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X 9751 variants. 9752 (integer_valued_read_call_p): Likewise. 9753 * fold-const-call.c (fold_const_call_ss): Likewise. 9754 (fold_const_call_sss): Add support for copysign, fmin, and fmax 9755 _Float<N> and _Float<N>X variants. 9756 (fold_const_call_ssss): Add support for fma _Float<N> and 9757 _Float<N>X variants. 9758 * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add 9759 support for copysign and fma _Float<N> and _Float<N>X variants. 9760 (backprop::process_builtin_call_use): Likewise. 9761 * tree-call-cdce.c (can_test_argument_range); Add support for 9762 sqrt _Float<N> and _Float<N>X variants. 9763 (edom_only_function): Likewise. 9764 (get_no_error_domain): Likewise. 9765 * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise. 9766 * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for 9767 copysign _Float<N> and _Float<N>X variants. 9768 * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now 9769 handled by machine independent code. 9770 (FMAF128): Likewise. 9771 * doc/cpp.texi (Common Predefined Macros): Document defining 9772 __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports 9773 fma _Float<N> and _Float<N>X variants. 9774 97752017-10-27 Uros Bizjak <ubizjak@gmail.com> 9776 9777 PR target/82692 9778 * config/i386/i386-modes.def (CCFPU): Remove definition. 9779 * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling. 9780 (ix86_cc_modes_compatible): Ditto. 9781 (ix86_expand_carry_flag_compare): Ditto. 9782 (ix86_expand_int_movcc): Ditto. 9783 (ix86_expand_int_addcc): Ditto. 9784 (ix86_reverse_condition): Ditto. 9785 (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode. 9786 Return true/false for unordered/ordered fp comparisons. 9787 (ix86_cc_mode): Always return CCFPmode for float mode comparisons. 9788 (ix86_prepare_fp_compare_args): Update for rename. 9789 (ix86_expand_fp_compare): Update for rename. Generate unordered 9790 compare RTXes wrapped with UNSPEC_NOTRAP unspec. 9791 (ix86_expand_sse_compare_and_jump): Ditto. 9792 * config/i386/predicates.md (fcmov_comparison_operator): 9793 Remove CCFPU mode handling. 9794 (ix86_comparison_operator): Ditto. 9795 (ix86_carry_flag_operator): Ditto. 9796 * config/i386/i386.md (UNSPEC_NOTRAP): New unspec. 9797 (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec. 9798 (*cmpu<mode>_cc_i387): Ditto. 9799 (FPCMP): Remove mode iterator. 9800 (unord): Remove mode attribute. 9801 (unord_subst): New define_subst transformation 9802 (unord): New define_subst attribute. 9803 (unordered): Ditto. 9804 (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation. 9805 (*cmpi<unord>xf_i387): Ditto. 9806 * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge 9807 from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name> 9808 using unord_subst transformation. 9809 * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes. 9810 (round_saeonly): Also handle CCFP mode. 9811 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec. 9812 Remove UNSPEC_SAHF unspec handling. 9813 98142017-10-27 Jan Hubicka <hubicka@ucw.cz> 9815 9816 * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen. 9817 98182017-10-27 Jeff Law <law@redhat.com> 9819 9820 * gimple-ssa-sprintf.c: Include domwalk.h. 9821 (class sprintf_dom_walker): New class, derived from dom_walker. 9822 (sprintf_dom_walker::before_dom_children): New function. 9823 (struct call_info): Moved into sprintf_dom_walker class 9824 (compute_formath_length, handle_gimple_call): Likewise. 9825 (sprintf_length::execute): Call the dominator walker rather 9826 than walking the statements. 9827 9828 * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle 9829 gimple statement locations. 9830 (check_array_bounds): Corresponding changes. Get the statement's 9831 location directly from wi->stmt. 9832 98332017-10-27 Palmer Dabbelt <palmer@dabbelt.com> 9834 9835 PR target/82717 9836 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve. 9837 98382017-10-27 Jan Hubicka <hubicka@ucw.cz> 9839 9840 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, 9841 X86_TUNE_MOVX): Disable for Haswell and newer CPUs. 9842 98432017-10-27 Jakub Jelinek <jakub@redhat.com> 9844 9845 PR target/82703 9846 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed. 9847 * config/i386/i386.c (maybe_get_pool_constant): Removed. 9848 (ix86_split_to_parts): Use avoid_constant_pool_reference instead of 9849 maybe_get_pool_constant. 9850 * config/i386/predicates.md (zero_extended_scalar_load_operand): 9851 Likewise. 9852 98532017-10-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 9854 9855 * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas 9856 2.26 caveat. Update gas and gld versions. 9857 (Specific, *-*-solaris2*): Update binutils version. Remove caveat 9858 reference. 9859 98602017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 9861 9862 * cgraph.h (set_malloc_flag): Declare. 9863 * cgraph.c (set_malloc_flag_1): New function. 9864 (set_malloc_flag): Likewise. 9865 * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee. 9866 * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to 9867 false. 9868 (read_ipa_call_summary): Add support for reading is_return_callee. 9869 (write_ipa_call_summary): Stream is_return_callee. 9870 * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary. 9871 * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h, 9872 ipa-prop.h, ipa-fnsummary.h. 9873 (pure_const_names): Change to static. 9874 (malloc_state_e): Define. 9875 (malloc_state_names): Define. 9876 (funct_state_d): Add field malloc_state. 9877 (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM. 9878 (check_retval_uses): New function. 9879 (malloc_candidate_p): Likewise. 9880 (analyze_function): Add support for malloc attribute. 9881 (pure_const_write_summary): Stream malloc_state. 9882 (pure_const_read_summary): Add support for reading malloc_state. 9883 (dump_malloc_lattice): New function. 9884 (propagate_malloc): New function. 9885 (warn_function_malloc): New function. 9886 (ipa_pure_const::execute): Call propagate_malloc and 9887 ipa_free_fn_summary. 9888 (pass_local_pure_const::execute): Add support for malloc attribute. 9889 * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro. 9890 * doc/invoke.texi: Document Wsuggest-attribute=malloc. 9891 98922017-10-27 Martin Liska <mliska@suse.cz> 9893 9894 PR gcov-profile/82457 9895 * doc/invoke.texi: Document that one needs a non-strict ISO mode 9896 for fork-like functions to be properly instrumented. 9897 98982017-10-27 Richard Biener <rguenther@suse.de> 9899 9900 PR middle-end/81659 9901 * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator 9902 info when we redirected EH. 9903 99042017-10-26 Michael Collison <michael.collison@arm.com> 9905 9906 * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2): 9907 New pattern. 9908 (<optab>_trunchf<GPI:mode>2: New pattern. 9909 (<optab>_trunc<vgp><GPI:mode>2: New pattern. 9910 * config/aarch64/iterators.md (wv): New mode attribute. 9911 (vf, VF): New mode attributes. 9912 (vgp, VGP): New mode attributes. 9913 (s): Update attribute with SImode and DImode prefixes. 9914 99152017-10-26 Sandra Loosemore <sandra@codesourcery.com> 9916 9917 * config/nios2/constraints.md ("S"): Match r0rel_constant_p too. 9918 * config/nios2/nios2-protos.h (r0rel_constant_p): Declare. 9919 * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New. 9920 (nios2_option_overide): Initialize it. Don't allow R0-relative 9921 addressing with PIC. 9922 (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p. 9923 (nios2_symbolic_constant_p): Likewise. 9924 (nios2_legitimate_address_p): Likewise. 9925 (nios2_r0rel_section_name_p): New. 9926 (nios2_symbol_ref_in_r0rel_data_p): New. 9927 (nios2_emit_move_sequence): Handle r0rel_constant_p. 9928 (r0rel_constant_p): New. 9929 (nios2_print_operand_address): Handle r0rel_constant_p. 9930 (nios2_cdx_narrow_form_p): Likewise. 9931 * config/nios2/nios2.opt (mr0rel-sec=): New option. 9932 * doc/invoke.texi (Option Summary): Add -mr0rel-sec. 9933 (Nios II Options): Document -mr0rel-sec. 9934 99352017-10-26 Sandra Loosemore <sandra@codesourcery.com> 9936 9937 * config/nios2/nios2.c: Include xregex.h. 9938 (nios2_gprel_sec_regex): New. 9939 (nios2_option_overide): Initialize it. Don't allow GP-relative 9940 addressing with PIC. 9941 (nios2_small_section_name_p): Check for regex match. 9942 * config/nios2/nios2.opt (mgprel-sec=): New option. 9943 * doc/invoke.texi (Option Summary): Add -mgprel-sec. 9944 (Nios II Options): Document -mgprel-sec. 9945 99462017-10-26 Jim Wilson <wilson@tuliptree.org> 9947 9948 * doc/invoke.texi (-fdebug-prefix-map): Expand documentation. 9949 99502017-10-26 Tom de Vries <tom@codesourcery.com> 9951 9952 PR tree-optimization/82707 9953 * gimple.c (gimple_copy): Fix unsharing of 9954 GIMPLE_OMP_{SINGLE,TARGET,TEAMS}. 9955 99562017-10-26 Olga Makhotina <olga.makhotina@intel.com> 9957 9958 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, 9959 _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, 9960 _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, 9961 _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, 9962 _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, 9963 _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, 9964 _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, 9965 _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, 9966 _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask, 9967 _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, 9968 _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, 9969 _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, 9970 _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, 9971 _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, 9972 _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, 9973 _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, 9974 _mm512_mask_cmpunord_ps_mask): New intrinsics. 9975 99762017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com> 9977 9978 * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double 9979 default to IBM. 9980 * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise. 9981 * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the 9982 warning to rs6000.c. Remove the Undocumented flag, since it has 9983 been documented. 9984 (-mabi=ibmlongdouble): Likewise. 9985 * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not 9986 already set, set the default format for long double. 9987 (rs6000_debug_reg_global): Print whether long double is IBM or 9988 IEEE. 9989 (rs6000_option_override_internal): Rework setting long double 9990 format. Only warn if the user is changing the long double default 9991 and they did not use -Wno-psabi. 9992 * doc/invoke.texi (PowerPC options): Update the documentation for 9993 -mabi=ieeelongdouble and -mabi=ibmlongdouble. 9994 99952017-10-26 Richard Sandiford <richard.sandiford@linaro.org> 9996 Alan Hayward <alan.hayward@arm.com> 9997 David Sherwood <david.sherwood@arm.com> 9998 9999 * rtl.h (wider_subreg_mode): New function. 10000 * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode * 10001 rather than an unsigned int *. 10002 * ira-color.c (regno_max_ref_width): Replace with... 10003 (regno_max_ref_mode): ...this new variable. 10004 (coalesced_pseudo_reg_slot_compare): Update accordingly. 10005 Use wider_subreg_mode. 10006 (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode * 10007 rather than an unsigned int *. 10008 * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode. 10009 (process_alt_operands): Likewise. 10010 (invariant_p): Likewise. 10011 * lra-spills.c (assign_mem_slot): Likewise. 10012 (add_pseudo_to_slot): Likewise. 10013 * lra.c (collect_non_operand_hard_regs): Likewise. 10014 (add_regs_to_insn_regno_info): Likewise. 10015 * reload1.c (regno_max_ref_width): Replace with... 10016 (regno_max_ref_mode): ...this new variable. 10017 (reload): Update accordingly. Update call to 10018 ira_sort_regnos_for_alter_reg. 10019 (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode. 10020 (init_eliminable_invariants): Update to use regno_max_ref_mode. 10021 (scan_paradoxical_subregs): Likewise. 10022 100232017-10-26 Wilco Dijkstra <wdijkstr@arm.com> 10024 10025 * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used. 10026 (aarch64_frame): Add emit_frame_chain boolean. 10027 * config/aarch64/aarch64.c (aarch64_frame_pointer_required) 10028 Move eh_return case to aarch64_layout_frame. 10029 (aarch64_layout_frame): Initialize emit_frame_chain. 10030 (aarch64_expand_prologue): Use emit_frame_chain. 10031 100322017-10-26 Wilco Dijkstra <wdijkstr@arm.com> 10033 10034 * config/aarch64/aarch64.c (aarch64_layout_frame): 10035 Ensure LR is always stored at the bottom of the callee-saves. 10036 Remove rarely used frame layout which saves callee-saves at top of 10037 frame, so the store of LR can be used as a valid probe in all cases. 10038 100392017-10-26 Wilco Dijkstra <wdijkstr@arm.com> 10040 10041 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): 10042 Improve unaligned TImode/TFmode base/offset split. 10043 100442017-10-26 Richard Sandiford <richard.sandiford@linaro.org> 10045 Alan Hayward <alan.hayward@arm.com> 10046 David Sherwood <david.sherwood@arm.com> 10047 10048 * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p. 10049 * combine.c (find_single_use_1): Likewise. 10050 (expand_field_assignment): Likewise. 10051 (move_deaths): Likewise. 10052 * lra-constraints.c (simplify_operand_subreg): Likewise. 10053 (curr_insn_transform): Likewise. 10054 * lra.c (collect_non_operand_hard_regs): Likewise. 10055 (add_regs_to_insn_regno_info): Likewise. 10056 * rtlanal.c (reg_referenced_p): Likewise. 10057 (covers_regno_no_parallel_p): Likewise. 10058 100592017-10-26 Richard Sandiford <richard.sandiford@linaro.org> 10060 10061 * wide-int-print.cc (print_hex): Loop based on extract_uhwi. 10062 Don't print any bits outside the precision of the value. 10063 * wide-int.cc (test_printing): Add some new tests. 10064 100652017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 10066 10067 * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler 10068 supports -xbrace_comment option. 10069 * configure: Regenerate. 10070 * config.in: Regenerate. 10071 * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define. 10072 (ASM_CPU_SPEC): Use it. 10073 100742017-10-26 Richard Sandiford <richard.sandiford@linaro.org> 10075 10076 * target.def (static_rtx_alignment): New hook. 10077 * targhooks.h (default_static_rtx_alignment): Declare. 10078 * targhooks.c (default_static_rtx_alignment): New function. 10079 * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook. 10080 * doc/tm.texi: Regenerate. 10081 * varasm.c (force_const_mem): Use targetm.static_rtx_alignment 10082 instead of targetm.constant_alignment. Remove call to 10083 set_mem_attributes. 10084 * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. 10085 (cris_preferred_mininum_alignment): New function, split out from... 10086 (cris_constant_alignment): ...here. 10087 (cris_static_rtx_alignment): New function. 10088 * config/i386/i386.c (ix86_static_rtx_alignment): New function, 10089 split out from... 10090 (ix86_constant_alignment): ...here. 10091 (TARGET_STATIC_RTX_ALIGNMENT): Redefine. 10092 * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. 10093 (mmix_static_rtx_alignment): New function. 10094 * config/spu/spu.c (spu_static_rtx_alignment): New function. 10095 (TARGET_STATIC_RTX_ALIGNMENT): Redefine. 10096 100972017-10-26 Tamar Christina <tamar.christina@arm.com> 10098 10099 PR target/81800 10100 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): 10101 Add flag_trapping_math and flag_fp_int_builtin_inexact. 10102 101032017-10-25 Palmer Dabbelt <palmer@dabbelt.com> 10104 10105 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. 10106 * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, 10107 mark as a sign-extending load. 10108 (local_pic_load_u): Define. 10109 101102017-10-25 Eric Botcazou <ebotcazou@adacore.com> 10111 10112 PR middle-end/82062 10113 * fold-const.c (operand_equal_for_comparison_p): Also return true 10114 if ARG0 is a simple variant of ARG1 with narrower precision. 10115 (fold_ternary_loc): Always pass unstripped operands to the predicate. 10116 101172017-10-25 Jan Hubicka <hubicka@ucw.cz> 10118 10119 * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather 10120 cost correctly. 10121 * i386.h (processor_costs): Add gather_static, gather_per_elt, 10122 scatter_static, scatter_per_elt. 10123 * x86-tune-costs.h: Add new cost entries. 10124 101252017-10-25 Richard Biener <rguenther@suse.de> 10126 10127 * tree-ssa-sccvn.h (vn_eliminate): Declare. 10128 * tree-ssa-pre.c (class eliminate_dom_walker, eliminate, 10129 class pass_fre): Move to ... 10130 * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate, 10131 class pass_fre): ... here and adjust for statistics. 10132 101332017-10-25 Jakub Jelinek <jakub@redhat.com> 10134 10135 PR libstdc++/81706 10136 * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal 10137 for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}. 10138 (duplicate_one_attribute, copy_attributes_to_builtin): New functions. 10139 * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New 10140 declarations. 10141 101422017-10-25 Richard Biener <rguenther@suse.de> 10143 10144 * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove, 10145 el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail, 10146 eliminate_push_avail, eliminate_insert): Move inside... 10147 (class eliminate_dom_walker): ... this class in preparation 10148 of move. 10149 (fini_eliminate): Remove by merging with ... 10150 (eliminate): ... this function. Adjust for class changes. 10151 (pass_pre::execute): Remove fini_eliminate call. 10152 (pass_fre::execute): Likewise. 10153 101542017-10-24 Jakub Jelinek <jakub@redhat.com> 10155 10156 PR target/82460 10157 * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove. 10158 (VPERMI2, VPERMI2I): New mode iterators. 10159 (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns. 10160 (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn 10161 patterns. 10162 (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2 10163 mode iterator. Remove 3 old define_insn patterns. 10164 (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns. 10165 (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use 10166 VPERMI2 mode iterator, remove the other two expanders. 10167 (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn 10168 to use VPERMI2 mode iterator, add another alternative for vpermi2* 10169 instructions, remove the other two patterns. 10170 (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2 10171 mode iterator, remove the other two patterns. 10172 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ... 10173 (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0 10174 arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2* 10175 and adjust argument order accordingly. 10176 (ix86_expand_vec_perm): Adjust caller. 10177 (expand_vec_perm_1): Likewise. 10178 (expand_vec_perm_vpermi2_vpshub2): Rename to ... 10179 (expand_vec_perm_vpermt2_vpshub2): ... this. 10180 (ix86_expand_vec_perm_const_1): Adjust caller. 10181 (ix86_vectorize_vec_perm_const_ok): Adjust comments. 10182 10183 PR target/82370 10184 * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode. 10185 (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators. 10186 (vec_shl_<mode>): Remove unused expander. 10187 (avx512bw_<shift_insn><mode>3): New define_insn. 10188 (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ... 10189 (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn. 10190 101912017-10-24 Paolo Carlini <paolo.carlini@oracle.com> 10192 10193 PR c++/82466 10194 * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend 10195 description. 10196 101972017-10-24 Wilco Dijkstra <wdijkstr@arm.com> 10198 10199 PR rtl-optimization/82396 10200 * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround. 10201 (autopref_multipass_init): Simplify initialization. 10202 (autopref_rank_data): Simplify sort order. 10203 * gcc/sched-int.h (autopref_multipass_data_): Remove 10204 multi_mem_insn_p, min_offset and max_offset. 10205 102062017-10-24 Wilco Dijkstra <wdijkstr@arm.com> 10207 10208 PR middle-end/60580 10209 * config/aarch64/aarch64.c (aarch64_frame_pointer_required) 10210 Check special value of flag_omit_frame_pointer. 10211 (aarch64_can_eliminate): Likewise. 10212 (aarch64_override_options_after_change_1): Simplify handling of 10213 -fomit-frame-pointer and -fomit-leaf-frame-pointer. 10214 102152017-10-24 Richard Biener <rguenther@suse.de> 10216 10217 PR tree-optimization/82697 10218 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set 10219 zero for conditional load and unconditional store. 10220 102212017-10-24 H.J. Lu <hongjiu.lu@intel.com> 10222 10223 * doc/install.texi: Document bootstrap-cet. 10224 102252017-10-24 H.J. Lu <hongjiu.lu@intel.com> 10226 10227 PR target/82659 10228 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert 10229 ENDBR instruction at function entrance if function is only 10230 called directly. 10231 102322017-10-24 Jakub Jelinek <jakub@redhat.com> 10233 10234 PR target/82628 10235 * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change 10236 patterns to better describe from which operation the CF is computed. 10237 (addcarry<mode>_0, subborrow<mode>_0): New patterns. 10238 * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass 10239 one LTU with [DT]Imode and another one with [SD]Imode. If arg0 10240 is 0, use _0 suffixed expanders instead of emitting a comparison 10241 before it. 10242 102432017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com> 10244 10245 * config/i386/i386.md(*movsf_internal, *movdf_internal): 10246 Avoid 512-bit AVX modes for TARGET_PREFER_AVX256. 10247 102482017-10-24 Eric Botcazou <ebotcazou@adacore.com> 10249 10250 PR middle-end/82569 10251 * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete. 10252 * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change. 10253 * loop-iv.c (iv_get_reaching_def): Likewise. 10254 * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the 10255 variable is promoted and the partition contains undefined values. 10256 102572017-10-23 Sandra Loosemore <sandra@codesourcery.com> 10258 10259 * config/nios2/nios2.c (nios2_rtx_costs): Make costs better 10260 reflect reality. 10261 (nios2_address_cost): Define. 10262 (nios2_legitimize_address): Recognize (exp + constant) directly. 10263 (TARGET_ADDRESS_COST): Define. 10264 102652017-10-23 Sandra Loosemore <sandra@codesourcery.com> 10266 10267 * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare. 10268 (nios2_symbolic_memory_operand_p): Declare. 10269 (nios2_split_large_constant): Declare. 10270 (nios2_split_symbolic_memory_operand): Declare. 10271 * config/nios2/nios2.c: Adjust includes. 10272 (nios2_symbolic_constant_allowed): New. 10273 (nios2_symbolic_constant_p): New. 10274 (nios2_plus_symbolic_constant_p): New. 10275 (nios2_valid_addr_expr_p): Recognize addresses involving 10276 symbolic constants. 10277 (nios2_legitimate_address_p): Likewise, also LO_SUM. 10278 (nios2_symbolic_memory_operand_p): New. 10279 (nios2_large_constant_p): New. 10280 (nios2_split_large_constant): New. 10281 (nios2_split_plus_large_constant): New. 10282 (nios2_split_symbolic_memory_operand): New. 10283 (nios2_legitimize_address): Code refactoring. Handle addresses 10284 involving symbolic constants. 10285 (nios2_emit_move_sequence): Likewise. 10286 (nios2_print_operand): Improve error output. 10287 (nios2_print_operand_address): Handle LO_SUM. 10288 (nios2_cdx_narrow_form_p): Likewise. 10289 * config/nios2/nios2.md (movqi_internal): Add splitter for memory 10290 operands involving symbolic constants. 10291 (movhi_internal, movsi_internal): Likewise. 10292 (zero_extendhisi2, zero_extendqi<mode>2): Likewise. 10293 (extendhisi2, extendqi<mode>2): Likewise. 10294 102952017-10-23 Sandra Loosemore <sandra@codesourcery.com> 10296 10297 * tree-pass.h (PROP_rtl_split_insns): Define. 10298 * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns. 10299 103002017-10-23 Sandra Loosemore <sandra@codesourcery.com> 10301 10302 * config/nios2/nios2.c (TARGET_LRA_P): Don't override. 10303 103042017-10-23 Jakub Jelinek <jakub@redhat.com> 10305 10306 PR debug/82630 10307 * target.def (const_not_ok_for_debug_p): Default to 10308 default_const_not_ok_for_debug_p instead of hook_bool_rtx_false. 10309 * targhooks.h (default_const_not_ok_for_debug_p): New declaration. 10310 * targhooks.c (default_const_not_ok_for_debug_p): New function. 10311 * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for 10312 which targetm.const_not_ok_for_debug_p returned true. 10313 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true 10314 for UNSPECs. 10315 * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p): 10316 Likewise. 10317 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise. 10318 * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize 10319 UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol 10320 if !base_term_p. 10321 (ix86_const_not_ok_for_debug_p): New function. 10322 (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF. 10323 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine. 10324 103252017-10-23 David Malcolm <dmalcolm@redhat.com> 10326 10327 PR bootstrap/82610 10328 * system.h: Conditionally include "unique-ptr.h" if 10329 INCLUDE_UNIQUE_PTR is defined. 10330 * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor 10331 of defining INCLUDE_UNIQUE_PTR before including "system.h". 10332 103332017-10-23 Sebastian Perta <sebastian.perta@renesas.com> 10334 10335 * config/rl78/rl78.md: New define_expand "subdi3". 10336 103372017-10-23 H.J. Lu <hongjiu.lu@intel.com> 10338 10339 PR target/82673 10340 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip 10341 DF_REF_INSN if DF_REF_INSN_INFO is false. 10342 103432017-10-23 Jan Hubicka <hubicka@ucw.cz> 10344 10345 * i386.c (dimode_scalar_chain::compute_convert_gain): Use 10346 xmm_move instead of sse_move. 10347 (sse_store_index): New function. 10348 (ix86_register_move_cost): Be more sensible about mismatch stall; 10349 model AVX moves correctly; make difference between sse->integer and 10350 integer->sse. 10351 (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned 10352 moves; make difference between SSE and AVX. 10353 * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move 10354 and zmm_move. Increase size of sse load and store tables; 10355 add unaligned load and store tables; add ssemmx_to_integer. 10356 * x86-tune-costs.h: Update all entries according to real 10357 move latencies from Agner Fog's manual and chip documentation. 10358 103592017-10-23 Jakub Jelinek <jakub@redhat.com> 10360 10361 PR target/82628 10362 * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New. 10363 * config/i386/constraints.md (Wf): New constraint. 10364 * config/i386/i386.md (UNSPEC_SBB): New unspec. 10365 (cmp<dwi>_doubleword): Removed. 10366 (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns. 10367 (sub<mode>3_carry_ccgz): Use unspec instead of compare. 10368 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't 10369 expand with cmp<dwi>_doubleword. For LTU and GEU use 10370 sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode. 10371 10372 * common.opt (gcolumn-info): Enable by default. 10373 * doc/invoke.texi (gcolumn-info): Document new default. 10374 103752017-10-23 Richard Biener <rguenther@suse.de> 10376 10377 PR tree-optimization/82672 10378 * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block): 10379 Fold the stmt if we propagated into it. 10380 103812017-10-23 Richard Biener <rguenther@suse.de> 10382 10383 * tree-ssa-pre.c (bitmap_remove_from_set): Rename to... 10384 (bitmap_remove_expr_from_set): ... this. All callers call this 10385 for non-constant values. 10386 (bitmap_set_subtract): Rename to... 10387 (bitmap_set_subtract_expressions): ... this. Adjust and 10388 optimize. 10389 (bitmap_set_contains_value): Remove superfluous check. 10390 (bitmap_set_replace_value): Inline into single caller ... 10391 (bitmap_value_replace_in_set): ... here and simplify. 10392 (dependent_clean): Merge into ... 10393 (clean): ... this using an overload. Adjust. 10394 (prune_clobbered_mems): Adjust. 10395 (compute_antic_aux): Likewise. 10396 (compute_partial_antic_aux): Likewise. 10397 103982017-10-23 Richard Biener <rguenther@suse.de> 10399 10400 PR tree-optimization/82129 10401 Revert 10402 2017-08-01 Richard Biener <rguenther@suse.de> 10403 10404 PR tree-optimization/81181 10405 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... 10406 (compute_antic): ... end of iteration here. 10407 104082017-10-23 Richard Sandiford <richard.sandiford@linaro.org> 10409 10410 * target.def (starting_frame_offset): New hook. 10411 * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of... 10412 (TARGET_STARTING_FRAME_OFFSET): ...this new hook. 10413 * doc/tm.texi.in: Regenerate. 10414 * hooks.h (hook_hwi_void_0): Declare. 10415 * hooks.c (hook_hwi_void_0): New function. 10416 * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of 10417 STARTING_FRAME_OFFSET. 10418 * builtins.c (expand_builtin_setjmp_receiver): Likewise. 10419 * reload1.c (reload): Likewise. 10420 * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset 10421 instead of STARTING_FRAME_OFFSET. 10422 * function.c (try_fit_stack_local): Likewise. 10423 (assign_stack_local_1): Likewise 10424 (instantiate_virtual_regs): Likewise. 10425 * rtlanal.c (rtx_addr_can_trap_p_1): Likewise. 10426 * config/avr/avr.md (nonlocal_goto_receiver): Likewise. 10427 * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete. 10428 * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise. 10429 * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise. 10430 * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise. 10431 * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise. 10432 * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise. 10433 * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise. 10434 * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise. 10435 * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise. 10436 * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise. 10437 * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise. 10438 * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise. 10439 * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise. 10440 * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise. 10441 * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise. 10442 * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise. 10443 * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise. 10444 * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise. 10445 * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise. 10446 * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise. 10447 * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise. 10448 * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise. 10449 * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise. 10450 * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise. 10451 * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise. 10452 * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise. 10453 * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise. 10454 * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise. 10455 * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise. 10456 * config/sparc/sparc.c (sparc_compute_frame_size): Likewise. 10457 * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise. 10458 * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise. 10459 * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise. 10460 * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise. 10461 * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise. 10462 * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise. 10463 * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise. 10464 * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise. 10465 * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise. 10466 * config/avr/avr.c (avr_starting_frame_offset): Make static and 10467 return a HOST_WIDE_INT. 10468 (avr_builtin_setjmp_frame_value): Use it instead of 10469 STARTING_FRAME_OFFSET. 10470 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10471 * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete. 10472 * config/epiphany/epiphany.c (epiphany_starting_frame_offset): 10473 New function. 10474 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10475 * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete. 10476 * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function. 10477 (TARGET_CONSTANT_ALIGNMENT): Redefine. 10478 * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete. 10479 * config/lm32/lm32.c (lm32_starting_frame_offset): New function. 10480 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10481 * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete. 10482 * config/m32r/m32r.c (m32r_starting_frame_offset): New function. 10483 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10484 * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete. 10485 * config/microblaze/microblaze.c (microblaze_starting_frame_offset): 10486 New function. 10487 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10488 * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete. 10489 * config/mips/mips.c (mips_compute_frame_info): Refer to 10490 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. 10491 (mips_starting_frame_offset): New function. 10492 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10493 * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete. 10494 * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete. 10495 * config/mmix/mmix.c (mmix_starting_frame_offset): Make static 10496 and return a HOST_WIDE_INT. 10497 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10498 (mmix_initial_elimination_offset): Refer to 10499 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. 10500 * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete. 10501 * config/pa/pa.c (pa_starting_frame_offset): New function. 10502 (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET. 10503 (pa_expand_prologue): Likewise. 10504 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10505 * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out 10506 !FRAME_GROWS_DOWNWARD handling to... 10507 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10508 * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out 10509 !FRAME_GROWS_DOWNWARD handling to... 10510 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10511 * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out 10512 !FRAME_GROWS_DOWNWARD handling to... 10513 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10514 * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET): 10515 Redefine. 10516 (rs6000_starting_frame_offset): New function. 10517 * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out 10518 !FRAME_GROWS_DOWNWARD handling to... 10519 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10520 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out 10521 !FRAME_GROWS_DOWNWARD handling to... 10522 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10523 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out 10524 !FRAME_GROWS_DOWNWARD handling to... 10525 (RS6000_STARTING_FRAME_OFFSET): ...this new macro. 10526 * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine. 10527 (rs6000_starting_frame_offset): New function. 10528 * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete. 10529 * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete. 10530 * config/vax/vax.c (vax_starting_frame_offset): New function. 10531 (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET. 10532 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10533 * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete. 10534 * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function. 10535 (TARGET_STARTING_FRAME_OFFSET): Redefine. 10536 * system.h (STARTING_FRAME_OFFSET): Poison. 10537 105382017-10-23 Richard Sandiford <richard.sandiford@linaro.org> 10539 10540 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 10541 SCALAR_TYPE_MODE instead of TYPE_MODE. 10542 105432017-10-23 Richard Sandiford <richard.sandiford@linaro.org> 10544 Alan Hayward <alan.hayward@arm.com> 10545 David Sherwood <david.sherwood@arm.com> 10546 10547 * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE 10548 105492017-10-23 Richard Sandiford <richard.sandiford@linaro.org> 10550 Alan Hayward <alan.hayward@arm.com> 10551 David Sherwood <david.sherwood@arm.com> 10552 10553 * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode. 10554 105552017-10-23 Richard Biener <rguenther@suse.de> 10556 10557 PR tree-optimization/82129 10558 * tree-ssa-pre.c (bitmap_set_and): Remove. 10559 (compute_antic_aux): Compute ANTIC_OUT intersection in a way 10560 canonicalizing expressions in the set to those with lowest 10561 ID rather than taking that from the first edge. 10562 105632017-10-23 Richard Sandiford <richard.sandiford@linaro.org> 10564 10565 * combine.c (rtx_equal_for_field_assignment_p): Use 10566 byte_lowpart_offset. 10567 105682017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10569 Alan Hayward <alan.hayward@arm.com> 10570 David Sherwood <david.sherwood@arm.com> 10571 10572 * internal-fn.c (expand_direct_optab_fn): Don't assign directly 10573 to a SUBREG_PROMOTED_VAR. 10574 105752017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10576 Alan Hayward <alan.hayward@arm.com> 10577 David Sherwood <david.sherwood@arm.com> 10578 10579 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION. 10580 (expand_debug_source_expr): Likewise. 10581 * combine.c (combine_simplify_rtx): Likewise. 10582 * cse.c (fold_rtx): Likewise. 10583 * optabs.c (expand_float): Likewise. 10584 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 10585 (simplify_binary_operation_1): Likewise. 10586 105872017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10588 Alan Hayward <alan.hayward@arm.com> 10589 David Sherwood <david.sherwood@arm.com> 10590 10591 * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P. 10592 (record_promoted_value): Likewise. 10593 * expr.c (expand_expr_real_2): Likewise. 10594 * ree.c (update_reg_equal_equiv_notes): Likewise. 10595 (combine_set_extension): Likewise. 10596 * rtlanal.c (low_bitmask_len): Likewise. 10597 * simplify-rtx.c (neg_const_int): Likewise. 10598 (simplify_binary_operation_1): Likewise. 10599 106002017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10601 Alan Hayward <alan.hayward@arm.com> 10602 David Sherwood <david.sherwood@arm.com> 10603 10604 * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset. 10605 * regcprop.c (maybe_mode_change): Likewise. 10606 * reload1.c (alter_reg): Likewise. 10607 106082017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10609 10610 * inchash.h (inchash::hash::add_wide_int): New function. 10611 * lto-streamer-out.c (hash_tree): Use it. 10612 106132017-10-22 Richard Sandiford <richard.sandiford@linaro.org> 10614 10615 * inchash.h (inchash::hash::add_wide_int): Rename to... 10616 (inchash::hash::add_hwi): ...this. 10617 * ipa-devirt.c (hash_odr_vtable): Update accordingly. 10618 (polymorphic_call_target_hasher::hash): Likewise. 10619 * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise. 10620 (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash) 10621 (sem_item_optimizer::update_hash_by_addr_refs): Likewise. 10622 * lto-streamer-out.c (hash_tree): Likewise. 10623 * optc-save-gen.awk: Likewise. 10624 * tree.c (add_expr): Likewise. 10625 106262017-10-22 Uros Bizjak <ubizjak@gmail.com> 10627 10628 PR target/52451 10629 * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode 10630 for ordered inequality comparisons even with TARGET_IEEE_FP. 10631 106322017-10-22 Uros Bizjak <ubizjak@gmail.com> 10633 10634 PR target/82628 10635 * config/i386/i386.md (cmp<dwi>_doubleword): New pattern. 10636 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: 10637 Expand with cmp<dwi>_doubleword. 10638 106392017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 10640 10641 * extend.texi: Add x86 specific to 'nocf_check' attribute. 10642 List CET intrinsics. 10643 * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86 10644 specific to -fcf-protection option. 10645 106462017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 10647 10648 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New. 10649 (OPTION_MASK_ISA_SHSTK_SET): Likewise. 10650 (OPTION_MASK_ISA_IBT_UNSET): Likewise. 10651 (OPTION_MASK_ISA_SHSTK_UNSET): Likewise. 10652 (ix86_handle_option): Add -mibt, -mshstk, -mcet handling. 10653 * config.gcc (extra_headers): Add cetintrin.h for x86 targets. 10654 (extra_objs): Add cet.o for Linux/x86 targets. 10655 (tmake_file): Add i386/t-cet for Linux/x86 targets. 10656 * config/i386/cet.c: New file. 10657 * config/i386/cetintrin.h: Likewise. 10658 * config/i386/t-cet: Likewise. 10659 * config/i386/cpuid.h (bit_SHSTK): New. 10660 (bit_IBT): Likewise. 10661 * config/i386/driver-i386.c (host_detect_local_cpu): Detect and 10662 pass IBT and SHSTK bits. 10663 * config/i386/i386-builtin-types.def 10664 (VOID_FTYPE_UNSIGNED_PVOID): New. 10665 (VOID_FTYPE_UINT64_PVOID): Likewise. 10666 * config/i386/i386-builtin.def: Add CET intrinsics. 10667 * config/i386/i386-c.c (ix86_target_macros_internal): Add 10668 OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling. 10669 * config/i386/i386-passes.def: Add pass_insert_endbranch pass. 10670 * config/i386/i386-protos.h (make_pass_insert_endbranch): New 10671 prototype. 10672 * config/i386/i386.c (rest_of_insert_endbranch): New. 10673 (pass_data_insert_endbranch): Likewise. 10674 (pass_insert_endbranch): Likewise. 10675 (make_pass_insert_endbranch): Likewise. 10676 (ix86_notrack_prefixed_insn_p): Likewise. 10677 (ix86_target_string): Add -mibt, -mshstk flags. 10678 (ix86_option_override_internal): Add flag_cf_protection 10679 processing. 10680 (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk. 10681 (ix86_print_operand): Add 'notrack' prefix output. 10682 (ix86_init_mmx_sse_builtins): Add CET intrinsics. 10683 (ix86_expand_builtin): Expand CET intrinsics. 10684 (x86_output_mi_thunk): Add 'endbranch' instruction. 10685 * config/i386/i386.h (TARGET_IBT): New. 10686 (TARGET_IBT_P): Likewise. 10687 (TARGET_SHSTK): Likewise. 10688 (TARGET_SHSTK_P): Likewise. 10689 * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP, 10690 UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP, 10691 UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY. 10692 (builtin_setjmp_setup): New pattern. 10693 (builtin_longjmp): Likewise. 10694 (rdssp<mode>): Likewise. 10695 (incssp<mode>): Likewise. 10696 (saveprevssp): Likewise. 10697 (rstorssp): Likewise. 10698 (wrss<mode>): Likewise. 10699 (wruss<mode>): Likewise. 10700 (setssbsy): Likewise. 10701 (clrssbsy): Likewise. 10702 (nop_endbr): Likewise. 10703 * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch 10704 options. 10705 * config/i386/immintrin.h: Include <cetintrin.h>. 10706 * config/i386/linux-common.h 10707 (file_end_indicate_exec_stack_and_cet): New prototype. 10708 (TARGET_ASM_FILE_END): New. 10709 107102017-10-20 Jan Hubicka <hubicka@ucw.cz> 10711 10712 * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost 10713 latencies instead of having separate table; make difference between 10714 integer and float costs. 10715 * i386.h (processor_costs): Remove scalar_stmt_cost, 10716 scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, 10717 scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost, 10718 vec_store_cost. 10719 * x86-tune-costs.h: Remove entries which has been removed in 10720 procesor_costs from all tables; make cond_taken_branch_cost 10721 and cond_not_taken_branch_cost COST_N_INSNS based. 10722 107232017-10-20 Jan Hubicka <hubicka@ucw.cz> 10724 10725 * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs. 10726 107272017-10-20 Jakub Jelinek <jakub@redhat.com> 10728 10729 * config/i386/i386.md (isa): Remove fma_avx512f. 10730 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, 10731 <avx512>_fmadd_<mode>_mask3<round_name>, 10732 <avx512>_fmsub_<mode>_mask<round_name>, 10733 <avx512>_fmsub_<mode>_mask3<round_name>, 10734 <avx512>_fnmadd_<mode>_mask<round_name>, 10735 <avx512>_fnmadd_<mode>_mask3<round_name>, 10736 <avx512>_fnmsub_<mode>_mask<round_name>, 10737 <avx512>_fnmsub_<mode>_mask3<round_name>, 10738 <avx512>_fmaddsub_<mode>_mask<round_name>, 10739 <avx512>_fmaddsub_<mode>_mask3<round_name>, 10740 <avx512>_fmsubadd_<mode>_mask<round_name>, 10741 <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute. 10742 (*vec_widen_umult_even_v16si<mask_name>, 10743 *vec_widen_smult_even_v16si<mask_name>): Likewise. 10744 (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise. 10745 107462017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 10747 10748 * extend.texi: Add 'nocf_check' documentation. 10749 * gimple.texi: Add second parameter to 10750 gimple_build_call_from_tree. 10751 * invoke.texi: Add -fcf-protection documentation. 10752 * rtl.texi: Add REG_CALL_NOTRACK documenation. 10753 107542017-10-20 Richard Biener <rguenther@suse.de> 10755 10756 PR tree-optimization/82473 10757 * tree-vect-loop.c (vectorizable_reduction): Properly get at 10758 the largest input type. 10759 107602017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 10761 10762 * c-attribs.c (handle_nocf_check_attribute): New function. 10763 (c_common_attribute_table): Add 'nocf_check' handling. 10764 * gimple-parser.c: Add second argument NULL to 10765 gimple_build_call_from_tree. 10766 * attrib.c (comp_type_attributes): Check nocf_check attribute. 10767 * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for 10768 call insn. 10769 * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling. 10770 * common.opt: Add fcf-protection flag. 10771 * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling. 10772 * flag-types.h: Add enum cf_protection_level. 10773 * gimple.c (gimple_build_call_from_tree): Add second parameter. 10774 Add 'nocf_check' attribute propagation to gimple call. 10775 * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK. 10776 (gimple_build_call_from_tree): Update prototype. 10777 (gimple_call_nocf_check_p): New function. 10778 (gimple_call_set_nocf_check): Likewise. 10779 * gimplify.c: Add second argument to gimple_build_call_from_tree. 10780 * ipa-icf.c: Add nocf_check attribute in statement hash. 10781 * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling. 10782 * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK). 10783 * toplev.c (process_options): Add flag_cf_protection handling. 10784 107852017-10-19 Jan Hubicka <hubicka@ucw.cz> 10786 10787 * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies. 10788 107892017-10-20 Richard Biener <rguenther@suse.de> 10790 10791 PR tree-optimization/82603 10792 * tree-if-conv.c (predicate_mem_writes): Make sure to only 10793 remove false predicated stores. 10794 107952017-10-20 Richard Biener <rguenther@suse.de> 10796 10797 * graphite-isl-ast-to-gimple.c 10798 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): 10799 Remove return value and simplify, dump copied stmt after lhs 10800 adjustment. 10801 (translate_isl_ast_to_gimple::translate_isl_ast_node_user): 10802 Reduce dump verbosity. 10803 (gsi_insert_earliest): Likewise. 10804 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust. 10805 * graphite.c (print_global_statistics): Adjust dumping. 10806 (print_graphite_scop_statistics): Likewise. 10807 (print_graphite_statistics): Do not dump loops here. 10808 (graphite_transform_loops): But here. 10809 108102017-10-20 Nicolas Roche <roche@adacore.com> 10811 10812 * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir. 10813 * configure: Regenerate. 10814 108152017-10-20 Jakub Jelinek <jakub@redhat.com> 10816 10817 PR target/82158 10818 * tree-cfg.c (pass_warn_function_return::execute): In noreturn 10819 functions when optimizing replace GIMPLE_RETURN stmts with 10820 calls to __builtin_unreachable (). 10821 10822 PR sanitizer/82595 10823 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o 10824 for -fsanitize=thread link of executables. 10825 (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak 10826 link of executables. 10827 10828 PR target/82370 10829 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2): 10830 New mode iterators. 10831 (<shift_insn><mode>3<mask_name>): Change the last of the 3 10832 define_insns for logical vector shifts to use VI248_AVX512BW 10833 iterator instead of VI48_AVX512, remove <mask_mode512bit_condition> 10834 condition, useless isa and prefix attributes. Change the first 10835 2 of these define_insns to ... 10836 (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new 10837 define_insn for avx512vl. 10838 (<shift_insn><mode>3): ... and this, new define_insn without 10839 masking for non-avx512vl. 10840 10841 PR target/82370 10842 * config/i386/sse.md (*andnot<mode>3, 10843 <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split 10844 (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit 10845 and 256-bit vectors, the (=x,x,xm) alternative and when mask is 10846 not applied use empty suffix even for TARGET_AVX512VL. 10847 * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask 10848 is applied, supply evex,evex or evex,evex,evex instead of just 10849 evex. 10850 108512017-10-20 Julia Koval <julia.koval@intel.com> 10852 10853 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET, 10854 (OPTION_MASK_ISA_GFNI_UNSET): New. 10855 (ix86_handle_option): Handle OPT_mgfni. 10856 * config/i386/cpuid.h (bit_GFNI): New. 10857 * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni. 10858 * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__. 10859 * config/i386/i386.c (ix86_target_string): Add -mgfni. 10860 (ix86_valid_target_attribute_inner_p): Add OPT_mgfni. 10861 * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New. 10862 * config/i386/i386.opt: Add mgfni. 10863 108642017-10-20 Orlando Arias <oarias@knights.ucf.edu> 10865 10866 * config/msp430/msp430.c (msp430_option_override): Disable 10867 -fdelete-null-pointer-checks. 10868 * doc/invoke.text (-fdelete-null-pointer-checks): Document that. 10869 108702017-10-19 Jan Hubicka <hubicka@ucw.cz> 10871 10872 * x86-tune-costs.h (generic_cost, core_cost): Correct costs 10873 of x87 and SSE instructions. 10874 108752017-10-19 Jan Hubicka <hubicka@ucw.cz> 10876 10877 * asan.c (create_cond_insert_point): Do not update edge count. 10878 * auto-profile.c (afdo_propagate_edge): Update for edge count removal. 10879 (afdo_propagate_circuit): Likewise. 10880 (afdo_calculate_branch_prob): Likewise. 10881 (afdo_annotate_cfg): Likewise. 10882 * basic-block.h (struct edge_def): Remove count. 10883 (edge_def::count): New accessor. 10884 * bb-reorder.c (rotate_loop): Update. 10885 (find_traces_1_round): Update. 10886 (connect_traces): Update. 10887 (sanitize_hot_paths): Update. 10888 * cfg.c (unchecked_make_edge): Update. 10889 (make_single_succ_edge): Update. 10890 (check_bb_profile): Update. 10891 (dump_edge_info): Update. 10892 (update_bb_profile_for_threading): Update. 10893 (scale_bbs_frequencies_int): Update. 10894 (scale_bbs_frequencies_gcov_type): Update. 10895 (scale_bbs_frequencies_profile_count): Update. 10896 (scale_bbs_frequencies): Update. 10897 * cfganal.c (connect_infinite_loops_to_exit): Update. 10898 * cfgbuild.c (compute_outgoing_frequencies): Update. 10899 (find_many_sub_basic_blocks): Update. 10900 * cfgcleanup.c (try_forward_edges): Update. 10901 (try_crossjump_to_edge): Update 10902 * cfgexpand.c (expand_gimple_cond): Update 10903 (expand_gimple_tailcall): Update 10904 (construct_exit_block): Update 10905 * cfghooks.c (verify_flow_info): Update 10906 (redirect_edge_succ_nodup): Update 10907 (split_edge): Update 10908 (make_forwarder_block): Update 10909 (duplicate_block): Update 10910 (account_profile_record): Update 10911 * cfgloop.c (find_subloop_latch_edge_by_profile): Update. 10912 * cfgloopanal.c (expected_loop_iterations_unbounded): Update. 10913 * cfgloopmanip.c (scale_loop_profile): Update. 10914 (loopify): Update. 10915 (lv_adjust_loop_entry_edge): Update. 10916 * cfgrtl.c (try_redirect_by_replacing_jump): Update. 10917 (force_nonfallthru_and_redirect): Update. 10918 (purge_dead_edges): Update. 10919 (rtl_flow_call_edges_add): Update. 10920 * cgraphunit.c (init_lowered_empty_function): Update. 10921 (cgraph_node::expand_thunk): Update. 10922 * gimple-pretty-print.c (dump_probability): Update. 10923 (dump_edge_probability): Update. 10924 * gimple-ssa-isolate-paths.c (isolate_path): Update. 10925 * haifa-sched.c (sched_create_recovery_edges): Update. 10926 * hsa-gen.c (convert_switch_statements): Update. 10927 * ifcvt.c (dead_or_predicable): Update. 10928 * ipa-inline-transform.c (inline_transform): Update. 10929 * ipa-split.c (split_function): Update. 10930 * ipa-utils.c (ipa_merge_profiles): Update. 10931 * loop-doloop.c (add_test): Update. 10932 * loop-unroll.c (unroll_loop_runtime_iterations): Update. 10933 * lto-streamer-in.c (input_cfg): Update. 10934 (input_function): Update. 10935 * lto-streamer-out.c (output_cfg): Update. 10936 * modulo-sched.c (sms_schedule): Update. 10937 * postreload-gcse.c (eliminate_partially_redundant_load): Update. 10938 * predict.c (maybe_hot_edge_p): Update. 10939 (unlikely_executed_edge_p): Update. 10940 (probably_never_executed_edge_p): Update. 10941 (dump_prediction): Update. 10942 (drop_profile): Update. 10943 (propagate_unlikely_bbs_forward): Update. 10944 (determine_unlikely_bbs): Update. 10945 (force_edge_cold): Update. 10946 * profile.c (compute_branch_probabilities): Update. 10947 * reg-stack.c (better_edge): Update. 10948 * shrink-wrap.c (handle_simple_exit): Update. 10949 * tracer.c (better_p): Update. 10950 * trans-mem.c (expand_transaction): Update. 10951 (split_bb_make_tm_edge): Update. 10952 * tree-call-cdce.c: Update. 10953 * tree-cfg.c (gimple_find_sub_bbs): Update. 10954 (gimple_split_edge): Update. 10955 (gimple_duplicate_sese_region): Update. 10956 (gimple_duplicate_sese_tail): Update. 10957 (gimple_flow_call_edges_add): Update. 10958 (insert_cond_bb): Update. 10959 (execute_fixup_cfg): Update. 10960 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update. 10961 * tree-complex.c (expand_complex_div_wide): Update. 10962 * tree-eh.c (lower_resx): Update. 10963 (unsplit_eh): Update. 10964 (cleanup_empty_eh_move_lp): Update. 10965 * tree-inline.c (copy_edges_for_bb): Update. 10966 (freqs_to_counts): Update. 10967 (copy_cfg_body): Update. 10968 * tree-ssa-dce.c (remove_dead_stmt): Update. 10969 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. 10970 * tree-ssa-loop-im.c (execute_sm_if_changed): Update. 10971 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. 10972 (unloop_loops): Update. 10973 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. 10974 * tree-ssa-loop-split.c (connect_loops): Update. 10975 (split_loop): Update. 10976 * tree-ssa-loop-unswitch.c (hoist_guard): Update. 10977 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. 10978 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. 10979 * tree-ssa-reassoc.c (branch_fixup): Update. 10980 * tree-ssa-tail-merge.c (replace_block_by): Update. 10981 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. 10982 (compute_path_counts): Update. 10983 (update_profile): Update. 10984 (recompute_probabilities): Update. 10985 (update_joiner_offpath_counts): Update. 10986 (estimated_freqs_path): Update. 10987 (freqs_to_counts_path): Update. 10988 (clear_counts_path): Update. 10989 (ssa_fix_duplicate_block_edges): Update. 10990 (duplicate_thread_path): Update. 10991 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. 10992 (case_bit_test_cmp): Update. 10993 (collect_switch_conv_info): Update. 10994 (gen_inbound_check): Update. 10995 (do_jump_if_equal): Update. 10996 (emit_cmp_and_jump_insns): Update. 10997 * tree-tailcall.c (decrease_profile): Update. 10998 (eliminate_tail_call): Update. 10999 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. 11000 (vect_do_peeling): Update. 11001 * tree-vect-loop.c (scale_profile_for_vect_loop): Update. 11002 * ubsan.c (ubsan_expand_null_ifn): Update. 11003 (ubsan_expand_ptr_ifn): Update. 11004 * value-prof.c (gimple_divmod_fixed_value): Update. 11005 (gimple_mod_pow2): Update. 11006 (gimple_mod_subtract): Update. 11007 (gimple_ic): Update. 11008 (gimple_stringop_fixed_value): Update. 11009 110102017-10-19 Uros Bizjak <ubizjak@gmail.com> 11011 11012 PR target/82618 11013 * config/i386/i386.md (sub to cmp): New peephole2 pattern. 11014 110152017-10-19 Alexander Monakov <amonakov@ispras.ru> 11016 11017 PR rtl-optimization/82395 11018 * ira-color.c (allocno_priority_compare_func): Fix comparison step 11019 based on non_spilled_static_chain_regno_p. 11020 110212017-10-19 Uros Bizjak <ubizjak@gmail.com> 11022 11023 * config/i386/i386.c (output_387_binary_op): Rewrite SSE part. 11024 (ix86_emit_mode_set): Rewrite insn mnemonic construction. 11025 (ix86_prepare_fp_compare_args): Redefine is_sse as bool. 11026 110272017-10-19 Martin Sebor <msebor@redhat.com> 11028 11029 PR tree-optimization/82596 11030 * tree.c (array_at_struct_end_p): Handle STRING_CST. 11031 110322017-10-19 Eric Botcazou <ebotcazou@adacore.com> 11033 11034 * asan.c (handle_builtin_alloca): Deal with all alloca variants. 11035 (get_mem_refs_of_builtin_call): Likewise. 11036 * builtins.c (expand_builtin_apply): Adjust call to 11037 allocate_dynamic_stack_space. 11038 (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass 11039 the third argument to allocate_dynamic_stack_space, otherwise -1. 11040 (expand_builtin): Deal with all alloca variants. 11041 (is_inexpensive_builtin): Likewise. 11042 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New. 11043 * calls.c (special_function_p): Deal with all alloca variants. 11044 (initialize_argument_information): Adjust call to 11045 allocate_dynamic_stack_space. 11046 (expand_call): Likewise. 11047 * cfgexpand.c (expand_call_stmt): Deal with all alloca variants. 11048 * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max 11049 * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and 11050 use it for the stack usage computation. 11051 * explow.h (allocate_dynamic_stack_space): Adjust prototype. 11052 * function.c (gimplify_parameters): Call build_alloca_call_expr. 11053 * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow. 11054 Take into account 3rd argument of __builtin_alloca_with_align_and_max. 11055 (in_loop_p): Remove first argument and useless check. 11056 (pass_walloca::execute): Remove useless test and adjust call to above. 11057 * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants 11058 * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr. 11059 (gimplify_call_expr): Deal with all alloca variants. 11060 * hsa-gen.c (gen_hsa_alloca): Likewise. 11061 (gen_hsa_insns_for_call): Likewise. 11062 * ipa-pure-const.c (special_builtin_state): Likewise. 11063 * tree-chkp.c (chkp_build_returned_bound): Likewise. 11064 * tree-object-size.c (alloc_object_size): Likewise. 11065 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. 11066 (call_may_clobber_ref_p_1): Likewise. 11067 * tree-ssa-ccp.c (evaluate_stmt): Likewise. 11068 (ccp_fold_stmt): Likewise. 11069 (optimize_stack_restore): Likewise. 11070 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 11071 (mark_all_reaching_defs_necessary_1): Likewise. 11072 (propagate_necessity): Likewise. 11073 (eliminate_unnecessary_stmts): Likewise. 11074 * tree.c (build_common_builtin_nodes): Build 11075 BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX. 11076 (build_alloca_call_expr): New function. 11077 * tree.h (ALLOCA_FUNCTION_CODE_P): New macro. 11078 (CASE_BUILT_IN_ALLOCA): Likewise. 11079 (build_alloca_call_expr): Declare. 11080 * varasm.c (incorporeal_function_p): Deal with all alloca variants. 11081 110822017-10-19 Eric Botcazou <ebotcazou@adacore.com> 11083 11084 PR debug/82509 11085 * dwarf2out.c (new_die_raw): New static inline function. 11086 (new_die): Use it to create the DIE. 11087 (add_AT_external_die_ref): Likewise. 11088 (clone_die): Likewise. 11089 (clone_as_declaration): Likewise. 11090 (dwarf2out_vms_debug_main_pointer): Likewise. 11091 (base_type_die): Likewise. Remove early return for corner cases. 11092 Do not call add_pubtype on the DIE here. 11093 (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE. 11094 (modified_type_die): Adjust the lookup for reverse order DIEs. Skip 11095 typedefs for base types with DW_AT_endianity. Make sure a DIE with 11096 native order exists for base types, attach the DIE manually and call 11097 add_pubtype on it. Do not equate a reverse order DIE to the type. 11098 110992017-10-19 Richard Earnshaw <rearnsha@arm.com> 11100 11101 * config/arm/arm.c (align_ok_ldrd_strd): New function. 11102 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of 11103 the mem into it. 11104 (gen_operands_ldrd_strd): Validate the alignment of the accesses. 11105 111062017-10-19 Jakub Jelinek <jakub@redhat.com> 11107 11108 * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or 11109 SANITIZE_BUILTIN into SANITIZE_UNDEFINED. 11110 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN, 11111 BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins. 11112 * opts.c (sanitizer_opts): Add builtin. 11113 * ubsan.c (instrument_builtin): New function. 11114 (pass_ubsan::execute): Call it. 11115 (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN. 11116 * doc/invoke.texi: Document -fsanitize=builtin. 11117 11118 * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch 11119 builtins, store max (log2 (align), 0) into uchar field instead of 11120 align into uptr field. 11121 (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins, 11122 store uchar 0 field instead of uptr 0 field. 11123 (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin, 11124 instead of passing one address of struct with 2 locations pass 11125 two addresses of structs with 1 location each. 11126 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH, 11127 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, 11128 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, 11129 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed. 11130 (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, 11131 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, 11132 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, 11133 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins. 11134 111352017-10-19 Martin Liska <mliska@suse.cz> 11136 11137 PR driver/81829 11138 * file-find.c (remove_prefix): Remove. 11139 * file-find.h (remove_prefix): Likewise. 11140 * gcc-ar.c: Remove smartness of lookup. 11141 111422017-10-19 Segher Boessenkool <segher@kernel.crashing.org> 11143 11144 * config/rs6000/rs6000.md (*call_indirect_aix<mode>, 11145 *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>, 11146 *call_value_indirect_elfv2<mode>): Add correct mode to the unspec. 11147 111482017-10-19 Jakub Jelinek <jakub@redhat.com> 11149 11150 PR target/82580 11151 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2. 11152 (setcc + and to xor + setcc): New peephole2. 11153 111542017-10-19 Tom de Vries <tom@codesourcery.com> 11155 11156 * doc/sourcebuild.texi (Test Directives, Variants of 11157 dg-require-support): Add dg-require-stack-size. 11158 111592017-10-19 Martin Liska <mliska@suse.cz> 11160 11161 PR sanitizer/82517 11162 * gimplify.c (gimplify_decl_expr): Do not instrument variables 11163 that have a large alignment. 11164 (gimplify_target_expr): Likewise. 11165 111662017-10-18 Segher Boessenkool <segher@kernel.crashing.org> 11167 11168 PR rtl-optimization/82602 11169 * ira.c (rtx_moveable_p): Return false for volatile asm. 11170 111712017-10-18 Uros Bizjak <ubizjak@gmail.com> 11172 11173 PR target/82580 11174 * config/i386/i386-modes.def (CCGZ): New CC mode. 11175 * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern. 11176 * config/i386/predicates.md (ix86_comparison_operator): 11177 Handle CCGZmode. 11178 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: 11179 Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons 11180 with double-word subtraction. 11181 (put_condition_code): Handle CCGZmode. 11182 111832017-10-18 Aldy Hernandez <aldyh@redhat.com> 11184 11185 * wide-int.cc (debug (const wide_int &)): New. 11186 (debug (const wide_int *)): New. 11187 (debug (const widest_int &)): New. 11188 (debug (const widest_int *)): New. 11189 111902017-10-18 Vladimir Makarov <vmakarov@redhat.com> 11191 11192 PR middle-end/82556 11193 * lra-constraints.c (curr_insn_transform): Use non-input operand 11194 instead of output one for matched reload. 11195 111962017-10-18 Bin Cheng <bin.cheng@arm.com> 11197 11198 * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. 11199 (tree-ssa-loop-ivopts.h): New header file. 11200 (struct builtin_info): New fields. 11201 (classify_builtin_1): Compute and record base and offset parts for 11202 memset builtin partition by calling strip_offset. 11203 (offset_cmp, fuse_memset_builtins): New functions. 11204 (finalize_partitions): Fuse adjacent memset partitions by calling 11205 above function. 11206 * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration. 11207 Expose the interface. 11208 * tree-ssa-loop-ivopts.h (strip_offset): New declaration. 11209 112102017-10-18 Bin Cheng <bin.cheng@arm.com> 11211 11212 PR tree-optimization/82574 11213 * tree-loop-distribution.c (find_single_drs): New parameter. Check 11214 that data reference must be executed exactly once per iteration 11215 against the outermost loop in nest. 11216 (classify_partition): Update call to above function. 11217 112182017-10-18 Richard Biener <rguenther@suse.de> 11219 11220 PR tree-optimization/82591 11221 * graphite.c (graphite_transform_loops): Move code gen message 11222 printing ... 11223 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): 11224 Here. Handle scop_to_isl_ast failing. 11225 (scop_to_isl_ast): Limit the number of ISL operations. 11226 112272017-10-18 Richard Biener <rguenther@suse.de> 11228 11229 * graphite-isl-ast-to-gimple.c 11230 (translate_isl_ast_to_gimple::set_rename): Simplify. 11231 (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline... 11232 (graphite_copy_stmts_from_block): ... here. 11233 (copy_bb_and_scalar_dependences): Simplify. 11234 (add_parameters_to_ivs_params): Canonicalize. 11235 (generate_entry_out_of_ssa_copies): Simplify. 11236 * graphite-sese-to-poly.c (extract_affine_name): Simplify 11237 by passing in ISL dimension. 11238 (parameter_index_in_region_1): Rename to ... 11239 (parameter_index_in_region): ... this. 11240 (extract_affine): Adjust assert, pass down parameter index. 11241 (add_param_constraints): Use range-info when available. 11242 (build_scop_context): Adjust. 11243 * sese.c (new_sese_info): Adjust. 11244 (free_sese_info): Likewise. 11245 * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t): 11246 Remove unused typedefs. 11247 (struct sese_info_t): Simplify rename_map, remove incomplete_phis. 11248 112492017-10-18 Martin Liska <mliska@suse.cz> 11250 11251 * combine.c (simplify_compare_const): Add gcc_fallthrough. 11252 112532017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> 11254 11255 * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function. 11256 (s390_sched_init): Do not reset s390_sched_state if we entered the 11257 current basic block via a fallthru edge and all others are unlikely. 11258 112592017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> 11260 11261 * config/s390/s390.c (NUM_SIDES): New variable. 11262 (LONGRUNNING_THRESHOLD): New variable. 11263 (LATENCY_FACTOR): New variable. 11264 (s390_sched_score): Decrease score for long-running instructions on 11265 wrong side. 11266 (s390_sched_variable_issue): Perform bookkeeping for long-running 11267 instructions. 11268 112692017-10-18 Richard Biener <rguenther@suse.de> 11270 11271 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): 11272 Simplify with removal of the parameter rename map. 11273 (set_rename): Likewise. 11274 (should_copy_to_new_region): Likewise. 11275 (graphite_copy_stmts_from_block): Likewise. 11276 (copy_bb_and_scalar_dependences): Remove initialization of 11277 unused copied_bb_map. 11278 (copy_def): Remove. 11279 (copy_internal_parameters): Likewise. 11280 (graphite_regenerate_ast_isl): Do not call copy_internal_parameters. 11281 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 11282 Use INTEGRAL_TYPE_P. 11283 (parameter_index_in_region_1): Rename to ... 11284 (assign_parameter_index_in_region): ... this. Assert we have 11285 a parameter we handle. 11286 (scan_tree_for_params): Adjust. 11287 * sese.h (parameter_rename_map_t): Remove. 11288 (struct sese_info_t): Remove unused parameter_rename_map and 11289 copied_bb_map members. 11290 * sese.c (new_sese_info): Adjust. 11291 (free_sese_info): Likewise. 11292 112932017-10-18 Martin Liska <mliska@suse.cz> 11294 11295 PR sanitizer/82545 11296 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt 11297 on an abnormal edge. 11298 112992017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de> 11300 11301 * doc/invoke.texi (ffunction-sections and fdata-sections): 11302 Update. 11303 113042017-10-17 Eric Botcazou <ebotcazou@adacore.com> 11305 11306 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if 11307 the use statement can throw internally. 11308 113092017-10-17 Eric Botcazou <ebotcazou@adacore.com> 11310 11311 * config/visium/visium.c (visium_select_cc_mode): Return CCmode for 11312 any RTX present on the RHS of a SET. 11313 * compare-elim.c (try_eliminate_compare): Restore comment. 11314 113152017-10-17 Jakub Jelinek <jakub@redhat.com> 11316 11317 * langhooks.h (struct lang_hooks): Document that tree_size langhook 11318 may be also called on tcc_type nodes. 11319 * langhooks.c (lhd_tree_size): Likewise. 11320 113212017-10-17 David Malcolm <dmalcolm@redhat.com> 11322 11323 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of 11324 format_warning_at_substring. 11325 (maybe_warn): Convert source_range * param to a location_t. Pass 11326 UNKNOWN_LOCATION rather than NULL to fmtwarn. 11327 (format_directive): Remove code to extract source_ranges and 11328 source_range * in favor of just a location_t. 11329 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to 11330 fmtwarn. 11331 * substring-locations.c (format_warning_va): Convert 11332 source_range * param to a location_t. 11333 (format_warning_at_substring): Likewise. 11334 * substring-locations.h (format_warning_va): Likewise. 11335 (format_warning_at_substring): Likewise. 11336 113372017-10-17 Jan Hubicka <hubicka@ucw.cz> 11338 11339 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and 11340 vec_scatter_store 11341 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal 11342 and scatter/gather ops. 11343 11344 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add 11345 vec_gather_load and vec_scatter_store. 11346 * arm/arm.c (arm_builtin_vectorization_cost): Likewise. 11347 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise. 11348 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise. 11349 * s390/s390.c (s390_builtin_vectorization_cost): Likewise. 11350 * spu/spu.c (spu_builtin_vectorization_cost): Likewise. 11351 * i386/i386.c (x86_builtin_vectorization_cost): Likewise. 11352 113532017-10-17 Uros Bizjak <ubizjak@gmail.com> 11354 11355 * reg-stack.c (compare_for_stack_reg): Add bool argument. 11356 Detect FTST instruction and handle its register pops. Only pop 11357 second operand if can_pop_second_op is true. 11358 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to 11359 set can_pop_second_op to false in the compare_for_stack_reg call. 11360 11361 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call 11362 output_fp_compare for stack register operands. 11363 * config/i386/i386.c (output_fp_compare): Do not output SSE compare 11364 instructions here. Do not emit stack register pops here. Assert 11365 that FCOMPP pops next to top stack register. Rewrite function. 11366 113672017-10-17 Nathan Sidwell <nathan@acm.org> 11368 11369 PR middle-end/82577 11370 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P, 11371 use DECL_ASSEMBLER_NAME_RAW. 11372 11373 PR middle-end/82546 11374 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown 11375 TYPE nodes. 11376 113772017-10-17 Qing Zhao <qing.zhao@oracle.com> 11378 Wilco Dijkstra <wilco.dijkstra@arm.com> 11379 11380 * builtins.c (expand_builtin_update_setjmp_buf): Add a 11381 converstion to Pmode from the buf_addr. 11382 113832017-10-17 Richard Biener <rguenther@suse.de> 11384 11385 * graphite-dependences.c (scop_get_reads_and_writes): Change 11386 output parameters to references. 11387 113882017-10-17 Jackson Woodruff <jackson.woodruff@arm.com> 11389 11390 PR 71026/tree-optimization 11391 * fold-const.c (distribute_real_division): Removed. 11392 (fold_binary_loc): Remove calls to distribute_real_divison. 11393 113942017-10-17 Richard Biener <rguenther@suse.de> 11395 11396 * graphite-scop-detection.c 11397 (scop_detection::stmt_has_simple_data_refs_p): Always use 11398 the full nest as region. 11399 (try_generate_gimple_bb): Likewise. 11400 * sese.c (scalar_evolution_in_region): Simplify now that 11401 SCEV can handle instantiation in regions. 11402 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate 11403 in the non-loop part of a function if requested. 11404 114052017-10-17 Richard Biener <rguenther@suse.de> 11406 11407 PR tree-optimization/82563 11408 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies): 11409 New function. 11410 (graphite_regenerate_ast_isl): Call it. 11411 * graphite-scop-detection.c (build_scops): Remove entry edge split. 11412 114132017-10-17 Jakub Jelinek <jakub@redhat.com> 11414 11415 PR tree-optimization/82549 11416 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1): 11417 Formatting fixes. Instead of calling make_bit_field_ref with negative 11418 bitpos return 0. 11419 114202017-10-17 Olga Makhotina <olga.makhotina@intel.com> 11421 11422 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd, 11423 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20 11424 _mm_maskz_reduce_ss): New. 11425 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask, 11426 __builtin_ia32_reducess_mask): Ditto.. 11427 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove. 11428 * config/i386/sse.md (reduces<mode>): Renamed to ... 11429 (reduces<mode><mask_scalar_name>): ... this. 11430 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): 11431 Changed to ... 11432 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>| 11433 %0<mask_scalar_operand4>, %1, %2, %3}): ... this. 11434 114352017-10-16 David Malcolm <dmalcolm@redhat.com> 11436 11437 * Makefile.in (OBJS): Add unique-ptr-tests.o. 11438 * selftest-run-tests.c (selftest::run_tests): Call 11439 selftest::unique_ptr_tests_cc_tests. 11440 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl. 11441 * unique-ptr-tests.cc: New file. 11442 114432017-10-16 Vladimir Makarov <vmakarov@redhat.com> 11444 11445 PR sanitizer/82353 11446 * lra.c (collect_non_operand_hard_regs): Don't ignore operator 11447 locations. 11448 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. 11449 (make_hard_regno_born, make_hard_regno_dead): Update 11450 bb_killed_pseudos and bb_gen_pseudos for fixed regs. 11451 114522017-10-16 Jeff Law <law@redhat.com> 11453 11454 * tree-ssa-dse.c (live_bytes_read): Fix thinko. 11455 114562017-10-16 Jan Hubicka <hubicka@ucw.cz> 11457 11458 * x86-tune-costs.h (znver1_cost): Fix move cost tables. 11459 114602017-10-16 Olivier Hainque <hainque@adacore.com> 11461 11462 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default 11463 with_cpu if we were configured for an e500v2 target cpu name. 11464 114652017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com> 11466 11467 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option. 11468 * doc/invoke.texi: Document +nodsp as a valid extension for 11469 -mcpu=cortex-m33. 11470 114712017-10-16 Martin Liska <mliska@suse.cz> 11472 11473 * sbitmap.c (bitmap_bit_in_range_p_checking): New function. 11474 (test_set_range): Likewise. 11475 (test_range_functions): Rename to ... 11476 (test_bit_in_range): ... this. 11477 (sbitmap_c_tests): Add new test. 11478 114792017-10-16 Tamar Christina <tamar.christina@arm.com> 11480 11481 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): 11482 New. 11483 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New. 11484 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New. 11485 114862017-10-16 Tamar Christina <tamar.christina@arm.com> 11487 11488 * config/aarch64/aarch64-builtins.c 11489 (aarch64_types_quadopu_lane_qualifiers): New. 11490 (TYPES_QUADOPU_LANE): New. 11491 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New. 11492 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New. 11493 (aarch64_<sur>dot_laneq<vsi2qi>): New. 11494 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New. 11495 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New. 11496 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT. 11497 (Vdottype, DOTPROD): New. 11498 (sur): Add SDOT and UDOT. 11499 115002017-10-16 Tamar Christina <tamar.christina@arm.com> 11501 11502 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New. 11503 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New. 11504 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 11505 Add TARGET_DOTPROD. 11506 * config/aarch64/aarch64-option-extensions.def (dotprod): New. 11507 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): 11508 Enable TARGET_DOTPROD. 11509 (cortex-a75.cortex-a55): Likewise. 11510 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod. 11511 115122017-10-16 Tamar Christina <tamar.christina@arm.com> 11513 11514 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New. 11515 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): 11516 New. 11517 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): 11518 New. 11519 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New. 11520 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New. 11521 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New. 11522 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New. 11523 * config/arm/types.md (neon_dot, neon_dot_q): New. 11524 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U. 11525 115262017-10-16 Tamar Christina <tamar.christina@arm.com> 11527 11528 * config/arm/arm.h (TARGET_DOTPROD): New. 11529 * config/arm/arm.c (arm_arch_dotprod): New. 11530 (arm_option_reconfigure_globals): Add arm_arch_dotprod. 11531 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New. 11532 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod. 11533 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New. 11534 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL. 11535 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod. 11536 * doc/invoke.texi (armv8.2-a): Document dotprod 11537 115382017-10-14 Jan Hubicka <hubicka@ucw.cz> 11539 11540 * i386.c (ix86_vec_cost): New function. 11541 (ix86_rtx_costs): Handle vector operations better. 11542 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass. 11543 * x86-tune-costs.h: Add new costs to all tables. 11544 115452017-10-14 Jan Hubicka <hubicka@ucw.cz> 11546 11547 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE 11548 operations. 11549 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss, 11550 divsd, sqrtss and sqrtsd 11551 * x86-tune-costs.h: Add new entries to all costs. 11552 (znver1_cost): Fix to match real instruction latencies. 11553 115542017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11555 Michael Collison <michael.collison@arm.com> 11556 11557 * compare-elim.c: Include emit-rtl.h. 11558 (can_merge_compare_into_arith): New function. 11559 (try_validate_parallel): Likewise. 11560 (try_merge_compare): Likewise. 11561 (try_eliminate_compare): Call the above when no previous clobber 11562 is available. 11563 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN 11564 dataflow problems. 11565 115662017-10-14 Jakub Jelinek <jakub@redhat.com> 11567 11568 PR middle-end/62263 11569 PR middle-end/82498 11570 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle 11571 up to 2 preparation statements for ASSIGN in MIDDLE_BB. 11572 11573 PR middle-end/62263 11574 PR middle-end/82498 11575 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N] 11576 to be any operand_equal_p operands. For & (B - 1) require 11577 B to be power of 2. Recognize 11578 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns. 11579 115802017-10-14 Uros Bizjak <ubizjak@gmail.com> 11581 11582 PR bootstrap/82553 11583 * optabs.c (expand_memory_blockage): Fix call of 11584 targetm.have_memory_blockage. 11585 115862017-10-14 Jakub Jelinek <jakub@redhat.com> 11587 11588 PR bootstrap/82548 11589 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*, 11590 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append 11591 objects to extra_objs instead of overwriting it. 11592 115932017-10-14 Uros Bizjak <ubizjak@gmail.com> 11594 11595 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): 11596 Use any_fp_register_operand as operand[3] predicate. Simplify 11597 equality test for operands[2] and operands[4] memory location. 11598 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. 11599 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New. 11600 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. 11601 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use 11602 any_fp_register_operand as operand[1] predicate. Simplify 11603 equality test for operands[0] and operands[3] memory location. 11604 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. 11605 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New. 11606 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto. 11607 116082017-10-14 Uros Bizjak <ubizjak@gmail.com> 11609 11610 * target-insns.def: Add memory_blockage. 11611 * optabs.c (expand_memory_blockage): New function. 11612 (expand_asm_memory_barrier): Rename ... 11613 (expand_asm_memory_blockage): ... to this. 11614 (expand_mem_thread_fence): Call expand_memory_blockage 11615 instead of expand_asm_memory_barrier. 11616 (expand_mem_singnal_fence): Ditto. 11617 (expand_atomic_load): Ditto. 11618 (expand_atomic_store): Ditto. 11619 * doc/md.texi (Standard Pattern Names For Generation): 11620 Document memory_blockage instruction pattern. 11621 116222017-10-13 Sebastian Perta <sebastian.perta@renesas.com> 11623 11624 * config/rl78/rl78.c (rl78_emit_libcall): New function. 11625 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function. 11626 * config/rl78/rl78.md: New define_expand "adddi3". 11627 116282017-10-13 Jan Hubicka <hubicka@ucw.cz> 11629 11630 * cfghooks.c (verify_flow_info): Disable check that all probabilities 11631 are set correctly. 11632 116332017-10-13 Jeff Law <law@redhat.com> 11634 11635 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly. 11636 116372017-10-13 Jakub Jelinek <jakub@redhat.com> 11638 11639 PR target/82274 11640 * internal-fn.c (expand_mul_overflow): If both operands have 11641 the same highpart of -1 or 0 and the topmost bit of lowpart 11642 is different, overflow is if res <= 0 rather than res < 0. 11643 116442017-10-13 Pat Haugen <pthaugen@us.ibm.com> 11645 11646 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove 11647 TARGET_P9_VECTOR code for unaligned_load case. 11648 116492017-10-13 Jan Hubicka <hubicka@ucw.cz> 11650 11651 * cfghooks.c (verify_flow_info): Check that edge probabilities are set. 11652 116532017-10-13 Nathan Sidwell <nathan@acm.org> 11654 11655 * tree-core.h (tree_contains_struct): Make bool. 11656 * tree.c (tree_contains_struct): Likewise. 11657 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom. 11658 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON, 11659 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL, 11660 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS, 11661 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator. 11662 116632017-10-13 Richard Biener <rguenther@suse.de> 11664 11665 * graphite-isl-ast-to-gimple.c 11666 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused 11667 parameters and dominance check. 11668 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust. 11669 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise. 11670 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl): 11671 Do not update SSA form here or do intermediate IL verification. 11672 * graphite.c: Include tree-ssa.h and tree-into-ssa.h. 11673 (graphite_initialize): Remove check on the number of loops in 11674 the function and inline into graphite_transform_loops. 11675 (graphite_finalize): Inline into graphite_transform_loops. 11676 (graphite_transform_loops): Perform SSA update and IL verification 11677 here. 11678 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove. 11679 116802017-10-13 Richard Biener <rguenther@suse.de> 11681 11682 * graphite-isl-ast-to-gimple.c (max_mode_int_precision, 11683 graphite_expression_type_precision): Avoid global constructor 11684 by moving ... 11685 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here. 11686 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member. 11687 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it. 11688 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise. 11689 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise. 11690 * graphite-sese-to-poly.c (build_original_schedule): Return nothing. 11691 116922017-10-13 H.J. Lu <hongjiu.lu@intel.com> 11693 11694 PR target/82499 11695 * config/i386/i386.h (ix86_red_zone_size): New. 11696 * config/i386/i386.md (push peephole2s): Replace 11697 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0". 11698 116992017-10-13 Richard Sandiford <richard.sandiford@linaro.org> 11700 Alan Hayward <alan.hayward@arm.com> 11701 David Sherwood <david.sherwood@arm.com> 11702 11703 * combine.c (can_change_dest_mode): Reject changes in 11704 REGMODE_NATURAL_SIZE. 11705 117062017-10-13 Richard Sandiford <richard.sandiford@linaro.org> 11707 Alan Hayward <alan.hayward@arm.com> 11708 David Sherwood <david.sherwood@arm.com> 11709 11710 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE. 11711 (expand_debug_source_expr): Likewise. 11712 * combine.c (combine_simplify_rtx): Likewise. 11713 * cse.c (fold_rtx): Likewise. 11714 * fwprop.c (canonicalize_address): Likewise. 11715 * targhooks.c (default_shift_truncation_mask): Likewise. 11716 117172017-10-13 Richard Sandiford <richard.sandiford@linaro.org> 11718 Alan Hayward <alan.hayward@arm.com> 11719 David Sherwood <david.sherwood@arm.com> 11720 11721 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE. 11722 (widened_mode): Likewise. 11723 (expand_unop): Likewise. 11724 * ree.c (transform_ifelse): Likewise. 11725 (merge_def_and_ext): Likewise. 11726 (combine_reaching_defs): Likewise. 11727 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 11728 117292017-10-13 Richard Sandiford <richard.sandiford@linaro.org> 11730 Alan Hayward <alan.hayward@arm.com> 11731 David Sherwood <david.sherwood@arm.com> 11732 11733 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset. 11734 * combine.c (gen_lowpart_for_combine): Likewise. 11735 * dwarf2out.c (rtl_for_decl_location): Likewise. 11736 * final.c (alter_subreg): Likewise. 11737 * rtlhooks.c (gen_lowpart_general): Likewise. 11738 (gen_lowpart_if_possible): Likewise. 11739 117402017-10-13 Richard Sandiford <richard.sandiford@linaro.org> 11741 Alan Hayward <alan.hayward@arm.com> 11742 David Sherwood <david.sherwood@arm.com> 11743 11744 * calls.c (expand_call): Use subreg_lowpart_offset. 11745 * cse.c (cse_insn): Likewise. 11746 * regcprop.c (copy_value): Likewise. 11747 (copyprop_hardreg_forward_1): Likewise. 11748 117492017-10-13 Jakub Jelinek <jakub@redhat.com> 11750 11751 PR target/82524 11752 * config/i386/i386.md (addqi_ext_1, andqi_ext_1, 11753 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change 11754 =Q constraints to +Q and into insn condition add check 11755 that operands[0] and operands[1] are equal. 11756 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change 11757 =Q constraints to +Q and into insn condition add check 11758 that operands[0] is equal to either operands[1] or operands[2]. 11759 11760 PR target/82498 11761 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups, 11762 instead of handling MINUS_EXPR twice (once for each argument), 11763 canonicalize operand order and handle just once, use rtype where 11764 possible. Handle (A << B) | (A >> (-B & (Z - 1))). 11765 11766 PR target/82498 11767 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow 11768 any values of __C while still being pattern recognizable as a simple 11769 rotate instruction. 11770 117712017-10-13 Richard Biener <rguenther@suse.de> 11772 11773 PR tree-optimization/82451 11774 Revert 11775 2017-10-02 Richard Biener <rguenther@suse.de> 11776 11777 PR tree-optimization/82355 11778 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build 11779 a mapping for the enclosing loop but avoid generating one for 11780 the loop tree root. 11781 (copy_bb_and_scalar_dependences): Remove premature codegen 11782 error on PHIs in blocks duplicated into multiple places. 11783 * graphite-scop-detection.c 11784 (scop_detection::stmt_has_simple_data_refs_p): For a loop not 11785 in the region use it as loop and nest to analyze the DR in. 11786 (try_generate_gimple_bb): Likewise. 11787 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. 11788 (add_loop_constraints): For blocks in a loop not in the region 11789 create a dimension with a single iteration. 11790 * sese.h (gbb_loop_at_index): Remove assert. 11791 11792 * cfgloop.c (loop_preheader_edge): For the loop tree root 11793 return the single successor of the entry block. 11794 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): 11795 Reset the SCEV hashtable and niters. 11796 * graphite-scop-detection.c 11797 (scop_detection::graphite_can_represent_scev): Add SCOP parameter, 11798 assert that we only have POLYNOMIAL_CHREC that vary in loops 11799 contained in the region. 11800 (scop_detection::graphite_can_represent_expr): Adjust. 11801 (scop_detection::stmt_has_simple_data_refs_p): For loops 11802 not in the region set loop to NULL. The nest is now the 11803 entry edge to the region. 11804 (try_generate_gimple_bb): Likewise. 11805 * sese.c (scalar_evolution_in_region): Adjust for 11806 instantiate_scev change. 11807 * tree-data-ref.h (graphite_find_data_references_in_stmt): 11808 Make nest parameter the edge into the region. 11809 (create_data_ref): Likewise. 11810 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an 11811 entry edge into a region and adjust instantiate_scev calls. 11812 (create_data_ref): Likewise. 11813 (graphite_find_data_references_in_stmt): Likewise. 11814 (find_data_references_in_stmt): Pass the loop preheader edge 11815 from the nest argument. 11816 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below 11817 parameter the edge into the region. 11818 (instantiate_parameters): Use the loop preheader edge as entry. 11819 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle 11820 NULL loop. 11821 (get_instantiated_value_entry): Make instantiate_below parameter 11822 the edge into the region. 11823 (instantiate_scev_name): Likewise. Adjust dominance checks, 11824 when we cannot use loop-based instantiation instantiate by 11825 walking use-def chains. 11826 (instantiate_scev_poly): Adjust. 11827 (instantiate_scev_binary): Likewise. 11828 (instantiate_scev_convert): Likewise. 11829 (instantiate_scev_not): Likewise. 11830 (instantiate_array_ref): Remove. 11831 (instantiate_scev_3): Likewise. 11832 (instantiate_scev_2): Likewise. 11833 (instantiate_scev_1): Likewise. 11834 (instantiate_scev_r): Do not blindly handle N-operand trees. 11835 Do not instantiate array-refs. Handle all constants and invariants. 11836 (instantiate_scev): Make instantiate_below parameter 11837 the edge into the region. 11838 (resolve_mixers): Use the loop preheader edge for the region 11839 parameter to instantiate_scev_r. 11840 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust. 11841 118422017-10-13 Richard Biener <rguenther@suse.de> 11843 11844 PR tree-optimization/82525 11845 * graphite-isl-ast-to-gimple.c 11846 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split 11847 out from ... 11848 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here. 11849 Fail code generation when we cannot represent the isl integer. 11850 (binary_op_to_tree): Elide modulo operations that are no-ops 11851 in the type we code generate. Remove now superfluous code 11852 generation errors. 11853 118542017-10-13 Richard Biener <rguenther@suse.de> 11855 11856 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove. 11857 (scop_detection::harmful_loop_in_region): Remove premature 11858 IV type restriction. 11859 (scop_detection::graphite_can_represent_scev): We can handle 11860 pointer IVs just fine. 11861 118622017-10-13 Alan Modra <amodra@gmail.com> 11863 11864 * doc/extend.texi (Extended Asm <Clobbers>): Rename to 11865 "Clobbers and Scratch Registers". Add paragraph on 11866 alternative to clobbers for scratch registers and OpenBLAS 11867 example. 11868 118692017-10-13 Alan Modra <amodra@gmail.com> 11870 11871 * doc/extend.texi (Clobbers): Correct vax example. Delete old 11872 example of a memory input for a string of known length. Move 11873 commentary out of table. Add a number of new examples 11874 covering array memory inputs. 11875 118762017-10-12 Martin Liska <mliska@suse.cz> 11877 11878 PR tree-optimization/82493 11879 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation. 11880 (test_range_functions): New function. 11881 (sbitmap_c_tests): Likewise. 11882 * selftest-run-tests.c (selftest::run_tests): Run new tests. 11883 * selftest.h (sbitmap_c_tests): New function. 11884 11885 * tree-ssa-dse.c (live_bytes_read): Fix thinko. 11886 118872017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com> 11888 11889 * config/rs6000/amo.h: Fix spacing issue. 11890 118912017-10-12 Jakub Jelinek <jakub@redhat.com> 11892 11893 PR target/82498 11894 * config/i386/i386.md (*ashl<mode>3_mask_1, 11895 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1, 11896 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split 11897 patterns. 11898 118992017-10-12 Jan Hubicka <hubicka@ucw.cz> 11900 11901 * profile-count.h (safe_scale_64bit): Fix GCC4.x path. 11902 (profile_probability): Set max_probability 11903 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows 11904 in temporaries. 11905 * profile-count.c (profile_probability::differs_from_p): Do not 11906 rely on max_probaiblity == 10000 11907 119082017-10-12 Jeff Law <law@redhat.com> 11909 11910 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with 11911 negative offsets. 11912 119132017-10-12 Martin Sebor <msebor@redhat.com> 11914 11915 PR other/82301 11916 PR c/82435 11917 * cgraphunit.c (maybe_diag_incompatible_alias): New function. 11918 (handle_alias_pairs): Call it. 11919 * common.opt (-Wattribute-alias): New option. 11920 * doc/extend.texi (ifunc attribute): Discuss C++ specifics. 11921 * doc/invoke.texi (-Wattribute-alias): Document. 11922 119232017-10-12 Vladimir Makarov <vmakarov@redhat.com> 11924 11925 Revert 11926 2017-10-11 Vladimir Makarov <vmakarov@redhat.com> 11927 PR sanitizer/82353 11928 * lra.c (collect_non_operand_hard_regs): Don't ignore operator 11929 locations. 11930 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. 11931 (make_hard_regno_born, make_hard_regno_dead): Update 11932 bb_killed_pseudos and bb_gen_pseudos. 11933 119342017-10-12 Jan Hubicka <hubicka@ucw.cz> 11935 11936 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support. 11937 119382017-10-12 Uros Bizjak <ubizjak@gmail.com> 11939 11940 * config/alpha/alpha.c (alpha_split_conditional_move): 11941 Use std::swap instead of manually swapping. 11942 (alpha_stdarg_optimize_hook): Ditto. 11943 (alpha_canonicalize_comparison): Ditto. 11944 119452017-10-12 Bin Cheng <bin.cheng@arm.com> 11946 11947 * tree-loop-distribution.c (struct builtin_info): New struct. 11948 (struct partition): Refactor fields into struct builtin_info. 11949 (partition_free): Free struct builtin_info. 11950 (build_size_arg_loc, build_addr_arg_loc): Delete. 11951 (generate_memset_builtin, generate_memcpy_builtin): Get memory range 11952 information from struct builtin_info. 11953 (find_single_drs): New function refactored from classify_partition. 11954 Also moved builtin validity checks to this function. 11955 (compute_access_range, alloc_builtin): New functions. 11956 (classify_builtin_st, classify_builtin_ldst): New functions. 11957 (classify_partition): Refactor code into functions find_single_drs, 11958 classify_builtin_st and classify_builtin_ldst. 11959 (distribute_loop): Don't do runtime alias check when distributing 11960 loop nest. 11961 (find_seed_stmts_for_distribution): New function. 11962 (pass_loop_distribution::execute): Refactor code finding seed 11963 stmts into above function. Support distribution for the innermost 11964 two-level loop nest. Adjust dump information. 11965 119662017-10-12 Bin Cheng <bin.cheng@arm.com> 11967 11968 * tree-loop-distribution.c: Adjust the general comment. 11969 (NUM_PARTITION_THRESHOLD): New macro. 11970 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution. 11971 (classify_partition): Skip builtin pattern of loop nest's inner loop. 11972 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it 11973 in call to build_partition_graph. 11974 (finalize_partitions): New parameter. Make loop distribution more 11975 conservative by fusing more partitions. 11976 (distribute_loop): Don't do runtime alias check in case of loop nest 11977 distribution. 11978 (find_seed_stmts_for_distribution): New function. 11979 (prepare_perfect_loop_nest): New function. 11980 (pass_loop_distribution::execute): Refactor code finding seed stmts 11981 and loop nest into above functions. Support loop nest distribution. 11982 Adjust dump information accordingly. 11983 119842017-10-12 Bin Cheng <bin.cheng@arm.com> 11985 11986 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment 11987 and set PTYPE_SEQUENTIAL for merged partition. 11988 119892017-10-12 Richard Biener <rguenther@suse.de> 11990 11991 PR tree-optimization/69728 11992 Revert 11993 2017-09-19 Richard Biener <rguenther@suse.de> 11994 11995 PR tree-optimization/69728 11996 * graphite-sese-to-poly.c (schedule_error): New global. 11997 (add_loop_schedule): Handle empty domain by failing the 11998 schedule. 11999 (build_original_schedule): Handle schedule_error. 12000 12001 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty 12002 domain by returning an unchanged schedule. 12003 120042017-10-12 Jakub Jelinek <jakub@redhat.com> 12005 12006 * genrecog.c (validate_pattern): For VEC_SELECT verify that 12007 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1. 12008 120092017-10-12 Aldy Hernandez <aldyh@redhat.com> 12010 12011 * Makefile.in (TAGS): Merge all the *.def files into one pattern. 12012 Handle params.def. 12013 120142017-10-12 Jakub Jelinek <jakub@redhat.com> 12015 12016 PR c++/82159 12017 * expr.c (store_field): Don't optimize away bitsize == 0 store 12018 from CALL_EXPR with addressable return type. 12019 120202017-10-11 Segher Boessenkool <segher@kernel.crashing.org> 12021 12022 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete. 12023 * config/rs6000/rs6000.md (sel): Delete mode attribute. 12024 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>, 12025 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use 12026 TARGET_ISEL instead of TARGET_ISEL<sel>. 12027 120282017-10-11 David Edelsohn <dje.gcc@gmail.com> 12029 12030 * config/rs6000/rs6000.c 12031 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl. 12032 120332017-10-11 Segher Boessenkool <segher@kernel.crashing.org> 12034 12035 * config/rs6000/predicates.md (zero_constant, all_ones_constant): 12036 Move up in file. 12037 (reg_or_cint_operand): Fix comment. 12038 (reg_or_zero_operand): New predicate. 12039 * config/rs6000/rs6000-protos.h (output_isel): Delete. 12040 * config/rs6000/rs6000.c (output_isel): Delete. 12041 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand 12042 instead of reg_or_cint_operand. Output instruction directly (not via 12043 output_isel). 12044 (isel_unsigned_<mode>): Ditto. 12045 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of 12046 gpc_reg_operand. Add an instruction alternative for this. Output 12047 instruction directly. 12048 (*isel_reversed_unsigned_<mode>): Ditto. 12049 120502017-10-11 Uros Bizjak <ubizjak@gmail.com> 12051 12052 * config/i386/i386.c (ix86_canonicalize_comparison): New function. 12053 (TARGET_CANONICALIZE_COMPARISON): Define. 12054 120552017-10-11 Qing Zhao <qing.zhao@oracle.com> 12056 12057 PR target/81422 12058 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): 12059 Check whether the dest is REG before adding REG_EQUIV note. 12060 120612017-10-11 Vladimir Makarov <vmakarov@redhat.com> 12062 12063 PR sanitizer/82353 12064 * lra.c (collect_non_operand_hard_regs): Don't ignore operator 12065 locations. 12066 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. 12067 (make_hard_regno_born, make_hard_regno_dead): Update 12068 bb_killed_pseudos and bb_gen_pseudos. 12069 120702017-10-11 Nathan Sidwell <nathan@acm.org> 12071 12072 * incpath.h (enum incpath_kind): Name enum, prefix values. 12073 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind. 12074 * incpath.c (heads, tails): Use INC_MAX. 12075 (add_env_var_paths, add_standard_paths): Use incpath_kind. 12076 (merge_include_chains, split_quote_chain, 12077 register_include_chains): Update incpath_kind names. 12078 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind. 12079 * config/darwin-c.c (add_system_framework_path): Update incpath_kind 12080 names. 12081 (add_framework_path, darwin_register_objc_includes): Likewise. 12082 * config/vms/vms-c.c (vms_c_register_includes): Likewise. 12083 120842017-10-11 Uros Bizjak <ubizjak@gmail.com> 12085 12086 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): 12087 Do not use float_operator operator predicate. 12088 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. 12089 * config/i386/predicates.md (float_operator): Remove predicate. 12090 120912017-10-11 Uros Bizjak <ubizjak@gmail.com> 12092 12093 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern. 12094 (*jccxf_i387): Ditto. 12095 (*jcc<mode>_i387): Ditto. 12096 (*jccu<mode>_i387): Ditto. 12097 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto. 12098 (*jcc_*_i387 splitters): Remove. 12099 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype. 12100 * config/i386/i386.c (ix86_split_fp_branch): Remove. 12101 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator): 12102 Remove predicate. 12103 121042017-10-11 Jan Hubicka <hubicka@ucw.cz> 12105 12106 * profile-count.h (slow_safe_scale_64bit): New function. 12107 (safe_scale_64bit): New inline. 12108 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit. 12109 * profile-count.c: Include wide-int.h 12110 (slow_safe_scale_64bit): New. 12111 121122017-10-11 Nathan Sidwell <nathan@acm.org> 12113 12114 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check 12115 HAS_DECL_ASSEMBLER_NAME_P. 12116 * gimple-expr.c (gimple_decl_printable_name: Check 12117 HAS_DECL_ASSEMBLER_NAME_P too. 12118 * ipa-utils.h (type_in_anonymous_namespace_p): Check 12119 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME. 12120 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL. 12121 * passes.c (rest_of_decl_compilation): Check 12122 HAS_DECL_ASSEMBLER_NAME_P too. 12123 * recog.c (verify_changes): Likewise. 12124 * tree-pretty-print.c (dump_decl_name): Likewise. 12125 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement. 12126 12127 * tree.h (DECL_ASSEMBLER_NAME_RAW): New. 12128 (SET_DECL_ASSEMBLER_NAME): Use it. 12129 (DECL_ASSEMBLER_NAME_SET_P): Likewise. 12130 (COPY_DECL_ASSEMBLER_NAME): Likewise. 12131 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW. 12132 121332017-10-11 Jan Hubicka <hubicka@ucw.cz> 12134 12135 * config.gcc (i386, x86_64): Add extra objects. 12136 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare. 12137 (ix86_min_insn_size): Declare. 12138 (ix86_issue_rate): Declare. 12139 (ix86_adjust_cost): Declare. 12140 (ia32_multipass_dfa_lookahead): Declare. 12141 (ix86_macro_fusion_p): Declare. 12142 (ix86_macro_fusion_pair_p): Declare. 12143 (ix86_bd_has_dispatch): Declare. 12144 (ix86_bd_do_dispatch): Declare. 12145 (ix86_core2i7_init_hooks): Declare. 12146 (ix86_atom_sched_reorder): Declare. 12147 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h. 12148 (COSTS_N_BYTES): Move to x86-tune-costs.h. 12149 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h. 12150 (rip_relative_addr_p): Rename to ... 12151 (ix86_rip_relative_addr_p): ... this one; export. 12152 (memory_address_length): Update. 12153 (ix86_issue_rate): Move to x86-tune-sched.c. 12154 (ix86_flags_dependent): Move to x86-tune-sched.c. 12155 (ix86_agi_dependent): Move to x86-tune-sched.c. 12156 (exact_dependency_1): Move to x86-tune-sched.c. 12157 (exact_store_load_dependency): Move to x86-tune-sched.c. 12158 (ix86_adjust_cost): Move to x86-tune-sched.c. 12159 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c. 12160 (ix86_macro_fusion_p): Move to x86-tune-sched.c. 12161 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c. 12162 (do_reorder_for_imul): Move to x86-tune-sched-atom.c. 12163 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c. 12164 (ix86_sched_reorder): Move to x86-tune-sched-atom.c. 12165 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c. 12166 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c. 12167 (min_insn_size): Rename to ... 12168 (ix86_min_insn_size): ... this one; export. 12169 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c. 12170 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c. 12171 (core2i7_first_cycle_multipass_backtrack): Move to 12172 x86-tune-sched-core.c. 12173 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c. 12174 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c. 12175 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks. 12176 (ix86_avoid_jump_mispredicts): Update. 12177 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c. 12178 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c. 12179 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c. 12180 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c. 12181 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c. 12182 (MAX_INSN): Move to ix86-tune-sched-bd.c. 12183 (MAX_IMM): Move to ix86-tune-sched-bd.c. 12184 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c. 12185 (MAX_IMM_32): Move to ix86-tune-sched-bd.c. 12186 (MAX_IMM_64): Move to ix86-tune-sched-bd.c. 12187 (MAX_LOAD): Move to ix86-tune-sched-bd.c. 12188 (MAX_STORE): Move to ix86-tune-sched-bd.c. 12189 (BIG): Move to ix86-tune-sched-bd.c. 12190 (enum dispatch_group): Move to ix86-tune-sched-bd.c. 12191 (enum insn_path): Move to ix86-tune-sched-bd.c. 12192 (get_mem_group): Move to ix86-tune-sched-bd.c. 12193 (is_cmp): Move to ix86-tune-sched-bd.c. 12194 (dispatch_violation): Move to ix86-tune-sched-bd.c. 12195 (is_branch): Move to ix86-tune-sched-bd.c. 12196 (is_prefetch): Move to ix86-tune-sched-bd.c. 12197 (init_window): Move to ix86-tune-sched-bd.c. 12198 (allocate_window): Move to ix86-tune-sched-bd.c. 12199 (init_dispatch_sched): Move to ix86-tune-sched-bd.c. 12200 (is_end_basic_block): Move to ix86-tune-sched-bd.c. 12201 (process_end_window): Move to ix86-tune-sched-bd.c. 12202 (allocate_next_window): Move to ix86-tune-sched-bd.c. 12203 (find_constant): Move to ix86-tune-sched-bd.c. 12204 (get_num_immediates): Move to ix86-tune-sched-bd.c. 12205 (has_immediate): Move to ix86-tune-sched-bd.c. 12206 (get_insn_path): Move to ix86-tune-sched-bd.c. 12207 (get_insn_group): Move to ix86-tune-sched-bd.c. 12208 (count_num_restricted): Move to ix86-tune-sched-bd.c. 12209 (fits_dispatch_window): Move to ix86-tune-sched-bd.c. 12210 (add_insn_window): Move to ix86-tune-sched-bd.c. 12211 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c. 12212 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c. 12213 (debug_dispatch_window): Move to ix86-tune-sched-bd.c. 12214 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c. 12215 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c. 12216 (do_dispatch): Move to ix86-tune-sched-bd.c. 12217 (has_dispatch): Move to ix86-tune-sched-bd.c. 12218 * config/i386/t-i386: Add new object files. 12219 * config/i386/x86-tune-costs.h: New file. 12220 * config/i386/x86-tune-sched-atom.c: New file. 12221 * config/i386/x86-tune-sched-bd.c: New file. 12222 * config/i386/x86-tune-sched-core.c: New file. 12223 * config/i386/x86-tune-sched.c: New file. 12224 122252017-10-11 Liu Hao <lh_mouse@126.com> 12226 12227 * pretty-print.c [_WIN32] (colorize_init): Remove. Use 12228 the generic version below instead. 12229 (should_colorize): Recognize Windows consoles as terminals 12230 for MinGW targets. 12231 * pretty-print.c [__MINGW32__] (write_all): New function. 12232 [__MINGW32__] (find_esc_head): Likewise. 12233 [__MINGW32__] (find_esc_terminator): Likewise. 12234 [__MINGW32__] (eat_esc_sequence): Likewise. 12235 [__MINGW32__] (mingw_ansi_fputs): New function that handles 12236 ANSI escape codes. 12237 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs 12238 for MinGW targets. 12239 122402017-10-11 Richard Biener <rguenther@suse.de> 12241 12242 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): 12243 Properly call analyze_scalar_evolution with the loop of the stmt. 12244 122452017-10-11 Richard Biener <rguenther@suse.de> 12246 12247 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. 12248 * tree-core.h (tree_base): Add chrec_var union member. 12249 * tree.h (CHREC_VAR): Remove. 12250 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust. 12251 * tree-chrec.h (build_polynomial_chrec): Adjust. 12252 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec. 12253 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE. 12254 122552017-10-11 Marc Glisse <marc.glisse@inria.fr> 12256 12257 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ... 12258 * match.pd: ... here. 12259 ((T) X == (T) Y): Relax condition. 12260 122612017-10-11 Bin Cheng <bin.cheng@arm.com> 12262 12263 PR tree-optimization/82472 12264 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine 12265 comment. 12266 (break_alias_scc_partitions): Update postorder number. 12267 122682017-10-11 Martin Liska <mliska@suse.cz> 12269 12270 PR sanitizer/82490 12271 * opts.c (parse_no_sanitize_attribute): Do not use error_value 12272 variable. 12273 * opts.h (parse_no_sanitize_attribute): Remove last argument. 12274 122752017-10-11 Martin Liska <mliska@suse.cz> 12276 12277 * print-rtl.c (print_insn): Move declaration of idbuf 12278 to same scope as name. 12279 122802017-10-11 Martin Liska <mliska@suse.cz> 12281 12282 Revert r253637: 12283 12284 PR sanitizer/82484 12285 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle 12286 volatile arguments. 12287 122882017-10-11 Martin Liska <mliska@suse.cz> 12289 12290 PR sanitizer/82484 12291 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle 12292 volatile arguments. 12293 122942017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org> 12295 12296 * config.gcc (default_gnu_indirect_function): Default to yes for 12297 arm*-*-linux* with glibc. 12298 122992017-10-11 Richard Biener <rguenther@suse.de> 12300 12301 * tree-scalar-evolution.c (get_scalar_evolution): Handle 12302 default-defs and types we do not want to analyze. 12303 (interpret_loop_phi): Replace unreachable code with an assert. 12304 (compute_scalar_evolution_in_loop): Remove and inline ... 12305 (analyze_scalar_evolution_1): ... here, replacing condition with 12306 what makes the intent clearer. Remove handling of cases 12307 get_scalar_evolution now handles. 12308 123092017-10-10 Jim Wilson <wilson@tuliptree.org> 12310 12311 PR rtl-optimization/81434 12312 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update 12313 comment for main loop. In sched_group_found if, also add checks for 12314 pass and min_cost_group. 12315 123162017-10-10 Segher Boessenkool <segher@kernel.crashing.org> 12317 12318 * config/rs6000/rs6000.c (TARGET_INSN_COST): New. 12319 (rs6000_insn_cost): New function. 12320 * config/rs6000/rs6000.md (cost): New attribute. 12321 123222017-10-10 Jakub Jelinek <jakub@redhat.com> 12323 H.J. Lu <hongjiu.lu@intel.com> 12324 12325 PR target/79565 12326 PR target/82483 12327 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add 12328 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq, 12329 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi. 12330 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly 12331 to OPTION_MASK_ISA_AVX512VL - builtins that have both 12332 OPTION_MASK_ISA_MMX and some other bit set require both 12333 mmx and the ISAs without the mmx bit. 12334 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi, 12335 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps, 12336 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw, 12337 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub, 12338 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb, 12339 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi, 12340 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd, 12341 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw, 12342 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd, 12343 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd, 12344 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw, 12345 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb, 12346 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq, 12347 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr): 12348 Add OPTION_MASK_ISA_MMX. 12349 123502017-10-10 Andreas Tobler <andreast@gcc.gnu.org> 12351 12352 * config.gcc (armv7*-*-freebsd*): New target. 12353 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define. 12354 123552017-10-10 Jan Hubicka <hubicka@ucw.cz> 12356 12357 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, 12358 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right 12359 spot in the file. 12360 123612017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 12362 12363 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision 12364 a template parameter. 12365 (WIDE_INT_REF_FOR): Update accordingly. 12366 * tree.h (wi::int_traits <const_tree>): Delete. 12367 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs. 12368 (wi::to_widest, wi::to_offset): Use them. Expand commentary. 12369 (wi::tree_to_wide_ref): New typedef. 12370 (wi::to_wide): New function. 12371 * calls.c (get_size_range): Use wi::to_wide when operating on 12372 trees as wide_ints. 12373 * cgraph.c (cgraph_node::create_thunk): Likewise. 12374 * config/i386/i386.c (ix86_data_alignment): Likewise. 12375 (ix86_local_alignment): Likewise. 12376 * dbxout.c (stabstr_O): Likewise. 12377 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise. 12378 * expr.c (const_vector_from_tree): Likewise. 12379 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise. 12380 * fold-const.c (may_negate_without_overflow_p, negate_expr_p) 12381 (fold_negate_expr_1, int_const_binop_1, const_binop) 12382 (fold_convert_const_int_from_real, optimize_bit_field_compare) 12383 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1) 12384 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr) 12385 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc) 12386 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const) 12387 (fold_not_const, round_up_loc): Likewise. 12388 * gimple-fold.c (gimple_fold_indirect_ref): Likewise. 12389 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise. 12390 (alloca_call_type): Likewise. 12391 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise. 12392 * godump.c (go_output_typedef): Likewise. 12393 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. 12394 * internal-fn.c (get_min_precision): Likewise. 12395 * ipa-cp.c (ipcp_store_vr_results): Likewise. 12396 * ipa-polymorphic-call.c 12397 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. 12398 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise. 12399 (ipa_modify_call_arguments): Likewise. 12400 * match.pd: Likewise. 12401 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise. 12402 * print-tree.c (print_node_brief, print_node): Likewise. 12403 * stmt.c (expand_case): Likewise. 12404 * stor-layout.c (layout_type): Likewise. 12405 * tree-affine.c (tree_to_aff_combination): Likewise. 12406 * tree-cfg.c (group_case_labels_stmt): Likewise. 12407 * tree-data-ref.c (dr_analyze_indices): Likewise. 12408 (prune_runtime_alias_test_list): Likewise. 12409 * tree-dump.c (dequeue_and_dump): Likewise. 12410 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise. 12411 * tree-predcom.c (is_inv_store_elimination_chain): Likewise. 12412 * tree-pretty-print.c (dump_generic_node): Likewise. 12413 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. 12414 (simple_iv_with_niters): Likewise. 12415 * tree-ssa-address.c (addr_for_mem_ref): Likewise. 12416 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise. 12417 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise. 12418 * tree-ssa-loop-niter.c (split_to_var_and_offset) 12419 (refine_value_range_using_guard, number_of_iterations_ne_max) 12420 (number_of_iterations_lt_to_ne, number_of_iterations_lt) 12421 (get_cst_init_from_scev, record_nonwrapping_iv) 12422 (scev_var_range_cant_overflow): Likewise. 12423 * tree-ssa-phiopt.c (minmax_replacement): Likewise. 12424 * tree-ssa-pre.c (compute_avail): Likewise. 12425 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. 12426 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise. 12427 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. 12428 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise. 12429 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise. 12430 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type) 12431 (dump_case_nodes, try_switch_expansion): Likewise. 12432 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise. 12433 (vect_do_peeling): Likewise. 12434 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. 12435 * tree-vect-stmts.c (vectorizable_load): Likewise. 12436 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise. 12437 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise. 12438 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise. 12439 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise. 12440 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits) 12441 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise. 12442 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise. 12443 (evrp_dom_walker::before_dom_children): Likewise. 12444 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop) 12445 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2) 12446 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit) 12447 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise. 12448 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow) 12449 (get_range_pos_neg): Likewise. 12450 * ubsan.c (ubsan_expand_ptr_ifn): Likewise. 12451 * config/darwin.c (darwin_mergeable_constant_section): Likewise. 12452 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise. 12453 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. 12454 * config/avr/avr.c (avr_fold_builtin): Likewise. 12455 * config/bfin/bfin.c (bfin_local_alignment): Likewise. 12456 * config/msp430/msp430.c (msp430_attr): Likewise. 12457 * config/nds32/nds32.c (nds32_insert_attributes): Likewise. 12458 * config/powerpcspe/powerpcspe-c.c 12459 (altivec_resolve_overloaded_builtin): Likewise. 12460 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate) 12461 (rs6000_expand_ternop_builtin): Likewise. 12462 * config/rs6000/rs6000-c.c 12463 (altivec_resolve_overloaded_builtin): Likewise. 12464 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise. 12465 (rs6000_expand_ternop_builtin): Likewise. 12466 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise. 12467 124682017-10-10 Bin Cheng <bin.cheng@arm.com> 12469 12470 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes 12471 when copying loop nest with only one inner loop. 12472 124732017-10-10 Richard Biener <rguenther@suse.de> 12474 12475 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting 12476 blocks if SCEV is active. 12477 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove 12478 dead code. 12479 (analyze_scalar_evolution): Handle cached evolutions the obvious way. 12480 (scev_initialize): Assert we are not yet initialized. 12481 124822017-10-10 Bin Cheng <bin.cheng@arm.com> 12483 12484 * tree-loop-distribution.c (generate_loops_for_partition): Remove 12485 inner loop's exit stmt by making it always exit the loop, otherwise 12486 we would generate an infinite empty loop. 12487 124882017-10-10 Bin Cheng <bin.cheng@arm.com> 12489 12490 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip 12491 renaming variables in new preheader if it's deleted. 12492 124932017-10-10 Bin Cheng <bin.cheng@arm.com> 12494 12495 * tree-loop-distribution.c (struct partition): Remove unused field 12496 loops of the structure. 12497 (partition_alloc, partition_free): Ditto. 12498 (build_rdg_partition_for_vertex): Ditto. 12499 125002017-10-09 Jeff Law <law@redhat.com> 12501 12502 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix 12503 return type to match prototype and documentation. 12504 125052010-10-09 Segher Boessenkool <segher@kernel.crashing.org> 12506 12507 * config/rs6000/rs6000.c (processor_costs): Move to ... 12508 * config/rs6000/rs6000.h: ... here. 12509 (rs6000_cost): Declare. 12510 125112017-10-09 Eric Botcazou <ebotcazou@adacore.com> 12512 12513 * except.c (setjmp_fn): New global variable. 12514 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined. 12515 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP 12516 if DONT_USE_BUILTIN_SETJMP is defined. 12517 125182017-10-09 Segher Boessenkool <segher@kernel.crashing.org> 12519 12520 * target.def (insn_cost): New hook. 12521 * doc/tm.texi.in (TARGET_INSN_COST): New hook. 12522 * doc/tm.texi: Regenerate. 12523 * rtlanal.c (insn_cost): Use the new hook. 12524 125252017-10-09 Segher Boessenkool <segher@kernel.crashing.org> 12526 12527 * combine.c (combine_validate_cost): Compute the new insn_cost, 12528 not just pattern_cost. 12529 (try_combine): Adjust comment. 12530 125312017-10-09 Segher Boessenkool <segher@kernel.crashing.org> 12532 12533 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with 12534 insn_cost. 12535 * combine.c (uid_insn_cost): Adjust comment. 12536 (combine_validate_cost): Adjust comment. Use pattern_cost instead 12537 of insn_rtx_cost 12538 (combine_instructions): Use insn_cost instead of insn_rtx_cost. 12539 * dse.c (find_shift_sequence): Ditto. 12540 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto. 12541 (bb_valid_for_noce_process_p): Use pattern_cost. 12542 * rtl.h (insn_rtx_cost): Delete. 12543 (pattern_cost): New prototype. 12544 (insn_cost): New prototype. 12545 * rtlanal.c (insn_rtx_cost): Rename to... 12546 (pattern_cost): ... this. 12547 (insn_cost): New. 12548 125492017-10-09 Uros Bizjak <ubizjak@gmail.com> 12550 12551 * config/i386/i386.md (*jcc_2): Remove insn pattern. 12552 (*jcc<mode>_0_r_i387): Ditto. 12553 (*jccxf_r_i387): Ditto. 12554 (*jcc<mode>_r_i387): Ditto. 12555 (*jccu<mode>_r_i387): Ditto. 12556 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto. 12557 (*jcc): Rename from *jcc_1. 12558 125592017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12560 12561 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process 12562 deferred rescans after the lvx/stvx recombination pre-pass. 12563 125642017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com> 12565 12566 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic 12567 memory operation instruction support. 12568 * config.gcc (powerpc*-*-*): Include amo.h as an extra header. 12569 (rs6000-ibm-aix[789]*): Likewise. 12570 * doc/extend.texi (PowerPC Atomic Memory Operation Functions): 12571 Document new functions. 12572 125732017-10-09 Richard Biener <rguenther@suse.de> 12574 12575 PR tree-optimization/82397 12576 * tree-data-ref.c (data_ref_compare_tree): Make sure to return 12577 equality only for semantically equal trees. 12578 125792017-10-09 Richard Biener <rguenther@suse.de> 12580 12581 PR tree-optimization/82449 12582 * sese.c (scev_analyzable_p): Check whether the SCEV is linear. 12583 * tree-chrec.h (evolution_function_is_constant_p): Adjust to 12584 allow constant addresses. 12585 * tree-chrec.c (scev_is_linear_expression): Constant evolutions 12586 are linear. 12587 125882017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12589 12590 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin 12591 flags. 12592 125932017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12594 12595 PR target/82463 12596 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro 12597 definitions. 12598 125992017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12600 12601 PR target/82465 12602 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags. 12603 126042017-10-09 Jakub Jelinek <jakub@redhat.com> 12605 12606 PR target/82464 12607 * config/s390/s390-builtins.def (s390_vec_xor_flt_a, 12608 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New. 12609 126102017-10-09 Richard Sandiford <richard.sandiford@linaro.org> 12611 12612 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro. 12613 (WI_BINARY_PREDICATE_RESULT): Likewise. 12614 (wi::binary_traits::operator_result): New type. 12615 (wi::binary_traits::predicate_result): Likewise. 12616 (generic_wide_int::operator~, unary generic_wide_int::operator-) 12617 (generic_wide_int::operator==, generic_wide_int::operator!=) 12618 (generic_wide_int::operator&, generic_wide_int::and_not) 12619 (generic_wide_int::operator|, generic_wide_int::or_not) 12620 (generic_wide_int::operator^, generic_wide_int::operator+ 12621 (binary generic_wide_int::operator-, generic_wide_int::operator*): 12622 Delete. 12623 (operator~, unary operator-, operator==, operator!=, operator&) 12624 (operator|, operator^, operator+, binary operator-, operator*): New 12625 functions. 12626 * expr.c (get_inner_reference): Use wi::bit_and_not. 12627 * fold-const.c (fold_binary_loc): Likewise. 12628 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise. 12629 * tree-ssa-ccp.c (get_value_from_alignment): Likewise. 12630 (bit_value_binop): Likewise. 12631 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise. 12632 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise. 12633 (extract_range_from_binary_expr_1): Likewise. 12634 (masked_increment): Likewise. 12635 (simplify_bit_ops_using_ranges): Likewise. 12636 126372017-10-09 Martin Jambor <mjambor@suse.cz> 12638 12639 PR hsa/82416 12640 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit. 12641 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function. 12642 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for 12643 COMPLEX types. 12644 (hsa_fixup_mov_insn_type): New function. 12645 (hsa_op_with_type::get_in_type): Use it. 12646 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit 12647 immediates in an assert. 12648 (hsa_op_with_type::extend_int_to_32bit): New method. 12649 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary 12650 types. Convert to dest type if necessary. 12651 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary. 12652 (reg_for_gimple_ssa): Pass false as min32int to 12653 hsa_type_for_scalar_tree_type. 12654 (gen_hsa_addr): Fixup type when creating addresable temporary. 12655 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary. 12656 (gen_hsa_unary_operation): Extend operands and convert to dest type if 12657 necessary. Call hsa_fixup_mov_insn_type. 12658 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type, 12659 extend operands and convert to dest type if necessary. 12660 (gen_hsa_insns_for_operation_assignment): Extend operands and convert 12661 to dest type if necessary. 12662 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest 12663 if conversion nt necessary and size matches. 12664 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert 12665 to dest type if necessary. 12666 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type. 12667 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if 12668 necessary. 12669 (gen_hsa_clrsb): Likewise. 12670 (gen_hsa_ffs): Likewise. 12671 (gen_hsa_divmod): Extend operands and convert to dest type if 12672 necessary. 12673 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type. 12674 126752017-10-08 Segher Boessenkool <segher@kernel.crashing.org> 12676 12677 * config/rs6000/rs6000.md (conditional branch): Clean up formatting. 12678 Remove empty default arguments. Use a brace block as output 12679 statement. 12680 (conditional return): Ditto. 12681 (jump): Ditto. 12682 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr. 12683 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1): 12684 Ditto. 12685 (group_ending_nop): Ditto. 12686 (doloop_end): Ditto. 12687 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto. 12688 (splitters for those): Ditto. 12689 126902017-10-08 Segher Boessenkool <segher@kernel.crashing.org> 12691 12692 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert 12693 a conditional jump (and the compare for it) so that pc_rtx is the 12694 last operand. 12695 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust 12696 for the deleted and renamed ctr<mode>_internal[234] patterns. 12697 * config/rs6000/rs6000.md: Delete second conditional branch pattern. 12698 Delete second conditional return pattern. 12699 (ctr<mode>_internal2): Delete this second bdnz pattern. 12700 (ctr<mode>_internal3): Rename to ctr<mode>_internal2. 12701 (ctr<mode>_internal4): Delete this second bdz pattern. 12702 127032017-10-08 Eric Botcazou <ebotcazou@adacore.com> 12704 12705 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. 12706 (always_initialized_rtx_for_ssa_name_p): New predicate. 12707 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA. 12708 (finish_out_of_ssa): Free new field of SA. 12709 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare. 12710 * tree-ssa-coalesce.c: Include tree-ssa.h. 12711 (get_parm_default_def_partitions): Remove extern keyword. 12712 (get_undefined_value_partitions): New function. 12713 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do 12714 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain 12715 uninitialized bits. 12716 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs. 12717 127182017-10-08 Eric Botcazou <ebotcazou@adacore.com> 12719 12720 * builtins.def (BUILT_IN_SETJMP): Revert latest change. 12721 127222017-10-08 Jan Hubicka <hubicka@ucw.cz> 12723 12724 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops 12725 for targets that preffer 128bit. 12726 127272017-10-08 Jan Hubicka <hubicka@ucw.cz> 12728 12729 * config/i386/i386.c (has_dispatch): Disable for Ryzen. 12730 127312017-10-08 Olivier Hainque <hainque@adacore.com> 12732 12733 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P 12734 on the target mem instead of RTX_FRAME_RELATED_P on the insn to 12735 prevent DSE. 12736 (thumb_set_return_address): Likewise. 12737 127382017-10-08 Olivier Hainque <hainque@adacore.com> 12739 12740 * common/config/arm/arm-common.c (arm_except_unwind_info): 12741 Handle DWARF2_UNWIND_INFO. 12742 127432017-10-07 Michael Collison <michael.collison@arm.com> 12744 12745 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3): 12746 New pattern. 12747 127482017-10-07 Eric Botcazou <ebotcazou@adacore.com> 12749 12750 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead 12751 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. 12752 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is 12753 defined, force the creation of a new block for a dispatch label. 12754 127552017-10-07 Jan Hubicka <hubicka@ucw.cz> 12756 12757 * invoke.texi (Wsuggest-attribute=cold): Document. 12758 * common.opt (Wsuggest-attribute=cold): New 12759 * ipa-pure-const.c (warn_function_cold): New function. 12760 * predict.c (compute_function_frequency): Use it. 12761 * predict.h (warn_function_cold): Declare. 12762 127632017-10-06 Jan Hubicka <hubicka@ucw.cz> 12764 12765 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns): 12766 Update profile. 12767 127682017-10-06 Martin Liska <mliska@suse.cz> 12769 12770 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline 12771 keyword for member functions. 12772 (struct sanopt_tree_couple): New struct. 12773 (struct sanopt_tree_couple_hash): New function. 12774 (struct sanopt_ctx): Add new hash_map. 12775 (has_dominating_ubsan_ptr_check): New function. 12776 (record_ubsan_ptr_check_stmt): Likewise. 12777 (maybe_optimize_ubsan_ptr_ifn): Likewise. 12778 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR. 12779 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW. 12780 127812017-10-06 Sudakshina Das <sudi.das@arm.com> 12782 12783 PR target/82440 12784 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call 12785 aarch64_simd_valid_immediate on CONST_VECTORs. 12786 (aarch64_reg_or_bic_imm): Likewise. 12787 127882017-10-06 Wilco Dijkstra <wdijkstr@arm.com> 12789 12790 PR rtl-optimization/82396 12791 * haifa-sched.c (ready_sort_real): Disable qsort checking. 12792 127932017-10-06 Sebastian Pop <sebpop@gmail.com> 12794 12795 * graphite-dependences.c (scop_get_reads): Move code to... 12796 (scop_get_must_writes): Move code to... 12797 (scop_get_may_writes): Move code to... 12798 (scop_get_reads_and_writes): ... here. 12799 (scop_get_dependences): Call scop_get_reads_and_writes. 12800 128012017-10-06 Jakub Jelinek <jakub@redhat.com> 12802 12803 PR tree-optimization/82434 12804 * fold-const.h (can_native_encode_type_p, 12805 can_native_encode_string_p): Remove. 12806 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL, 12807 don't encode anything, just return what would be otherwise returned. 12808 (native_encode_fixed, native_encode_complex, native_encode_vector): 12809 Likewise. 12810 (native_encode_string): Likewise. Inline by hand 12811 can_native_encode_string_p. 12812 (can_native_encode_type_p): Remove. 12813 (can_native_encode_string_p): Remove. 12814 * tree-vect-stmts.c (vectorizable_store): Instead of testing just 12815 STRING_CSTs using can_native_encode_string_p, test all 12816 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr. 12817 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last 12818 argument from native_encode_expr. 12819 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr. 12820 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts, 12821 but just 2. 12822 128232017-10-06 Richard Biener <rguenther@suse.de> 12824 12825 PR tree-optimization/82397 12826 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use 12827 operand_equal_p but rely on data_ref_compare_tree for detecting 12828 equalities. 12829 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree 12830 to match up with dr_group_sort_cmp. 12831 128322017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12833 12834 PR target/82322 12835 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded 12836 builtin. 12837 * config/s390/s390-builtin-types.def: Regenerate. 12838 128392017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12840 12841 PR target/82317 12842 * config/s390/s390-builtin-types.def: Regenerate. 12843 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4): 12844 Change flag from B_VXE to B_VX. 12845 (s390_vec_min_dbl): Remove B_VXE flag. 12846 128472017-10-06 Richard Biener <rguenther@suse.de> 12848 12849 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. 12850 (translate_isl_ast_to_gimple::translate_pending_phi_nodes, 12851 translate_isl_ast_to_gimple::is_valid_rename, 12852 translate_isl_ast_to_gimple::get_rename, 12853 translate_isl_ast_to_gimple::get_def_bb_for_const, 12854 translate_isl_ast_to_gimple::get_new_name, 12855 translate_isl_ast_to_gimple::collect_all_ssa_names, 12856 translate_isl_ast_to_gimple::copy_loop_phi_args, 12857 translate_isl_ast_to_gimple::collect_all_ssa_names, 12858 translate_isl_ast_to_gimple::copy_loop_phi_args, 12859 translate_isl_ast_to_gimple::copy_loop_phi_nodes, 12860 translate_isl_ast_to_gimple::add_close_phis_to_merge_points, 12861 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops, 12862 translate_isl_ast_to_gimple::copy_loop_close_phi_args, 12863 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes, 12864 translate_isl_ast_to_gimple::copy_cond_phi_args, 12865 translate_isl_ast_to_gimple::copy_cond_phi_nodes, 12866 translate_isl_ast_to_gimple::edge_for_new_close_phis, 12867 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr, 12868 translate_isl_ast_to_gimple::rename_uses, 12869 translate_isl_ast_to_gimple::rename_all_uses): Remove. 12870 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify. 12871 (set_rename_for_each_def): Likewise. 12872 (graphite_copy_stmts_from_block): Handle debug stmt resetting 12873 here. Handle rewriting SCEV analyzable uses here. 12874 (copy_bb_and_scalar_dependences): Generate code for PHI 12875 copy-in/outs. 12876 (graphite_regenerate_ast_isl): Adjust. 12877 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch]. 12878 (add_write, add_read): New functions. 12879 (build_cross_bb_scalars_def): Use it and simplify. 12880 (build_cross_bb_scalars_use): Likewise. 12881 (graphite_find_cross_bb_scalar_vars): Inline into... 12882 (try_generate_gimple_bb): ...here. Add dependences for PHIs, 12883 simulating out-of-SSA. Compute liveout and add dependencies. 12884 (build_scops): Force an empty entry block. 12885 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New 12886 members. 12887 (sese_build_liveouts): Declare. 12888 (sese_trivially_empty_bb_p): Likewise. 12889 * sese.c (sese_build_liveouts_bb): Properly handle PHIs, 12890 compute liveout and debug_liveout. 12891 (sese_bad_liveouts_use): Remove. 12892 (sese_reset_debug_liveouts_bb): Likewise. 12893 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout. 12894 (sese_build_liveouts): Build liveout and debug_liveout and store 12895 it in region. 12896 (new_sese_info): Adjust. 12897 (free_sese_info): Likewise. 12898 (sese_insert_phis_for_liveouts): Reset debug stmts from here, 12899 do not build liveout here. 12900 (move_sese_in_condition): Adjust region entry. 12901 (scev_analyzable_p): Match up with chrec_apply requirements. 12902 (sese_trivially_empty_bb_p): New. 12903 * tree-into-ssa.c (get_reaching_def): Properly support generating 12904 default-defs for incremental rewrite of anonymous names. 12905 129062017-10-06 Richard Biener <rguenther@suse.de> 12907 12908 * graphite-sese-to-poly.c (extract_affine): For casts increasing 12909 precision do not perform modulo reduction. 12910 129112017-10-06 Richard Biener <rguenther@suse.de> 12912 12913 PR tree-optimization/82436 12914 * tree-vect-slp.c (vect_supported_load_permutation_p): More 12915 conservatively choose the vectorization factor when checking 12916 whether we can perform the required load permutation. 12917 (vect_transform_slp_perm_load): Assert when we may not fail. 12918 129192017-10-05 Segher Boessenkool <segher@kernel.crashing.org> 12920 12921 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error 12922 message for incompatible -msdata=* and -mcall-* options. 12923 129242017-10-05 Jan Hubicka <hubicka@ucw.cz> 12925 12926 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue 12927 rate for post-reload scheduling. 12928 129292017-10-05 Tamar Christina <tamar.christina@arm.com> 12930 12931 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New. 12932 129332017-10-05 Jan Hubicka <hubicka@ucw.cz> 12934 12935 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2) 12936 to improve monte carlo in scimark. 12937 129382017-10-05 Jan Hubicka <hubicka@ucw.cz> 12939 12940 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost, 12941 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost, 12942 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost, 12943 pentium4_cost, nocona_cost): Set reassociation width to 1. 12944 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation 12945 width to 2 for fp operations and 1 otherwise. 12946 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6 12947 for int and fp. 12948 (atom_cost): Set reassociation width to 2. 12949 (slm_cost, generic_cost): Set fp reassociation width 12950 to 2 and 1 otherwise. 12951 (intel_cost): Set fp reassociation width to 4 and 1 otherwise. 12952 (core_cost): Set fp reassociation width to 4 and vector to 2. 12953 (ix86_reassociation_width): Rewrite using cost table; special case 12954 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS 12955 and TARGET_AVX128_OPTIMAL. 12956 * config/i386/i386.h (processor_costs): Add 12957 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp. 12958 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL, 12959 TARGET_REASSOC_FP_TO_PARALLEL): Remove. 12960 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove. 12961 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove. 12962 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove. 12963 129642017-10-05 Nathan Sidwell <nathan@acm.org> 12965 12966 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour. 12967 129682017-10-05 Tamar Christina <tamar.christina@arm.com> 12969 12970 * config/arm/arm.c (arm_test_fpu_data): New. 12971 (arm_run_selftests): Call arm_test_fpu_data. 12972 129732017-10-04 Nathan Sidwell <nathan@acm.org> 12974 12975 * toplev.c (toplev::main): Remove excess parens on pretty_printer 12976 decl. 12977 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm. 12978 129792017-10-04 Sudakshina Das <sudi.das@arm.com> 12980 12981 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New 12982 check type for aarch64_simd_valid_immediate. 12983 (aarch64_output_simd_mov_immediate): Update prototype. 12984 (aarch64_simd_valid_immediate): Update prototype. 12985 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add 12986 support for ORR-immediate. 12987 (and<mode>3): modified pattern to add support for BIC-immediate. 12988 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function 12989 now checks for valid immediate for BIC and ORR based on new enum 12990 argument. 12991 (aarch64_output_simd_mov_immediate): Function now used to output 12992 BIC/ORR imm as well based on new enum argument. 12993 * config/aarch64/constraints.md (Do): New vector immediate constraint. 12994 (Db) : Likewise. 12995 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate. 12996 (aarch64_reg_or_bic_imm): Likewise. 12997 129982017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 12999 13000 * config/s390/vx-builtins.md ("vec_mergeh<mode>") 13001 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE. 13002 130032017-10-04 Wilco Dijkstra <wdijkstr@arm.com> 13004 13005 Revert r253399: 13006 13007 PR rtl-optimization/82396 13008 * haifa-sched.c (autopref_multipass_init): Simplify 13009 initialization. 13010 (autopref_rank_data): Simplify sort order. 13011 * sched-int.h (autopref_multipass_data_): Remove 13012 multi_mem_insn_p, min_offset and max_offset. 13013 130142017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13015 13016 * doc/sourcebuild.texi: Document vect_peeling_profitable. 13017 130182017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13019 13020 * doc/sourcebuild.texi: Document vect_intdouble_cvt and 13021 vect_doubleint_cvt. 13022 130232017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13024 13025 * doc/sourcebuild.texi: Document vect_long_mult. 13026 130272017-10-04 Richard Sandiford <richard.sandiford@linaro.org> 13028 13029 PR tree-optimization/82413 13030 * fold-const.c (build_range_check): Use widest_int when comparing 13031 the maximum ETYPE value with HIGH. 13032 130332017-10-04 Wilco Dijkstra <wdijkstr@arm.com> 13034 13035 PR rtl-optimization/82396 13036 * haifa-sched.c (autopref_multipass_init): Simplify 13037 initialization. 13038 (autopref_rank_data): Simplify sort order. 13039 * sched-int.h (autopref_multipass_data_): Remove 13040 multi_mem_insn_p, min_offset and max_offset. 13041 130422017-10-04 Jakub Jelinek <jakub@redhat.com> 13043 13044 PR tree-optimization/82381 13045 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different 13046 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other 13047 is not. 13048 13049 PR tree-optimization/82374 13050 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES, 13051 DECL_FUNCTION_SPECIFIC_OPTIMIZATION, 13052 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from 13053 current_function_decl to the new decl. 13054 130552017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> 13056 13057 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new 13058 helper macro for IEEE float128 hardware built-in functions. 13059 (SQRTF128_ODD): Add built-in functions with the round-to-odd 13060 semantics. 13061 (TRUNCF128_ODD): Likewise. 13062 (ADDF128_ODD): Likewise. 13063 (SUBF128_ODD): Likewise. 13064 (MULF128_ODD): Likewise. 13065 (DIVF128_ODD): Likewise. 13066 (FMAF128_ODD): Likewise. 13067 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to 13068 UNSPEC_TRUNC_ROUND_TO_ODD. 13069 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise. 13070 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit 13071 floating point round to odd instructions. 13072 (UNSPEC_SUB_ROUND_TO_ODD): Likewise. 13073 (UNSPEC_MUL_ROUND_TO_ODD): Likewise. 13074 (UNSPEC_DIV_ROUND_TO_ODD): Likewise. 13075 (UNSPEC_FMA_ROUND_TO_ODD): Likewise. 13076 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise. 13077 (trunc<mode>sf2_hw): Change the truncate with round to odd 13078 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. 13079 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round 13080 to odd hardware instructions. 13081 (sub<mode>3_odd): Likewise. 13082 (mul<mode>3_odd): Likewise. 13083 (div<mode>3_odd): Likewise. 13084 (sqrt<mode>2_odd): Likewise. 13085 (fma<mode>4_odd): Likewise. 13086 (fms<mode>4_odd): Likewise. 13087 (nfma<mode>4_odd): Likewise. 13088 (nfms<mode>4_odd): Likewise. 13089 (trunc<mode>df2_odd): Change the truncate with round to odd 13090 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator 13091 function. 13092 * doc/extend.texi (PowerPC built-in functions): Update documentation 13093 for existing IEEE float128-bit built-in functions. Add built-in 13094 functions that generate the IEEE 128-bit floating point round to 13095 odd instructions. 13096 130972017-10-03 Segher Boessenkool <segher@kernel.crashing.org> 13098 13099 PR rtl-optimization/77729 13100 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2 13101 to (X&(C1&~C2))|C2 transformations. 13102 131032017-10-03 Martin Jambor <mjambor@suse.cz> 13104 13105 PR tree-optimization/82363 13106 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable 13107 mismatch, mark lacc written regardless of racc. 13108 131092017-10-03 Jakub Jelinek <jakub@redhat.com> 13110 13111 PR tree-optimization/82381 13112 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check 13113 stmt_to_insert nor wheather SSA_NAMEs are default defs. 13114 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal, 13115 fallthrough into reassoc_stmt_dominates_stmt_p. 13116 13117 PR target/82386 13118 * combine.c (combine_instructions): Don't combine in unreachable 13119 basic blocks. 13120 131212017-10-02 Peter Bergner <bergner@vnet.ibm.com> 13122 13123 PR target/80210 13124 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite 13125 function to not use the have_cpu variable. Do not set cpu_index, 13126 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT 13127 or the default cpu. 13128 (rs6000_valid_attribute_p): Remove duplicate initializations of 13129 old_optimize and func_optimize. 13130 (rs6000_pragma_target_parse): Call rs6000_activate_target_options (). 13131 (rs6000_activate_target_options): Make global. 13132 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add 13133 prototype. 13134 131352017-10-02 Jakub Jelinek <jakub@redhat.com> 13136 13137 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 13138 if *poffset + *pmax_size overflows in HOST_WIDE_INT. 13139 Set *poffset to 0 and *psize and *pmax_size to -1 if 13140 *poffset + *psize overflows in HOST_WIDE_INT. 13141 13142 PR tree-optimization/82387 13143 PR tree-optimization/82388 13144 PR tree-optimization/82389 13145 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled 13146 instead of live_bytes non-NULL. 13147 131482017-10-02 Georg-Johann Lay <avr@gjlay.de> 13149 13150 PR target/41076 13151 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0" 13152 alternative. 13153 131542017-10-02 Richard Biener <rguenther@suse.de> 13155 13156 * graphite-isl-ast-to-gimple.c (set_codegen_error): With 13157 -fchecking and --param graphite-allow-codegen-errors=0 ICE. 13158 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param. 13159 131602017-10-02 Richard Sandiford <richard.sandiford@linaro.org> 13161 13162 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the 13163 requested precision matches the type's. 13164 * calls.c (alloc_max_size): Calculate the new candidate size as 13165 a widest_int and use wi::to_widest when comparing it with the 13166 current candidate size. 13167 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with 13168 zero rather than integer_zero_node. 13169 * match.pd: Check for a no-op conversion before using wi::add 13170 rather than after. Use tree_to_uhwi when summing small shift 13171 counts into an unsigned int. 13172 131732017-10-02 Richard Sandiford <richard.sandiford@linaro.org> 13174 Alan Hayward <alan.hayward@arm.com> 13175 David Sherwood <david.sherwood@arm.com> 13176 13177 PR target/71307 13178 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class. 13179 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. 13180 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle 13181 POINTER_AND_FP_REGS. 13182 131832017-10-02 Richard Biener <rguenther@suse.de> 13184 13185 PR tree-optimization/82355 13186 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build 13187 a mapping for the enclosing loop but avoid generating one for 13188 the loop tree root. 13189 (copy_bb_and_scalar_dependences): Remove premature codegen 13190 error on PHIs in blocks duplicated into multiple places. 13191 * graphite-scop-detection.c 13192 (scop_detection::stmt_has_simple_data_refs_p): For a loop not 13193 in the region use it as loop and nest to analyze the DR in. 13194 (try_generate_gimple_bb): Likewise. 13195 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. 13196 (add_loop_constraints): For blocks in a loop not in the region 13197 create a dimension with a single iteration. 13198 * sese.h (gbb_loop_at_index): Remove assert. 13199 132002017-10-01 Kevin Buettner <kevinb@redhat.com> 13201 13202 * omp-expand.c (adjust_context_scope): New function. 13203 (expand_parallel_call): Call adjust_context_scope. 13204 132052017-10-01 Jeff Law <law@redhat.com> 13206 13207 * tree-ssa-dom.c (optimize_stmt): Make this a method within the 13208 dom_opt_dom_walker class with direct access to private members. 13209 Add comments. Call test_for_singularity. 13210 (dom_opt_dom_walker::before_dom_children): Corresponding changes. 13211 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize 13212 m_dummy_cond anymore. 13213 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the 13214 class ctor. 13215 (pass_dominator:execute): Build the dummy_cond here and pass it 13216 to the dom_opt_dom_walker ctor. 13217 (test_for_singularity): New function. 13218 132192017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com> 13220 Maya Rashish <coypu@sdf.org> 13221 13222 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing 13223 netbsd.h, netbsd-stdint.h, and netbsd-elf.h. 13224 (alpha*-*-netbsd*) Use nbsd_tm_file. 13225 (arm*-*-netbsdelf*) Likewise. 13226 (i[34567]86-*-netbsdelf*) Likewise. 13227 (x86_64-*-netbsd*) Likewise. 13228 (mips*-*-netbsd*) Likewise. 13229 (powerpc-*-netbsd*) Likewise. 13230 (sh*-*-netbsd*) Likewise. 13231 (sparc-*-netbsdelf*) Likewise. 13232 (sparc64-*-netbsd*) Likewise. 13233 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16 13234 to tm_defines. 13235 (vax-*-netbsdelf*) Likewise. 13236 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8. 13237 (UINT_FAST8_TYPE) Likewise. 13238 (INT_FAST16_TYPE) Check CHAR_FAST16. 13239 (UINT_FAST16_TYPE) Likewise. 13240 132412017-09-30 Jakub Jelinek <jakub@redhat.com> 13242 13243 PR target/82361 13244 * config/i386/i386.md 13245 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split. 13246 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1, 13247 *divmodsi4_zext_2): New define_insn_and_split. 13248 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn. 13249 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split. 13250 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1, 13251 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2): 13252 New define_insn_and_split. 13253 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn. 13254 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or 13255 operands[1] having DImode when mode is SImode. 13256 13257 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of 13258 always SImode for DIV and MOD in REG_EQUAL notes. 13259 132602017-09-29 Yury Gribov <tetra2005@gmail.com> 13261 13262 PR middle-end/82319 13263 * match.pd: Fix handling of NaNs in pattern. 13264 132652017-09-29 Jeff Law <law@redhat.com> 13266 13267 * sbitmap.c (bitmap_bit_in_range_p): New function. 13268 * sbitmap.h (bitmap_bit_in_range_p): Prototype. 13269 * tree-ssa-dse.c (live_bytes_read): New function. 13270 (dse_classify_store): Ignore reads of dead bytes. 13271 13272 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix 13273 typos and whitespace errors. 13274 * config/i386/predicates.md (address_no_seg_operand): Likewise. 13275 * config/s390/s390.c (s390_emit_prologue): Likewise. 13276 132772017-09-29 Vladimir Makarov <vmakarov@redhat.com> 13278 13279 PR target/81481 13280 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv 13281 with a symbol for LRA. 13282 132832017-09-29 Vladimir Makarov <vmakarov@redhat.com> 13284 13285 PR rtl-optimization/82338 13286 * lra-constraints.c (inherit_in_ebb): Check usage_insns check. 13287 132882017-09-29 Alexander Monakov <amonakov@ispras.ru> 13289 13290 * genmodes.c (calc_wider_mode): Suppress qsort macro. 13291 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk. 13292 (qsort_chk): Declare. 13293 * vec.c [CHECKING_P] (qsort_chk_error): New static function. 13294 (qsort_chk): New function. 13295 132962017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13297 13298 PR tree-optimization/82337 13299 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a 13300 phi definition if the PHI result appears in an abnormal PHI. 13301 (find_basis_for_base_expr): Don't record a basis if the LHS of the 13302 basis appears in an abnormal PHI. 13303 133042017-09-29 Richard Biener <rguenther@suse.de> 13305 13306 * graphite-isl-ast-to-gimple.c 13307 (translate_isl_ast_to_gimple::set_codegen_error): New function. 13308 (binary_op_to_tree): Use it. 13309 (get_rename_from_scev): Likewise. 13310 (copy_loop_phi_nodes): Likewise. 13311 (copy_bb_and_scalar_dependences): Likewise. 13312 (translate_pending_phi_nodes): Likewise. 13313 133142017-09-29 Jakub Jelinek <jakub@redhat.com> 13315 13316 PR target/82339 13317 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole 13318 for movabsq $(i32 << shift), r64. 13319 133202017-09-28 Uros Bizjak <ubizjak@gmail.com> 13321 13322 * config/i386/i386.c (ix86_print_operand_address_as): Do not check 13323 index when encoding %esp as %rsp to avoid 0x67 prefix. 13324 133252017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com> 13326 13327 * config/i386/i386.md (*movsf_internal, *movdf_internal): 13328 Return 256-bit AVX modes for TARGET_PREFER_AVX256. 13329 133302017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com> 13331 13332 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security 13333 Extensions with more than 16 double VFP registers. 13334 (cmse_nonsecure_entry_clear_before_return): Remove second entry of 13335 to_clear_mask and all code related to it. Replace the remaining 13336 entry by a sbitmap and adapt code accordingly. 13337 133382017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com> 13339 13340 * brig-builtins.def: Change pure attributes to const. 13341 133422017-09-28 Joseph Myers <joseph@codesourcery.com> 13343 13344 * config.gcc (default_gnu_indirect_function): Default to yes for 13345 sparc*-*-linux* with glibc. 13346 133472017-09-28 Joseph Myers <joseph@codesourcery.com> 13348 13349 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor) 13350 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section 13351 when creating .init_array and .fini_array sections with priority 13352 specified. 13353 133542017-09-27 Christophe Lyon <christophe.lyon@linaro.org> 13355 13356 PR target/71727 13357 * config/aarch64/aarch64.c 13358 (aarch64_builtin_support_vector_misalignment): Always return false 13359 when misalignment is unknown. 13360 133612017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> 13362 13363 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise 13364 this function to return false if the definition used by the swap 13365 instruction is artificial, or if the memory address from which the 13366 constant value is loaded is not represented by a base address held 13367 in a register or if the base address register is a frame or stack 13368 pointer. Additionally, return false if the base address of the 13369 loaded constant is a SYMBOL_REF but is not considered to be a 13370 constant. 13371 (replace_swapped_load_constant): New function. 13372 (rs6000_analyze_swaps): Add a new pass to replace a swap of a 13373 loaded constant vector with a load of a swapped constant vector. 13374 133752017-09-27 Carl Love <cel@us.ibm.com> 13376 13377 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. 13378 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. 13379 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the 13380 fctiw instruction. 13381 133822017-09-27 Alexander Monakov <amonakov@ispras.ru> 13383 13384 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns 13385 first, always call autopref_rank_data otherwise. 13386 133872017-09-27 Richard Biener <rguenther@suse.de> 13388 13389 * graphite-scop-detection.c (find_scop_parameters): Move 13390 loop bound handling ... 13391 (gather_bbs::before_dom_children): ... here, avoiding the need 13392 to build scop_info->loop_nest. 13393 (record_loop_in_sese): Remove. 13394 * sese.h (sese_info_t::loop_nest): Remove. 13395 * sese.c (new_sese_info): Do not allocate loop_nest. 13396 (free_sese_info): Do not free loop_nest. 13397 133982017-09-27 Jakub Jelinek <jakub@redhat.com> 13399 13400 PR c++/82159 13401 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized 13402 lhs from calls if the lhs has addressable type. 13403 134042017-09-27 Richard Biener <rguenther@suse.de> 13405 13406 * graphite.h (scop::max_alias_set): New member. 13407 * graphite-scop-detection.c: Remove references to non-existing 13408 --param in comments. 13409 (build_alias_sets): Record the maximum alias set used for drs. 13410 (build_scops): Support zero as unlimited for 13411 --param graphite-max-arrays-per-scop. 13412 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove 13413 and inline into ... 13414 (build_poly_sr_1): ... here. Compute alias set based on the 13415 maximum alias set used for drs rather than 13416 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP 13417 134182017-09-27 Richard Biener <rguenther@suse.de> 13419 13420 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow 13421 --param loop-block-tile-size=0 to disable tiling. 13422 134232017-09-27 Richard Biener <rguenther@suse.de> 13424 13425 * doc/invoke.texi (graphite-max-bbs-per-function): Remove. 13426 (graphite-max-nb-scop-params): Document special value zero. 13427 * domwalk.h (dom_walker::STOP): New symbolical constant. 13428 (dom_walker::dom_walker): Add optional parameter for bb to 13429 RPO mapping. 13430 (dom_walker::~dom_walker): Declare. 13431 (dom_walker::before_dom_children): Document STOP return value. 13432 (dom_walker::m_user_bb_to_rpo): New member. 13433 (dom_walker::m_bb_to_rpo): Likewise. 13434 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO 13435 mapping here if not provided by the user. 13436 (dom_walker::~dom_walker): Free bb to RPO mapping if not 13437 provided by the user. 13438 (dom_walker::STOP): Define. 13439 (dom_walker::walk): Do not compute bb to RPO mapping here. 13440 Support STOP return value from before_dom_children to stop 13441 walking. 13442 * graphite-optimize-isl.c (optimize_isl): If the schedule 13443 is the same still generate code if -fgraphite-identity 13444 or -floop-parallelize-all are given. 13445 * graphite-scop-detection.c: Include cfganal.h. 13446 (gather_bbs::gather_bbs): Get and pass through bb to RPO 13447 mapping. 13448 (gather_bbs::before_dom_children): Return STOP for BBs 13449 not in the region. 13450 (build_scops): Compute bb to RPO mapping and pass it to 13451 the domwalk. Treat --param graphite-max-nb-scop-params=0 13452 as not limiting the number of params. 13453 * graphite.c (graphite_initialize): Remove limit on the 13454 number of basic-blocks in a function. 13455 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove. 13456 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented 13457 default value of 10. 13458 134592017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> 13460 13461 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): 13462 Adjust code to eliminate needing to do the shift right 32-bits 13463 operation after XSCVDPSPN. 13464 134652017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 13466 13467 * match.pd ((X / Y) == 0 -> X < Y): New pattern. 13468 ((X / Y) != 0 -> X >= Y): Likewise. 13469 134702017-09-26 Carl Love <cel@us.ibm.com> 13471 13472 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, 13473 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins 13474 vector unsigned char vec_xl_len_r (unsigned char *, size_t); 13475 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t); 13476 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines. 13477 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add 13478 definitions and overloading. 13479 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case 13480 statement for P9V_BUILTIN_XST_LEN_R. 13481 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL. 13482 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add 13483 define_expand and define_insn for the instructions and builtins. 13484 * doc/extend.texi: Update the built-in documentation file for the new 13485 built-in functions. 13486 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add 13487 define_insn for the instructions 13488 134892017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com> 13490 13491 PR target/39570 13492 * gcc/config/netbsd-protos.h: New file. 13493 * gcc/config/netbsd.c: New file. 13494 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define. 13495 * gcc/config/t-netbsd: New file. 13496 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h. 13497 (tmake_file) Add t-netbsd. 13498 (extra_objs) Add netbsd.o. 13499 135002017-09-26 Janus Weil <janus@gcc.gnu.org> 13501 13502 PR fortran/82143 13503 PR fortran/82324 13504 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16. 13505 135062017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> 13507 13508 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do 13509 sign extension from a vector register to a GPR by doing a 32-bit 13510 direct move and then an EXTSW. 13511 (extendsi<mode>2 splitter): Likewise. 13512 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift 13513 right or vector extract after doing XSCVDPSPN. Use 13514 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to 13515 the GPRs. 13516 (movdi_from_sf_zero_ext): Likewise. 13517 (reload_gpr_from_vsxsf): Likewise. 13518 (p8_mfvsrd_4_disf): Delete, no longer used. 13519 (movsi_from_df): Optimize converting a DFmode to a SFmode, and 13520 then needing to move the SFmode to a GPR to use the XSCVDPSP 13521 instruction instead of FRSP and XSCVDPSPN. 13522 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that 13523 it is adjacent to the other XSCVSPDP insns. 13524 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow 13525 SFmode to be in traditional Altivec registers. 13526 (vsx_xscvdpspn): Eliminate useless alternative constraint. 13527 (vsx_xscvspdpn): Likewise. 13528 (vsx_xscvspdpn_scalar): Likewise. 13529 135302017-09-26 Martin Jambor <mjambor@suse.cz> 13531 13532 * tree-sra.c (compare_access_positions): Put integral types first, 13533 stabilize sorting of integral types, remove conditions putting 13534 non-full-precision integers last. 13535 (sort_and_splice_var_accesses): Disable scalarization if a 13536 non-integert would be represented by a non-full-precision integer. 13537 135382017-09-26 Joseph Myers <joseph@codesourcery.com> 13539 13540 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise. 13541 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise. 13542 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise. 13543 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end. 13544 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL] 13545 conditionals inside the function instead of around it. Call 13546 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK. 13547 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end. 13548 135492017-09-26 Richard Biener <rguenther@suse.de> 13550 13551 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, 13552 fold in ... 13553 (scop_detection::build_scop_breadth): ... this. Removed. 13554 (scop_detection::loop_is_valid_in_scop): Fold into single caller. 13555 (scop_detection::harmful_stmt_in_bb): Likewise. 13556 (scop_detection::graphite_can_represent_stmt): Likewise. 13557 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion. 13558 (scop_detection::can_represent_loop): Remove recursion, fold in ... 13559 (scop_detection::can_represent_loop_1): ... this. Removed. 13560 (scop_detection::harmful_loop_in_region): Simplify after inlining 13561 the above and remove more quadraticness. 13562 (build_scops): Adjust. 13563 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless 13564 quadraticness. 13565 135662017-09-26 Jakub Jelinek <jakub@redhat.com> 13567 13568 PR target/82267 13569 * config/i386/i386.c (ix86_print_operand_address_as): Only test 13570 REGNO (base) == SP_REG if base is a REG. 13571 13572 PR middle-end/35691 13573 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time 13574 if it is different SSA_NAME. 13575 (optimize_range_tests_cmp_bitwise): New function. 13576 (optimize_range_tests): Call it. 13577 135782017-09-26 Richard Biener <rguenther@suse.de> 13579 13580 PR tree-optimization/82321 13581 * graphite.c (canonicalize_loop_closed_ssa): Properly check 13582 for the def being inside the loop. 13583 135842017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13585 13586 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in 13587 assembler output. 13588 * config/s390/s390-builtins.def: Fix constraint on op4. 13589 135902017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13591 13592 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode 13593 independent expanders. 13594 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt") 13595 ("vec_ordered", "vec_unordered"): New expanders. 13596 135972017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13598 13599 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode 13600 for SFmode. 13601 136022017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13603 13604 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to 13605 vec_unpacks_lo_v16qi. 13606 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi. 13607 136082017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13609 13610 * config/s390/vector.md ("vec_unpacks_lo_v4sf") 13611 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df") 13612 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders. 13613 136142017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13615 13616 * config/s390/predicates.md ("const_shift_by_byte_operand"): New 13617 predicate. 13618 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128 13619 and V16QI. 13620 ("*vec_slb<mode>"): New insn pattern. 13621 ("vec_shr_<mode>"): New expander. 13622 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander 13623 and force the shift count operand to V16QImode. 13624 ("vec_srb<mode>"): Set shift count mode to V16QI. 13625 136262017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13627 13628 * config/s390/vector.md ("vec_widen_umult_lo_<mode>") 13629 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>") 13630 ("vec_widen_smult_hi_<mode>"): New expander definitions. 13631 136322017-09-26 Richard Earnshaw <rearnsha@arm.com> 13633 13634 PR target/82175 13635 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas. 13636 136372017-09-26 Richard Biener <rguenther@suse.de> 13638 13639 PR tree-optimization/82320 13640 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef 13641 isn't a change. 13642 136432017-09-25 Jeff Law <law@redhat.com> 13644 13645 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update 13646 prototype for new argument. 13647 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function, 13648 mostly extracted from rs6000_emit_allocate_stack. 13649 (rs6000_emit_probe_stack_range_stack_clash): New function. 13650 (rs6000_emit_allocate_stack): Call 13651 rs6000_emit_probe_stack_range_stack_clash as needed. 13652 (rs6000_emit_probe_stack_range): Add additional argument 13653 to call to gen_probe_stack_range{si,di}. 13654 (output_probe_stack_range): New. 13655 (output_probe_stack_range_1): Renamed from output_probe_stack_range. 13656 (output_probe_stack_range_stack_clash): New. 13657 (rs6000_emit_prologue): Emit notes into dump file as requested. 13658 * rs6000.md (allocate_stack): Handle -fstack-clash-protection. 13659 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered. 13660 Add additional operand and pass it to output_probe_stack_range. 13661 136622017-09-25 Bin Cheng <bin.cheng@arm.com> 13663 13664 PR tree-optimization/82163 13665 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter. 13666 (checking_verify_loop_closed_ssa): New parameter. 13667 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete. 13668 (check_loop_closed_ssa_stmt): Delete. 13669 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions. 13670 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP. 13671 (tree_transform_and_unroll_loop): Check loop closed ssa form only for 13672 changed loops. 13673 136742017-09-25 Pekka Jaaskelainen <pekka@parmance.com> 13675 13676 * brig-builtins.def: Treat HSAIL barrier builtins as 13677 setjmp/longjump style functions. 13678 136792017-09-25 Richard Sandiford <richard.sandiford@linaro.org> 13680 13681 * target.def (constant_alignment): New hook. 13682 * defaults.h (CONSTANT_ALIGNMENT): Delete. 13683 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with... 13684 (TARGET_CONSTANT_ALIGNMENT): ...this new hook. 13685 * doc/tm.texi: Regenerate. 13686 * targhooks.h (default_constant_alignment): Declare. 13687 (constant_alignment_word_strings): Likewise. 13688 * targhooks.c (default_constant_alignment): New function. 13689 (constant_alignment_word_strings): Likewise. 13690 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment 13691 instead of CONSTANT_ALIGNMENT. 13692 * varasm.c (align_variable, get_variable_align, build_constant_desc) 13693 (force_const_mem): Likewise. 13694 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete. 13695 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function. 13696 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT. 13697 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13698 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out 13699 definition. 13700 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete. 13701 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13702 constant_alignment_word_strings. 13703 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete. 13704 (CONSTANT_ALIGNMENT): Likewise. 13705 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13706 (arm_constant_alignment): New function. 13707 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete. 13708 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13709 constant_alignment_word_strings. 13710 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete. 13711 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13712 constant_alignment_word_strings. 13713 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete. 13714 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13715 (cris_constant_alignment): New function. 13716 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete. 13717 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13718 (epiphany_constant_alignment): New function. 13719 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete. 13720 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13721 constant_alignment_word_strings. 13722 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete. 13723 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13724 constant_alignment_word_strings. 13725 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete. 13726 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13727 constant_alignment_word_strings. 13728 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete. 13729 * config/i386/i386-protos.h (ix86_constant_alignment): Delete. 13730 * config/i386/i386.c (ix86_constant_alignment): Make static. 13731 Use the same interface as the target hook. 13732 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13733 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete. 13734 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13735 constant_alignment_word_strings. 13736 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete. 13737 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function. 13738 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13739 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete. 13740 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13741 constant_alignment_word_strings. 13742 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete. 13743 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13744 constant_alignment_word_strings. 13745 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete. 13746 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13747 constant_alignment_word_strings. 13748 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete. 13749 * config/microblaze/microblaze.c (microblaze_constant_alignment): 13750 New function. 13751 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13752 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete. 13753 * config/mips/mips.c (mips_constant_alignment): New function. 13754 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13755 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete. 13756 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete. 13757 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13758 (mmix_constant_alignment): Make static. Use the same interface 13759 as the target hook. 13760 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete. 13761 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13762 constant_alignment_word_strings. 13763 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete. 13764 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13765 constant_alignment_word_strings. 13766 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete. 13767 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13768 constant_alignment_word_strings. 13769 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete. 13770 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13771 (rs6000_constant_alignment): New function. 13772 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete. 13773 * config/riscv/riscv.c (riscv_constant_alignment): New function. 13774 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13775 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete. 13776 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13777 (rs6000_constant_alignment): New function. 13778 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete. 13779 * config/s390/s390.c (s390_constant_alignment): New function. 13780 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13781 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete. 13782 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13783 constant_alignment_word_strings. 13784 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete. 13785 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13786 (sparc_constant_alignment): New function. 13787 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete. 13788 * config/spu/spu.c (spu_constant_alignment): New function. 13789 (TARGET_CONSTANT_ALIGNMENT): Redefine. 13790 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete. 13791 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13792 constant_alignment_word_strings. 13793 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete. 13794 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13795 constant_alignment_word_strings. 13796 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete. 13797 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to 13798 constant_alignment_word_strings. 13799 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete. 13800 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13801 (visium_constant_alignment): New function. 13802 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete. 13803 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine. 13804 (xtensa_constant_alignment): New function. 13805 * system.h (CONSTANT_ALIGNMENT): Poison. 13806 138072017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com> 13808 13809 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling 13810 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*). 13811 (rs6000_builtin_valid_without_lhs): New helper function. 13812 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 13813 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST. 13814 138152017-09-25 Richard Sandiford <richard.sandiford@linaro.org> 13816 13817 * target.h (vec_perm_indices): Use unsigned short rather than 13818 unsigned char. 13819 (auto_vec_perm_indices): Likewise. 13820 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok): 13821 Use unsigned int rather than unsigned char. 13822 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise. 13823 138242017-09-25 Richard Biener <rguenther@suse.de> 13825 13826 * cfgloop.h (sort_sibling_loops): Declare. 13827 * cfgloop.c (sort_sibling_loops_cmp): New helper. 13828 (sort_sibling_loops): New function sorting the sibling loop list 13829 in RPO order. 13830 * graphite.c (graphite_transform_loops): Sort sibling loops. 13831 138322017-09-25 Richard Sandiford <richard.sandifird@linaro.org> 13833 13834 * target.def (vec_perm_const_ok): Change sel parameter to 13835 vec_perm_indices. 13836 * optabs-query.c (can_vec_perm_p): Update accordingly. 13837 * doc/tm.texi: Regenerate. 13838 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to 13839 auto_vec_perm_indices and remove separate nelt field. 13840 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) 13841 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup) 13842 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1) 13843 (aarch64_expand_vec_perm_const): Update accordingly. 13844 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel 13845 to vec_perm_indices. 13846 * config/arm/arm.c (expand_vec_perm_d): Change perm to 13847 auto_vec_perm_indices and remove separate nelt field. 13848 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev) 13849 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl) 13850 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update 13851 accordingly. 13852 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel 13853 to vec_perm_indices. 13854 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change 13855 sel to vec_perm_indices. 13856 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise. 13857 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise. 13858 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok): 13859 Likewise. 13860 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok): 13861 Likewise. 13862 138632017-09-25 Pierre-Marie de Rodat <derodat@adacore.com> 13864 13865 PR debug/82155 13866 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl 13867 on the FUNCTION_DECL function context if it has a DIE that is a 13868 declaration. 13869 138702017-09-25 Richard Biener <rguenther@suse.de> 13871 13872 PR tree-optimization/82285 13873 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle 13874 enumeral types. 13875 138762017-09-25 Tom de Vries <tom@codesourcery.com> 13877 13878 PR target/80035 13879 PR target/81069 13880 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to 13881 noreturn function. 13882 138832017-09-25 Richard Biener <rguenther@suse.de> 13884 13885 * graphite-optimize-isl.c (optimize_isl): Fail and dump if 13886 ISL errors other than isl_error_quota happen. Dump if the 13887 schedule is the same. 13888 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL 13889 errors instead of aborting inside ISL. 13890 138912017-09-25 Iain Sandoe <iain@codesourcery.com> 13892 13893 PR target/80556 13894 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead 13895 of libgcc_eh for m64. 13896 * config/i386/darwin64.h: Likewise. 13897 138982017-09-25 Richard Biener <rguenther@suse.de> 13899 13900 PR middle-end/82144 13901 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment 13902 attribute for incomplete types nor twice for complete ones. 13903 139042017-09-24 Uros Bizjak <ubizjak@gmail.com> 13905 13906 PR target/82267 13907 * config/i386/i386.c (ix86_print_operand_address_as): Encode 13908 %esp as %rsp to avoid 0x67 prefix if there is no index or base 13909 register. 13910 139112017-09-23 Uros Bizjak <ubizjak@gmail.com> 13912 13913 PR bootstrap/82306 13914 * config/i386/i386.opt (mprefer-avx256): Use 13915 ix86_target_flags variable. 13916 * config/i386/i386.c (ix86_target_string): Move 13917 -mprefer-avx256 to flag2_opts. 13918 139192017-09-22 Jakub Jelinek <jakub@redhat.com> 13920 13921 PR middle-end/35691 13922 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1 13923 and x != -1 | y != -1 into (x & y) != -1. 13924 139252017-09-22 Steve Ellcey <sellcey@cavium.com> 13926 13927 * config.gcc: Add new case statement to set 13928 default_gnu_indirect_function. Remove it from x86_64-*-linux*, 13929 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*, 13930 s390x-*-linux* case statements. Added aarch64 to the list of 13931 supported architectures. 13932 139332017-09-22 Richard Sandiford <richard.sandiford@linaro.org> 13934 13935 PR tree-optimization/82289 13936 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check 13937 STMT_VINFO_RELEVANT_P. 13938 139392017-09-22 Richard Sandiford <richard.sandiford@linaro.org> 13940 Alan Hayward <alan.hayward@arm.com> 13941 David Sherwood <david.sherwood@arm.com> 13942 13943 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert 13944 for VR_RANGE only; don't allow VR_ANTI_RANGE. 13945 (extract_range_from_binary_expr_1): Don't call 13946 extract_range_from_multiplicative_op_1 if !range_int_cst_p. 13947 139482017-09-22 Richard Sandiford <richard.sandiford@linaro.org> 13949 Alan Hayward <alan.hayward@arm.com> 13950 David Sherwood <david.sherwood@arm.com> 13951 13952 * target.def (preferred_vector_alignment): New hook. 13953 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New 13954 hook. 13955 * doc/tm.texi: Regenerate. 13956 * targhooks.h (default_preferred_vector_alignment): Declare. 13957 * targhooks.c (default_preferred_vector_alignment): New function. 13958 * tree-vectorizer.h (dataref_aux): Add a target_alignment field. 13959 Expand commentary. 13960 (DR_TARGET_ALIGNMENT): New macro. 13961 (aligned_access_p): Update commentary. 13962 (vect_known_alignment_in_bytes): New function. 13963 * tree-vect-data-refs.c (vect_calculate_required_alignment): New 13964 function. 13965 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT. 13966 Calculate the misalignment based on the target alignment rather than 13967 the vector size. 13968 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT 13969 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment. 13970 (vect_enhance_data_refs_alignment): Mask the byte misalignment with 13971 the target alignment, rather than masking the element misalignment 13972 with the number of elements in a vector. Also use the target 13973 alignment when calculating the maximum number of peels. 13974 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment 13975 instead of TYPE_ALIGN_UNIT. 13976 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter. 13977 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT. 13978 (vect_create_addr_base_for_vector_ref): Update call accordingly. 13979 (vect_create_data_ref_ptr): Likewise. 13980 (vect_setup_realignment): Realign by ANDing with 13981 -DR_TARGET_MISALIGNMENT. 13982 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate 13983 the number of peels based on DR_TARGET_ALIGNMENT. 13984 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap 13985 with the guaranteed alignment boundary when deciding whether 13986 overrun is OK. 13987 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT 13988 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT. 13989 (ensure_base_align): Remove stmt_info parameter. Get the 13990 target base alignment from DR_TARGET_ALIGNMENT. 13991 (vectorizable_store): Update call accordingly. Interpret 13992 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of 13993 TYPE_ALIGN_UNIT. 13994 (vectorizable_load): Likewise. 13995 139962017-09-22 Richard Sandiford <richard.sandiford@linaro.org> 13997 Alan Hayward <alan.hayward@arm.com> 13998 David Sherwood <david.sherwood@arm.com> 13999 14000 * tree-vectorizer.h (vect_get_scalar_dr_size): New function. 14001 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it. 14002 (vect_enhance_data_refs_alignment): Likewise. 14003 140042017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> 14005 14006 * config/arm/parsecpu.awk (fatal): Note that we've encountered an 14007 error. Only quit immediately if parsing is complete. 14008 (BEGIN): Initialize fatal_err and parse_done. 14009 (begin fpu, end fpu): Check number of arguments. 14010 (begin arch, end arch): Likewise. 14011 (begin cpu, end cpu): Likewise. 14012 (cname, tune for, tune flags, architecture, fpu, option): Likewise. 14013 (optalias): Likewise. 14014 140152017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> 14016 14017 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. 14018 * config/arm/arm-isa.h: Delete. Move definitions to ... 14019 * arm-cpus.in: ... here. Use new feature and fgroup values. 14020 * config/arm/arm.c (arm_option_override): Use lower case for feature 14021 bit names. 14022 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. 14023 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. 14024 * config/arm/parsecpu.awk (END): Add new command 'isa'. 14025 (isa_pfx): Delete. 14026 (print_isa_bits_for): New function. 14027 (gen_isa): New function. 14028 (gen_comm_data): Use print_isa_bits_for. 14029 (define feature): New keyword. 14030 (define fgroup): New keyword. 14031 * config/arm/t-arm (TM_H): Remove. 14032 (GTM_H): Add arm-isa.h. 14033 (arm-isa.h): Add rule to generate file. 14034 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower 14035 case for feature bit names. 14036 140372017-09-22 Richard Biener <rguenther@suse.de> 14038 14039 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into 14040 single caller. 14041 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug 14042 print of no dependency loops ... 14043 * graphite.c (graphite_transform_loops): ... here. 14044 (canonicalize_loop_closed_ssa_form): Work from inner to outer 14045 loops. 14046 (same_close_phi_node, remove_duplicate_close_phi, 14047 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ... 14048 (canonicalize_loop_closed_ssa): ... here and simplify. 14049 * graphite-optimize-isl.c: Include tree-vectorizer.h. 14050 (optimize_isl): Use dump_printf_loc to tell when we stopped 14051 optimizing because of an ISL timeout. 14052 140532017-09-22 Richard Biener <rguenther@suse.de> 14054 14055 PR tree-optimization/82291 14056 * tree-if-conv.c (predicate_mem_writes): Make sure to 14057 remove writes in blocks predicated with false. 14058 140592017-09-22 Richard Biener <rguenther@suse.de> 14060 14061 * sese.c: Include cfganal.h. 14062 (if_region_set_false_region): Remove. 14063 (create_if_region_on_edge): Likewise. 14064 (move_sese_in_condition): Re-implement without destroying 14065 dominators. 14066 140672017-09-22 Richard Biener <rguenther@suse.de> 14068 14069 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): 14070 Verify both BBs contain loop PHI nodes before dispatching to 14071 copy_loop_phi_args. 14072 (graphite_regenerate_ast_isl): Do not recompute dominators, 14073 do not verify three times. Restructure for clarity. 14074 * graphite-scop-detection.c (same_close_phi_node, 14075 remove_duplicate_close_phi, make_close_phi_nodes_unique, 14076 defined_in_loop_p, canonicalize_loop_closed_ssa, 14077 canonicalize_loop_closed_ssa_form): Simplify, remove excess 14078 checking and SSA rewrite, move to ... 14079 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h. 14080 (graphite_initialize): Do not pass in ctx, do not reset the 14081 SCEV cache, compute only dominators. 14082 (graphite_transform_loops): Allocate ISL ctx after 14083 graphite_initialize. Call canonicalize_loop_closed_ssa_form. 14084 Maintain post-dominators only around build_scops. 14085 * sese.c (if_region_set_false_region): Make static. Free 14086 and recompute dominators. 14087 (move_sese_in_condition): Assert we don't get called with 14088 post-dominators computed. 14089 * sese.h (if_region_set_false_region): Remove. 14090 140912017-09-22 Sergey Shalnov <sergey.shalnov@intel.com> 14092 14093 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode> 14094 mode attribute for TARGET_AVX512VL. 14095 140962017-09-21 Sergey Shalnov <sergey.shalnov@intel.com> 14097 14098 * config/i386/i386.opt (mprefer-avx256): New option. 14099 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256 14100 to flag_opts. 14101 (ix86_preferred_simd_mode): Return 256-bit AVX modes 14102 for TARGET_PREFER_AVX256. 14103 * doc/invoke.texi (x86 Options): Document -mprefer-avx256. 14104 141052017-09-21 Jeff Law <law@redhat.com> 14106 14107 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): 14108 Fix dump output if the only stack space is for pushed registers. 14109 141102017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14111 14112 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming 14113 of insn_cost. 14114 141152017-09-21 Martin Sebor <msebor@redhat.com> 14116 14117 PR c/81882 14118 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed 14119 code (in C++) or code that triggers warnings. 14120 141212017-09-21 Eric Botcazou <ebotcazou@adacore.com> 14122 14123 * stor-layout.c (bit_from_pos): Do not distribute the conversion. 14124 141252017-09-21 Segher Boessenkool <segher@kernel.crashing.org> 14126 14127 * haifa-sched.c: Rename insn_cost to insn_sched_cost. 14128 * sched-rgn.c: Ditto. 14129 * sel-sched-ir.c: Ditto. 14130 141312017-09-21 Alexander Monakov <amonakov@ispras.ru> 14132 14133 * toplev.h (set_random_seed): Adjust return type. 14134 * toplev.c (init_local_tick): Move eager initialization of random_seed 14135 to get_random_seed. Adjust comment. 14136 (init_random_seed): Inline to get_random_seed, delete. 14137 (get_random_seed): Initialize random_seed lazily. 14138 (set_random_seed): Do not return previous value. 14139 (print_switch_value): Do not call get_random_seed. 14140 141412017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru> 14142 14143 * cgraph.c (delete_function_version): New, broken out from... 14144 (cgraph_node::delete_function_version): ...here. Rename to 14145 cgraph_node::delete_function_version_by_decl. Update all uses. 14146 (cgraph_node::remove): Call delete_function_version. 14147 141482017-09-21 Jakub Jelinek <jakub@redhat.com> 14149 14150 PR sanitizer/81715 14151 * tree-inline.c (expand_call_inline): Emit clobber stmts for 14152 VAR_DECLs to which addressable non-volatile parameters are mapped 14153 and for id->retvar after the return value assignment. Clear 14154 id->retval and id->retbnd after inlining. 14155 141562017-09-21 Richard Biener <rguenther@suse.de> 14157 14158 PR tree-optimization/82276 14159 PR tree-optimization/82244 14160 * tree-vrp.c (build_assert_expr_for): Set 14161 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on 14162 has it set. 14163 (remove_range_assertions): Revert earlier change. 14164 141652017-09-21 Wilco Dijkstra <wdijkstr@arm.com> 14166 14167 PR target/71951 14168 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. 14169 141702017-09-21 Richard Biener <rguenther@suse.de> 14171 14172 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): 14173 Restore valid IL after code generation errors. 14174 * graphite.c (graphite_transform_loops): Diagnose code 14175 generation issues as MSG_MISSED_OPTIMIZATION and continue 14176 with processing SCOPs. 14177 141782017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14179 Alan Hayward <alan.hayward@arm.com> 14180 David Sherwood <david.sherwood@arm.com> 14181 14182 * calls.c (compute_argument_addresses): Use simplify_gen_binary 14183 rather than choosing between plus_constant and gen_rtx_<CODE>. 14184 * expr.c (emit_push_insn): Likewise. 14185 (expand_expr_real_2): Likewise. 14186 141872017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14188 Alan Hayward <alan.hayward@arm.com> 14189 David Sherwood <david.sherwood@arm.com> 14190 14191 * loop-unroll.c (split_iv): Call copy_rtx on the step. 14192 141932017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14194 Alan Hayward <alan.hayward@arm.com> 14195 David Sherwood <david.sherwood@arm.com> 14196 14197 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before 14198 calling tree_to_uhwi. 14199 142002017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14201 Alan Hayward <alan.hayward@arm.com> 14202 David Sherwood <david.sherwood@arm.com> 14203 14204 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for 14205 INTEGER_CST rather than a negative test for ADDR_EXPR. 14206 142072017-09-21 Richard Sandiford <richard.sandiford@linaro.org> 14208 Alan Hayward <alan.hayward@arm.com> 14209 David Sherwood <david.sherwood@arm.com> 14210 14211 * tree-vrp.c (extract_range_from_binary_expr_1): Check 14212 int_cst_rangeN before calling value_range_constant_singleton (&vrN). 14213 142142017-09-21 Richard Biener <rguenther@suse.de> 14215 14216 PR tree-optimization/71351 14217 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple:: 14218 graphite_create_new_loop_guard): Remove, fold remaining parts 14219 into caller ... 14220 (translate_isl_ast_node_for): ... here and simplify. 14221 142222017-09-21 Jakub Jelinek <jakub@redhat.com> 14223 14224 PR target/82260 14225 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative 14226 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the 14227 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n) 14228 alternative always use QI mode, for -Os imov (=R,R) alternative 14229 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives 14230 ignore -Os. 14231 142322017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 14233 Jeff Law <law@redhat.com> 14234 14235 * config/s390/s390.c (MIN_UNROLL_PROBES): Define. 14236 (allocate_stack_space): New function, partially extracted from 14237 s390_emit_prologue. 14238 (s390_emit_prologue): Track offset to most recent stack probe. 14239 Code to allocate space moved into allocate_stack_space. 14240 Dump actions when no stack is allocated. 14241 (s390_prologue_plus_offset): New function. 14242 (s390_emit_stack_probe): Likewise. 14243 142442017-09-20 Alexandre Oliva <aoliva@redhat.com> 14245 14246 * common.opt (Wa, Wl, Wp, g, gz=): Add 14247 RejectNegative. 14248 (gno-column-info): Remove. 14249 (gcolumn-info): Drop RejectNegative. 14250 (gno-): New prefix. 14251 (gno-record-gcc-switches): Remove. 14252 (grecord-gcc-switches): Drop RejectNegative. 14253 (gno-split-dwarf): Remove. 14254 (gsplit-dwarf): Drop RejectNegative. 14255 (gno-strict-dwarf): Remove. 14256 (gstrict-dwarf): Drop RejectNegative. 14257 * config/darwin.opt (gfull, gused): Add RejectNegative. 14258 * dwarf2out.c (gen_producer_string): Drop 14259 gno-record-gcc-switches handler. 14260 * optc-gen.awk: Add g to prefixes with negative forms. 14261 * opts-common.c (remapping_prefix_p): New. 14262 (find_opt): Check it. 14263 (generate_canonical_option): Test g prefix. 14264 (option_map): Add -gno- mapping. 14265 (add_misspelling_candidates): Check remapping_prefix_p. 14266 142672017-09-20 Jeff Law <law@redhat.com> 14268 14269 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix 14270 thinko in stack clash protection support. 14271 14272 * explow.c (compute_stack_clash_protection_loop_data): Use 14273 CONST_INT_P instead of explicit test. Verify object is a 14274 CONST_INT_P before looking at INTVAL. 14275 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P 14276 instead of explicit test. 14277 142782017-09-20 Segher Boessenkool <segher@kernel.crashing.org> 14279 14280 PR target/77687 14281 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch 14282 address instead of to r1 and r11. 14283 142842017-09-20 Sebastian Peryt <sebastian.peryt@intel.com> 14285 14286 * config.gcc: Support "knm". 14287 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm". 14288 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 14289 PROCESSOR_KNM. 14290 * config/i386/i386.c (m_KNM): Define. 14291 (processor_target_table): Add "knm". 14292 (PTA_KNM): Define. 14293 (ix86_option_override_internal): Add "knm". 14294 (ix86_issue_rate): Add PROCESSOR_KNM. 14295 (ix86_adjust_cost): Ditto. 14296 (ia32_multipass_dfa_lookahead): Ditto. 14297 (get_builtin_code_for_version): Handle PROCESSOR_KNM. 14298 (fold_builtin_cpu): Add M_INTEL_KNM. 14299 * config/i386/i386.h (processor_costs): Define TARGET_KNM. 14300 (processor_type): Add PROCESSOR_KNM. 14301 * config/i386/x86-tune.def: Add m_KNM. 14302 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type. 14303 143042017-09-20 Richard Biener <rguenther@suse.de> 14305 14306 PR tree-optimization/80213 14307 * graphite-scop-detection.c (trivially_empty_bb_p): Labels 14308 are allowed in empty BBs as well. 14309 (canonicalize_loop_closed_ssa): Also look for other complex 14310 edges. 14311 (scop_detection::get_sese): Include the loop-closed PHI block 14312 in loop SESEs. 14313 (scop_detection::merge_sese): Remove code adding extra blocks. 14314 (scop_detection::region_has_one_loop): Adjust for get_sese changes. 14315 (build_scops): Assert the final returned scop is invalid. 14316 143172017-09-20 Richard Biener <rguenther@suse.de> 14318 14319 PR tree-optimization/82264 14320 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check 14321 for GIMPLE_CONDs. 14322 (vn_phi_lookup): Likewise. 14323 (vn_phi_insert): Likewise. 14324 143252017-09-20 Jakub Jelinek <jakub@redhat.com> 14326 14327 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST 14328 that fits into uhwi or shwi, add DW_AT_const_value regardless 14329 of early_dwarf without going through RTL, using add_AT_unsigned 14330 or add_AT_int. 14331 14332 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines. 14333 (DEBUG_LTO_ABBREV_SECTION): Likewise. 14334 (DEBUG_LTO_MACINFO_SECTION): Likewise. 14335 (DEBUG_MACRO_SECTION): Likewise. 14336 (DEBUG_LTO_MACRO_SECTION): Likewise. 14337 (DEBUG_STR_DWO_SECTION): Likewise. 14338 (DEBUG_LTO_STR_DWO_SECTION): Likewise. 14339 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name. 14340 (DEBUG_LTO_DWO_LINE_SECTION): Define. 14341 (DEBUG_LTO_LINE_STR_SECTION): Define. 14342 (init_sections_and_labels): Initialize debug_line_str_section 14343 variable. Initialize debug_loc_section for -gdwarf-5 to 14344 DEBUG_LOCLISTS_SECTION. Formatting fixes. 14345 143462017-09-20 Richard Biener <rguenther@suse.de> 14347 14348 * graphite-sese-to-poly.c (extract_affine): Properly handle 14349 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed. 14350 143512017-09-20 Richard Biener <rguenther@suse.de> 14352 14353 PR tree-optimization/81373 14354 * graphite-scop-detection.c (build_cross_bb_scalars_def): 14355 Force SESE live-out defs to be handled even if they are 14356 scev_analyzable_p. 14357 143582017-09-19 Jeff Law <law@redhat.com> 14359 14360 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do 14361 nothing for stack adjustments with REG_STACK_CHECK. 14362 * sched-deps.c (parse_add_or_inc): Reject insns with 14363 REG_STACK_CHECK from dependency breaking. 14364 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn. 14365 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs. 14366 * reg-notes.def (STACK_CHECK): New note. 14367 14368 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New. 14369 (ix86_expand_prologue): Dump stack clash info as needed. 14370 Call ix86_adjust_stack_and_probe_stack_clash as needed. 14371 14372 * function.c (dump_stack_clash_frame_info): New function. 14373 * function.h (dump_stack_clash_frame_info): Prototype. 14374 (enum stack_clash_probes): New enum. 14375 14376 * config/alpha/alpha.c (alpha_expand_prologue): Also check 14377 flag_stack_clash_protection. 14378 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise. 14379 (arm_expand_prologue, thumb1_expand_prologue): Likewise. 14380 (arm_frame_pointer_required): Likewise. 14381 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. 14382 (ia64_expand_prologue): Likewise. 14383 * config/mips/mips.c (mips_expand_prologue): Likewise. 14384 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise. 14385 * config/sparc/sparc.c (sparc_expand_prologue): Likewise. 14386 (sparc_flat_expand_prologue): Likewise. 14387 * config/spu/spu.c (spu_expand_prologue): Likewise. 14388 14389 * explow.c: Include "params.h". 14390 (anti_adjust_stack_and_probe_stack_clash): New function. 14391 (get_stack_check_protect): Likewise. 14392 (compute_stack_clash_protection_loop_data): Likewise. 14393 (emit_stack_clash_protection_loop_start): Likewise. 14394 (emit_stack_clash_protection_loop_end): Likewise. 14395 (allocate_dynamic_stack_space): Use get_stack_check_protect. 14396 Use anti_adjust_stack_and_probe_stack_clash. 14397 * explow.h (compute_stack_clash_protection_loop_data): Prototype. 14398 (emit_stack_clash_protection_loop_start): Likewise. 14399 (emit_stack_clash_protection_loop_end): Likewise. 14400 * rtl.h (get_stack_check_protect): Prototype. 14401 * target.def (stack_clash_protection_final_dynamic_probe): New hook. 14402 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New. 14403 * targhooks.h (default_stack_clash_protection_final_dynamic_probe): 14404 Prototype. 14405 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): 14406 Add @hook. 14407 * doc/tm.texi: Rebuilt. 14408 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use 14409 get_stack_check_protect. 14410 * config/alpha/alpha.c (alpha_expand_prologue): Likewise. 14411 * config/arm/arm.c (arm_expand_prologue): Likewise. 14412 (arm_frame_pointer_required): Likewise. 14413 * config/i386/i386.c (ix86_expand_prologue): Likewise. 14414 * config/ia64/ia64.c (ia64_expand_prologue): Likewise. 14415 * config/mips/mips.c (mips_expand_prologue): Likewise. 14416 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise. 14417 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. 14418 * config/sparc/sparc.c (sparc_expand_prologue): Likewise. 14419 (sparc_flat_expand_prologue): Likewise. 14420 14421 * common.opt (-fstack-clash-protection): New option. 14422 * flag-types.h (enum stack_check_type): Note difference between 14423 -fstack-check= and -fstack-clash-protection. 14424 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM. 14425 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise. 14426 * toplev.c (process_options): Issue warnings/errors for cases 14427 not handled with -fstack-clash-protection. 14428 * doc/invoke.texi (-fstack-clash-protection): Document new option. 14429 (-fstack-check): Note additional problem with -fstack-check=generic. 14430 Note that -fstack-check is primarily for Ada and refer users 14431 to -fstack-clash-protection for stack-clash-protection. 14432 Document new params for stack clash protection. 14433 144342017-09-19 Uros Bizjak <ubizjak@gmail.com> 14435 14436 * config/i386/i386.c (ix86_split_long_move): Do not handle 14437 address used for LEA in a special way. 14438 144392017-09-19 Segher Boessenkool <segher@kernel.crashing.org> 14440 14441 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment. 14442 144432017-09-19 Martin Sebor <msebor@redhat.com> 14444 14445 PR c/81854 14446 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions 14447 of incompatible types. 14448 144492017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com> 14450 14451 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling 14452 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*). 14453 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 14454 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD. 14455 144562017-09-19 Richard Biener <rguenther@suse.de> 14457 14458 PR tree-optimization/82244 14459 * tree-vrp.c (remove_range_assertions): Do not propagate 14460 a constant to abnormals but replace the assert with a copy. 14461 144622017-09-19 Alexander Monakov <amonakov@ispras.ru> 14463 14464 PR rtl-optimization/57878 14465 PR rtl-optimization/68988 14466 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation 14467 avoidance test involving non_reload_pseudos. Move frequency test 14468 below the general fragmentation avoidance test. 14469 144702017-09-19 Richard Biener <rguenther@suse.de> 14471 14472 PR tree-optimization/69728 14473 * graphite-sese-to-poly.c (schedule_error): New global. 14474 (add_loop_schedule): Handle empty domain by failing the 14475 schedule. 14476 (build_original_schedule): Handle schedule_error. 14477 144782017-09-19 Richard Biener <rguenther@suse.de> 14479 14480 * graphite-scop-detection.c (scop_detection::can_represent_loop): 14481 Do not iterate to sibling loops but only to siblings of inner 14482 loops. 14483 144842017-09-18 Andreas Schwab <schwab@linux-m68k.org> 14485 14486 PR target/81613 14487 * config/m68k/m68k.md (moveq feeding equality comparison): Check 14488 that the registers are different. 14489 144902017-09-18 Uros Bizjak <ubizjak@gmail.com> 14491 14492 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H 14493 to processor_model and "amdfam17h" to arch_names_table. 14494 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name. 14495 144962017-09-18 Jakub Jelinek <jakub@redhat.com> 14497 14498 PR c/82234 14499 * doc/extend.texi: Add @findex entry for __builtin_shuffle. 14500 145012017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14502 Alan Hayward <alan.hayward@arm.com> 14503 David Sherwood <david.sherwood@arm.com> 14504 14505 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters 14506 with a vec_info *. 14507 * tree-vect-loop.c (vect_analyze_loop_operations): Update call 14508 accordingly. 14509 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info * 14510 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in 14511 vect_schedule_slp_instance. 14512 (vect_slp_analyze_operations): Replace parameters with a vec_info *. 14513 Update call to vect_slp_analyze_node_operations. Simplify return 14514 value. 14515 (vect_slp_analyze_bb_1): Update call accordingly. 14516 (vect_schedule_slp_instance): Remove vectorization_factor parameter. 14517 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here. 14518 (vect_schedule_slp): Update call accordingly. 14519 145202017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14521 Alan Hayward <alan.hayward@arm.com> 14522 David Sherwood <david.sherwood@arm.com> 14523 14524 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope 14525 with types that aren't in fact scalar. 14526 145272017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14528 14529 * tree-vect-slp.c (vect_record_max_nunits): New function, 14530 split out from... 14531 (vect_build_slp_tree_1): ...here. 14532 (vect_build_slp_tree_2): Call it for phis too. 14533 145342017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14535 14536 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype 14537 to vect_get_vec_def_for_operand when getting the mask operand. 14538 145392017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14540 Alan Hayward <alan.hayward@arm.com> 14541 David Sherwood <david.sherwood@arm.com> 14542 14543 * tree-vect-loop.c (vectorizable_live_operation): Fix type of 14544 bitstart. 14545 145462017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14547 Alan Hayward <alan.hayward@arm.com> 14548 David Sherwood <david.sherwood@arm.com> 14549 14550 * tree-vect-loop.c (vectorizable_live_operation): Fix element size 14551 calculation for vector booleans. 14552 145532017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 14554 Alan Hayward <alan.hayward@arm.com> 14555 David Sherwood <david.sherwood@arm.com> 14556 14557 * tree-vect-stmts.c (can_vectorize_live_stmts): New function, 14558 split out from... 14559 (vect_transform_stmt): ...here. 14560 (vect_analyze_stmt): Use it instead of calling 14561 vectorizable_live_operation directly. 14562 145632017-09-18 Cesar Philippidis <cesar@codesourcery.com> 14564 14565 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on 14566 non-SIMT targets in acc vector loops. 14567 145682017-09-18 Claudiu Zissulescu <claziss@synopsys.com> 14569 14570 * configure.ac: Add arc and check if assembler supports gdwarf2. 14571 * configure: Regenerate. 14572 145732017-09-18 Richard Biener <rguenther@suse.de> 14574 14575 PR tree-optimization/82220 14576 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude 14577 epilogue niters from the min_profitable_iters compute. 14578 145792017-09-18 Jakub Jelinek <jakub@redhat.com> 14580 14581 PR target/82145 14582 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01 14583 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately. 14584 (ix86_init_pic_reg): Revert 2017-09-01 changes. 14585 145862017-09-18 Eric Botcazou <ebotcazou@adacore.com> 14587 14588 PR target/81361 14589 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after 14590 switching to a new text section. 14591 145922017-09-18 Richard Biener <rguenther@suse.de> 14593 14594 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref): 14595 Simplify. 14596 (build_alias_set): Reject aliases with no access function. 14597 145982017-09-18 Richard Biener <rguenther@suse.de> 14599 14600 PR tree-optimization/79622 14601 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly 14602 handle PHIs. 14603 (build_cross_bb_scalars_use): Likewise. 14604 146052017-09-18 Pierre-Marie de Rodat <derodat@adacore.com> 14606 14607 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment. 14608 146092017-09-18 Alan Modra <amodra@gmail.com> 14610 14611 PR target/81996 14612 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use 14613 stack_pointer_rtx for count 0. Update comments. Break up 14614 large rtl expression. 14615 146162017-09-17 Daniel Santos <daniel.santos@pobox.com> 14617 14618 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN): 14619 Increase to 20 bytes. 14620 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion. 14621 (xlogue_layout::get_stub_name): Modify to select the appropairate sse 14622 or avx version of the stub. 14623 146242017-09-17 H.J. Lu <hongjiu.lu@intel.com> 14625 14626 PR target/82166 14627 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly 14628 compute the minimum stack alignment. Also update preferred stack 14629 boundary for leaf functions. 14630 146312017-09-16 Richard Sandiford <richard.sandiford@linaro.org> 14632 14633 PR tree-optimization/82228 14634 * tree-vect-loop.c (vectorizable_live_operation): Move initialization 14635 of ncopies. 14636 146372017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> 14638 14639 * common/config/nds32/nds32-common.c 14640 (nds32_option_optimization_table): Refine formatting. 14641 (nds32_option_optimization_table): Use -fsched-pressure and 14642 -fomit-frame-pointer for specific optimization level. 14643 146442017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> 14645 14646 * config/nds32/nds32.c: Refine formatting and comments. 14647 * config/nds32/nds32.h: Likewise. 14648 * config/nds32/nds32.md: Likewise. 14649 * config/nds32/nds32-cost.c: Likewise. 14650 * config/nds32/nds32-isr.c: Likewise. 14651 * config/nds32/nds32-md-auxiliary.c: Likewise. 14652 * config/nds32/nds32-multiple.md: Likewise. 14653 * config/nds32/nds32-predicates.c: Likewise. 14654 146552017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com> 14656 Jakub Jelinek <jakub@redhat.com> 14657 14658 Add support for -std=c++2a. 14659 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a 14660 or -std=gnu+2a. 14661 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a. 14662 146632017-09-15 Steve Ellcey <sellcey@cavium.com> 14664 14665 PR target/82066 14666 * doc/extend.texi (Common Function Attributes): Add 14667 references to ARM, AArch64, and S/390 specific attributes. 14668 (Function Specific Option Pragmas): Add AArch64 and S/390 14669 to list of back ends that support the target pragma. 14670 146712017-09-15 Nathan Sidwell <nathan@acm.org> 14672 14673 * doc/standards.texi: Fix C++17 description. Update URLs for 14674 C++11 & 14. 14675 146762017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> 14677 14678 * common.opt (Wcast-align=strict): New warning option. 14679 * doc/invoke.texi: Document -Wcast-align=strict. 14680 146812017-09-15 Pierre-Marie de Rodat <derodat@adacore.com> 14682 14683 * cgraph.h (cgraph_thunk_info): Add comments. 14684 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make 14685 assert for VIRTUAL_* arguments stricter. 14686 146872017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> 14688 14689 PR tree-optimization/71026 14690 * match.pd: Move RDIV patterns from fold-const.c 14691 * fold-const.c (distribute_real_division): Removed. 14692 (fold_binary_loc): Remove calls to distribute_real_divison. 14693 146942017-09-15 Jakub Jelinek <jakub@redhat.com> 14695 14696 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document 14697 c++1z and gnu++1z as deprecated. Change other references to 14698 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17. 14699 Change -Wc++1z-compat to -Wc++17-compat. 14700 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L. 14701 * dwarf2out.c (highest_c_language): Handle C++17. 14702 (gen_compile_unit_die): Likewise. 14703 147042017-09-15 Jakub Jelinek <jakub@redhat.com> 14705 14706 PR rtl-optimization/82192 14707 * combine.c (make_extraction): Don't look through non-paradoxical 14708 SUBREGs or TRUNCATE if pos + len is or might be bigger than 14709 inner's mode. 14710 147112017-09-15 Richard Sandiford <richard.sandiford@linaro.org> 14712 Alan Hayward <alan.hayward@arm.com> 14713 David Sherwood <david.sherwood@arm.com> 14714 14715 * target.def (function_arg_offset): New hook. 14716 * targhooks.h (default_function_arg_offset): Declare. 14717 * targhooks.c (default_function_arg_offset): New function. 14718 * function.c (locate_and_pad_parm): Use 14719 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET. 14720 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with... 14721 (TARGET_FUNCTION_ARG_OFFSET): ...this. 14722 * doc/tm.texi: Regenerate. 14723 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete. 14724 * config/spu/spu.c (spu_function_arg_offset): New function. 14725 (TARGET_FUNCTION_ARG_OFFSET): Redefine. 14726 * system.h (FUNCTION_ARG_OFFSET): Poison. 14727 147282017-09-15 Richard Sandiford <richard.sandiford@linaro.org> 14729 Alan Hayard <alan.hayward@arm.com> 14730 David Sherwood <david.sherwood@arm.com> 14731 14732 * target.def (truly_noop_truncation): New hook. 14733 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather 14734 than TRULY_NOOP_TRUNCATION. 14735 * hooks.h (hook_bool_uint_uint_true): Declare. 14736 * hooks.c (hook_bool_uint_uint_true): New function. 14737 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with... 14738 (TARGET_TRULY_NOOP_TRUNCATION): ...this. 14739 * doc/tm.texi: Regenerate. 14740 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION 14741 rather than TRULY_NOOP_TRUNCATION in comments. 14742 (simplify_comparison): Likewise. 14743 (record_truncated_value): Likewise. 14744 * expmed.c (extract_bit_field_1): Likewise. 14745 (extract_split_bit_field): Likewise. 14746 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation 14747 instead of TRULY_NOOP_TRUNCATION. 14748 * function.c (assign_parm_setup_block): Likewise. 14749 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise. 14750 * rtlhooks.c: Include target.h. 14751 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete. 14752 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete. 14753 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete. 14754 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete. 14755 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete. 14756 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete. 14757 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete. 14758 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete. 14759 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete. 14760 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete. 14761 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete. 14762 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete. 14763 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete. 14764 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete. 14765 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete. 14766 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete. 14767 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete. 14768 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete. 14769 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete. 14770 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete. 14771 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete. 14772 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete. 14773 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete. 14774 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete. 14775 * config/mips/mips.c (mips_truly_noop_truncation): New function. 14776 (TARGET_TRULY_NOOP_TRUNCATION): Redefine. 14777 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION 14778 rather than TRULY_NOOP_TRUNCATION in comments. 14779 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete. 14780 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete. 14781 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete. 14782 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete. 14783 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete. 14784 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete. 14785 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete. 14786 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete. 14787 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete. 14788 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete. 14789 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete. 14790 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION 14791 rather than TRULY_NOOP_TRUNCATION in comments. 14792 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete. 14793 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete. 14794 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete. 14795 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete. 14796 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove 14797 TRULY_NOOP_TRUNCATION condition. 14798 (MAYBE_INDEX_REGISTER_RTX_P): Likewise. 14799 (TRULY_NOOP_TRUNCATION): Delete. 14800 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete. 14801 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete. 14802 * config/spu/spu.c (spu_truly_noop_truncation): New function. 14803 (TARGET_TRULY_NOOP_TRUNCATION): Redefine. 14804 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete. 14805 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete. 14806 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction. 14807 (TARGET_TRULY_NOOP_TRUNCATION): Redefine. 14808 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION 14809 rather than TRULY_NOOP_TRUNCATION in comments. 14810 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete. 14811 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete. 14812 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete. 14813 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete. 14814 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete. 14815 * system.h (TRULY_NOOP_TRUNCATION): Poison. 14816 148172017-09-15 Christophe Lyon <christophe.lyon@linaro.org> 14818 14819 PR target/67591 14820 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute. 14821 (*cmp_ior): Likewise. 14822 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute. 14823 (*ior_scc_scc_cmp): Likewise. 14824 (*and_scc_scc): Likewise. 14825 (*and_scc_scc_cmp): Likewise. 14826 148272017-09-15 Richard Sandiford <richard.sandiford@linaro.org> 14828 Alan Hayard <alan.hayward@arm.com> 14829 David Sherwood <david.sherwood@arm.com> 14830 14831 * target.def (can_change_mode_class): New hook. 14832 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS. 14833 (hard_regno_nregs): Likewise. 14834 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare. 14835 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function. 14836 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with... 14837 (TARGET_CAN_CHANGE_MODE_CLASS): ...this. 14838 (LOAD_EXTEND_OP): Update accordingly. 14839 * doc/tm.texi: Regenerate. 14840 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of 14841 CANNOT_CHANGE_MODE_CLASS. 14842 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with... 14843 (REG_CAN_CHANGE_MODE_P): ...this new macro. 14844 * combine.c (simplify_set): Update accordingly. 14845 * emit-rtl.c (validate_subreg): Likewise. 14846 * recog.c (general_operand): Likewise. 14847 * regcprop.c (mode_change_ok): Likewise. 14848 * reload1.c (choose_reload_regs): Likewise. 14849 (inherit_piecemeal_p): Likewise. 14850 * rtlanal.c (simplify_subreg_regno): Likewise. 14851 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P 14852 instead of CANNOT_CHANGE_MODE_CLASS. 14853 (reload_cse_simplify_operands): Likewise. 14854 * reload.c (push_reload): Use targetm.can_change_mode_class 14855 instead of CANNOT_CHANGE_MODE_CLASS. 14856 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of 14857 REG_CANNOT_CHANGE_MODE_P. 14858 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14859 * config/alpha/alpha.c (alpha_can_change_mode_class): New function. 14860 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14861 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14862 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14863 (arm_can_change_mode_class): New function. 14864 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather 14865 than CANNOT_CHANGE_MODE_CLASS in comments. 14866 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14867 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete. 14868 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with... 14869 (ix86_can_change_mode_class): ...this new function, inverting the 14870 sense of the return value. 14871 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14872 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14873 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14874 (ia64_can_change_mode_class): New function. 14875 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14876 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete. 14877 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with... 14878 (m32c_can_change_mode_class): ...this new function, inverting the 14879 sense of the return value. 14880 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14881 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14882 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete. 14883 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with... 14884 (mips_can_change_mode_class): ...this new function, inverting the 14885 sense of the return value. 14886 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14887 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14888 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14889 (msp430_can_change_mode_class): New function. 14890 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14891 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function. 14892 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14893 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14894 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14895 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete. 14896 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14897 (pa_cannot_change_mode_class): Replace with... 14898 (pa_can_change_mode_class): ...this new function, inverting the 14899 sense of the return value. 14900 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather 14901 than CANNOT_CHANGE_MODE_CLASS in comments. 14902 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14903 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete. 14904 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14905 (pdp11_cannot_change_mode_class): Replace with... 14906 (pdp11_can_change_mode_class): ...this new function, inverting the 14907 sense of the return value. 14908 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14909 * config/powerpcspe/powerpcspe-protos.h 14910 (rs6000_cannot_change_mode_class_ptr): Delete. 14911 * config/powerpcspe/powerpcspe.c 14912 (rs6000_cannot_change_mode_class_ptr): Delete. 14913 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14914 (rs6000_option_override_internal): Assign to 14915 targetm.can_change_mode_class instead of 14916 rs6000_cannot_change_mode_class_ptr. 14917 (rs6000_cannot_change_mode_class): Replace with... 14918 (rs6000_can_change_mode_class): ...this new function, inverting the 14919 sense of the return value. 14920 (rs6000_debug_cannot_change_mode_class): Replace with... 14921 (rs6000_debug_can_change_mode_class): ...this new function. 14922 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14923 * config/riscv/riscv.c (riscv_can_change_mode_class): New function. 14924 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14925 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14926 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr): 14927 Delete. 14928 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete. 14929 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14930 (rs6000_option_override_internal): Assign to 14931 targetm.can_change_mode_class instead of 14932 rs6000_cannot_change_mode_class_ptr. 14933 (rs6000_cannot_change_mode_class): Replace with... 14934 (rs6000_can_change_mode_class): ...this new function, inverting the 14935 sense of the return value. 14936 (rs6000_debug_cannot_change_mode_class): Replace with... 14937 (rs6000_debug_can_change_mode_class): ...this new function. 14938 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14939 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete. 14940 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with... 14941 (s390_can_change_mode_class): ...this new function, inverting the 14942 sense of the return value. 14943 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14944 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14945 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete. 14946 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14947 (sh_cannot_change_mode_class): Replace with... 14948 (sh_can_change_mode_class): ...this new function, inverting the 14949 sense of the return value. 14950 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14951 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14952 (sparc_can_change_mode_class): New function. 14953 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14954 * config/spu/spu.c (spu_can_change_mode_class): New function. 14955 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14956 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete. 14957 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. 14958 (visium_can_change_mode_class): New function. 14959 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison. 14960 149612017-09-15 Richard Biener <rguenther@suse.de> 14962 14963 PR tree-optimization/82217 14964 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP 14965 but not undefined case. 14966 149672017-09-15 Jakub Jelinek <jakub@redhat.com> 14968 14969 PR target/82145 14970 * postreload.c (reload_cse_simplify_operands): Skip 14971 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL. 14972 149732017-09-15 Richard Biener <rguenther@suse.de> 14974 14975 PR tree-optimization/68823 14976 * graphite-scop-detection.c (build_alias_set): If we have a 14977 possible dependence check whether we can handle them by just 14978 looking at the DRs DR_ACCESS_FNs. 14979 (build_scops): If build_alias_set fails, fail the SCOP. 14980 149812017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> 14982 14983 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros 14984 to support float128 built-in functions that require the ISA 3.0 14985 hardware. 14986 (BU_FLOAT128_3_HW): Likewise. 14987 (SQRTF128): Add support for the IEEE 128-bit square root and fma 14988 built-in functions. 14989 (FMAF128): Likewise. 14990 (FMAQ): Likewise. 14991 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add 14992 support for built-in functions that need the ISA 3.0 IEEE 128-bit 14993 floating point instructions. 14994 (rs6000_invalid_builtin): Likewise. 14995 (rs6000_builtin_mask_names): Likewise. 14996 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise. 14997 (RS6000_BTM_FLOAT128_HW): Likewise. 14998 (RS6000_BTM_COMMON): Likewise. 14999 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator 15000 function. 15001 * doc/extend.texi (RS/6000 built-in functions): Document the 15002 IEEE 128-bit floating point square root and fused multiply-add 15003 built-in functions. 15004 150052017-09-14 Pat Haugen <pthaugen@us.ibm.com> 15006 15007 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC 15008 reg (r2) isn't in the set of registers defined in the prologue. 15009 150102017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15011 Alan Hayward <alan.hayward@arm.com> 15012 David Sherwood <david.sherwood@arm.com> 15013 15014 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor. 15015 (LOOP_VINFO_MAX_VECT_FACTOR): New macro. 15016 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with... 15017 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro. 15018 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update 15019 accordingly. 15020 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 15021 max_vectorization_factor. 15022 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR. 15023 150242017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15025 Alan Hayward <alan.hayward@arm.com> 15026 David Sherwood <david.sherwood@arm.com> 15027 15028 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete. 15029 (vect_worthwhile_without_simd_p): Declare. 15030 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function. 15031 (vectorizable_reduction): Use it. 15032 * tree-vect-stmts.c (vectorizable_shift): Likewise. 15033 (vectorizable_operation): Likewise. 15034 150352017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15036 Alan Hayward <alan.hayward@arm.com> 15037 David Sherwood <david.sherwood@arm.com> 15038 15039 * tree-vectorizer.h (vect_get_num_copies): New function. 15040 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it. 15041 * tree-vect-loop.c (vectorizable_reduction): Likewise. 15042 (vectorizable_induction): Likewise. 15043 (vectorizable_live_operation): Likewise. 15044 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. 15045 (vectorizable_bswap): Likewise. 15046 (vectorizable_call): Likewise. 15047 (vectorizable_conversion): Likewise. 15048 (vectorizable_assignment): Likewise. 15049 (vectorizable_shift): Likewise. 15050 (vectorizable_operation): Likewise. 15051 (vectorizable_store): Likewise. 15052 (vectorizable_load): Likewise. 15053 (vectorizable_condition): Likewise. 15054 (vectorizable_comparison): Likewise. 15055 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation. 15056 150572017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15058 Alan Hayward <alan.hayward@arm.com> 15059 David Sherwood <david.sherwood@arm.com> 15060 15061 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead 15062 of vect_init_vector. 15063 150642017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15065 Alan Hayward <alan.hayward@arm.com> 15066 David Sherwood <david.sherwood@arm.com> 15067 15068 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide 15069 an inline wrapper that provides a location. 15070 (gimple_build_vector): Likewise. 15071 * gimple-fold.c (gimple_build_vector_from_val): New function. 15072 (gimple_build_vector): Likewise. 15073 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new 15074 functions to build the initial value. Always return a gimple value. 15075 (get_initial_defs_for_reduction): Likewise. Only compute 15076 neutral_vec once. 15077 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or 15078 vect_init_vector on the results from get_initial_def(s)_for_reduction. 15079 (vectorizable_induction): Use gimple_build_vector rather than 15080 vect_init_vector. 15081 150822017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15083 Alan Hayward <alan.hayward@arm.com> 15084 David Sherwood <david.sherwood@arm.com> 15085 15086 * target.h (vec_perm_indices): New typedef. 15087 (auto_vec_perm_indices): Likewise. 15088 * optabs-query.h: Include target.h 15089 (can_vec_perm_p): Take a vec_perm_indices *. 15090 * optabs-query.c (can_vec_perm_p): Likewise. 15091 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices. 15092 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 15093 * tree-vect-generic.c (lower_vec_perm): Likewise. 15094 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 15095 (vect_grouped_load_supported): Likewise. 15096 (vect_shift_permute_load_chain): Likewise. 15097 (vect_permute_store_chain): Use auto_vec_perm_indices. 15098 (vect_permute_load_chain): Likewise. 15099 * fold-const.c (fold_vec_perm): Take vec_perm_indices. 15100 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices. 15101 Update uses of can_vec_perm_p. 15102 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the 15103 mode with a number of elements. Take a vec_perm_indices *. 15104 (vect_create_epilog_for_reduction): Update accordingly. 15105 Use auto_vec_perm_indices. 15106 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p. 15107 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 15108 (vect_transform_slp_perm_load): Likewise. 15109 (vect_schedule_slp_instance): Use auto_vec_perm_indices. 15110 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices. 15111 (vect_gen_perm_mask_checked): Likewise. 15112 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices. 15113 (vect_gen_perm_mask_checked): Likewise. 15114 (vectorizable_mask_load_store): Use auto_vec_perm_indices. 15115 (vectorizable_store): Likewise. 15116 (vectorizable_load): Likewise. 15117 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p. 15118 (vectorizable_bswap): Likewise. 15119 151202017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15121 Alan Hayward <alan.hayward@arm.com> 15122 David Sherwood <david.sherwood@arm.com> 15123 15124 * tree.h (build_vector): Take a vec<tree> instead of a tree *. 15125 * tree.c (build_vector): Likewise. 15126 (build_vector_from_ctor): Update accordingly. 15127 (build_vector_from_val): Likewise. 15128 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. 15129 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 15130 * tree-vect-generic.c (add_rshift): Likewise. 15131 (expand_vector_divmod): Likewise. 15132 (optimize_vector_constructor): Likewise. 15133 * tree-vect-slp.c (vect_get_constant_vectors): Likewise. 15134 (vect_transform_slp_perm_load): Likewise. 15135 (vect_schedule_slp_instance): Likewise. 15136 * tree-vect-stmts.c (vectorizable_bswap): Likewise. 15137 (vectorizable_call): Likewise. 15138 (vect_gen_perm_mask_any): Likewise. Add elements in order. 15139 * expmed.c (make_tree): Likewise. 15140 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building 15141 a vector passed to build_vector. 15142 (fold_convert_const): Likewise. 15143 (exact_inverse): Likewise. 15144 (fold_ternary_loc): Likewise. 15145 (fold_relational_const): Likewise. 15146 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating 15147 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array. 15148 (const_unop): Likewise. Store the reduction accumulator in a 15149 variable rather than an array. 15150 (vec_cst_ctor_to_array): Take the number of elements as a parameter. 15151 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for 15152 the new vector, rather than constructing it after the input arrays. 15153 (native_interpret_vector): Use auto_vec<tree> when building 15154 a vector passed to build_vector. Add elements in order. 15155 * tree-vect-loop.c (get_initial_defs_for_reduction): Use 15156 auto_vec<tree> when building a vector passed to build_vector. 15157 (vect_create_epilog_for_reduction): Likewise. 15158 (vectorizable_induction): Likewise. 15159 (get_initial_def_for_reduction): Likewise. Fix indentation of 15160 case statements. 15161 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts 15162 to a vec<tree> *. 15163 (sparc_fold_builtin): Use auto_vec<tree> when building a vector 15164 passed to build_vector. 15165 151662017-09-14 Richard Sandiford <richard.sandiford@linaro.org> 15167 Alan Hayward <alan.hayward@arm.com> 15168 David Sherwood <david.sherwood@arm.com> 15169 15170 * tree-core.h (tree_base::u): Add an "nelts" field. 15171 (tree_vector): Use VECTOR_CST_NELTS as the length. 15172 * tree.c (tree_size): Likewise. 15173 (make_vector): Initialize VECTOR_CST_NELTS. 15174 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field. 15175 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of 15176 TYPE_VECTOR_SUBPARTS. 15177 * expr.c (const_vector_mask_from_tree): Consistently use "units" 15178 as the number of units, setting it from VECTOR_CST_NELTS. 15179 (const_vector_from_tree): Likewise. 15180 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of 15181 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST. 15182 (fold_negate_expr_1): Likewise. 15183 (fold_convert_const): Likewise. 15184 (const_binop): Likewise. Differentiate the number of output and 15185 input elements. 15186 (const_unop): Likewise. 15187 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements 15188 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS 15189 in cases that did the opposite. 15190 151912017-09-14 Richard Biener <rguenther@suse.de> 15192 15193 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar 15194 to VN_TOP. 15195 151962017-09-14 Eric Botcazou <ebotcazou@adacore.com> 15197 15198 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test. 15199 152002017-09-14 Jakub Jelinek <jakub@redhat.com> 15201 15202 PR target/81325 15203 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions 15204 if and where to split a bb, except for splitting before debug insn 15205 sequences followed by non-label real insn. Delete debug insns 15206 in between basic blocks. 15207 15208 * combine.c (make_compound_operation_int): Formatting fixes. 15209 15210 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support. 15211 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 15212 * config/netbsd.h (LINK_EH_SPEC): Likewise. 15213 * config/sol2.h (LINK_EH_SPEC): Likewise. 15214 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 15215 * config/s390/linux.h (LINK_SPEC): Likewise. 15216 * config/freebsd.h (LINK_EH_SPEC): Likewise. 15217 * config/openbsd.h (LINK_EH_SPEC): Likewise. 15218 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 15219 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise. 15220 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise. 15221 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 15222 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo. 15223 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix. 15224 152252017-09-13 Jakub Jelinek <jakub@redhat.com> 15226 15227 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie 15228 support. 15229 (ENDFILE_LINUX_SPEC): Likewise. 15230 (LINK_EH_SPEC): Likewise. 15231 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise. 15232 (LINK_OS_LINUX_SPEC32): Likewise. 15233 (LINK_OS_LINUX_SPEC64): Likewise. 15234 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise. 15235 (LINK_OS_LINUX_SPEC): Likewise. 15236 152372017-09-13 Martin Liska <mliska@suse.cz> 15238 15239 PR middle-end/82154 15240 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when 15241 CASE_HIGH is NULL_TREE. 15242 152432017-09-13 Richard Sandiford <richard.sandiford@linaro.org> 15244 Alan Hayward <alan.hayward@arm.com> 15245 David Sherwood <david.sherwood@arm.com> 15246 15247 * target.def (secondary_memory_needed): New hook. 15248 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED 15249 instead of SECONDARY_MEMORY_NEEDED. 15250 (secondary_memory_needed_mode): Likewise. 15251 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare. 15252 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function. 15253 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with... 15254 (TARGET_SECONDARY_MEMORY_NEEDED): ...this. 15255 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly. 15256 * doc/tm.texi: Regenerate. 15257 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete. 15258 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function. 15259 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15260 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete. 15261 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete. 15262 * config/i386/i386.c (inline_secondary_memory_needed): Put the 15263 mode argument first and change the reg_class arguments to reg_class_t. 15264 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter. 15265 Make static. Update the call to inline_secondary_memory_needed. 15266 (ix86_register_move_cost): Update the call to 15267 inline_secondary_memory_needed. 15268 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15269 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out 15270 definition. 15271 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to 15272 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED 15273 in comment. 15274 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete. 15275 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete. 15276 * config/mips/mips.c (mips_secondary_memory_needed): Make static 15277 and match hook interface. Add comment from mips.h. 15278 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15279 * config/mmix/mmix.md (truncdfsf2): Refer to 15280 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED 15281 in comment. 15282 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to... 15283 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first. 15284 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15285 (pa_secondary_memory_needed): New function. 15286 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete. 15287 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete. 15288 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15289 (pdp11_secondary_memory_needed): Make static and match hook interface. 15290 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete. 15291 * config/powerpcspe/powerpcspe-protos.h 15292 (rs6000_secondary_memory_needed_ptr): Delete. 15293 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr): 15294 Delete. 15295 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15296 (rs6000_option_override_internal): Assign to 15297 targetm.secondary_memory_needed rather than 15298 rs6000_secondary_memory_needed_ptr. 15299 (rs6000_secondary_memory_needed): Match hook interface. 15300 (rs6000_debug_secondary_memory_needed): Likewise. 15301 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete. 15302 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function. 15303 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED. 15304 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15305 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete. 15306 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr): 15307 Delete. 15308 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete. 15309 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15310 (rs6000_option_override_internal): Assign to 15311 targetm.secondary_memory_needed rather than 15312 rs6000_secondary_memory_needed_ptr. 15313 (rs6000_secondary_memory_needed): Match hook interface. 15314 (rs6000_debug_secondary_memory_needed): Likewise. 15315 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete. 15316 * config/s390/s390.c (s390_secondary_memory_needed): New function. 15317 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15318 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete. 15319 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. 15320 (sparc_secondary_memory_needed): New function. 15321 * lra-constraints.c (check_and_process_move): Refer to 15322 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED 15323 in comment. 15324 (curr_insn_transform): Likewise. 15325 (process_alt_operands): Use targetm.secondary_memory_needed 15326 instead of TARGET_SECONDARY_MEMORY_NEEDED. 15327 (check_secondary_memory_needed_p): Likewise. 15328 (choose_split_class): Likewise. 15329 * reload.c: Unconditionally include code that was previously 15330 conditional on SECONDARY_MEMORY_NEEDED. 15331 (push_secondary_reload): Use targetm.secondary_memory_needed 15332 instead of TARGET_SECONDARY_MEMORY_NEEDED. 15333 (push_reload): Likewise. 15334 * reload1.c: Unconditionally include code that was previously 15335 conditional on SECONDARY_MEMORY_NEEDED. 15336 (choose_reload_regs): Use targetm.secondary_memory_needed 15337 instead of TARGET_SECONDARY_MEMORY_NEEDED. 15338 (gen_reload): Likewise. 15339 * system.h (SECONDARY_MEMORY_NEEDED): Poison. 15340 153412017-09-13 Richard Sandiford <richard.sandiford@linaro.org> 15342 Alan Hayward <alan.hayward@arm.com> 15343 David Sherwood <david.sherwood@arm.com> 15344 15345 * target.def (secondary_memory_needed_mode): New hook: 15346 * targhooks.c (default_secondary_memory_needed_mode): Declare. 15347 * targhooks.h (default_secondary_memory_needed_mode): New function. 15348 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with... 15349 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this. 15350 * doc/tm.texi: Regenerate. 15351 * lra-constraints.c (check_and_process_move): Use 15352 targetm.secondary_memory_needed_mode instead of 15353 TARGET_SECONDARY_MEMORY_NEEDED_MODE. 15354 (curr_insn_transform): Likewise. 15355 * reload.c (get_secondary_mem): Likewise. 15356 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. 15357 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New 15358 function. 15359 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. 15360 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. 15361 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function. 15362 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. 15363 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE): 15364 Delete. 15365 * config/powerpcspe/powerpcspe-protos.h 15366 (rs6000_secondary_memory_needed_mode): Delete. 15367 * config/powerpcspe/powerpcspe.c 15368 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. 15369 (rs6000_secondary_memory_needed_mode): Make static. 15370 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. 15371 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode): 15372 Delete. 15373 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): 15374 Redefine. 15375 (rs6000_secondary_memory_needed_mode): Make static. 15376 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. 15377 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function. 15378 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. 15379 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. 15380 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): 15381 Redefine. 15382 (sparc_secondary_memory_needed_mode): New function. 15383 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison. 15384 153852017-09-13 Jackson Woodruff <jackson.woodruff@arm.com> 15386 15387 * config/aarch64/constraints.md (Umq): New constraint. 15388 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): 15389 Change to use Umq. 15390 (mov<mode>): Update condition. 15391 153922017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15393 15394 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order 15395 when bitposition is the same. 15396 153972017-09-13 Richard Biener <rguenther@suse.de> 15398 15399 * dwarf2out.c (output_die_symbol): Remove. 15400 (output_die): Do not output a DIEs symbol. 15401 154022017-09-13 Richard Biener <rguenther@suse.de> 15403 15404 PR middle-end/82128 15405 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to 15406 default-def to avoid breaking iterator update with the weird 15407 interaction with cgraph_update_edges_for_call_stmt_node. 15408 154092017-09-13 Richard Biener <rguenther@suse.de> 15410 15411 * tree-cfg.c (verify_gimple_assign_binary): Add verification 15412 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR, 15413 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR. 15414 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR. 15415 154162017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org> 15417 15418 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1): 15419 Disable pc relative literal load irrespective of 15420 TARGET_FIX_ERR_A53_84341 for default. 15421 154222017-09-12 Eric Botcazou <ebotcazou@adacore.com> 15423 15424 * config/sparc/sparc.c (output_return): Output the source location of 15425 the insn in the delay slot, if any. 15426 (output_sibcall): Likewise. 15427 154282017-09-12 H.J. Lu <hongjiu.lu@intel.com> 15429 15430 PR driver/81498 15431 * common.opt (-static-pie): New alias. 15432 (shared): Negate static-pie. 15433 (-no-pie): Update help text. 15434 (-pie): Likewise. 15435 (static-pie): New option. 15436 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add 15437 -static-pie support. 15438 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. 15439 (LINK_EH_SPEC): Likewise. 15440 (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 15441 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise. 15442 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise. 15443 * gcc.c (LINK_COMMAND_SPEC): Likewise. 15444 (init_gcc_specs): Likewise. 15445 (init_spec): Likewise. 15446 (display_help): Update help message for -pie. 15447 * doc/invoke.texi: Update -pie, -no-pie and -static. Document 15448 -static-pie. 15449 154502017-09-12 Wilco Dijkstra <wdijkstr@arm.com> 15451 15452 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. 15453 (movdi_aarch64): Likewise. 15454 (movti_aarch64): Likewise. 15455 154562017-09-12 Simon Wright <simon@pushface.org> 15457 15458 PR target/80204 15459 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate 15460 calculation of the minor version, always output as 0. 15461 154622017-09-12 Jakub Jelinek <jakub@redhat.com> 15463 15464 PR target/82112 15465 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For 15466 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion 15467 on it early, rather than manual conversion late. For 15468 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion 15469 instead of performing manual conversion. 15470 154712017-09-12 Carl Love <cel@us.ibm.com> 15472 15473 * config/rs6000/altivec.md (vec_widen_umult_even_v4si, 15474 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw, 15475 vmulouw, vmulosw. 15476 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, 15477 VMULOSW): Add definitions. 15478 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 15479 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, 15480 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. 15481 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, 15482 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. 15483 154842017-09-12 James Greenhalgh <james.greenhalgh@arm.com> 15485 15486 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store 15487 types correctly. 15488 (movti_aarch64): Likewise. 15489 (movdf_aarch64): Likewise. 15490 (movtf_aarch64): Likewise. 15491 (load_pairdi): Likewise. 15492 (store_pairdi): Likewise. 15493 (load_pairdf): Likewise. 15494 (store_pairdf): Likewise. 15495 (loadwb_pair<GPI:mode>_<P:mode>): Likewise. 15496 (storewb_pair<GPI:mode>_<P:mode>): Likewise. 15497 (ldr_got_small_<mode>): Likewise. 15498 (ldr_got_small_28k_<mode>): Likewise. 15499 (ldr_got_tiny): Likewise. 15500 * config/aarch64/iterators.md (ldst_sz): New. 15501 (ldpstp_sz): Likewise. 15502 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8 15503 to store_16. 15504 (thunderx_load): Split load_8 to load_16. 15505 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split 15506 load_8 to load_16. 15507 (thunderx2t99_storepair_basic): Split store_8 to store_16. 15508 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16. 15509 (xgene1_store_pair): Split store_8 to store_16. 15510 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16. 15511 (falkor_st_0_st_sd): Split store_8 to store_16. 15512 155132017-09-12 James Greenhalgh <james.greenhalgh@arm.com> 15514 15515 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16 15516 and store1/2/3/4 to store_4/8/12/16. 15517 * config/aarch64/aarch64.md: Update for rename. 15518 * config/arm/arm.md: Likewise.: Likewise. 15519 * config/arm/arm.c: Likewise. 15520 * config/arm/thumb1.md: Likewise. 15521 * config/arm/thumb2.md: Likewise. 15522 * config/arm/vfp.md: Likewise. 15523 * config/arm/arm-generic.md: Likewise. 15524 * config/arm/arm1020e.md: Likewise. 15525 * config/arm/arm1026ejs.md: Likewise. 15526 * config/arm/arm1136jfs.md: Likewise. 15527 * config/arm/arm926ejs.md: Likewise. 15528 * config/arm/cortex-a15.md: Likewise. 15529 * config/arm/cortex-a17.md: Likewise. 15530 * config/arm/cortex-a5.md: Likewise. 15531 * config/arm/cortex-a53.md: Likewise. 15532 * config/arm/cortex-a57.md: Likewise. 15533 * config/arm/cortex-a7.md: Likewise. 15534 * config/arm/cortex-a8.md: Likewise. 15535 * config/arm/cortex-a9.md: Likewise. 15536 * config/arm/cortex-m4.md: Likewise. 15537 * config/arm/cortex-m7.md: Likewise. 15538 * config/arm/cortex-r4.md: Likewise. 15539 * config/arm/exynos-m1.md: Likewise. 15540 * config/arm/fa526.md: Likewise. 15541 * config/arm/fa606te.md: Likewise. 15542 * config/arm/fa626te.md: Likewise. 15543 * config/arm/fa726te.md: Likewise. 15544 * config/arm/fmp626.md: Likewise. 15545 * config/arm/iwmmxt.md: Likewise. 15546 * config/arm/ldmstm.md: Likewise. 15547 * config/arm/marvell-pj4.md: Likewise. 15548 * config/arm/xgene1.md: Likewise. 15549 * config/aarch64/thunderx.md: Likewise. 15550 * config/aarch64/thunderx2t99.md: Likewise. 15551 * config/aarch64/falkor.md: Likewise. 15552 155532017-09-12 Martin Liska <mliska@suse.cz> 15554 15555 * attribs.c (private_lookup_attribute): New function. 15556 * attribs.h (private_lookup_attribute): Declared here. 15557 (lookup_attribute): Called from this place. 15558 155592017-09-12 Richard Biener <rguenther@suse.de> 15560 15561 PR tree-optimization/82157 15562 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove 15563 stmts with side-effects. 15564 155652017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15566 Alan Hayward <alan.hayward@arm.com> 15567 David Sherwood <david.sherwood@arm.com> 15568 15569 * target.def (hard_regno_nregs): New hook. 15570 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS. 15571 * targhooks.h (default_hard_regno_nregs): Declare. 15572 * targhooks.c (default_hard_regno_nregs): New function. 15573 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with... 15574 (TARGET_HARD_REGNO_NREGS): ...this hook. 15575 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly. 15576 (CLASS_MAX_NREGS): Likewise. 15577 * doc/tm.texi: Regenerate. 15578 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs 15579 instead of HARD_REGNO_NREGS. 15580 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than 15581 HARD_REGNO_NREGS in the comment. 15582 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete. 15583 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete. 15584 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static. 15585 Return an unsigned int. 15586 (TARGET_HARD_REGNO_NREGS): Redefine. 15587 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete. 15588 * config/arc/arc.h (HARD_REGNO_NREGS): Delete. 15589 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine. 15590 (arc_hard_regno_nregs): New function. 15591 * config/arm/arm.h (HARD_REGNO_NREGS): Delete. 15592 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine. 15593 (arm_hard_regno_nregs): New function. 15594 * config/avr/avr.h (HARD_REGNO_NREGS): Delete. 15595 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete. 15596 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function. 15597 (TARGET_HARD_REGNO_NREGS): Redefine. 15598 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete. 15599 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs. 15600 (HARD_REGNO_NREGS): Delete. 15601 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine. 15602 (cr16_hard_regno_nregs): New function. 15603 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS. 15604 * config/cris/cris.h (HARD_REGNO_NREGS): Delete. 15605 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine. 15606 (cris_hard_regno_nregs): New function. 15607 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete. 15608 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete. 15609 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. 15610 * config/frv/frv.h (HARD_REGNO_NREGS): Delete. 15611 (CLASS_MAX_NREGS): Remove outdated copy of documentation. 15612 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete. 15613 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine. 15614 (frv_hard_regno_nregs): Make static. Take and return an 15615 unsigned int. 15616 (frv_class_max_nregs): Remove outdated copy of documentation. 15617 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete. 15618 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete. 15619 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete. 15620 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete. 15621 * config/i386/i386.h (HARD_REGNO_NREGS): Delete. 15622 * config/i386/i386.c (ix86_hard_regno_nregs): New function. 15623 (TARGET_HARD_REGNO_NREGS): Redefine. 15624 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete. 15625 (CLASS_MAX_NREGS): Update comment. 15626 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine. 15627 (ia64_hard_regno_nregs): New function. 15628 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete. 15629 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete. 15630 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete. 15631 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete. 15632 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return 15633 an unsigned int. 15634 (m32c_hard_regno_nregs): Likewise. Make static. 15635 (TARGET_HARD_REGNO_NREGS): Redefine. 15636 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete. 15637 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete. 15638 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine. 15639 (m68k_hard_regno_nregs): New function. 15640 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete. 15641 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete. 15642 * config/mips/mips.h (HARD_REGNO_NREGS): Delete. 15643 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete. 15644 * config/mips/mips.c (mips_hard_regno_nregs): Make static. 15645 Take and return an unsigned int. 15646 (TARGET_HARD_REGNO_NREGS): Redefine. 15647 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete. 15648 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. 15649 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete. 15650 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete. 15651 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete. 15652 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete. 15653 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine. 15654 (msp430_hard_regno_nregs): Make static. Take and return an 15655 unsigned int. 15656 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete. 15657 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete. 15658 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete. 15659 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs. 15660 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete. 15661 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete. 15662 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function. 15663 (TARGET_HARD_REGNO_NREGS): Redefine. 15664 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to... 15665 (PA_HARD_REGNO_NREGS): ...this. 15666 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to... 15667 (PA_HARD_REGNO_NREGS): ...this. 15668 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine. 15669 (pa_hard_regno_nregs): New function. 15670 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete. 15671 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine. 15672 (pdp11_hard_regno_nregs): New function. 15673 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete. 15674 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine. 15675 (rs6000_hard_regno_nregs_hook): New function. 15676 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete. 15677 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. 15678 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static. 15679 Take and return an unsigned int. Move earlier in file. 15680 (TARGET_HARD_REGNO_NREGS): Redefine. 15681 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete. 15682 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete. 15683 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine. 15684 (rl78_hard_regno_nregs): Make static. Take and return an 15685 unsigned int. 15686 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete. 15687 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine. 15688 (rs6000_hard_regno_nregs_hook): New function. 15689 * config/rx/rx.h (HARD_REGNO_NREGS): Delete. 15690 * config/rx/rx.c (rx_hard_regno_nregs): New function. 15691 (TARGET_HARD_REGNO_NREGS): Redefine. 15692 * config/s390/s390.h (HARD_REGNO_NREGS): Delete. 15693 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs 15694 instead of HARD_REGNO_NREGS. 15695 (s390_hard_regno_nregs): New function. 15696 (s390_hard_regno_mode_ok): Add comment from s390.h. 15697 (TARGET_HARD_REGNO_NREGS): Redefine. 15698 * config/sh/sh.h (HARD_REGNO_NREGS): Delete. 15699 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine. 15700 (sh_hard_regno_nregs): New function. 15701 (sh_pass_in_reg_p): Use it. 15702 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete. 15703 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine. 15704 (sparc_hard_regno_nregs): New function. 15705 * config/spu/spu.h (HARD_REGNO_NREGS): Delete. 15706 * config/spu/spu.c (spu_hard_regno_nregs): New function. 15707 (spu_function_arg_advance): Use it, supplying a valid register number. 15708 (TARGET_HARD_REGNO_NREGS): Redefine. 15709 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete. 15710 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete. 15711 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete. 15712 * config/v850/v850.h (HARD_REGNO_NREGS): Delete. 15713 * config/vax/vax.h (HARD_REGNO_NREGS): Delete. 15714 * config/visium/visium.h (HARD_REGNO_NREGS): Delete. 15715 (CLASS_MAX_NREGS): Remove copy of old documentation. 15716 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine. 15717 (visium_hard_regno_nregs): New function. 15718 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS. 15719 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete. 15720 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine. 15721 xtensa_hard_regno_nregs): New function. 15722 * system.h (HARD_REGNO_NREGS): Poison. 15723 157242017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15725 15726 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use 15727 hard_regno_nregs instead of HARD_REGNO_NREGS. 15728 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. 15729 * config/c6x/c6x.c (c6x_expand_prologue): Likewise. 15730 (c6x_expand_epilogue): Likewise. 15731 * config/frv/frv.c (frv_alloc_temp_reg): Likewise. 15732 (frv_read_iacc_argument): Likewise. 15733 * config/sh/sh.c: Include regs.h. 15734 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS. 15735 (regs_used): Likewise. 15736 (output_stack_adjust): Likewise. 15737 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise. 15738 * expmed.c: Include regs.h. 15739 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS. 15740 * ree.c: Include regs.h. 15741 (combine_reaching_defs): Use hard_regno_nregs instead of 15742 HARD_REGNO_NREGS. 15743 (add_removable_extension): Likewise. 15744 157452017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15746 15747 * regs.h (hard_regno_nregs): Turn into a function. 15748 (end_hard_regno): Update accordingly. 15749 * caller-save.c (setup_save_areas): Likewise. 15750 (save_call_clobbered_regs): Likewise. 15751 (replace_reg_with_saved_mem): Likewise. 15752 (insert_restore): Likewise. 15753 (insert_save): Likewise. 15754 * combine.c (can_change_dest_mode): Likewise. 15755 (move_deaths): Likewise. 15756 (distribute_notes): Likewise. 15757 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise. 15758 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class) 15759 (rs6000_split_multireg_move): Likewise. 15760 (rs6000_register_move_cost): Likewise. 15761 (rs6000_memory_move_cost): Likewise. 15762 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise. 15763 (rs6000_split_multireg_move): Likewise. 15764 (rs6000_register_move_cost): Likewise. 15765 (rs6000_memory_move_cost): Likewise. 15766 * cselib.c (cselib_reset_table): Likewise. 15767 (cselib_lookup_1): Likewise. 15768 * emit-rtl.c (set_mode_and_regno): Likewise. 15769 * function.c (aggregate_value_p): Likewise. 15770 * ira-color.c (setup_profitable_hard_regs): Likewise. 15771 (check_hard_reg_p): Likewise. 15772 (calculate_saved_nregs): Likewise. 15773 (assign_hard_reg): Likewise. 15774 (improve_allocation): Likewise. 15775 (calculate_spill_cost): Likewise. 15776 * ira-emit.c (modify_move_list): Likewise. 15777 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise. 15778 (ira_hard_reg_in_set_p): Likewise. 15779 * ira.c (setup_reg_mode_hard_regset): Likewise. 15780 (clarify_prohibited_class_mode_regs): Likewise. 15781 (check_allocation): Likewise. 15782 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15783 (lra_setup_reg_renumber): Likewise. 15784 (setup_try_hard_regno_pseudos): Likewise. 15785 (spill_for): Likewise. 15786 (assign_hard_regno): Likewise. 15787 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. 15788 * lra-constraints.c (in_class_p): Likewise. 15789 (lra_constraint_offset): Likewise. 15790 (simplify_operand_subreg): Likewise. 15791 (lra_constraints): Likewise. 15792 (split_reg): Likewise. 15793 (split_if_necessary): Likewise. 15794 (invariant_p): Likewise. 15795 (inherit_in_ebb): Likewise. 15796 * lra-lives.c (process_bb_lives): Likewise. 15797 * lra-remat.c (reg_overlap_for_remat_p): Likewise. 15798 (get_hard_regs): Likewise. 15799 (do_remat): Likewise. 15800 * lra-spills.c (assign_spill_hard_regs): Likewise. 15801 * mode-switching.c (create_pre_exit): Likewise. 15802 * postreload.c (reload_combine_recognize_pattern): Likewise. 15803 * recog.c (peep2_find_free_register): Likewise. 15804 * regcprop.c (kill_value_regno): Likewise. 15805 (set_value_regno): Likewise. 15806 (copy_value): Likewise. 15807 (maybe_mode_change): Likewise. 15808 (find_oldest_value_reg): Likewise. 15809 (copyprop_hardreg_forward_1): Likewise. 15810 * regrename.c (check_new_reg_p): Likewise. 15811 (regrename_do_replace): Likewise. 15812 * reload.c (push_reload): Likewise. 15813 (combine_reloads): Likewise. 15814 (find_dummy_reload): Likewise. 15815 (operands_match_p): Likewise. 15816 (find_reloads): Likewise. 15817 (find_equiv_reg): Likewise. 15818 (reload_adjust_reg_for_mode): Likewise. 15819 * reload1.c (count_pseudo): Likewise. 15820 (count_spilled_pseudo): Likewise. 15821 (find_reg): Likewise. 15822 (clear_reload_reg_in_use): Likewise. 15823 (free_for_value_p): Likewise. 15824 (allocate_reload_reg): Likewise. 15825 (choose_reload_regs): Likewise. 15826 (reload_adjust_reg_for_temp): Likewise. 15827 (emit_reload_insns): Likewise. 15828 (delete_output_reload): Likewise. 15829 * rtlanal.c (subreg_get_info): Likewise. 15830 * sched-deps.c (sched_analyze_reg): Likewise. 15831 * sel-sched.c (init_regs_for_mode): Likewise. 15832 (mark_unavailable_hard_regs): Likewise. 15833 (choose_best_reg_1): Likewise. 15834 (verify_target_availability): Likewise. 15835 * valtrack.c (dead_debug_insert_temp): Likewise. 15836 * var-tracking.c (track_loc_p): Likewise. 15837 (emit_note_insn_var_location): Likewise. 15838 * varasm.c (make_decl_rtl): Likewise. 15839 * reginfo.c (choose_hard_reg_mode): Likewise. 15840 (init_reg_modes_target): Refer directly to 15841 this_target_regs->x_hard_regno_nregs. 15842 158432017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15844 15845 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p 15846 instead of hard_regno_nregs. 15847 158482017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15849 15850 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use 15851 end_hard_regno instead of hard_regno_nregs. 15852 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. 15853 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise. 15854 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise. 15855 * ira-color.c (improve_allocation): Likewise. 15856 * lra-assigns.c (find_hard_regno_for_1): Likewise. 15857 * lra-lives.c (mark_regno_live): Likewise. 15858 (mark_regno_dead): Likewise. 15859 * lra-remat.c (operand_to_remat): Likewise. 15860 * lra.c (collect_non_operand_hard_regs): Likewise. 15861 * postreload.c (reload_combine_note_store): Likewise. 15862 (move2add_valid_value_p): Likewise. 15863 * reload.c (regno_clobbered_p): Likewise. 15864 158652017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15866 15867 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of 15868 hard_regno_nregs. 15869 * config/v850/v850.c (v850_reorg): Likewise. 15870 * reload.c (refers_to_regno_for_reload_p): Likewise. 15871 (find_equiv_reg): Likewise. 15872 * reload1.c (reload_reg_reaches_end_p): Likewise. 15873 158742017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15875 15876 * caller-save.c (add_used_regs): Use REG_NREGS instead of 15877 hard_regno_nregs. 15878 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise. 15879 * config/arm/arm.c (output_move_neon): Likewise. 15880 (arm_attr_length_move_neon): Likewise. 15881 (neon_split_vcombine): Likewise. 15882 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise. 15883 (c6x_mark_reg_written): Likewise. 15884 (c6x_dwarf_register_span): Likewise. 15885 * config/i386/i386.c (ix86_save_reg): Likewise. 15886 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise. 15887 (rws_access_reg): Likewise. 15888 * config/s390/s390.c (s390_call_saved_register_used): Likewise. 15889 * mode-switching.c (create_pre_exit): Likewise. 15890 * ree.c (combine_reaching_defs): Likewise. 15891 (add_removable_extension): Likewise. 15892 * regcprop.c (find_oldest_value_reg): Likewise. 15893 (copyprop_hardreg_forward_1): Likewise. 15894 * reload.c (reload_inner_reg_of_subreg): Likewise. 15895 (push_reload): Likewise. 15896 (combine_reloads): Likewise. 15897 (find_dummy_reload): Likewise. 15898 (reload_adjust_reg_for_mode): Likewise. 15899 * reload1.c (find_reload_regs): Likewise. 15900 (forget_old_reloads_1): Likewise. 15901 (reload_reg_free_for_value_p): Likewise. 15902 (reload_adjust_reg_for_temp): Likewise. 15903 (emit_reload_insns): Likewise. 15904 (delete_output_reload): Likewise. 15905 * sel-sched.c (choose_best_reg_1): Likewise. 15906 (choose_best_pseudo_reg): Likewise. 15907 159082017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15909 Alan Hayward <alan.hayward@arm.com> 15910 David Sherwood <david.sherwood@arm.com> 15911 15912 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete. 15913 * target.def (slow_unaligned_access): New hook. 15914 * targhooks.h (default_slow_unaligned_access): Declare. 15915 * targhooks.c (default_slow_unaligned_access): New function. 15916 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with... 15917 (TARGET_SLOW_UNALIGNED_ACCESS): ...this. 15918 * doc/tm.texi: Regenerate. 15919 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete. 15920 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete. 15921 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out 15922 definition. 15923 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete. 15924 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS): 15925 Redefine. 15926 (rs6000_slow_unaligned_access): New function. 15927 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. 15928 (expand_block_compare): Likewise. 15929 (expand_strn_compare): Likewise. 15930 (rs6000_rtx_costs): Likewise. 15931 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete. 15932 (riscv_slow_unaligned_access): Likewise. 15933 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to... 15934 (riscv_slow_unaligned_access_p): ...this and make static. 15935 (riscv_option_override): Update accordingly. 15936 (riscv_slow_unaligned_access): New function. 15937 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. 15938 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete. 15939 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. 15940 (rs6000_slow_unaligned_access): New function. 15941 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. 15942 (rs6000_rtx_costs): Likewise. 15943 * config/rs6000/rs6000-string.c (expand_block_compare) 15944 (expand_strn_compare): Use targetm.slow_unaligned_access instead 15945 of SLOW_UNALIGNED_ACCESS. 15946 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete. 15947 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete. 15948 * calls.c (expand_call): Use targetm.slow_unaligned_access instead 15949 of SLOW_UNALIGNED_ACCESS. 15950 * expmed.c (simple_mem_bitfield_p): Likewise. 15951 * expr.c (alignment_for_piecewise_move): Likewise. 15952 (emit_group_load_1): Likewise. 15953 (emit_group_store): Likewise. 15954 (copy_blkmode_from_reg): Likewise. 15955 (emit_push_insn): Likewise. 15956 (expand_assignment): Likewise. 15957 (store_field): Likewise. 15958 (expand_expr_real_1): Likewise. 15959 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. 15960 * lra-constraints.c (simplify_operand_subreg): Likewise. 15961 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. 15962 * gimple-ssa-store-merging.c: Likewise in block comment at start 15963 of file. 15964 * tree-ssa-strlen.c: Include target.h. 15965 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead 15966 of SLOW_UNALIGNED_ACCESS. 15967 * system.h (SLOW_UNALIGNED_ACCESS): Poison. 15968 159692017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 15970 15971 PR rtl-optimization/82185 15972 * expmed.c (emit_store_flag_int): Only test tem if it has been 15973 initialized. 15974 159752017-09-12 Richard Biener <rguenther@suse.de> 15976 15977 PR middle-end/82149 15978 * match.pd ((FTYPE) N CMP CST): Fix typo. 15979 159802017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com> 15981 15982 * config/mips/mips.c (mips_attribute_table): Add 'short_call' 15983 attribute. 15984 (mips_near_type_p): Add 'short_call' attribute as a synonym 15985 for 'near'. 15986 * doc/extend.texi (short_call): Document new function attribute. 15987 159882017-09-12 Jakub Jelinek <jakub@redhat.com> 15989 15990 PR target/82112 15991 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx () 15992 assertion check that in the condition. 15993 (get_atomic_generic_size): Likewise. Before testing if parameter 15994 has pointer type, if it has array type, call for C++ 15995 default_conversion to perform array-to-pointer conversion. 15996 159972017-09-12 Richard Biener <rguenther@suse.de> 15998 15999 * tree-vect-generic.c (expand_vector_operations_1): Do nothing 16000 for operations we cannot scalarize. 16001 160022017-09-12 Aldy Hernandez <aldyh@redhat.com> 16003 16004 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC 16005 vectors heap vectors. Clean up comments. 16006 Make visited_bbs a reference. 16007 (profitable_jump_thread_path): Make GC 16008 vectors heap vectors. Clean up comments. 16009 Misc cleanups. 16010 (convert_and_register_jump_thread_path): Make GC vectors heap 16011 vectors. 16012 (check_subpath_and_update_thread_path): Same. Clean up comments. 16013 Make visited_bbs a reference. 16014 (handle_phi): Abstract common code to to 16015 register_jump_thread_path_if_profitable. 16016 Rename VAR_BB to DEF_BB. 16017 Update comments. 16018 Make GC vectors heap vectors. 16019 Make visited_bbs a reference. 16020 (handle_assignment): Same. 16021 (register_jump_thread_path_if_profitable): New. 16022 (fsm_find_control_statement_thread_paths): Rename VAR_BB to 16023 DEF_BB. 16024 Make GC vectors heap vectors. Clean up comments. 16025 Make visited_bbs a reference. 16026 (find_jump_threads_backwards): Make visited_bbs live in the stack. 16027 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in 16028 comment. 16029 160302017-09-11 Max Filippov <jcmvbkbc@gmail.com> 16031 16032 PR target/82181 16033 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both 16034 words of E_DImode object are reachable by xtensa_uimm8x4 access. 16035 160362017-09-11 Vidya Praveen <vidyapraveen@arm.com> 16037 16038 Revert r251800 and r251799. 16039 160402017-09-11 Martin Jambor <mjambor@suse.cz> 16041 16042 PR hsa/82119 16043 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in 16044 arguments in advance. 16045 * hsa-regalloc.c (naive_process_phi): New parameter predecessors, 16046 use it to find predecessor edges. 16047 (naive_outof_ssa): Collect vector of predecessors. 16048 160492017-09-08 Jason Merrill <jason@redhat.com> 16050 16051 PR c++/70029 - ICE with ref-qualifier and -flto 16052 * langhooks.h (struct lang_hooks_for_types): Add 16053 copy_lang_qualifiers. 16054 * attribs.c (build_type_attribute_qual_variant): Use it. 16055 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to 16056 NULL. 16057 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. 16058 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check. 16059 160602017-09-08 Eric Botcazou <ebotcazou@adacore.com> 16061 16062 PR target/81988 16063 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32. 16064 (*mulsi3_sp64): New instruction. 16065 (mulsi3): New expander. 16066 160672017-09-08 Uros Bizjak <ubizjak@gmail.com> 16068 16069 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove. 16070 160712017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 16072 16073 * sancov.c: Include memmodel.h. 16074 160752017-09-07 Eric Botcazou <ebotcazou@adacore.com> 16076 16077 PR target/80897 16078 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too 16079 large offsets. 16080 160812017-09-07 Carl Love <cel@us.ibm.com> 16082 16083 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to 16084 the sldi instruction. 16085 160862017-09-07 David Edelsohn <dje.gcc@gmail.com> 16087 16088 * sancov.c: Include tm_p.h. 16089 160902017-09-07 Jakub Jelinek <jakub@redhat.com> 16091 16092 PR target/81979 16093 * output.h (switch_to_other_text_partition): New declaration. 16094 * varasm.c (switch_to_other_text_partition): New function. 16095 * config/rs6000/rs6000.c (uses_TOC): Return 2 if 16096 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn. 16097 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch 16098 to the other text partition before emitting LCL label and switch back 16099 after emitting the word after it. 16100 161012017-09-07 Richard Biener <rguenther@suse.de> 16102 16103 * passes.def (pass_split_crit_edges): Remove instance before PRE. 16104 * tree-ssa-pre.c (pass_pre::execute): Instead manually split 16105 critical edges here, after loop init. 16106 (pass_data_pre): Remove PROP_no_crit_edges flags. 16107 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize 16108 for valueization of call args to avoid leaking VN_TOP. 16109 (visit_use): Assert we do not visit default defs. 16110 (init_scc_vn): Use build_decl for VN_TOP to make name nicer. 16111 Use error_mark_node to more easily detect leaking VN_TOP. 16112 All default-defs are varying, not VN_TOP. Mark them visited. 16113 (run_scc_vn): Make code match comment. 16114 161152017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com> 16116 16117 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete 16118 OPTION_MASK_FLOAT128_KEYWORD. 16119 (POWERPC_MASKS): Likewise. 16120 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete 16121 support for the -mfloat128-type option, and make -mfloat128 16122 default on PowerPC Linux systems. Define or undefine 16123 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options. 16124 Define __float128 to be __ieee128 if IEEE 128-bit support is 16125 enabled, or undefine it. 16126 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here. 16127 Delete defining __FLOAT128_TYPE__. 16128 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the 16129 -mfloat128-type option and make -mfloat128 default on PowerPC 16130 Linux systems. 16131 (TARGET_FLOAT128_TYPE): Likewise. 16132 (-mfloat128-type): Likewise. 16133 * config/rs6000/rs6000.c (rs6000_option_override_internal): 16134 Delete the -mfloat128-type option and make -mfloat128 default on 16135 PowerPC Linux systems. Always use __ieee128 to be the keyword for 16136 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE 16137 128-bit floating point is enabled. Change tests from using 16138 -mfloat128-type to -mfloat128. 16139 (rs6000_mangle_type): Use the correct mangling for the __float128 16140 type even if normal long double is restricted to 64-bits. 16141 (floatn_mode): Enable the _Float128 type by default on VSX Linux 16142 systems. 16143 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete. 16144 (MASK_FLOAT128_KEYWORD): Define new shortcut macro. 16145 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not 16146 -mfloat128-type. 16147 * doc/invoke.texi (RS/6000 and PowerPC Options): Update 16148 documentation for -mfloat128. 16149 161502017-09-06 Olivier Hainque <hainque@adacore.com> 16151 16152 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe. 16153 161542017-09-06 Wish Wu <wishwu007@gmail.com> 16155 Jakub Jelinek <jakub@redhat.com> 16156 16157 * asan.c (initialize_sanitizer_builtins): Add 16158 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16, 16159 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64, 16160 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and 16161 BT_FN_VOID_UINT64_PTR variables. 16162 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type. 16163 (BT_FN_VOID_UINT16_UINT16): Likewise. 16164 (BT_FN_VOID_UINT32_UINT32): Likewise. 16165 (BT_FN_VOID_FLOAT_FLOAT): Likewise. 16166 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise. 16167 (BT_FN_VOID_UINT64_PTR): Likewise. 16168 * common.opt (flag_sanitize_coverage): New variable. 16169 (fsanitize-coverage=trace-pc): Remove. 16170 (fsanitize-coverage=): Add. 16171 * flag-types.h (enum sanitize_coverage_code): New enum. 16172 * fold-const.c (fold_range_test): Disable non-short-circuit 16173 optimization if flag_sanitize_coverage. 16174 (fold_truth_andor): Likewise. 16175 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. 16176 * opts.c (COVERAGE_SANITIZER_OPT): Define. 16177 (coverage_sanitizer_opts): New array. 16178 (get_closest_sanitizer_option): Add OPTS argument, handle also 16179 OPT_fsanitize_coverage_. 16180 (parse_sanitizer_options): Adjusted to also handle 16181 OPT_fsanitize_coverage_. 16182 (common_handle_option): Add OPT_fsanitize_coverage_. 16183 * sancov.c (instrument_comparison, instrument_switch): New function. 16184 (sancov_pass): Add trace-cmp support. 16185 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1, 16186 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4, 16187 BUILT_IN_SANITIZER_COV_TRACE_CMP8, 16188 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1, 16189 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2, 16190 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4, 16191 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8, 16192 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD, 16193 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins. 16194 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp. 16195 161962017-09-06 Richard Earnshaw <rearnsha@arm.com> 16197 16198 * config/arm/parsecpu.awk (fatal): Note that we've encountered an 16199 error. Only quit immediately if parsing is complete. 16200 (BEGIN): Initialize fatal_err and parse_done. 16201 (begin fpu, end fpu): Check number of arguments. 16202 (begin arch, end arch): Likewise. 16203 (begin cpu, end cpu): Likewise. 16204 (cname, tune for, tune flags, architecture, fpu, option): Likewise. 16205 (optalias): Likewise. 16206 162072017-09-06 Richard Earnshaw <rearnsha@arm.com> 16208 16209 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. 16210 * config/arm/arm-isa.h: Delete. Move definitions to ... 16211 * arm-cpus.in: ... here. Use new feature and fgroup values. 16212 * config/arm/arm.c (arm_option_override): Use lower case for feature 16213 bit names. 16214 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. 16215 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. 16216 * config/arm/parsecpu.awk (END): Add new command 'isa'. 16217 (isa_pfx): Delete. 16218 (print_isa_bits_for): New function. 16219 (gen_isa): New function. 16220 (gen_comm_data): Use print_isa_bits_for. 16221 (define feature): New keyword. 16222 (define fgroup): New keyword. 16223 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h 16224 (arm-isa.h): Add rule to generate file. 16225 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower 16226 case for feature bit names. 16227 162282017-09-06 Richard Biener <rguenther@suse.de> 16229 16230 * tree-ssa-pre.c (NECESSARY): Remove. 16231 (create_expression_by_pieces): Do not touch pass-local flags. 16232 (insert_into_preds_of_block): Likewise. 16233 (do_pre_regular_insertion): Likewise. 16234 (eliminate_insert): Likewise. 16235 (eliminate_dom_walker::before_dom_children): Likewise. 16236 (fini_eliminate): Do not look at inserted_exprs. 16237 (mark_operand_necessary): Remove. 16238 (remove_dead_inserted_code): Replace with simple work-list 16239 algorithm based on inserted_exprs and SSA uses. 16240 (pass_pre::execute): Re-order fini_eliminate and 16241 remove_dead_inserted_code. 16242 162432017-09-06 Olivier Hainque <hainque@adacore.com> 16244 16245 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition 16246 for VxWorks 7. Adjust surrounding comments. 16247 162482017-09-06 Richard Biener <rguenther@suse.de> 16249 16250 * gimple-ssa-strength-reduction.c 16251 (find_candidates_dom_walker::before_dom_children): Also allow 16252 pointer types. 16253 162542017-09-06 Richard Biener <rguenther@suse.de> 16255 16256 PR tree-optimization/82108 16257 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment 16258 for gap in the non-permutation SLP case. 16259 162602017-09-06 Martin Jambor <mjambor@suse.cz> 16261 16262 PR tree-optimization/82078 16263 * tree-sra.c (sort_and_splice_var_accesses): Move call to 16264 add_access_to_work_queue... 16265 (build_accesses_from_assign): ...here. 16266 (propagate_all_subaccesses): Make sure racc is the group 16267 representative, if there is one. 16268 162692017-09-06 Jakub Jelinek <jakub@redhat.com> 16270 16271 PR middle-end/82095 16272 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with 16273 NULL DECL_INITIAL. 16274 162752017-09-06 Richard Biener <rguenther@suse.de> 16276 16277 * gimple-ssa-strength-reduction.c 16278 (find_candidates_dom_walker::before_doom_children): Use a 16279 type and not a mode check. 16280 162812017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de> 16282 16283 PR target/77308 16284 * config/arm/predicates.md (arm_general_adddi_operand): Create new 16285 non-vfp predicate. 16286 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates. 16287 162882017-09-05 Jeff Law <law@redhat.com> 16289 16290 PR tree-optimization/64910 16291 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to 16292 cases where we have 3 or more operands. 16293 162942017-09-05 Jakub Jelinek <jakub@redhat.com> 16295 16296 PR middle-end/81768 16297 * omp-low.c (lower_omp_for): Recompute tree invariant if 16298 gimple_omp_for_initial/final is ADDR_EXPR. 16299 16300 PR middle-end/81768 16301 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR 16302 into gimple val before gimplification fo the COND_EXPR. 16303 163042017-09-05 Aldy Hernandez <aldyh@redhat.com> 16305 16306 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused 16307 REGION_COPY argument. 16308 (thread_through_all_blocks): Remove unused argument to 16309 duplicate_thread_path. 16310 163112017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16312 Alan Hayward <alan.hayward@arm.com> 16313 David Sherwood <david.sherwood@arm.com> 16314 16315 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): 16316 Take a scalar_mode rather than a machine_mode. 16317 (aarch64_operands_adjust_ok_for_ldpstp): Likewise. 16318 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise. 16319 (aarch64_operands_adjust_ok_for_ldpstp): Likewise. 16320 (aarch64_gen_adjusted_ldpstp): Likewise. 16321 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode. 16322 163232017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16324 Alan Hayward <alan.hayward@arm.com> 16325 David Sherwood <david.sherwood@arm.com> 16326 16327 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract): 16328 Take a scalar_int_mode instead of a machine_mode. 16329 (aarch64_mask_and_shift_for_ubfiz_p): Likewise. 16330 (aarch64_output_scalar_simd_mov_immediate): Likewise. 16331 (aarch64_simd_scalar_immediate_valid_for_move): Likewise. 16332 (aarch64_simd_attr_length_rglist): Delete. 16333 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take 16334 a scalar_int_mode instead of a machine_mode. 16335 (aarch64_add_offset): Likewise. 16336 (aarch64_internal_mov_immediate): Likewise 16337 (aarch64_add_constant_internal): Likewise. 16338 (aarch64_add_constant): Likewise. 16339 (aarch64_movw_imm): Likewise. 16340 (aarch64_rtx_arith_op_extract_p): Likewise. 16341 (aarch64_mask_and_shift_for_ubfiz_p): Likewise. 16342 (aarch64_simd_scalar_immediate_valid_for_move): Likewise. 16343 Remove assert that the mode isn't a vector. 16344 (aarch64_output_scalar_simd_mov_immediate): Likewise. 16345 (aarch64_expand_mov_immediate): Update calls after above changes. 16346 (aarch64_output_casesi): Use as_a <scalar_int_mode>. 16347 (aarch64_and_bitmask_imm): Check for scalar integer modes. 16348 (aarch64_move_imm): Likewise. 16349 (aarch64_can_const_movi_rtx_p): Likewise. 16350 (aarch64_strip_extend): Likewise. 16351 (aarch64_extr_rtx_p): Likewise. 16352 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of 16353 a CONST_INT when the mode parameter is VOIDmode. 16354 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary. 16355 163562017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16357 16358 * machmode.h (bitwise_mode_for_mode): Return opt_mode. 16359 * stor-layout.c (bitwise_mode_for_mode): Likewise. 16360 (bitwise_type_for_mode): Update accordingly. 16361 163622017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16363 16364 * stor-layout.h (mode_for_size_tree): Return an opt_mode. 16365 * stor-layout.c (mode_for_size_tree): Likewise. 16366 (mode_for_array): Update accordingly. 16367 (layout_decl): Likewise. 16368 (compute_record_mode): Likewise. Only set the mode once. 16369 163702017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16371 16372 * target.def (get_mask_mode): Change return type to opt_mode. 16373 Expand commentary. 16374 * doc/tm.texi: Regenerate. 16375 * targhooks.h (default_get_mask_mode): Return an opt_mode. 16376 * targhooks.c (default_get_mask_mode): Likewise. 16377 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 16378 * optabs-query.c (can_vec_mask_load_store_p): Update use of 16379 targetm.get_mask_mode. 16380 * tree.c (build_truth_vector_type): Likewise. 16381 163822017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16383 16384 * machmode.h (mode_for_vector): Return an opt_mode. 16385 * stor-layout.c (mode_for_vector): Likewise. 16386 (mode_for_int_vector): Update accordingly. 16387 (layout_type): Likewise. 16388 * config/i386/i386.c (emit_memmov): Likewise. 16389 (ix86_expand_set_or_movmem): Likewise. 16390 (ix86_expand_vector_init): Likewise. 16391 (ix86_get_mask_mode): Likewise. 16392 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1): 16393 Likewise. 16394 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise. 16395 * expmed.c (extract_bit_field_1): Likewise. 16396 * expr.c (expand_expr_real_2): Likewise. 16397 * optabs-query.c (can_vec_perm_p): Likewise. 16398 (can_vec_mask_load_store_p): Likewise. 16399 * optabs.c (expand_vec_perm): Likewise. 16400 * targhooks.c (default_get_mask_mode): Likewise. 16401 * tree-vect-stmts.c (vectorizable_store): Likewise. 16402 (vectorizable_load): Likewise. 16403 (get_vectype_for_scalar_type_and_size): Likewise. 16404 164052017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16406 16407 * machmode.h (mode_for_int_vector): New function. 16408 * stor-layout.c (mode_for_int_vector): Likewise. 16409 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it. 16410 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise. 16411 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. 16412 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. 16413 (s390_expand_vcond): Likewise. 16414 164152017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16416 16417 * machmode.h (opt_machine_mode): New type. 16418 (opt_mode<T>): Allow construction from anything that can be 16419 converted to a T. 16420 (is_a, as_a, dyn_cast): Add overloads for opt_mode. 16421 (mode_for_size): Return an opt_machine_mode. 16422 * stor-layout.c (mode_for_size): Likewise. 16423 (mode_for_size_tree): Update call accordingly. 16424 (bitwise_mode_for_mode): Likewise. 16425 (make_fract_type): Likewise. 16426 (make_accum_type): Likewise. 16427 * caller-save.c (replace_reg_with_saved_mem): Update call 16428 accordingly. 16429 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. 16430 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. 16431 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. 16432 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. 16433 * expmed.c (extract_bit_field_1): Likewise. 16434 * reload.c (get_secondary_mem): Likewise. 16435 * varasm.c (assemble_integer): Likewise. 16436 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move 16437 early-out. 16438 164392017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16440 16441 * machmode.h (decimal_float_mode_for_size): New function. 16442 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size. 16443 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. 16444 (REAL_VALUE_TO_TARGET_SINGLE): Likewise. 16445 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size. 16446 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise. 16447 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise. 16448 164492017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16450 16451 * builtins.c (expand_builtin_powi): Use int_mode_for_size. 16452 (get_builtin_sync_mode): Likewise. 16453 (expand_ifn_atomic_compare_exchange): Likewise. 16454 (expand_builtin_atomic_clear): Likewise. 16455 (expand_builtin_atomic_test_and_set): Likewise. 16456 (fold_builtin_atomic_always_lock_free): Likewise. 16457 * calls.c (compute_argument_addresses): Likewise. 16458 (emit_library_call_value_1): Likewise. 16459 (store_one_arg): Likewise. 16460 * combine.c (combine_instructions): Likewise. 16461 * config/aarch64/aarch64.c (aarch64_function_value): Likewise. 16462 * config/arm/arm.c (arm_function_value): Likewise. 16463 (aapcs_allocate_return_reg): Likewise. 16464 * config/c6x/c6x.c (c6x_expand_movmem): Likewise. 16465 * config/i386/i386.c (construct_container): Likewise. 16466 (ix86_gimplify_va_arg): Likewise. 16467 (ix86_expand_sse_cmp): Likewise. 16468 (emit_memmov): Likewise. 16469 (emit_memset): Likewise. 16470 (expand_small_movmem_or_setmem): Likewise. 16471 (ix86_expand_pextr): Likewise. 16472 (ix86_expand_pinsr): Likewise. 16473 * config/lm32/lm32.c (lm32_block_move_inline): Likewise. 16474 * config/microblaze/microblaze.c (microblaze_block_move_straight): 16475 Likewise. 16476 * config/mips/mips.c (mips_function_value_1) Likewise. 16477 (mips_block_move_straight): Likewise. 16478 (mips_expand_ins_as_unaligned_store): Likewise. 16479 * config/powerpcspe/powerpcspe.c 16480 (rs6000_darwin64_record_arg_advance_flush): Likewise. 16481 (rs6000_darwin64_record_arg_flush): Likewise. 16482 * config/rs6000/rs6000.c 16483 (rs6000_darwin64_record_arg_advance_flush): Likewise. 16484 (rs6000_darwin64_record_arg_flush): Likewise. 16485 * config/sparc/sparc.c (sparc_function_arg_1): Likewise. 16486 (sparc_function_value_1): Likewise. 16487 * config/spu/spu.c (adjust_operand): Likewise. 16488 (spu_emit_branch_or_set): Likewise. 16489 (arith_immediate_p): Likewise. 16490 * emit-rtl.c (gen_lowpart_common): Likewise. 16491 * expr.c (expand_expr_real_1): Likewise. 16492 * function.c (assign_parm_setup_block): Likewise. 16493 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. 16494 * reload1.c (alter_reg): Likewise. 16495 * stor-layout.c (mode_for_vector): Likewise. 16496 (layout_type): Likewise. 16497 164982017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 16499 16500 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode. 16501 (spu_convert_move): Likewise. 16502 * lower-subreg.c (resolve_simple_move): Likewise. 16503 165042017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16505 16506 PR target/81833 16507 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a 16508 define_insn to a define_expand. 16509 (altivec_vsum2sws_direct): New define_insn. 16510 (altivec_vsumsws): Convert from a define_insn to a define_expand. 16511 165122017-09-05 Wilco Dijkstra <wdijkstr@arm.com> 16513 16514 * config/arm/arm.c (arm_option_params_internal): Improve setting of 16515 max_insns_skipped. 16516 165172017-09-05 H.J. Lu <hongjiu.lu@intel.com> 16518 16519 PR target/59501 16520 PR target/81624 16521 PR target/81769 16522 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't 16523 realign stack if stack alignment needed is less than incoming 16524 stack boundary. 16525 165262017-09-05 Marek Polacek <polacek@redhat.com> 16527 16528 PR sanitizer/82072 16529 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan 16530 check earlier. 16531 165322017-09-05 Wilco Dijkstra <wdijkstr@arm.com> 16533 16534 * explow.c (get_dynamic_stack_size): Improve dynamic alignment. 16535 165362017-09-05 Richard Biener <rguenther@suse.de> 16537 16538 PR tree-optimization/82084 16539 * fold-const.c (can_native_encode_string_p): Handle wide characters. 16540 165412017-09-05 Richard Biener <rguenther@suse.de> 16542 16543 PR tree-optimization/82102 16544 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL. 16545 165462017-09-05 Martin Liska <mliska@suse.cz> 16547 16548 PR tree-optimization/82032 16549 * tree-cfg.c (generate_range_test): New function. 16550 * tree-cfg.h (generate_range_test): Declared here. 16551 * tree-cfgcleanup.c (convert_single_case_switch): New function. 16552 (cleanup_control_expr_graph): Use it. 16553 * tree-switch-conversion.c (try_switch_expansion): Remove 16554 assert. 16555 (emit_case_nodes): Use generate_range_test. 16556 165572017-09-04 Uros Bizjak <ubizjak@gmail.com> 16558 16559 PR target/82098 16560 * config/i386/i386.md (*<btsc><mode>_mask): Add 16561 TARGET_USE_BT to insn constraint. 16562 (*btr<mode>_mask): Ditto. 16563 165642017-09-04 Wilco Dijkstra <wdijkstr@arm.com> 16565 16566 * config/arm/arm.c (arm_legitimate_index_p): Add comment. 16567 (thumb2_legitimate_index_p): Use correct range for DI/DF mode. 16568 165692017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 16570 16571 PR target/77308 16572 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for 16573 TARGET_NEON and TARGET_IWMMXT. 16574 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for 16575 TARGET_NEON and TARGET_IWMMXT. 16576 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here. 16577 165782017-09-04 Uros Bizjak <ubizjak@gmail.com> 16579 16580 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype. 16581 (ix86_rewrite_tls_address): Ditto. 16582 * config/i386/i386.c (ix86_tls_address_pattern_p) New function. 16583 (ix86_rewrite_tls_address_1): Ditto. 16584 (ix86_rewrite_tls_address): Ditto. 16585 * config/i386/predicates.md (tls_address_pattern): New predicate. 16586 * config/i386/i386.md (TLS address splitter): New splitter. 16587 165882017-09-04 Richard Biener <rguenther@suse.de> 16589 16590 PR tree-optimization/82084 16591 * fold-const.h (can_native_encode_string_p): Declare. 16592 * fold-const.c (can_native_encode_string_p): Factor out from ... 16593 (native_encode_string): ... here. 16594 * tree-vect-stmts.c (vectorizable_store): Call it to avoid 16595 vectorizing stores from constants we later cannot handle. 16596 165972017-09-04 Marek Polacek <polacek@redhat.com> 16598 16599 PR c/81783 16600 * doc/invoke.texi: Update -Wtautological-compare documentation. 16601 166022017-09-04 Jeff Law <law@redhat.com> 16603 16604 PR tree-optimization/64910 16605 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops, 16606 swap the first and last operand if the last is a constant. 16607 166082017-09-04 Marek Polacek <polacek@redhat.com> 16609 16610 PR sanitizer/82072 16611 * convert.c (do_narrow): When sanitizing signed integer overflows, 16612 bail out for signed types. 16613 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise. 16614 166152017-09-04 Richard Biener <rguenther@suse.de> 16616 16617 PR tree-optimization/82060 16618 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): 16619 Move devirtualization after stmt folding and before EH/AB/noreturn 16620 cleanup to get the stmt refs canonicalized. Use a bool instead 16621 of gimple_modified_p since that doesn't work for NOPs. Schedule 16622 NOPs generated by folding for removal. 16623 166242017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 16625 Alan Hayward <alan.hayward@arm.com> 16626 David Sherwood <david.sherwood@arm.com> 16627 16628 * coretypes.h (pad_direction): New enum. 16629 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete. 16630 (FUNCTION_ARG_PADDING): Likewise. 16631 * target.def (function_arg_padding): New hook. 16632 * targhooks.h (default_function_arg_padding): Declare. 16633 * targhooks.c (default_function_arg_padding): New function. 16634 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with... 16635 (TARGET_FUNCTION_ARG_PADDING): ...this. 16636 * doc/tm.texi: Regenerate. 16637 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction 16638 instead of direction. 16639 (compute_argument_addresses): Likewise. 16640 (load_register_parameters): Likewise. 16641 (emit_library_call_value_1): Likewise. 16642 (store_one_arg): Use targetm.calls.function_arg_padding instead 16643 of FUNCTION_ARG_PADDING. 16644 (must_pass_in_stack_var_size_or_pad): Likewise. 16645 * expr.c (emit_group_load_1): Use pad_direction instead of direction. 16646 (emit_group_store): Likewise. 16647 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding 16648 instead of FUNCTION_ARG_PADDING. 16649 (emit_push_insn): Likewise, and propagate enum change throughout 16650 function. 16651 * function.h (direction): Delete. 16652 (locate_and_pad_arg_data::where_pad): Use pad_direction instead 16653 of direction. 16654 * function.c (assign_parm_find_stack_rtl): Likewise. 16655 (assign_parm_setup_block_p): Likewise. 16656 (assign_parm_setup_block): Likewise. 16657 (gimplify_parameters): Likewise. 16658 (locate_and_pad_parm): Use targetm.calls.function_arg_padding 16659 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout 16660 function. 16661 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete. 16662 (BLOCK_REG_PADDING): Use pad_direction instead of direction. 16663 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete. 16664 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with... 16665 (aarch64_function_arg_padding): ...this new function. 16666 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction. 16667 (TARGET_FUNCTION_ARG_PADDING): Redefine. 16668 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete. 16669 (BLOCK_REG_PADDING): Use pad_direction instead of direction. 16670 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete. 16671 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16672 (arm_pad_arg_upward): Replace with... 16673 (arm_function_arg_padding): ...this new function. 16674 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead 16675 of direction. 16676 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete. 16677 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete. 16678 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16679 (ia64_hpux_function_arg_padding): Replace with... 16680 (ia64_function_arg_padding): ...this new function. Use pad_direction 16681 instead of direction. Check for TARGET_HPUX. 16682 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete. 16683 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16684 (iq2000_function_arg_padding): New function. 16685 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete. 16686 * config/mips/mips.c (mips_pad_arg_upward): Replace with... 16687 (mips_function_arg_padding): ...this new function. 16688 (mips_pad_reg_upward): Update accordingly. 16689 (TARGET_FUNCTION_ARG_PADDING): Redefine. 16690 * config/mips/mips.h (PAD_VARARGS_DOWN): Use 16691 targetm.calls.function_arg_padding. 16692 (FUNCTION_ARG_PADDING): Delete. 16693 (BLOCK_REG_PADDING): Use pad_direction instead of direction. 16694 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete. 16695 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. 16696 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete. 16697 (nios2_block_reg_padding): Return pad_direction instead of direction. 16698 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction 16699 instead of direction. 16700 (nios2_function_arg_padding): Likewise. Make static. 16701 (TARGET_FUNCTION_ARG_PADDING): Redefine. 16702 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete. 16703 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding. 16704 * config/pa/pa-protos.h (pa_function_arg_padding): Delete. 16705 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16706 (pa_function_arg_padding): Make static. Return pad_direction instead 16707 of direction. 16708 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete. 16709 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. 16710 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction 16711 instead of direction. Use targetm.calls.function_arg_padding. 16712 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise. 16713 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise. 16714 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise. 16715 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete. 16716 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING): 16717 Redefine. 16718 (function_arg_padding): Rename to... 16719 (rs6000_function_arg_padding): ...this. Make static. Return 16720 pad_direction instead of direction. 16721 (rs6000_return_in_msb): Use rs6000_function_arg_padding. 16722 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete. 16723 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. 16724 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction 16725 instead of direction. Use targetm.calls.function_arg_padding. 16726 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise. 16727 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise. 16728 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise. 16729 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete. 16730 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16731 (function_arg_padding): Rename to... 16732 (rs6000_function_arg_padding): ...this. Make static. Return 16733 pad_direction instead of direction. 16734 (rs6000_return_in_msb): Use rs6000_function_arg_padding. 16735 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete. 16736 * config/s390/s390.c (s390_function_arg_padding): New function. 16737 (TARGET_FUNCTION_ARG_PADDING): Redefine. 16738 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete. 16739 * config/sparc/sparc-protos.h (function_arg_padding): Delete. 16740 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine. 16741 (function_arg_padding): Rename to... 16742 (sparc_function_arg_padding): ...this. Make static. Return 16743 pad_direction instead of direction. 16744 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete. 16745 * config/spu/spu.c (spu_function_arg_padding): New function. 16746 (TARGET_FUNCTION_ARG_PADDING): Redefine. 16747 * system.h (FUNCTION_ARG_PADDING): Poison. 16748 167492017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 16750 Alan Hayward <alan.hayward@arm.com> 16751 David Sherwood <david.sherwood@arm.com> 16752 16753 * target.def (modes_tieable_p): New hook. 16754 * doc/tm.texi (MODES_TIEABLE_P): Replace with... 16755 (TARGET_MODES_TIEABLE_P): ...this. 16756 * doc/tm.texi.in: Regenerate. 16757 * hooks.h (hook_bool_mode_mode_true): Declare. 16758 * hooks.c (hook_bool_mode_mode_true): New function. 16759 * combine.c (subst): Use targetm.modes_tieable_p instead of 16760 MODES_TIEABLE_P. 16761 * dse.c (find_shift_sequence): Likewise. 16762 * expmed.c (extract_low_bits): Likewise. 16763 * lower-subreg.c: Include target.h. 16764 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of 16765 MODES_TIEABLE_P. 16766 * rtlanal.c (rtx_cost): Likewise. 16767 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete. 16768 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete. 16769 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static. 16770 (TARGET_MODES_TIEABLE_P): Redefine. 16771 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete. 16772 * config/alpha/alpha.c (alpha_modes_tieable_p): New function. 16773 (TARGET_MODES_TIEABLE_P): Redefine. 16774 * config/arc/arc.h (MODES_TIEABLE_P): Delete. 16775 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine. 16776 (arc_modes_tieable_p): New function. 16777 * config/arm/arm.h (MODES_TIEABLE_P): Delete. 16778 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete. 16779 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine. 16780 (arm_modes_tieable_p): Make static. 16781 * config/avr/avr.h (MODES_TIEABLE_P): Delete. 16782 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete. 16783 * config/bfin/bfin.c (bfin_modes_tieable_p): New function. 16784 (TARGET_MODES_TIEABLE_P): Redefine. 16785 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete. 16786 * config/c6x/c6x.c (c6x_modes_tieable_p): New function. 16787 (TARGET_MODES_TIEABLE_P): Redefine. 16788 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete. 16789 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine. 16790 (cr16_modes_tieable_p): New function. 16791 * config/cris/cris.h (MODES_TIEABLE_P): Delete. 16792 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete. 16793 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete. 16794 (TRULY_NOOP_TRUNCATION): Update comment. 16795 * config/frv/frv.h (MODES_TIEABLE_P): Delete. 16796 (TRULY_NOOP_TRUNCATION): Update comment. 16797 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine. 16798 (frv_modes_tieable_p): New function. 16799 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete. 16800 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete. 16801 * config/h8300/h8300.c (h8300_modes_tieable_p): New function. 16802 (TARGET_MODES_TIEABLE_P): Redefine. 16803 * config/i386/i386.h (MODES_TIEABLE_P): Delete. 16804 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete. 16805 * config/i386/i386.c (ix86_modes_tieable_p): Make static. 16806 (TARGET_MODES_TIEABLE_P): Redefine. 16807 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete. 16808 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine. 16809 (ia64_modes_tieable_p): New function. 16810 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete. 16811 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine. 16812 (iq2000_modes_tieable_p): New function. 16813 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete. 16814 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine. 16815 (lm32_modes_tieable_p): New function. 16816 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete. 16817 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete. 16818 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static. 16819 (TARGET_MODES_TIEABLE_P): Redefine. 16820 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete. 16821 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine. 16822 (m32r_modes_tieable_p): New function. 16823 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete. 16824 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine. 16825 (m68k_modes_tieable_p): New function. 16826 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete. 16827 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine. 16828 (mcore_modes_tieable_p): New function. 16829 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete. 16830 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New 16831 function. 16832 (TARGET_MODES_TIEABLE_P): Redefine. 16833 * config/mips/mips.h (MODES_TIEABLE_P): Delete. 16834 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete. 16835 * config/mips/mips.c (mips_modes_tieable_p): Make static. 16836 (TARGET_MODES_TIEABLE_P): Redefine. 16837 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete. 16838 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete. 16839 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete. 16840 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to... 16841 (mn10300_modes_tieable_p): ...this and make static. 16842 (TARGET_MODES_TIEABLE_P): Redefine. 16843 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete. 16844 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete. 16845 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete. 16846 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine. 16847 (msp430_modes_tieable_p): Make static. 16848 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete. 16849 * config/nds32/nds32.c (nds32_modes_tieable_p): New function. 16850 (TARGET_MODES_TIEABLE_P): Redefine. 16851 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete. 16852 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete. 16853 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function. 16854 (TARGET_MODES_TIEABLE_P): Redefine. 16855 * config/pa/pa.h (MODES_TIEABLE_P): Delete. 16856 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete. 16857 * config/pa/pa.c (pa_modes_tieable_p): Make static. 16858 (TARGET_MODES_TIEABLE_P): Redefine. 16859 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete. 16860 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine. 16861 (pdp11_modes_tieable_p): New function. 16862 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete. 16863 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine. 16864 (rs6000_modes_tieable_p): New function. 16865 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. 16866 * config/powerpcspe/powerpcspe.md: Update comment. 16867 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete. 16868 * config/riscv/riscv.c (riscv_modes_tieable_p): New function. 16869 (TARGET_MODES_TIEABLE_P): Redefine. 16870 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete. 16871 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine. 16872 (rl78_modes_tieable_p): New function. 16873 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete. 16874 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine. 16875 (rs6000_modes_tieable_p): New function. 16876 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. 16877 * config/rs6000/rs6000.md: Update comment. 16878 * config/rx/rx.h (MODES_TIEABLE_P): Delete. 16879 * config/rx/rx.c (rx_modes_tieable_p): New function. 16880 (TARGET_MODES_TIEABLE_P): Redefine. 16881 * config/s390/s390.h (MODES_TIEABLE_P): Delete. 16882 * config/s390/s390.c (s390_modes_tieable_p): New function. 16883 (TARGET_MODES_TIEABLE_P): Redefine. 16884 * config/sh/sh.h (MODES_TIEABLE_P): Delete. 16885 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine. 16886 (sh_modes_tieable_p): New function. 16887 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete. 16888 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete. 16889 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine. 16890 (sparc_modes_tieable_p): Make static. 16891 * config/spu/spu.h (MODES_TIEABLE_P): Delete. 16892 * config/spu/spu.c (spu_modes_tieable_p): New function. 16893 (TARGET_MODES_TIEABLE_P): Redefine. 16894 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete. 16895 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function. 16896 (TARGET_MODES_TIEABLE_P): Redefine. 16897 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete. 16898 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete. 16899 * config/v850/v850.h (MODES_TIEABLE_P): Delete. 16900 * config/v850/v850.c (v850_modes_tieable_p): New function. 16901 (TARGET_MODES_TIEABLE_P): Redefine. 16902 * config/vax/vax.h (MODES_TIEABLE_P): Delete. 16903 * config/visium/visium.h (MODES_TIEABLE_P): Delete. 16904 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine. 16905 (visium_modes_tieable_p): New function. 16906 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete. 16907 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine. 16908 (xtensa_modes_tieable_p): New function. 16909 * system.h (MODES_TIEABLE_P): Poison. 16910 169112017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 16912 Alan Hayward <alan.hayward@arm.com> 16913 David Sherwood <david.sherwood@arm.com> 16914 16915 * target.def (hard_regno_mode_ok): New hook. 16916 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with... 16917 (TARGET_HARD_REGNO_MODE_OK): ...this. 16918 * doc/tm.texi.in: Regenerate. 16919 * hooks.h (hook_bool_uint_mode_true): Declare. 16920 * hooks.c (hook_bool_uint_mode_true): New function. 16921 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of 16922 HARD_REGNO_MODE_OK. 16923 * genpreds.c (write_insn_preds_c): Add an include of target.h. 16924 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok 16925 instead of HARD_REGNO_MODE_OK. 16926 * caller-save.c: Include target.h. 16927 (reg_save_code): Use targetm.hard_regno_mode_ok instead of 16928 HARD_REGNO_MODE_OK. 16929 * combine.c (can_combine_p): Likewise. 16930 (combinable_i3pat): Likewise. 16931 (can_change_dest_mode): Likewise. 16932 * expr.c (init_expr_target): Likewise. 16933 (convert_move): Likewise. 16934 (convert_modes): Likewise. 16935 * ira.c (setup_prohibited_class_mode_regs): Likewise. 16936 (setup_prohibited_mode_move_regs): Likewise. 16937 * ira.h (target_ira): Likewise. 16938 * lra-assigns.c (find_hard_regno_for_1): Likewise. 16939 * lra-constraints.c (process_alt_operands): Likewise. 16940 (split_reg): Likewise. 16941 * recog.c (peep2_find_free_register): Likewise. 16942 * ree.c (combine_reaching_defs): Likewise. 16943 * regcprop.c (maybe_mode_change): Likewise. 16944 * reginfo.c (init_reg_sets_1): Likewise. 16945 (choose_hard_reg_mode): Likewise. 16946 (simplifiable_subregs): Likewise. 16947 * regrename.c (check_new_reg_p): Likewise. 16948 * reload.c (find_valid_class): Likewise. 16949 (find_valid_class_1): Likewise. 16950 (reload_inner_reg_of_subreg): Likewise. 16951 (push_reload): Likewise. 16952 (combine_reloads): Likewise. 16953 (find_dummy_reload): Likewise. 16954 (find_reloads): Likewise. 16955 * reload1.c (find_reg): Likewise. 16956 (set_reload_reg): Likewise. 16957 (allocate_reload_reg): Likewise. 16958 (choose_reload_regs): Likewise. 16959 (reload_adjust_reg_for_temp): Likewise. 16960 * rtlanal.c (subreg_size_offset_from_lsb): Likewise. 16961 (simplify_subreg_regno): Likewise. 16962 * sel-sched.c (init_regs_for_mode): Likewise. 16963 * varasm.c (make_decl_rtl): Likewise. 16964 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete. 16965 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of 16966 HARD_REGNO_MODE_OK. 16967 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete. 16968 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static. 16969 (TARGET_HARD_REGNO_MODE_OK): Redefine. 16970 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete. 16971 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function. 16972 (TARGET_HARD_REGNO_MODE_OK): Redefine. 16973 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete. 16974 (arc_mode_class): Delete. 16975 (HARD_REGNO_MODE_OK): Delete. 16976 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 16977 (arc_hard_regno_mode_ok): Rename old array to... 16978 (arc_hard_regno_mode_ok_modes): ...this. 16979 (arc_conditional_register_usage): Update accordingly. 16980 (arc_mode_class): Make static. 16981 (arc_hard_regno_mode_ok): New function. 16982 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete. 16983 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete. 16984 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 16985 (arm_hard_regno_mode_ok): Make static. 16986 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of 16987 HARD_REGNO_MODE_OK. 16988 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete. 16989 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete. 16990 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and 16991 return a bool. 16992 (TARGET_HARD_REGNO_MODE_OK): Redefine. 16993 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete. 16994 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete. 16995 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to... 16996 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool. 16997 (TARGET_HARD_REGNO_MODE_OK): Redefine. 16998 * config/bfin/predicates.md (valid_reg_operand): Use 16999 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK. 17000 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete. 17001 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function. 17002 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17003 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete. 17004 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete. 17005 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17006 (cr16_hard_regno_mode_ok): Make static and return a bool. 17007 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete. 17008 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17009 (cris_hard_regno_mode_ok): New function. 17010 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete. 17011 (epiphany_mode_class): Delete. 17012 (HARD_REGNO_MODE_OK): Delete. 17013 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete. 17014 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17015 (hard_regno_mode_ok): Rename to... 17016 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool. 17017 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete. 17018 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of 17019 HARD_REGNO_MODE_OK. 17020 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete. 17021 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete. 17022 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17023 (frv_hard_regno_mode_ok): Make static and return a bool. 17024 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of 17025 HARD_REGNO_MODE_OK. 17026 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete. 17027 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete. 17028 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete. 17029 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static 17030 and return a bool. 17031 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17032 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete. 17033 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete. 17034 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and 17035 return a bool. 17036 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17037 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete. 17038 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17039 (ia64_hard_regno_mode_ok): New function. 17040 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete. 17041 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17042 (iq2000_hard_regno_mode_ok): New function. 17043 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete. 17044 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17045 (lm32_hard_regno_mode_ok): New function. 17046 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete. 17047 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete. 17048 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok 17049 instead of HARD_REGNO_MODE_OK. 17050 (m32c_hard_regno_ok): Rename to... 17051 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool. 17052 (m32c_cannot_change_mode_class): Update accordingly. 17053 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17054 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete. 17055 (m32r_mode_class): Delete. 17056 (HARD_REGNO_MODE_OK): Delete. 17057 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17058 (m32r_hard_regno_mode_ok): Rename to... 17059 (m32r_hard_regno_modes): ...this. 17060 (m32r_mode_class): Make static. 17061 (m32r_hard_regno_mode_ok): New function. 17062 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete. 17063 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete. 17064 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17065 (m68k_hard_regno_mode_ok): Make static. 17066 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete. 17067 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17068 (mcore_hard_regno_mode_ok): New function. 17069 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok) 17070 (HARD_REGNO_MODE_OK): Delete. 17071 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok): 17072 Rename to... 17073 (microblaze_hard_regno_mode_ok_p): ...this and make static. 17074 (microblaze_hard_regno_mode_ok): New function. 17075 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17076 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete. 17077 (mips_hard_regno_mode_ok): Delete. 17078 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to... 17079 (mips_hard_regno_mode_ok_p): ...this and make static. 17080 (mips_hard_regno_mode_ok_p): Rename to... 17081 (mips_hard_regno_mode_ok_uncached): ...this. 17082 (mips_hard_regno_mode_ok): New function. 17083 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead 17084 of HARD_REGNO_MODE_OK. 17085 (mips_option_override): Update after above name changes. 17086 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17087 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete. 17088 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete. 17089 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete. 17090 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static. 17091 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17092 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete. 17093 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete. 17094 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete. 17095 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17096 (msp430_hard_regno_mode_ok): Make static and return a bool. 17097 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete. 17098 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete. 17099 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static 17100 and return a bool. 17101 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17102 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete. 17103 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete. 17104 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary. 17105 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to... 17106 (PA_HARD_REGNO_MODE_OK): ...this 17107 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to... 17108 (PA_HARD_REGNO_MODE_OK): ...this. 17109 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17110 (pa_hard_regno_mode_ok): New function. 17111 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete. 17112 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17113 (pdp11_hard_regno_mode_ok): New function. 17114 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete. 17115 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p): 17116 Delete. 17117 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p): 17118 Make static. 17119 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17120 (rs6000_hard_regno_mode_ok): Rename to... 17121 (rs6000_hard_regno_mode_ok_uncached): ...this. 17122 (rs6000_init_hard_regno_mode_ok): Update accordingly. 17123 (rs6000_hard_regno_mode_ok): New function. 17124 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete. 17125 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete. 17126 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to... 17127 (riscv_hard_regno_mode_ok): ...this and make static. 17128 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17129 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete. 17130 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete. 17131 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17132 (rl78_hard_regno_mode_ok): Make static and return bool. 17133 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete. 17134 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): 17135 Delete. 17136 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static. 17137 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17138 (rs6000_hard_regno_mode_ok): Rename to... 17139 (rs6000_hard_regno_mode_ok_uncached): ...this. 17140 (rs6000_init_hard_regno_mode_ok): Update accordingly. 17141 (rs6000_hard_regno_mode_ok): New function. 17142 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete. 17143 * config/rx/rx.c (rx_hard_regno_mode_ok): New function. 17144 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17145 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete. 17146 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete. 17147 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static. 17148 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17149 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete. 17150 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete. 17151 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17152 (sh_hard_regno_mode_ok): Make static. 17153 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok 17154 instead of HARD_REGNO_MODE_OK. 17155 * config/sparc/sparc.h (hard_regno_mode_classes): Delete. 17156 (sparc_mode_class): Delete. 17157 (HARD_REGNO_MODE_OK): Delete. 17158 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17159 (hard_regno_mode_classes): Make static. 17160 (sparc_mode_class): Likewise. 17161 (sparc_hard_regno_mode_ok): New function. 17162 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete. 17163 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete. 17164 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New 17165 function. 17166 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17167 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete. 17168 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete. 17169 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete. 17170 * config/v850/v850.c (v850_hard_regno_mode_ok): New function. 17171 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17172 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete. 17173 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete. 17174 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine. 17175 (visium_hard_regno_mode_ok): New function. 17176 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok 17177 instead of HARD_REGNO_MODE_OK. 17178 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete. 17179 (HARD_REGNO_MODE_OK): Delete. 17180 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to... 17181 (xtensa_hard_regno_mode_ok_p): ...this and make static. 17182 (xtensa_option_override): Update accordingly. 17183 (TARGET_HARD_REGNO_MODE_OK): Redefine. 17184 (xtensa_hard_regno_mode_ok): New function. 17185 * system.h (HARD_REGNO_MODE_OK): Poison. 17186 171872017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 17188 Alan Hayward <alan.hayward@arm.com> 17189 David Sherwood <david.sherwood@arm.com> 17190 17191 * target.def (hard_regno_call_part_clobbered): New hook. 17192 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with... 17193 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook. 17194 * doc/tm.texi: Regenerate. 17195 * hooks.h (hook_bool_uint_mode_false): Declare. 17196 * hooks.c (hook_bool_uint_mode_false): New function. 17197 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17198 * cselib.c (cselib_process_insn): Use 17199 targetm.hard_regno_call_part_clobbered instead of 17200 HARD_REGNO_CALL_PART_CLOBBERED. 17201 * ira-conflicts.c (ira_build_conflicts): Likewise. 17202 * ira-costs.c (ira_tune_allocno_costs): Likewise. 17203 * lra-constraints.c (need_for_call_save_p): Likewise. 17204 * lra-lives.c: Include target.h. 17205 (check_pseudos_live_through_calls): Use 17206 targetm.hard_regno_call_part_clobbered instead of 17207 HARD_REGNO_CALL_PART_CLOBBERED. 17208 * regcprop.c: Include target.h. 17209 (copyprop_hardreg_forward_1): Use 17210 targetm.hard_regno_call_part_clobbered instead of 17211 HARD_REGNO_CALL_PART_CLOBBERED. 17212 * reginfo.c (choose_hard_reg_mode): Likewise. 17213 * regrename.c (check_new_reg_p): Likewise. 17214 * reload.c (find_equiv_reg): Likewise. 17215 * reload1.c (emit_reload_insns): Likewise. 17216 * sched-deps.c (deps_analyze_insn): Likewise. 17217 * sel-sched.c (init_regs_for_mode): Likewise. 17218 (mark_unavailable_hard_regs): Likewise. 17219 * targhooks.c (default_dwarf_frame_reg_mode): Likewise. 17220 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17221 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): 17222 New function. 17223 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17224 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17225 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): 17226 Delete. 17227 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static 17228 and return a bool. 17229 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17230 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17231 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New 17232 function. 17233 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17234 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17235 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New 17236 function. 17237 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17238 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED): 17239 Delete. 17240 * config/powerpcspe/powerpcspe.c 17241 (rs6000_hard_regno_call_part_clobbered): New function. 17242 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17243 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17244 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): 17245 New function. 17246 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17247 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17248 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New 17249 function. 17250 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. 17251 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. 17252 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison. 17253 172542017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 17255 Alan Hayward <alan.hayward@arm.com> 17256 David Sherwood <david.sherwood@arm.com> 17257 17258 * rtl.h (subreg_memory_offset): Declare. 17259 * emit-rtl.c (subreg_memory_offset): New function. 17260 * expmed.c (store_bit_field_1): Use it. 17261 * expr.c (undefined_operand_subword_p): Likewise. 17262 * simplify-rtx.c (simplify_subreg): Likewise. 17263 172642017-09-04 Alexander Monakov <amonakov@ispras.ru> 17265 17266 PR rtl-optimization/57448 17267 PR target/67458 17268 PR target/81316 17269 * optabs.c (expand_atomic_load): Place compiler memory barriers if 17270 using atomic_load pattern. 17271 (expand_atomic_store): Likewise. 17272 172732017-09-04 Jakub Jelinek <jakub@redhat.com> 17274 17275 PR sanitizer/81981 17276 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR 17277 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE 17278 handling. Use replace_call_with_value with NULL instead of 17279 gsi_replace, unlink_stmt_vdef and release_defs. 17280 17281 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces 17282 instead of tab. 17283 17284 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto. 17285 172862017-09-04 Richard Sandiford <richard.sandiford@linaro.org> 17287 17288 PR bootstrap/82045 17289 * rtl.h (emit_library_call_value_1): Declare. 17290 (emit_library_call): Replace declaration with a series of overloads. 17291 Remove the parameter count argument. 17292 (emit_library_call_value): Likewise. 17293 * calls.c (emit_library_call_value_1): Make global. Replace varargs 17294 with an "rtx_mode_t *". 17295 (emit_library_call_value): Delete. 17296 (emit_library_call): Likewise. 17297 * asan.c (asan_emit_stack_protection): Update calls accordingly. 17298 (asan_emit_allocas_unpoison): Likewise. 17299 * builtins.c (expand_builtin_powi): Likewise. 17300 (expand_asan_emit_allocas_unpoison): Likewise. 17301 * cfgexpand.c (expand_main_function): Likewise. 17302 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise. 17303 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. 17304 * config/alpha/alpha.c (alpha_trampoline_init): Likewise. 17305 * config/arm/arm.c (arm_trampoline_init): Likewise. 17306 (arm_call_tls_get_addr): Likewise. 17307 (arm_expand_divmod_libfunc): Likewise. 17308 * config/bfin/bfin.md (umulsi3_highpart): Likewise. 17309 (smulsi3_highpart): Likewise. 17310 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. 17311 (c6x_expand_compare): Likewise. 17312 (c6x_expand_movmem): Likewise. 17313 * config/frv/frv.c (frv_trampoline_init): Likewise. 17314 * config/i386/i386.c (ix86_trampoline_init): Likewise. 17315 (ix86_expand_divmod_libfunc): Likewise. 17316 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. 17317 (ia64_expand_compare): Likewise. 17318 (ia64_profile_hook): Likewise. 17319 * config/ia64/ia64.md (save_stack_nonlocal): Likewise. 17320 (nonlocal_goto): Likewise. 17321 (restore_stack_nonlocal): Likewise. 17322 * config/m32r/m32r.c (block_move_call): Likewise. 17323 (m32r_trampoline_init): Likewise. 17324 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. 17325 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise. 17326 (m68k_call_m68k_read_tp): Likewise. 17327 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr) 17328 (microblaze_expand_divide): Likewise. 17329 * config/mips/mips.h (mips_args): Likewise. 17330 * config/mips/sdemtk.h (mips_sync_icache): Likewise. 17331 (MIPS_ICACHE_SYNC): Likewise. 17332 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise. 17333 (nios2_trampoline_init): Likewise. 17334 * config/pa/pa.c (hppa_tls_call): Likewise. 17335 (pa_trampoline_init): Likewise. 17336 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise. 17337 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address) 17338 (expand_strn_compare): Likewise. 17339 (rs6000_generate_compare): Likewise. 17340 (rs6000_expand_float128_convert): Likewise. 17341 (output_profile_hook): Likewise. 17342 (rs6000_trampoline_init): Likewise. 17343 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise. 17344 * config/riscv/riscv.h (PROFILE_HOOK): Likewise. 17345 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise. 17346 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. 17347 (rs6000_generate_compare): Likewise. 17348 (rs6000_expand_float128_convert): Likewise. 17349 (output_profile_hook): Likewise. 17350 (rs6000_trampoline_init): Likewise. 17351 * config/rs6000/rs6000.md (neg<mode>2): Likewise. 17352 * config/sh/sh.c (sh_trampoline_init): Likewise. 17353 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise. 17354 (sparc_emit_float_lib_cmp): Likewise. 17355 (sparc32_initialize_trampoline): Likewise. 17356 (sparc64_initialize_trampoline): Likewise. 17357 (sparc_profile_hook): Likewise. 17358 * config/spu/spu.c (ea_load_store): Likewise. 17359 * config/spu/spu.md (floatunssidf2): Likewise. 17360 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. 17361 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise. 17362 * config/visium/visium.c (expand_block_move_4): Likewise. 17363 (expand_block_move_2): Likewise. 17364 (expand_block_move_1): Likewise. 17365 (expand_block_set_4): Likewise. 17366 (expand_block_set_2): Likewise. 17367 (expand_block_set_1): Likewise. 17368 (visium_trampoline_init): Likewise. 17369 (visium_profile_hook): Likewise. 17370 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise. 17371 (xtensa_setup_frame_addresses): Likewise. 17372 (xtensa_trampoline_init): Likewise. 17373 * except.c (sjlj_emit_function_enter): Likewise. 17374 (sjlj_emit_function_exit): Likewise. 17375 * explow.c (allocate_dynamic_stack_space): Likewise. 17376 (probe_stack_range): Likewise. 17377 * expr.c (convert_mode_scalar): Likewise. 17378 * optabs.c (expand_binop): Likewise. 17379 (expand_twoval_binop_libfunc): Likewise. 17380 (expand_unop): Likewise. 17381 (prepare_cmp_insn): Likewise. 17382 (prepare_float_lib_cmp): Likewise. 17383 (expand_float): Likewise. 17384 (expand_fix): Likewise. 17385 (expand_fixed_convert): Likewise. 17386 (maybe_emit_sync_lock_test_and_set): Likewise. 17387 (expand_atomic_compare_and_swap): Likewise. 17388 (expand_mem_thread_fence): Likewise. 17389 (expand_atomic_fetch_op): Likewise. 17390 173912017-09-03 Gerald Pfeifer <gerald@pfeifer.com> 17392 17393 * doc/generic.texi (OpenACC): Adjust URL. 17394 * doc/invoke.texi (C Dialect Options): Ditto. 17395 173962017-09-03 Uros Bizjak <ubizjak@gmail.com> 17397 17398 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand 17399 predicate for operand 1. Add (m,<S>) constraint. 17400 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1. 17401 Prevent memory operand 1 with register operand 2. 17402 174032017-09-01 Segher Boessenkool <segher@kernel.crashing.org> 17404 17405 PR rtl-optimization/82024 17406 * combine.c (try_combine): If the combination result is a PARALLEL, 17407 and we only need to retain the SET in there that would be placed 17408 at I2, check that we can place that at I3 instead, before doing so. 17409 174102017-09-01 Jakub Jelinek <jakub@redhat.com> 17411 17412 PR target/81766 17413 * config/i386/i386.c (ix86_init_large_pic_reg): Return label 17414 instead of void. 17415 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, 17416 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note 17417 and label. 17418 174192017-09-01 Joerg Sonnenberger <joerg@bec.de> 17420 Jeff Law <law@redhat.com> 17421 17422 * varasm.c (bss_initializer_p): Do not put constants into .bss 17423 (categorize_decl_for_section): Handle bss_initializer_p returning 17424 false when DECL_INITIAL is NULL. 17425 174262017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 17427 17428 PR target/82012 17429 * config/s390/s390.c (s390_can_inline_p): New function. 17430 174312017-09-01 Jeff Law <law@redhat.com> 17432 17433 PR tree-optimization/82052 17434 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): 17435 Always initialize the returned slot after a hash table miss 17436 when INSERT is true. 17437 174382017-09-01 Alexander Monakov <amonakov@ispras.ru> 17439 17440 * config/s390/s390.md (mem_signal_fence): Remove. 17441 * doc/md.texi (mem_signal_fence): Remove. 17442 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence. 17443 Update comments. 17444 * target-insns.def (mem_signal_fence): Remove. 17445 174462017-09-01 Jakub Jelinek <jakub@redhat.com> 17447 17448 PR sanitizer/81902 17449 * doc/invoke.texi: Document -fsanitize=pointer-overflow. 17450 17451 PR sanitizer/81923 17452 * asan.c (create_odr_indicator): Strip name encoding from assembler 17453 name before appending it after __odr_asan_. 17454 174552017-09-01 Martin Liska <mliska@suse.cz> 17456 17457 PR tree-optimization/82059 17458 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and 17459 frequency only when an edge is redirected. 17460 174612017-09-01 Claudiu Zissulescu <claziss@synopsys.com> 17462 17463 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define. 17464 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define. 17465 (arc_conditional_register_usage): Remove ARC600 lp_count 17466 exception. 17467 (arc_file_start): Emit Tag_ARC_CPU_variation. 17468 (arc_can_use_doloop_p): New conditions to use ZOLs. 17469 (hwloop_fail): New function. 17470 (hwloop_optimize): Likewise. 17471 (hwloop_pattern_reg): Likewise. 17472 (arc_doloop_hooks): New struct, to be used with reorg_loops. 17473 (arc_reorg_loops): New function, calls reorg_loops. 17474 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling. 17475 (arc600_corereg_hazard): Remove ZOL checking, case handled by 17476 hwloop_optimize. 17477 (arc_loop_hazard): Remove function, functionality moved into 17478 hwloop_optimize. 17479 (arc_hazard): Remove arc_loop_hazard call. 17480 (arc_adjust_insn_length): Remove ZOL handling, functionality moved 17481 into hwloop_optimize. 17482 (arc_label_align): Remove ZOL handling. 17483 * config/arc/arc.h (LOOP_ALIGN): Changed to 0. 17484 * config/arc/arc.md (doloop_begin): Remove pattern. 17485 (doloop_begin_i): Likewise. 17486 (doloop_end_i): Likewise. 17487 (doloop_fallback): Likewise. 17488 (doloop_fallback_m): Likewise. 17489 (doloop_end): Reimplement expand. 17490 (arc_lp): New pattern for LP instruction. 17491 (loop_end): New pattern. 17492 (loop_fail): Likewise. 17493 (decrement_and_branch_until_zero): Likewise. 17494 * config/arc/arc.opt (mlpc-width): New option. 17495 * doc/invoke.texi (mlpc-width): Document option. 17496 174972017-09-01 Claudiu Zissulescu <claziss@synopsys.com> 17498 17499 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call. 17500 (arc_ccfsm_advance): Fix checking for delay slots. 17501 (arc_reorg): Add rtl dump after each call to arc_ifcvt. 17502 175032017-09-01 Claudiu Zissulescu <claziss@synopsys.com> 17504 17505 * config/arc/arc.md (movqi_insn): Add stores to save constant long 17506 immediates. 17507 (movhi_insn): Update store instruction constraint which are saving 17508 6-bit short immediates. 17509 (movsi_insn): Consider also short scaled load operations. 17510 (zero_extendhisi2_i): Use Usd constraint instead of T. 17511 (extendhisi2_i): Add q constraint. 17512 (arc_clzsi2): Add type and length attributes. 17513 (arc_ctzsi2): Likewise. 17514 * config/arc/constraints.md (Usc): Update constraint, the 17515 assembler can parse two relocations for a single instruction. 17516 175172017-09-01 Claudiu Zissulescu <claziss@synopsys.com> 17518 17519 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function. 17520 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define. 17521 175222017-08-31 Olivier Hainque <hainque@adacore.com> 17523 17524 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now 17525 match as powerpc-wrs-vxworks*. 17526 175272017-08-31 James Greenhalgh <james.greenhalgh@arm.com> 17528 17529 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix 17530 register constraint for by-element operand. 17531 (aarch64_mls_elt_merge<mode>): Likewise. 17532 175332017-08-31 Claudiu Zissulescu <claziss@synopsys.com> 17534 17535 * config/arc/arc.c (arc_can_follow_jump): Check for short 17536 branches. 17537 175382017-08-31 Claudiu Zissulescu <claziss@synopsys.com> 17539 17540 * config.gcc: Use g.opt for arc. 17541 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted, 17542 functionality moved to ... 17543 (legitimate_scaled_address_p): New function, ...here. 17544 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define. 17545 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define. 17546 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET 17547 condition. 17548 (arc_override_options): Handle G option. 17549 (arc_output_pic_addr_const): Correct function definition. 17550 (arc_legitimate_address_p): Use legitimate_scaled_address_p. 17551 (arc_decl_anon_ns_mem_p): Delete. 17552 (arc_in_small_data_p): Overhaul this function to take into 17553 consideration the value given via G option. 17554 (arc_rewrite_small_data_1): Renamed and corrected old 17555 arc_rewrite_small_data function. 17556 (arc_rewrite_small_data): New function. 17557 (small_data_pattern): Don't use pic_offset_table_rtx. 17558 * config/arc/arc.h (CC1_SPEC): Recognize G option. 17559 * config/arc/simdext.md (movmisalignv2hi): Use 17560 prepare_move_operands function. 17561 (mov*): Likewise. 17562 (movmisalign*): Likewise. 17563 * doc/invoke.texi (ARC options): Document -G option. 17564 175652017-08-31 Claudiu Zissulescu <claziss@synopsys.com> 17566 17567 * config/arc/arc-protos.h (compact_sda_memory_operand): Update 17568 prototype. 17569 * config/arc/arc.c (arc_print_operand): Output scalled address for 17570 sdata whenever is possible. 17571 (arc_in_small_data_p): Allow sdata for 64bit datum when double 17572 load/stores are available. 17573 (compact_sda_memory_operand): Check for the alignment required by 17574 code density instructions. 17575 * config/arc/arc.md (movsi_insn): Use newly introduced Us0 17576 constraint. 17577 * config/arc/constraints.md (Usd): Update constraint. 17578 (Us0): New constraint. 17579 (Usc): Update constraint. 17580 175812017-08-31 Richard Biener <rguenther@suse.de> 17582 17583 PR middle-end/82054 17584 * dwarf2out.c (dwarf2out_early_global_decl): Process each 17585 function only once. 17586 175872017-08-31 Tamar Christina <tamar.christina@arm.com> 17588 17589 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): 17590 Resize type_signature. 17591 175922017-08-31 Richard Sandiford <richard.sandiford@linaro.org> 17593 Alan Hayward <alan.hayward@arm.com> 17594 David Sherwood <david.sherwood@arm.com> 17595 17596 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow 17597 subregs whose inner modes can be stored in GPRs. 17598 (aarch64_classify_index): Likewise. 17599 176002017-08-31 Richard Sandiford <richard.sandiford@linaro.org> 17601 Alan Hayward <alan.hayward@arm.com> 17602 David Sherwood <david.sherwood@arm.com> 17603 17604 * config/aarch64/iterators.md (V_cmp_result): Rename to... 17605 (V_INT_EQUIV): ...this. 17606 (v_cmp_result): Rename to... 17607 (v_int_equiv): ...this. 17608 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly. 17609 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise. 17610 (copysign<mode>3): Likewise. 17611 (aarch64_simd_bsl<mode>_internal): Likewise. 17612 (aarch64_simd_bsl<mode>): Likewise. 17613 (vec_cmp<mode><mode>): Likewise. 17614 (vcond<mode><mode>): Likewise. 17615 (vcond<v_cmp_mixed><mode>): Likewise. 17616 (vcondu<mode><v_cmp_mixed>): Likewise. 17617 (aarch64_cm<optab><mode>): Likewise. 17618 (aarch64_cmtst<mode>): Likewise. 17619 (aarch64_fac<optab><mode>): Likewise. 17620 (vec_perm_const<mode>): Likewise. 17621 (vcond_mask_<mode><v_cmp_result>): Rename to... 17622 (vcond_mask_<mode><v_int_equiv>): ...this. 17623 (vec_cmp<mode><v_cmp_result>): Rename to... 17624 (vec_cmp<mode><v_int_equiv>): ...this. 17625 176262017-08-31 Richard Sandiford <richard.sandiford@linaro.org> 17627 Alan Hayward <alan.hayward@arm.com> 17628 David Sherwood <david.sherwood@arm.com> 17629 17630 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte 17631 vector modes. 17632 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete. 17633 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG) 17634 (UNSPEC_LD4_DREG): New unspecs. 17635 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le) 17636 (aarch64_ld2<mode>_dreg_be): Replace with... 17637 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG 17638 unspec. 17639 (aarch64_ld3<mode>_dreg_le) 17640 (aarch64_ld3<mode>_dreg_be): Replace with... 17641 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG 17642 unspec. 17643 (aarch64_ld4<mode>_dreg_le) 17644 (aarch64_ld4<mode>_dreg_be): Replace with... 17645 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG 17646 unspec. 17647 176482017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 17649 17650 PR tree-optimization/81987 17651 * gimple-ssa-strength-reduction.c (insert_initializers): Don't 17652 insert an initializer in a location not dominated by the stride 17653 definition. 17654 176552017-08-30 Eric Botcazou <ebotcazou@adacore.com> 17656 17657 * tree-eh.c (lower_try_finally_switch): Set the location of the finally 17658 on the entire header of the finally block in the fallthru case. 17659 176602017-08-30 Eric Botcazou <ebotcazou@adacore.com> 17661 17662 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>. 17663 176642017-08-30 Pat Haugen <pthaugen@us.ibm.com> 17665 17666 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from 17667 rs6000_emit_move_from_cr and call renamed function. 17668 (rs6000_emit_prologue): Call renamed functions. 17669 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from 17670 movesi_from_cr, remove volatile CRs. 17671 176722017-08-30 Jon Beniston <jon@beniston.com> 17673 Richard Biener <rguenther@suse.de> 17674 17675 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead 17676 of VECTOR_MODE_P check. 17677 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single 17678 element vector types. 17679 176802017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17681 17682 * df.h (df_read_modify_subreg_p): Remove in favor of... 17683 * rtl.h (read_modify_subreg_p): ...this new function. Take a 17684 const_rtx instead of an rtx. 17685 * cprop.c (local_cprop_find_used_regs): Update accordingly. 17686 * df-problems.c (df_word_lr_mark_ref): Likewise. 17687 * ira-lives.c (mark_pseudo_reg_live): Likewise. 17688 (mark_pseudo_reg_dead): Likewise. 17689 (mark_ref_dead): Likewise. 17690 * reginfo.c (init_subregs_of_mode): Likewise. 17691 * sched-deps.c (sched_analyze_1): Likewise. 17692 * df-scan.c (df_def_record_1): Likewise. 17693 (df_uses_record): Likewise. 17694 (df_read_modify_subreg_p): Remove in favor of... 17695 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a 17696 const_rtx instead of an rtx. 17697 176982017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17699 Alan Hayward <alan.hayward@arm.com> 17700 David Sherwood <david.sherwood@arm.com> 17701 17702 * rtl.h (partial_subreg_p): New function. 17703 * caller-save.c (save_call_clobbered_regs): Use it. 17704 * calls.c (expand_call): Likewise. 17705 * combine.c (combinable_i3pat): Likewise. 17706 (simplify_set): Likewise. 17707 (make_extraction): Likewise. 17708 (make_compound_operation_int): Likewise. 17709 (gen_lowpart_or_truncate): Likewise. 17710 (force_to_mode): Likewise. 17711 (make_field_assignment): Likewise. 17712 (reg_truncated_to_mode): Likewise. 17713 (record_truncated_value): Likewise. 17714 (move_deaths): Likewise. 17715 * cse.c (record_jump_cond): Likewise. 17716 (cse_insn): Likewise. 17717 * cselib.c (cselib_lookup_1): Likewise. 17718 * expmed.c (extract_bit_field_using_extv): Likewise. 17719 * function.c (assign_parm_setup_reg): Likewise. 17720 * ifcvt.c (noce_convert_multiple_sets): Likewise. 17721 * ira-build.c (create_insn_allocnos): Likewise. 17722 * lra-coalesce.c (merge_pseudos): Likewise. 17723 * lra-constraints.c (match_reload): Likewise. 17724 (simplify_operand_subreg): Likewise. 17725 (curr_insn_transform): Likewise. 17726 * lra-lives.c (process_bb_lives): Likewise. 17727 * lra.c (new_insn_reg): Likewise. 17728 (lra_substitute_pseudo): Likewise. 17729 * regcprop.c (mode_change_ok): Likewise. 17730 (maybe_mode_change): Likewise. 17731 (copyprop_hardreg_forward_1): Likewise. 17732 * reload.c (push_reload): Likewise. 17733 (find_reloads): Likewise. 17734 (find_reloads_subreg_address): Likewise. 17735 * reload1.c (alter_reg): Likewise. 17736 (eliminate_regs_1): Likewise. 17737 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 17738 177392017-08-30 David Edelsohn <dje.gcc@gmail.com> 17740 17741 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert 17742 back to if statements, including unpack. 17743 177442017-08-30 Martin Liska <mliska@suse.cz> 17745 17746 PR inline-asm/82001 17747 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand): 17748 Rename to ... 17749 (func_checker::compare_asm_inputs_outputs): ... this function. 17750 (func_checker::compare_gimple_asm): Use the function to compare 17751 also ASM constrains. 17752 * ipa-icf-gimple.h: Rename the function. 17753 177542017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17755 Alan Hayward <alan.hayward@arm.com> 17756 David Sherwood <david.sherwood@arm.com> 17757 17758 * coretypes.h (complex_mode): New type. 17759 * gdbhooks.py (build_pretty_printer): Handle it. 17760 * machmode.h (complex_mode): New class. 17761 (complex_mode::includes_p): New function. 17762 (is_complex_int_mode): Likewise. 17763 (is_complex_float_mode): Likewise. 17764 * genmodes.c (get_mode_class): Handle complex mode classes. 17765 * function.c (expand_function_end): Use is_complex_int_mode. 17766 177672017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17768 Alan Hayward <alan.hayward@arm.com> 17769 David Sherwood <david.sherwood@arm.com> 17770 17771 * coretypes.h (scalar_mode_pod): New typedef. 17772 * gdbhooks.py (build_pretty_printer): Handle it. 17773 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions. 17774 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod. 17775 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode. 17776 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use 17777 as_a <scalar_mode>. 17778 177792017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17780 Alan Hayward <alan.hayward@arm.com> 17781 David Sherwood <david.sherwood@arm.com> 17782 17783 * machmode.h (mode_for_vector): Take a scalar_mode instead 17784 of a machine_mode. 17785 * stor-layout.c (mode_for_vector): Likewise. 17786 * explow.c (promote_mode): Use as_a <scalar_mode>. 17787 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>. 17788 177892017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17790 Alan Hayward <alan.hayward@arm.com> 17791 David Sherwood <david.sherwood@arm.com> 17792 17793 * target.def (preferred_simd_mode): Take a scalar_mode 17794 instead of a machine_mode. 17795 * targhooks.h (default_preferred_simd_mode): Likewise. 17796 * targhooks.c (default_preferred_simd_mode): Likewise. 17797 * config/arc/arc.c (arc_preferred_simd_mode): Likewise. 17798 * config/arm/arm.c (arm_preferred_simd_mode): Likewise. 17799 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise. 17800 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise. 17801 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise. 17802 * config/mips/mips.c (mips_preferred_simd_mode): Likewise. 17803 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise. 17804 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode): 17805 Likewise. 17806 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise. 17807 * config/s390/s390.c (s390_preferred_simd_mode): Likewise. 17808 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise. 17809 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise. 17810 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly. 17811 * doc/tm.texi: Regenerate. 17812 * optabs-query.c (can_vec_mask_load_store_p): Return false for 17813 non-scalar modes. 17814 178152017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17816 Alan Hayward <alan.hayward@arm.com> 17817 David Sherwood <david.sherwood@arm.com> 17818 17819 * target.def (scalar_mode_supported_p): Take a scalar_mode 17820 instead of a machine_mode. 17821 * targhooks.h (default_scalar_mode_supported_p): Likewise. 17822 * targhooks.c (default_scalar_mode_supported_p): Likewise. 17823 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise. 17824 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. 17825 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise. 17826 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise. 17827 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise. 17828 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise. 17829 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise. 17830 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise. 17831 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise. 17832 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise. 17833 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise. 17834 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p): 17835 Likewise. 17836 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise. 17837 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise. 17838 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. 17839 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. 17840 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): 17841 Likewise. 17842 * doc/tm.texi: Regenerate. 17843 178442017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17845 Alan Hayward <alan.hayward@arm.com> 17846 David Sherwood <david.sherwood@arm.com> 17847 17848 * coretypes.h (opt_scalar_mode): New typedef. 17849 * gdbhooks.py (build_pretty_printers): Handle it. 17850 * machmode.h (mode_iterator::get_2xwider): Add overload for 17851 opt_mode<T>. 17852 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating 17853 over scalar modes. 17854 * expr.c (convert_mode_scalar): Likewise. 17855 * omp-low.c (omp_clause_aligned_alignment): Likewise. 17856 * optabs.c (expand_float): Likewise. 17857 (expand_fix): Likewise. 17858 * tree-vect-stmts.c (vectorizable_conversion): Likewise. 17859 178602017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17861 Alan Hayward <alan.hayward@arm.com> 17862 David Sherwood <david.sherwood@arm.com> 17863 17864 * optabs.c (expand_float): Explicitly check for scalars before 17865 using a branching expansion. 17866 (expand_fix): Likewise. 17867 178682017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17869 Alan Hayward <alan.hayward@arm.com> 17870 David Sherwood <david.sherwood@arm.com> 17871 17872 * expr.c (convert_mode): Split scalar handling out into... 17873 (convert_mode_scalar): ...this new function. Treat the modes 17874 as scalar_modes. 17875 178762017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17877 Alan Hayward <alan.hayward@arm.com> 17878 David Sherwood <david.sherwood@arm.com> 17879 17880 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode 17881 and scalar_mode. 17882 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise. 17883 178842017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17885 Alan Hayward <alan.hayward@arm.com> 17886 David Sherwood <david.sherwood@arm.com> 17887 17888 * fixed-value.h (fixed_from_double_int): Take a scalar_mode 17889 rather than a machine_mode. 17890 (fixed_from_string): Likewise. 17891 (fixed_convert): Likewise. 17892 (fixed_convert_from_int): Likewise. 17893 (fixed_convert_from_real): Likewise. 17894 (real_convert_from_fixed): Likewise. 17895 * fixed-value.c (fixed_from_double_int): Likewise. 17896 (fixed_from_string): Likewise. 17897 (fixed_convert): Likewise. 17898 (fixed_convert_from_int): Likewise. 17899 (fixed_convert_from_real): Likewise. 17900 (real_convert_from_fixed): Likewise. 17901 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>. 17902 179032017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17904 Alan Hayward <alan.hayward@arm.com> 17905 David Sherwood <david.sherwood@arm.com> 17906 17907 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead 17908 of separate mode class checks. Do not allow vector modes here. 17909 (immed_wide_int_const): Use as_a <scalar_mode>. 17910 * explow.c (trunc_int_for_mode): Likewise. 17911 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise. 17912 (wi::shwi): Likewise. 17913 (wi::min_value): Likewise. 17914 (wi::max_value): Likewise. 17915 * dwarf2out.c (loc_descriptor): Likewise. 17916 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument 17917 for CONST_WIDE_INT. 17918 179192017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17920 Alan Hayward <alan.hayward@arm.com> 17921 David Sherwood <david.sherwood@arm.com> 17922 17923 * tree.h (SCALAR_TYPE_MODE): New macro. 17924 * expr.c (expand_expr_addr_expr_1): Use it. 17925 (expand_expr_real_2): Likewise. 17926 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise. 17927 (fold_convert_const_fixed_from_int): Likewise. 17928 (fold_convert_const_fixed_from_real): Likewise. 17929 (native_encode_fixed): Likewise 17930 (native_encode_complex): Likewise 17931 (native_encode_vector): Likewise. 17932 (native_interpret_fixed): Likewise. 17933 (native_interpret_real): Likewise. 17934 (native_interpret_complex): Likewise. 17935 (native_interpret_vector): Likewise. 17936 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise. 17937 (simd_clone_adjust_argument_types): Likewise. 17938 (simd_clone_init_simd_arrays): Likewise. 17939 (simd_clone_adjust): Likewise. 17940 * stor-layout.c (layout_type): Likewise. 17941 * tree.c (build_minus_one_cst): Likewise. 17942 * tree-cfg.c (verify_gimple_assign_ternary): Likewise. 17943 * tree-inline.c (estimate_move_cost): Likewise. 17944 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise. 17945 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. 17946 (vectorizable_reduction): Likewise. 17947 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise. 17948 (vect_recog_mixed_size_cond_pattern): Likewise. 17949 (check_bool_pattern): Likewise. 17950 (adjust_bool_pattern): Likewise. 17951 (search_type_for_mask_1): Likewise. 17952 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. 17953 * tree-vect-stmts.c (vectorizable_conversion): Likewise. 17954 (vectorizable_load): Likewise. 17955 (vectorizable_store): Likewise. 17956 * ubsan.c (ubsan_encode_value): Likewise. 17957 * varasm.c (output_constant): Likewise. 17958 179592017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17960 Alan Hayward <alan.hayward@arm.com> 17961 David Sherwood <david.sherwood@arm.com> 17962 17963 * coretypes.h (scalar_mode): New class. 17964 * machmode.h (scalar_mode): Likewise. 17965 (scalar_mode::includes_p): New function. 17966 (mode_to_inner): Return a scalar_mode rather than a machine_mode. 17967 * gdbhooks.py (build_pretty_printers): Handle scalar_mode. 17968 * genmodes.c (get_mode_class): Handle remaining scalar modes. 17969 * cfgexpand.c (expand_debug_expr): Use scalar_mode. 17970 * expmed.c (store_bit_field_1): Likewise. 17971 (extract_bit_field_1): Likewise. 17972 * expr.c (write_complex_part): Likewise. 17973 (read_complex_part): Likewise. 17974 (emit_move_complex_push): Likewise. 17975 (expand_expr_real_2): Likewise. 17976 * function.c (assign_parm_setup_reg): Likewise. 17977 (assign_parms_unsplit_complex): Likewise. 17978 * optabs.c (expand_binop): Likewise. 17979 * rtlanal.c (subreg_get_info): Likewise. 17980 * simplify-rtx.c (simplify_immed_subreg): Likewise. 17981 * varasm.c (output_constant_pool_2): Likewise. 17982 179832017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17984 Alan Hayward <alan.hayward@arm.com> 17985 David Sherwood <david.sherwood@arm.com> 17986 17987 * expmed.c (extract_high_half): Use scalar_int_mode and remove 17988 assertion. 17989 (expmed_mult_highpart_optab): Likewise. 17990 (expmed_mult_highpart): Likewise. 17991 179922017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 17993 Alan Hayward <alan.hayward@arm.com> 17994 David Sherwood <david.sherwood@arm.com> 17995 17996 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode 17997 instead of a machine_mode. 17998 (builtin_memset_read_str): Likewise. 17999 * builtins.c (c_readstr): Likewise. 18000 (builtin_memcpy_read_str): Likewise. 18001 (builtin_strncpy_read_str): Likewise. 18002 (builtin_memset_read_str): Likewise. 18003 (builtin_memset_gen_str): Likewise. 18004 (expand_builtin_signbit): Use scalar_int_mode for local variables. 18005 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode 18006 instead of a machine_mode. 18007 * combine.c (simplify_if_then_else): Use scalar_int_mode for local 18008 variables. 18009 (make_extraction): Likewise. 18010 (try_widen_shift_mode): Take and return scalar_int_modes instead 18011 of machine_modes. 18012 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return 18013 a scalar_int_mode instead of a machine_mode. 18014 * config/avr/avr.c (avr_addr_space_address_mode): Likewise. 18015 (avr_addr_space_pointer_mode): Likewise. 18016 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise. 18017 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise. 18018 (msp430_unwind_word_mode): Likewise. 18019 * config/spu/spu.c (spu_unwind_word_mode): Likewise. 18020 (spu_addr_space_pointer_mode): Likewise. 18021 (spu_addr_space_address_mode): Likewise. 18022 (spu_libgcc_cmp_return_mode): Likewise. 18023 (spu_libgcc_shift_count_mode): Likewise. 18024 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise. 18025 (rl78_addr_space_pointer_mode): Likewise. 18026 (fl78_unwind_word_mode): Likewise. 18027 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a 18028 machine_mode. 18029 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise. 18030 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise. 18031 * config/mips/mips.c (mips_mode_rep_extended): Likewise. 18032 (mips_valid_pointer_mode): Likewise. 18033 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise. 18034 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise. 18035 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead 18036 of a machine_mode. 18037 (ft32_addr_space_address_mode): Likewise. 18038 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a 18039 scalar_int_mode instead of a machine_mode. 18040 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead 18041 of a machine_mode. 18042 (m32c_addr_space_address_mode): Likewise. 18043 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise. 18044 (rs6000_eh_return_filter_mode): Likewise. 18045 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise. 18046 (rs6000_eh_return_filter_mode): Likewise. 18047 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise. 18048 (s390_libgcc_shift_count_mode): Likewise. 18049 (s390_unwind_word_mode): Likewise. 18050 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a 18051 machine_mode. 18052 * target.def (mode_rep_extended): Likewise. 18053 (valid_pointer_mode): Likewise. 18054 (addr_space.valid_pointer_mode): Likewise. 18055 (eh_return_filter_mode): Return a scalar_int_mode rather than 18056 a machine_mode. 18057 (libgcc_cmp_return_mode): Likewise. 18058 (libgcc_shift_count_mode): Likewise. 18059 (unwind_word_mode): Likewise. 18060 (addr_space.pointer_mode): Likewise. 18061 (addr_space.address_mode): Likewise. 18062 * doc/tm.texi: Regenerate. 18063 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than 18064 a machine_mode. 18065 (do_jump): Use scalar_int_mode for local variables. 18066 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode 18067 rather than a machine_mode. 18068 * dwarf2out.c (convert_descriptor_to_mode): Likewise. 18069 (scompare_loc_descriptor_wide): Likewise. 18070 (scompare_loc_descriptor_narrow): Likewise. 18071 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local 18072 variables. 18073 * except.c (sjlj_emit_dispatch_table): Likewise. 18074 (expand_builtin_eh_copy_values): Likewise. 18075 * explow.c (convert_memory_address_addr_space_1): Likewise. 18076 Take a scalar_int_mode rather than a machine_mode. 18077 (convert_memory_address_addr_space): Take a scalar_int_mode rather 18078 than a machine_mode. 18079 (memory_address_addr_space): Use scalar_int_mode for local variables. 18080 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode 18081 rather than a machine_mode. 18082 * expmed.c (mask_rtx): Likewise. 18083 (init_expmed_one_conv): Likewise. 18084 (expand_mult_highpart_adjust): Likewise. 18085 (extract_high_half): Likewise. 18086 (expmed_mult_highpart_optab): Likewise. 18087 (expmed_mult_highpart): Likewise. 18088 (expand_smod_pow2): Likewise. 18089 (expand_sdiv_pow2): Likewise. 18090 (emit_store_flag_int): Likewise. 18091 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local 18092 variables. 18093 (extract_low_bits): Likewise. 18094 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than 18095 a machine_mode. 18096 * expr.c (pieces_addr::adjust): Likewise. 18097 (can_store_by_pieces): Likewise. 18098 (store_by_pieces): Likewise. 18099 (clear_by_pieces_1): Likewise. 18100 (expand_expr_addr_expr_1): Likewise. 18101 (expand_expr_addr_expr): Use scalar_int_mode for local variables. 18102 (expand_expr_real_1): Likewise. 18103 (try_casesi): Likewise. 18104 * final.c (shorten_branches): Likewise. 18105 * fold-const.c (fold_convert_const_int_from_fixed): Change the 18106 type of "mode" to machine_mode. 18107 * internal-fn.c (expand_arith_overflow_result_store): Take a 18108 scalar_int_mode rather than a machine_mode. 18109 (expand_mul_overflow): Use scalar_int_mode for local variables. 18110 * loop-doloop.c (doloop_modify): Likewise. 18111 (doloop_optimize): Likewise. 18112 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather 18113 than a machine_mode. 18114 (expand_doubleword_shift_condmove): Likewise. 18115 (expand_doubleword_shift): Likewise. 18116 (expand_doubleword_clz): Likewise. 18117 (expand_doubleword_popcount): Likewise. 18118 (expand_doubleword_parity): Likewise. 18119 (expand_absneg_bit): Use scalar_int_mode for local variables. 18120 (prepare_float_lib_cmp): Likewise. 18121 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode 18122 rather than a machine_mode. 18123 (convert_memory_address_addr_space): Likewise. 18124 (get_mode_bounds): Likewise. 18125 (get_address_mode): Return a scalar_int_mode rather than a 18126 machine_mode. 18127 * rtlanal.c (get_address_mode): Likewise. 18128 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather 18129 than a machine_mode. 18130 * targhooks.c (default_mode_rep_extended): Likewise. 18131 (default_valid_pointer_mode): Likewise. 18132 (default_addr_space_valid_pointer_mode): Likewise. 18133 (default_eh_return_filter_mode): Return a scalar_int_mode rather 18134 than a machine_mode. 18135 (default_libgcc_cmp_return_mode): Likewise. 18136 (default_libgcc_shift_count_mode): Likewise. 18137 (default_unwind_word_mode): Likewise. 18138 (default_addr_space_pointer_mode): Likewise. 18139 (default_addr_space_address_mode): Likewise. 18140 * targhooks.h (default_eh_return_filter_mode): Likewise. 18141 (default_libgcc_cmp_return_mode): Likewise. 18142 (default_libgcc_shift_count_mode): Likewise. 18143 (default_unwind_word_mode): Likewise. 18144 (default_addr_space_pointer_mode): Likewise. 18145 (default_addr_space_address_mode): Likewise. 18146 (default_mode_rep_extended): Take a scalar_int_mode rather than 18147 a machine_mode. 18148 (default_valid_pointer_mode): Likewise. 18149 (default_addr_space_valid_pointer_mode): Likewise. 18150 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for 18151 local variables. 18152 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode 18153 rather than a machine_mode. 18154 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode 18155 for local variables. 18156 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. 18157 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather 18158 than a machine_mode. 18159 181602017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18161 Alan Hayward <alan.hayward@arm.com> 18162 David Sherwood <david.sherwood@arm.com> 18163 18164 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of 18165 the mode argument to scalar_int_mode. 18166 (do_jump_by_parts_zero_rtx): Likewise. 18167 (do_jump_by_parts_equality_rtx): Likewise. 18168 (do_jump_by_parts_greater): Take a mode argument. 18169 (do_jump_by_parts_equality): Likewise. 18170 (do_jump_1): Update calls accordingly. 18171 181722017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18173 Alan Hayward <alan.hayward@arm.com> 18174 David Sherwood <david.sherwood@arm.com> 18175 18176 * is-a.h (safe_dyn_cast): New function. 18177 * rtl.h (rtx_jump_table_data::get_data_mode): New function. 18178 (jump_table_for_label): Likewise. 18179 * final.c (final_addr_vec_align): Take an rtx_jump_table_data * 18180 instead of an rtx_insn *. 18181 (shorten_branches): Use dyn_cast instead of LABEL_P and 18182 JUMP_TABLE_DATA_P. Use jump_table_for_label and 18183 rtx_jump_table_data::get_data_mode. 18184 (final_scan_insn): Likewise. 18185 181862017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18187 Alan Hayward <alan.hayward@arm.com> 18188 David Sherwood <david.sherwood@arm.com> 18189 18190 * combine.c (try_combine): Use is_a <scalar_int_mode> when 18191 trying to combine a full-register integer set with a subreg 18192 integer set. 18193 181942017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18195 Alan Hayward <alan.hayward@arm.com> 18196 David Sherwood <david.sherwood@arm.com> 18197 18198 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable 18199 that is always either address_mode or pointer_mode. 18200 182012017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18202 Alan Hayward <alan.hayward@arm.com> 18203 David Sherwood <david.sherwood@arm.com> 18204 18205 * expr.c (expand_expr_real_2): Use word_mode instead of innermode 18206 when the two are known to be equal. 18207 182082017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18209 Alan Hayward <alan.hayward@arm.com> 18210 David Sherwood <david.sherwood@arm.com> 18211 18212 * simplify-rtx.c (simplify_const_unary_operation): Use 18213 is_a <scalar_int_mode> instead of checking for a nonzero 18214 precision. Forcibly convert op_mode to a scalar_int_mode 18215 in that case. More clearly differentiate the operand and 18216 result modes and use the former when deciding what the value 18217 of a count-bits operation should be. Use is_int_mode instead 18218 of checking for a MODE_INT. Remove redundant check for whether 18219 this mode has a zero precision. 18220 182212017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18222 Alan Hayward <alan.hayward@arm.com> 18223 David Sherwood <david.sherwood@arm.com> 18224 18225 * optabs.c (widen_leading): Change the type of the mode argument 18226 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator. 18227 (widen_bswap): Likewise. 18228 (expand_parity): Likewise. 18229 (expand_ctz): Change the type of the mode argument to scalar_int_mode. 18230 (expand_ffs): Likewise. 18231 (epand_unop): Check for scalar integer modes before calling the 18232 above routines. 18233 182342017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18235 Alan Hayward <alan.hayward@arm.com> 18236 David Sherwood <david.sherwood@arm.com> 18237 18238 * expr.c (const_scalar_mask_from_tree): Add a mode argument. 18239 Expand commentary. 18240 (expand_expr_real_1): Update call accordingly. 18241 182422017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18243 Alan Hayward <alan.hayward@arm.com> 18244 David Sherwood <david.sherwood@arm.com> 18245 18246 * expmed.c (store_bit_field_using_insv): Add op0_mode and 18247 value_mode arguments. Use scalar_int_mode internally. 18248 (store_bit_field_1): Rename the new integer mode from imode 18249 to op0_mode and use it instead of GET_MODE (op0). Update calls 18250 to store_split_bit_field, store_bit_field_using_insv and 18251 store_fixed_bit_field. 18252 (store_fixed_bit_field): Add op0_mode and value_mode arguments. 18253 Use scalar_int_mode internally. Use a bit count rather than a mode 18254 when calculating the largest bit size for get_best_mode. 18255 Update calls to store_split_bit_field and store_fixed_bit_field_1. 18256 (store_fixed_bit_field_1): Add mode and value_mode arguments. 18257 Remove assertion that OP0 has a scalar integer mode. 18258 (store_split_bit_field): Add op0_mode and value_mode arguments. 18259 Update calls to extract_fixed_bit_field. 18260 (extract_bit_field_using_extv): Add an op0_mode argument. 18261 Use scalar_int_mode internally. 18262 (extract_bit_field_1): Rename the new integer mode from imode to 18263 op0_mode and use it instead of GET_MODE (op0). Update calls to 18264 extract_split_bit_field, extract_bit_field_using_extv and 18265 extract_fixed_bit_field. 18266 (extract_fixed_bit_field): Add an op0_mode argument. Update calls 18267 to extract_split_bit_field and extract_fixed_bit_field_1. 18268 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion 18269 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode> 18270 on the target mode. 18271 (extract_split_bit_field): Add an op0_mode argument. Update call 18272 to extract_fixed_bit_field. 18273 182742017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18275 Alan Hayward <alan.hayward@arm.com> 18276 David Sherwood <david.sherwood@arm.com> 18277 18278 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator. 18279 * explow.c (hard_function_value): Likewise. 18280 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the 18281 convert_to_mode call outside the loop. 18282 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode 18283 for the mode iterator. Require the mode specified by max_pieces 18284 to exist. 18285 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the 18286 mode iterator. 18287 (copy_blkmode_to_reg): Likewise. 18288 (set_storage_via_setmem): Likewise. 18289 * optabs.c (prepare_cmp_insn): Likewise. 18290 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. 18291 * stor-layout.c (finish_bitfield_representative): Likewise. 18292 182932017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18294 Alan Hayward <alan.hayward@arm.com> 18295 David Sherwood <david.sherwood@arm.com> 18296 18297 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions. 18298 * expr.c (convert_move): Use them. 18299 (convert_modes): Likewise. 18300 (store_expr_with_bounds): Likewise. 18301 183022017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18303 Alan Hayward <alan.hayward@arm.com> 18304 David Sherwood <david.sherwood@arm.com> 18305 18306 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode 18307 parameter for the mode of "x". Remove the "known_x", "known_mode" 18308 and "known_ret" arguments. Change the type of the mode argument 18309 to scalar_int_mode. 18310 (rtl_hooks:reg_num_sign_bit_copies): Likewise. 18311 * combine.c (reg_nonzero_bits_for_combine): Update accordingly. 18312 (reg_num_sign_bit_copies_for_combine): Likewise. 18313 * rtlanal.c (nonzero_bits1): Likewise. 18314 (num_sign_bit_copies1): Likewise. 18315 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise. 18316 (reg_num_sign_bit_copies_general): Likewise. 18317 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise. 18318 (reg_nonzero_bits_general): Likewise. 18319 183202017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18321 Alan Hayward <alan.hayward@arm.com> 18322 David Sherwood <david.sherwood@arm.com> 18323 18324 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather 18325 than in subroutines. Return 1 for non-integer modes. 18326 (cached_num_sign_bit_copies): Change the type of the mode parameter 18327 to scalar_int_mode. 18328 (num_sign_bit_copies1): Likewise. Remove early exit for other mode 18329 classes. Handle CONST_INT_P first and then check whether X also 18330 has a scalar integer mode. Check the same thing for inner registers 18331 of a SUBREG and for values that are being extended or truncated. 18332 183332017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18334 Alan Hayward <alan.hayward@arm.com> 18335 David Sherwood <david.sherwood@arm.com> 18336 18337 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than 18338 in subroutines. Return the mode mask for non-integer modes. 18339 (cached_nonzero_bits): Change the type of the mode parameter 18340 to scalar_int_mode. 18341 (nonzero_bits1): Likewise. Remove early exit for other mode 18342 classes. Handle CONST_INT_P first and then check whether X 18343 also has a scalar integer mode. 18344 183452017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18346 Alan Hayward <alan.hayward@arm.com> 18347 David Sherwood <david.sherwood@arm.com> 18348 18349 * expr.c (widest_int_mode_for_size): Make the comment match the code. 18350 Return a scalar_int_mode and assert that the size is greater than 18351 one byte. 18352 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling. 18353 (op_by_pieces_d::op_by_pieces_d): Likewise. 18354 (op_by_pieces_d::run): Likewise. 18355 (can_store_by_pieces): Likewise. 18356 183572017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18358 Alan Hayward <alan.hayward@arm.com> 18359 David Sherwood <david.sherwood@arm.com> 18360 18361 * combine.c (extract_left_shift): Add a mode argument and update 18362 recursive calls. 18363 (make_compound_operation_int): Change the type of the mode parameter 18364 to scalar_int_mode and update the call to extract_left_shift. 18365 183662017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18367 Alan Hayward <alan.hayward@arm.com> 18368 David Sherwood <david.sherwood@arm.com> 18369 18370 * combine.c (simplify_and_const_int): Change the type of the mode 18371 parameter to scalar_int_mode. 18372 (simplify_and_const_int_1): Likewise. Update recursive call. 18373 183742017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18375 Alan Hayward <alan.hayward@arm.com> 18376 David Sherwood <david.sherwood@arm.com> 18377 18378 * combine.c (simplify_compare_const): Check that the mode is a 18379 scalar_int_mode (rather than VOIDmode) before testing its 18380 precision. 18381 (simplify_comparison): Move COMPARISON_P handling out of the 18382 loop and restrict the latter part of the loop to scalar_int_modes. 18383 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P 18384 and when considering SUBREG_REGs. Use is_int_mode instead of 18385 checking GET_MODE_CLASS against MODE_INT. 18386 183872017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18388 Alan Hayward <alan.hayward@arm.com> 18389 David Sherwood <david.sherwood@arm.com> 18390 18391 * combine.c (try_widen_shift_mode): Move check for equal modes to... 18392 (simplify_shift_const_1): ...here. Use scalar_int_mode for 18393 shift_unit_mode and for modes involved in scalar shifts. 18394 183952017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18396 Alan Hayward <alan.hayward@arm.com> 18397 David Sherwood <david.sherwood@arm.com> 18398 18399 * combine.c (force_int_to_mode): New function, split out from... 18400 (force_to_mode): ...here. Keep xmode up-to-date and use it 18401 instead of GET_MODE (x). 18402 184032017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18404 Alan Hayward <alan.hayward@arm.com> 18405 David Sherwood <david.sherwood@arm.com> 18406 18407 * optabs-query.h (extraction_insn::struct_mode): Change type to 18408 opt_scalar_int_mode and update comment. 18409 (extraction_insn::field_mode): Change type to scalar_int_mode. 18410 (extraction_insn::pos_mode): Likewise. 18411 * combine.c (make_extraction): Update accordingly. 18412 * optabs-query.c (get_traditional_extraction_insn): Likewise. 18413 (get_optab_extraction_insn): Likewise. 18414 * recog.c (simplify_while_replacing): Likewise. 18415 * expmed.c (narrow_bit_field_mem): Change the type of the mode 18416 parameter to opt_scalar_int_mode. 18417 184182017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18419 Alan Hayward <alan.hayward@arm.com> 18420 David Sherwood <david.sherwood@arm.com> 18421 18422 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer 18423 to a scalar_int_mode instead of a machine_mode. 18424 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode. 18425 (get_best_mode): Return a boolean and use a pointer argument to store 18426 the selected mode. Replace the limit mode parameter with a bit limit. 18427 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode 18428 for the values returned by bit_field_mode_iterator::next_mode. 18429 (store_bit_field): Update call to get_best_mode. 18430 (store_fixed_bit_field): Likewise. 18431 (extract_fixed_bit_field): Likewise. 18432 * expr.c (optimize_bitfield_assignment_op): Likewise. 18433 * fold-const.c (optimize_bit_field_compare): Likewise. 18434 (fold_truth_andor_1): Likewise. 18435 * stor-layout.c (bit_field_mode_iterator::next_mode): As above. 18436 Update for new type of m_mode. 18437 (get_best_mode): As above. 18438 184392017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18440 Alan Hayward <alan.hayward@arm.com> 18441 David Sherwood <david.sherwood@arm.com> 18442 18443 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode 18444 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P. 18445 (store_bit_field): Check is_a <scalar_int_mode> before calling 18446 strict_volatile_bitfield_p. 18447 (extract_bit_field): Likewise. 18448 184492017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18450 Alan Hayward <alan.hayward@arm.com> 18451 David Sherwood <david.sherwood@arm.com> 18452 18453 * target.def (cstore_mode): Return a scalar_int_mode. 18454 * doc/tm.texi: Regenerate. 18455 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode. 18456 * targhooks.h (default_cstore_mode): Likewise. 18457 * targhooks.c (default_cstore_mode): Likewise, using a forced 18458 conversion. 18459 * expmed.c (emit_cstore): Expect the target of the cstore to be 18460 a scalar_int_mode. 18461 184622017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18463 Alan Hayward <alan.hayward@arm.com> 18464 David Sherwood <david.sherwood@arm.com> 18465 18466 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to 18467 scalar_int_mode. 18468 (niter_desc): Likewise mode. 18469 (iv_analyze): Add a mode parameter. 18470 (biv_p): Likewise. 18471 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes 18472 and change its type to scalar_int_mode. 18473 * loop-iv.c: Update commentary at head of file. 18474 (iv_constant): Pass the mode paraeter before the rtx it describes 18475 and change its type to scalar_int_mode. Remove VOIDmode handling. 18476 (iv_subreg): Change the type of the mode parameter to scalar_int_mode. 18477 (iv_extend): Likewise. 18478 (shorten_into_mode): Likewise. 18479 (iv_add): Use scalar_int_mode. 18480 (iv_mult): Likewise. 18481 (iv_shift): Likewise. 18482 (canonicalize_iv_subregs): Likewise. 18483 (get_biv_step_1): Pass the outer_mode parameter before the rtx 18484 it describes and change its mode to scalar_int_mode. Also change 18485 the type of the returned inner_mode to scalar_int_mode. 18486 (get_biv_step): Likewise, turning outer_mode from a pointer 18487 into a direct parameter. Update call to get_biv_step_1. 18488 (iv_analyze_biv): Add an outer_mode parameter. Update calls to 18489 iv_constant and get_biv_step. 18490 (iv_analyze_expr): Pass the mode parameter before the rtx it describes 18491 and change its type to scalar_int_mode. Don't initialise iv->mode 18492 to VOIDmode and remove later checks for its still being VOIDmode. 18493 Update calls to iv_analyze_op and iv_analyze_expr. Check 18494 is_a <scalar_int_mode> when changing the mode under consideration. 18495 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode. 18496 Update call to iv_analyze_expr. 18497 (iv_analyze_op): Add a mode parameter. Reject subregs whose 18498 inner register is not also a scalar_int_mode. Update call to 18499 iv_analyze_biv. 18500 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op. 18501 (biv_p): Add a mode parameter. Update call to iv_analyze_biv. 18502 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of 18503 separate mode class checks. Update calls to iv_analyze. Remove 18504 fix-up of VOIDmodes after iv_analyze_biv. 18505 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that 18506 don't have a scalar_int_mode. Update call to biv_p. 18507 185082017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18509 Alan Hayward <alan.hayward@arm.com> 18510 David Sherwood <david.sherwood@arm.com> 18511 18512 * cfgexpand.c (convert_debug_memory_address): Use 18513 as_a <scalar_int_mode>. 18514 * combine.c (expand_compound_operation): Likewise. 18515 (make_extraction): Likewise. 18516 (change_zero_ext): Likewise. 18517 (simplify_comparison): Likewise. 18518 * cse.c (cse_insn): Likewise. 18519 * dwarf2out.c (minmax_loc_descriptor): Likewise. 18520 (mem_loc_descriptor): Likewise. 18521 (loc_descriptor): Likewise. 18522 * expmed.c (init_expmed_one_mode): Likewise. 18523 (synth_mult): Likewise. 18524 (emit_store_flag_1): Likewise. 18525 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead 18526 of a comparison with size. 18527 * expr.c (expand_assignment): Use as_a <scalar_int_mode>. 18528 (reduce_to_bit_field_precision): Likewise. 18529 * function.c (expand_function_end): Likewise. 18530 * internal-fn.c (expand_arith_overflow_result_store): Likewise. 18531 * loop-doloop.c (doloop_modify): Likewise. 18532 * optabs.c (expand_binop): Likewise. 18533 (expand_unop): Likewise. 18534 (expand_copysign_absneg): Likewise. 18535 (prepare_cmp_insn): Likewise. 18536 (maybe_legitimize_operand): Likewise. 18537 * recog.c (const_scalar_int_operand): Likewise. 18538 * rtlanal.c (get_address_mode): Likewise. 18539 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 18540 (simplify_cond_clz_ctz): Likewise. 18541 * tree-nested.c (get_nl_goto_field): Likewise. 18542 * tree.c (build_vector_type_for_mode): Likewise. 18543 * var-tracking.c (use_narrower_mode): Likewise. 18544 185452017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18546 Alan Hayward <alan.hayward@arm.com> 18547 David Sherwood <david.sherwood@arm.com> 18548 18549 * tree.h (SCALAR_INT_TYPE_MODE): New macro. 18550 * builtins.c (expand_builtin_signbit): Use it. 18551 * cfgexpand.c (expand_debug_expr): Likewise. 18552 * dojump.c (do_jump): Likewise. 18553 (do_compare_and_jump): Likewise. 18554 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise. 18555 * expmed.c (make_tree): Likewise. 18556 * expr.c (expand_expr_real_2): Likewise. 18557 (expand_expr_real_1): Likewise. 18558 (try_casesi): Likewise. 18559 * fold-const-call.c (fold_const_call_ss): Likewise. 18560 * fold-const.c (unextend): Likewise. 18561 (extract_muldiv_1): Likewise. 18562 (fold_single_bit_test): Likewise. 18563 (native_encode_int): Likewise. 18564 (native_encode_string): Likewise. 18565 (native_interpret_int): Likewise. 18566 * gimple-fold.c (gimple_fold_builtin_memset): Likewise. 18567 * internal-fn.c (expand_addsub_overflow): Likewise. 18568 (expand_neg_overflow): Likewise. 18569 (expand_mul_overflow): Likewise. 18570 (expand_arith_overflow): Likewise. 18571 * match.pd: Likewise. 18572 * stor-layout.c (layout_type): Likewise. 18573 * tree-cfg.c (verify_gimple_assign_ternary): Likewise. 18574 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise. 18575 * tree-ssanames.c (get_range_info): Likewise. 18576 * tree-switch-conversion.c (array_value_type) Likewise. 18577 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise. 18578 (vect_recog_divmod_pattern): Likewise. 18579 (vect_recog_mixed_size_cond_pattern): Likewise. 18580 * tree-vrp.c (extract_range_basic): Likewise. 18581 (simplify_float_conversion_using_ranges): Likewise. 18582 * tree.c (int_fits_type_p): Likewise. 18583 * ubsan.c (instrument_bool_enum_load): Likewise. 18584 * varasm.c (mergeable_string_section): Likewise. 18585 (narrowing_initializer_constant_valid_p): Likewise. 18586 (output_constant): Likewise. 18587 185882017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18589 Alan Hayward <alan.hayward@arm.com> 18590 David Sherwood <david.sherwood@arm.com> 18591 18592 * machmode.h (NARROWEST_INT_MODE): New macro. 18593 * expr.c (alignment_for_piecewise_move): Use it instead of 18594 GET_CLASS_NARROWEST_MODE (MODE_INT). 18595 (push_block): Likewise. 18596 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): 18597 Likewise. 18598 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. 18599 186002017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18601 Alan Hayward <alan.hayward@arm.com> 18602 David Sherwood <david.sherwood@arm.com> 18603 18604 * postreload.c (move2add_valid_value_p): Change the type of the 18605 mode parameter to scalar_int_mode. 18606 (move2add_use_add2_insn): Add a mode parameter and use it instead 18607 of GET_MODE (reg). 18608 (move2add_use_add3_insn): Likewise. 18609 (reload_cse_move2add): Update accordingly. 18610 186112017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18612 Alan Hayward <alan.hayward@arm.com> 18613 David Sherwood <david.sherwood@arm.com> 18614 18615 * expr.c (expand_expr_real_2): Use scalar_int_mode for the 18616 double-word mode. 18617 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>. 18618 * optabs.c (expand_unop): Likewise. 18619 186202017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18621 Alan Hayward <alan.hayward@arm.com> 18622 David Sherwood <david.sherwood@arm.com> 18623 18624 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode. 18625 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check. 18626 (popcount_loc_descriptor): Likewise. 18627 (bswap_loc_descriptor): Likewise. 18628 (rotate_loc_descriptor): Likewise. 18629 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before 18630 calling the functions above. 18631 186322017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18633 Alan Hayward <alan.hayward@arm.com> 18634 David Sherwood <david.sherwood@arm.com> 18635 18636 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode> 18637 checks. 18638 (try_combine): Likewise. 18639 (simplify_if_then_else): Likewise. 18640 * cse.c (cse_insn): Likewise. 18641 * dwarf2out.c (mem_loc_descriptor): Likewise. 18642 * emit-rtl.c (gen_lowpart_common): Likewise. 18643 * simplify-rtx.c (simplify_truncation): Likewise. 18644 (simplify_binary_operation_1): Likewise. 18645 (simplify_const_relational_operation): Likewise. 18646 (simplify_ternary_operation): Likewise. 18647 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. 18648 186492017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18650 Alan Hayward <alan.hayward@arm.com> 18651 David Sherwood <david.sherwood@arm.com> 18652 18653 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks. 18654 * reload.c (push_reload): Likewise. 18655 (find_reloads): Likewise. 18656 186572017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18658 Alan Hayward <alan.hayward@arm.com> 18659 David Sherwood <david.sherwood@arm.com> 18660 18661 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks. 18662 (make_compound_operation_int): Likewise. 18663 (change_zero_ext): Likewise. 18664 * expr.c (convert_move): Likewise. 18665 (convert_modes): Likewise. 18666 * fwprop.c (forward_propagate_subreg): Likewise. 18667 * loop-iv.c (get_biv_step_1): Likewise. 18668 * optabs.c (widen_operand): Likewise. 18669 * postreload.c (move2add_valid_value_p): Likewise. 18670 * recog.c (simplify_while_replacing): Likewise. 18671 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 18672 (simplify_binary_operation_1): Likewise. Remove redundant 18673 mode equality check. 18674 186752017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18676 Alan Hayward <alan.hayward@arm.com> 18677 David Sherwood <david.sherwood@arm.com> 18678 18679 * combine.c (combine_simplify_rtx): Add checks for 18680 is_a <scalar_int_mode>. 18681 (simplify_if_then_else): Likewise. 18682 (make_field_assignment): Likewise. 18683 (simplify_comparison): Likewise. 18684 * ifcvt.c (noce_try_bitop): Likewise. 18685 * loop-invariant.c (canonicalize_address_mult): Likewise. 18686 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 18687 186882017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18689 Alan Hayward <alan.hayward@arm.com> 18690 David Sherwood <david.sherwood@arm.com> 18691 18692 * gimple-fold.c (gimple_fold_builtin_memory_op): Use 18693 is_a <scalar_int_mode> instead of != BLKmode. 18694 186952017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18696 Alan Hayward <alan.hayward@arm.com> 18697 David Sherwood <david.sherwood@arm.com> 18698 18699 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode> 18700 instead of != VOIDmode. 18701 * combine.c (if_then_else_cond): Likewise. 18702 (change_zero_ext): Likewise. 18703 * dwarf2out.c (mem_loc_descriptor): Likewise. 18704 (loc_descriptor): Likewise. 18705 * rtlanal.c (canonicalize_condition): Likewise. 18706 * simplify-rtx.c (simplify_relational_operation_1): Likewise. 18707 187082017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18709 Alan Hayward <alan.hayward@arm.com> 18710 David Sherwood <david.sherwood@arm.com> 18711 18712 * simplify-rtx.c (simplify_binary_operation_1): Use 18713 is_a <scalar_int_mode> instead of !VECTOR_MODE_P. 18714 187152017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18716 Alan Hayward <alan.hayward@arm.com> 18717 David Sherwood <david.sherwood@arm.com> 18718 18719 * wide-int.h (int_traits<unsigned char>) New class. 18720 (int_traits<unsigned short>) Likewise. 18721 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>. 18722 Use GET_MODE_UNIT_PRECISION and remove redundant test for 18723 SCALAR_INT_MODE_P. 18724 * combine.c (set_nonzero_bits_and_sign_copies): Use 18725 is_a <scalar_int_mode>. 18726 (find_split_point): Likewise. 18727 (combine_simplify_rtx): Likewise. 18728 (simplify_logical): Likewise. 18729 (expand_compound_operation): Likewise. 18730 (expand_field_assignment): Likewise. 18731 (make_compound_operation): Likewise. 18732 (extended_count): Likewise. 18733 (change_zero_ext): Likewise. 18734 (simplify_comparison): Likewise. 18735 * dwarf2out.c (scompare_loc_descriptor): Likewise. 18736 (ucompare_loc_descriptor): Likewise. 18737 (minmax_loc_descriptor): Likewise. 18738 (mem_loc_descriptor): Likewise. 18739 (loc_descriptor): Likewise. 18740 * expmed.c (init_expmed_one_mode): Likewise. 18741 * lra-constraints.c (lra_constraint_offset): Likewise. 18742 * optabs.c (prepare_libcall_arg): Likewise. 18743 * postreload.c (move2add_note_store): Likewise. 18744 * reload.c (operands_match_p): Likewise. 18745 * rtl.h (load_extend_op): Likewise. 18746 * rtlhooks.c (gen_lowpart_general): Likewise. 18747 * simplify-rtx.c (simplify_truncation): Likewise. 18748 (simplify_unary_operation_1): Likewise. 18749 (simplify_binary_operation_1): Likewise. 18750 (simplify_const_binary_operation): Likewise. 18751 (simplify_const_relational_operation): Likewise. 18752 (simplify_subreg): Likewise. 18753 * stor-layout.c (bitwise_mode_for_mode): Likewise. 18754 * var-tracking.c (adjust_mems): Likewise. 18755 (prepare_call_arguments): Likewise. 18756 187572017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18758 Alan Hayward <alan.hayward@arm.com> 18759 David Sherwood <david.sherwood@arm.com> 18760 18761 * machmode.h (is_int_mode): New fuction. 18762 * combine.c (find_split_point): Use it. 18763 (combine_simplify_rtx): Likewise. 18764 (simplify_if_then_else): Likewise. 18765 (simplify_set): Likewise. 18766 (simplify_shift_const_1): Likewise. 18767 (simplify_comparison): Likewise. 18768 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise. 18769 * cse.c (notreg_cost): Likewise. 18770 (cse_insn): Likewise. 18771 * cselib.c (cselib_lookup_1): Likewise. 18772 * dojump.c (do_jump_1): Likewise. 18773 (do_compare_rtx_and_jump): Likewise. 18774 * dse.c (get_call_args): Likewise. 18775 * dwarf2out.c (rtl_for_decl_init): Likewise. 18776 (native_encode_initializer): Likewise. 18777 * expmed.c (emit_store_flag_1): Likewise. 18778 (emit_store_flag): Likewise. 18779 * expr.c (convert_modes): Likewise. 18780 (store_field): Likewise. 18781 (expand_expr_real_1): Likewise. 18782 * fold-const.c (fold_read_from_constant_string): Likewise. 18783 * gimple-ssa-sprintf.c (get_format_string): Likewise. 18784 * optabs-libfuncs.c (gen_int_libfunc): Likewise. 18785 * optabs.c (expand_binop): Likewise. 18786 (expand_unop): Likewise. 18787 (expand_abs_nojump): Likewise. 18788 (expand_one_cmpl_abs_nojump): Likewise. 18789 * simplify-rtx.c (mode_signbit_p): Likewise. 18790 (val_signbit_p): Likewise. 18791 (val_signbit_known_set_p): Likewise. 18792 (val_signbit_known_clear_p): Likewise. 18793 (simplify_relational_operation_1): Likewise. 18794 * tree.c (vector_type_mode): Likewise. 18795 187962017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18797 Alan Hayward <alan.hayward@arm.com> 18798 David Sherwood <david.sherwood@arm.com> 18799 18800 * machmode.h (smallest_mode_for_size): Fix formatting. 18801 (smallest_int_mode_for_size): New function. 18802 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size 18803 instead of smallest_mode_for_size. 18804 * combine.c (make_extraction): Likewise. 18805 * config/arc/arc.c (arc_expand_movmem): Likewise. 18806 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise. 18807 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 18808 * config/s390/s390.c (s390_expand_insv): Likewise. 18809 * config/sparc/sparc.c (assign_int_registers): Likewise. 18810 * config/spu/spu.c (spu_function_value): Likewise. 18811 (spu_function_arg): Likewise. 18812 * coverage.c (get_gcov_type): Likewise. 18813 (get_gcov_unsigned_t): Likewise. 18814 * dse.c (find_shift_sequence): Likewise. 18815 * expmed.c (store_bit_field_1): Likewise. 18816 * expr.c (convert_move): Likewise. 18817 (store_field): Likewise. 18818 * internal-fn.c (expand_arith_overflow): Likewise. 18819 * optabs-query.c (get_best_extraction_insn): Likewise. 18820 * optabs.c (expand_twoval_binop_libfunc): Likewise. 18821 * stor-layout.c (layout_type): Likewise. 18822 (initialize_sizetypes): Likewise. 18823 * targhooks.c (default_get_mask_mode): Likewise. 18824 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise. 18825 188262017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18827 Alan Hayward <alan.hayward@arm.com> 18828 David Sherwood <david.sherwood@arm.com> 18829 18830 * machmode.h (opt_mode::else_blk): New function. 18831 (int_mode_for_mode): Declare. 18832 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode. 18833 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode 18834 return type. 18835 * cfgexpand.c (expand_debug_expr): Likewise. 18836 * combine.c (gen_lowpart_or_truncate): Likewise. 18837 (gen_lowpart_for_combine): Likewise. 18838 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise. 18839 * config/avr/avr.c (avr_to_int_mode): Likewise. 18840 (avr_out_plus_1): Likewise. 18841 (avr_out_plus): Likewise. 18842 (avr_out_round): Likewise. 18843 * config/i386/i386.c (ix86_split_to_parts): Likewise. 18844 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. 18845 (s390_expand_vcond): Likewise. 18846 * config/spu/spu.c (spu_split_immediate): Likewise. 18847 (spu_expand_mov): Likewise. 18848 * dse.c (get_stored_val): Likewise. 18849 * expmed.c (store_bit_field_1): Likewise. 18850 (convert_extracted_bit_field): Use int_mode_for_mode instead of 18851 int_mode_for_size. 18852 (extract_bit_field_1): Adjust for new int_mode_for_mode return type. 18853 (extract_low_bits): Likewise. 18854 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode 18855 handling rather than repeating the check. 18856 (emit_group_store): Likewise. 18857 (emit_move_via_integer): Adjust for new int_mode_for_mode return type. 18858 * optabs.c (expand_absneg_bit): Likewise. 18859 (expand_copysign_absneg): Likewise. 18860 (expand_copysign_bit): Likewise. 18861 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise. 18862 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 18863 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. 18864 * var-tracking.c (prepare_call_arguments): Likewise. 18865 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use 18866 int_mode_for_mode instead of mode_for_size. 18867 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. 18868 188692017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18870 Alan Hayward <alan.hayward@arm.com> 18871 David Sherwood <david.sherwood@arm.com> 18872 18873 * machmode.h (int_mode_for_size): New function. 18874 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size 18875 instead of mode_for_size. 18876 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode 18877 explicit. 18878 * combine.c (expand_field_assignment): Use int_mode_for_size 18879 instead of mode_for_size. 18880 (make_extraction): Likewise. 18881 (simplify_shift_const_1): Likewise. 18882 (simplify_comparison): Likewise. 18883 * dojump.c (do_jump): Likewise. 18884 * dwarf2out.c (mem_loc_descriptor): Likewise. 18885 * emit-rtl.c (init_derived_machine_modes): Likewise. 18886 * expmed.c (flip_storage_order): Likewise. 18887 (convert_extracted_bit_field): Likewise. 18888 * expr.c (copy_blkmode_from_reg): Likewise. 18889 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise. 18890 * internal-fn.c (expand_mul_overflow): Likewise. 18891 * lower-subreg.c (simple_move): Likewise. 18892 * optabs-libfuncs.c (init_optabs): Likewise. 18893 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 18894 * tree.c (vector_type_mode): Likewise. 18895 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. 18896 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise. 18897 * tree-vect-generic.c (expand_vector_parallel): Likewise. 18898 * tree-vect-stmts.c (vectorizable_load): Likewise. 18899 (vectorizable_store): Likewise. 18900 189012017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18902 Alan Hayward <alan.hayward@arm.com> 18903 David Sherwood <david.sherwood@arm.com> 18904 18905 * coretypes.h (pod_mode): New type. 18906 (scalar_int_mode_pod): New typedef. 18907 * machmode.h (pod_mode): New class. 18908 (int_n_data_t::m): Change type to scalar_int_mode_pod. 18909 * genmodes.c (emit_mode_int_n): Update accordingly. 18910 * lower-subreg.h (target_lower_subreg): Change type to 18911 scalar_int_mode_pod. 18912 * gdbhooks.py (build_pretty_printer): Handle pod_mode and 18913 scalar_int_mode_pod. 18914 189152017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18916 Alan Hayward <alan.hayward@arm.com> 18917 David Sherwood <david.sherwood@arm.com> 18918 18919 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from 18920 machine_mode to scalar_int_mode. 18921 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise. 18922 (rs6000_option_override_internal): Remove cast to int. 18923 * config/rs6000/rs6000.h (rs6000_pmode): Change type from 18924 machine_mode to scalar_int_mode. 18925 * config/rs6000/rs6000.c (rs6000_pmode): Likewise. 18926 (rs6000_option_override_internal): Remove cast to int. 18927 * config/s390/s390.h (Pmode): Remove cast to machine_mode. 18928 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast 18929 to machine_mode. 18930 * config/s390/s390.c (s390_expand_builtin): Likewise. 18931 * coretypes.h (scalar_int_mode): New type. 18932 (opt_scalar_int_mode): New typedef. 18933 * machmode.h (scalar_int_mode): New class. 18934 (scalar_int_mode::includes_p): New function. 18935 (byte_mode): Change type to scalar_int_mode. 18936 (word_mode): Likewise. 18937 (ptr_mode): Likewise. 18938 * emit-rtl.c (byte_mode): Likewise. 18939 (word_mode): Likewise. 18940 (ptr_mode): Likewise. 18941 (init_derived_machine_modes): Update accordingly. 18942 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT 18943 and MODE_PARTIAL_INT. 18944 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and 18945 opt_scalar_int_mode. 18946 189472017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18948 Alan Hayward <alan.hayward@arm.com> 18949 David Sherwood <david.sherwood@arm.com> 18950 18951 * target.def (libgcc_floating_mode_supported_p): Take a 18952 scalar_float_mode. 18953 * doc/tm.texi: Regenerate. 18954 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a 18955 scalar_float_mode. 18956 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. 18957 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p): 18958 Likewise. 18959 189602017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18961 Alan Hayward <alan.hayward@arm.com> 18962 David Sherwood <david.sherwood@arm.com> 18963 18964 * target.def (default_floatn_mode): Return an opt_scalar_float_mode. 18965 * doc/tm.texi: Regenerate. 18966 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode. 18967 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise. 18968 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise. 18969 * targhooks.h (default_floatn_mode): Likewise. 18970 * targhooks.c (default_floatn_mode): Likewise. 18971 * tree.c (build_common_tree_nodes): Update accordingly. 18972 189732017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18974 Alan Hayward <alan.hayward@arm.com> 18975 David Sherwood <david.sherwood@arm.com> 18976 18977 * machmode.h (mode_iterator::start): Provide overload for opt_modes. 18978 (mode_iterator::iterate_p): Likewise. 18979 (mode_iterator::get_wider): Likewise. 18980 * expr.c (init_expr_target): Use opt_scalar_float_mode. 18981 189822017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18983 Alan Hayward <alan.hayward@arm.com> 18984 David Sherwood <david.sherwood@arm.com> 18985 18986 * coretypes.h (opt_scalar_float_mode): New typedef. 18987 * machmode.h (float_mode_for_size): New function. 18988 * emit-rtl.c (double_mode): Delete. 18989 (init_emit_once): Use float_mode_for_size. 18990 * stor-layout.c (layout_type): Likewise. 18991 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode. 18992 189932017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 18994 Alan Hayward <alan.hayward@arm.com> 18995 David Sherwood <david.sherwood@arm.com> 18996 18997 * output.h (assemble_real): Take a scalar_float_mode. 18998 * config/arm/arm.c (arm_assemble_integer): Update accordingly. 18999 * config/arm/arm.md (consttable_4): Likewise. 19000 (consttable_8): Likewise. 19001 (consttable_16): Likewise. 19002 * config/mips/mips.md (consttable_float): Likewise. 19003 * config/s390/s390.c (s390_output_pool_entry): Likewise. 19004 * varasm.c (assemble_real): Take a scalar_float_mode. 19005 (output_constant_pool_2): Update accordingly. 19006 (output_constant): Likewise. 19007 190082017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19009 Alan Hayward <alan.hayward@arm.com> 19010 David Sherwood <david.sherwood@arm.com> 19011 19012 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro. 19013 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE. 19014 * fold-const.c (fold_convert_const_real_from_fixed): Likewise. 19015 (native_encode_real): Likewise. 19016 (native_interpret_real): Likewise. 19017 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise. 19018 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. 19019 190202017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19021 Alan Hayward <alan.hayward@arm.com> 19022 David Sherwood <david.sherwood@arm.com> 19023 19024 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a 19025 <scalar_float_mode>. Simplify. 19026 (gen_extend_conv_libfunc): Likewise. 19027 190282017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19029 Alan Hayward <alan.hayward@arm.com> 19030 David Sherwood <david.sherwood@arm.com> 19031 19032 * coretypes.h (scalar_float_mode): New type. 19033 * machmode.h (mode_traits::from_int): Use machine_mode if 19034 USE_ENUM_MODES is defined. 19035 (is_a): New function. 19036 (as_a): Likewise. 19037 (dyn_cast): Likewise. 19038 (scalar_float_mode): New class. 19039 (scalar_float_mode::includes_p): New function. 19040 (is_float_mode): Likewise. 19041 * gdbhooks.py (MachineModePrinter): New class. 19042 (build_pretty_printer): Use it for scalar_float_mode. 19043 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>. 19044 (format_helper::format_helper): Turn into a template. 19045 * genmodes.c (get_mode_class): New function. 19046 (emit_insn_modes_h): Give modes the class returned by get_mode_class, 19047 or machine_mode if none. 19048 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use 19049 as_a <scalar_float_mode>. 19050 * dwarf2out.c (mem_loc_descriptor): Likewise. 19051 (insert_float): Likewise. 19052 (add_const_value_attribute): Likewise. 19053 * simplify-rtx.c (simplify_immed_subreg): Likewise. 19054 * optabs.c (expand_absneg_bit): Take a scalar_float_mode. 19055 (expand_unop): Update accordingly. 19056 (expand_abs_nojump): Likewise. 19057 (expand_copysign_absneg): Take a scalar_float_mode. 19058 (expand_copysign_bit): Likewise. 19059 (expand_copysign): Update accordingly. 19060 190612017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19062 Alan Hayward <alan.hayward@arm.com> 19063 David Sherwood <david.sherwood@arm.com> 19064 19065 * coretypes.h (opt_mode): New class. 19066 * machmode.h (opt_mode): Likewise. 19067 (opt_mode::else_void): New function. 19068 (opt_mode::require): Likewise. 19069 (opt_mode::exists): Likewise. 19070 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode. 19071 (GET_MODE_2XWIDER_MODE): Likewise. 19072 (mode_iterator::get_wider): Update accordingly. 19073 (mode_iterator::get_2xwider): Likewise. 19074 (mode_iterator::get_known_wider): Likewise, turning into a template. 19075 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE, 19076 forcing a wider mode to exist. 19077 * config/cr16/cr16.h (LONG_REG_P): Likewise. 19078 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. 19079 * config/c6x/c6x.c (c6x_rtx_costs): Update use of 19080 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist. 19081 * lower-subreg.c (init_lower_subreg): Likewise. 19082 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not 19083 on the final iteration. 19084 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether 19085 a wider mode exists before asking for a move pattern. 19086 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE, 19087 forcing a wider mode to exist. 19088 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE, 19089 returning false if no such mode exists. 19090 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise. 19091 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise. 19092 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE. 19093 Avoid checking for a MODE_INT if we already know the mode is not a 19094 SCALAR_INT_MODE_P. 19095 (extract_high_half): Update use of GET_MODE_WIDER_MODE, 19096 forcing a wider mode to exist. 19097 (expmed_mult_highpart_optab): Likewise. 19098 (expmed_mult_highpart): Likewise. 19099 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE, 19100 using else_void. 19101 * lto-streamer-in.c (lto_input_mode_table): Likewise. 19102 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise. 19103 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. 19104 * internal-fn.c (expand_mul_overflow): Update use of 19105 GET_MODE_2XWIDER_MODE. 19106 * omp-low.c (omp_clause_aligned_alignment): Likewise. 19107 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of 19108 GET_MODE_WIDER_MODE. 19109 (convert_plusminus_to_widen): Likewise. 19110 * tree-switch-conversion.c (array_value_type): Likewise. 19111 * var-tracking.c (emit_note_insn_var_location): Likewise. 19112 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. 19113 Return false inside rather than outside the loop if no wider mode 19114 exists 19115 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE 19116 and GET_MODE_2XWIDER_MODE 19117 (can_compare_p): Use else_void. 19118 * gdbhooks.py (OptMachineModePrinter): New class. 19119 (build_pretty_printer): Use it for opt_mode. 19120 191212017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19122 Alan Hayward <alan.hayward@arm.com> 19123 David Sherwood <david.sherwood@arm.com> 19124 19125 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE 19126 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE. 19127 191282017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19129 Alan Hayward <alan.hayward@arm.com> 19130 David Sherwood <david.sherwood@arm.com> 19131 19132 * machmode.h (mode_traits): New structure. 19133 (get_narrowest_mode): New function. 19134 (mode_iterator::start): Likewise. 19135 (mode_iterator::iterate_p): Likewise. 19136 (mode_iterator::get_wider): Likewise. 19137 (mode_iterator::get_known_wider): Likewise. 19138 (mode_iterator::get_2xwider): Likewise. 19139 (FOR_EACH_MODE_IN_CLASS): New mode iterator. 19140 (FOR_EACH_MODE): Likewise. 19141 (FOR_EACH_MODE_FROM): Likewise. 19142 (FOR_EACH_MODE_UNTIL): Likewise. 19143 (FOR_EACH_WIDER_MODE): Likewise. 19144 (FOR_EACH_2XWIDER_MODE): Likewise. 19145 * builtins.c (expand_builtin_strlen): Use new mode iterators. 19146 * combine.c (simplify_comparison): Likewise 19147 * config/i386/i386.c (type_natural_mode): Likewise. 19148 * cse.c (cse_insn): Likewise. 19149 * dse.c (find_shift_sequence): Likewise. 19150 * emit-rtl.c (init_derived_machine_modes): Likewise. 19151 (init_emit_once): Likewise. 19152 * explow.c (hard_function_value): Likewise. 19153 * expmed.c (extract_fixed_bit_field_1): Likewise. 19154 (extract_bit_field_1): Likewise. 19155 (expand_divmod): Likewise. 19156 (emit_store_flag_1): Likewise. 19157 * expr.c (init_expr_target): Likewise. 19158 (convert_move): Likewise. 19159 (alignment_for_piecewise_move): Likewise. 19160 (widest_int_mode_for_size): Likewise. 19161 (emit_block_move_via_movmem): Likewise. 19162 (copy_blkmode_to_reg): Likewise. 19163 (set_storage_via_setmem): Likewise. 19164 (compress_float_constant): Likewise. 19165 * omp-low.c (omp_clause_aligned_alignment): Likewise. 19166 * optabs-query.c (get_best_extraction_insn): Likewise. 19167 * optabs.c (expand_binop): Likewise. 19168 (expand_twoval_unop): Likewise. 19169 (expand_twoval_binop): Likewise. 19170 (widen_leading): Likewise. 19171 (widen_bswap): Likewise. 19172 (expand_parity): Likewise. 19173 (expand_unop): Likewise. 19174 (prepare_cmp_insn): Likewise. 19175 (prepare_float_lib_cmp): Likewise. 19176 (expand_float): Likewise. 19177 (expand_fix): Likewise. 19178 (expand_sfix_optab): Likewise. 19179 * postreload.c (move2add_use_add2_insn): Likewise. 19180 * reg-stack.c (reg_to_stack): Likewise. 19181 * reginfo.c (choose_hard_reg_mode): Likewise. 19182 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. 19183 * stor-layout.c (mode_for_size): Likewise. 19184 (smallest_mode_for_size): Likewise. 19185 (mode_for_vector): Likewise. 19186 (finish_bitfield_representative): Likewise. 19187 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise. 19188 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. 19189 * tree-vect-stmts.c (vectorizable_conversion): Likewise. 19190 * var-tracking.c (prepare_call_arguments): Likewise. 19191 191922017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19193 Alan Hayward <alan.hayward@arm.com> 19194 David Sherwood <david.sherwood@arm.com> 19195 19196 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES". 19197 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if 19198 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise. 19199 * machmode.h (mode_size): Move earlier in file. 19200 (mode_precision): Likewise. 19201 (mode_inner): Likewise. 19202 (mode_nunits): Likewise. 19203 (mode_unit_size): Likewise. 19204 (unit_unit_precision): Likewise. 19205 (mode_wider): Likewise. 19206 (mode_2xwider): Likewise. 19207 (machine_mode): New class. 19208 (mode_to_bytes): New function. 19209 (mode_to_bits): Likewise. 19210 (mode_to_precision): Likewise. 19211 (mode_to_inner): Likewise. 19212 (mode_to_unit_size): Likewise. 19213 (mode_to_unit_precision): Likewise. 19214 (mode_to_nunits): Likewise. 19215 (GET_MODE_SIZE): Use mode_to_bytes. 19216 (GET_MODE_BITSIZE): Use mode_to_bits. 19217 (GET_MODE_PRECISION): Use mode_to_precision. 19218 (GET_MODE_INNER): Use mode_to_inner. 19219 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size. 19220 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision. 19221 (GET_MODE_NUNITS): Use mode_to_nunits. 19222 * system.h (ALWAYS_INLINE): New macro. 19223 * config/powerpcspe/powerpcspe-c.c 19224 (altivec_resolve_overloaded_builtin): Use machine_mode instead of 19225 int for arg1_mode and arg2_mode. 19226 192272017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19228 Alan Hayward <alan.hayward@arm.com> 19229 David Sherwood <david.sherwood@arm.com> 19230 19231 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): 19232 Prefix mode names with E_ in case statements. 19233 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19234 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise. 19235 (aarch64_split_simd_move): Likewise. 19236 (aarch64_gen_storewb_pair): Likewise. 19237 (aarch64_gen_loadwb_pair): Likewise. 19238 (aarch64_gen_store_pair): Likewise. 19239 (aarch64_gen_load_pair): Likewise. 19240 (aarch64_get_condition_code_1): Likewise. 19241 (aarch64_constant_pool_reload_icode): Likewise. 19242 (get_rsqrte_type): Likewise. 19243 (get_rsqrts_type): Likewise. 19244 (get_recpe_type): Likewise. 19245 (get_recps_type): Likewise. 19246 (aarch64_gimplify_va_arg_expr): Likewise. 19247 (aarch64_simd_container_mode): Likewise. 19248 (aarch64_emit_load_exclusive): Likewise. 19249 (aarch64_emit_store_exclusive): Likewise. 19250 (aarch64_expand_compare_and_swap): Likewise. 19251 (aarch64_gen_atomic_cas): Likewise. 19252 (aarch64_emit_bic): Likewise. 19253 (aarch64_emit_atomic_swap): Likewise. 19254 (aarch64_emit_atomic_load_op): Likewise. 19255 (aarch64_evpc_trn): Likewise. 19256 (aarch64_evpc_uzp): Likewise. 19257 (aarch64_evpc_zip): Likewise. 19258 (aarch64_evpc_ext): Likewise. 19259 (aarch64_evpc_rev): Likewise. 19260 (aarch64_evpc_dup): Likewise. 19261 (aarch64_gen_ccmp_first): Likewise. 19262 (aarch64_gen_ccmp_next): Likewise. 19263 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. 19264 (alpha_emit_xfloating_libcall): Likewise. 19265 (emit_insxl): Likewise. 19266 (alpha_arg_type): Likewise. 19267 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise. 19268 (arc_preferred_simd_mode): Likewise. 19269 (arc_secondary_reload): Likewise. 19270 (get_arc_condition_code): Likewise. 19271 (arc_print_operand): Likewise. 19272 (arc_legitimate_constant_p): Likewise. 19273 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19274 * config/arc/arc.md (casesi_load): Likewise. 19275 (casesi_compact_jump): Likewise. 19276 * config/arc/predicates.md (proper_comparison_operator): Likewise. 19277 (cc_use_register): Likewise. 19278 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19279 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. 19280 (arm_init_iwmmxt_builtins): Likewise. 19281 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise. 19282 (neon_expand_vector_init): Likewise. 19283 (arm_attr_length_move_neon): Likewise. 19284 (maybe_get_arm_condition_code): Likewise. 19285 (arm_emit_vector_const): Likewise. 19286 (arm_preferred_simd_mode): Likewise. 19287 (arm_output_iwmmxt_tinsr): Likewise. 19288 (thumb1_output_casesi): Likewise. 19289 (thumb2_output_casesi): Likewise. 19290 (arm_emit_load_exclusive): Likewise. 19291 (arm_emit_store_exclusive): Likewise. 19292 (arm_expand_compare_and_swap): Likewise. 19293 (arm_evpc_neon_vuzp): Likewise. 19294 (arm_evpc_neon_vzip): Likewise. 19295 (arm_evpc_neon_vrev): Likewise. 19296 (arm_evpc_neon_vtrn): Likewise. 19297 (arm_evpc_neon_vext): Likewise. 19298 (arm_validize_comparison): Likewise. 19299 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise. 19300 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. 19301 * config/avr/avr.c (avr_rtx_costs_1): Likewise. 19302 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise. 19303 (c6x_preferred_simd_mode): Likewise. 19304 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise. 19305 (epiphany_rtx_costs): Likewise. 19306 * config/epiphany/predicates.md (proper_comparison_operator): 19307 Likewise. 19308 * config/frv/frv.c (condexec_memory_operand): Likewise. 19309 (frv_emit_move): Likewise. 19310 (output_move_single): Likewise. 19311 (output_condmove_single): Likewise. 19312 (frv_hard_regno_mode_ok): Likewise. 19313 (frv_matching_accg_mode): Likewise. 19314 * config/h8300/h8300.c (split_adds_subs): Likewise. 19315 (h8300_rtx_costs): Likewise. 19316 (h8300_print_operand): Likewise. 19317 (compute_mov_length): Likewise. 19318 (output_logical_op): Likewise. 19319 (compute_logical_op_length): Likewise. 19320 (compute_logical_op_cc): Likewise. 19321 (h8300_shift_needs_scratch_p): Likewise. 19322 (output_a_shift): Likewise. 19323 (compute_a_shift_length): Likewise. 19324 (compute_a_shift_cc): Likewise. 19325 (expand_a_rotate): Likewise. 19326 (output_a_rotate): Likewise. 19327 * config/i386/i386.c (classify_argument): Likewise. 19328 (function_arg_advance_32): Likewise. 19329 (function_arg_32): Likewise. 19330 (function_arg_64): Likewise. 19331 (function_value_64): Likewise. 19332 (ix86_gimplify_va_arg): Likewise. 19333 (ix86_legitimate_constant_p): Likewise. 19334 (put_condition_code): Likewise. 19335 (split_double_mode): Likewise. 19336 (ix86_avx256_split_vector_move_misalign): Likewise. 19337 (ix86_expand_vector_logical_operator): Likewise. 19338 (ix86_split_idivmod): Likewise. 19339 (ix86_expand_adjust_ufix_to_sfix_si): Likewise. 19340 (ix86_build_const_vector): Likewise. 19341 (ix86_build_signbit_mask): Likewise. 19342 (ix86_match_ccmode): Likewise. 19343 (ix86_cc_modes_compatible): Likewise. 19344 (ix86_expand_branch): Likewise. 19345 (ix86_expand_sse_cmp): Likewise. 19346 (ix86_expand_sse_movcc): Likewise. 19347 (ix86_expand_int_sse_cmp): Likewise. 19348 (ix86_expand_vec_perm_vpermi2): Likewise. 19349 (ix86_expand_vec_perm): Likewise. 19350 (ix86_expand_sse_unpack): Likewise. 19351 (ix86_expand_int_addcc): Likewise. 19352 (ix86_split_to_parts): Likewise. 19353 (ix86_vectorize_builtin_gather): Likewise. 19354 (ix86_vectorize_builtin_scatter): Likewise. 19355 (avx_vpermilp_parallel): Likewise. 19356 (inline_memory_move_cost): Likewise. 19357 (ix86_tieable_integer_mode_p): Likewise. 19358 (x86_maybe_negate_const_int): Likewise. 19359 (ix86_expand_vector_init_duplicate): Likewise. 19360 (ix86_expand_vector_init_one_nonzero): Likewise. 19361 (ix86_expand_vector_init_one_var): Likewise. 19362 (ix86_expand_vector_init_concat): Likewise. 19363 (ix86_expand_vector_init_interleave): Likewise. 19364 (ix86_expand_vector_init_general): Likewise. 19365 (ix86_expand_vector_set): Likewise. 19366 (ix86_expand_vector_extract): Likewise. 19367 (emit_reduc_half): Likewise. 19368 (ix86_emit_i387_round): Likewise. 19369 (ix86_mangle_type): Likewise. 19370 (ix86_expand_round_sse4): Likewise. 19371 (expand_vec_perm_blend): Likewise. 19372 (canonicalize_vector_int_perm): Likewise. 19373 (ix86_expand_vec_one_operand_perm_avx512): Likewise. 19374 (expand_vec_perm_1): Likewise. 19375 (expand_vec_perm_interleave3): Likewise. 19376 (expand_vec_perm_even_odd_pack): Likewise. 19377 (expand_vec_perm_even_odd_1): Likewise. 19378 (expand_vec_perm_broadcast_1): Likewise. 19379 (ix86_vectorize_vec_perm_const_ok): Likewise. 19380 (ix86_expand_vecop_qihi): Likewise. 19381 (ix86_expand_mul_widen_hilo): Likewise. 19382 (ix86_expand_sse2_abs): Likewise. 19383 (ix86_expand_pextr): Likewise. 19384 (ix86_expand_pinsr): Likewise. 19385 (ix86_preferred_simd_mode): Likewise. 19386 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise. 19387 * config/i386/sse.md (*andnot<mode>3): Likewise. 19388 (<mask_codefor><code><mode>3<mask_name>): Likewise. 19389 (*<code><mode>3): Likewise. 19390 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise. 19391 (ia64_expand_atomic_op): Likewise. 19392 (ia64_arg_type): Likewise. 19393 (ia64_mode_to_int): Likewise. 19394 (ia64_scalar_mode_supported_p): Likewise. 19395 (ia64_vector_mode_supported_p): Likewise. 19396 (expand_vec_perm_broadcast): Likewise. 19397 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise. 19398 (iq2000_function_arg_advance): Likewise. 19399 (iq2000_function_arg): Likewise. 19400 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise. 19401 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise. 19402 (m68k_libcall_value): Likewise. 19403 (m68k_function_value): Likewise. 19404 (sched_attr_op_type): Likewise. 19405 * config/mcore/mcore.c (mcore_output_move): Likewise. 19406 * config/microblaze/microblaze.c (microblaze_function_arg_advance): 19407 Likewise. 19408 (microblaze_function_arg): Likewise. 19409 * config/mips/mips.c (mips16_build_call_stub): Likewise. 19410 (mips_print_operand): Likewise. 19411 (mips_mode_ok_for_mov_fmt_p): Likewise. 19412 (mips_vector_mode_supported_p): Likewise. 19413 (mips_preferred_simd_mode): Likewise. 19414 (mips_expand_vpc_loongson_even_odd): Likewise. 19415 (mips_expand_vec_unpack): Likewise. 19416 (mips_expand_vi_broadcast): Likewise. 19417 (mips_expand_vector_init): Likewise. 19418 (mips_expand_vec_reduc): Likewise. 19419 (mips_expand_msa_cmp): Likewise. 19420 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise. 19421 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. 19422 (cc_flags_for_mode): Likewise. 19423 * config/msp430/msp430.c (msp430_print_operand): Likewise. 19424 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise. 19425 (nds32_output_casesi_pc_relative): Likewise. 19426 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19427 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise. 19428 (nvptx_gen_unpack): Likewise. 19429 (nvptx_gen_pack): Likewise. 19430 (nvptx_gen_shuffle): Likewise. 19431 (nvptx_gen_wcast): Likewise. 19432 (nvptx_preferred_simd_mode): Likewise. 19433 * config/pa/pa.c (pa_secondary_reload): Likewise. 19434 * config/pa/predicates.md (base14_operand): Likewise. 19435 * config/powerpcspe/powerpcspe-c.c 19436 (altivec_resolve_overloaded_builtin): Likewise. 19437 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks): 19438 Likewise. 19439 (rs6000_preferred_simd_mode): Likewise. 19440 (output_vec_const_move): Likewise. 19441 (rs6000_expand_vector_extract): Likewise. 19442 (rs6000_split_vec_extract_var): Likewise. 19443 (reg_offset_addressing_ok_p): Likewise. 19444 (rs6000_legitimate_offset_address_p): Likewise. 19445 (rs6000_legitimize_address): Likewise. 19446 (rs6000_emit_set_const): Likewise. 19447 (rs6000_const_vec): Likewise. 19448 (rs6000_emit_move): Likewise. 19449 (spe_build_register_parallel): Likewise. 19450 (rs6000_darwin64_record_arg_recurse): Likewise. 19451 (swap_selector_for_mode): Likewise. 19452 (spe_init_builtins): Likewise. 19453 (paired_init_builtins): Likewise. 19454 (altivec_init_builtins): Likewise. 19455 (do_load_for_compare): Likewise. 19456 (rs6000_generate_compare): Likewise. 19457 (rs6000_expand_float128_convert): Likewise. 19458 (emit_load_locked): Likewise. 19459 (emit_store_conditional): Likewise. 19460 (rs6000_output_function_epilogue): Likewise. 19461 (rs6000_handle_altivec_attribute): Likewise. 19462 (rs6000_function_value): Likewise. 19463 (emit_fusion_gpr_load): Likewise. 19464 (emit_fusion_p9_load): Likewise. 19465 (emit_fusion_p9_store): Likewise. 19466 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise. 19467 (fusion_gpr_mem_load): Likewise. 19468 (fusion_addis_mem_combo_load): Likewise. 19469 (fusion_addis_mem_combo_store): Likewise. 19470 * config/rs6000/predicates.md (easy_fp_constant): Likewise. 19471 (fusion_gpr_mem_load): Likewise. 19472 (fusion_addis_mem_combo_load): Likewise. 19473 (fusion_addis_mem_combo_store): Likewise. 19474 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19475 Likewise. 19476 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise. 19477 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. 19478 (rs6000_preferred_simd_mode): Likewise. 19479 (output_vec_const_move): Likewise. 19480 (rs6000_expand_vector_extract): Likewise. 19481 (rs6000_split_vec_extract_var): Likewise. 19482 (reg_offset_addressing_ok_p): Likewise. 19483 (rs6000_legitimate_offset_address_p): Likewise. 19484 (rs6000_legitimize_address): Likewise. 19485 (rs6000_emit_set_const): Likewise. 19486 (rs6000_const_vec): Likewise. 19487 (rs6000_emit_move): Likewise. 19488 (rs6000_darwin64_record_arg_recurse): Likewise. 19489 (swap_selector_for_mode): Likewise. 19490 (paired_init_builtins): Likewise. 19491 (altivec_init_builtins): Likewise. 19492 (rs6000_expand_float128_convert): Likewise. 19493 (emit_load_locked): Likewise. 19494 (emit_store_conditional): Likewise. 19495 (rs6000_output_function_epilogue): Likewise. 19496 (rs6000_handle_altivec_attribute): Likewise. 19497 (rs6000_function_value): Likewise. 19498 (emit_fusion_gpr_load): Likewise. 19499 (emit_fusion_p9_load): Likewise. 19500 (emit_fusion_p9_store): Likewise. 19501 * config/rx/rx.c (rx_gen_move_template): Likewise. 19502 (flags_from_mode): Likewise. 19503 * config/s390/predicates.md (s390_alc_comparison): Likewise. 19504 (s390_slb_comparison): Likewise. 19505 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise. 19506 (s390_vector_mode_supported_p): Likewise. 19507 (s390_cc_modes_compatible): Likewise. 19508 (s390_match_ccmode_set): Likewise. 19509 (s390_canonicalize_comparison): Likewise. 19510 (s390_emit_compare_and_swap): Likewise. 19511 (s390_branch_condition_mask): Likewise. 19512 (s390_rtx_costs): Likewise. 19513 (s390_secondary_reload): Likewise. 19514 (__SECONDARY_RELOAD_CASE): Likewise. 19515 (s390_expand_cs): Likewise. 19516 (s390_preferred_simd_mode): Likewise. 19517 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise. 19518 * config/sh/sh.c (sh_print_operand): Likewise. 19519 (dump_table): Likewise. 19520 (sh_secondary_reload): Likewise. 19521 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19522 * config/sh/sh.md (casesi_worker_1): Likewise. 19523 (casesi_worker_2): Likewise. 19524 * config/sparc/predicates.md (icc_comparison_operator): Likewise. 19525 (fcc_comparison_operator): Likewise. 19526 * config/sparc/sparc.c (sparc_expand_move): Likewise. 19527 (emit_soft_tfmode_cvt): Likewise. 19528 (sparc_preferred_simd_mode): Likewise. 19529 (output_cbranch): Likewise. 19530 (sparc_print_operand): Likewise. 19531 (sparc_expand_vec_perm_bmask): Likewise. 19532 (vector_init_bshuffle): Likewise. 19533 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. 19534 (spu_vector_mode_supported_p): Likewise. 19535 (spu_expand_insv): Likewise. 19536 (spu_emit_branch_or_set): Likewise. 19537 (spu_handle_vector_attribute): Likewise. 19538 (spu_builtin_splats): Likewise. 19539 (spu_builtin_extract): Likewise. 19540 (spu_builtin_promote): Likewise. 19541 (spu_expand_sign_extend): Likewise. 19542 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. 19543 (tilegx_simd_int): Likewise. 19544 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise. 19545 (tilepro_simd_int): Likewise. 19546 * config/v850/v850.c (const_double_split): Likewise. 19547 (v850_print_operand): Likewise. 19548 (ep_memory_offset): Likewise. 19549 * config/vax/vax.c (vax_rtx_costs): Likewise. 19550 (vax_output_int_move): Likewise. 19551 (vax_output_int_add): Likewise. 19552 (vax_output_int_subtract): Likewise. 19553 * config/visium/predicates.md (visium_branch_operator): Likewise. 19554 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise. 19555 (visium_print_operand_address): Likewise. 19556 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 19557 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise. 19558 (xtensa_expand_conditional_branch): Likewise. 19559 (xtensa_copy_incoming_a7): Likewise. 19560 (xtensa_output_literal): Likewise. 19561 * dfp.c (decimal_real_maxval): Likewise. 19562 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. 19563 195642017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19565 Alan Hayward <alan.hayward@arm.com> 19566 David Sherwood <david.sherwood@arm.com> 19567 19568 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names. 19569 (mode_nunits_inline): Likewise. 19570 (mode_inner_inline): Likewise. 19571 (mode_unit_size_inline): Likewise. 19572 (mode_unit_precision_inline): Likewise. 19573 (emit_insn_modes_h): Likewise. Also emit a #define of the 19574 unprefixed name. 19575 (emit_mode_wider): Add an E_ prefix to mode names. 19576 (emit_mode_complex): Likewise. 19577 (emit_mode_inner): Likewise. 19578 (emit_mode_adjustments): Likewise. 19579 (emit_mode_int_n): Likewise. 19580 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP) 19581 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP) 19582 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP) 19583 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise. 19584 (CRC32_BUILTIN, ENTRY): Likewise. 19585 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise. 19586 (aarch64_pop_regs): Likewise. 19587 (aarch64_process_components): Likewise. 19588 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise. 19589 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP) 19590 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP) 19591 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise. 19592 * config/arm/arm.c (arm_init_libfuncs): Likewise. 19593 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode): 19594 Likewise. 19595 * config/i386/i386-builtin.def (pcmpestr): Likewise. 19596 (pcmpistr): Likewise. 19597 * config/microblaze/microblaze.c (double_memory_operand): Likewise. 19598 * config/mmix/mmix.c (mmix_output_condition): Likewise. 19599 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): 19600 Likewise. 19601 * config/rl78/rl78.c (mduc_regs): Likewise. 19602 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. 19603 (htm_expand_builtin): Likewise. 19604 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise. 19605 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise. 19606 * config/xtensa/xtensa.c (print_operand): Likewise. 19607 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise. 19608 (NUM_MODE_VECTOR_INT): Likewise. 19609 * genoutput.c (null_operand): Likewise. 19610 (output_operand_data): Likewise. 19611 * genrecog.c (print_parameter_value): Likewise. 19612 * lra.c (debug_operand_data): Likewise. 19613 196142017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19615 19616 * dwarf2out.c (scompare_loc_descriptor_wide) 19617 (scompare_loc_descriptor_narrow): New functions, split out from... 19618 (scompare_loc_descriptor): ...here. 19619 * expmed.c (emit_store_flag_int): New function, split out from... 19620 (emit_store_flag): ...here. 19621 196222017-08-30 Richard Biener <rguenther@suse.de> 19623 19624 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames. 19625 (dwarf2out_early_finish): Move setting of AT_pubnames from 19626 early debug output to early finish. 19627 196282017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> 19629 19630 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker 19631 and -mdata-region to the assembler. 19632 196332017-08-30 Richard Biener <rguenther@suse.de> 19634 19635 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate 19636 attributes. 19637 (gen_subprogram_die): Add DW_AT_object_pointer only early. 19638 (dwarf2out_early_global_decl): Only generate a DIE for the 19639 abstract origin if it doesn't already exist or is a declaration DIE. 19640 (resolve_addr): Do not add the linkage name twice when 19641 generating a stub DIE for the DW_TAG_GNU_call_site target. 19642 196432017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 19644 19645 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19646 Use machine_mode rather than int for arg1_mode. 19647 196482017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> 19649 19650 PR target/82015 19651 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure 19652 that the second argument of the built-in functions to unpack 19653 128-bit scalar types to 64-bit values is 0 or 1. Change to use a 19654 switch statement instead a lot of if statements. 19655 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator): 19656 Allow 64-bit values to be in Altivec registers as well as 19657 traditional floating point registers. 19658 (pack<mode>, FMOVE128_VSX iterator): Likewise. 19659 196602017-08-29 Alexander Monakov <amonakov@ispras.ru> 19661 19662 * ira-costs.c (record_address_regs): Handle both operands of PLUS for 19663 MAX_REGS_PER_ADDRESS == 1. 19664 196652017-08-29 Uros Bizjak <ubizjak@gmail.com> 19666 19667 * config/i386/i386.opt (flag_fentry): Do not init to -1. 19668 * config/i386/i386.c (ix86_option_override_internal): Simplify 19669 setting of opts->x_flag_entry. 19670 196712017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 19672 Jakub Jelinek <jakub@redhat.com> 19673 Richard Biener <rguenther@suse.de> 19674 19675 PR tree-optimization/81503 19676 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure 19677 folded constant fits in the target type; reorder tests for clarity. 19678 196792017-08-29 Martin Liska <mliska@suse.cz> 19680 19681 * passes.def: Include pass_lower_switch. 19682 * stmt.c (dump_case_nodes): Remove and move to 19683 tree-switch-conversion. 19684 (case_values_threshold): Likewise. 19685 (expand_switch_as_decision_tree_p): Likewise. 19686 (emit_case_decision_tree): Likewise. 19687 (expand_case): Likewise. 19688 (balance_case_nodes): Likewise. 19689 (node_has_low_bound): Likewise. 19690 (node_has_high_bound): Likewise. 19691 (node_is_bounded): Likewise. 19692 (emit_case_nodes): Likewise. 19693 (struct simple_case_node): New struct. 19694 (add_case_node): Remove. 19695 (emit_case_dispatch_table): Use vector instead of case_list. 19696 (reset_out_edges_aux): Remove. 19697 (compute_cases_per_edge): Likewise. 19698 (expand_case): Build list of simple_case_node. 19699 (expand_sjlj_dispatch_table): Use it. 19700 * tree-switch-conversion.c (struct case_node): Moved from 19701 stmt.c and adjusted. 19702 (emit_case_nodes): Likewise. 19703 (node_has_low_bound): Likewise. 19704 (node_has_high_bound): Likewise. 19705 (node_is_bounded): Likewise. 19706 (case_values_threshold): Likewise. 19707 (reset_out_edges_aux): Likewise. 19708 (compute_cases_per_edge): Likewise. 19709 (add_case_node): Likewise. 19710 (dump_case_nodes): Likewise. 19711 (balance_case_nodes): Likewise. 19712 (expand_switch_as_decision_tree_p): Likewise. 19713 (emit_jump): Likewise. 19714 (emit_case_decision_tree): Likewise. 19715 (try_switch_expansion): Likewise. 19716 (do_jump_if_equal): Likewise. 19717 (emit_cmp_and_jump_insns): Likewise. 19718 (fix_phi_operands_for_edge): New function. 19719 (record_phi_operand_mapping): Likewise. 19720 (class pass_lower_switch): New pass. 19721 (pass_lower_switch::execute): New function. 19722 (make_pass_lower_switch): Likewise. 19723 (conditional_probability): 19724 * timevar.def: Add TV_TREE_SWITCH_LOWERING. 19725 * tree-pass.h: Add make_pass_lower_switch. 19726 197272017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com> 19728 19729 PR target/80993 19730 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt 19731 handlers as used. 19732 197332017-08-29 Richard Biener <rguenther@suse.de> 19734 19735 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify 19736 we do not add a DW_AT_inline attribute twice. 19737 (gen_subprogram_die): Remove code setting DW_AT_inline on 19738 DECL_ABSTRACT_P nodes. 19739 197402017-08-29 Richard Sandiford <richard.sandiford@linaro.org> 19741 19742 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to 19743 calls to internal functions. 19744 (gimplify_modify_expr): Likewise. 19745 * tree-call-cdce.c (use_internal_fn): Likewise. 19746 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. 19747 (convert_to_divmod): Set the nothrow flag. 19748 * tree-if-conv.c (predicate_mem_writes): Likewise. 19749 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. 19750 (vectorizable_call): Likewise. 19751 (vectorizable_store): Likewise. 19752 (vectorizable_load): Likewise. 19753 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. 19754 (vect_recog_mask_conversion_pattern): Likewise. 19755 197562017-08-29 Martin Liska <mliska@suse.cz> 19757 19758 PR other/39851 19759 * gcc.c (driver_handle_option): Add new argument. 19760 * opts-common.c (handle_option): Pass 19761 target_option_override_hook. 19762 * opts-global.c (lang_handle_option): Add new option. 19763 (set_default_handlers): Add new argument. 19764 (decode_options): Likewise. 19765 * opts.c (target_handle_option): Likewise. 19766 (common_handle_option): Call target_option_override_hook. 19767 * opts.h (struct cl_option_handler_func): Add hook for 19768 target option override. 19769 (struct cl_option_handlers): Likewise. 19770 (set_default_handlers): Add new argument. 19771 (decode_options): Likewise. 19772 (common_handle_option): Likewise. 19773 (target_handle_option): Likewise. 19774 * toplev.c (toplev::main): Pass targetm.target_option.override 19775 hook. 19776 197772017-08-29 Richard Biener <rguenther@suse.de> 19778 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> 19779 19780 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine 19781 life to the active subtree. 19782 197832017-08-28 Jeff Law <law@redhat.com> 19784 19785 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call 19786 derive_equivalences. 19787 (derive_equivalences_from_bit_ior, record_temporary_equivalences): 19788 Code moved into.... 19789 (edge_info::derive_equivalences): New private member function 19790 19791 * tree-ssa-dom.c (class edge_info): Changed from a struct 19792 to a class. Add ctor/dtor, methods and data members. 19793 (edge_info::edge_info): Renamed from allocate_edge_info. 19794 Initialize additional members. 19795 (edge_info::~edge_info): New. 19796 (free_dom_edge_info): Delete the edge info. 19797 (record_edge_info): Use new class & associated member functions. 19798 Tighten forms for testing for edge equivalences. 19799 (record_temporary_equivalences): Iterate over the simple 19800 equivalences rather than assuming there's only one per edge. 19801 (cprop_into_successor_phis): Iterate over the simple 19802 equivalences rather than assuming there's only one per edge. 19803 (optimize_stmt): Use operand_equal_p rather than pointer 19804 equality for mini-DSE code. 19805 198062017-08-28 Nathan Sidwell <nathan@acm.org> 19807 19808 * gcc.c (execute): Fold SIGPIPE handling into switch 19809 statement. Adjust internal error message. 19810 198112017-08-28 Richard Biener <rguenther@suse.de> 19812 19813 PR debug/81993 19814 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): 19815 Do nothing for removed DIEs. 19816 198172017-08-28 Richard Biener <rguenther@suse.de> 19818 19819 PR tree-optimization/81977 19820 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through 19821 memcpy. 19822 198232017-08-28 Alexander Monakov <amonakov@ispras.ru> 19824 19825 PR target/80640 19826 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite. 19827 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when 19828 using targetm.gen_mem_thread_fence. 19829 198302017-08-27 Uros Bizjak <ubizjak@gmail.com> 19831 19832 PR target/81995 19833 * config/i386/i386.md (*<btsc><mode>): Change operand 2 19834 predicate to register_operand. Reorder operands. 19835 (*btr<mode>): Ditto. 19836 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand. 19837 (*btr<mode>_mask): Ditto. 19838 198392017-08-25 Steven Munroe <munroesj@gcc.gnu.org> 19840 19841 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h. 19842 * config/rs6000/xmmintrin.h: New file. 19843 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h. 19844 198452017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 19846 19847 PR target/81504 19848 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference 19849 parameter and_insn and return it. 19850 (recombine_lvx_pattern): Insert a copy to ensure availability of 19851 the base register of the copied masking operation at the point of 19852 the instruction replacement. 19853 (recombine_stvx_pattern): Likewise. 19854 198552017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com> 19856 19857 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete 19858 undocumented switches. 19859 (-mpower9-dform-vector): Likewise. 19860 (-mpower9-dform): Likewise. 19861 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update 19862 comments to delete references to -mpower9-dform* switches. 19863 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand): 19864 Delete reference to -mpower9-dform* switches, test for 19865 -mpower9-vector instead. 19866 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise. 19867 (OTHER_P9_VECTOR_MASKS): Likewise. 19868 (POWERPC_MASKS): Likewise. 19869 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change 19870 tests against -mpower9-dform* to -mpower9-vector. Delete code 19871 that checked for -mpower9-dform* consistancy with other options. 19872 Add test for -mpower9-misc to enable other power9 switches. 19873 (rs6000_init_hard_regno_mode_ok): Likewise. 19874 (rs6000_option_override_internal): Likewise. 19875 (rs6000_emit_prologue): Likewise. 19876 (rs6000_emit_epilogue): Likewise. 19877 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}. 19878 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform. 19879 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar 19880 -mpower9-vector. 19881 (emit_fusion_p9_store): Likewise. 19882 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete 19883 resetting these macros if the assembler does not support ISA 3.0 19884 instructions. 19885 (TARGET_P9_DFORM_VECTOR): Likewise. 19886 * config/rs6000/rs6000.md (peepholes to optimize altivec memory): 19887 Change to use -mpower9-vector instead of -mpower9-dform-scalar. 19888 198892017-08-25 Alan Modra <amodra@gmail.com> 19890 19891 PR rtl-optimization/81747 19892 * cse.c (cse_extended_basic_block): Don't attempt to record 19893 equivalences for degenerate conditional branches that branch 19894 to their fall-through. 19895 198962017-08-24 Martin Sebor <msebor@redhat.com> 19897 19898 PR middle-end/81908 19899 * gimple-fold.c (size_must_be_zero_p): New function. 19900 (gimple_fold_builtin_memory_op): Call it. 19901 199022017-08-24 Steven Munroe <munroesj@gcc.gnu.org> 19903 19904 * config/rs6000/mm_malloc.h: New file. 19905 199062017-08-24 Bin Cheng <bin.cheng@arm.com> 19907 19908 PR tree-optimization/81913 19909 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter 19910 analysis when either IVs in condition can wrap. 19911 199122017-08-24 Uros Bizjak <ubizjak@gmail.com> 19913 19914 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40. 19915 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove. 19916 199172017-08-24 Richard Biener <rguenther@suse.de> 19918 19919 PR target/81921 19920 * targhooks.c (default_target_can_inline_p): Properly 19921 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET 19922 is present and always compare. 19923 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not 19924 infer -mfpmath=sse from TARGET_SSE_P. 19925 (ix86_can_inline_p): Properly use target_option_default_node when 19926 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare. 19927 199282017-08-24 Richard Biener <rguenther@suse.de> 19929 19930 PR debug/81936 19931 * dwarf2out.c (output_die): Handle flag_generate_offload like 19932 flag_generate_lto. 19933 (output_comp_unit): Likewise. 19934 (gen_array_type_die): Likewise. 19935 (dwarf2out_early_finish): Likewise. 19936 (note_variable_value_in_expr): Likewise. 19937 (dwarf2out_finish): Likewise. Adjust assert. 19938 * cgraphunit.c (symbol_table::compile): Move setting of 19939 flag_generate_offload earlier ... 19940 (symbol_table::finalize_compilation_unit): ... here, before 19941 early debug finalization. 19942 199432017-08-24 Richard Biener <rguenther@suse.de> 19944 19945 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h 19946 and ipa-fnsummary.h. 19947 (ix86_can_inline_p): When ix86_fpmath flags do not match 19948 check whether the callee uses FP math at all. 19949 199502017-08-24 Aldy Hernandez <aldyh@redhat.com> 19951 19952 PR middle-end/81931 19953 * tree-ssanames.c (get_nonzero_bits): Use element_precision 19954 instead of TYPE_PRECISION. 19955 199562017-08-24 Richard Sandiford <richard.sandiford@linaro.org> 19957 Alan Hayward <alan.hayward@arm.com> 19958 David Sherwood <david.sherwood@arm.com> 19959 19960 * combine.c (make_extraction): Use subreg_offset_from_lsb. 19961 199622017-08-23 Daniel Santos <daniel.santos@pobox.com> 19963 19964 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset): 19965 Remove field. 19966 (ix86_frame::stack_realign_allocate): New field. 19967 (struct machine_frame_state): Modify comments. 19968 (machine_frame_state::sp_realigned_fp_end): New field. 19969 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame 19970 layout calculation. 19971 (sp_valid_at): Add assertion to assure no attempt to access invalid 19972 offset of a realigned stack. 19973 (fp_valid_at): Likewise. 19974 (choose_baseaddr): Modify comments. 19975 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in 19976 ix86_expand_prologue. 19977 (ix86_expand_prologue): Modify stack realignment and allocation. 19978 (ix86_expand_epilogue): Modify comments. 19979 * doc/sourcebuild.texi: Add documentation for target selectors avx2, 19980 avx2_runtime, avx512f, and avx512f_runtime. 19981 199822017-08-23 Uros Bizjak <ubizjak@gmail.com> 19983 19984 * config/i386/i386.opt: Remove unneeded Init(0) initializations. 19985 (mstackrealign): Do not init to -1. 19986 * config/i386/i386.c (ix86_option_override_internal): 19987 Check opts_set, not opts when setting default value of 19988 opts->x_ix86_force_align_arg_pointer. 19989 199902017-08-23 Richard Biener <rguenther@suse.de> 19991 19992 * function.c (fndecl_name): Use verbosity 1 (no arguments) for 19993 lang_hooks.decl_printable_name. 19994 * print-rtl-function.c (print_rtx_function): Likewise. 19995 * tree-pretty-print.c (dump_function_header): Likewise. 19996 199972017-08-23 Richard Biener <rguenther@suse.de> 19998 19999 PR lto/81940 20000 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with 20001 -g0 at compile-time. 20002 200032017-08-23 Tamar Christina <tamar.christina@arm.com> 20004 20005 PR middle-end/19706 20006 * doc/sourcebuild.texi (Other hardware attributes): 20007 Document xorsign. 20008 200092017-08-23 Tamar Christina <tamar.christina@arm.com> 20010 20011 PR middle-end/19706 20012 * tree-ssa-math-opts.c (convert_expand_mult_copysign): 20013 Fix single-use check. 20014 200152017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com> 20016 20017 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available. 20018 200192017-08-22 Daniel Santos <daniel.santos@pobox.com> 20020 20021 * doc/install.texi: Modify to add more details on running selected 20022 tests. 20023 200242017-08-22 Daniel Santos <daniel.santos@pobox.com> 20025 20026 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32 20027 is combined with -mabi=ms. 20028 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute 20029 ms_abi. 20030 200312017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 20032 20033 PR tree-optimization/81488 20034 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited 20035 and cached_basis fields. 20036 (MAX_SPREAD): New constant. 20037 (alloc_cand_and_find_basis): Initialize new fields. 20038 (clear_visited): New function. 20039 (create_phi_basis_1): Rename from create_phi_basis, set visited 20040 and cached_basis fields. 20041 (create_phi_basis): New wrapper function. 20042 (phi_add_costs_1): Rename from phi_add_costs, add spread 20043 parameter, set visited field, short-circuit when limits reached. 20044 (phi_add_costs): New wrapper function. 20045 (record_phi_increments_1): Rename from record_phi_increments, set 20046 visited field. 20047 (record_phi_increments): New wrapper function. 20048 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field. 20049 (phi_incr_cost): New wrapper function. 20050 (all_phi_incrs_profitable_1): Rename from 20051 all_phi_incrs_profitable, set visited field. 20052 (all_phi_incrs_profitable): New wrapper function. 20053 200542017-08-22 Richard Sandiford <richard.sandiford@linaro.org> 20055 Alan Hayward <alan.hayward@arm.com> 20056 David Sherwood <david.sherwood@arm.com> 20057 20058 * rtl.h (paradoxical_subreg_p): Define inline, and add a version 20059 that takes the outer and inner modes. 20060 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE 20061 comparison as the canonical test for a paradoxical subreg. 20062 * combine.c (simplify_set): Use paradoxical_subreg_p. 20063 (make_extraction): Likewise. 20064 (force_to_mode): Likewise. 20065 (rtx_equal_for_field_assignment_p): Likewise. 20066 (gen_lowpart_for_combine): Likewise. 20067 (simplify_comparison): Likewise. 20068 * cse.c (equiv_constant): Likewise. 20069 * expmed.c (store_bit_field_1): Likewise. 20070 * final.c (alter_subreg): Likewise. 20071 * fwprop.c (propagate_rtx): Likewise. 20072 (forward_propagate_subreg): Likewise. 20073 * ira-conflicts.c (ira_build_conflicts): Likewise. 20074 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise. 20075 * lra-constraints.c (curr_insn_transform): Likewise. 20076 (split_reg): Likewise. 20077 * lra-eliminations.c (move_plus_up): Likewise. 20078 (lra_eliminate_regs_1): Likewise. 20079 * recog.c (general_operand): Likewise. 20080 * ree.c (combine_reaching_defs): Likewise. 20081 * reload.c (push_reload): Likewise. 20082 (find_reloads): Likewise. 20083 * reload1.c (elimination_effects): Likewise. 20084 (compute_reload_subreg_offset): Likewise. 20085 (choose_reload_regs): Likewise. 20086 * rtlanal.c (subreg_lsb_1): Likewise. 20087 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 20088 (simplify_subreg): Likewise. 20089 * var-tracking.c (track_loc_p): Likewise. 20090 * emit-rtl.c (byte_lowpart_offset): Likewise. 20091 (paradoxical_subreg_p): Delete out-of-line definition. 20092 200932017-08-22 Jeff Law <law@redhat.com> 20094 20095 PR tree-optimization/81741 20096 PR tree-optimization/71947 20097 * tree-ssa-dom.c: Include tree-inline.h. 20098 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME 20099 equivalences if one is more expensive to compute than the other. 20100 * tree-ssa-scopedtables.h (class const_or_copies): Make 20101 record_const_or_copy_raw method private. 20102 (class avail_exprs_stack): New method simplify_binary_operation. 20103 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call 20104 avail_exprs_stack::simplify_binary_operation as needed. 20105 (avail_exprs_stack::simplify_binary_operation): New function. 20106 201072017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de> 20108 20109 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt. 20110 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define. 20111 (DOT_SYMBOLS): Likewise. 20112 (MINIMAL_TOC_SECTION_ASM_OP): Likewise. 20113 (RELOCATABLE_NEEDS_FIXUP): Likewise. 20114 (RS6000_ABI_NAME): Likewise. 20115 (TARGET_CMODEL): Likewise. 20116 (TOC_SECTION_ASM_OP): Likewise. 20117 (SET_CMODEL): New macro. 20118 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options. 20119 201202017-08-22 Richard Biener <rguenther@suse.de> 20121 20122 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT] 20123 to allow for free-lang-data replacements similar to verify_type_variant. 20124 201252017-08-22 Richard Sandiford <richard.sandiford@linaro.org> 20126 Alan Hayward <alan.hayward@arm.com> 20127 David Sherwood <david.sherwood@arm.com> 20128 20129 * config/aarch64/aarch64.md (casesi): Use DImode rather than 20130 VOIDmode for the LABEL_REF. 20131 201322017-08-22 Richard Biener <rguenther@suse.de> 20133 20134 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes. 20135 201362017-08-22 Richard Biener <rguenther@suse.de> 20137 20138 * common.opt (feliminate-dwarf2-dups): Ignore. 20139 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation. 20140 * dwarf2out.c (push_new_compile_unit, pop_compile_unit, 20141 same_die_p_wrap, compute_section_prefix, 20142 is_symbol_die, assign_symbol_names, break_out_includes): Remove. 20143 (comdat_symbol_id, comdat_symbol_number): Likewise. 20144 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type): 20145 Likewise. 20146 (check_duplicate_cu, record_comdat_symbol_number): Likewise. 20147 (output_die): Mark unreachable path unreachable. 20148 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL. 20149 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL. 20150 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups. 20151 (dwarf2out_early_finish): Likewise. 20152 201532017-08-22 Aldy Hernandez <aldyh@redhat.com> 20154 20155 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend. 20156 201572017-08-22 Georg-Johann Lay <avr@gjlay.de> 20158 20159 PR target/81910 20160 * config/avr/avr.c (avr_handle_addr_attribute): Early return if 20161 not VAR_P. Filter attribute warnings with OPT_Wattributes. 20162 (avr_attribute_table) <io, io_low, address>: Initialize 20163 .decl_required with true. 20164 201652017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> 20166 20167 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete 20168 undocumented debugging options. 20169 (-mvsx-scalar-double): Likewise. 20170 (-mallow-df-permute): Likewise. 20171 (-mvectorize-builtins): Likewise. 20172 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. 20173 (rs6000_builtin_vectorized_function): Likewise. 20174 (rs6000_builtin_md_vectorized_function): Likewise. 20175 (rs6000_opt_vars): Likewise. 20176 201772017-08-21 Uros Bizjak <ubizjak@gmail.com> 20178 20179 PR target/46091 20180 * config/i386/i386.md (*btsq_imm): Rename from *btsq. 20181 (*btrq_imm): Rename from *btrq. 20182 (*btcq_imm): Rename from *btcq. 20183 (btsc): New code attribute. 20184 (*<btsc><mode>): New insn pattern. 20185 (*btr<mode>): Ditto. 20186 (*<btsc><mode>_mask): New insn_and_split pattern. 20187 (*btr<mode>_mask): Ditto. 20188 201892017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20190 Alan Hayward <alan.hayward@arm.com> 20191 David Sherwood <david.sherwood@arm.com> 20192 20193 * function.c (pad_below): Simplify padding calculation. 20194 201952017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20196 Alan Hayward <alan.hayward@arm.com> 20197 David Sherwood <david.sherwood@arm.com> 20198 20199 * target.def (function_prologue): Remove frame size argument. 20200 (function_epilogue): Likewise. 20201 * doc/tm.texi: Regenerate. 20202 * final.c (final_start_function): Update call to function_prologue. 20203 (final_end_function): Update call to function_epilogue. 20204 (default_function_pro_epilogue): Remove frame size argument. 20205 * output.h (default_function_pro_epilogue): Likewise. 20206 * config/arm/arm.c (arm_output_function_epilogue): Likewise. 20207 (arm_output_function_prologue): Likewise. 20208 * config/frv/frv.c (frv_function_prologue): Likewise. 20209 (frv_function_epilogue): Likewise. 20210 * config/i386/i386.c (ix86_output_function_epilogue): Likewise. 20211 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise. 20212 (ia64_output_function_epilogue): Likewise. 20213 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise. 20214 (m32r_output_function_epilogue): Likewise. 20215 * config/microblaze/microblaze.c (microblaze_function_prologue) 20216 (microblaze_function_epilogue): Likewise. 20217 * config/mips/mips.c (mips_output_function_prologue): Likewise. 20218 (mips_output_function_epilogue): Likewise. 20219 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise. 20220 (mmix_target_asm_function_epilogue): Likewise. 20221 * config/msp430/msp430.c (msp430_start_function): Likewise. 20222 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise. 20223 (nds32_asm_function_epilogue): Likewise. 20224 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise. 20225 * config/pa/pa.c (pa_output_function_prologue): Likewise. 20226 (pa_output_function_epilogue): Likewise. 20227 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue) 20228 (rs6000_output_function_epilogue): Likewise. 20229 * config/rl78/rl78.c (rl78_start_function): Likewise. 20230 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise. 20231 (rs6000_output_function_epilogue): Likewise. 20232 * config/rx/rx.c (rx_output_function_prologue): Likewise. 20233 * config/sh/sh.c (sh_output_function_epilogue): Likewise. 20234 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise. 20235 (sparc_asm_function_epilogue): Likewise. 20236 202372017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20238 20239 * tree.h (type_has_mode_precision_p): New function. 20240 * convert.c (convert_to_integer_1): Use it. 20241 * expr.c (expand_expr_real_2): Likewise. 20242 (expand_expr_real_1): Likewise. 20243 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise. 20244 * match.pd: Likewise. 20245 * tree-ssa-forwprop.c (simplify_rotate): Likewise. 20246 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise. 20247 * tree-tailcall.c (process_assignment): Likewise. 20248 * tree-vect-loop.c (vectorizable_reduction): Likewise. 20249 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern) 20250 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise. 20251 * tree-vect-stmts.c (vectorizable_conversion): Likewise. 20252 (vectorizable_assignment): Likewise. 20253 (vectorizable_shift): Likewise. 20254 (vectorizable_operation): Likewise. 20255 * tree-vrp.c (register_edge_assert_for_2): Likewise. 20256 202572017-08-21 Wilco Dijkstra <wdijkstr@arm.com> 20258 20259 * match.pd: Add pow (C, x) simplification. 20260 202612017-08-21 Richard Biener <rguenther@suse.de> 20262 20263 PR tree-optimization/81900 20264 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed 20265 for blocks with abnormal predecessors. 20266 (compute_antic): Do not set visited flag prematurely. 20267 202682017-08-21 Georg-Johann Lay <avr@gjlay.de> 20269 20270 PR target/79883 20271 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic. 20272 202732017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20274 20275 * stor-layout.h (vector_type_mode): Move to... 20276 * tree.h (vector_type_mode): ...here. 20277 * stor-layout.c (vector_type_mode): Move to... 20278 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h. 20279 202802017-08-21 Richard Biener <rguenther@suse.de> 20281 20282 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and 20283 register_external_die hooks. 20284 (debug_false_tree_charstarstar_uhwistar): Declare. 20285 (debug_nothing_tree_charstar_uhwi): Likewise. 20286 * debug.c (do_nothing_debug_hooks): Adjust. 20287 (debug_false_tree_charstarstar_uhwistar): New do nothing. 20288 (debug_nothing_tree_charstar_uhwi): Likewise. 20289 * dbxout.c (dbx_debug_hooks): Adjust. 20290 (xcoff_debug_hooks): Likewise. 20291 * sdbout.c (sdb_debug_hooks): Likewise. 20292 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 20293 * dwarf2out.c (macinfo_label_base): New global. 20294 (dwarf2out_register_external_die): New function for the 20295 register_external_die hook. 20296 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl. 20297 (dwarf2_debug_hooks): Use them. 20298 (dwarf2_lineno_debug_hooks): Adjust. 20299 (struct die_struct): Add with_offset flag. 20300 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION, 20301 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION, 20302 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION, 20303 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION, 20304 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION, 20305 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros 20306 defining section names for the early LTO debug variants. 20307 (reset_indirect_string): New helper. 20308 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die. 20309 (print_dw_val): Add support for offsetted symbol references. 20310 (get_ultimate_context): Split out from is_cxx. 20311 (is_cxx): Use get_ultimate_context. 20312 (is_fortran): Add decl overload. 20313 (compute_comp_unit_symbol): Split out worker from 20314 compute_section_prefix. 20315 (compute_section_prefix): Call compute_comp_unit_symbol and 20316 set comdat_type_p here. 20317 (output_die): Skip DIE symbol output for the LTO added one. 20318 Handle DIE symbol references with offset. 20319 (output_comp_unit): Guard section name mangling properly. 20320 For LTO debug sections emit a symbol at the section beginning 20321 which we use to refer to its DIEs. 20322 (add_abstract_origin_attribute): For DIEs registered via 20323 dwarf2out_register_external_die directly refer to the early 20324 DIE rather than indirectly through the shadow one we created. 20325 Remove obsolete call to dwarf2out_abstract_function for 20326 non-function/block origins. 20327 (gen_array_type_die): When generating early LTO debug do 20328 not emit DW_AT_string_length. 20329 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs 20330 late when in LTO. As suggested place a gcc_unreachable for 20331 the DECL_ABSTRACT_P case. 20332 (gen_subprogram_die): Avoid another specification DIE 20333 for early built declarations/definitions for the late LTO case. 20334 (gen_variable_die): Add type references for late duplicated VLA dies 20335 when in late LTO. 20336 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function, 20337 we have the abstract instance already. 20338 (process_scope_var): Adjust decl DIE contexts in LTO which 20339 first puts them in limbo. 20340 (gen_decl_die): Do not generate type DIEs late apart from 20341 types for VLAs or for decls we do not yet have a DIE. Do not 20342 call dwarf2out_abstract_function late. 20343 (dwarf2out_early_global_decl): Make sure to create DIEs 20344 for abstract instances of a decl first. 20345 (dwarf2out_late_global_decl): Adjust comment. 20346 (output_macinfo_op): With multiple macro sections use 20347 macinfo_label_base to distinguish labels. 20348 (output_macinfo): Likewise. Update macinfo_label_base. 20349 Pass in the line info label. 20350 (note_variable_value_in_expr): When generating LTO resolve 20351 all variable values here by generating DIEs as needed. 20352 (init_sections_and_labels): Add early LTO debug flag parameter 20353 and generate different sections and names if set. Add generation 20354 counter for the labels so we can have multiple of them. 20355 (reset_dies): Helper to allow DIEs to be output multiple times. 20356 (dwarf2out_finish): When outputting DIEs to the fat part of an 20357 LTO object first reset DIEs. 20358 (dwarf2out_early_finish): Output early DIEs when generating LTO. 20359 (modified_type_die): Check for decl_ultimate_origin being self 20360 before recursing. 20361 (gen_type_die_with_usage): Likewise. 20362 (gen_typedef_die): Allow decl_ultimate_origin being self. 20363 (set_decl_abstract_flags): Remove. 20364 (set_block_abstract_flags): Likewise. 20365 (dwarf2out_abstract_function): Treat the early generated DIEs 20366 as the abstract copy and only add DW_AT_inline and 20367 DW_AT_artificial here and call set_decl_origin_self. 20368 If the DIE has an abstract origin don't do anything. 20369 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL 20370 if we have none yet (Go fails to build one, PR78628). 20371 (variably_modified_type_p): Prevent endless recursion for Ada 20372 cyclic pointer types. 20373 * lto-streamer-in.c: Include debug.h. 20374 (dref_queue): New global. 20375 (lto_read_tree_1): Stream in DIE references. 20376 (lto_input_tree): Register DIE references. 20377 (input_function): Stream DECL_DEBUG_ARGS. 20378 * lto-streamer-out.c: Include debug.h. 20379 (lto_write_tree_1): Output DIE references. 20380 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN. 20381 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls. 20382 (output_function): Stream DECL_DEBUG_ARGS. 20383 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 20384 Stream DECL_ABSTRACT_ORIGIN. 20385 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. 20386 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL 20387 DECL_CONTEXT for file-scope decls. 20388 * lto-streamer.h (struct dref_entry): Declare. 20389 (dref_queue): Likewise. 20390 * cfgexpand.c (pass_expand::execute): Do not call the 20391 outlining_inline_function hook here. 20392 * lto-wrapper.c (debug_obj): New global. 20393 (tool_cleanup): Unlink it if required. 20394 (debug_objcopy): New function. 20395 (run_gcc): Handle early debug sections in the IL files by 20396 extracting them to separate files, partially linkin them and 20397 feeding the result back as result to the linker. 20398 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION, 20399 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION, 20400 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug 20401 sections into a separate segment. 20402 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO 20403 segments. 20404 (darwin_asm_dwarf_section): Likewise. 20405 (darwin_asm_output_dwarf_offset): Likewise. 20406 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P. 20407 204082017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20409 Alan Hayward <alan.hayward@arm.com> 20410 David Sherwood <david.sherwood@arm.com> 20411 20412 * read-md.h (md_reader::record_potential_iterator_use): Replace 20413 pointer argument with an rtx and an index. 20414 * read-rtl.c (iterator_group::apply_iterator): Likewise. 20415 (apply_mode_iterator): Likewise. 20416 (apply_code_iterator): Likewise. 20417 (apply_int_iterator): Likewise. 20418 (apply_subst_iterator): Likewise. 20419 (record_iterator_use): Likewise. 20420 (record_attribute_use): Likewise. 20421 (md_reader::record_potential_iterator_use): Likewise. Update calls 20422 to record_iterator_use and apply_iterator. 20423 (iterator_use): Replace ptr with x and index. 20424 (attribute_use): Likewise. 20425 (apply_attribute_uses): Update calls to apply_iterator. 20426 (apply_iterators): Likewise. Update initialization of iterator_use. 20427 (rtx_reader::read_rtx_code): Update calls to record_iterator_use 20428 and record_potential_iterator_use. 20429 (rtx_reader::read_rtx_operand): Likewise. 20430 204312017-08-21 Richard Sandiford <richard.sandiford@linaro.org> 20432 Alan Hayward <alan.hayward@arm.com> 20433 David Sherwood <david.sherwood@arm.com> 20434 20435 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a 20436 CONST_WIDE_INT. 20437 204382017-08-21 Richard Biener <rguenther@suse.de> 20439 20440 PR middle-end/81884 20441 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses 20442 at struct end conservatively when comparing common bases. 20443 204442017-08-21 Richard Biener <rguenther@suse.de> 20445 20446 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member. 20447 (mem_ref_in_stmt): Remove. 20448 (determine_max_movement): Use ref index to get at the reference. 20449 (invariantness_dom_walker::before_dom_children): Deal with 20450 lim data already initialized. 20451 (gather_mem_refs_stmt): Initialize lim data and record ref index. 20452 204532017-08-19 Uros Bizjak <ubizjak@gmail.com> 20454 20455 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove. 20456 (TARGET_ISA_ROUND): Ditto. 20457 (TARGET_ROUND): Ditto. 20458 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1. 20459 * config/i386/i386.md: Ditto. 20460 * config/i386/sse.md: Ditto. 20461 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND 20462 with OPTION_MASK_ISA_SSE4_1. 20463 204642017-08-19 Uros Bizjak <ubizjak@gmail.com> 20465 20466 PR target/81894 20467 * doc/extend.texi (x86 Built-in Functions): Correct the name of 20468 __builtin_ia32_lzcnt_u16. 20469 204702017-08-18 Peter Bergner <bergner@vnet.ibm.com> 20471 20472 PR target/80210 20473 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function. 20474 (rs6000_set_current_function): Rewrite function to use it. 20475 204762017-08-18 H.J. Lu <hongjiu.lu@intel.com> 20477 20478 PR c/53037 20479 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN 20480 and TYPE_WARN_IF_NOT_ALIGN. 20481 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN. 20482 (handle_warn_if_not_align): New. 20483 (place_union_field): Call handle_warn_if_not_align. 20484 (place_field): Call handle_warn_if_not_align. 20485 Copy TYPE_WARN_IF_NOT_ALIGN. 20486 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN. 20487 (layout_type): Likewise. 20488 * tree-core.h (tree_type_common): Add warn_if_not_align. Set 20489 spare to 18. 20490 (tree_decl_common): Add warn_if_not_align. 20491 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN. 20492 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New. 20493 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise. 20494 (DECL_WARN_IF_NOT_ALIGN): Likewise. 20495 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. 20496 * doc/extend.texi: Document warn_if_not_aligned attribute. 20497 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned. 20498 204992017-08-17 Martin Liska <mliska@suse.cz> 20500 20501 PR bootstrap/81864 20502 * tree-loop-distribution.c (ddrs_table): Change type to pointer type. 20503 (get_data_dependence): Use it as pointer type. 20504 (distribute_loop): Likewise. 20505 205062017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 20507 20508 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant. 20509 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct. 20510 (p8_vmrgow_<mode>_direct): New define_insn. 20511 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly 20512 handle endianness for vmrgew and vmrgow permute patterns. 20513 205142017-08-17 Peter Bergner <bergner@vnet.ibm.com> 20515 20516 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE. 20517 * config/rs6000/rs6000-cpus.def: Remove comment. 20518 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE; 20519 (POWERPC_MASKS): Likewise. 20520 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded 20521 use of TARGET_VSX_TIMODE. 20522 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX. 20523 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of 20524 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX. 20525 (rs6000_option_override_internal): Remove dead code. 20526 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX. 20527 (rs6000_legitimize_reload_address): Likewise. 20528 (rs6000_legitimate_address_p): Likewise. 20529 (rs6000_opt_masks): Delete "vsx-timode". 20530 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode 20531 from function comment. 20532 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete. 20533 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE. 20534 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty 20535 condition. 20536 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub. 20537 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE. 20538 * config/rs6000/vsx.md (VSX_LE_128): Likewise. 20539 (VSX_TI): Likewise. 20540 (VSX_M): Likewise. 20541 (define_peephole2): Likewise. 20542 205432017-08-17 Martin Sebor <msebor@redhat.com> 20544 20545 PR c/81859 20546 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading 20547 past the end of an array. 20548 (test_pp_format): Add test cases. 20549 205502017-08-17 Richard Sandiford <richard.sandiford@linaro.org> 20551 20552 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add 20553 missing ECF_NOTHROW flags. 20554 205552017-08-17 Peter Bergner <bergner@vnet.ibm.com> 20556 20557 PR target/72804 20558 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for 20559 operands residing in integer registers. 20560 (*vsx_le_perm_load_<mode>): Likewise. 20561 (*vsx_le_perm_store_<mode>): Likewise. 20562 (define_peephole2): Add peepholes to optimize the above. 20563 205642017-08-17 Marek Polacek <polacek@redhat.com> 20565 20566 PR middle-end/81814 20567 * fold-const.c (operand_equal_for_comparison_p): Remove code that used 20568 to mimic what shorten_compare did. Change the return type to bool. 20569 (fold_cond_expr_with_comparison): Update call to 20570 operand_equal_for_comparison_p. 20571 (fold_ternary_loc): Likewise. 20572 205732017-08-17 Jackson Woodruff <jackson.woodruff@arm.com> 20574 20575 * aarch64-simd.md (mov<mode>): No longer force zero immediate into 20576 register. 20577 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate. 20578 205792017-08-17 Richard Biener <rguenther@suse.de> 20580 20581 * tree-ssa-structalias.c (solve_graph): When propagating 20582 to successors update the graphs succ edges and avoid duplicate work. 20583 205842017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com> 20585 20586 PR target/81861 20587 * config/i386/i386.c (ix86_option_override_internal): Save target 20588 specific options after ix86_stack_protector_guard_reg was changed. 20589 205902017-08-17 Richard Biener <rguenther@suse.de> 20591 20592 PR tree-optimization/81827 20593 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag. 20594 (new_var_info): Initialize it conservatively. 20595 (get_call_vi): Mark register vars. 20596 (new_scalar_tmp_constraint_exp): Likewise. 20597 (handle_rhs_call): Likewise. 20598 (handle_const_call): Likewise. 20599 (create_function_info_for): Likewise. 20600 (solve_constraints): Sort varinfos to separate register from 20601 non-register vars to pack points-to solution bitmaps during 20602 iteration. 20603 206042017-08-17 Marek Polacek <polacek@redhat.com> 20605 20606 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1. 20607 206082017-08-17 Richard Biener <rguenther@suse.de> 20609 20610 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p 20611 to true when overflow is undefined and we saturated the result. 20612 206132017-08-17 Alan Modra <amodra@gmail.com> 20614 20615 PR target/80938 20616 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09. 20617 Don't use store multiple if only one reg needs saving. 20618 (interesting_frame_related_regno): New function. 20619 (rs6000_frame_related): Don't emit frame info for regs that 20620 don't need saving. 20621 (rs6000_emit_epilogue): Likewise. 20622 206232017-08-16 Nathan Sidwell <nathan@acm.org> 20624 20625 * tree-core.h (tree_type_non_common): Rename binfo to lang_1. 20626 * tree.h (TYPE_BINFO): Use type_non_common.maxval. 20627 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type. 20628 * tree.c (free_lang_data_in_type): Use else-if chain. Always 20629 clear TYPE_LANG_1. Remove obsolete member-function stripping. 20630 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW. 20631 (verify_type): Adjust for TYPE_BINFO move. 20632 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to 20633 process TYPE_BINFO directly. 20634 (hash_tree): Likewise. 20635 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): 20636 Likewise. 20637 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): 20638 Likewise. 20639 206402017-08-16 David Malcolm <dmalcolm@redhat.com> 20641 20642 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field. 20643 206442017-08-16 Uros Bizjak <ubizjak@gmail.com> 20645 20646 PR target/46091 20647 * config/i386/i386.md (*anddi_1_btr): Change predicates of 20648 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint. 20649 Add ix86_binary_operator_ok to insn constraint. 20650 (*iordi_1_bts): Ditto. 20651 (*xordi_1_btc): Ditto. 20652 (*btsq): Change predicate of operand 0 to nonimmediate_operand. 20653 Update corresponding peephole2 pattern. 20654 (*btrq): Ditto. 20655 (*btcq): Ditto. 20656 206572017-08-16 Bin Cheng <bin.cheng@arm.com> 20658 20659 PR tree-optimization/81832 20660 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't 20661 copy loop header which has IFN_LOOP_DIST_ALIAS call. 20662 206632017-08-16 Marek Polacek <polacek@redhat.com> 20664 20665 PR middle/81695 20666 * fold-const.c (fold_indirect_ref_1): Restore original behavior 20667 regarding size_zero_node. 20668 206692017-08-16 Martin Liska <mliska@suse.cz> 20670 20671 PR target/81753 20672 * config.gcc: Respect previously set extra_objs in case 20673 of darwin target. 20674 206752017-08-16 Richard Sandiford <richard.sandiford@linaro.org> 20676 20677 PR tree-optimization/81835 20678 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for 20679 the phi SSA_NAME. Check that the condition in a COND_EXPR does 20680 not depend on the phi. 20681 206822017-08-16 Alan Modra <amodra@gmail.com> 20683 20684 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete 20685 dead code. 20686 206872017-08-16 Alan Modra <amodra@gmail.com> 20688 20689 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge.. 20690 (save_reg_p): ..into this. Update all callers. 20691 (first_reg_to_save): Simplify. 20692 206932017-08-16 Alan Modra <amodra@gmail.com> 20694 20695 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore 20696 fixed regs. 20697 206982017-08-15 Joseph Myers <joseph@codesourcery.com> 20699 20700 PR target/78460 20701 PR target/67712 20702 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for 20703 constant count if that count is less than 32. 20704 207052017-08-15 Nathan Sidwell <nathan@acm.org> 20706 20707 * gcc.c (execute): Emit friendlier message if inferior is killed 20708 by an external cause. 20709 207102017-08-15 Richard Biener <rguenther@suse.de> 20711 20712 PR tree-optimization/81790 20713 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both 20714 CONSTRUCTORs from simplifying and VN. 20715 207162017-08-14 Martin Sebor <msebor@redhat.com> 20717 20718 * builtin-attrs.def: Add comments. 20719 207202017-08-14 Martin Sebor <msebor@redhat.com> 20721 20722 PR c/81117 20723 * doc/extend.texi (attribute nonstring): Document new attribute. 20724 207252017-08-14 Martin Sebor <msebor@redhat.com> 20726 20727 PR c/81117 20728 * tree-diagnostic.c (default_tree_printer): Handle %G. 20729 * gimple-pretty-print.h (percent_G_format): Declare new function. 20730 * gimple-pretty-print.c (percent_G_format): Define. 20731 * tree-pretty-print.c (percent_K_format): Add argument. 20732 207332017-08-14 Martin Sebor <msebor@redhat.com> 20734 20735 PR translation/79998 20736 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): 20737 Remove a stray space. 20738 207392017-08-14 Uros Bizjak <ubizjak@gmail.com> 20740 20741 PR target/46091 20742 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern. 20743 (*iordi_1_bts): Ditto. 20744 (*xordi_1_btc): Ditto. 20745 207462017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 20747 20748 PR target/79845 20749 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings. 20750 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 20751 Likewise. 20752 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use 20753 quoted strings, and make more translator-friendly. 20754 (darwin_rs6000_override_options): Likewise. 20755 (rs6000_option_override_internal): Likewise. 20756 (rs6000_return_in_memory): Fix overlong line. 20757 (init_cmulative_args): Use quoted strings, and make more 20758 translator-friendly. 20759 (rs6000_pass_by_reference): Fix overlong line. 20760 (def_builtin): Use quoted strings. 20761 (altivec_expand_predicate_builtin): Use quoted strings, and make 20762 more translator-friendly. 20763 (htm_expand_builtin): Use quoted strings. 20764 (cpu_expand_builtin): Use quoted strings, and make more 20765 translator-friendly. 20766 (altivec_expand_builtin): Likewise. 20767 (paired_expand_predicate_builtin): Likewise. 20768 (rs6000_invalid_builtin): Likewise. 20769 (builtin_function_type): Use quoted strings. 20770 (rs6000_expand_split_stack_prologue): Use quoted strings, and make 20771 more translator-friendly. 20772 (rs6000_trampoline_init): Likewise. 20773 (rs6000_handle_altivec_attribute): Likewise. 20774 (rs6000_inner_target_options): Use quoted strings. 20775 (rs6000_disable_incompatible_switches): Likewise. 20776 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted 20777 strings, and make more translator-friendly. 20778 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings. 20779 207802017-08-14 Bin Cheng <bin.cheng@arm.com> 20781 20782 PR tree-optimization/81799 20783 * tree-loop-distribution.c (version_loop_by_alias_check): Force 20784 cond_expr to simple gimple operand. 20785 207862017-08-14 Wilco Dijkstra <wdijkstr@arm.com> 20787 20788 PR middle-end/46932 20789 * doc/sourcebuild.texi (autoincdec): Add autoincdec description. 20790 207912017-08-14 Georg-Johann Lay <avr@gjlay.de> 20792 20793 PR target/81754 20794 PR target/81268 20795 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues. 20796 * config/avr/avr.md (gasisr, *gasisr): Use it instead of 20797 TARGET_GASISR_PROLOGUES. 20798 * config/avr/avr.c (avr_option_override): Same. 20799 (avr_pass_pre_proep::execute): Same. 20800 208012017-08-13 H.J. Lu <hongjiu.lu@intel.com> 20802 20803 PR target/81820 20804 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace 20805 frame pointer with stack pointer - UNITS_PER_WORD in debug insns. 20806 208072017-08-13 Uros Bizjak <ubizjak@gmail.com> 20808 20809 * config/i386/i386.md (*load_tp_<mode>): Redefine as 20810 define_insn_and_split. Split to a memory load from 0 in 20811 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32 20812 using PTR mode iterator. 20813 (*load_tp_x32_zext"): Redefine as define_insn_and_split. 20814 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space. 20815 (*add_tp_<mode>): Redefine as define_insn_and_split. 20816 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG 20817 address space. Merge with *add_tp_x32 using PTR mode iterator. 20818 (*add_tp_x32_zext"): Redefine as define_insn_and_split. 20819 Split to an add with a memory load from 0 in 20820 DEFAULT_TLS_SEG_REG address space. 20821 208222017-08-12 Andrew Pinski <apinski@cavium.com> 20823 20824 * config/aarch64/aarch64-option-extensions.def (rdma): 20825 Fix feature string to what Linux prints out in /proc/cpuinfo. 20826 208272017-08-12 Pierre-Marie de Rodat <derodat@adacore.com> 20828 20829 PR ada/79542 20830 * dwarf2out.c (modified_type_die): For C typedef types that have 20831 an ultimate origin, process the ultimate origin instead of the 20832 input type. 20833 (gen_typedef_die): Assert that input DECLs have no ultimate 20834 origin. 20835 (gen_type_die_with_usage): For typedef variants that have an 20836 ultimate origin, just call gen_decl_die on the original DECL. 20837 (process_scope_var): Avoid creating DIEs for local typedefs and 20838 concrete static variables. 20839 208402017-08-12 Alan Modra <amodra@gmail.com> 20841 20842 PR target/81170 20843 PR target/81295 20844 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to 20845 match gnu-user.h startfile. 20846 (ENDFILE_LINUX_SPEC): Similarly. 20847 208482017-08-11 Thomas Schwinge <thomas@codesourcery.com> 20849 20850 PR lto/81430 20851 * config/nvptx/nvptx.c (nvptx_override_options_after_change): 20852 Remove function. 20853 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition. 20854 208552017-08-11 Tamar Christina <tamar.christina@arm.com> 20856 * config/aarch64/aarch64.md (mov<mode>): Change. 20857 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): 20858 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero. 20859 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed. 20860 208612017-08-11 Eric Botcazou <ebotcazou@adacore.com> 20862 20863 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics 20864 for storage order barriers. 20865 208662017-08-11 Martin Liska <mliska@suse.cz> 20867 20868 PR tree-opt/79987 20869 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument 20870 variables of void type. 20871 208722017-08-11 Martin Liska <mliska@suse.cz> 20873 20874 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with 20875 TARGET_SUPPORTS_ALIASES. 20876 * cgraph.c (cgraph_node::create_same_body_alias): Likewise. 20877 * ipa-visibility.c (can_replace_by_local_alias): Likewise. 20878 (optimize_weakref): Likewise. 20879 * symtab.c (symtab_node::noninterposable_alias): Likewise. 20880 * varpool.c (varpool_node::create_extra_name_alias): Likewise. 20881 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES. 20882 208832017-08-11 Martin Liska <mliska@suse.cz> 20884 20885 PR ipa/81213 20886 * config/i386/i386.c (make_resolver_func): Do complete 20887 refactoring of the function. 20888 208892017-08-10 Uros Bizjak <ubizjak@gmail.com> 20890 20891 PR target/81708 20892 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option 20893 * config/i386/i386.c (ix86_stack_protect_guard): Use 20894 ix86_stack_protect_guard_symbol_str to generate varible declaration. 20895 * doc/invoke.texi (x86 Options): Document 20896 -mstack-protector-guard-symbol= option. 20897 208982017-08-10 Uros Bizjak <ubizjak@gmail.com> 20899 20900 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype. 20901 * config/i386/i386.c (ix86_split_stack_guard): New function. 20902 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard. 20903 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove. 20904 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto. 20905 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling. 20906 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK. 20907 (split_stack_space_check): Call ix86_split_stack_guard. 20908 209092017-08-10 Martin Sebor <msebor@redhat.com> 20910 20911 * print-tree.c (print_node): Print location using the established 20912 format %s:%i%i. 20913 Replace spaces with colons. 20914 (debug_raw, debug): Ditto. 20915 209162017-08-10 Martin Sebor <msebor@redhat.com> 20917 20918 PR c++/81586 20919 * pretty-print.c (pp_format): Correct the handling of %s precision. 20920 209212017-08-10 H.J. Lu <hongjiu.lu@intel.com> 20922 20923 PR target/81736 20924 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed 20925 to ... 20926 (ix86_finalize_stack_frame_flags): This. Also clear 20927 frame_pointer_needed if -fno-omit-frame-pointer is used without 20928 stack access. 20929 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags 20930 with ix86_finalize_stack_frame_flags. 20931 (ix86_expand_epilogue): Likewise. 20932 (ix86_expand_split_stack_prologue): Likewise. 20933 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer. 20934 209352017-08-10 Martin Liska <mliska@suse.cz> 20936 20937 PR c++/81355 20938 * c-attribs.c (handle_target_attribute): 20939 Report warning for an empty string argument of target attribute. 20940 209412017-08-09 Jakub Jelinek <jakub@redhat.com> 20942 20943 PR c/81687 20944 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL 20945 LABEL_DECLs. 20946 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL 20947 or DECL_NONLOCAL labels. 20948 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL 20949 or DECL_NONLOCAL labels here. 20950 209512017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> 20952 20953 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb 20954 to indicate when early gimple folding has been disabled. 20955 (rs6000_gimple_fold_builtin): Add debug content. 20956 (rs6000_invalid_builtin): Fix whitespace. 20957 (rs6000_expand_builtin): Fix whitespace. 20958 * config/rs6000/rs6000.opt: Add option for -mfold-gimple. 20959 209602017-08-09 Segher Boessenkool <segher@kernel.crashing.org> 20961 20962 PR target/80938 20963 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use 20964 SAVE_MULTIPLE if not all the registers that saves, should be saved. 20965 209662017-08-09 Jim Wilson <jim.wilson@linaro.org> 20967 20968 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline. 20969 (qdf24xx): Likewise. 20970 * config/aarch64/aarch64.md: Include falkor.md. 20971 * config/aarch64/falkor.md: New. 20972 209732017-08-09 Marek Polacek <polacek@redhat.com> 20974 20975 PR c/81233 20976 * diagnostic-core.h (emit_diagnostic_valist): Add declaration. 20977 * diagnostic.c (emit_diagnostic): Add a comment. 20978 (emit_diagnostic_valist): New function. 20979 209802017-08-09 Marek Polacek <polacek@redhat.com> 20981 20982 PR c/81417 20983 * input.c (make_location): New overload. 20984 * input.h (make_location): Declare. 20985 209862017-08-08 Alan Modra <amodra@gmail.com> 20987 H.J. Lu <hongjiu.lu@intel.com> 20988 20989 PR driver/81523 20990 * gcc.c (NO_PIE_SPEC): Delete. 20991 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r 20992 exclusion.. 20993 (LINK_PIE_SPEC): ..to here. 20994 (LINK_COMMAND_SPEC): Support -no-pie. 20995 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct 20996 chain of crtbegin*.o selection, update for PIE_SPEC changes and 20997 format. 20998 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly. 20999 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly. 21000 (ENDFILE_CRTEND_SPEC): Similarly. 21001 210022017-08-08 Uros Bizjak <ubizjak@gmail.com> 21003 21004 PR target/81708 21005 * config/i386/i386.opt (mstack-protector-guard-reg=): New option 21006 (mstack-protector-guard-offset=): Ditto. 21007 * config/i386/i386.c (ix86_option_override): Handle 21008 -mstack-protector-guard-reg= and -mstack-protector-guard-offset= 21009 options. 21010 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and 21011 ix86_stack_protect_guard_offset variables. 21012 (TARGET_STACK_PROTECT_GUARD): Always define. 21013 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg= 21014 and -mstack-protector-guard-offset= options. 21015 210162017-08-08 Bin Cheng <bin.cheng@arm.com> 21017 21018 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle 21019 boundary case for the last candidate. 21020 210212017-08-08 Bin Cheng <bin.cheng@arm.com> 21022 21023 * doc/invoke.texi: Document -ftree-loop-distribution for O3. 21024 * opts.c (default_options_table): Add OPT_ftree_loop_distribution. 21025 210262017-08-08 Tamar Christina <tamar.christina@arm.com> 21027 21028 PR middle-end/19706 21029 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs. 21030 * config/aarch64/aarch64-builtins.c 21031 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN. 21032 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP. 21033 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3 21034 210352017-08-08 Tamar Christina <tamar.christina@arm.com> 21036 Andrew Pinski <pinskia@gmail.com> 21037 21038 PR middle-end/19706 21039 * internal-fn.def (XORSIGN): New. 21040 * optabs.def (xorsign_optab): New. 21041 * tree-ssa-math-opts.c (is_copysign_call_with_1): New. 21042 (convert_expand_mult_copysign): New. 21043 (pass_optimize_widening_mul::execute): Call 21044 convert_expand_mult_copysign. 21045 210462017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 21047 21048 PR tree-optimization/81354 21049 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge): 21050 Insert on edges rather than explicitly creating landing pads. 21051 (analyze_candidates_and_replace): Commit edge inserts. 21052 210532017-08-08 Richard Biener <rguenther@suse.de> 21054 21055 PR middle-end/81719 21056 * tree-ssa-loop-niter.c: Include tree-dfa.h. 21057 (expand_simple_operations): Also look through ADDR_EXPRs with 21058 MEM_REF bases treating them as POINTER_PLUS_EXPR. 21059 210602017-08-08 Richard Biener <rguenther@suse.de> 21061 21062 PR tree-optimization/81723 21063 * tree-vect-slp.c (struct bst_traits): New hash traits. 21064 (bst_fail): New global. 21065 (vect_build_slp_tree_2): New worker, split out from ... 21066 (vect_build_slp_tree): ... this now wrapping it with using 21067 bst_fail set to cache SLP tree build fails. Properly handle 21068 max_tree_size. 21069 (vect_analyze_slp_instance): Allocate and free bst_fail. 21070 210712017-08-08 Martin Liska <mliska@suse.cz> 21072 21073 PR tree-opt/81696 21074 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider 21075 LABEL_DECLs that can be from a different function. 21076 210772017-08-08 Bin Cheng <bin.cheng@arm.com> 21078 21079 PR tree-optimization/81744 21080 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of 21081 loop's number of iterations. 21082 210832017-08-08 Martin Liska <mliska@suse.cz> 21084 21085 * asan.c: Include header files. 21086 * attribs.c (build_decl_attribute_variant): New function moved 21087 from tree.[ch]. 21088 (build_type_attribute_qual_variant): Likewise. 21089 (cmp_attrib_identifiers): Likewise. 21090 (simple_cst_list_equal): Likewise. 21091 (omp_declare_simd_clauses_equal): Likewise. 21092 (attribute_value_equal): Likewise. 21093 (comp_type_attributes): Likewise. 21094 (build_type_attribute_variant): Likewise. 21095 (lookup_ident_attribute): Likewise. 21096 (remove_attribute): Likewise. 21097 (merge_attributes): Likewise. 21098 (merge_type_attributes): Likewise. 21099 (merge_decl_attributes): Likewise. 21100 (merge_dllimport_decl_attributes): Likewise. 21101 (handle_dll_attribute): Likewise. 21102 (attribute_list_equal): Likewise. 21103 (attribute_list_contained): Likewise. 21104 * attribs.h (lookup_attribute): New function moved from tree.[ch]. 21105 (lookup_attribute_by_prefix): Likewise. 21106 * bb-reorder.c: Include header files. 21107 * builtins.c: Likewise. 21108 * calls.c: Likewise. 21109 * cfgexpand.c: Likewise. 21110 * cgraph.c: Likewise. 21111 * cgraphunit.c: Likewise. 21112 * convert.c: Likewise. 21113 * dwarf2out.c: Likewise. 21114 * final.c: Likewise. 21115 * fold-const.c: Likewise. 21116 * function.c: Likewise. 21117 * gimple-expr.c: Likewise. 21118 * gimple-fold.c: Likewise. 21119 * gimple-pretty-print.c: Likewise. 21120 * gimple.c: Likewise. 21121 * gimplify.c: Likewise. 21122 * hsa-common.c: Likewise. 21123 * hsa-gen.c: Likewise. 21124 * internal-fn.c: Likewise. 21125 * ipa-chkp.c: Likewise. 21126 * ipa-cp.c: Likewise. 21127 * ipa-devirt.c: Likewise. 21128 * ipa-fnsummary.c: Likewise. 21129 * ipa-inline.c: Likewise. 21130 * ipa-visibility.c: Likewise. 21131 * ipa.c: Likewise. 21132 * lto-cgraph.c: Likewise. 21133 * omp-expand.c: Likewise. 21134 * omp-general.c: Likewise. 21135 * omp-low.c: Likewise. 21136 * omp-offload.c: Likewise. 21137 * omp-simd-clone.c: Likewise. 21138 * opts-global.c: Likewise. 21139 * passes.c: Likewise. 21140 * predict.c: Likewise. 21141 * sancov.c: Likewise. 21142 * sanopt.c: Likewise. 21143 * symtab.c: Likewise. 21144 * toplev.c: Likewise. 21145 * trans-mem.c: Likewise. 21146 * tree-chkp.c: Likewise. 21147 * tree-eh.c: Likewise. 21148 * tree-into-ssa.c: Likewise. 21149 * tree-object-size.c: Likewise. 21150 * tree-parloops.c: Likewise. 21151 * tree-profile.c: Likewise. 21152 * tree-ssa-ccp.c: Likewise. 21153 * tree-ssa-live.c: Likewise. 21154 * tree-ssa-loop.c: Likewise. 21155 * tree-ssa-sccvn.c: Likewise. 21156 * tree-ssa-structalias.c: Likewise. 21157 * tree-ssa.c: Likewise. 21158 * tree-streamer-in.c: Likewise. 21159 * tree-vectorizer.c: Likewise. 21160 * tree-vrp.c: Likewise. 21161 * tsan.c: Likewise. 21162 * ubsan.c: Likewise. 21163 * varasm.c: Likewise. 21164 * varpool.c: Likewise. 21165 * tree.c: Remove functions moved to attribs.[ch]. 21166 * tree.h: Likewise. 21167 * config/aarch64/aarch64.c: Add attrs.h header file. 21168 * config/alpha/alpha.c: Likewise. 21169 * config/arc/arc.c: Likewise. 21170 * config/arm/arm.c: Likewise. 21171 * config/avr/avr.c: Likewise. 21172 * config/bfin/bfin.c: Likewise. 21173 * config/c6x/c6x.c: Likewise. 21174 * config/cr16/cr16.c: Likewise. 21175 * config/cris/cris.c: Likewise. 21176 * config/darwin.c: Likewise. 21177 * config/epiphany/epiphany.c: Likewise. 21178 * config/fr30/fr30.c: Likewise. 21179 * config/frv/frv.c: Likewise. 21180 * config/ft32/ft32.c: Likewise. 21181 * config/h8300/h8300.c: Likewise. 21182 * config/i386/winnt.c: Likewise. 21183 * config/ia64/ia64.c: Likewise. 21184 * config/iq2000/iq2000.c: Likewise. 21185 * config/lm32/lm32.c: Likewise. 21186 * config/m32c/m32c.c: Likewise. 21187 * config/m32r/m32r.c: Likewise. 21188 * config/m68k/m68k.c: Likewise. 21189 * config/mcore/mcore.c: Likewise. 21190 * config/microblaze/microblaze.c: Likewise. 21191 * config/mips/mips.c: Likewise. 21192 * config/mmix/mmix.c: Likewise. 21193 * config/mn10300/mn10300.c: Likewise. 21194 * config/moxie/moxie.c: Likewise. 21195 * config/msp430/msp430.c: Likewise. 21196 * config/nds32/nds32-isr.c: Likewise. 21197 * config/nds32/nds32.c: Likewise. 21198 * config/nios2/nios2.c: Likewise. 21199 * config/nvptx/nvptx.c: Likewise. 21200 * config/pa/pa.c: Likewise. 21201 * config/pdp11/pdp11.c: Likewise. 21202 * config/powerpcspe/powerpcspe.c: Likewise. 21203 * config/riscv/riscv.c: Likewise. 21204 * config/rl78/rl78.c: Likewise. 21205 * config/rx/rx.c: Likewise. 21206 * config/s390/s390.c: Likewise. 21207 * config/sh/sh.c: Likewise. 21208 * config/sol2.c: Likewise. 21209 * config/sparc/sparc.c: Likewise. 21210 * config/spu/spu.c: Likewise. 21211 * config/stormy16/stormy16.c: Likewise. 21212 * config/tilegx/tilegx.c: Likewise. 21213 * config/tilepro/tilepro.c: Likewise. 21214 * config/v850/v850.c: Likewise. 21215 * config/vax/vax.c: Likewise. 21216 * config/visium/visium.c: Likewise. 21217 * config/xtensa/xtensa.c: Likewise. 21218 212192017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> 21220 21221 PR target/81593 21222 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup 21223 constraints since the -mupper-regs-* switches have been 21224 eliminated. 21225 (vsx_concat_<mode>_1): New combiner insns to recognize inserting 21226 into a vector from a double word element that was extracted from 21227 another vector, and eliminate extra XXPERMDI instructions. 21228 (vsx_concat_<mode>_2): Likewise. 21229 (vsx_concat_<mode>_3): Likewise. 21230 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector 21231 concat to allow optimizing inserts from previous extracts. 21232 212332017-08-07 Uros Bizjak <ubizjak@gmail.com> 21234 21235 * config/i386/i386.c (ix86_stack_protect_guard): Generate 21236 memory reference to a SSP offset in TLS address space. 21237 (ix86_print_operand) <case '@'>: Remove. 21238 (ix86_print_operand_punct_valid_p): Remove '@' code. 21239 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and 21240 UNSPEC_SP_TLS_TEST. 21241 (stack_tls_protect_set_<mode>): Remove. 21242 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>. 21243 (stack_tls_protect_test_<mode>): Remove. 21244 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>. 21245 212462017-08-07 Olivier Hainque <hainque@adacore.com> 21247 21248 PR target/81755 21249 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define. 21250 212512017-08-07 Douglas Rupp <rupp@adacore.com> 21252 21253 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir 21254 variable was referenced as multidir in command. 21255 212562017-08-07 Jakub Jelinek <jakub@redhat.com> 21257 21258 PR c/69389 21259 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and 21260 BIT_FIELD_REF. 21261 212622017-08-07 Martin Liska <mliska@suse.cz> 21263 21264 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h. 21265 * config/rl78/rl78.c: Add include of attribs.h. 21266 * config/sh/sh.c: Likewise. 21267 * config/v850/v850.c: Likewise. 21268 212692017-08-07 Tom de Vries <tom@codesourcery.com> 21270 21271 PR middle-end/78266 21272 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough. 21273 212742017-08-07 Martin Liska <mliska@suse.cz> 21275 21276 * config/mips/mips.c: Include attribs.h. 21277 212782017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> 21279 21280 PR fortran/68829 21281 * doc/invoke.texi: Document change in behvaior for -Ofast for 21282 Fortran. 21283 212842017-08-07 Wilco Dijkstra <wdijkstr@arm.com> 21285 21286 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): 21287 Use gen_frame_mem. 21288 (aarch64_pop_regs): Likewise. 21289 (aarch64_gen_load_pair): Likewise. 21290 (aarch64_save_callee_saves): Likewise. 21291 (aarch64_restore_callee_saves): Likewise. 21292 212932017-08-07 H.J. Lu <hongjiu.lu@intel.com> 21294 21295 * config/i386/i386.c: Revert the last change. 21296 212972017-08-07 H.J. Lu <hongjiu.lu@intel.com> 21298 21299 PR target/81736 21300 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed 21301 to ... 21302 (ix86_finalize_stack_frame_flags): This. Also clear 21303 frame_pointer_needed if -fno-omit-frame-pointer is used without 21304 stack access. 21305 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags 21306 with ix86_finalize_stack_frame_flags. 21307 (ix86_expand_epilogue): Likewise. 21308 (ix86_expand_split_stack_prologue): Likewise. 21309 213102017-08-07 H.J. Lu <hongjiu.lu@intel.com> 21311 21312 PR target/81743 21313 * config/i386/i386.c (get_builtin_code_for_version): Set priority 21314 to P_AES for Westmere. 21315 213162017-08-07 Jonathan Yong <10walls@gmail.com> 21317 21318 * config/i386/mingw.opt (fset-stack-executable): Removed. 21319 * config/i386/cygming.opt (fset-stack-executable): Moved 21320 from mingw.opt. 21321 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED. 21322 213232017-08-07 Segher Boessenkool <segher@kernel.crashing.org> 21324 21325 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!". 21326 213272017-08-07 Marek Polacek <polacek@redhat.com> 21328 21329 PR middle-end/81737 21330 * fold-const.c (fold_indirect_ref_1): Check type_domain. 21331 213322017-08-07 Martin Liska <mliska@suse.cz> 21333 21334 * attribs.h (canonicalize_attr_name): New function. 21335 (cmp_attribs): Move from c-format.c and adjusted. 21336 (is_attribute_p): Moved from tree.h. 21337 * tree-inline.c: Add new includes. 21338 * tree.c (cmp_attrib_identifiers): Use cmp_attribs. 21339 (private_is_attribute_p): Remove. 21340 (private_lookup_attribute): Likewise. 21341 (private_lookup_attribute_by_prefix): Simplify. 21342 (remove_attribute): Use is_attribute_p. 21343 * tree.h: Remove removed declarations. 21344 213452017-08-07 Jakub Jelinek <jakub@redhat.com> 21346 21347 PR middle-end/81698 21348 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument, 21349 instead of computing it in the function. Formatting fix. 21350 (expand_case): Don't rely on default_edge being the first edge, 21351 clear it if removing it, pass default_edge to 21352 emit_case_dispatch_table. 21353 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting 21354 fix. 21355 213562017-08-06 Uros Bizjak <ubizjak@gmail.com> 21357 21358 * config/alpha/alpha.c (alpha_reorg): If trap is the last active 21359 insn in the function, emit NOP after the insn. 21360 213612017-08-06 Tom de Vries <tom@codesourcery.com> 21362 21363 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile 21364 and element loops. 21365 213662017-08-06 Tom de Vries <tom@codesourcery.com> 21367 21368 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk 21369 loop. 21370 213712017-08-04 Yury Gribov <tetra2005@gmail.com> 21372 21373 PR tree-optimization/57371 21374 * match.pd: New pattern. 21375 213762017-08-04 Marek Polacek <polacek@redhat.com> 21377 21378 PR middle-end/81695 21379 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1], 21380 perform the computation in offset_int. 21381 213822017-08-04 Richard Sandiford <richard.sandiford@linaro.org> 21383 21384 PR tree-optimization/81136 21385 * tree-vectorizer.h: Include tree-hash-traits.h. 21386 (vec_base_alignments): New typedef. 21387 (vec_info): Add a base_alignments field. 21388 (vect_record_base_alignments): Declare. 21389 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt 21390 field. 21391 (DR_IS_CONDITIONAL_IN_STMT): New macro. 21392 (create_data_ref): Add an is_conditional_in_stmt argument. 21393 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize 21394 the is_conditional_in_stmt field. 21395 (data_ref_loc): Add an is_conditional_in_stmt field. 21396 (get_references_in_stmt): Set the is_conditional_in_stmt field. 21397 (find_data_references_in_stmt): Update call to create_data_ref. 21398 (graphite_find_data_references_in_stmt): Likewise. 21399 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 21400 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. 21401 (vect_record_base_alignment): New function. 21402 (vect_record_base_alignments): Likewise. 21403 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to 21404 for nested statements even if we fail to compute a misalignment. 21405 Use pooled base alignments for unconditional references. 21406 (vect_find_same_alignment_drs): Compare base addresses instead 21407 of base objects. 21408 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments. 21409 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise. 21410 214112017-08-04 Richard Sandiford <richard.sandiford@linaro.org> 21412 21413 * tree-vectorizer.h (vec_info): Add a constructor and destructor. 21414 Add an explicit name for the enum. Use auto_vec for slp_instances 21415 and grouped_stores. 21416 (_loop_vec_info): Add a constructor and destructor. Use auto_vec 21417 for all vectors. 21418 (_bb_vec_info): Add a constructor and destructor. 21419 (vinfo_for_stmt): Return NULL for uids of -1 as well. 21420 (destroy_loop_vec_info): Delete. 21421 (vect_destroy_datarefs): Likewise. 21422 * tree-vectorizer.c (vect_destroy_datarefs): Delete. 21423 (vec_info::vec_info): New function. 21424 (vec_info::~vec_info): Likewise. 21425 (vectorize_loops): Use delete instead of destroy_loop_vec_info. 21426 * tree-parloops.c (gather_scalar_reductions): Use delete instead of 21427 destroy_loop_vec_info. 21428 * tree-vect-loop.c (new_loop_vec_info): Replace with... 21429 (_loop_vec_info::_loop_vec_info): ...this. 21430 (destroy_loop_vec_info): Replace with... 21431 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete 21432 the stmt_vec_infos. Leave handling of vec_info information to its 21433 destructor. Remove explicit vector releases. 21434 (vect_analyze_loop_form): Use new instead of new_loop_vec_info. 21435 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info. 21436 * tree-vect-slp.c (new_bb_vec_info): Replace with... 21437 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in 21438 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES. 21439 (destroy_bb_vec_info): Replace with... 21440 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info 21441 information to its destructor. 21442 (vect_slp_analyze_bb_1): Use new and delete instead of 21443 new_bb_vec_info and destroy_bb_vec_info. 21444 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a 21445 single delete. 21446 214472017-08-04 Richard Sandiford <richard.sandiford@linaro.org> 21448 21449 * tree-data-ref.h (subscript): Add access_fn field. 21450 (data_dependence_relation): Add could_be_independent_p. 21451 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros. 21452 (same_access_functions): Move to tree-data-ref.c. 21453 * tree-data-ref.c (ref_contains_union_access_p): New function. 21454 (access_fn_component_p): Likewise. 21455 (access_fn_components_comparable_p): Likewise. 21456 (dr_analyze_indices): Add a reference to access_fn_component_p. 21457 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of 21458 DR_ACCESS_FN. 21459 (constant_access_functions): Likewise. 21460 (add_other_self_distances): Likewise. 21461 (same_access_functions): Likewise. (Moved from tree-data-ref.h.) 21462 (initialize_data_dependence_relation): Use XCNEW and remove 21463 explicit zeroing of DDR_REVERSED_P. Look for a subsequence 21464 of access functions that have the same type. Allow the 21465 subsequence to end with different bases in some circumstances. 21466 Record the chosen access functions in SUB_ACCESS_FN. 21467 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with 21468 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN. 21469 (subscript_dependence_tester_1): Likewise dra and drb. 21470 (build_classic_dist_vector): Update calls accordingly. 21471 (subscript_dependence_tester): Likewise. 21472 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check 21473 DDR_COULD_BE_INDEPENDENT_P. 21474 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test 21475 comp_alias_ddrs instead of may_alias_ddrs. 21476 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): 21477 New function. 21478 (vect_analyze_data_ref_dependence): Use it if 21479 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded 21480 distance vectors if that fails. 21481 (dependence_distance_ge_vf): New function. 21482 (vect_prune_runtime_alias_test_list): Use it. Don't clear 21483 LOOP_VINFO_MAY_ALIAS_DDRS. 21484 214852017-08-04 Richard Biener <rguenther@suse.de> 21486 21487 PR middle-end/81705 21488 * fold-const.c (fold_binary_loc): Properly restrict 21489 minus_var0 && minus_var1 case when associating undefined overflow 21490 entities. 21491 214922017-08-04 Tom de Vries <tom@codesourcery.com> 21493 21494 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability. 21495 214962017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 21497 21498 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 21499 Don't start diagnostic messages with a capital letter. 21500 * config/rs6000/rs6000.c (rs6000_option_override_internal): 21501 Likewise. 21502 (rs6000_invalid_builtin): Likewise. 21503 (rs6000_trampoline_init): Likewise. 21504 215052017-08-03 Jakub Jelinek <jakub@redhat.com> 21506 21507 PR target/81621 21508 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish 21509 after setting changeable df flags. 21510 215112017-08-03 Richard Biener <rguenther@suse.de> 21512 21513 * tree-ssa-reassoc.c (should_break_up_subtract): Also break 21514 up if the use is in USE - X. 21515 215162017-08-03 Alexander Monakov <amonakov@ispras.ru> 21517 21518 * toplev.c (dumpfile.h): New include. 21519 (internal_error_reentered): New static function. Use it... 21520 (internal_error_function): ...here to handle reentered internal_error. 21521 215222017-08-03 Richard Biener <rguenther@suse.de> 21523 21524 PR middle-end/81148 21525 * fold-const.c (split_tree): Add minus_var and minus_con 21526 arguments, remove unused loc arg. Never generate NEGATE_EXPRs 21527 here but always use minus_*. 21528 (associate_trees): Assert we never associate with MINUS_EXPR 21529 and NULL first operand. Do not recurse for PLUS_EXPR operands 21530 when associating as MINUS_EXPR either. 21531 (fold_binary_loc): Track minus_var and minus_con. 21532 215332017-08-03 Tom de Vries <tom@codesourcery.com> 21534 21535 PR lto/81430 21536 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If 21537 ACCEL_COMPILER, apply finish_options on 21538 DECL_FUNCTION_SPECIFIC_OPTIMIZATION. 21539 215402017-08-03 Tom de Vries <tom@codesourcery.com> 21541 21542 PR target/81662 21543 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if 21544 function_entry_patch_area_size > 0. 21545 215462017-08-03 Jakub Jelinek <jakub@redhat.com> 21547 21548 PR driver/81650 21549 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??) 21550 instead of 10??LU, perform unit multiplication in wide_int, 21551 don't change alloc_object_size_limit if the limit is larger 21552 than SSIZE_MAX. 21553 21554 PR tree-optimization/81655 21555 PR tree-optimization/81588 21556 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also 21557 the case when ranges[i].low and high are 1 for unsigned type with 21558 precision 1. 21559 21560 PR middle-end/81052 21561 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp. 21562 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd. 21563 215642017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 21565 21566 * tree-vrp.h: Add include guard. 21567 215682017-08-02 Uros Bizjak <ubizjak@gmail.com> 21569 21570 PR target/81644 21571 * config/i386/i386.md (unspecv): Add UNSPECV_UD2. 21572 (ud2): New insn pattern. 21573 * config/i386/i386.c (ix86_expand_epilogue): 21574 For naked functions, generate ud2 instead of trap insn. 21575 215762017-08-02 Marek Polacek <polacek@redhat.com> 21577 21578 PR other/81667 21579 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size. 21580 215812017-08-02 Tom de Vries <tom@codesourcery.com> 21582 Cesar Philippidis <cesar@codesourcery.com> 21583 21584 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update): 21585 Add missing edge probabilities. 21586 215872017-08-02 Tamar Christina <tamar.christina@arm.com> 21588 21589 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): 21590 Correct endianness. 21591 215922017-08-02 Jakub Jelinek <jakub@redhat.com> 21593 21594 PR middle-end/79499 21595 * function.c (thread_prologue_and_epilogue_insns): Determine blocks 21596 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN 21597 of first NONDEBUG_INSN_P in each of the split_prologue_seq and 21598 prologue_seq sequences - if any. 21599 216002017-08-02 Richard Biener <rguenther@suse.de> 21601 21602 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts 21603 via vectors if supported, integer extracts via punning if supported 21604 or otherwise vector extracts. 21605 216062017-08-02 Richard Biener <rguenther@suse.de> 21607 21608 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline 21609 into ... 21610 (bitmap_insert_into_set): ... this. 21611 216122017-08-02 Richard Biener <rguenther@suse.de> 21613 21614 PR tree-optimization/81633 21615 Revert 21616 2015-08-17 Alan Hayward <alan.hayward@arm.com> 21617 21618 PR tree-optimization/71752 21619 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands. 21620 216212017-08-01 Daniel Santos <daniel.santos@pobox.com> 21622 21623 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field. 21624 (machine_function::call_ms2sysv_pad_out): Remove field. 21625 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify. 21626 (ix86_compute_frame_layout): Likewise. 21627 216282017-08-01 H.J. Lu <hongjiu.lu@intel.com> 21629 21630 PR target/81654 21631 * config/i386/i386.c (ix86_set_func_type): Disallow naked 21632 attribute with interrupt attribute. 21633 216342017-08-01 Andrew Pinski <apinski@cavium.com> 21635 21636 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check 21637 BIT_INSERT_EXPR's operand 1 21638 to see if the types precision matches. 21639 216402017-08-01 Martin Liska <mliska@suse.cz> 21641 21642 PR middle-end/70140 21643 * builtins.c (expand_builtin_memcpy_args): Remove. 21644 (expand_builtin_memcpy): Call newly added function 21645 expand_builtin_memory_copy_args. 21646 (expand_builtin_memcpy_with_bounds): Likewise. 21647 (expand_builtin_mempcpy): Remove last argument. 21648 (expand_builtin_mempcpy_with_bounds): Likewise. 21649 (expand_builtin_memory_copy_args): New function created from 21650 expand_builtin_mempcpy_args with small modifications. 21651 (expand_builtin_mempcpy_args): Remove. 21652 (expand_builtin_stpcpy): Remove unused argument. 21653 (expand_builtin): Likewise. 21654 (expand_builtin_with_bounds): Likewise. 21655 216562017-08-01 Martin Liska <mliska@suse.cz> 21657 21658 Revert r250771 21659 Make mempcpy more optimal (PR middle-end/70140). 21660 216612017-08-01 Jakub Jelinek <jakub@redhat.com> 21662 21663 PR target/81622 21664 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For 21665 __builtin_vec_cmpne verify both arguments are compatible vectors 21666 before looking at TYPE_MODE on the element type. For __builtin_vec_ld 21667 verify arg1_type is a pointer or array type. For __builtin_vec_st, 21668 move computation of aligned to after checking the argument types. 21669 Formatting fixes. 21670 21671 PR target/80846 21672 * config/rs6000/vsx.md (vextract_fp_from_shorth, 21673 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init* 21674 calls. 21675 216762017-08-01 Jerome Lambourg <lambourg@adacore.com> 21677 Doug Rupp <rupp@adacore.com> 21678 Olivier Hainque <hainque@adacore.com> 21679 21680 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as 21681 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to 21682 arm8 (arch v4). 21683 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper 21684 for TARGET_OS_CPP_BUILTIN. 21685 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(), 21686 refine CPU definitions for arm_arch5 and add those for arm_arch6 and 21687 arm_arch7. 21688 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC, 21689 passing required abi options to the assembler for EABI configurations. 21690 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production 21691 of .text.hot and .text.unlikely sections for kernel modules when 21692 using ARM style exceptions. 21693 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain 21694 options. Add EXTRA_CC1_SPEC. 21695 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab 21696 toolchain options. 21697 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7 21698 transition. 21699 (ARM_TARGET2_DWARF_FORMAT): Define. 21700 * config/arm/t-vxworks: Adjust multilib control to removal of the 21701 Diab command line options. 21702 217032017-08-01 Martin Liska <mliska@suse.cz> 21704 21705 PR gcov-profile/81561 21706 * gcov.c (unblock): Make unblocking safe as we need to preserve 21707 index correspondence of blocks and block_lists. 21708 217092017-08-01 Richard Biener <rguenther@suse.de> 21710 21711 PR tree-optimization/81181 21712 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... 21713 (compute_antic): ... end of iteration here. 21714 217152017-08-01 James Greenhalgh <james.greenhalgh@arm.com> 21716 21717 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize. 21718 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize. 21719 (ftree-slp-vectorize): Likewise. 21720 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it 21721 can no longer be set independent of flag_tree_loop_vectorize. 21722 * omp-general.c (emp_max_vf): Likewise. 21723 * opts.c (enable_fdo_optimizations): Remove references to 21724 flag_tree_vectorize, these are now implicit. 21725 (common_handle_option): Remove handling for OPT_ftree_vectorize, 21726 and leave it for the options machinery. 21727 217282017-08-01 Martin Liska <mliska@suse.cz> 21729 21730 PR middle-end/70140 21731 * builtins.c (expand_builtin_memcpy_args): Remove. 21732 (expand_builtin_memcpy): Call newly added function 21733 expand_builtin_memory_copy_args. 21734 (expand_builtin_memcpy_with_bounds): Likewise. 21735 (expand_builtin_mempcpy): Remove last argument. 21736 (expand_builtin_mempcpy_with_bounds): Likewise. 21737 (expand_builtin_memory_copy_args): New function created from 21738 expand_builtin_mempcpy_args with small modifications. 21739 (expand_builtin_mempcpy_args): Remove. 21740 (expand_builtin_stpcpy): Remove unused argument. 21741 (expand_builtin): Likewise. 21742 (expand_builtin_with_bounds): Likewise. 21743 217442017-08-01 Uros Bizjak <ubizjak@gmail.com> 21745 21746 PR target/81641 21747 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel 21748 print "ds:" only for immediates in generic address space. 21749 217502017-08-01 Uros Bizjak <ubizjak@gmail.com> 21751 21752 PR target/81639 21753 * config/i386/i386.c (ix86_funciton_naked): New prototype. 21754 (ix86_function_ok_for_sibcall): Return false for naked functions. 21755 217562017-08-01 Richard Biener <rguenther@suse.de> 21757 21758 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr. 21759 (compute_antic): Seed worklist with exit block predecessors. 21760 * cfganal.c (dfs_find_deadend): For a cycle return the source 21761 of the edge closing it. 21762 217632017-08-01 Tamar Christina <tamar.christina@arm.com> 21764 21765 * config/aarch64/aarch64.c 21766 (aarch64_can_const_movi_rtx_p): Move 0 check. 21767 217682017-08-01 Bin Cheng <bin.cheng@arm.com> 21769 21770 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete. 21771 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of 21772 above macro. 21773 * match.pd: Ditto in address comparison pattern. 21774 217752017-08-01 Bin Cheng <bin.cheng@arm.com> 21776 21777 PR tree-optimization/81627 21778 * tree-predcom.c (prepare_finalizers): Always rewrite into loop 21779 closed ssa form for store-store chain. 21780 217812017-08-01 Bin Cheng <bin.cheng@arm.com> 21782 21783 PR tree-optimization/81620 21784 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after 21785 for store-store chain. 21786 217872017-08-01 Jakub Jelinek <jakub@redhat.com> 21788 21789 PR tree-optimization/81588 21790 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If 21791 ranges[i].in_p, invert comparison code ccode. For >/>=, 21792 swap rhs1 and rhs2 and comparison code unconditionally, 21793 for </<= don't do that. Don't swap rhs1/rhs2 again if 21794 ranges[i].in_p, instead invert comparison code ccode if 21795 opcode or oe->rank is BIT_IOR_EXPR. 21796 21797 PR target/80846 21798 * optabs.def (vec_extract_optab, vec_init_optab): Change from 21799 a direct optab to conversion optab. 21800 * optabs.c (expand_vector_broadcast): Use convert_optab_handler 21801 with GET_MODE_INNER as last argument instead of optab_handler. 21802 * expmed.c (extract_bit_field_1): Likewise. Use vector from 21803 vector extraction if possible and optab is available. 21804 * expr.c (store_constructor): Use convert_optab_handler instead 21805 of optab_handler. Use vector initialization from smaller 21806 vectors if possible and optab is available. 21807 * tree-vect-stmts.c (vectorizable_load): Likewise. 21808 * doc/md.texi (vec_extract, vec_init): Document that the optabs 21809 now have two modes. 21810 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion 21811 of vec_init from half-sized vectors with the same element mode. 21812 * config/i386/sse.md (ssehalfvecmode): Add V4TI case. 21813 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes. 21814 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df, 21815 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf, 21816 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode 21817 after mode in gen_vec_extract* calls. 21818 (vec_extract<mode>): Renamed to ... 21819 (vec_extract<mode><ssescalarmodelower>): ... this. 21820 (vec_extract<mode><ssehalfvecmodelower>): New expander. 21821 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add 21822 element mode after mode in gen_vec_init* calls. 21823 (VEC_INIT_HALF_MODE): New mode iterator. 21824 (vec_init<mode>): Renamed to ... 21825 (vec_init<mode><ssescalarmodelower>): ... this. 21826 (vec_init<mode><ssehalfvecmodelower>): New expander. 21827 * config/i386/mmx.md (vec_extractv2sf): Renamed to ... 21828 (vec_extractv2sfsf): ... this. 21829 (vec_initv2sf): Renamed to ... 21830 (vec_initv2sfsf): ... this. 21831 (vec_extractv2si): Renamed to ... 21832 (vec_extractv2sisi): ... this. 21833 (vec_initv2si): Renamed to ... 21834 (vec_initv2sisi): ... this. 21835 (vec_extractv4hi): Renamed to ... 21836 (vec_extractv4hihi): ... this. 21837 (vec_initv4hi): Renamed to ... 21838 (vec_initv4hihi): ... this. 21839 (vec_extractv8qi): Renamed to ... 21840 (vec_extractv8qiqi): ... this. 21841 (vec_initv8qi): Renamed to ... 21842 (vec_initv8qiqi): ... this. 21843 * config/rs6000/vector.md (VEC_base_l): New mode attribute. 21844 (vec_init<mode>): Renamed to ... 21845 (vec_init<mode><VEC_base_l>): ... this. 21846 (vec_extract<mode>): Renamed to ... 21847 (vec_extract<mode><VEC_base_l>): ... this. 21848 * config/rs6000/paired.md (vec_initv2sf): Renamed to ... 21849 (vec_initv2sfsf): ... this. 21850 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3, 21851 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, 21852 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add 21853 element mode after mode in gen_vec_init* calls. 21854 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ... 21855 (vec_init<mode><Vel>): ... this. 21856 (vec_extract<mode>): Renamed to ... 21857 (vec_extract<mode><Vel>): ... this. 21858 * config/aarch64/iterators.md (Vel): New mode attribute. 21859 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr): 21860 Add element mode after mode in gen_vec_extract* calls. 21861 * config/s390/vector.md (non_vec_l): New mode attribute. 21862 (vec_extract<mode>): Renamed to ... 21863 (vec_extract<mode><non_vec_l>): ... this. 21864 (vec_init<mode>): Renamed to ... 21865 (vec_init<mode><non_vec_l>): ... this. 21866 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf, 21867 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after 21868 vec_extract mode. 21869 * config/arm/iterators.md (V_elem_l): New mode attribute. 21870 * config/arm/neon.md (vec_extract<mode>): Renamed to ... 21871 (vec_extract<mode><V_elem_l>): ... this. 21872 (vec_extractv2di): Renamed to ... 21873 (vec_extractv2didi): ... this. 21874 (vec_init<mode>): Renamed to ... 21875 (vec_init<mode><V_elem_l>): ... this. 21876 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>, 21877 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>, 21878 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>): 21879 Add element mode after gen_vec_extract* calls. 21880 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ... 21881 (vec_init<mode><unitmode>): ... this. 21882 (vec_extract<mode>): Renamed to ... 21883 (vec_extract<mode><unitmode>): ... this. 21884 * config/mips/loongson.md (vec_init<mode>): Renamed to ... 21885 (vec_init<mode><unitmode>): ... this. 21886 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ... 21887 (vec_initv2sfsf): ... this. 21888 (vec_extractv2sf): Renamed to ... 21889 (vec_extractv2sfsf): ... this. 21890 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf): 21891 Add element mode after gen_vec_extract* calls. 21892 * config/mips/mips.md (unitmode): New mode iterator. 21893 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack, 21894 spu_builtin_extract): Add element mode after gen_vec_extract* calls. 21895 * config/spu/spu.md (inner_l): New mode attribute. 21896 (vec_init<mode>): Renamed to ... 21897 (vec_init<mode><inner_l>): ... this. 21898 (vec_extract<mode>): Renamed to ... 21899 (vec_extract<mode><inner_l>): ... this. 21900 * config/sparc/sparc.md (veltmode): New mode iterator. 21901 (vec_init<VMALL:mode>): Renamed to ... 21902 (vec_init<VMALL:mode><VMALL:veltmode>): ... this. 21903 * config/ia64/vect.md (vec_initv2si): Renamed to ... 21904 (vec_initv2sisi): ... this. 21905 (vec_initv2sf): Renamed to ... 21906 (vec_initv2sfsf): ... this. 21907 (vec_extractv2sf): Renamed to ... 21908 (vec_extractv2sfsf): ... this. 21909 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute. 21910 (vec_init<mode>): Renamed to ... 21911 (vec_init<mode><VEC_base_l>): ... this. 21912 (vec_extract<mode>): Renamed to ... 21913 (vec_extract<mode><VEC_base_l>): ... this. 21914 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ... 21915 (vec_initv2sfsf): ... this. 21916 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3, 21917 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, 21918 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in 21919 gen_vec_init* calls. 21920 219212017-08-01 Richard Biener <rguenther@suse.de> 21922 21923 PR tree-optimization/81297 21924 * tree-vrp.c (get_single_symbol): Remove assert, instead drop 21925 TREE_OVERFLOW from INTEGER_CSTs. 21926 219272017-07-31 Segher Boessenkool <segher@kernel.crashing.org> 21928 21929 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma. 21930 219312017-07-31 Carl Love <cel@us.ibm.com> 21932 21933 * config/rs6000/rs6000-c: Add support for built-in functions 21934 vector signed char vec_xl_be (signed long long, signed char *); 21935 vector unsigned char vec_xl_be (signed long long, unsigned char *); 21936 vector signed int vec_xl_be (signed long long, signed int *); 21937 vector unsigned int vec_xl_be (signed long long, unsigned int *); 21938 vector signed long long vec_xl_be (signed long long, signed long long *); 21939 vector unsigned long long vec_xl_be (signed long long, unsigned long long *); 21940 vector signed short vec_xl_be (signed long long, signed short *); 21941 vector unsigned short vec_xl_be (signed long long, unsigned short *); 21942 vector double vec_xl_be (signed long long, double *); 21943 vector float vec_xl_be (signed long long, float *); 21944 * config/rs6000/altivec.h (vec_xl_be): Add #define. 21945 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI) 21946 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions 21947 for the builtins. 21948 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function. 21949 (altivec_expand_builtin): Add switch statement to call 21950 altivec_expand_xl_be for each builtin. 21951 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi, 21952 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di, 21953 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df, 21954 __builtin_vsx_le_be_v16qi. 21955 * doc/extend.texi: Update the built-in documentation file for the 21956 new built-in functions. 21957 219582017-07-31 Uros Bizjak <ubizjak@gmail.com> 21959 21960 PR target/25967 21961 * config/i386/i386.c (ix86_allocate_stack_slots_for_args): 21962 New function. 21963 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. 21964 219652017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 21966 21967 * config.gcc: Add z14. 21968 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add 21969 CPU model numbers for z13s and z14. 21970 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace 21971 arch12 with z14. 21972 * config/s390/s390-opts.h (enum processor_type): Rename 21973 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. 21974 * config/s390/s390.c (processor_table): Add field for CPU name to 21975 be passed to Binutils. 21976 (s390_asm_output_machine_for_arch): Use the new field in 21977 processor_table for Binutils. 21978 (s390_expand_builtin): Replace arch12 with z14. 21979 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. 21980 (s390_get_sched_attrmask): Likewise. 21981 (s390_get_unit_mask): Likewise. 21982 * config/s390/s390.opt: Add z14 to processor_type enum. 21983 219842017-07-31 Martin Jambor <mjambor@suse.cz> 21985 21986 PR hsa/81477 21987 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable 21988 regardless of optimization level. 21989 219902017-07-31 Jan Hubicka <hubicka@ucw.cz> 21991 Martin Liska <mliska@suse.cz> 21992 21993 * predict.def: Remove old comment and adjust probability. 21994 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore 21995 PREDICT statements. 21996 219972017-07-31 Uros Bizjak <ubizjak@gmail.com> 21998 21999 PR target/25967 22000 * config/i386/i386.c (ix86_function_naked): New function. 22001 (ix86_can_use_return_insn_p): Return false for naked functions. 22002 (ix86_expand_prologue): Skip prologue for naked functions. 22003 (ix86_expand_epilogue): Skip epilogue for naked functions 22004 and emit trap instruction. 22005 (ix86_warn_func_return): New function. 22006 (ix86_attribute_table): Add "naked" attribute specification. 22007 (TARGET_WARN_FUNC_RETURN): Define. 22008 * doc/extend.texi (x86 Function Attributes) <naked>: Document it. 22009 220102017-07-31 Martin Liska <mliska@suse.cz> 22011 22012 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info. 22013 (dump_gimple_bb_header): Always dump BB info. 22014 (pp_cfg_jump): Do not append info about BB when dumping a jump. 22015 220162017-07-31 Martin Liska <mliska@suse.cz> 22017 22018 PR sanitize/81530 22019 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p 22020 also with current_function_decl non-null equality. 22021 220222017-07-31 Jakub Jelinek <jakub@redhat.com> 22023 22024 PR sanitizer/81604 22025 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't 22026 change type to the element type, instead add eltype variable and 22027 use it where we are interested in the element type. 22028 22029 PR tree-optimization/81603 22030 * ipa-polymorphic-call.c 22031 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform 22032 offset arithmetic in offset_int, bail out if the resulting bit offset 22033 doesn't fit into shwi. 22034 220352017-07-31 Martin Liska <mliska@suse.cz> 22036 22037 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk. 22038 (gimplify_save_expr): Fix comment. 22039 220402017-07-30 H.J. Lu <hongjiu.lu@intel.com> 22041 22042 PR target/79793 22043 * config/i386/i386.c (ix86_function_arg): Update arguments for 22044 exception handler. 22045 (ix86_compute_frame_layout): Set the initial stack offset to 22046 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with 22047 INCOMING_FRAME_SP_OFFSET. 22048 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the 22049 stack before exception handler returns. 22050 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the 22051 the 'ERROR_CODE' for exception handler. 22052 220532017-07-30 Uros Bizjak <ubizjak@gmail.com> 22054 22055 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro. 22056 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers. 22057 (ASM_OUTPUT_REG_POP): Ditto. 22058 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs 22059 instead of asm_fprintf to output pure string. 22060 220612017-07-29 Jakub Jelinek <jakub@redhat.com> 22062 22063 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument 22064 to imported_module_or_decl hook. 22065 (debug_nothing_tree_tree_tree_bool): Remove. 22066 (debug_nothing_tree_tree_tree_bool_bool): New declaration. 22067 * debug.c (do_nothing_debug_hooks): Use 22068 debug_nothing_tree_tree_tree_bool_bool instead of 22069 debug_nothing_tree_tree_tree_bool. 22070 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 22071 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. 22072 * sdbout.c (sdb_debug_hooks): Likewise. 22073 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise. 22074 (gen_namespace_die): Add DW_AT_export_symbols attribute if 22075 langhook wants it. 22076 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument, 22077 if true, -gdwarf-5 and decl will have DW_AT_export_symbols 22078 attribute, don't add anything. 22079 220802017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22081 22082 * fold-const.c (fold_build1_stat_loc): Remove _stat from name. 22083 (fold_build2_stat_loc): Likewise. 22084 (fold_build3_stat_loc): Likewise. 22085 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust. 22086 (fold_build1_loc): Remove macro. 22087 (fold_build2_loc): Likewise. 22088 (fold_build3_loc): Likewise. 22089 220902017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22091 22092 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name. 22093 (gimple_build_debug_bind_source_stat): Likewise. 22094 * gimple.h (gimple_build_debug_bind): Remove macro. 22095 (gimple_build_debug_bind_source): Likewise. 22096 220972017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22098 22099 * bitmap.c (bitmap_alloc): Adjust. 22100 (bitmap_gc_alloc): Likewise. 22101 * bitmap.h (bitmap_initialize_stat): Remove _stat from name. 22102 221032017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22104 22105 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc. 22106 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc. 22107 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype. 22108 (bitmap_gc_alloc_stat): Likewise. 22109 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust. 22110 221112017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22112 22113 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name. 22114 * rtl.h (shallow_copy_rtx): Remove macro. 22115 221162017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22117 22118 * emit-rtl.c (gen_raw_REG): Adjust. 22119 * gengenrtl.c (gendef): Likewise. 22120 * rtl.c (rtx_alloc_stat): Remove _stat from name. 22121 * rtl.h (rtx_alloc): Remove macro. 22122 221232017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22124 22125 * tree.c (build_tree_list_vec_stat): Remove _stat from name. 22126 (build_tree_list_stat): Likewise. 22127 * tree.h (build_tree_list): Remove macro. 22128 (build_tree_list_vec): Likewise. 22129 221302017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22131 22132 * tree.c (make_vector_stat): Remove _stat from name. 22133 (build_vector_stat): Likewise. 22134 * tree.h (make_vector_stat): Remove macro. 22135 (build_vector_stat): Likewise. 22136 221372017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22138 22139 * tree.h (build_var_debug_value): Remove prototype. 22140 221412017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22142 22143 * tree.c (tree_cons_stat): Remove _stat from name. 22144 * tree.h (tree_cons): Remove macro. 22145 221462017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22147 22148 * tree.c (build_vl_exp_stat): Remove _stat from name. 22149 * tree.h (build_vl_exp): Remove macro. 22150 221512017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22152 22153 * tree.c (build_decl_stat): Remove _stat from name. 22154 * tree.h (build_decl): Remove macro. 22155 221562017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22157 22158 * gimple.c (gimple_build_with_ops_stat): Adjust. 22159 (gimple_alloc_stat): Remove _stat from name. 22160 * gimple.h (gimple_alloc): Remove macro. 22161 221622017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22163 22164 * tree.c (make_tree_vec_stat): Remove _stat from name. 22165 (grow_tree_vec_stat): Likewise. 22166 * tree.h (make_tree_vec_stat): Adjust prototype. 22167 (grow_tree_vec_stat): Likewise. 22168 (make_tree_vec): Remove macro. 22169 (grow_tree_vec): Likewise. 22170 221712017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22172 22173 * fold-const.c (fold_build1_stat_loc): Adjust. 22174 (fold_build2_stat_loc): Likewise. 22175 (fold_build3_stat_loc): Likewise. 22176 * tree.c (build0_stat): Remove _stat from name. 22177 (build1_stat): Likewise. 22178 (build2_stat): Likewise. 22179 (build3_stat): Likewise. 22180 (build4_stat): Likewise. 22181 (build5_stat): Likewise. 22182 * tree.h (build1_loc): Remove macro, and rename _stat function 22183 to this. 22184 (build2_loc): Likewise. 22185 (build3_loc): Likewise. 22186 (build4_loc): Likewise. 22187 (build5_loc): Likewise. 22188 221892017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22190 22191 * tree.c (make_int_cst_stat): Remove _stat from name. 22192 * tree.h (make_int_cst_stat): Adjust prototype. 22193 (make_int_cst): Remove macro. 22194 221952017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22196 22197 * tree.c (make_tre_binfo_stat): Remove _stat from name. 22198 * tree.h (make_tree_binfo_stat): Adjust prototype. 22199 (make_tree_binfo): Remove. 22200 222012017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22202 22203 * tree.c (copy_node_stat): Rename to copy_node. 22204 (build_distinct_type_copy): Adjust. 22205 * tree.h (copy_node_stat): Adjust prototype. 22206 (copy_node): Remove macro. 22207 222082017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 22209 22210 * tree.c (make_node_stat): rename to make_node. 22211 (build_tree_list_stat): Adjust. 22212 (build0_stat): Likewise. 22213 (build2_stat): Likewise. 22214 (build3_stat): Likewise. 22215 (build4_stat): Likewise. 22216 (build5_stat): Likewise. 22217 (build_decl_stat): Likewise. 22218 * tree.h (make_node_stat): Adjust prototype. 22219 (make_node): remove macro. 22220 222212017-07-28 Peter Bergner <bergner@vnet.ibm.com> 22222 22223 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define. 22224 (PPC_FEATURE2_SCV): Likewise. 22225 * config/rs6000/rs6000.c (cpu_supports_info): Use them. 22226 222272017-07-28 Tamar Christina <tamar.christina@arm.com> 22228 22229 * config/aarch64/aarch64.c 22230 (aarch64_internal_mov_immediate): Add new special pattern. 22231 * config/aarch64/aarch64.md (*movdi_aarch64): 22232 Add reg/32bit const mov case. 22233 222342017-07-28 Tamar Christina <tamar.christina@arm.com> 22235 Richard Sandiford <richard.sandiford@linaro.org> 22236 22237 * config/aarch64/aarch64.md (mov<mode>): Generalize. 22238 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): 22239 Add integer and movi cases. 22240 (movi-split-hf-df-sf split, fp16): New. 22241 (enabled): Added TARGET_FP_F16INST. 22242 * config/aarch64/iterators.md (GPF_HF): New. 22243 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New. 22244 222452017-07-28 Tamar Christina <tamar.christina@arm.com> 22246 22247 * config/aarch64/aarch64.c 22248 (aarch64_simd_container_mode): Add prototype. 22249 (aarch64_expand_mov_immediate): Add HI support. 22250 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New. 22251 (aarch64_can_const_movi_rtx_p): New. 22252 (aarch64_preferred_reload_class): 22253 Remove restrictions of using FP registers for certain SIMD operations. 22254 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves. 22255 (aarch64_valid_floating_const): Add integer move validation. 22256 (aarch64_simd_imm_scalar_p): Remove. 22257 (aarch64_output_scalar_simd_mov_immediate): Generalize function. 22258 (aarch64_legitimate_constant_p): Expand list of supported cases. 22259 * config/aarch64/aarch64-protos.h 22260 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New. 22261 (aarch64_reinterpret_float_as_int): New. 22262 (aarch64_simd_imm_scalar_p): Remove. 22263 * config/aarch64/constraints.md (Uvi): New. 22264 (Dd): Split into Ds and new Dd. 22265 * config/aarch64/aarch64.md (*movsi_aarch64): 22266 Add SIMD mov case. 22267 (*movdi_aarch64): Add SIMD mov case. 22268 222692017-07-28 Bin Cheng <bin.cheng@arm.com> 22270 22271 * tree-predcom.c: (struct chain): Handle store-store chain in which 22272 stores for elimination only store loop invariant values. 22273 (execute_pred_commoning_chain): Ditto. 22274 (prepare_initializers_chain_store_elim): Ditto. 22275 (prepare_finalizers): Ditto. 22276 (is_inv_store_elimination_chain): New function. 22277 (initialize_root_vars_store_elim_1): New function. 22278 222792017-07-28 Bin Cheng <bin.cheng@arm.com> 22280 22281 * tree-predcom.c: Revise general description of the pass. 22282 (enum chain_type): New enum type for store elimination. 22283 (struct chain): New field supporting store elimination. 22284 (struct component): Ditto. 22285 (dump_chain): Dump store-stores chain. 22286 (release_chain): Release resources. 22287 (split_data_refs_to_components): Compute and create component 22288 contains only stores for elimination. 22289 (get_chain_last_ref_at): New function. 22290 (make_invariant_chain): Initialization. 22291 (make_rooted_chain): Specify chain type in parameter and record it. 22292 (add_looparound_copies): Skip for store-stores chain. 22293 (determine_roots_comp): Compute type of chain and pass it to 22294 make_rooted_chain. 22295 (initialize_root_vars_store_elim_2): New function. 22296 (finalize_eliminated_stores): New function. 22297 (remove_stmt): Handle store for elimination. 22298 (execute_pred_commoning_chain): Execute predictive commoning on 22299 store-store chains. 22300 (determine_unroll_factor): Skip unroll for store-stores chain. 22301 (prepare_initializers_chain_store_elim): New function. 22302 (prepare_initializers_chain): Hanlde store-store chain. 22303 (prepare_finalizers_chain, prepare_finalizers): New function. 22304 (tree_predictive_commoning_loop): Return integer value indicating 22305 if loop is unrolled or lcssa form is corrupted. 22306 (tree_predictive_commoning): Rewrite for lcssa form if necessary. 22307 223082017-07-28 Bin Cheng <bin.cheng@arm.com> 22309 22310 * tree-predcom.c (initialize_root): Delete. 22311 (execute_pred_commoning_chain): Initialize root vars and replace 22312 reference of non-combined chain directly, rather than call above 22313 function. 22314 223152017-07-28 Bin Cheng <bin.cheng@arm.com> 22316 22317 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute 22318 memory reference to DR at (NITERS + ITERS)-th iteration of loop. 22319 223202017-07-28 Bin Cheng <bin.cheng@arm.com> 22321 22322 * tree-predcom.c (struct chain): New field init_seq. 22323 (release_chain): Release init_seq. 22324 (prepare_initializers_chain): Record intialization stmts in above 22325 field. 22326 (insert_init_seqs): New function. 22327 (tree_predictive_commoning_loop): Call insert_init_seqs. 22328 223292017-07-28 Bin Cheng <bin.cheng@arm.com> 22330 22331 * tree-predcom.c (determine_roots_comp): Skip trivial components. 22332 223332017-07-28 Richard Biener <rguenther@suse.de> 22334 22335 * match.pd: Remove superfluous :c. 22336 * genmatch.c (simplify::id): Add member. 22337 (lower_commutative, lower_opt_convert, lower_cond, lower_for): 22338 Copy id. 22339 (current_id): New global. 22340 (dt_node::parent): Move from ... 22341 (dt_operand::parent): ... here. Add for_id member. 22342 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand. 22343 (decision_tree::find_node): Relax order requirement when 22344 merging DT_TRUE nodes to ones inbetween the current simplify 22345 and the one we try to merge with. Add diagnostic whenever 22346 we need to enforce pattern order by not merging. 22347 (decision_tree::insert): Set current_id. 22348 (decision_tree::print_node): Dump parent node and for_id. 22349 (parser::last_id): Add member. 22350 (parser::push_simplify): Assign unique id. 22351 (parser::parser): Initialize last_id. 22352 223532017-07-28 Martin Liska <mliska@suse.cz> 22354 22355 PR sanitizer/81340 22356 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after 22357 gimple_build_debug_bind. 22358 223592017-07-28 Richard Biener <rguenther@suse.de> 22360 22361 PR tree-optimization/81502 22362 * match.pd: Add pattern combining BIT_INSERT_EXPR with 22363 BIT_FIELD_REF. 22364 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF 22365 size/pos operands. 22366 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos. 22367 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype 22368 for BIT_FIELD_REF args. 22369 * fold-const.c (make_bit_field_ref): Likewise. 22370 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 22371 223722017-07-28 Jakub Jelinek <jakub@redhat.com> 22373 22374 PR sanitizer/80998 22375 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR. 22376 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. 22377 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW. 22378 Or it into SANITIZER_UNDEFINED. 22379 * ubsan.c: Include gimple-fold.h and varasm.h. 22380 (ubsan_expand_ptr_ifn): New function. 22381 (instrument_pointer_overflow): New function. 22382 (maybe_instrument_pointer_overflow): New function. 22383 (instrument_object_size): Formatting fix. 22384 (pass_ubsan::execute): Call instrument_pointer_overflow 22385 and maybe_instrument_pointer_overflow. 22386 * internal-fn.c (expand_UBSAN_PTR): New function. 22387 * ubsan.h (ubsan_expand_ptr_ifn): Declare. 22388 * sanitizer.def (__ubsan_handle_pointer_overflow, 22389 __ubsan_handle_pointer_overflow_abort): New builtins. 22390 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR. 22391 * internal-fn.def (UBSAN_PTR): New internal function. 22392 * opts.c (sanitizer_opts): Add pointer-overflow. 22393 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR. 22394 * fold-const.c (build_range_check): Compute pointer range check in 22395 integral type if pointer arithmetics would be needed. Formatting 22396 fixes. 22397 223982017-07-28 Martin Liska <mliska@suse.cz> 22399 22400 PR sanitizer/81460 22401 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite 22402 parameters that are of a variable-length. 22403 224042017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de> 22405 22406 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add 22407 rs6000/biarch64.h. 22408 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro. 22409 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. 22410 (CRT_CALL_STATIC_FUNCTION): Likewise. 22411 (ASM_DEFAULT_SPEC): New define. 22412 (ASM_SPEC32): Likewise. 22413 (ASM_SPEC64): Likewise. 22414 (ASM_SPEC_COMMON): Likewise. 22415 (ASM_SPEC): Likewise. 22416 (INVALID_64BIT): Likewise. 22417 (LINK_OS_DEFAULT_SPEC): Likewise. 22418 (LINK_OS_SPEC32): Likewise. 22419 (LINK_OS_SPEC64): Likewise. 22420 (POWERPC_LINUX): Likewise. 22421 (PTRDIFF_TYPE): Likewise. 22422 (RESTORE_FP_PREFIX): Likewise. 22423 (RESTORE_FP_SUFFIX): Likewise. 22424 (SAVE_FP_PREFIX): Likewise. 22425 (SAVE_FP_SUFFIX): Likewise. 22426 (SIZE_TYPE): Likewise. 22427 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. 22428 (TARGET_64BIT): Likewise. 22429 (TARGET_64BIT): Likewise. 22430 (TARGET_AIX): Likewise. 22431 (WCHAR_TYPE_SIZE): Likewise. 22432 (WCHAR_TYPE): Undefine. 22433 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines. 22434 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC. 22435 (CPP_OS_RTEMS_SPEC): Delete. 22436 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add 22437 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and 22438 link_os_spec64. 22439 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs. 22440 224412017-07-28 Jakub Jelinek <jakub@redhat.com> 22442 22443 PR tree-optimization/81578 22444 * tree-parloops.c (build_new_reduction): Bail out if 22445 reduction_code isn't one of the standard OpenMP reductions. 22446 Move the details printing after that decision. 22447 224482017-07-27 Peter Bergner <bergner@vnet.ibm.com> 22449 22450 * config/rs6000/predicates.md (volatile_mem_operand): Remove code 22451 related to reload_in_progress. 22452 (splat_input_operand): Likewise. 22453 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): 22454 Delete prototype. 22455 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot 22456 field. 22457 (TARGET_EXPAND_TO_RTL_HOOK): Delete. 22458 (TARGET_INSTANTIATE_DECLS): Likewise. 22459 (legitimate_indexed_address_p): Delete reload_in_progress code. 22460 (rs6000_debug_legitimate_address_p): Likewise. 22461 (rs6000_eliminate_indexed_memrefs): Likewise. 22462 (rs6000_emit_le_vsx_store): Likewise. 22463 (rs6000_emit_move_si_sf_subreg): Likewise. 22464 (rs6000_emit_move): Likewise. 22465 (register_to_reg_type): Likewise. 22466 (rs6000_pre_atomic_barrier): Likewise. 22467 (rs6000_machopic_legitimize_pic_address): Likewise. 22468 (rs6000_allocate_stack_temp): Likewise. 22469 (rs6000_address_for_fpconvert): Likewise. 22470 (rs6000_address_for_altivec): Likewise. 22471 (rs6000_secondary_memory_needed_rtx): Delete function. 22472 (rs6000_check_sdmode): Likewise. 22473 (rs6000_alloc_sdmode_stack_slot): Likewise. 22474 (rs6000_instantiate_decls): Likewise. 22475 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete. 22476 * config/rs6000/rs6000.md (splitter for *movsi_got_internal): 22477 Delete reload_in_progress. 22478 (*vec_reload_and_plus_<mptrsize>): Likewise. 22479 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise. 22480 (vsx_div_v2di): Likewise. 22481 (vsx_udiv_v2di): Likewise. 22482 224832017-07-27 Peter Bergner <bergner@vnet.ibm.com> 22484 22485 * config/rs6000/rs6000.opt (mlra): Replace with stub. 22486 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA. 22487 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete. 22488 (rs6000_debug_reg_global): Delete print of LRA status. 22489 (rs6000_option_override_internal): Delete dead LRA related code. 22490 (rs6000_lra_p): Delete function. 22491 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra. 22492 224932017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de> 22494 22495 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). 22496 * config/riscv/rtems.h: New file. 22497 224982017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22499 Sudakshina Das <sudi.das@arm.com> 22500 22501 * config/aarch64/aarch64.md 22502 (define_split for and<mode>3nr_compare): Move 22503 non aarch64_logical_operand to a register. 22504 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non 22505 register immediate operand to a register. 22506 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New. 22507 225082017-07-27 Peter Bergner <bergner@vnet.ibm.com> 22509 22510 PR middle-end/81564 22511 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks. 22512 225132017-07-27 Richard Biener <rguenther@suse.de> 22514 22515 PR tree-optimization/81573 22516 PR tree-optimization/81494 22517 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle 22518 multi defuse cycle case. 22519 225202017-07-27 Richard Biener <rguenther@suse.de> 22521 22522 PR tree-optimization/81571 22523 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction 22524 PHIs. 22525 225262017-07-27 Eric Botcazou <ebotcazou@adacore.com> 22527 22528 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag 22529 earlier and only if MASK_FPU is set. Adjust formatting. 22530 225312017-07-27 Martin Liska <mliska@suse.cz> 22532 22533 * opt-functions.awk: Add validation of value of Init. 22534 * optc-gen.awk: Pass new argument. 22535 225362017-07-27 Martin Liska <mliska@suse.cz> 22537 22538 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): 22539 Fix wrong condition. 22540 225412017-07-27 Martin Liska <mliska@suse.cz> 22542 22543 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to 22544 BBs and edges seen by autoFDO. 22545 225462017-07-27 Richard Biener <rguenther@suse.de> 22547 22548 PR tree-optimization/81502 22549 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR 22550 with incompatible but same sized type. 22551 (execute_update_addresses_taken): Likewise. 22552 225532017-07-27 James Greenhalgh <james.greenhalgh@arm.com> 22554 22555 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on 22556 flag_tree_loop_vectorize rather than flag_tree_vectorize. 22557 225582017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 22559 22560 PR target/81534 22561 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1") 22562 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"): 22563 Change s_operand to memory_operand. 22564 225652017-07-27 Richard Sandiford <richard.sandiford@linaro.org> 22566 22567 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare. 22568 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with... 22569 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input. 22570 Emit instructions rather than returning an expression. Handle TFmode 22571 and KFmode by casting to TImode. 22572 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute. 22573 (rs6000_emit_le_vsx_store): Likewise. 22574 * config/rs6000/vsx.md (VSX_TI): New iterator. 22575 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128. 22576 (*vsx_le_undo_permute_<mode>): Likewise. 22577 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to 22578 emit the split sequence. 22579 (*vsx_le_perm_store_<mode>): Likewise. 22580 225812017-07-27 Jakub Jelinek <jakub@redhat.com> 22582 22583 PR tree-optimization/81555 22584 PR tree-optimization/81556 22585 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument, 22586 if true, force CHANGED for the recursive invocation. 22587 (reassociate_bb): Remember original length of ops array, pass 22588 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call. 22589 22590 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf 22591 attributes for noipa attribute. For naked attribute use 22592 lookup_attribute first before lookup_attribute_spec. 22593 * final.c (rest_of_handle_final): Disable IPA RA for functions with 22594 noipa attribute. 22595 * ipa-visibility.c (non_local_p): Fix comment typos. Return true 22596 for functions with noipa attribute. 22597 (cgraph_externally_visible_p): Return true for functions with noipa 22598 attribute. 22599 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE 22600 for functions with noipa attribute. 22601 * doc/extend.texi: Document noipa function attribute. 22602 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p 22603 also for functions with noipa attribute. 22604 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute. 22605 226062017-07-26 Andrew Pinski <apinski@cavium.com> 22607 22608 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of 22609 vec_unalign_load_cost and vec_unalign_store_cost. 22610 226112017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com> 22612 22613 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete 22614 -mvsx-small-integer option. 22615 (ISA_3_0_MASKS_IEEE): Likewise. 22616 (OTHER_VSX_VECTOR_MASKS): Likewise. 22617 (POWERPC_MASKS): Likewise. 22618 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise. 22619 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify 22620 code, only testing for DImode being allowed in non-VSX floating 22621 point registers. 22622 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER 22623 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of 22624 another VSX test. 22625 (rs6000_option_override_internal): Delete -mvsx-small-integer. 22626 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to 22627 TARGET_P8_VECTOR test. 22628 (rs6000_secondary_reload_simple_move): Likewise. 22629 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER, 22630 since TARGET_P9_VECTOR was already tested. 22631 (rs6000_opt_masks): Remove -mvsx-small-integer. 22632 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete 22633 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was 22634 used. 22635 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a 22636 test for TARGET_VEXTRACTUB was used, and that uses 22637 TARGET_P9_VECTOR. 22638 (p9 extract splitter): Likewise. 22639 (vsx_extract_<mode>_di_p9): Likewise. 22640 (vsx_extract_<mode>_store_p9): Likewise. 22641 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test 22642 for TARGET_P9_VECTOR was used. Delete code that is now dead with 22643 the elimination of TARGET_VSX_SMALL_INTEGER. 22644 (vsx_extract_<mode>_p8): Likewise. 22645 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise. 22646 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise. 22647 (vsx_set_<mode>_p9): Likewise. 22648 (vsx_set_v4sf_p9): Likewise. 22649 (vsx_set_v4sf_p9_zero): Likewise. 22650 (vsx_insert_extract_v4sf_p9): Likewise. 22651 (vsx_insert_extract_v4sf_p9_2): Likewise. 22652 * config/rs6000/rs6000.md (sign extend splitter): Change 22653 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test. 22654 (floatsi<mode>2_lfiwax_mem): Likewise. 22655 (floatunssi<mode>2_lfiwzx_mem): Likewise. 22656 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER, 22657 since a test for TARGET_P9_VECTOR was used. 22658 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. 22659 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise. 22660 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. 22661 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to 22662 TARGET_P8_VECTOR test. 22663 (fix_trunc<mode>si2_stfiwx): Likewise. 22664 (fix_trunc<mode>si2_internal): Likewise. 22665 (fix_trunc<SFDF:mode><QHI:mode>2): Delete 22666 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was 22667 used. 22668 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. 22669 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to 22670 TARGET_P8_VECTOR test. 22671 (fixuns_trunc<mode>si2_stfiwx): Likewise. 22672 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete 22673 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was 22674 used. 22675 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. 22676 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER, 22677 since a test for TARGET_P9_VECTOR was used. 22678 (splitter for loading small constants): Likewise. 22679 226802017-07-26 Andrew Pinski <apinski@cavium.com> 22681 22682 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix 22683 vec_fp_stmt_cost. 22684 226852017-07-26 H.J. Lu <hongjiu.lu@intel.com> 22686 22687 PR target/81563 22688 * config/i386/i386.c (sp_valid_at): Properly check CFA offset. 22689 (fp_valid_at): Likewise. 22690 226912017-07-26 James Greenhalgh <james.greenhalgh@arm.com> 22692 22693 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove. 22694 (qdf24xx_addrcost_table): Likewise. 22695 (cortexa57_tunings): Update to use generic_branch_cost. 22696 (cortexa72_tunings): Likewise. 22697 (cortexa73_tunings): Likewise. 22698 (qdf24xx_tunings): Likewise. 22699 227002017-07-26 James Greenhalgh <james.greenhalgh@arm.com> 22701 22702 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove. 22703 (thunderx2t99_branch_cost): Likewise. 22704 (cortexa35_tunings): Update to use generic_branch_cost. 22705 (cortexa53_tunings): Likewise. 22706 (cortexa57_tunings): Likewise. 22707 (cortexa72_tunings): Likewise. 22708 (cortexa73_tunings): Likewise. 22709 (thunderx2t99_tunings): Likewise. 22710 227112017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> 22712 22713 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD. 22714 (sparc_option_override): Honour MASK_FSMULD. 22715 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD. 22716 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD. 22717 * config/sparc/sparc.opt (mfsmuld): New option. 22718 * doc/invoke.texi (mfsmuld): Document option. 22719 227202017-07-26 Marek Polacek <polacek@redhat.com> 22721 22722 PR middle-end/70992 22723 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero. 22724 227252017-07-26 Richard Biener <rguenther@suse.de> 22726 22727 * gimple-match-head.c (do_valueize): Return OP if valueize 22728 returns NULL_TREE. 22729 (get_def): New helper to get at the def stmt of a SSA name 22730 if valueize allows. 22731 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of 22732 do_valueize to get at the def stmt. 22733 (dt_operand::gen_gimple_expr): Simplify do_valueize calls. 22734 227352017-07-26 Wilco Dijkstra <wdijkstr@arm.com> 22736 22737 PR middle-end/46932 22738 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp. 22739 227402017-07-26 Martin Liska <mliska@suse.cz> 22741 22742 PR sanitize/81186 22743 * function.c (expand_function_start): Make expansion of 22744 nonlocal_goto_save_area after parm_birth_insn. 22745 227462017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> 22747 22748 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU 22749 from all CPU target flags enable members. 22750 227512017-07-26 Richard Biener <rguenther@suse.de> 22752 22753 * genmatch.c (dt_simplify::gen): Make iterator vars const. 22754 (decision_tree::gen): Make 'type' const. 22755 (write_predicate): Likewise. 22756 227572017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> 22758 22759 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): 22760 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage. 22761 (rs6000_option_override_internal): Likewise. 22762 (rs6000_expand_vector_set): Likewise. 22763 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete. 22764 (TARGET_UPPER_REGS_SF): Likewise. 22765 (TARGET_UPPER_REGS_DI): Likewise. 22766 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}. 22767 (TARGET_DIRECT_MOVE_64BIT): Likewise. 22768 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise. 22769 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. 22770 (Splitters for DI constants in Altivec registers): Likewise. 22771 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise. 22772 (vsx_set_v4sf_p9): Likewise. 22773 (vsx_set_v4sf_p9_zero): Likewise. 22774 (vsx_insert_extract_v4sf_p9): Likewise. 22775 (vsx_insert_extract_v4sf_p9_2): Likewise. 22776 227772017-07-25 Carl Love <cel@us.ibm.com> 22778 22779 * doc/extend.texi: Update the built-in documentation file for the 22780 existing built-in functions 22781 vector signed char vec_cnttz (vector signed char); 22782 vector unsigned char vec_cnttz (vector unsigned char); 22783 vector signed short vec_cnttz (vector signed short); 22784 vector unsigned short vec_cnttz (vector unsigned short); 22785 vector signed int vec_cnttz (vector signed int); 22786 vector unsigned int vec_cnttz (vector unsigned int); 22787 vector signed long long vec_cnttz (vector signed long long); 22788 vector unsigned long long vec_cnttz (vector unsigned long long); 22789 227902017-07-25 Andrew Pinski <apinski@cavium.com> 22791 22792 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory 22793 accesses where the use is for the first operand of a BIT_INSERT. 22794 227952017-07-25 Jim Wilson <jim.wilson@linaro.org> 22796 22797 PR bootstrap/81521 22798 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look 22799 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. 22800 228012017-07-25 Jim Wilson <jim.wilson@linaro.org> 22802 22803 * config/i386/gstabs.h: Delete. 22804 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise. 22805 228062017-07-25 Uros Bizjak <ubizjak@gmail.com> 22807 22808 * config/i386/i386.c (ix86_decompose_address): Do not check for 22809 register RTX when looking at index_reg or base_reg. 22810 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx. 22811 228122017-07-25 Eric Botcazou <ebotcazou@adacore.com> 22813 22814 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace 22815 to update EH info here. 22816 228172017-07-25 Alexander Monakov <amonakov@ispras.ru> 22818 22819 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2). 22820 228212017-07-25 Alexander Monakov <amonakov@ispras.ru> 22822 22823 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST. 22824 228252017-07-25 Torsten Duwe <duwe@suse.de> 22826 22827 * common.opt: Introduce -fpatchable-function-entry 22828 command line option, and its variables function_entry_patch_area_size 22829 and function_entry_patch_area_start. 22830 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case, 22831 including a two-value parser. 22832 * target.def (print_patchable_function_entry): New target hook. 22833 * targhooks.h (default_print_patchable_function_entry): New function. 22834 * targhooks.c (default_print_patchable_function_entry): Likewise. 22835 * toplev.c (process_options): Switch off IPA-RA if 22836 patchable function entries are being generated. 22837 * varasm.c (assemble_start_function): Look at the 22838 patchable-function-entry command line switch and current 22839 function attributes and maybe generate NOP instructions by 22840 calling the print_patchable_function_entry hook. 22841 * doc/extend.texi: Document patchable_function_entry attribute. 22842 * doc/invoke.texi: Document -fpatchable_function_entry 22843 command line option. 22844 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): 22845 New target hook. 22846 * doc/tm.texi: Re-generate. 22847 228482017-07-25 Jakub Jelinek <jakub@redhat.com> 22849 22850 PR target/81532 22851 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for 22852 TARGET_AVX512DQ rather than TARGET_AVX512BW. 22853 228542017-07-25 Tamar Christina <tamar.christina@arm.com> 22855 22856 * config/arm/parsecpu.awk (all_cores): Remove duplicates. 22857 228582017-07-25 Richard Biener <rguenther@suse.de> 22859 22860 PR tree-optimization/81455 22861 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to 22862 not walk in cycles when looking for guards. 22863 228642017-07-25 Richard Biener <rguenther@suse.de> 22865 22866 PR tree-optimization/81529 22867 * tree-vect-stmts.c (process_use): Disregard live induction PHIs 22868 when optimizing backedge uses. 22869 228702017-07-25 David Edelsohn <dje.gcc@gmail.com> 22871 22872 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote 22873 character for AIX. 22874 * dwarf2out.c (output_macinfo): Copy debug_line_section_label 22875 to dl_section_ref. On AIX, append an expression to subtract 22876 the size of the section length to dl_section_ref. 22877 228782017-07-25 Segher Boessenkool <segher@kernel.crashing.org> 22879 22880 * configure.ac: If any of the config.* scripts fail, exit 1. 22881 * configure: Regenerate. 22882 228832017-07-25 Richard Biener <rguenther@suse.de> 22884 22885 PR middle-end/81546 22886 * tree-ssa-operands.c (verify_imm_links): Remove cap on number 22887 of immediate uses, be more verbose on errors. 22888 228892017-07-25 Richard Biener <rguenther@suse.de> 22890 22891 PR tree-optimization/81510 22892 * tree-vect-loop.c (vect_is_simple_reduction): When the 22893 reduction stmt is not inside the loop bail out. 22894 228952017-07-25 Richard Biener <rguenther@suse.de> 22896 22897 PR tree-optimization/81303 22898 * tree-vect-loop-manip.c (vect_loop_versioning): Build 22899 profitability check against LOOP_VINFO_NITERSM1. 22900 229012017-07-25 Alexander Monakov <amonakov@ispras.ru> 22902 22903 * domwalk.c (cmp_bb_postorder): Simplify. 22904 (sort_bbs_postorder): New function. Use it... 22905 (dom_walker::walk): ...here to optimize common cases. 22906 229072017-07-25 Martin Liska <mliska@suse.cz> 22908 22909 PR ipa/81520 22910 * ipa-visibility.c (function_and_variable_visibility): Make the 22911 redirection just on target that supports aliasing. 22912 Fix GNU coding style. 22913 229142017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de> 22915 22916 PR libgcc/61152 22917 * config/aarch64/rtems.h: Add GCC Runtime Library Exception. 22918 Format changes. 22919 * config/arm/rtems.h: Likewise. 22920 * config/bfin/rtems.h: Likewise. 22921 * config/i386/rtemself.h: Likewise. 22922 * config/lm32/rtems.h: Likewise. 22923 * config/m32c/rtems.h: Likewise. 22924 * config/m68k/rtemself.h: Likewise. 22925 * config/microblaze/rtems.h: Likewise. 22926 * config/mips/rtems.h: Likewise. 22927 * config/moxie/rtems.h: Likewise. 22928 * config/nios2/rtems.h: Likewise. 22929 * config/powerpcspe/rtems.h: Likewise. 22930 * config/rs6000/rtems.h: Likewise. 22931 * config/rtems.h: Likewise. 22932 * config/sh/rtems.h: Likewise. 22933 * config/sh/rtemself.h: Likewise. 22934 * config/sparc/rtemself.h: Likewise. 22935 229362017-07-25 Georg-Johann Lay <avr@gjlay.de> 22937 22938 PR 81487 22939 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf. 22940 * gimple-pretty-print.c (dump_profile, dump_probability): Same. 22941 * tree-ssa-structalias.c (alias_get_name): Same. 22942 229432017-07-25 Bin Cheng <bin.cheng@arm.com> 22944 22945 PR target/81414 22946 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac 22947 instructions if no du chain is found. 22948 229492017-07-25 Georg-Johann Lay <avr@gjlay.de> 22950 22951 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE. 22952 229532017-07-25 Richard Biener <rguenther@suse.de> 22954 22955 PR middle-end/81505 22956 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be 22957 sticky. 22958 229592017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> 22960 22961 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete 22962 upper-regs options. 22963 (ISA_2_7_MASKS_SERVER): Likewise. 22964 (ISA_3_0_MASKS_IEEE): Likewise. 22965 (OTHER_P8_VECTOR_MASKS): Likewise. 22966 (OTHER_VSX_VECTOR_MASKS): Likewise. 22967 (POWERPC_MASKS): Likewise. 22968 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a 22969 duplicate list of options. 22970 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove 22971 explicit -mupper-regs options. 22972 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete 22973 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an 22974 alias for -mupper-regs-df. 22975 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. 22976 (rs6000_init_hard_regno_mode_ok): Likewise. 22977 (rs6000_option_override_internal): Likewise. 22978 (rs6000_opt_masks): Likewise. 22979 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs 22980 options in terms of whether -mvsx or -mpower8-vector was used. 22981 (TARGET_UPPER_REGS_DI): Likewise. 22982 (TARGET_UPPER_REGS_SF): Likewise. 22983 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the 22984 -mupper-regs-* options. 22985 229862017-07-24 Segher Boessenkool <segher@kernel.crashing.org> 22987 22988 * passes.c (emergency_dump_function): Print some empty lines and a 22989 header before the RTL dump. 22990 229912017-07-24 Segher Boessenkool <segher@kernel.crashing.org> 22992 22993 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL. 22994 229952017-07-24 Wilco Dijkstra <wdijkstr@arm.com> 22996 22997 PR target/79041 22998 * config/aarch64/aarch64.c (aarch64_classify_symbol): 22999 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals. 23000 230012017-07-24 Carl Love <cel@us.ibm.com> 23002 23003 * config/rs6000/rs6000-c.c: Add support for built-in functions 23004 vector float vec_extract_fp32_from_shorth (vector unsigned short); 23005 vector float vec_extract_fp32_from_shortl (vector unsigned short); 23006 * config/rs6000/altivec.h (vec_extract_fp_from_shorth, 23007 vec_extract_fp_from_shortl): Add defines for the two builtins. 23008 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH, 23009 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1 23010 new builtins. 23011 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn. 23012 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands. 23013 * doc/extend.texi: Update the built-in documentation file for the 23014 new built-in function. 23015 230162017-07-24 Jakub Jelinek <jakub@redhat.com> 23017 23018 PR bootstrap/81521 23019 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS 23020 documentation. 23021 * doc/generic.texi: Likewise. 23022 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look 23023 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. 23024 230252017-07-24 Jackson Woodruff <jackson.woodruff@arm.com> 23026 23027 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New. 23028 (aarch64_mls_elt_merge<mode>): Likewise. 23029 230302017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com> 23031 23032 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not 23033 having __cxa_atexit. 23034 230352017-07-23 Michael Collison <michael.collison@arm.com> 23036 23037 * config/arm/arm.c (arm_option_override): Deprecate 23038 use of -mstructure-size-boundary. 23039 * config/arm/arm.opt: Deprecate -mstructure-size-boundary. 23040 * doc/invoke.texi: Deprecate -mstructure-size-boundary. 23041 230422017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 23043 23044 PR target/80695 23045 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): 23046 Reduce cost estimate for direct moves. 23047 230482017-07-23 Uros Bizjak <ubizjak@gmail.com> 23049 23050 PR target/80569 23051 * config/i386/i386.c (ix86_option_override_internal): Disable 23052 BMI, BMI2 and TBM instructions for -m16. 23053 230542017-07-21 Carl Love <cel@us.ibm.com> 23055 23056 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 23057 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, 23058 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. 23059 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, 23060 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. 23061 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, 23062 VMULOSW): New enum "unspec" values. 23063 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, 23064 altivec_vmulosw): New patterns. 23065 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, 23066 VMULOSW): Add definitions. 23067 230682017-07-21 Jim Wilson <jim.wilson@linaro.org> 23069 23070 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA. 23071 (qdf24xx): Likewise. 23072 * config/aarch64/aarch64-options-extensions.def (rdma); New. 23073 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New. 23074 (AARCH64_FL_V8_1): Renumber. 23075 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA. 23076 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA. 23077 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a. 23078 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add 23079 rdma to feature modifiers list. 23080 230812017-07-21 Yury Gribov <tetra2005@gmail.com> 23082 23083 PR middle-end/56727 23084 * ipa-visibility (function_and_variable_visibility): Convert 23085 recursive PLT call to direct call if appropriate. 23086 230872017-07-21 Andrew Pinski <apinski@cavium.com> 23088 23089 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's 23090 operand 1 to see if the types precision matches. 23091 * fold-const.c (operand_equal_p): Likewise. 23092 230932017-07-21 Richard Biener <rguenther@suse.de> 23094 23095 PR tree-optimization/81303 23096 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass 23097 in datarefs vector. Allow NULL dr0 for no peeling cost estimate. 23098 (vect_peeling_hash_get_lowest_cost): Adjust. 23099 (vect_enhance_data_refs_alignment): Likewise. Use 23100 vect_get_peeling_costs_all_drs to compute the penalty for no 23101 peeling to match up costs. 23102 231032017-07-21 Richard Biener <rguenther@suse.de> 23104 23105 PR tree-optimization/81500 23106 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if 23107 we didn't identify a reduction path. 23108 231092017-07-21 Tom de Vries <tom@codesourcery.com> 23110 Cesar Philippidis <cesar@codesourcery.com> 23111 23112 PR gcov-profile/81442 23113 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge 23114 probabilities. 23115 231162017-07-21 Tom de Vries <tom@codesourcery.com> 23117 23118 PR lto/81430 23119 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New 23120 function. 23121 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to 23122 nvptx_override_options_after_change. 23123 231242017-07-21 Ulrich Drepper <drepper@redhat.com> 23125 23126 * dwarf2out.c (output_file_names): Avoid double testing for 23127 dwarf_version >= 5. 23128 231292017-07-21 Georg-Johann Lay <avr@gjlay.de> 23130 23131 * doc/invoke.texi (AVR Built-in Functions): Re-layout section. 23132 231332016-07-21 Jan Hubicka <hubicka@ucw.cz> 23134 23135 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across 23136 hot/cold regions. 23137 (try_crossjump_to_edge): Do not punt on partitioned functions. 23138 231392016-07-21 Jan Hubicka <hubicka@ucw.cz> 23140 23141 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): 23142 Put all BBs reachable only via paths crossing cold region to cold 23143 region. 23144 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function. 23145 231462016-07-21 Richard Biener <rguenther@suse.de> 23147 23148 PR tree-optimization/81303 23149 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take 23150 into account prologue and epilogue iterations when raising 23151 min_profitable_iters to sth at least covering one vector iteration. 23152 231532017-07-21 Tamar Christina <tamar.christina@arm.com> 23154 23155 * config/arm/arm.c (arm_test_cpu_arch_dat): 23156 Check for overlap. 23157 231582017-07-20 Nathan Sidwell <nathan@acm.org> 23159 23160 Remove TYPE_METHODS. 23161 * tree.h (TYPE_METHODS): Delete. 23162 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS. 23163 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs. 23164 (dbxout_type_methods): Scan TYPE_FIELDS. 23165 (dbxout_type): Don't check TYPE_METHODS here. 23166 * function.c (use_register_for_decl): Always ignore register for 23167 class types when not optimizing. 23168 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan. 23169 * tree.c (free_lang_data_in_type): Stitch out member functions and 23170 templates from TYPE_FIELDS. 23171 (build_distinct_type_copy, verify_type_variant, 23172 verify_type): Member fns are on TYPE_FIELDS. 23173 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS. 23174 * tree-pretty-print.c (dump_generic_node): Likewise. 23175 231762017-07-20 Jakub Jelinek <jakub@redhat.com> 23177 23178 PR target/80846 23179 * config/i386/i386.c (ix86_expand_vector_init_general): Handle 23180 V2TImode and V4TImode. 23181 (ix86_expand_vector_extract): Likewise. 23182 * config/i386/sse.md (VMOVE): Enable V4TImode even for just 23183 TARGET_AVX512F, instead of only for TARGET_AVX512BW. 23184 (ssescalarmode): Handle V4TImode and V2TImode. 23185 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode. 23186 (*vec_extractv2ti, *vec_extractv4ti): New insns. 23187 (VEXTRACTI128_MODE): New mode iterator. 23188 (splitter for *vec_extractv?ti first element): New. 23189 (VEC_INIT_MODE): New mode iterator. 23190 (vec_init<mode>): Consolidate 3 expanders into one using 23191 VEC_INIT_MODE mode iterator. 23192 231932017-07-20 Alexander Monakov <amonakov@ispras.ru> 23194 23195 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on 23196 non_spilled_static_chain_regno_p. 23197 231982017-07-20 Alexander Monakov <amonakov@ispras.ru> 23199 23200 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos. 23201 232022017-07-20 Jan Hubicka <hubicka@ucw.cz> 23203 23204 * bb-reorder.c (connect_traces): Allow copying of blocks within 23205 single partition. 23206 232072017-07-20 Richard Biener <rguenther@suse.de> 23208 23209 * gimple.h (gimple_phi_result): Add gphi * overload. 23210 (gimple_phi_result_ptr): Likewise. 23211 (gimple_phi_arg): Likewise. Adjust index assert to only 23212 allow actual argument accesses rather than all slots available 23213 by capacity. 23214 (gimple_phi_arg_def): Add gphi * overload. 23215 * tree-phinodes.c (make_phi_node): Initialize only actual 23216 arguments. 23217 (resize_phi_node): Clear memory not covered by old node, 23218 do not initialize excess argument slots. 23219 (reserve_phi_args_for_new_edge): Initialize new argument slot 23220 completely. 23221 232222017-07-20 Bin Cheng <bin.cheng@arm.com> 23223 23224 PR tree-optimization/81388 23225 Revert r238585: 23226 2016-07-21 Bin Cheng <bin.cheng@arm.com> 23227 23228 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up 23229 by removing computation of may_be_zero. 23230 232312017-07-18 Jan Hubicka <hubicka@ucw.cz> 23232 Tom de Vries <tom@codesourcery.com> 23233 23234 PR middle-end/81030 23235 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note 23236 when gimple level profile disagrees with what RTL expander did. 23237 232382017-07-20 Richard Biener <rguenther@suse.de> 23239 23240 PR tree-optimization/61171 23241 * tree-vectorizer.h (slp_instance): Add reduc_phis member. 23242 (vect_analyze_stmt): Add slp instance parameter. 23243 (vectorizable_reduction): Likewise. 23244 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust. 23245 (vect_is_simple_reduction): Deal with chains not detected 23246 as SLP reduction chain, specifically not properly associated 23247 chains containing a mix of plus/minus. 23248 (get_reduction_op): Remove. 23249 (get_initial_defs_for_reduction): Simplify, pass in whether 23250 this is a reduction chain, pass in the SLP node for the PHIs. 23251 (vect_create_epilog_for_reduction): Get the SLP instance as 23252 arg and adjust. 23253 (vectorizable_reduction): Get the SLP instance as arg. 23254 During analysis remember the SLP node with the PHIs in the 23255 instance. Simplify getting at the vectorized reduction PHIs. 23256 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass 23257 through SLP instance. 23258 (vect_slp_analyze_operations): Likewise. 23259 * tree-vect-stms.c (vect_analyze_stmt): Likewise. 23260 (vect_transform_stmt): Likewise. 23261 232622017-07-20 Tom de Vries <tom@codesourcery.com> 23263 23264 PR tree-optimization/81489 23265 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move 23266 read of phi arg location to before loop that modifies phi. 23267 232682017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 23269 23270 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): 23271 New pattern. 23272 232732017-07-19 Jan Hubicka <hubicka@ucw.cz> 23274 23275 PR middle-end/81331 23276 * except.c (execute): Fix ordering issue. 23277 232782018-07-19 Segher Boessenkool <segher@kernel.crashing.org> 23279 23280 PR rtl-optimization/81423 23281 * combine.c (make_compound_operation_int): Don't try to optimize 23282 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical. 23283 232842017-07-19 Segher Boessenkool <segher@kernel.crashing.org> 23285 23286 PR rtl-optimization/81423 23287 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR 23288 with a constant that is -1 in the truncated to mode. 23289 232902017-07-19 Jan Hubicka <hubicka@ucw.cz> 23291 23292 * predict.c (propagate_unlikely_bbs_forward): Break out from ... 23293 (determine_unlikely_bbs): ... here. 23294 * predict.h (propagate_unlikely_bbs_forward): Declare. 23295 * cfgexpand.c (pass_expand::execute): Use it. 23296 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be 23297 unlikely edges. 23298 (find_rarely_executed_basic_blocks_and_crossing_edges): Use 23299 propagate_unlikely_bbs_forward. 23300 233012017-07-19 Jan Hubicka <hubicka@ucw.cz> 23302 23303 PR middle-end/81331 23304 * except.c (maybe_add_nop_after_section_switch): New function. 23305 (execute): Use it. 23306 233072017-07-19 Tom de Vries <tom@codesourcery.com> 23308 23309 * gimple.h (gimple_phi_set_arg): Make assert more strict. 23310 233112017-07-19 Tom de Vries <tom@codesourcery.com> 23312 23313 * gimple.h (gimple_phi_arg): Make assert more strict. 23314 233152017-07-19 Steven Munroe <munroesj@gcc.gnu.org> 23316 23317 * config.gcc (powerpc*-*-*): Add mmintrin.h. 23318 * config/rs6000/mmintrin.h: New file. 23319 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h. 23320 233212017-07-19 Jakub Jelinek <jakub@redhat.com> 23322 23323 PR tree-optimization/81346 23324 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. 23325 233262017-07-19 Tom de Vries <tom@codesourcery.com> 23327 23328 * config/nvptx/nvptx.md (VECIM): Add V2DI. 23329 233302017-07-19 Tom de Vries <tom@codesourcery.com> 23331 23332 * config/nvptx/nvptx-modes.def: Add V2DImode. 23333 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. 23334 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. 23335 (nvptx_output_mov_insn): Handle lack of mov.b128. 23336 (nvptx_print_operand): Handle 'H' and 'L' codes. 23337 (nvptx_vector_mode_supported): Allow V2DImode. 23338 (nvptx_preferred_simd_mode): New function. 23339 (nvptx_data_alignment): New function. 23340 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to 23341 nvptx_preferred_simd_mode. 23342 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from 23343 64 to 128 bits. 23344 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. 23345 233462017-07-19 Tom de Vries <tom@codesourcery.com> 23347 23348 * config/nvptx/nvptx-modes.def: New file. Add V2SImode. 23349 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. 23350 (nvptx_vector_mode_supported): New function. Allow V2SImode. 23351 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. 23352 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. 23353 (mov<VECIM>_insn): New define_insn. 23354 (define_expand "mov<VECIM>): New define_expand. 23355 233562017-07-19 Tom de Vries <tom@codesourcery.com> 23357 23358 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. 23359 233602017-07-19 Jakub Jelinek <jakub@redhat.com> 23361 23362 PR tree-optimization/81346 23363 * fold-const.h (fold_div_compare, range_check_type): Declare. 23364 * fold-const.c (range_check_type): New function. 23365 (build_range_check): Use range_check_type. 23366 (fold_div_compare): No longer static, rewritten into 23367 a match.pd helper function. 23368 (fold_comparison): Don't call fold_div_compare here. 23369 * match.pd (X / C1 op C2): New optimization using fold_div_compare 23370 as helper function. 23371 233722017-07-19 Nathan Sidwell <nathan@acm.org> 23373 23374 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... 23375 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. 23376 * tree.c (find_decls_types_r, verify_type): Use 23377 TYPE_{MIN,MAX}_VALUE_RAW. 23378 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. 23379 (hash_tree): Likewise. 23380 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): 23381 Likewise. 23382 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): 23383 Likewise. 23384 233852017-07-18 Tom de Vries <tom@codesourcery.com> 23386 23387 PR middle-end/81464 23388 * omp-expand.c (expand_omp_for_static_chunk): Handle 23389 equal-argument loop exit phi. 23390 233912017-07-18 Uros Bizjak <ubizjak@gmail.com> 23392 23393 PR target/81471 23394 * config/i386/i386.md (rorx_immediate_operand): New mode attribute. 23395 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as 23396 operand 2 predicate. 23397 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as 23398 operand 2 predicate. 23399 (ror,rol -> rorx splitters): Use const_int_operand as 23400 operand 2 predicate. 23401 234022017-06-18 Richard Biener <rguenther@suse.de> 23403 23404 PR tree-optimization/81410 23405 * tree-vect-stmts.c (vectorizable_load): Properly adjust for 23406 the gap in the ! slp_perm SLP case after each group. 23407 234082017-07-18 Jan Hubicka <hubicka@ucw.cz> 23409 23410 PR middle-end/81463 23411 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency 23412 again. 23413 234142017-07-18 Jan Hubicka <hubicka@ucw.cz> 23415 23416 PR middle-end/81462 23417 * predict.c (set_even_probabilities): Cleanup; do not affect 23418 probabilities that are already known. 23419 (combine_predictions_for_bb): Call even when count is set. 23420 234212017-07-18 Nathan Sidwell <nathan@acm.org> 23422 23423 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use 23424 TYPE_MAX_VALUE. 23425 234262017-07-18 Bin Cheng <bin.cheng@arm.com> 23427 23428 PR target/81408 23429 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed 23430 optimization for loop niter analysis. 23431 234322017-07-18 Georg-Johann Lay <avr@gjlay.de> 23433 23434 PR target/81473 23435 * config/avr/avr.c (avr_optimize_casesi): Don't use 23436 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. 23437 234382017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com> 23439 23440 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove 23441 body_cost_vec from _vect_peel_extended_info. 23442 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. 23443 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and 23444 npeel. 23445 234462017-07-18 Bin Cheng <bin.cheng@arm.com> 23447 23448 * config/arm/arm.c (emit_unlikely_jump): Remove unused var. 23449 234502017-07-18 Richard Biener <rguenther@suse.de> 23451 23452 PR tree-optimization/80620 23453 PR tree-optimization/81403 23454 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to 23455 info when re-using a VN table entry. 23456 234572017-07-18 Richard Biener <rguenther@suse.de> 23458 23459 PR tree-optimization/81418 23460 * tree-vect-loop.c (vectorizable_reduction): Properly compute 23461 vectype_in. Verify that with lane-reducing reduction operations 23462 we have a single def-use cycle. 23463 234642017-07-17 Carl Love <cel@us.ibm.com> 23465 23466 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> 23467 23468 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 23469 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, 23470 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. 23471 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, 23472 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. 23473 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, 23474 VMULOSW): New enum "unspec" values. 23475 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, 23476 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, 23477 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, 23478 altivec_vmulosw): New patterns. 23479 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, 23480 VMULOSW): Add definitions. 23481 234822017-07-17 Uros Bizjak <ubizjak@gmail.com> 23483 23484 * config/alpha/alpha.c: Include predict.h. 23485 234862017-07-17 Yury Gribov <tetra2005@gmail.com> 23487 23488 * tree-vrp.c (compare_assert_loc): Fix comparison function 23489 to return predictable results. 23490 234912017-07-17 Claudiu Zissulescu <claziss@synopsys.com> 23492 23493 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi 23494 option. 23495 (subdi3): Likewise. 23496 * config/arc/arc.opt (mexpand-adddi): Deprecate it. 23497 * doc/invoke.texi (mexpand-adddi): Update text. 23498 234992017-07-17 Claudiu Zissulescu <claziss@synopsys.com> 23500 23501 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction 23502 that also clobbers the CC register. The old expand code is moved 23503 to ... 23504 (*arc_clzsi2): ... here. 23505 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers 23506 the CC register. The old expand code is moved to ... 23507 (arc_ctzsi2): ... here. 23508 235092017-07-17 Claudiu Zissulescu <claziss@synopsys.com> 23510 23511 * config/arc/arc.opt (mindexed-loads): Use initial value 23512 TARGET_INDEXED_LOADS_DEFAULT. 23513 (mauto-modify-reg): Use initial value 23514 TARGET_AUTO_MODIFY_REG_DEFAULT. 23515 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define. 23516 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. 23517 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define. 23518 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. 23519 235202017-07-17 Martin Liska <mliska@suse.cz> 23521 23522 PR sanitizer/81302 23523 * opts.c (finish_options): Do not allow -fgnu-tm 23524 w/ -fsanitize={kernel-,}address. Say sorry. 23525 235262017-07-17 Bin Cheng <bin.cheng@arm.com> 23527 23528 PR target/81369 23529 * tree-loop-distribution.c (classify_partition): Only assert on 23530 numer of iterations. 23531 (merge_dep_scc_partitions): Delete prameter. Update function call. 23532 (distribute_loop): Remove code handling loop with unknown niters. 23533 (pass_loop_distribution::execute): Skip loop with unknown niters. 23534 235352017-07-17 Bin Cheng <bin.cheng@arm.com> 23536 23537 PR target/81369 23538 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to 23539 function sort_partitions_by_post_order. 23540 235412017-07-17 Bin Cheng <bin.cheng@arm.com> 23542 23543 PR tree-optimization/81374 23544 * tree-loop-distribution.c (pass_loop_distribution::execute): Record 23545 the max index of basic blocks, rather than number of basic blocks. 23546 235472017-07-17 Claudiu Zissulescu <claziss@synopsys.com> 23548 23549 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove 23550 proto. 23551 (arc_legitimate_pic_operand_p): Likewise. 23552 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove 23553 function. 23554 (arc_needs_pcl_p): Likewise. 23555 (arc_legitimate_pc_offset_p): Likewise. 23556 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this 23557 function is also used in constrains.md. 23558 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to 23559 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and 23560 PLUS. Only return true/false in known cases, otherwise assert. 23561 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it 23562 is already called in arc_legitimate_constant_p. 23563 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for 23564 pic addresses. 23565 (LEGITIMATE_PIC_OPERAND_P): Use 23566 arc_raw_symbolic_reference_mentioned_p function. 23567 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p 23568 function. 23569 (Cal): Likewise. 23570 (C32): Likewise. 23571 235722017-07-17 Claudiu Zissulescu <claziss@synopsys.com> 23573 Andrew Burgess <andrew.burgess@embecosm.com> 23574 23575 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype. 23576 (arc_return_address_register): New function. 23577 * config/arc/arc.c (arc_handle_fndecl_attribute): New function. 23578 (arc_handle_fndecl_attribute): Add naked attribute. 23579 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. 23580 (TARGET_WARN_FUNC_RETURN): Likewise. 23581 (arc_allocate_stack_slots_for_args): New function. 23582 (arc_warn_func_return): Likewise. 23583 (machine_function): Change type fn_type. 23584 (arc_compute_function_type): Consider new naked function type, 23585 change function return type. 23586 (arc_must_save_register): Adapt to handle new 23587 arc_compute_function_type's return type. 23588 (arc_expand_prologue): Likewise. 23589 (arc_expand_epilogue): Likewise. 23590 (arc_return_address_regs): Delete. 23591 (arc_return_address_register): New function. 23592 (arc_epilogue_uses): Use above function. 23593 * config/arc/arc.h (arc_return_address_regs): Delete prototype. 23594 (arc_function_type): Change encoding, add naked type. 23595 (ARC_INTERRUPT_P): Change to handle the new encoding. 23596 (ARC_FAST_INTERRUPT_P): Likewise. 23597 (ARC_NORMAL_P): Define. 23598 (ARC_NAKED_P): Likewise. 23599 (arc_compute_function_type): Delete prototype. 23600 * config/arc/arc.md (in_ret_delay_slot): Use 23601 arc_return_address_register function. 23602 (simple_return): Likewise. 23603 (p_return_i): Likewise. 23604 236052017-07-17 Jakub Jelinek <jakub@redhat.com> 23606 23607 PR tree-optimization/81428 23608 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1 23609 can't be built for those types. 23610 236112017-07-17 Georg-Johann Lay <avr@gjlay.de> 23612 23613 Remove stuff dead since r239246. 23614 23615 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto. 23616 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str) 23617 (avr_inform_devices): Remove dead stuff. 23618 236192017-07-17 Tamar Christina <tamar.christina@arm.com> 23620 23621 * config/arm/arm_neon.h: Fix softp typo. 23622 236232017-07-17 Jakub Jelinek <jakub@redhat.com> 23624 23625 PR tree-optimization/81365 23626 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting 23627 aggregate moves onto bb predecessor edges, make sure there are no 23628 loads that could alias the lhs in between the start of bb and the 23629 loads from *phi. 23630 236312017-07-17 Georg-Johann Lay <avr@gjlay.de> 23632 23633 PR 80929 23634 * config/avr/avr.c (avr_mul_highpart_cost): New static function. 23635 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost. 23636 [LSHIFTRT, outer_code = TRUNCATE]: Same. 23637 236382017-07-17 Jakub Jelinek <jakub@redhat.com> 23639 23640 PR tree-optimization/81396 23641 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field. 23642 (init_symbolic_number): Initialize it to 1. 23643 (perform_symbolic_merge): Add n_ops from both operands into the new 23644 n_ops. 23645 (find_bswap_or_nop): Don't consider n->n == cmpnop computations 23646 without base_addr as useless if they need more than one operation. 23647 (bswap_replace): Handle !bswap case for NULL base_addr. 23648 236492017-07-17 Tom de Vries <tom@codesourcery.com> 23650 23651 PR target/81069 23652 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late 23653 as possible. 23654 236552017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de> 23656 23657 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add 23658 conditional builtin define __FIX_LEON3FT_B2BST. 23659 236602017-07-17 Daniel Cederman <cederman@gaisler.com> 23661 23662 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace 23663 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc 23664 with -mfix-ut700. 23665 236662017-07-16 Eric Botcazou <ebotcazou@adacore.com> 23667 23668 PR rtl-optimization/81424 23669 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg 23670 to remove potential trapping from operands if -fnon-call-exceptions. 23671 236722017-07-16 Jan Hubicka <hubicka@ucw.cz> 23673 23674 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use 23675 profile_proability for scalling. 23676 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise. 23677 236782017-07-16 Jan Hubicka <hubicka@ucw.cz> 23679 23680 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup. 23681 236822017-07-16 Jan Hubicka <hubicka@ucw.cz> 23683 23684 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE 23685 fixpoint arithmetics. 23686 236872017-07-16 Jan Hubicka <hubicka@ucw.cz> 23688 23689 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE 23690 fixpoint arithmetics. 23691 236922017-07-16 Jan Hubicka <hubicka@ucw.cz> 23693 23694 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE 23695 fixpoint arithmetics. 23696 236972017-07-16 Jan Hubicka <hubicka@ucw.cz> 23698 23699 * profile-count.h (profile_probability::from_reg_br_prob_note, 23700 profile_probability::to_reg_br_prob_note): New functions. 23701 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation. 23702 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs. 23703 * predict.c (probability_reliable_p): Update. 23704 (edge_probability_reliable_p): Update. 23705 (br_prob_note_reliable_p): Update. 23706 (invert_br_probabilities): Update. 23707 (add_reg_br_prob_note): New function. 23708 (combine_predictions_for_insn): Update. 23709 * asan.c (asan_clear_shadow): Update. 23710 * cfgbuild.c (compute_outgoing_frequencies): Update. 23711 * cfgrtl.c (force_nonfallthru_and_redirect): Update. 23712 (update_br_prob_note): Update. 23713 (rtl_verify_edges): Update. 23714 (purge_dead_edges): Update. 23715 (fixup_reorder_chain): Update. 23716 * emit-rtl.c (try_split): Update. 23717 * ifcvt.c (cond_exec_process_insns): Update. 23718 (cond_exec_process_if_block): Update. 23719 (dead_or_predicable): Update. 23720 * internal-fn.c (expand_addsub_overflow): Update. 23721 (expand_neg_overflow): Update. 23722 (expand_mul_overflow): Update. 23723 * loop-doloop.c (doloop_modify): Update. 23724 * loop-unroll.c (compare_and_jump_seq): Update. 23725 * optabs.c (emit_cmp_and_jump_insn_1): Update. 23726 * predict.h: Update. 23727 * reorg.c (mostly_true_jump): Update. 23728 * rtl.h: Update. 23729 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update. 23730 * config/alpha/alpha.c (emit_unlikely_jump): Update. 23731 * config/arc/arc.c: (emit_unlikely_jump): Update. 23732 * config/arm/arm.c: (emit_unlikely_jump): Update. 23733 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update. 23734 * config/frv/frv.c (frv_print_operand_jump_hint): Update. 23735 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update. 23736 (ix86_print_operand): Update. 23737 (ix86_split_fp_branch): Update. 23738 (predict_jump): Update. 23739 * config/ia64/ia64.c (ia64_print_operand): Update. 23740 * config/mmix/mmix.c (mmix_print_operand): Update. 23741 * config/powerpcspe/powerpcspe.c (output_cbranch): Update. 23742 (rs6000_expand_split_stack_prologue): Update. 23743 * config/rs6000/rs6000.c: Update. 23744 * config/s390/s390.c (s390_expand_vec_strlen): Update. 23745 (s390_expand_vec_movstr): Update. 23746 (s390_expand_cs_tdsi): Update. 23747 (s390_expand_split_stack_prologue): Update. 23748 * config/sh/sh.c (sh_print_operand): Update. 23749 (expand_cbranchsi4): Update. 23750 (expand_cbranchdi4): Update. 23751 * config/sparc/sparc.c (output_v9branch): Update. 23752 * config/spu/spu.c (get_branch_target): Update. 23753 (ea_load_store_inline): Update. 23754 * config/tilegx/tilegx.c (cbranch_predicted_p): Update. 23755 * config/tilepro/tilepro.c: Update. 23756 237572017-07-16 Eric Botcazou <ebotcazou@adacore.com> 23758 23759 * gimplify.c (mostly_copy_tree_r): Revert latest change. 23760 (gimplify_save_expr): Likewise. 23761 237622017-07-07 Jan Hubicka <hubicka@ucw.cz> 23763 23764 * ipa-visibility.c (function_and_variable_visibility): Fix pasto. 23765 237662017-07-07 Jan Hubicka <hubicka@ucw.cz> 23767 23768 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use 23769 TV_IPA_FNSUMMARY. 23770 * timevar.def (TV_IPA_FNSUMMARY): Define. 23771 237722017-07-16 Daniel Cederman <cederman@gaisler.com> 23773 23774 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back 23775 to back store errata sensitive sequence from being generated. 23776 (sqrtdf2_fix): Likewise. 23777 237782017-07-07 Jan Hubicka <hubicka@ucw.cz> 23779 23780 * tree-ssa-threadupdate.c (compute_path_counts, 23781 update_joiner_offpath_counts): Use profile_probability. 23782 237832017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com> 23784 23785 Revert: 23786 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> 23787 23788 * config/arm/arm-c.c (arm_cpu_builtins): Define 23789 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. 23790 237912017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org> 23792 23793 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 23794 array entries to represent __ieee128 versions of the 23795 scalar_test_data_class, scalar_test_neg, scalar_extract_exp, 23796 scalar_extract_sig, and scalar_insert_exp built-in functions. 23797 (altivec_resolve_overloaded_builtin): Add special case handling 23798 for the __builtin_scalar_insert_exp function, as represented by 23799 the P9V_BUILTIN_VEC_VSIEDP constant. 23800 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract 23801 exponent support for __ieee128 argument. 23802 (VSESQP): Add scalar extract signature support for __ieee128 23803 argument. 23804 (VSTDCNQP): Add scalar test negative support for __ieee128 23805 argument. 23806 (VSIEQP): Add scalar insert exponent support for __int128 argument 23807 with __ieee128 result. 23808 (VSIEQPF): Add scalar insert exponent support for __ieee128 23809 argument with __ieee128 result. 23810 (VSTDCQP): Add scalar test data class support for __ieee128 23811 argument. 23812 (VSTDCNQP): Add overload support for scalar test negative with 23813 __ieee128 argument. 23814 (VSTDCQP): Add overload support for scalar test data class 23815 __ieee128 argument. 23816 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace 23817 UNSPEC_VSX_SXSIGDP. 23818 (UNSPEC_VSX_SIEXPQP): New constant. 23819 (xsxexpqp): New insn for VSX scalar extract exponent quad 23820 precision. 23821 (xsxsigqp): New insn for VSX scalar extract significand quad 23822 precision. 23823 (xsiexpqpf): New insn for VSX scalar insert exponent quad 23824 precision with floating point argument. 23825 (xststdcqp): New expand for VSX scalar test data class quad 23826 precision. 23827 (xststdcnegqp): New expand for VSX scalar test negative quad 23828 precision. 23829 (xststdcqp): New insn to match expansions for VSX scalar test data 23830 class quad precision and VSX scalar test negative quad precision. 23831 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add 23832 special case operand checking to enforce that second operand of 23833 VSX scalar test data class with quad precision argument is a 7-bit 23834 unsigned literal. 23835 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add 23836 prototypes and descriptions of __ieee128 versions of 23837 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp, 23838 scalar_test_data_class, and scalar_test_neg built-in functions. 23839 238402016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 23841 23842 PR tree-optimization/81162 23843 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't 23844 replace a negate with an add. 23845 238462017-07-14 James Greenhalgh <james.greenhalgh@arm.com> 23847 23848 * doc/invoke.texi (arm/-mcpu): Document +crypto. 23849 238502017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> 23851 23852 * config/arm/arm-c.c (arm_cpu_builtins): Define 23853 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. 23854 238552017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> 23856 23857 * config/arm/arm-cpus.in (cortex-r52): Add new entry. 23858 (armv8-r): Set ARM Cortex-R52 as default CPU. 23859 * config/arm/arm-tables.opt: Regenerate. 23860 * config/arm/arm-tune.md: Regenerate. 23861 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM 23862 Cortex-R52. 23863 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp 23864 extension for -mcpu=cortex-r52. 23865 238662017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> 23867 23868 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator. 23869 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32. 23870 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5. 23871 (fp-armv8): Define it as FP_ARMv8 only. 23872 config/arm/arm.h (TARGET_FPU_ARMV8): Delete. 23873 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than 23874 TARGET_FPU_ARMV8. 23875 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against 23876 TARGET_FPU_ARMV8 by checks against TARGET_VFP5. 23877 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define 23878 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather 23879 than TARGET_FPU_ARMV8. 23880 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for 23881 __ARM_FEATURE_NUMERIC_MAXMIN macro definition. 23882 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than 23883 TARGET_FPU_ARMV8. 23884 * config/arm/neon.md (neon_vrint): Likewise. 23885 (neon_vcvt): Likewise. 23886 (neon_<fmaxmin_op><mode>): Likewise. 23887 (<fmaxmin><mode>3): Likewise. 23888 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise. 23889 * config/arm/predicates.md (arm_cond_move_operator): Check against 23890 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing. 23891 238922017-07-14 Jackson Woodruff <jackson.woodruff@arm.com> 23893 23894 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments 23895 to top of function. 23896 238972017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 23898 23899 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to 23900 loop in comment with memset. 23901 239022017-07-14 Martin Liska <mliska@suse.cz> 23903 23904 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment. 23905 * dwarf2out.c (is_java): Remove the function. 23906 (output_pubname): Remove usage of the function. 23907 (lower_bound_default): Remove usage of DW_LANG_Java. 23908 (gen_compile_unit_die): Likewise. 23909 * gcc.c: Remove compiler defaults for .java and .zip files. 23910 * gimple-expr.c (remove_suffix): Change as there's no longer 23911 extension than 4-letter one. 23912 * gimplify.c (mostly_copy_tree_r): Remove Java-special part. 23913 (gimplify_save_expr): Likewise. 23914 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment 23915 as it's possible even for other languages than Java. 23916 * langhooks.h (struct lang_hooks): Remove Java from a comment. 23917 * lto-opts.c (lto_write_options): Remove reference to Java. 23918 * opts.c (strip_off_ending): Update file extension handling. 23919 * tree-cfg.c (verify_gimple_call): Remove comment with Java. 23920 * tree-eh.c (lower_resx): Likewise. 23921 * tree.c (free_lang_data_in_type): Remove dead code. 23922 (find_decls_types_r): Likewise. 23923 (build_common_builtin_nodes): Remove Java from a comment. 23924 (verify_type): Remove dead code. 23925 * varasm.c (assemble_external): Remove Java from a comment. 23926 239272017-07-14 Martin Liska <mliska@suse.cz> 23928 23929 * opts.c (finish_options): Add quotes. 23930 (common_handle_option): Likewise. 23931 239322017-07-14 Martin Liska <mliska@suse.cz> 23933 23934 * dbxout.c (get_lang_number): Do not handle GNU Pascal. 23935 * dbxout.h (extern void dbxout_stab_value_internal_label_diff): 23936 Remove N_SO_PASCAL. 23937 * dwarf2out.c (lower_bound_default): Do not handle 23938 DW_LANG_Pascal83. 23939 (gen_compile_unit_die): Likewise. 23940 * gcc.c: Remove default extension binding for GNU Pascal. 23941 * stmt.c: Remove Pascal language from a comment. 23942 * xcoffout.c: Likewise. 23943 239442017-07-13 David Malcolm <dmalcolm@redhat.com> 23945 23946 PR c/81405 23947 * diagnostic-show-locus.c (fixit_cmp): New function. 23948 (layout::layout): Sort m_fixit_hints. 23949 (column_range::column_range): Assert that the values are valid. 23950 (struct char_span): New struct. 23951 (correction::overwrite): New method. 23952 (struct source_line): New struct. 23953 (line_corrections::add_hint): Add assertions. Reimplement memcpy 23954 calls in terms of classes source_line and char_span, and 23955 correction::overwrite. 23956 (selftest::test_overlapped_fixit_printing_2): New function. 23957 (selftest::diagnostic_show_locus_c_tests): Call it. 23958 239592017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com> 23960 23961 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return 23962 early if there is no lhs. 23963 239642017-07-13 Martin Liska <mliska@suse.cz> 23965 23966 * dwarf2out.c (gen_pointer_type_die): Remove dead code. 23967 (gen_reference_type_die): Likewise. 23968 * stor-layout.c: Remove Pascal-related comment. 23969 239702017-07-13 Martin Liska <mliska@suse.cz> 23971 23972 * opts.c (finish_options): Add quotes to error messages. 23973 (parse_sanitizer_options): Likewise. 23974 239752017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com> 23976 23977 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension. 23978 239792017-07-13 Richard Earnshaw <rearnsha@arm.com> 23980 23981 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define. 23982 239832017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com> 23984 23985 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments 23986 during expansion. 23987 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise. 23988 239892017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com> 23990 23991 PR target/81193 23992 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC 23993 provides the hardware capability bits, define the macro 23994 __BUILTIN_CPU_SUPPORTS__. 23995 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning 23996 if GLIBC does not provide the hardware capability bits. Add a 23997 gcc_unreachable call if the built-in cpu function is neither 23998 __builtin_cpu_is nor __builtin_cpu_supports. 23999 (rs6000_get_function_versions_dispatcher): Change the warning 24000 that an old GLIBC is used which does not export the capability 24001 bits to be an error. 24002 * doc/extend.texi (target_clones attribute): Document the 24003 restriction that GLIBC 2.23 or newer is needed on the PowerPC. 24004 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is 24005 needed by __builtin_cpu_is and __builtin_cpu_supports. Document 24006 the macros defined by GCC if the newer GLIBC is available. 24007 240082017-07-12 Jeff Law <law@redhat.com> 24009 24010 * config/riscv/riscv.c: Remove unnecessary includes. Reorder 24011 remaining includes slightly. 24012 * config/riscv/riscv-builtins.c: Include profile-count.h. 24013 240142017-07-12 Georg-Johann Lay <avr@gjlay.de> 24015 24016 PR target/79883 24017 * config/avr/avr.c (avr_set_current_function): In diagnostic 24018 messages: Quote keywords and (parts of) identifiers. 24019 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or 24020 "INTERUPT". 24021 240222017-07-12 Carl Love <cel@us.ibm.com> 24023 24024 * config/rs6000/rs6000-c.c: Add support for built-in functions 24025 vector bool char vec_revb (vector bool char); 24026 vector bool short vec_revb (vector short char); 24027 vector bool int vec_revb (vector bool int); 24028 vector bool long long vec_revb (vector bool long long); 24029 * doc/extend.texi: Update the built-in documentation file for the 24030 new built-in functions. 24031 240322017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 24033 24034 * config/s390/s390.md: Remove movcc splitter. 24035 240362017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 24037 24038 * config/s390/s390.c (s390_rtx_costs): Return proper costs for 24039 load/store on condition. 24040 240412017-07-12 Georg-Johann Lay <avr@gjlay.de> 24042 24043 PR target/81407 24044 * config/avr/avr.c (avr_encode_section_info) 24045 [progmem && !TREE_READONLY]: Error if progmem object needs 24046 constructing. 24047 240482017-07-11 Michael Collison <michael.collison@arm.com> 24049 24050 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0): 24051 New pattern. 24052 240532017-07-11 Carl Love <cel@us.ibm.com> 24054 24055 * config/rs6000/rs6000-c.c: Add support for builtins 24056 vector unsigned int vec_parity_lsbb (vector signed int); 24057 vector unsigned int vec_parity_lsbb (vector unsigned int); 24058 vector unsigned __int128 vec_parity_lsbb (vector signed __int128); 24059 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128); 24060 vector unsigned long long vec_parity_lsbb (vector signed long long); 24061 vector unsigned long long vec_parity_lsbb (vector unsigned long long); 24062 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1. 24063 * config/rs6000/altivec.h (vec_parity_lsbb): Add define. 24064 * doc/extend.texi: Update the built-in documentation file for the 24065 new built-in functions. 24066 240672017-07-11 David Malcolm <dmalcolm@redhat.com> 24068 24069 * diagnostic-show-locus.c: Include "gcc-rich-location.h". 24070 (layout::m_primary_loc): New field. 24071 (layout::layout): Initialize new field. Move location filtering 24072 logic from here to... 24073 (layout::maybe_add_location_range): ...this new method. Add 24074 support for filtering to just the lines already specified by other 24075 locations. 24076 (layout::will_show_line_p): New method. 24077 (gcc_rich_location::add_location_if_nearby): New method. 24078 (selftest::test_add_location_if_nearby): New test function. 24079 (selftest::diagnostic_show_locus_c_tests): Call it. 24080 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): 24081 New method. 24082 240832017-07-11 Tom de Vries <tom@codesourcery.com> 24084 24085 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro. 24086 (bb_first_real_insn): New function. 24087 (nvptx_single): Add extra initialization of broadcasted condition 24088 variables. 24089 240902017-07-11 Nathan Sidwell <nathan@acm.org> 24091 24092 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors. 24093 240942017-07-11 Georg-Johann Lay <avr@gjlay.de> 24095 24096 * doc/extend.texi (AVR Function Attributes): Remove weblink to 24097 Binutils doc as TEXI will mess them up. 24098 * doc/invoke.texi (AVR Options): Same here. 24099 241002017-07-11 Daniel Cederman <cederman@gaisler.com> 24101 24102 * config/sparc/sparc.opt (mfix-ut700): New option. 24103 (mfix-gr712rc): Likewise. 24104 (sparc_fix_b2bst): New variable. 24105 * doc/invoke.texi (SPARC options): Document them. 24106 (ARM options): Fix warnings. 24107 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP 24108 instructions to prevent sequences that can trigger the store-store 24109 errata for certain LEON3FT processors. 24110 (pass_work_around_errata::gate): Also test sparc_fix_b2bst. 24111 (sparc_option_override): Set sparc_fix_b2bst appropriately. 24112 * config/sparc/sparc.md (fix_b2bst): New attribute. 24113 (in_branch_delay): Prevent stores in delay slot if fix_b2bst. 24114 241152017-07-10 Uros Bizjak <ubizjak@gmail.com> 24116 24117 PR target/81375 24118 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH. 24119 (rcpps): Ditto. 24120 (*rsqrtsf2_sse): Ditto. 24121 (rsqrtsf2): Ditto. 24122 (div<mode>3): Macroize insn from divdf3 and divsf3 24123 using MODEF mode iterator. 24124 241252017-07-10 Martin Sebor <msebor@redhat.com> 24126 24127 PR tree-optimization/80397 24128 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P() 24129 instead of testing for equality to INTEGER_TYPE. 24130 241312017-07-10 Vineet Gupta <vgupta@synopsys.com> 24132 24133 * config.gcc: Remove uclibc from arc target spec. 24134 241352017-07-10 Claudiu Zissulescu <claziss@synopsys.com> 24136 24137 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define. 24138 241392017-07-07 Jan Hubicka <hubicka@ucw.cz> 24140 24141 PR lto/80838 24142 * lto-wrapper.c (remove_option): New function. 24143 (merge_and_complain): Merge PIC/PIE options more realistically. 24144 241452017-07-10 Georg-Johann Lay <avr@gjlay.de> 24146 24147 Better ISR prologues by supporting GASes __gcc_isr pseudo insn. 24148 24149 PR target/20296 24150 PR target/81268 24151 * configure.ac [target=avr]: Add GAS check for -mgcc-isr. 24152 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it. 24153 * config.in: Regenerate. 24154 * configure: Regenerate. 24155 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it. 24156 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it. 24157 * config/avr/avr.opt (-mgas-isr-prologues): New option and... 24158 (TARGET_GASISR_PROLOGUES): ...target mask. 24159 * common/config/avr/avr-common.c 24160 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]: 24161 Set -mgas-isr-prologues. 24162 * config/avr/avr-passes.def (avr_pass_pre_proep): Add 24163 INSERT_PASS_BEFORE for it. 24164 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto. 24165 * config/avr/avr.c (avr_option_override) 24166 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES. 24167 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions. 24168 (avr_attribute_table) <no_gccisr>: Add new function attribute. 24169 (avr_set_current_function) <is_no_gccisr>: Init machine field. 24170 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data 24171 and rtl_opt_pass. 24172 (make_avr_pass_pre_proep): New function. 24173 (emit_push_sfr) <treg>: Add argument to function and use it 24174 instead of TMP_REG. 24175 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn 24176 and set machine->gasisr.yes. 24177 (avr_expand_epilogue) [machine->gasisr.yes]: Similar. 24178 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add 24179 __gcc_isr.n_pushed to .L__stack_usage. 24180 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to... 24181 (avr_asm_final_postscan_insn): ...this new static function. 24182 * config/avr/avr.h (machine_function) 24183 <is_no_gccisr, use_L__stack_usage>: New fields. 24184 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields. 24185 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum. 24186 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants. 24187 (gasisr, *gasisr): New expander and insn. 24188 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 24189 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec. 24190 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec. 24191 241922017-07-10 Richard Earnshaw <rearnsha@arm.com> 24193 24194 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes 24195 in quoted strings. 24196 241972017-07-10 Georg-Johann Lay <avr@gjlay.de> 24198 24199 Move jump-tables out of .text again. 24200 24201 PR target/81075 24202 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function. 24203 (ASM_OUTPUT_ADDR_VEC): New function. 24204 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0. 24205 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump 24206 INSN_ADDRESSes as asm comment. 24207 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment. 24208 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define. 24209 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec. 24210 * config/avr/avr.md (*tablejump): Adjust comment. 24211 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. 24212 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>: 24213 New detail. 24214 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto. 24215 (avr_output_addr_vec): New proto. 24216 (avr_log_t) <insn_addresses>: New field. 24217 242182017-07-09 H.J. Lu <hongjiu.lu@intel.com> 24219 24220 PR target/81313 24221 * config/i386/i386.c (ix86_function_arg_advance): Set 24222 outgoing_args_on_stack to true if there are outgoing arguments 24223 on stack. 24224 (ix86_function_arg): Likewise. 24225 (ix86_get_drap_rtx): Use DRAP only if there are outgoing 24226 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false. 24227 * config/i386/i386.h (machine_function): Add 24228 outgoing_args_on_stack. 24229 242302017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com> 24231 24232 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not 24233 supporting pthreds. 24234 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads. 24235 242362017-07-08 Richard Sandiford <richard.sandiford@linaro.org> 24237 24238 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H) 24239 (REAL_H): Remove $(MACHMODE_H). 24240 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and 24241 double-int.h. 24242 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h, 24243 $(MACHMODE_H) and double-int.h. 24244 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than 24245 $(MACHMODE_H). 24246 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on 24247 double-int.h. 24248 242492017-07-07 Andrew Pinski <apinski@cavium.com> 24250 24251 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check 24252 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH. 24253 242542017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> 24255 24256 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher): 24257 Add warning if GCC was not configured to link against a GLIBC that 24258 exports the hardware capability bits. 24259 (make_resolver_func): Make resolver function private and not a 24260 COMDAT function. Create the name with clone_function_name instead 24261 of make_unique_name. 24262 24263 PR target/81348 24264 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the 24265 correct operand in doing the split. 24266 242672017-07-07 Carl Love <cel@us.ibm.com> 24268 24269 * config/rs6000/rs6000-c: Add support for built-in function 24270 vector unsigned short vec_pack_to_short_fp32 (vector float, 24271 vector float). 24272 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add 24273 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions. 24274 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define. 24275 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC. 24276 (convert_4f32_8i16): Add define_expand. 24277 * doc/extend.texi: Update the built-in documentation file for the 24278 new built-in function. 24279 242802017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24281 24282 * config/sparc/m8.md: New file. 24283 * config/sparc/sparc.md: Include m8.md. 24284 242852017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24286 24287 * config/sparc/sparc.opt: New option -mvis4b. 24288 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B. 24289 (sparc_option_override): Handle VIS4B. 24290 (enum sparc_builtins): Define 24291 SPARC_BUILTIN_DICTUNPACK{8,16,32}, 24292 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL, 24293 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL, 24294 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and 24295 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL. 24296 (check_constant_argument): New function. 24297 (sparc_vis_init_builtins): Define builtins 24298 __builtin_vis_dictunpack{8,16,32}, 24299 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl, 24300 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl, 24301 __builtin_vis_fpcmpde{8,16,32}shl and 24302 __builtin_vis_fpcmpur{8,16,32}shl. 24303 (sparc_expand_builtin): Check that the constant operands to 24304 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed 24305 constant and in range. 24306 * config/sparc/sparc-c.c (sparc_target_macros): Handle 24307 TARGET_VIS4B. 24308 * config/sparc/sparc.h (SPARC_IMM2_P): Define. 24309 (SPARC_IMM5_P): Likewise. 24310 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b". 24311 (enabled): Handle vis4b. 24312 (UNSPEC_DICTUNPACK): New unspec. 24313 (UNSPEC_FPCMPSHL): Likewise. 24314 (UNSPEC_FPUCMPSHL): Likewise. 24315 (UNSPEC_FPCMPDESHL): Likewise. 24316 (UNSPEC_FPCMPURSHL): Likewise. 24317 (cpu_feature): New CPU feature `vis4b'. 24318 (dictunpack{8,16,32}): New insns. 24319 (FPCSMODE): New mode iterator. 24320 (fpcscond): New code iterator. 24321 (fpcsucond): Likewise. 24322 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns. 24323 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise. 24324 (fpcmpde{8,16,32}{si,di}shl): Likewise. 24325 (fpcmpur{8,16,32}{si,di}shl): Likewise. 24326 * config/sparc/constraints.md: Define constraints `q' for unsigned 24327 2-bit integer constants and `t' for unsigned 5-bit integer 24328 constants. 24329 * config/sparc/predicates.md (imm5_operand_dictunpack8): New 24330 predicate. 24331 (imm5_operand_dictunpack16): Likewise. 24332 (imm5_operand_dictunpack32): Likewise. 24333 (imm2_operand): Likewise. 24334 * doc/invoke.texi (SPARC Options): Document -mvis4b. 24335 * doc/extend.texi (SPARC VIS Built-in Functions): Document the 24336 ditunpack* and fpcmp*shl builtins. 24337 243382017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24339 24340 * config.gcc: Handle m8 in --with-{cpu,tune} options. 24341 * config.in: Add HAVE_AS_SPARC6 define. 24342 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC 24343 M8. 24344 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for 24345 TARGET_CPU_m8. 24346 (ASM_CPU32_DEFAUILT_SPEC): Likewise. 24347 (CPP_CPU_SPEC): Handle m8. 24348 (ASM_CPU_SPEC): Likewise. 24349 * config/sparc/sparc-opts.h (enum processor_type): Add 24350 PROCESSOR_M8. 24351 * config/sparc/sparc.c (m8_costs): New struct. 24352 (sparc_option_override): Handle TARGET_CPU_m8. 24353 (sparc32_initialize_trampoline): Likewise. 24354 (sparc64_initialize_trampoline): Likewise. 24355 (sparc_issue_rate): Likewise. 24356 (sparc_register_move_cost): Likewise. 24357 * config/sparc/sparc.h (TARGET_CPU_m8): Define. 24358 (CPP_CPU64_DEFAULT_SPEC): Define for M8. 24359 (ASM_CPU64_DEFAULT_SPEC): Likewise. 24360 (CPP_CPU_SPEC): Handle M8. 24361 (ASM_CPU_SPEC): Likewise. 24362 (AS_M8_FLAG): Define. 24363 * config/sparc/sparc.md: Add m8 to the cpu attribute. 24364 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets. 24365 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for 24366 M8 instructions. 24367 * configure: Regenerate. 24368 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and 24369 -mtune=m8. 24370 243712017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24372 24373 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn 24374 subtypes. 24375 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute. 24376 ("*movdi_insn_sp32"): Do not set v3pipe. 24377 ("*movsi_insn"): Likewise. 24378 ("*movdi_insn_sp64"): Likewise. 24379 ("*movsf_insn"): Likewise. 24380 ("*movdf_insn_sp32"): Likewise. 24381 ("*movdf_insn_sp64"): Likewise. 24382 ("*zero_extendsidi2_insn_sp64"): Likewise. 24383 ("*sign_extendsidi2_insn"): Likewise. 24384 ("*mov<VM32:mode>_insn"): Likewise. 24385 ("*mov<VM64:mode>_insn_sp64"): Likewise. 24386 ("*mov<VM64:mode>_insn_sp32"): Likewise. 24387 ("<plusminus_insn><VADDSUB:mode>3"): Likewise. 24388 ("<vlop:code><VL:mode>3"): Likewise. 24389 ("*not_<vlop:code><VL:mode>3"): Likewise. 24390 ("*nand<VL:mode>_vis"): Likewise. 24391 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise. 24392 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise. 24393 ("one_cmpl<VL:mode>2"): Likewise. 24394 ("faligndata<VM64:mode>_vis"): Likewise. 24395 ("alignaddrsi_vis"): Likewise. 24396 ("alignaddrdi_vis"): Likweise. 24397 ("alignaddrlsi_vis"): Likewise. 24398 ("alignaddrldi_vis"): Likewise. 24399 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. 24400 ("bmaskdi_vis"): Likewise. 24401 ("bmasksi_vis"): Likewise. 24402 ("bshuffle<VM64:mode>_vis"): Likewise. 24403 ("cmask8<P:mode>_vis"): Likewise. 24404 ("cmask16<P:mode>_vis"): Likewise. 24405 ("cmask32<P:mode>_vis"): Likewise. 24406 ("pdistn<P:mode>_vis"): Likewise. 24407 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. 24408 244092017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24410 24411 * config/sparc/sparc.md ("subtype"): New insn attribute. 24412 ("*wrgsr_sp64"): Set insn subtype. 24413 ("*rdgsr_sp64"): Likewise. 24414 ("alignaddrsi_vis"): Likewise. 24415 ("alignaddrdi_vis"): Likewise. 24416 ("alignaddrlsi_vis"): Likewise. 24417 ("alignaddrldi_vis"): Likewise. 24418 ("<plusminus_insn><VADDSUB:mode>3"): Likewise. 24419 ("fexpand_vis"): Likewise. 24420 ("fpmerge_vis"): Likewise. 24421 ("faligndata<VM64:mode>_vis"): Likewise. 24422 ("bshuffle<VM64:mode>_vis"): Likewise. 24423 ("cmask8<P:mode>_vis"): Likewise. 24424 ("cmask16<P:mode>_vis"): Likewise. 24425 ("cmask32<P:mode>_vis"): Likewise. 24426 ("fchksm16_vis"): Likewise. 24427 ("v<vis3_shift_patname><GCM:mode>3"): Likewise. 24428 ("fmean16_vis"): Likewise. 24429 ("fp<plusminus_insn>64_vis"): Likewise. 24430 ("<plusminus_insn>v8qi3"): Likewise. 24431 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. 24432 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise. 24433 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise. 24434 ("<vis3_addsub_ss_patname>v8qi3"): Likewise. 24435 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise. 24436 ("*movqi_insn"): Likewise. 24437 ("*movhi_insn"): Likewise. 24438 ("*movsi_insn"): Likewise. 24439 ("movsi_pic_gotdata_op"): Likewise. 24440 ("*movdi_insn_sp32"): Likewise. 24441 ("*movdi_insn_sp64"): Likewise. 24442 ("movdi_pic_gotdata_op"): Likewise. 24443 ("*movsf_insn"): Likewise. 24444 ("*movdf_insn_sp32"): Likewise. 24445 ("*movdf_insn_sp64"): Likewise. 24446 ("*zero_extendhisi2_insn"): Likewise. 24447 ("*zero_extendqihi2_insn"): Likewise. 24448 ("*zero_extendqisi2_insn"): Likewise. 24449 ("*zero_extendqidi2_insn"): Likewise. 24450 ("*zero_extendhidi2_insn"): Likewise. 24451 ("*zero_extendsidi2_insn_sp64"): Likewise. 24452 ("ldfsr"): Likewise. 24453 ("prefetch_64"): Likewise. 24454 ("prefetch_32"): Likewise. 24455 ("tie_ld32"): Likewise. 24456 ("tie_ld64"): Likewise. 24457 ("*tldo_ldub_sp32"): Likewise. 24458 ("*tldo_ldub1_sp32"): Likewise. 24459 ("*tldo_ldub2_sp32"): Likewise. 24460 ("*tldo_ldub_sp64"): Likewise. 24461 ("*tldo_ldub1_sp64"): Likewise. 24462 ("*tldo_ldub2_sp64"): Likewise. 24463 ("*tldo_ldub3_sp64"): Likewise. 24464 ("*tldo_lduh_sp32"): Likewise. 24465 ("*tldo_lduh1_sp32"): Likewise. 24466 ("*tldo_lduh_sp64"): Likewise. 24467 ("*tldo_lduh1_sp64"): Likewise. 24468 ("*tldo_lduh2_sp64"): Likewise. 24469 ("*tldo_lduw_sp32"): Likewise. 24470 ("*tldo_lduw_sp64"): Likewise. 24471 ("*tldo_lduw1_sp64"): Likewise. 24472 ("*tldo_ldx_sp64"): Likewise. 24473 ("*mov<VM32:mode>_insn"): Likewise. 24474 ("*mov<VM64:mode>_insn_sp64"): Likewise. 24475 ("*mov<VM64:mode>_insn_sp32"): Likewise. 24476 244772017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24478 24479 * config/sparc/sparc.md ("type"): New insn type viscmp. 24480 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to 24481 viscmp. 24482 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise. 24483 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise. 24484 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. 24485 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle 24486 viscmp. 24487 ("n7_vis_logical_11cycle"): Likewise. 24488 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise. 24489 * config/sparc/niagara2.md ("niag3_vis": Likewise. 24490 * config/sparc/niagara.md ("niag_vis"): Likewise. 24491 * config/sparc/ultra3.md ("us3_fga"): Likewise. 24492 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise. 24493 244942017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> 24495 24496 * config/sparc/sparc.md: New instruction type `bmask'. 24497 (bmaskdi_vis): Use the `bmask' type. 24498 (bmasksi_vis): Likewise. 24499 * config/sparc/ultra3.md (us3_array): Likewise. 24500 * config/sparc/niagara7.md (n7_array): Likewise. 24501 * config/sparc/niagara4.md (n4_array): Likewise. 24502 * config/sparc/niagara2.md (niag2_vis): Likewise. 24503 (niag3_vis): Likewise. 24504 * config/sparc/niagara.md (niag_vis): Likewise. 24505 245062017-07-06 Jan Hubicka <hubicka@ucw.cz> 24507 24508 * ipa-comdats.c: Remove optimize check from gate. 24509 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary 24510 for functions not optimized. 24511 (ipa_fn_summary_read): Skip optimize check. 24512 (ipa_fn_summary_write): Likewise. 24513 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller 24514 is optimized. 24515 * ipa-inline.c (can_inline_edge_p): Not optimized functions are 24516 uninlinable. 24517 (can_inline_edge_p): Check flag_pcc_struct_return for match. 24518 (check_callers): Give up on caller which is not optimized. 24519 (inline_small_functions): Likewise. 24520 (ipa_inline): Do not give up when not optimizing. 24521 * ipa-visbility.c (function_and_variable_visibility): Do not optimize 24522 away unoptimizes cdtors. 24523 (whole_program_function_and_variable_visibility): Do 24524 ipa_discover_readonly_nonaddressable_vars in LTO mode. 24525 * ipa.c (process_references): Do not check optimize. 24526 (symbol_table::remove_unreachable_nodes): Update optimize check. 24527 (set_writeonly_bit): Update optimize check. 24528 (pass_ipa_cdtor_merge::gate): Do not check optimize. 24529 (pass_ipa_single_use::gate): Remove. 24530 245312017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 24532 24533 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p, 24534 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p, 24535 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps, 24536 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index, 24537 permute_load, permute_store, adjust_extract, adjust_splat, 24538 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables, 24539 replace_swap_with_copy, dump_swap_insn_table, 24540 alignment_with_canonical_addr, alignment_mask, find_alignment_op, 24541 recombine_lvx_pattern, recombine_stvx_pattern, 24542 recombine_lvx_stvx_patterns, rs6000_analyze_swaps, 24543 make_pass_analyze_swaps): Move all code related to p8 swap optimizations 24544 to file rs6000-p8swap.c. 24545 * config/rs6000/rs6000-p8swap.c: New file. 24546 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o. 24547 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-* 24548 and rs6000*-*-* targets. 24549 245502017-07-06 David Malcolm <dmalcolm@redhat.com> 24551 24552 * Makefile.in (selftest): Remove dependency on s-selftest-c++. 24553 245542017-07-06 Jan Hubicka <hubicka@ucw.cz> 24555 24556 * lto-wrapper.c (merge_and_complain): Do not merge 24557 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno, 24558 fsigned_zeros, ftrapping_math, fwrapv. 24559 (append_compiler_options): Do not track these options. 24560 (append_linker_options): Likewie 24561 245622017-07-06 Jan Hubicka <hubicka@ucw.cz> 24563 24564 * cgraphunit.c (cgraph_node::finalize_function): When 24565 !flag_toplevel_reorde set no_reorder flag. 24566 (varpool_node::finalize_decl): Likewise. 24567 (symbol_table::compile): Drop no toplevel reorder path. 24568 245692017-07-06 Jan Hubicka <hubicka@ucw.cz> 24570 24571 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh 24572 edges; zero probability is not better than uninitialized. 24573 245742017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> 24575 24576 * asan.h (asan_sanitize_allocas_p): Declare. 24577 * asan.c (asan_sanitize_allocas_p): New function. 24578 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p. 24579 (handle_builtin_alloca): Likewise. 24580 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff 24581 if !asan_sanitize_allocas_p. 24582 * params.def (asan-instrument-allocas): Add new option. 24583 * params.h (ASAN_PROTECT_ALLOCAS): Define. 24584 * opts.c (common_handle_option): Disable allocas sanitization for 24585 KASan by default. 24586 245872017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> 24588 24589 * asan.c: Include gimple-fold.h. 24590 (get_last_alloca_addr): New function. 24591 (handle_builtin_stackrestore): Likewise. 24592 (handle_builtin_alloca): Likewise. 24593 (asan_emit_allocas_unpoison): Likewise. 24594 (get_mem_refs_of_builtin_call): Add new parameter, remove const 24595 quallifier from first paramerer. Handle BUILT_IN_ALLOCA, 24596 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins. 24597 (instrument_builtin_call): Pass gimple iterator to 24598 get_mem_refs_of_builtin_call. 24599 (last_alloca_addr): New global. 24600 * asan.h (asan_emit_allocas_unpoison): Declare. 24601 * builtins.c (expand_asan_emit_allocas_unpoison): New function. 24602 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON. 24603 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison 24604 if function calls alloca. 24605 * gimple-fold.c (replace_call_with_value): Remove static keyword. 24606 * gimple-fold.h (replace_call_with_value): Declare. 24607 * internal-fn.c: Include asan.h. 24608 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON, 24609 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins. 24610 246112017-07-06 David Malcolm <dmalcolm@redhat.com> 24612 24613 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to... 24614 (C_SELFTEST_FLAGS): New. 24615 (CPP_SELFTEST_FLAGS): New. 24616 (SELFTEST_DEPS): New, from deps of s-selftest. 24617 (C_SELFTEST_DEPS): New, from deps of s-selftest. 24618 (CPP_SELFTEST_DEPS): New. 24619 (selftest): Add dependency on s-selftest-c++. 24620 (s-selftest): Rename to... 24621 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS 24622 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather 24623 than SELFTEST_FLAGS. 24624 (selftest-gdb): Rename to... 24625 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and 24626 C_SELFTEST_FLAGS. 24627 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb. 24628 (selftest-valgrind): Rename to... 24629 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and 24630 C_SELFTEST_FLAGS. 24631 (selftest-valgrind): Reintroduce as an alias for 24632 selftest-c-valgrind. 24633 (s-selftest-c++): New. 24634 (selftest-c++-gdb): New. 24635 (selftest-c++-valgrind): New. 24636 246372017-07-06 Olivier Hainque <hainque@adacore.com> 24638 24639 * gcc.c (process_command): When deciding if undefined variables 24640 should be ignored when processing specs, accept "gcc -v" as well. 24641 246422017-07-06 Jan Hubicka <hubicka@ucw.cz> 24643 24644 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge, 24645 afdo_annotate_cfg): Set counts/probabilities as determined by afdo. 24646 246472017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com> 24648 24649 * config/arm/arm-cpus.in (armv8-r): Add new entry. 24650 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro. 24651 * config/arm/arm-tables.opt: Regenerate. 24652 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R 24653 enumerator. 24654 * doc/invoke.texi: Mention -march=armv8-r and its extensions. 24655 246562017-07-06 Carl Love <cel@us.ibm.com> 24657 24658 * ChangeLog: Clean up from mid air collision 24659 246602017-07-06 Carl Love <cel@us.ibm.com> 24661 24662 * config/rs6000/rs6000-c.c: Add support for built-in functions 24663 vector signed int vec_subc (vector signed int, vector signed int); 24664 vector signed __int128 vec_subc (vector signed __int128, 24665 vector signed __int128); 24666 vector unsigned __int128 vec_subc (vector unsigned __int128, 24667 vector unsigned __int128); 24668 vector signed int vec_sube (vector signed int, vector signed int, 24669 vector signed int); 24670 vector unsigned int vec_sube (vector unsigned int, 24671 vector unsigned int, 24672 vector unsigned int); 24673 vector signed __int128 vec_sube (vector signed __int128, 24674 vector signed __int128, 24675 vector signed__int128); 24676 vector unsigned __int128 vec_sube (vector unsigned __int128, 24677 vector unsigned __int128, 24678 vector unsigned __int128); 24679 vector signed int vec_subec (vector signed int, vector signed int, 24680 vector signed int); 24681 vector unsigned int vec_subec (vector unsigned int, 24682 vector unsigned int, 24683 vector unsigned int); 24684 vector signed __int128 vec_subec (vector signed __int128, 24685 vector signed __int128, 24686 vector signed__int128); 24687 vector unsigned __int128 vec_subec (vector unsigned __int128, 24688 vector unsigned __int128, 24689 vector unsigned __int128); 24690 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE, 24691 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins. 24692 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add 24693 BU_ALTIVEC_OVERLOAD_X definitions. 24694 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines. 24695 * doc/extend.texi: Update the built-in documentation file for the new 24696 built-in functions. 24697 246982017-07-06 David Malcolm <dmalcolm@redhat.com> 24699 24700 PR c++/79300 24701 * diagnostic-show-locus.c (layout::layout): Use start and finish 24702 spelling location for the start and finish of each range. 24703 * genmatch.c (linemap_client_expand_location_to_spelling_point): 24704 Add unused aspect param. 24705 * input.c (expand_location_1): Add "aspect" param, and use it 24706 to access the correct part of the location. 24707 (expand_location): Pass LOCATION_ASPECT_CARET to new param of 24708 expand_location_1. 24709 (expand_location_to_spelling_point): Likewise. 24710 (linemap_client_expand_location_to_spelling_point): Add "aspect" 24711 param, and pass it to expand_location_1. 24712 247132017-07-06 Sebastian Peryt <sebastian.peryt@intel.com> 24714 24715 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss, 24716 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd, 24717 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd, 24718 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss, 24719 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss, 24720 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd, 24721 _mm_maskz_getmant_sd, _mm_mask_getmant_ss, 24722 _mm_maskz_getmant_ss): New intrinsics. 24723 (__builtin_ia32_getexpss128_mask): Changed to ... 24724 __builtin_ia32_getexpss128_round ... this. 24725 (__builtin_ia32_getexpsd128_mask): Changed to ... 24726 __builtin_ia32_getexpsd128_round ... this. 24727 * config/i386/i386-builtin-types.def 24728 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT), 24729 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases. 24730 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round, 24731 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round, 24732 __builtin_ia32_getmantss_mask_round): New builtins. 24733 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT, 24734 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types. 24735 (CODE_FOR_avx512f_vgetmantv2df_mask_round, 24736 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases. 24737 * config/i386/sse.md 24738 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ... 24739 avx512f_sgetexp<mode><mask_scalar_name> 24740 <round_saeonly_scalar_name> ... this. 24741 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0| 24742 %0, %1, %2<round_saeonly_op3>}): Changed to ... 24743 vgetexp<ssescalarmodesuffix> 24744 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| 24745 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this. 24746 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ... 24747 avx512f_vgetmant<mode><mask_scalar_name> 24748 <round_saeonly_scalar_name> ... this. 24749 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| 24750 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ... 24751 vgetmant<ssescalarmodesuffix> 24752 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>| 24753 %0<mask_scalar_operand4>, %1, %2 24754 <round_saeonly_scalar_mask_op4>, %3} ... this. 24755 * config/i386/subst.md (mask_scalar_operand4, 24756 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4, 24757 round_saeonly_scalar_nimm_predicate): New subst attributes. 24758 247592017-07-06 Julia Koval <julia.koval@intel.com> 24760 24761 * config/i386/i386.c (ix86_erase_embedded_rounding): 24762 Remove code for old rounding pattern. 24763 247642017-07-06 Richard Earnshaw <rearnsha@arm.com> 24765 24766 * config/arm/t-arm (GTM_H): Add arm-cpu.h. 24767 247682017-07-06 Christophe Lyon <christophe.lyon@linaro.org> 24769 24770 * doc/sourcebuild.texi (Test Directives, Variants of 24771 dg-require-support): Add documentation for dg-require-stack-check. 24772 247732017-07-05 Sebastian Peryt <sebastian.peryt@intel.com> 24774 24775 * config/i386/subst.md (mask_scalar, round_scalar, 24776 round_saeonly_scalar): New meta-templates. 24777 (mask_scalar_name, mask_scalar_operand3, round_scalar_name, 24778 round_scalar_mask_operand3, round_scalar_mask_op3, 24779 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name, 24780 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3, 24781 round_saeonly_scalar_constraint, 24782 round_saeonly_scalar_prefix): New subst attribute. 24783 * config/i386/sse.md 24784 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ... 24785 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name> 24786 <round_scalar_name> ... this. 24787 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ... 24788 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name> 24789 <round_scalar_name> ... this. 24790 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ... 24791 <sse>_vm<code><mode>3<mask_scalar_name> 24792 <round_saeonly_scalar_name> ... this. 24793 (v<plusminus_mnemonic><ssescalarmodesuffix> 24794 \t{<round_mask_op3>%2, %1, %0<mask_operand3>| 24795 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... 24796 v<plusminus_mnemonic><ssescalarmodesuffix> 24797 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| 24798 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. 24799 (v<multdiv_mnemonic><ssescalarmodesuffix> 24800 \t{<round_mask_op3>%2, %1, %0<mask_operand3>| 24801 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... 24802 v<multdiv_mnemonic><ssescalarmodesuffix> 24803 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| 24804 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. 24805 (v<maxmin_float><ssescalarmodesuffix> 24806 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>| 24807 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ... 24808 v<maxmin_float><ssescalarmodesuffix> 24809 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| 24810 %0<mask_scalar_operand3>, %1, %<iptr>2 24811 <round_saeonly_scalar_mask_op3>} ... this. 24812 248132017-07-05 Richard Earnshaw <rearnsha@arm.com> 24814 24815 * config/arm/arm.c (arm_fixed_condition_code_regs): New function. 24816 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine. 24817 248182017-07-05 Richard Sandiford <richard.sandiford@linaro.org> 24819 Alan Hayward <alan.hayward@arm.com> 24820 David Sherwood <david.sherwood@arm.com> 24821 24822 * combine.c (simplify_if_then_else): Remove "enum" before 24823 "machine_mode". 24824 * compare-elim.c (can_eliminate_compare): Likewise. 24825 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): 24826 Likewise. 24827 (aarch64_lookup_simd_builtin_type): Likewise. 24828 (aarch64_simd_builtin_type): Likewise. 24829 (aarch64_init_simd_builtin_types): Likewise. 24830 (aarch64_simd_expand_args): Likewise. 24831 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist): 24832 Likewise. 24833 (aarch64_reverse_mask): Likewise. 24834 (aarch64_simd_emit_reg_reg_move): Likewise. 24835 (aarch64_gen_adjusted_ldpstp): Likewise. 24836 (aarch64_ccmp_mode_to_code): Likewise. 24837 (aarch64_operands_ok_for_ldpstp): Likewise. 24838 (aarch64_operands_adjust_ok_for_ldpstp): Likewise. 24839 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): 24840 Likewise. 24841 (aarch64_min_divisions_for_recip_mul): Likewise. 24842 (aarch64_reassociation_width): Likewise. 24843 (aarch64_get_condition_code_1): Likewise. 24844 (aarch64_simd_emit_reg_reg_move): Likewise. 24845 (aarch64_simd_attr_length_rglist): Likewise. 24846 (aarch64_reverse_mask): Likewise. 24847 (aarch64_operands_ok_for_ldpstp): Likewise. 24848 (aarch64_operands_adjust_ok_for_ldpstp): Likewise. 24849 (aarch64_gen_adjusted_ldpstp): Likewise. 24850 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename): 24851 Likewise. 24852 * config/arc/arc.c (legitimate_offset_address_p): Likewise. 24853 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. 24854 (arm_lookup_simd_builtin_type): Likewise. 24855 (arm_simd_builtin_type): Likewise. 24856 (arm_init_simd_builtin_types): Likewise. 24857 (arm_expand_builtin_args): Likewise. 24858 * config/arm/arm-protos.h (arm_expand_builtin): Likewise. 24859 * config/ft32/ft32.c (ft32_libcall_value): Likewise. 24860 (ft32_setup_incoming_varargs): Likewise. 24861 (ft32_function_arg): Likewise. 24862 (ft32_function_arg_advance): Likewise. 24863 (ft32_pass_by_reference): Likewise. 24864 (ft32_arg_partial_bytes): Likewise. 24865 (ft32_valid_pointer_mode): Likewise. 24866 (ft32_addr_space_pointer_mode): Likewise. 24867 (ft32_addr_space_legitimate_address_p): Likewise. 24868 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): 24869 Likewise. 24870 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. 24871 (ix86_emit_outlined_ms2sysv_restore): Likewise. 24872 (iamcu_alignment): Likewise. 24873 (canonicalize_vector_int_perm): Likewise. 24874 (ix86_noce_conversion_profitable_p): Likewise. 24875 (ix86_mpx_bound_mode): Likewise. 24876 (ix86_operands_ok_for_move_multiple): Likewise. 24877 * config/microblaze/microblaze-protos.h 24878 (microblaze_expand_conditional_branch_reg): Likewise. 24879 * config/microblaze/microblaze.c 24880 (microblaze_expand_conditional_branch_reg): Likewise. 24881 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): 24882 Likewise. 24883 (rs6000_reassociation_width): Likewise. 24884 (rs6000_invalid_binary_op): Likewise. 24885 (fusion_p9_p): Likewise. 24886 (emit_fusion_p9_load): Likewise. 24887 (emit_fusion_p9_store): Likewise. 24888 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p): 24889 Likewise. 24890 (riscv_hard_regno_mode_ok_p): Likewise. 24891 (riscv_address_insns): Likewise. 24892 (riscv_split_symbol): Likewise. 24893 (riscv_legitimize_move): Likewise. 24894 (riscv_function_value): Likewise. 24895 (riscv_hard_regno_nregs): Likewise. 24896 (riscv_expand_builtin): Likewise. 24897 * config/riscv/riscv.c (riscv_build_integer_1): Likewise. 24898 (riscv_build_integer): Likewise. 24899 (riscv_split_integer): Likewise. 24900 (riscv_legitimate_constant_p): Likewise. 24901 (riscv_cannot_force_const_mem): Likewise. 24902 (riscv_regno_mode_ok_for_base_p): Likewise. 24903 (riscv_valid_base_register_p): Likewise. 24904 (riscv_valid_offset_p): Likewise. 24905 (riscv_valid_lo_sum_p): Likewise. 24906 (riscv_classify_address): Likewise. 24907 (riscv_legitimate_address_p): Likewise. 24908 (riscv_address_insns): Likewise. 24909 (riscv_load_store_insns): Likewise. 24910 (riscv_force_binary): Likewise. 24911 (riscv_split_symbol): Likewise. 24912 (riscv_force_address): Likewise. 24913 (riscv_legitimize_address): Likewise. 24914 (riscv_move_integer): Likewise. 24915 (riscv_legitimize_const_move): Likewise. 24916 (riscv_legitimize_move): Likewise. 24917 (riscv_address_cost): Likewise. 24918 (riscv_subword): Likewise. 24919 (riscv_output_move): Likewise. 24920 (riscv_canonicalize_int_order_test): Likewise. 24921 (riscv_emit_int_order_test): Likewise. 24922 (riscv_function_arg_boundary): Likewise. 24923 (riscv_pass_mode_in_fpr_p): Likewise. 24924 (riscv_pass_fpr_single): Likewise. 24925 (riscv_pass_fpr_pair): Likewise. 24926 (riscv_get_arg_info): Likewise. 24927 (riscv_function_arg): Likewise. 24928 (riscv_function_arg_advance): Likewise. 24929 (riscv_arg_partial_bytes): Likewise. 24930 (riscv_function_value): Likewise. 24931 (riscv_pass_by_reference): Likewise. 24932 (riscv_setup_incoming_varargs): Likewise. 24933 (riscv_print_operand): Likewise. 24934 (riscv_elf_select_rtx_section): Likewise. 24935 (riscv_save_restore_reg): Likewise. 24936 (riscv_for_each_saved_reg): Likewise. 24937 (riscv_register_move_cost): Likewise. 24938 (riscv_hard_regno_mode_ok_p): Likewise. 24939 (riscv_hard_regno_nregs): Likewise. 24940 (riscv_class_max_nregs): Likewise. 24941 (riscv_memory_move_cost): Likewise. 24942 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise. 24943 * config/rl78/rl78.c (rl78_split_movsi): Likewise. 24944 (rl78_addr_space_address_mode): Likewise. 24945 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 24946 Likewise. 24947 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. 24948 (rs6000_reassociation_width): Likewise. 24949 (rs6000_invalid_binary_op): Likewise. 24950 (fusion_p9_p): Likewise. 24951 (emit_fusion_p9_load): Likewise. 24952 (emit_fusion_p9_store): Likewise. 24953 * config/visium/visium-protos.h (prepare_move_operands): Likewise. 24954 (ok_for_simple_move_operands): Likewise. 24955 (ok_for_simple_move_strict_operands): Likewise. 24956 (ok_for_simple_arith_logic_operands): Likewise. 24957 (visium_legitimize_reload_address): Likewise. 24958 (visium_select_cc_mode): Likewise. 24959 (output_cbranch): Likewise. 24960 (visium_split_double_move): Likewise. 24961 (visium_expand_copysign): Likewise. 24962 (visium_expand_int_cstore): Likewise. 24963 (visium_expand_fp_cstore): Likewise. 24964 * config/visium/visium.c (visium_pass_by_reference): Likewise. 24965 (visium_function_arg): Likewise. 24966 (visium_function_arg_advance): Likewise. 24967 (visium_libcall_value): Likewise. 24968 (visium_setup_incoming_varargs): Likewise. 24969 (visium_legitimate_constant_p): Likewise. 24970 (visium_legitimate_address_p): Likewise. 24971 (visium_legitimize_address): Likewise. 24972 (visium_secondary_reload): Likewise. 24973 (visium_register_move_cost): Likewise. 24974 (visium_memory_move_cost): Likewise. 24975 (prepare_move_operands): Likewise. 24976 (ok_for_simple_move_operands): Likewise. 24977 (ok_for_simple_move_strict_operands): Likewise. 24978 (ok_for_simple_arith_logic_operands): Likewise. 24979 (visium_function_value_1): Likewise. 24980 (rtx_ok_for_offset_p): Likewise. 24981 (visium_legitimize_reload_address): Likewise. 24982 (visium_split_double_move): Likewise. 24983 (visium_expand_copysign): Likewise. 24984 (visium_expand_int_cstore): Likewise. 24985 (visium_expand_fp_cstore): Likewise. 24986 (visium_split_cstore): Likewise. 24987 (visium_select_cc_mode): Likewise. 24988 (visium_split_cbranch): Likewise. 24989 (output_cbranch): Likewise. 24990 (visium_print_operand_address): Likewise. 24991 * expmed.c (flip_storage_order): Likewise. 24992 * expmed.h (emit_cstore): Likewise. 24993 (flip_storage_order): Likewise. 24994 * genrecog.c (validate_pattern): Likewise. 24995 * hsa-gen.c (gen_hsa_addr): Likewise. 24996 * internal-fn.c (expand_arith_overflow): Likewise. 24997 * ira-color.c (allocno_copy_cost_saving): Likewise. 24998 * lra-assigns.c (find_hard_regno_for_1): Likewise. 24999 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. 25000 (process_invariant_for_inheritance): Likewise. 25001 * lra-eliminations.c (move_plus_up): Likewise. 25002 * omp-low.c (lower_oacc_reductions): Likewise. 25003 * simplify-rtx.c (simplify_subreg): Likewise. 25004 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. 25005 (TARGET_CHKP_BOUND_MODE): Likewise.. 25006 * targhooks.c (default_chkp_bound_mode): Likewise. 25007 (default_setup_incoming_vararg_bounds): Likewise. 25008 * targhooks.h (default_chkp_bound_mode): Likewise. 25009 (default_setup_incoming_vararg_bounds): Likewise. 25010 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise. 25011 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. 25012 (have_whole_vector_shift): Likewise. 25013 * tree-vect-stmts.c (vectorizable_load): Likewise. 25014 * doc/tm.texi: Regenerate. 25015 250162017-07-05 Georg-Johann Lay <avr@gjlay.de> 25017 25018 Graceful degrade if Binutils PR21472 is not available. 25019 25020 PR target/81072 25021 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3 25022 .rodata in flash test fails. 25023 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes. 25024 * confgure: Regenerate. 25025 * config.in: Regenerate. 25026 * config/avr/avr.c (avr_asm_named_section) 25027 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger 25028 __do_copy_data for stuff in .rodata if flash_pm_offset = 0. 25029 (avr_asm_init_sections): Same. 25030 250312017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25032 25033 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?. 25034 (fma<VH:mode>4_intrinsic): Likewise. 25035 (*fmsub<VCVTF:mode>4): Likewise. 25036 (*fmsub<VH:mode>4_intrinsic): Likewise. 25037 250382017-07-05 Georg-Johann Lay <avr@gjlay.de> 25039 25040 PR target/81305 25041 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]: 25042 Don't depend on "optimize > 0". 25043 (out_movhi_r_mr, out_movqi_mr_r): Same. 25044 (out_movhi_mr_r, out_movqi_r_mr): Same. 25045 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for 25046 io_address_operand on "optimize > 0". 25047 250482017-07-05 Bin Cheng <bin.cheng@arm.com> 25049 25050 * tree-loop-distribution.c: Add general explanantion on the pass. 25051 (generate_loops_for_partition): Mark distributed loop. 25052 (pg_add_dependence_edges): New parameter. Handle alias data 25053 dependence specially and record it in the parameter if asked. 25054 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs. 25055 (init_partition_graph_vertices, add_partition_graph_edge): New. 25056 (pg_skip_alias_edge, free_partition_graph_edata_cb): New. 25057 (free_partition_graph_vdata, build_partition_graph): New. 25058 (sort_partitions_by_post_order, merge_dep_scc_partitions): New. 25059 (pg_collect_alias_ddrs, break_alias_scc_partitions): New. 25060 (data_ref_segment_size, latch_dominated_by_data_ref): New. 25061 (compute_alias_check_pairs, version_loop_by_alias_check): New. 25062 (version_for_distribution_p, finalize_partitions): New. 25063 (distribute_loop): Handle alias data dependence specially. Factor 25064 out loop fusion code as functions and call these functions. 25065 250662017-07-05 Bin Cheng <bin.cheng@arm.com> 25067 25068 * tree-loop-distribution.c (classify_partition): New parameter and 25069 better handle reduction statement. 25070 (rdg_build_partitions): Revise comment. 25071 (distribute_loop): Compute statements in all partitions and pass it 25072 to classify_partition. 25073 250742017-07-05 Bin Cheng <bin.cheng@arm.com> 25075 25076 * tree-loop-distribution.c (enum partition_type): New. 25077 (struct partition): New field type. 25078 (partition_merge_into): Add parameter. Update partition type. 25079 (data_dep_in_cycle_p, update_type_for_merge): New functions. 25080 (build_rdg_partition_for_vertex): Compute partition type. 25081 (rdg_build_partitions): Dump partition type. 25082 (distribute_loop): Update calls to partition_merge_into. 25083 250842017-07-05 Bin Cheng <bin.cheng@arm.com> 25085 25086 * tree-loop-distribution.c (struct ddr_hasher): New. 25087 (ddr_hasher::hash, ::equal, get_data_dependence): New function. 25088 (ddrs_table): New. 25089 (classify_partition): Call get_data_dependence. 25090 (pg_add_dependence_edges): Ditto. 25091 (distribute_loop): Release data dependence hash table. 25092 250932017-07-05 Bin Cheng <bin.cheng@arm.com> 25094 25095 * tree-loop-distribution.c (ref_base_address): Delete. 25096 (similar_memory_accesses): Rename ... 25097 (share_memory_accesses): ... to this. Check if partitions access 25098 the same memory reference. 25099 (distribute_loop): Call share_memory_accesses. 25100 251012017-07-05 Bin Cheng <bin.cheng@arm.com> 25102 25103 * tree-loop-distribution.c (struct partition): New field recording 25104 its data reference. 25105 (partition_alloc, partition_free): Init and release data refs. 25106 (partition_merge_into): Merge data refs. 25107 (build_rdg_partition_for_vertex): Collect data refs for partition. 25108 (pg_add_dependence_edges): Change parameters from vector to bitmap. 25109 Update uses. 25110 (distribute_loop): Remve data refs from vertice data of partition 25111 graph. 25112 251132017-07-05 Bin Cheng <bin.cheng@arm.com> 25114 25115 * tree-loop-distribution.c (params.h): Include header file. 25116 (MAX_DATAREFS_NUM, DR_INDEX): New macro. 25117 (datarefs_vec): New global var. 25118 (create_rdg_vertices): Use datarefs_vec directly. 25119 (free_rdg): Don't free data references. 25120 (build_rdg): Update use. Don't free data references. 25121 (distribute_loop): Compute global variable for data references. 25122 Bail out if there are too many data references. 25123 251242017-07-05 Bin Cheng <bin.cheng@arm.com> 25125 25126 * tree-loop-distribution.c (loop_nest): New global var. 25127 (build_rdg): Use loop directly, rather than loop nest. 25128 (pg_add_dependence_edges): Remove loop nest parameter. Use global 25129 variable directly. 25130 (distribute_loop): Compute global variable loop nest. Update use. 25131 251322017-07-05 Bin Cheng <bin.cheng@arm.com> 25133 25134 * tree-loop-distribution.c (enum fuse_type, fuse_message): New. 25135 (partition_merge_into): New parameter. Dump reason for fusion. 25136 (distribute_loop): Update use of partition_merge_into. 25137 251382017-07-05 Bin Cheng <bin.cheng@arm.com> 25139 25140 * tree-loop-distribution.c (bb_top_order_index): New. 25141 (bb_top_order_index_size, bb_top_order_cmp): New. 25142 (stmts_from_loop): Use topological order. 25143 (pass_loop_distribution::execute): Compute and release topological 25144 order for basic blocks. 25145 251462017-07-05 Bin Cheng <bin.cheng@arm.com> 25147 25148 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip 25149 if no loops. 25150 251512017-07-05 Bin Cheng <bin.cheng@arm.com> 25152 25153 * cfgloop.h (struct loop): Add comment. New field orig_loop_num. 25154 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change. 25155 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function. 25156 * internal-fn.def (LOOP_DIST_ALIAS): New. 25157 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ... 25158 (fold_loop_internal_call): ... this. 25159 (vect_loop_dist_alias_call): New function. 25160 (set_uid_loop_bbs): Call fold_loop_internal_call. 25161 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS 25162 internal calls. 25163 251642017-07-04 Uros Bizjak <ubizjak@gmail.com> 25165 25166 PR target/81300 25167 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes): 25168 Require dead FLAGS_REG at the beginning of a peephole. 25169 251702017-07-04 Uros Bizjak <ubizjak@gmail.com> 25171 25172 PR target/81294 25173 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y 25174 arguments in the call to __builtin_ia32_sbb_u32. 25175 (_subborrow_u64): Swap _X and _Y arguments in the call to 25176 __builtin_ia32_sbb_u64. 25177 251782017-07-04 Jakub Jelinek <jakub@redhat.com> 25179 25180 PR debug/81278 25181 * tree-vrp.c (compare_assert_loc): Turn into a function template 25182 with stable template parameter. Only test if a->e is NULL, 25183 !a->e == !b->e has been verified already. Use e == NULL or 25184 e != NULL instead of e or ! e tests. If stable is true, don't use 25185 iterative_hash_expr, on the other side allow a or b or both NULL 25186 and sort the NULLs last. 25187 (process_assert_insertions): Sort using compare_assert_loc<false> 25188 instead of compare_assert_loc, later sort using 25189 compare_assert_loc<true> before calling process_assert_insertions_for 25190 in a loop. Use break instead of continue once seen NULL pointer. 25191 251922017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 25193 25194 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM 25195 Cortex-R7 and Cortex-R8 processors. 25196 251972017-07-04 Jan Hubicka <hubicka@ucw.cz> 25198 25199 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is 25200 uninitialized while src is not. 25201 252022017-07-04 Richard Earnshaw <rearnsha@arm.com> 25203 25204 * common/config/arm/arm-common.c: Adjust include path for 25205 arm-cpu-cdata.h 25206 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h. 25207 (arm-cpu.h): Create in build directory. Adjust dependency rules. 25208 (arm-cpu-data.h): Likewise. 25209 (arm-cpu-cdata.h): Likewise. 25210 * config/arm/arm-cpu.h: Delete. 25211 * config/arm/arm-cpu-cdata.h: Delete. 25212 * config/arm/arm-cpu-data.h: Delete. 25213 252142017-07-04 James Greenhalgh <james.greenhalgh@arm.com> 25215 25216 * config/arm/arm-cpus.in (cortex-a55): New. 25217 (cortex-a75): Likewise. 25218 (cortex-a75.cortex-a55): Likewise. 25219 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and 25220 cortex-a75. 25221 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75. 25222 * config/arm/arm-cpu-cdata.h: Regenerate. 25223 * config/arm/arm-cpu-data.h: Regenerate. 25224 * config/arm/arm-cpu.h: Regenerate. 25225 * config/arm/arm-tables.opt: Regenerate. 25226 * config/arm/arm-tune.md: Regenerate. 25227 252282017-07-04 Jan Hubicka <hubicka@ucw.cz> 25229 25230 * haifa-sched.c (sched_create_recovery_edges): Update profile. 25231 252322017-07-04 Jan Hubicka <hubicka@ucw.cz> 25233 25234 * bb-reorder.c (better_edge_p): Fix handling of uninitialized 25235 probability. 25236 252372017-07-04 Richard Sandiford <richard.sandiford@linaro.org> 25238 25239 PR tree-optimization/81292 25240 * tree-ssa-strlen.c (handle_builtin_strlen): When setting 25241 full_string_p, also call adjust_related_strinfos if the adjustment 25242 is simple, otherwise invalidate related strinfos. 25243 252442017-07-04 Martin Liska <mliska@suse.cz> 25245 25246 PR sanitizer/81040 25247 * sanopt.c (sanitize_rewrite_addressable_params): Mark the 25248 newly created variable as DECL_IGNORED_P. 25249 252502017-07-04 Martin Liska <mliska@suse.cz> 25251 25252 PR ipa/81293 25253 * ipa-inline.c (inline_small_functions): 25254 Use xstrdup_for_dump. 25255 252562017-07-04 Tom de Vries <tom@codesourcery.com> 25257 25258 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK. 25259 252602017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> 25261 25262 PR target/81033 25263 * config/darwin.c (darwin_function_switched_text_sections): 25264 Fix spaces. 25265 252662017-07-03 Jan Hubicka <hubicka@ucw.cz> 25267 25268 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up. 25269 252702017-07-03 Richard Earnshaw <rearnsha@arm.com> 25271 25272 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary. 25273 252742017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25275 25276 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound, 25277 min_profitable_iters, and th as inclusive lower bounds. 25278 Fix LOOP_VINFO_PEELING_FOR_GAPS condition. 25279 (vect_estimate_min_profitable_iters): Return inclusive lower bounds 25280 for min_profitable_iters and min_profitable_estimate. 25281 (vect_transform_loop): Treat th as an inclusive lower bound. 25282 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. 25283 252842017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> 25285 25286 PR target/81033 25287 * config/darwin.c (darwin_function_switched_text_sections): 25288 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw 25289 in two pieces, and suppress the use of buf. 25290 252912017-07-03 Nathan Sidwell <nathan@acm.org> 25292 25293 * hash-table.h (hash_table_mod1): Fix indentation. 25294 252952017-07-02 Jan Hubicka <hubicka@ucw.cz> 25296 25297 PR middle-end/81290 25298 * predict.c (force_edge_cold): Be more careful about propagation 25299 backward. 25300 * profile-count.h (profile_probability::guessed, 25301 profile_probability::fdo, profile_count::guessed, profile_count::fdo): 25302 New. 25303 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed. 25304 253052017-07-03 James Greenhalgh <james.greenhalgh@arm.com> 25306 25307 * doc/invoke.texi (rcpc architecture extension): Document it. 25308 253092017-07-03 Richard Biener <rguenther@suse.de> 25310 25311 PR tree-optimization/60510 25312 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in 25313 the scalar reduction PHI and use it. 25314 (vectorizable_reduction): Properly guard the single_defuse_cycle 25315 path for non-SLP reduction chains where we cannot use it. 25316 Rework reduc_def/index and vector type deduction. Rework 25317 vector operand gathering during reduction op code-gen. 25318 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction 25319 chains dissolve the chain and leave it to non-SLP reduction 25320 handling. 25321 253222017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25323 25324 * tree-data-ref.h (dr_alignment): Declare. 25325 * tree-data-ref.c (dr_alignment): New function. 25326 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned. 25327 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't 25328 set it. 25329 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment. 25330 253312017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25332 25333 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment 25334 and base_misalignment fields. 25335 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros. 25336 * tree-data-ref.c: Include builtins.h. 25337 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields. 25338 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro. 25339 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise. 25340 * tree-vect-data-refs.c: Include tree-cfg.h. 25341 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior 25342 fields instead of calculating an alignment here. 25343 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new 25344 innermost_loop_behavior fields. 25345 253462017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25347 25348 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment 25349 field. 25350 (DR_STEP_ALIGNMENT): New macro. 25351 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise. 25352 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment. 25353 (create_data_ref): Print it. 25354 * tree-vect-stmts.c (vectorizable_load): Use the step alignment 25355 to tell whether the step preserves vector (mis)alignment. 25356 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. 25357 Move the check for an integer step and generalise to all INTEGER_CST. 25358 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP. 25359 Print the outer step alignment. 25360 253612017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25362 25363 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to 25364 with offset_alignment. 25365 (DR_ALIGNED_TO): Delete. 25366 (DR_OFFSET_ALIGNMENT): New macro. 25367 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete. 25368 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro. 25369 * tree-data-ref.c (dr_analyze_innermost): Update after above changes. 25370 (create_data_ref): Likewise. 25371 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. 25372 (vect_analyze_data_refs): Likewise. 25373 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before 25374 creating dummy innermost behavior. 25375 253762017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25377 25378 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument 25379 with a "innermost_loop_behavior *" and refeence tree. 25380 * tree-data-ref.c (dr_analyze_innermost): Likewise. 25381 (create_data_ref): Update call accordingly. 25382 * tree-predcom.c (find_looparound_phi): Likewise. 25383 253842017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25385 25386 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_* 25387 fields with dr_wrt_vec_loop. 25388 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET) 25389 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly. 25390 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro. 25391 (vect_dr_behavior): New function. 25392 (vect_create_addr_base_for_vector_ref): Remove loop parameter. 25393 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use 25394 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to 25395 track whether the step preserves the misalignment. 25396 (vect_create_addr_base_for_vector_ref): Remove loop parameter. 25397 Use vect_dr_behavior. 25398 (vect_setup_realignment): Update call accordingly. 25399 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior. 25400 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update 25401 call to vect_create_addr_base_for_vector_ref. 25402 (vect_create_cond_for_align_checks): Likewise. 25403 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy 25404 STMT_VINFO_DR_WRT_VEC_LOOP as a block. 25405 (vect_recog_mask_conversion_pattern): Likewise. 25406 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior. 25407 (new_stmt_vec_info): Remove redundant zeroing. 25408 254092017-07-03 Richard Earnshaw <rearnsha@arm.com> 25410 25411 * common/config/arm/arm-common.c (arm_be8_option): New function. 25412 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8. 25413 (ISA_ARMv6): Add isa_bit_be8. 25414 * config/arm/arm.h (arm_be8_option): Add prototype. 25415 (BE8_SPEC_FUNCTION): New define. 25416 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION. 25417 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian. 25418 (mlittle-endian): Similarly. 25419 (mbe8, mbe32): New options. 25420 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option. 25421 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32. 25422 254232017-07-02 Jan Hubicka <hubicka@ucw.cz> 25424 25425 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating. 25426 254272017-07-02 Jan Hubicka <hubicka@ucw.cz> 25428 25429 * tree-cfgcleanup.c (want_merge_blocks_p): New function. 25430 (cleanup_tree_cfg_bb): Use it. 25431 * profile-count.h (profile_count::of_for_merging, profile_count::merge): 25432 New functions. 25433 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge. 25434 254352017-07-02 Jan Hubicka <hubicka@ucw.cz> 25436 25437 PR bootstrap/81285 25438 * loop-doloop.c (add_test): Update profile. 25439 254402017-07-03 Martin Liska <mliska@suse.cz> 25441 25442 PR sanitize/81040 25443 * sanopt.c (rewrite_usage_of_param): New function. 25444 (sanitize_rewrite_addressable_params): Likewise. 25445 (pass_sanopt::execute): Call rewrite_usage_of_param. 25446 254472017-07-03 Richard Biener <rguenther@suse.de> 25448 25449 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert 25450 back to using VIEW_CONVERT_EXPR. 25451 254522017-07-03 Martin Liska <mliska@suse.cz> 25453 25454 PR other/78366 25455 * doc/extend.texi: Document when a resolver function is 25456 generated for target_clones. 25457 254582017-07-03 Martin Liska <mliska@suse.cz> 25459 25460 * asan.c (asan_emit_stack_protection): Unpoison just red zones 25461 and shadow memory of auto variables which are subject of 25462 use-after-scope sanitization. 25463 (asan_expand_mark_ifn): Add do set only when is_poison. 25464 254652016-07-03 Richard Biener <rguenther@suse.de> 25466 25467 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze 25468 reduction PHIs. 25469 (vect_force_simple_reduction): Record reduction def -> phi mapping. 25470 (vectorizable_reduction): Perform reduction PHI creation when 25471 visiting a reduction PHI and adjust and simplify code generation 25472 phase of the reduction op. Cache dts, use fold_binary, not fold_build2. 25473 (vect_transform_loop): Visit reduction PHIs. 25474 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction 25475 defs into the SLP tree. 25476 (vect_build_slp_tree): Reduction defs terminate the recursion. 25477 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup 25478 of reduction defs. 25479 (vect_get_vec_defs_for_stmt_copy): Export. 25480 (vect_get_vec_defs): Likewise. 25481 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def 25482 purpose. 25483 (vect_get_vec_defs_for_stmt_copy): Declare. 25484 (vect_get_vec_defs): Likewise. 25485 254862017-07-03 Richard Sandiford <richard.sandiford@linaro.org> 25487 25488 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest" 25489 parameter with a "loop" parameter and use it instead of the 25490 loop containing DR_STMT. Don't check simple_iv when doing 25491 BB analysis. Describe the two analysis modes in the comment. 25492 254932017-07-03 Tom de Vries <tom@codesourcery.com> 25494 25495 PR tree-optimization/69468 25496 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant. 25497 (find_same_succ_bb): Handle ignore_edge_flags. 25498 254992017-07-03 Tom de Vries <tom@codesourcery.com> 25500 25501 PR tree-optimization/81192 25502 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in 25503 hash. 25504 (same_succ::equal): Don't find bbs to be equal if bb->loop_father 25505 differs. 25506 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch. 25507 255082017-07-03 Tom de Vries <tom@codesourcery.com> 25509 25510 PR tree-optimization/81192 25511 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle 25512 BB_SAME_SUCC (bb) == NULL. 25513 255142017-07-02 Jan Hubicka <hubicka@ucw.cz> 25515 25516 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability 25517 consistency. 25518 255192017-07-02 Jan Hubicka <hubicka@ucw.cz> 25520 25521 * dumpfile.c: Include profile-count.h 25522 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes; 25523 update profile. 25524 (insert_cond_bb): Update profile. 25525 * tree-cfg.h (insert_cond_bb): Update prototype. 25526 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update. 25527 * tree-dump.c: Do not include tree-cfg. 25528 255292017-07-02 Jan Hubicka <hubicka@ucw.cz> 25530 25531 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile. 25532 255332017-07-02 Jan Hubicka <hubicka@ucw.cz> 25534 25535 * expect.c (dw2_build_landing_pads): Update profile of the landing pad 25536 bb. 25537 255382017-07-02 Jan Hubicka <hubicka@ucw.cz> 25539 25540 * tree-complex.c (expand_complex_div_wide): update profile. 25541 255422017-07-02 Richard Sandiford <richard.sandiford@linaro.org> 25543 Alan Hayward <alan.hayward@arm.com> 25544 David Sherwood <david.sherwood@arm.com> 25545 25546 * Makefile.in (MACHMODE_H): Remove insn-modes.h 25547 (CORETYPES_H): New define. 25548 (MOSTLYCLEANFILES): Add insn-modes-inline.h. 25549 (insn-modes-inline.h, s-modes-inline-h): New rules. 25550 (generated_files): Add insn-modes-inline.h. 25551 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h. 25552 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise. 25553 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise. 25554 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise. 25555 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise. 25556 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise. 25557 (build/gencodes.o, build/genconditions.o): Likewise. 25558 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise. 25559 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise. 25560 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o) 25561 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise. 25562 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise. 25563 (build/gencfn-macros.o, build/gcov-iov.o): Likewise. 25564 * coretypes.h: Include everything up to real.h for generators. 25565 Include insn-modes.h first. Include wide-int-print.h after 25566 wide-int.h. Include insn-modes-inline.h and then machmode.h. 25567 * machmode.h: Don't include insn-modes.h here. 25568 * function-tests.c: Remove includes of signop.h, machmode.h, 25569 double-int.h and wide-int.h. 25570 * rtl.h: Likewise. 25571 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h 25572 and wide-int.h. 25573 * optc-save-gen.awk: Likewise. 25574 * gencheck.c (BITS_PER_UNIT): Delete dummy definition. 25575 * godump.c: Remove include of wide-int-print.h. 25576 * pretty-print.h: Likewise. 25577 * wide-int-print.cc: Likewise. 25578 * wide-int.cc: Likewise. 25579 * hash-map-tests.c: Remove include of signop.h. 25580 * hash-set-tests.c: Likewise. 25581 * rtl-tests.c: Likewise. 25582 * mkconfig.sh: Remove include of machmode.h. 25583 * genmodes.c (emit_insn_modes_h): Split emission of inline functions 25584 into... 25585 (emit_insn_modes_inline_h): ...this new function. Emit the code 25586 into an insn-modes-inline.h header file, adding appropriate 25587 include guards and end comments. 25588 (emit_insn_modes_c_header): Remove include of machmode.h. 25589 (emit_min_insn_modes_c_header): Include coretypes.h rather than 25590 machmode.h. 25591 (main): Handle -i flag and call emit_insn_modes_inline_h when 25592 it is passed. 25593 255942017-07-02 Richard Sandiford <richard.sandiford@linaro.org> 25595 25596 * tree-ssa-strlen.c (strinfo): Rename the length field to 25597 nonzero_chars. Add a full_string_p field. 25598 (compare_nonzero_chars, zero_length_string_p): New functions. 25599 (get_addr_stridx): Add an offset_out parameter. 25600 Use compare_nonzero_chars. 25601 (get_stridx): Update accordingly. Use compare_nonzero_chars. 25602 (new_strinfo): Update after above changes to strinfo. 25603 (set_endptr_and_length): Set full_string_p. 25604 (get_string_length): Update after above changes to strinfo. 25605 (unshare_strinfo): Update call to new_strinfo. 25606 (maybe_invalidate): Likewise. 25607 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT. 25608 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars 25609 as a uhwi instead of an shwi. Update after above changes to 25610 strinfo and new_strinfo. 25611 (zero_length_string): Assert that chainsi contains full strings. 25612 Use zero_length_string_p. Update call to new_strinfo. 25613 (adjust_related_strinfos): Update after above changes to strinfo. 25614 Copy full_string_p from origsi. 25615 (adjust_last_stmt): Use zero_length_string_p. 25616 (handle_builtin_strlen): Update after above changes to strinfo and 25617 new_strinfo. Install the lhs as the string length if the previous 25618 entry didn't describe a full string. 25619 (handle_builtin_strchr): Update after above changes to strinfo 25620 and new_strinfo. 25621 (handle_builtin_strcpy): Likewise. 25622 (handle_builtin_strcat): Likewise. 25623 (handle_builtin_malloc): Likewise. 25624 (handle_pointer_plus): Likewise. 25625 (handle_builtin_memcpy): Likewise. Track nonzero characters 25626 that aren't necessarily followed by a nul terminator. 25627 (handle_char_store): Likewise. 25628 256292017-07-02 Richard Sandiford <richard.sandiford@linaro.org> 25630 25631 PR tree-optimization/80769 25632 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used 25633 for malloc and calloc. Document the new invariant that all related 25634 strinfos have delayed lengths or none do. 25635 (verify_related_strinfos): Move earlier in file. 25636 (set_endptr_and_length): New function, split out from... 25637 (get_string_length): ...here. Also set the lengths of related 25638 strinfos. 25639 (zero_length_string): Assert that chainsi has known (rather than 25640 delayed) lengths. 25641 (adjust_related_strinfos): Likewise. 25642 256432017-07-02 Richard Sandiford <richard.sandiford@linaro.org> 25644 25645 PR tree-optimization/81136 25646 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only 25647 assert that two references with the same misalignment have the same 25648 compile-time misalignment if those compile-time misalignments 25649 are known. 25650 256512017-07-01 Andi Kleen <ak@linux.intel.com> 25652 25653 * print-tree.c (print_node): Print all attributes. 25654 256552017-07-01 Jan Hubicka <hubicka@ucw.cz> 25656 25657 * cfg.c (scale_bbs_frequencies): New function. 25658 * cfg.h (scale_bbs_frequencies): Declare it. 25659 * cfgloopanal.c (single_likely_exit): Cleanup. 25660 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability 25661 as parameter. 25662 (scale_loop_profile): Likewise. 25663 (loop_version): Likewise. 25664 (create_empty_loop_on_edge): Update. 25665 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile, 25666 scale_loop_frequencies, scale_loop_profile, loopify, 25667 loop_version): Update prototypes. 25668 * modulo-sched.c (sms_schedule): Update. 25669 * predict.c (unlikely_executed_edge_p): Also check probability. 25670 (probably_never_executed_edge_p): Fix typo. 25671 * tree-if-conv.c (version_loop_for_if_conversion): Update. 25672 * tree-parloops.c (gen_parallel_loop): Update. 25673 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update. 25674 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. 25675 * tree-ssa-loop-split.c (split_loop): Update. 25676 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. 25677 * tree-vect-loop-manip.c (vect_do_peeling): Update. 25678 (vect_loop_versioning): Update. 25679 * tree-vect-loop.c (scale_profile_for_vect_loop): Update. 25680 256812017-07-01 Jan Hubicka <hubicka@ucw.cz> 25682 25683 * trans-mem.c (split_bb_make_tm_edge): Update profile. 25684 256852017-07-01 Jan Hubicka <hubicka@ucw.cz> 25686 25687 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge 25688 to keep profile consistent. 25689 256902017-07-01 Jan Hubicka <hubicka@ucw.cz> 25691 25692 * cfgrtl.c (rtl_flow_call_edges_add): Update profile. 25693 * tree-cfg.c (gimple_flow_call_edges_add): Likewise. 25694 * profile-count.h (max_safe_multiplier): Make unsigned. 25695 (profile_count::guessed_zero): New. 25696 256972017-07-01 Jan Hubicka <hubicka@ucw.cz> 25698 25699 * bb-reorder.c (fix_up_crossing_landing_pad, 25700 fix_crossing_conditional_branches): Use make_single_succ_edge 25701 to keep profile consistent. 25702 257032017-07-01 Jan Hubicka <hubicka@ucw.cz> 25704 25705 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge 25706 to update profile. 25707 257082017-07-01 Jakub Jelinek <jakub@redhat.com> 25709 25710 PR sanitizer/81262 25711 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to 25712 the right scopes, make sure cond_jump isn't preserved between multiple 25713 iterations. Search for fallthru edge whenever there are 3+ edges and 25714 use find_fallthru_edge for it. 25715 257162017-06-29 Jan Hubicka <hubicka@ucw.cz> 25717 25718 Patch by Alexander Monakov <amonakov@ispras.ru> 25719 * sel-sched-ir.c (compute_succs_info): Handle uninitialized 25720 probabilities consistently. 25721 257222017-06-29 Jan Hubicka <hubicka@ucw.cz> 25723 25724 * pa.c (pa_expand_compare_and_swap_loop): Update call of 25725 emit_cmp_and_jump_insns. 25726 257272017-06-29 Jan Hubicka <hubicka@ucw.cz> 25728 25729 PR ipa/81261 25730 * tree-inline.c (expand_call_inline): Combine profile statuses. 25731 257322017-06-30 Andrew Pinski <apinski@cavium.com> 25733 25734 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if 25735 fold_stmt returned true. 25736 257372017-06-30 Nathan Sidwell <nathan@acm.org> 25738 25739 * ggc.h (empty_string): Delete. 25740 * cfgexpand.c (expand_asm_stmt): Use plain "". 25741 * optabs.c (expand_asm_memory_barrier): Likewise. 25742 * stringpool.c (empty_string): Delete. 25743 (digit_vector, digit_string): Delete. 25744 (ggc_alloc_string): Use plain "", don't optimize single digit 25745 strings. Use ggc_alloc_atomic. 25746 257472017-06-30 Richard Earnshaw <rearnsha@arm.com> 25748 25749 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one 25750 comparison set and one other set, use the cost of the non-comparison 25751 set. 25752 257532017-06-30 Nathan Sidwell <nathan@acm.org> 25754 25755 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix 25756 some formatting. 25757 257582017-06-30 Peter Bergner <bergner@vnet.ibm.com> 25759 25760 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing 25761 loops. Remove now unneeded calls to gimple_switch_set_label() that 25762 just set removed labels to NULL_TREE. 25763 257642017-06-30 Aldy Hernandez <aldyh@redhat.com> 25765 25766 * tree-ssanames.c (set_range_info_raw): Abstract from ... 25767 (set_range_info): ...here. Only call set_range_info_raw if domain 25768 is useful. 25769 (set_nonzero_bits): Call set_range_info_raw. 25770 * tree-ssanames.h (set_range_info_raw): New. 25771 257722017-06-30 Jakub Jelinek <jakub@redhat.com> 25773 25774 PR target/81225 25775 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI, 25776 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead 25777 of nonimmediate_operand and <store_mask_constraint> instead of m 25778 for the input operand. For V8FI iterator, always split if input 25779 is a MEM. For V16FI and V8SF_256 iterators, don't test if both 25780 operands are MEM if <mask_applied>. For VI4F_256 iterator, use 25781 <store_mask_predicate> instead of register_operand and 25782 <store_mask_constraint> instead of v for the input operand. Make 25783 sure both operands aren't MEMs for if not <mask_applied>. 25784 257852017-06-30 Sylvestre Ledru <sylvestre@debian.org> 25786 25787 * lto-wrapper.c (copy_file) Close both file descriptors before 25788 exiting normally. 25789 257902017-06-30 Martin Liska <mliska@suse.cz> 25791 25792 PR ipa/81214 25793 * multiple_target.c (create_dispatcher_calls): Make ifunc 25794 also for function that don't have calls or are not referenced. 25795 257962017-06-30 Richard Biener <rguenther@suse.de> 25797 25798 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only 25799 analyze the first scalar stmt. Move vector type computation 25800 for the BB case here from ... 25801 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard 25802 live operation processing in the SLP case properly. 25803 258042017-06-30 Richard Biener <rguenther@suse.de> 25805 25806 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax. 25807 258082017-06-30 Martin Liska <mliska@suse.cz> 25809 25810 PR sanitizer/81021 25811 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN 25812 before BUILT_IN_UNWIND_RESUME when ASAN is used. 25813 258142017-06-30 Yvan Roux <yvan.roux@linaro.org> 25815 25816 * doc/invoke.texi (AArch64): Add missing options and remove redundant 25817 ones. 25818 258192017-06-30 Richard Biener <rguenther@suse.de> 25820 25821 PR tree-optimization/81249 25822 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert 25823 condition reduction result to original scalar type. 25824 258252017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 25826 25827 * profile-count.h (enum profile_quality): Fix typos and whitespace 25828 issues. 25829 258302017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 25831 25832 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data 25833 type for branch probabilities. 25834 258352017-06-29 Julian Brown <julian@codesourcery.com> 25836 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 25837 25838 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry. 25839 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type. 25840 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag. 25841 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH. 25842 258432017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 25844 25845 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the 25846 check for CC usage into AARCH64_FUSE_CMP_BRANCH. 25847 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for 25848 CC usage from generic code to here. 25849 * sched-deps.c (sched_macro_fuse_insns): Move the condition for 25850 CC usage into the target macros. 25851 258522017-06-29 Maya Rashish <coypu@sdf.org> 25853 25854 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared 25855 objects. 25856 258572017-06-29 Jan Hubicka <hubicka@ucw.cz> 25858 25859 * arm/arm-builtins.c: Include profile-count.h 25860 * except.c (sjlj_emit_function_enter): Use 25861 profile_probability::unlikely. 25862 258632017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 25864 25865 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base 25866 and tocrel_offset be pointer args rather than implicitly using 25867 static versions. 25868 (legitimate_constant_pool_address_p, rs6000_emit_move, 25869 const_load_sequence_p, adjust_vperm): Add local tocrel_base and 25870 tocrel_offset and use in toc_relative_expr_p call. 25871 (print_operand, print_operand_address): Use static tocrel_base_oac 25872 and tocrel_offset_oac. 25873 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and 25874 tocrel_offset_oac. 25875 258762017-06-29 Maya Rashish <coypu@sdf.org> 25877 25878 * config/vax/builtins.md (ffssi2_internal): Correct constraint. 25879 258802017-06-29 Eric Botcazou <ebotcazou@adacore.com> 25881 25882 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned 25883 objects, take into account only the alignment of 'op0' and 'mode1' if 25884 'op0' is a MEM. 25885 258862017-06-29 Steve Ellcey <sellcey@cavium.com> 25887 25888 * ccmp.c (ccmp_tree_comparison_p): New function. 25889 (ccmp_candidate_p): Update to use above function. 25890 (get_compare_parts): New function. 25891 (expand_ccmp_next): Update to use new functions. 25892 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use 25893 new functions. 25894 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1, 25895 take mode as argument. 25896 * ccmp.h (expand_ccmp_expr): Add mode as argument. 25897 * expr.c (expand_expr_real_1): Pass mode as argument. 25898 258992017-06-29 Segher Boessenkool <segher@kernel.crashing.org> 25900 25901 * combine.c (combine_instructions): Print insns to dump_file, together 25902 with their costs. 25903 259042017-06-29 Jan Hubicka <hubicka@ucw.cz> 25905 25906 * asan.c (asan_emit_stack_protection): Update. 25907 (create_cond_insert_point): Update. 25908 * auto-profile.c (afdo_propagate_circuit): Update. 25909 * basic-block.h (struct edge_def): Turn probability to 25910 profile_probability. 25911 (EDGE_FREQUENCY): Update. 25912 * bb-reorder.c (find_traces_1_round): Update. 25913 (better_edge_p): Update. 25914 (sanitize_hot_paths): Update. 25915 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized. 25916 (make_single_succ_edge): Update. 25917 (check_bb_profile): Update. 25918 (dump_edge_info): Update. 25919 (update_bb_profile_for_threading): Update. 25920 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge 25921 probabilitycount to 0. 25922 * cfgbuild.c (compute_outgoing_frequencies): Update. 25923 * cfgcleanup.c (try_forward_edges): Update. 25924 (outgoing_edges_match): Update. 25925 (try_crossjump_to_edge): Update. 25926 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge. 25927 (expand_gimple_tailcall): Update. 25928 (construct_init_block): Use make_single_succ_edge. 25929 (construct_exit_block): Use make_single_succ_edge. 25930 * cfghooks.c (verify_flow_info): Update. 25931 (redirect_edge_succ_nodup): Update. 25932 (split_edge): Update. 25933 (account_profile_record): Update. 25934 * cfgloopanal.c (single_likely_exit): Update. 25935 * cfgloopmanip.c (scale_loop_profile): Update. 25936 (set_zero_probability): Remove. 25937 (duplicate_loop_to_header_edge): Update. 25938 * cfgloopmanip.h (loop_version): Update prototype. 25939 * cfgrtl.c (try_redirect_by_replacing_jump): Update. 25940 (force_nonfallthru_and_redirect): Update. 25941 (update_br_prob_note): Update. 25942 (rtl_verify_edges): Update. 25943 (purge_dead_edges): Update. 25944 (rtl_lv_add_condition_to_bb): Update. 25945 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update. 25946 * cgraphunit.c (init_lowered_empty_function): Update. 25947 (cgraph_node::expand_thunk): Update. 25948 * cilk-common.c: Include profile-count.h 25949 * dojump.c (inv): Remove. 25950 (jumpifnot): Update. 25951 (jumpifnot_1): Update. 25952 (do_jump_1): Update. 25953 (do_jump): Update. 25954 (do_jump_by_parts_greater_rtx): Update. 25955 (do_compare_rtx_and_jump): Update. 25956 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump, 25957 do_jump_1. do_compare_rtx_and_jump): Update prototype. 25958 * dwarf2cfi.c: Include profile-count.h 25959 * except.c (dw2_build_landing_pads): Use make_single_succ_edge. 25960 (sjlj_emit_dispatch_table): Likewise. 25961 * explow.c: Include profile-count.h 25962 * expmed.c (emit_store_flag_force): Update. 25963 (do_cmp_and_jump): Update. 25964 * expr.c (compare_by_pieces_d::generate): Update. 25965 (compare_by_pieces_d::finish_mode): Update. 25966 (emit_block_move_via_loop): Update. 25967 (store_expr_with_bounds): Update. 25968 (store_constructor): Update. 25969 (expand_expr_real_2): Update. 25970 (expand_expr_real_1): Update. 25971 * expr.h (try_casesi, try_tablejump): Update prototypes. 25972 * gimple-pretty-print.c (dump_probability): Update. 25973 (dump_profile): New. 25974 (dump_gimple_label): Update. 25975 (dump_gimple_bb_header): Update. 25976 * graph.c (draw_cfg_node_succ_edges): Update. 25977 * hsa-gen.c (convert_switch_statements): Update. 25978 * ifcvt.c (cheap_bb_rtx_cost_p): Update. 25979 (find_if_case_1): Update. 25980 (find_if_case_2): Update. 25981 * internal-fn.c (expand_arith_overflow_result_store): Update. 25982 (expand_addsub_overflow): Update. 25983 (expand_neg_overflow): Update. 25984 (expand_mul_overflow): Update. 25985 (expand_vector_ubsan_overflow): Update. 25986 * ipa-cp.c (good_cloning_opportunity_p): Update. 25987 * ipa-split.c (split_function): Use make_single_succ_edge. 25988 * ipa-utils.c (ipa_merge_profiles): Update. 25989 * loop-doloop.c (add_test): Update. 25990 (doloop_modify): Update. 25991 * loop-unroll.c (compare_and_jump_seq): Update. 25992 (unroll_loop_runtime_iterations): Update. 25993 * lra-constraints.c (lra_inheritance): Update. 25994 * lto-streamer-in.c (input_cfg): Update. 25995 * lto-streamer-out.c (output_cfg): Update. 25996 * mcf.c (adjust_cfg_counts): Update. 25997 * modulo-sched.c (sms_schedule): Update. 25998 * omp-expand.c (expand_omp_for_init_counts): Update. 25999 (extract_omp_for_update_vars): Update. 26000 (expand_omp_ordered_sink): Update. 26001 (expand_omp_for_ordered_loops): Update. 26002 (expand_omp_for_generic): Update. 26003 (expand_omp_for_static_nochunk): Update. 26004 (expand_omp_for_static_chunk): Update. 26005 (expand_cilk_for): Update. 26006 (expand_omp_simd): Update. 26007 (expand_omp_taskloop_for_outer): Update. 26008 (expand_omp_taskloop_for_inner): Update. 26009 * omp-simd-clone.c (simd_clone_adjust): Update. 26010 * optabs.c (expand_doubleword_shift): Update. 26011 (expand_abs): Update. 26012 (emit_cmp_and_jump_insn_1): Update. 26013 (expand_compare_and_swap_loop): Update. 26014 * optabs.h (emit_cmp_and_jump_insns): Update prototype. 26015 * predict.c (predictable_edge_p): Update. 26016 (edge_probability_reliable_p): Update. 26017 (set_even_probabilities): Update. 26018 (combine_predictions_for_insn): Update. 26019 (combine_predictions_for_bb): Update. 26020 (propagate_freq): Update. 26021 (estimate_bb_frequencies): Update. 26022 (force_edge_cold): Update. 26023 * profile-count.c (profile_count::dump): Add missing space into dump. 26024 (profile_count::debug): Add newline. 26025 (profile_count::differs_from_p): Explicitly convert to unsigned. 26026 (profile_count::stream_in): Update. 26027 (profile_probability::dump): New member function. 26028 (profile_probability::debug): New member function. 26029 (profile_probability::differs_from_p): New member function. 26030 (profile_probability::differs_lot_from_p): New member function. 26031 (profile_probability::stream_in): New member function. 26032 (profile_probability::stream_out): New member function. 26033 * profile-count.h (profile_count_quality): Rename to ... 26034 (profile_quality): ... this one. 26035 (profile_probability): New. 26036 (profile_count): Update. 26037 * profile.c (compute_branch_probabilities): Update. 26038 * recog.c (peep2_attempt): Update. 26039 * sched-ebb.c (schedule_ebbs): Update. 26040 * sched-rgn.c (find_single_block_region): Update. 26041 (compute_dom_prob_ps): Update. 26042 (schedule_region): Update. 26043 * sel-sched-ir.c (compute_succs_info): Update. 26044 * stmt.c (struct case_node): Update. 26045 (do_jump_if_equal): Update. 26046 (get_outgoing_edge_probs): Update. 26047 (conditional_probability): Update. 26048 (emit_case_dispatch_table): Update. 26049 (expand_case): Update. 26050 (expand_sjlj_dispatch_table): Update. 26051 (emit_case_nodes): Update. 26052 * targhooks.c: Update. 26053 * tracer.c (better_p): Update. 26054 (find_best_successor): Update. 26055 * trans-mem.c (expand_transaction): Update. 26056 * tree-call-cdce.c: Update. 26057 * tree-cfg.c (gimple_split_edge): Upate. 26058 (move_sese_region_to_fn): Upate. 26059 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate. 26060 * tree-eh.c (lower_resx): Upate. 26061 (cleanup_empty_eh_move_lp): Upate. 26062 * tree-if-conv.c (version_loop_for_if_conversion): Update. 26063 * tree-inline.c (copy_edges_for_bb): Update. 26064 (copy_cfg_body): Update. 26065 * tree-parloops.c (gen_parallel_loop): Update. 26066 * tree-profile.c (gimple_gen_ic_func_profiler): Update. 26067 (gimple_gen_time_profiler): Update. 26068 * tree-ssa-dce.c (remove_dead_stmt): Update. 26069 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. 26070 * tree-ssa-loop-im.c (execute_sm_if_changed): Update. 26071 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. 26072 (unloop_loops): Update. 26073 (try_peel_loop): Update. 26074 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. 26075 * tree-ssa-loop-split.c (connect_loops): Update. 26076 (split_loop): Update. 26077 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. 26078 (hoist_guard): Update. 26079 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. 26080 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. 26081 (value_replacement): Update. 26082 * tree-ssa-reassoc.c (branch_fixup): Update. 26083 * tree-ssa-tail-merge.c (replace_block_by): Update. 26084 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. 26085 (create_edge_and_update_destination_phis): Update. 26086 (compute_path_counts): Update. 26087 (recompute_probabilities): Update. 26088 (update_joiner_offpath_counts): Update. 26089 (freqs_to_counts_path): Update. 26090 (duplicate_thread_path): Update. 26091 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. 26092 (struct switch_conv_info): Update. 26093 (gen_inbound_check): Update. 26094 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. 26095 (vect_do_peeling): Update. 26096 (vect_loop_versioning): Update. 26097 * tree-vect-loop.c (scale_profile_for_vect_loop): Update. 26098 (optimize_mask_stores): Update. 26099 * ubsan.c (ubsan_expand_null_ifn): Update. 26100 * value-prof.c (gimple_divmod_fixed_value): Update. 26101 (gimple_divmod_fixed_value_transform): Update. 26102 (gimple_mod_pow2): Update. 26103 (gimple_mod_pow2_value_transform): Update. 26104 (gimple_mod_subtract): Update. 26105 (gimple_mod_subtract_transform): Update. 26106 (gimple_ic): Update. 26107 (gimple_stringop_fixed_value): Update. 26108 (gimple_stringops_transform): Update. 26109 * value-prof.h: Update. 26110 261112017-06-29 Carl Love <cel@us.ibm.com> 26112 26113 * config/rs6000/rs6000-c.c: Add support for built-in functions 26114 vector signed int vec_signed (vector float); 26115 vector signed long long vec_signed (vector double); 26116 vector signed int vec_signed2 (vector double, vector double); 26117 vector signed int vec_signede (vector double); 26118 vector signed int vec_signedo (vector double); 26119 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add 26120 instruction generator. 26121 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, 26122 UNSPEC_VSX_VSIGNED2): Add UNSPECS. 26123 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df): 26124 Add define_insn. 26125 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df, 26126 vunsignede_v2df): Add define_expands. 26127 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED, 26128 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO, 26129 VEC_UNSIGNEDO): Add definitions. 26130 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, 26131 UNSPEC_VSX_VSIGNED2): Add UNSPECs. 26132 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn. 26133 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df, 26134 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands. 26135 * config/rs6000/altivec.h (vec_signed, vec_signed2, 26136 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2, 26137 vec_unsignede, vec_unsignedo): Add builtin defines. 26138 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern 26139 declaration. 26140 * doc/extend.texi: Update the built-in documentation file for the 26141 new built-in functions. 26142 261432017-06-29 Richard Biener <rguenther@suse.de> 26144 26145 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add 26146 reduction chains to LOOP_VINFO_REDUCTIONS. 26147 * tree-vect-slp.c (vect_analyze_slp): Continue looking for 26148 SLP reductions after processing reduction chains. 26149 261502017-06-29 Nathan Sidwell <nathan@acm.org> 26151 26152 * builtins.c (fold_builtin_FUNCTION): Use 26153 lang_hooks.decl_printable_name. 26154 261552017-06-29 Peter Bergner <bergner@vnet.ibm.com> 26156 26157 PR middle-end/81194 26158 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements 26159 with only one label. 26160 * stmt.c (expand_case): Assert NCASES is greater than one. 26161 261622017-06-29 Richard Biener <rguenther@suse.de> 26163 26164 * tree-cfg.c (group_case_labels_stmt): Return whether we changed 26165 anything. 26166 (group_case_labels): Likewise. 26167 (find_taken_edge): Push sanity checking on val to workers... 26168 (find_taken_edge_cond_expr): ... here 26169 (find_taken_edge_switch_expr): ... and here, handle cases 26170 with just a default label. 26171 * tree-cfg.h (group_case_labels_stmt): Adjust prototype. 26172 (group_case_labels): Likewise. 26173 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When 26174 group_case_labels does anything cleanup the CFG again. 26175 261762017-06-29 Bin Cheng <bin.cheng@arm.com> 26177 26178 PR tree-optimization/81196 26179 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop 26180 exit condition comparing two IVs. 26181 261822017-06-29 Richard Earnshaw <rearnsha@arm.com> 26183 26184 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for 26185 profile to the dummy entry at the end of the list of architectures. 26186 * config/arm/arm-cpu-cdata.h: Regenerated. 26187 261882017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26189 Michael Collison <michael.collison@arm.com> 26190 26191 PR target/70119 26192 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1): 26193 New pattern. 26194 (*aarch64_reg_<mode>3_neg_mask2): New pattern. 26195 (*aarch64_reg_<mode>3_minus_mask): New pattern. 26196 (*aarch64_<optab>_reg_di3_mask2): New pattern. 26197 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost 26198 of shift when the shift amount is masked with constant equal to 26199 the size of the mode. 26200 * config/aarch64/predicates.md (subreg_lowpart_operator): New 26201 predicate. 26202 262032017-06-29 Martin Liska <mliska@suse.cz> 26204 26205 * config/i386/i386.opt: Change range from [1,5] to [0,5]. 26206 262072017-06-29 Yury Gribov <tetra2005@gmail.com> 26208 26209 PR bootstrap/80565 26210 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization 26211 code. 26212 * ipa-inline.h 26213 (edge_growth_cache_entry::edge_growth_cache_entry): New 26214 function. 26215 (reset_edge_growth_cache): Update to use constructor. 26216 262172017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 26218 26219 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. 26220 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. 26221 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. 26222 262232017-06-28 Sebastian Peryt <sebastian.peryt@intel.com> 26224 26225 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) 26226 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics. 26227 262282017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com> 26229 26230 * config.gcc (*-linux-musl*): Add t-musl tmake_file. 26231 (*-linux-uclibc*): Add t-uclibc tmake_file. 26232 * config/t-musl: New. 26233 * config/t-uclibc: New. 26234 262352017-06-28 Richard Earnshaw <rearnsha@arm.com> 26236 26237 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch 26238 context. 26239 (gen_comm_data): Emit architectural setting of arch_prof. 26240 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the 26241 profile. 26242 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise. 26243 (armv8-m.base, armv8-m.main): Likewise. 26244 * arm-protos.h (arm_build_target): Add profile field. 26245 (arch_option): Likewise. 26246 * config/arm/arm.c (arm_configure_build_target): Copy the profile to 26247 the active target. 26248 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use 26249 arm_active_target.profile. 26250 262512017-06-28 Richard Biener <rguenther@suse.de> 26252 26253 PR middle-end/81227 26254 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not 26255 TYPE_OVERFLOW_WRAPS. 26256 * match.pd (negate_expr_p): Likewise. 26257 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use 26258 fold_build2, not fold_binary. 26259 262602017-06-28 Wilco Dijkstra <wdijkstr@arm.com> 26261 26262 * config/aarch64/aarch64 (aarch64_expand_mov_immediate): 26263 Convert memory address to Pmode. 26264 (aarch64_print_operand): Assert MEM operands are always Pmode. 26265 262662017-06-28 Wilco Dijkstra <wdijkstr@arm.com> 26267 26268 PR target/79665 26269 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep): 26270 Remove redundant if. 26271 (aarch_forward_to_shift_is_not_shifted_reg): Remove. 26272 * config/arm/aarch-common-protos.h 26273 (aarch_forward_to_shift_is_not_shifted_re): Remove. 26274 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass. 26275 262762017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> 26277 26278 PR ipa/81238 26279 * multiple_target.c (create_dispatcher_calls): Set the default 26280 clone to be static, not public. 26281 262822017-06-28 Richard Biener <rguenther@suse.de> 26283 26284 * tree-vect-loop.c (vectorizable_reduction): Move special 26285 cond reduction IV var creation ... 26286 (vect_create_epilog_for_reduction): ... here. Remove induction_index 26287 parameter. Use STMT_VINFO_VECTYPE. 26288 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset 26289 constant_p. 26290 262912017-06-28 Martin Liska <mliska@suse.cz> 26292 26293 PR ipa/81128 26294 * ipa-visibility.c (non_local_p): Handle visibility. 26295 262962017-06-28 Martin Liska <mliska@suse.cz> 26297 26298 PR driver/79659 26299 * common.opt: Add IntegerRange to various options. 26300 * opt-functions.awk (integer_range_info): New function. 26301 * optc-gen.awk: Add integer_range_info to cl_options struct. 26302 * opts-common.c (decode_cmdline_option): Handle 26303 CL_ERR_INT_RANGE_ARG. 26304 (cmdline_handle_error): Likewise. 26305 * opts.c (print_filtered_help): Show valid interval in 26306 when --help is provided. 26307 * opts.h (struct cl_option): Add range_min and range_max fields. 26308 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost. 26309 263102017-06-28 Marc Glisse <marc.glisse@inria.fr> 26311 26312 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^. 26313 (x * C EQ/NE y * C): New transformation. 26314 263152017-06-28 Christophe Lyon <christophe.lyon@linaro.org> 26316 26317 * genmultilib (combination_space): Accept '+' in option names. 26318 263192017-06-28 Martin Liska <mliska@suse.cz> 26320 26321 PR sanitizer/81224 26322 * asan.c (instrument_derefs): Bail out inner references 26323 that are hard register variables. 26324 263252017-06-28 Jakub Jelinek <jakub@redhat.com> 26326 26327 PR target/81175 26328 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin 26329 rather than def_builtin_pure for __builtin_ia32_gatherpf*. 26330 263312017-06-28 Richard Biener <rguenther@suse.de> 26332 26333 * tree-vectorizer.h (vect_get_vec_defs): Remove. 26334 (vect_get_slp_defs): Adjust. 26335 * tree-vect-loop.c (get_initial_defs_for_reduction): Split 26336 out from ... 26337 * tree-vect-slp.c (vect_get_constant_vectors): ... here and 26338 simplify. 26339 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 26340 get_initial_defs_for_reduction instead of vect_get_vec_defs. 26341 (vectorizable_reduction): Adjust. 26342 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction 26343 handling. 26344 (vect_get_slp_defs): Likewise. 26345 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust. 26346 (vectorizable_bswap): Adjust. 26347 (vectorizable_call): Likewise. 26348 (vectorizable_conversion): Likewise. 26349 (vectorizable_assignment): Likewise. 26350 (vectorizable_shift): Likewise. 26351 (vectorizable_operation): Likewise. 26352 (vectorizable_store): Likewise. 26353 (vectorizable_condition): Likewise. 26354 (vectorizable_comparison): Likewise. 26355 263562017-06-28 Michael Collison <michael.collison@arm.com> 26357 26358 PR target/68535 26359 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary 26360 set of base_reg 26361 (arm_gen_movmemqi): Removed unused variable 'i'. 26362 Convert 'for' loop into 'while' loop. 26363 (arm_expand_prologue): Remove last unnecessary set of insn. 26364 (thumb_pop): Remove unused variable 'pushed_words'. 26365 (thumb_exit): Remove last unnecessary set of regs_to_pop. 26366 263672017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 26368 26369 * config/s390/predicates.md: Use s390_rel_address_ok_p. 26370 * config/s390/s390-protos.h: Add prototype of 26371 s390_rel_address_ok_p. 26372 * config/s390/s390.c (s390_got_symbol): New function. 26373 (s390_rel_address_ok_p): New function. 26374 (legitimize_pic_address): Use s390_rel_address_ok_p. 26375 (s390_load_got): Use s390_got_symbol. 26376 (s390_option_override): Issue error if 26377 -mno-pic-data-is-text-relative is used without -fpic/-fPIC. 26378 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): 26379 New macro. 26380 * config/s390/s390.opt: New option mpic-data-is-text-relative. 26381 263822017-06-27 Andrew Pinski <apinski@cavium.com> 26383 26384 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns. 26385 (X * copysign (1.0, X)): New pattern. 26386 (X * copysign (1.0, -X)): New pattern. 26387 (copysign (-1.0, CST)): New pattern. 26388 263892017-06-27 Joseph Myers <joseph@codesourcery.com> 26390 26391 * genmultilib (combination_space): Remove variable. 26392 Validate reuse rules against regular expression for any sequence 26393 of multilib options in any order. 26394 263952017-06-27 Michael Collison <michael.collison@arm.com> 26396 26397 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly 26398 call aarch64_split_simd_combine. 26399 * (aarch64_combine_internal<mode>): Delete pattern. 26400 * config/aarch64/aarch64.c (aarch64_split_simd_combine): 26401 Allow register and subreg operands. 26402 264032017-06-27 Jerome Lambourg <lambourg@adacore.com> 26404 26405 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target 26406 specific need, just fallback on defaults. 26407 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define. 26408 264092017-06-27 Jerome Lambourg <lambourg@adacore.com> 26410 Olivier Hainque <hainque@adacore.com> 26411 26412 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct 26413 map for 64bits. 26414 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit 26415 targets. Pick a default if no particular attempt applied. 26416 (STACK_CHECK_PROTECT): Double for 64bit targets, which have 26417 larger contexts. 26418 264192017-06-27 Jerome Lambourg <lambourg@adacore.com> 26420 26421 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet. 26422 (x86_64-wrs-vxworks7): Likewise. 26423 264242017-06-27 Marek Polacek <polacek@redhat.com> 26425 26426 PR sanitizer/81223 26427 * ubsan.c (instrument_null): Check get_base_address's result for null. 26428 264292017-06-27 Marc Glisse <marc.glisse@inria.fr> 26430 26431 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations. 26432 264332017-06-27 Marc Glisse <marc.glisse@inria.fr> 26434 26435 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR, 26436 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types. 26437 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR, 26438 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT): 26439 New function types. 26440 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV, 26441 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND, 26442 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT, 26443 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG, 26444 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT, 26445 BUILT_IN_FEUPDATEENV): New builtins. 26446 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE, 26447 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries. 26448 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node, 26449 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New 26450 macros. 26451 (builtin_structptr_types): Adjust size. 26452 * tree.c (builtin_structptr_types): Add four entries. 26453 264542017-06-27 Jerome Lambourg <lambourg@adacore.com> 26455 Olivier Hainque <hainque@adacore.com> 26456 26457 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ... 26458 (TLS_SYM): New local macro, forcing reference to __tls__ on 26459 link command lines for VxWorks 7 RTPs, triggering initialization 26460 of tlsLib. 26461 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks 26462 OS features TLS support, true for RTPs on VxWorks 7. 26463 * config/vxworks.c (vxworks_override_options): Setup emutls 26464 accordingly. 26465 264662017-06-27 Jakub Jelinek <jakub@redhat.com> 26467 26468 * predict.c (test_prediction_value_range): Use -1U instead of -1 26469 to avoid narrowing conversion warning. 26470 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast 26471 to avoid narrowing conversion warning. 26472 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of 26473 -1. 26474 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1. 26475 264762017-06-27 Jerome Lambourg <lambourg@adacore.com> 26477 26478 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for 26479 64bit configurations. 26480 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64. 26481 (SIZE_TYPE): Likewise. 26482 * config/vxworks.c (vxworks_emutls_var_fields): Use 26483 long_unsigned_type_node instead of unsigned_type_node as the offset 26484 field type, which is "pointer" mode in emutls.c. 26485 264862017-06-27 Jakub Jelinek <jakub@redhat.com> 26487 26488 PR sanitizer/81209 26489 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var. 26490 26491 PR middle-end/81207 26492 * gimple-fold.c (replace_call_with_call_and_fold): Handle 26493 gimple_vuse copying separately from gimple_vdef copying. 26494 264952017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 26496 26497 * value-prof.c (free_hist): Remove call to memset and the enclosing if 26498 condition. 26499 265002017-06-26 Jerome Lambourg <lambourg@adacore.com> 26501 Olivier Hainque <hainque@adacore.com> 26502 26503 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines 26504 for all vxworks7 targets. 26505 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0. 26506 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7. 26507 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing 26508 variations for VX6/VX7 and 32/64bits later on in ... 26509 (VXWORKS_LIB_SPEC): Leverage new macros. 26510 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7, 26511 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword. 26512 265132017-06-26 Jerome Lambourg <lambourg@adacore.com> 26514 26515 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define 26516 _VX_TOOL_FAMILY and _VX_TOOL to gnu. 26517 265182017-06-26 Carl Love <cel@us.ibm.com> 26519 26520 * config/rs6000/rs6000-c.c: Add support for built-in functions 26521 vector bool char vec_reve (vector bool char); 26522 vector signed char vec_reve (vector signed char); 26523 vector unsigned char vec_reve (vector unsigned char); 26524 vector bool int vec_reve (vector bool int); 26525 vector signed int vec_reve (vector signed int); 26526 vector unsigned int vec_reve (vector unsigned int); 26527 vector bool long long vec_reve (vector bool long long); 26528 vector signed long long vec_reve (vector signed long long); 26529 vector unsigned long long vec_reve (vector unsigned long long); 26530 vector bool short vec_reve (vector bool short); 26531 vector signed short vec_reve (vector signed short); 26532 vector double vec_reve (vector double); 26533 vector float vec_reve (vector float); 26534 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI, 26535 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin. 26536 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC. 26537 (altivec_vreve): New pattern. 26538 * config/rs6000/altivec.h (vec_reve): New define. 26539 * doc/extend.texi (vec_rev): Update the built-in documentation file 26540 for the new built-in functions. 26541 265422016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 26543 26544 PR tree-optimization/71815 26545 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New 26546 function. 26547 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than 26548 has_single_use. 26549 (slsr_process_phi): Likewise. 26550 (replace_uncond_cands_and_profitable_phis): Don't replace a 26551 multiply candidate with a stride of 1 (copy or cast). 26552 (phi_incr_cost): Call uses_consumed_by_stmt rather than 26553 has_single_use. 26554 (lowest_cost_path): Likewise. 26555 (total_savings): Likewise. 26556 265572017-06-26 Richard Biener <rguenther@suse.de> 26558 26559 PR target/81175 26560 * config/i386/i386.c (ix86_init_mmx_sse_builtins): 26561 Use def_builtin_pure for all gather builtins. 26562 265632017-06-26 Richard Biener <rguenther@suse.de> 26564 26565 PR tree-optimization/81203 26566 * tree-tailcall.c (find_tail_calls): Do not move stmts into 26567 non-dominating BBs. 26568 265692017-06-26 Marek Polacek <polacek@redhat.com> 26570 26571 PR c/80116 26572 * doc/invoke.texi: Document -Wmultistatement-macros. 26573 265742017-06-26 Christophe Lyon <christophe.lyon@linaro.org> 26575 26576 * doc/sourcebuild.texi (ARM-specific attributes): Document new 26577 arm_neon_ok_no_float_abi effective target. 26578 265792017-06-26 Richard Biener <rguenther@suse.de> 26580 26581 PR tree-optimization/80928 26582 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag. 26583 (copy_bbs): Set BB_DUPLICATED flag early. 26584 (execute_on_growing_pred): Do not execute for BB_DUPLICATED 26585 marked blocks. 26586 (execute_on_shrinking_pred): Likewise. 26587 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in 26588 BB_DUPLICATED blocks. 26589 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly 26590 iterate over all PHIs considering removal of *gsi. 26591 265922017-06-23 Jim Wilson <jim.wilson@linaro.org> 26593 26594 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and 26595 qdf24xx. 26596 265972017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 26598 26599 * config/rs6000/rs6000-string.c: (expand_block_clear, 26600 do_load_for_compare, select_block_compare_mode, 26601 compute_current_alignment, expand_block_compare, 26602 expand_strncmp_align_check, expand_strn_compare, 26603 expand_block_move, rs6000_output_load_multiple) 26604 Move functions related to string/block move/compare 26605 to a separate file. 26606 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c. 26607 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype 26608 for this function which is now used in two files. 26609 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o. 26610 * config.gcc: Add rs6000-string.o to extra_objs for 26611 targets powerpc*-*-* and rs6000*-*-*. 26612 266132017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> 26614 26615 PR target/80510 26616 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in 26617 32-bit, since indexed is not valid for DImode. 26618 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA 26619 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64. 26620 (define_peephole2 for Altivec d-form load): Add 32-bit support. 26621 (define_peephole2 for Altivec d-form store): Likewise. 26622 26623 PR ipa/81185 26624 * multiple_target.c (create_dispatcher_calls): Only create the 26625 dispatcher call if the function is the default clone of a 26626 versioned function. 26627 266282017-06-23 Segher Boessenkool <segher@kernel.crashing.org> 26629 26630 PR middle-end/80902 26631 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after 26632 a call, force the call to not be a tail call. 26633 266342017-06-23 Jeff Law <law@redhat.com> 26635 26636 * doc/contrib.texi: Add entry for Steven Pemberton's work on 26637 enquire. 26638 266392017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com> 26640 26641 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for 26642 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add 26643 handling for early expansion of vector shifts (sl,sr,sra,rl). 26644 (builtin_function_type): Add vector shift right instructions 26645 to the unsigned argument list. 26646 266472017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 26648 26649 rtl-optimizatoin/79286 26650 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again. 26651 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never 26652 trap. PIC register plus a const unspec without offset can never trap. 26653 266542017-06-23 Marc Glisse <marc.glisse@inria.fr> 26655 26656 * tree.h (builtin_structptr_type): New type. 26657 (builtin_structptr_types): Declare new array. 26658 * tree.c (builtin_structptr_types): New array. 26659 (free_lang_data, build_common_tree_nodes): Use it. 26660 266612017-06-23 Jonathan Wakely <jwakely@redhat.com> 26662 26663 PR c++/81187 26664 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from 26665 -Wnoexcept. 26666 266672017-06-22 Matt Turner <mattst88@gmail.com> 26668 26669 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby 26670 Lake models to skylake case. Assume skylake for unknown 26671 models with clflushopt. 26672 266732017-06-22 Jeff Law <law@redhat.com> 26674 26675 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle 26676 frame sizes that do not satisfy aarch64_uimm12_shift. 26677 266782017-06-22 Jan Hubicka <hubicka@ucw.cz> 26679 26680 * profile-count.h (apply_probability, 26681 apply_scale, probability_in): Fix checks for zero. 26682 266832017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 26684 26685 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix. 26686 * doc/cppdiropts.texi (-I @var{dir}): Document it. 26687 266882016-06-22 Richard Biener <rguenther@suse.de> 26689 26690 * tree-vect-loop.c (vect_model_reduction_cost): Handle 26691 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without 26692 REDUC_MAX_EXPR support. 26693 (vectorizable_reduction): Likewise. 26694 (vect_create_epilog_for_reduction): Likewise. 26695 266962017-06-22 James Greenhalgh <james.greenhalgh@arm.com> 26697 26698 * match.pd (A / (1 << B) -> A >> B): New. 26699 * generic-match-head.c: Include optabs-tree.h. 26700 * gimple-match-head.c: Likewise. 26701 * optabs-tree.h (target_supports_op_p): New. 26702 * optabs-tree.c (target_supports_op_p): New. 26703 267042017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 26705 26706 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for 26707 $gcc_cv_ld --help output. 26708 (gcc_cv_ld_demangle): Likewise. 26709 (gcc_cv_ld_eh_frame_hdr): Likewise. 26710 (gcc_cv_ld_pie): Likewise. 26711 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld. 26712 (gcc_cv_ld_buildid): Likewise. 26713 (gcc_cv_ld_sysroot): Likewise. 26714 (ld_bndplt_support): Likewise. 26715 (ld_pushpopstate_support): Likewise. 26716 * configure: Regenerate. 26717 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define. 26718 267192017-06-21 Jakub Jelinek <jakub@redhat.com> 26720 26721 PR target/81151 26722 * config/i386/sse.md (round<mode>2): Renumber match_dup and 26723 operands indexes to avoid gap between operands and match_dups. 26724 267252017-06-21 Andrew Pinski <apinski@cavium.com> 26726 26727 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs): 26728 Increment Arith_shift and Arith_shift_reg by 1. 26729 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend): 26730 New tuning flag. 26731 * config/aarch64/aarch64.c (thunderx_tunings): Enable 26732 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. 26733 (aarch64_strip_extend): Add new argument and test for it. 26734 (aarch64_cheap_mult_shift_p): New function. 26735 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't 26736 add a cost if it is true. 26737 Update calls to aarch64_strip_extend. 26738 (aarch64_rtx_costs): Update calls to aarch64_strip_extend. 26739 267402017-06-21 Andrew Pinski <apinski@cavium.com> 26741 26742 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88 26743 tunings. 26744 (thunderxt88): Likewise. 26745 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable. 26746 (thunderx_prefetch_tune): New variable. 26747 (thunderx2t99_prefetch_tune): Update for the correct values. 26748 (thunderxt88_tunings): New variable. 26749 (thunderx_tunings): Use thunderx_prefetch_tune instead of 26750 generic_prefetch_tune. 26751 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK. 26752 267532017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26754 26755 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse, 26756 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z. 26757 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise. 26758 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2. 26759 (aarch64_atomic_cas<mode>, GPI): Likewise. 26760 267612017-06-21 Martin Liska <mliska@suse.cz> 26762 26763 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT 26764 statements on cold and hot labels. 26765 * predict.c (tree_estimate_probability_bb): Remove the 26766 prediction from this place. 26767 267682017-06-21 Martin Liska <mliska@suse.cz> 26769 26770 PR tree-optimization/79489 26771 * gimplify.c (maybe_add_early_return_predict_stmt): New 26772 function. 26773 (gimplify_return_expr): Call the function. 26774 * predict.c (tree_estimate_probability_bb): Remove handling 26775 of early return. 26776 * predict.def: Update comment about early return predictor. 26777 * gimple-predict.h (is_gimple_predict): New function. 26778 * predict.def: Change default value of early return to 66. 26779 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT 26780 statements. 26781 * passes.def: Put pass_strip_predict_hints to the beginning of 26782 IPA passes. 26783 267842017-06-21 Pierre-Marie de Rodat <derodat@adacore.com> 26785 26786 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope 26787 FUNCTION_DECL declarations. 26788 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL 26789 declarations. 26790 (dwaf2out_decl): Likewise. 26791 * godump.c (go_early_global_decl): Skip call to the real debug hook 26792 for FUNCTION_DECL declarations. 26793 * passes.c (rest_of_decl_compilation): Skip call to the 26794 early_global_decl debug hook for FUNCTION_DECL declarations, unless 26795 -fdump-go-spec is passed. 26796 267972017-06-21 Marc Glisse <marc.glisse@inria.fr> 26798 26799 * config/i386/i386.c (struct builtin_isa): New field pure_p. 26800 Reorder for compactness. 26801 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p. 26802 (def_builtin_pure, def_builtin_pure2): New functions. 26803 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure. 26804 268052017-06-21 Marc Glisse <marc.glisse@inria.fr> 26806 26807 * match.pd (nop_convert): New predicate. 26808 ((A +- CST1) +- CST2): Allow some NOP conversions. 26809 268102017-06-21 Jakub Jelinek <jakub@redhat.com> 26811 26812 PR c++/81130 26813 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types 26814 with ctors/dtors if GOVD_SHARED is set. 26815 268162017-06-21 Wilco Dijkstra <wdijkstr@arm.com> 26817 26818 * config/aarch64/aarch64.md (movti_aarch64): 26819 Emit mov rather than orr. 26820 (movtf_aarch64): Likewise. 26821 * config/aarch64/aarch64-simd.md (aarch64_simd_mov): 26822 Emit mov rather than orr. 26823 268242017-06-21 Wilco Dijkstra <wdijkstr@arm.com> 26825 26826 * config/aarch64/aarch64-simd.md (aarch64_simd_dup): 26827 Swap alternatives, make integer dup more expensive. 26828 268292017-06-21 Wilco Dijkstra <wdijkstr@arm.com> 26830 26831 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): 26832 Return true for non-tls symbols. 26833 268342017-06-21 James Greenhalgh <james.greenhalgh@arm.com> 26835 26836 * config/aarch64/aarch64-cores.def (cortex-a55): New. 26837 (cortex-a75): Likewise. 26838 (cortex-a75.cortex-a55): Likewise. 26839 * config/aarch64/aarch64-tune.md: Regenerate. 26840 * doc/invoke.texi (-mtune): Document new values for -mtune. 26841 268422017-06-21 Tom de Vries <tom@codesourcery.com> 26843 26844 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add 26845 stack_size feature. 26846 (Effective-Target Keywords, Other attributes): Suggest using 26847 dg-add-options stack_size feature to get stack limit in stack_size 26848 effective target documentation. 26849 268502017-06-21 Julian Brown <julian@codesourcery.com> 26851 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 26852 26853 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi) 26854 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull. 26855 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New 26856 reservation. 26857 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to 26858 attribute type list for neon_multiply. 26859 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to 26860 attribute type list for neon_multiply. 26861 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull. 26862 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to 26863 attribute type list for neon_multiply. 26864 * config/arm/types.md (crypto_pmull): Add. 26865 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to 26866 attribute type list. 26867 268682017-06-20 Andreas Tobler <andreast@gcc.gnu.org> 26869 26870 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to 26871 arm1176jzf-s. 26872 268732017-06-20 Jakub Jelinek <jakub@redhat.com> 26874 26875 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later 26876 to make sure not to dereference a NULL cost_classes_ptr pointer. 26877 268782017-06-20 Carl Love <cel@us.ibm.com> 26879 26880 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 26881 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, 26882 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. 26883 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, 26884 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. 26885 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, 26886 VMULOSW): New enum "unspec" values. 26887 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, 26888 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, 26889 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, 26890 altivec_vmulosw): New patterns. 26891 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, 26892 VMULOSW): Add definitions. 26893 268942017-06-20 Julia Koval <julia.koval@intel.com> 26895 26896 * config/i386/i386.c: Fix rounding expand for new pattern. 26897 * config/i386/subst.md: Fix pattern (parallel -> unspec). 26898 268992017-06-20 James Greenhalgh <james.greenhalgh@arm.com> 26900 26901 * config/aarch64/aarch64-option-extensions.def (rcpc): New. 26902 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New. 26903 269042017-06-20 James Greenhalgh <james.greenhalgh@arm.com> 26905 26906 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected 26907 feature string. 26908 269092017-06-20 James Greenhalgh <james.greenhalgh@arm.com> 26910 26911 * config/aarch64/aarch64-cores.def: Rearrange to sort by 26912 architecture, then by implementer ID. 26913 * config/aarch64/aarch64-tune.md: Regenerate. 26914 269152017-06-20 Richard Biener <rguenther@suse.de> 26916 26917 PR middle-end/81097 26918 * fold-const.c (split_tree): Fold to type before negating. 26919 269202017-06-20 David Malcolm <dmalcolm@redhat.com> 26921 26922 * diagnostic-show-locus.c 26923 (selftest::test_fixit_deletion_affecting_newline): New function. 26924 (selftest::diagnostic_show_locus_c_tests): Call it. 26925 269262017-06-20 Andreas Schwab <schwab@suse.de> 26927 26928 PR target/80970 26929 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d" 26930 instead of "+d". 26931 269322017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com> 26933 26934 * config/arm/arm-c.c (arm_cpu_builtins): New block to define 26935 __ARM_FEATURE_COPROC according to support. 26936 269372017-06-20 Jakub Jelinek <jakub@redhat.com> 26938 26939 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): 26940 Rewritten to avoid overflow for > 32-bit pointers. 26941 26942 PR sanitizer/81125 26943 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser 26944 by removing enum keyword. 26945 (ubsan_type_descriptor): Likewise. Formatting fix. 26946 26947 PR target/81121 26948 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} 26949 splitter): Require TARGET_SSE2 in the condition. 26950 269512017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com> 26952 26953 PR target/79799 26954 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support 26955 for doing vector set of SFmode on ISA 3.0. 26956 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise. 26957 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF 26958 element. 26959 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a 26960 SFmode value into a V4SF variable that was extracted from another 26961 V4SF variable without converting the element to double precision 26962 and back to single precision vector format. 26963 (vsx_insert_extract_v4sf_p9_2): Likewise. 26964 269652017-06-19 Jakub Jelinek <jakub@redhat.com> 26966 26967 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply 26968 in UWHI to avoid undefined overflow. 26969 26970 PR sanitizer/81125 26971 * ubsan.h (enum ubsan_encode_value_phase): New. 26972 (ubsan_encode_value): Change second argument to 26973 enum ubsan_encode_value_phase with default value of 26974 UBSAN_ENCODE_VALUE_GENERIC. 26975 * ubsan.c (ubsan_encode_value): Change second argument to 26976 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P, 26977 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just 26978 create_tmp_var_raw instead of create_tmp_var and use a 26979 TARGET_EXPR. 26980 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin, 26981 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust 26982 ubsan_encode_value callers. 26983 26984 PR sanitizer/81111 26985 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL, 26986 use create_tmp_var_raw instead of create_tmp_var, mark it addressable 26987 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR. 26988 269892017-06-19 Richard Biener <rguenther@suse.de> 26990 26991 PR middle-end/81118 26992 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter 26993 estimates if we changed anything. 26994 269952017-06-19 Richard Biener <rguenther@suse.de> 26996 26997 PR tree-optimization/80887 26998 * tree-ssa-sccvn.c (mprts_hook_cnt): New global. 26999 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful 27000 simplified lookups, then reset mprts_hook. 27001 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before 27002 simplifying. 27003 (try_to_simplify): Likewise. 27004 270052017-06-19 Martin Liska <mliska@suse.cz> 27006 27007 PR sanitizer/80879 27008 * gimplify.c (gimplify_switch_expr): 27009 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST. 27010 270112017-06-19 Martin Liska <mliska@suse.cz> 27012 27013 * doc/install.texi: Document that PGO runs in 4 stages. 27014 270152017-06-19 Martin Liska <mliska@suse.cz> 27016 27017 PR ipa/80732 27018 * attribs.c (make_dispatcher_decl): Do not append '.ifunc' 27019 to dispatcher function name. 27020 * multiple_target.c (replace_function_decl): New function. 27021 (create_dispatcher_calls): Redirect both edges and references. 27022 270232017-06-19 Jan Hubicka <hubicka@ucw.cz> 27024 27025 * profile-count.c (profile_count::dump): Dump quality. 27026 (profile_count::differs_from_p): Update for unsigned val. 27027 * profile-count.h (profile_count_quality): New enum. 27028 (profile_count): Turn m_val to 62bit unsigned, add quality tracking. 27029 270302017-06-19 Richard Biener <rguenther@suse.de> 27031 27032 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take 27033 struct function as arg. 27034 (estimate_numbers_of_iterations): Export overload with loop arg. 27035 (free_numbers_of_iterations_estimates_loop): Use an overload of 27036 free_numbers_of_iterations_estimates instead. 27037 * tree-cfg.c (remove_bb): Adjust. 27038 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise. 27039 * tree-parloops.c (gen_parallel_loop): Likewise. 27040 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): 27041 Likewise. 27042 (tree_unroll_loops_completely): Likewise. 27043 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): 27044 Use an overload instead and export. 27045 (estimated_loop_iterations): Adjust. 27046 (max_loop_iterations): Likewise. 27047 (likely_max_loop_iterations): Likewise. 27048 (estimate_numbers_of_iterations): Take struct function as arg 27049 and adjust. 27050 (loop_exits_before_overflow): Adjust. 27051 (free_numbers_of_iterations_estimates_loop): Use an overload. 27052 * tree-vect-loop.c (vect_analyze_loop_form): Adjust. 27053 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise. 27054 270552017-06-19 Richard Biener <rguenther@suse.de> 27056 27057 PR ipa/81112 27058 * ipa-prop.c (find_constructor_constant_at_offset): Handle 27059 RANGE_EXPR conservatively. 27060 270612017-06-16 Carl Love <cel@us.ibm.com> 27062 27063 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 27064 definitions for vec_float, vec_float2, vec_floato, 27065 vec_floate built-ins. 27066 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code 27067 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and 27068 floate. 27069 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF, 27070 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF, 27071 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions. 27072 * config/altivec.md (define_insn "p8_vmrgew_<mode>", 27073 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew. 27074 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate, 27075 vec_floato): Add builtin defines. 27076 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato): 27077 Update the built-in documentation file for the new built-in 27078 functions. 27079 270802017-06-16 Richard Earnshaw <rearnsha@arm.com> 27081 27082 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb. 27083 (mthumb): Mark as the negative of -marm. 27084 270852017-06-16 Richard Earnshaw <rearnsha@arm.com> 27086 27087 * doc/invoke.texi (ARM Options, -mcpu): Document supported 27088 extension options. 27089 (ARM Options, -mtune): Document that this accepts the same 27090 extension options as -mcpu. 27091 (ARM Options, -mfpu): Document addition of -mfpu=auto. 27092 270932017-06-16 Richard Earnshaw <rearnsha@arm.com> 27094 27095 * doc/invoke.texi (ARM Options, -march=): Document new syntax and 27096 permitted extensions. 27097 270982017-06-16 Richard Earnshaw <rearnsha@arm.com> 27099 27100 * config/arm/arm-cpus.in (armv7): Add extension +nofp. 27101 (armv7-r): Add aliases vfpv3xd and vfpv3-d16. 27102 (armv8-m.main): Add option +nodsp. 27103 * config/arm/arm-cpu-cdata.h: Regenerated. 27104 271052017-06-16 Richard Earnshaw <rearnsha@arm.com> 27106 27107 * config/arm/t-fuchsia: New file. 27108 * config.gcc (arm*-*-fuchsia*): Use it. 27109 271102017-06-16 Richard Earnshaw <rearnsha@arm.com> 27111 27112 * config/arm/t-symbian: Rewrite for new option infrastructure. 27113 271142017-06-16 Richard Earnshaw <rearnsha@arm.com> 27115 27116 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable. 27117 (MULTILIB_REQUIRED): Likewise. 27118 271192017-06-16 Richard Earnshaw <rearnsha@arm.com> 27120 27121 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty. 27122 (MULTILIB_RESUE): Likewise. 27123 (MULTILIB_MATCHES): Likewise. 27124 (MULTLIB_REQUIRED): Likewise. 27125 271262017-06-16 Richard Earnshaw <rearnsha@arm.com> 27127 27128 * config/arm/t-rtems: Rewrite for new option framework. 27129 271302017-06-16 Richard Earnshaw <rearnsha@arm.com> 27131 27132 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants) 27133 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants) 27134 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants) 27135 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ... 27136 * config/arm/t-multilib: ... here. 27137 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures. 27138 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for 27139 armv7-a and armv8*-a when A-profile libraries have not been built. 27140 * config/arm/t-rmprofile: Rewrite. 27141 271422017-06-16 Richard Earnshaw <rearnsha@arm.com> 27143 27144 * genmultilib (multilib_reuse): Allow an explicit period to be escaped 27145 with a backslash. Remove the backslash after substituting unescaped 27146 periods. 27147 * doc/fragments.texi (MULTILIB_REUSE): Document it. 27148 271492017-06-16 Richard Earnshaw <rearnsha@arm.com> 27150 27151 * config.gcc: (arm*-*-*): When building a-profile libraries, force 27152 the driver to pass through the default setting of -mfloat-abi. 27153 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm 27154 rather than NULL. 27155 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty. 27156 (all_feat_combs): New rule. 27157 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework 27158 default libraries. 27159 * config/arm/t-aprofile: Rewrite. 27160 271612017-06-16 Richard Earnshaw <rearnsha@arm.com> 27162 27163 * config/arm/arm.h (FPUTYPE_AUTO): Define. 27164 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the 27165 fpu is not specified by the user/command-line. 27166 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete. 27167 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete. 27168 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete. 27169 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete. 27170 * common/config/arm/arm-common.c (arm_canon_arch_option): Use 27171 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT. 27172 271732017-06-16 Richard Earnshaw <rearnsha@arm.com> 27174 27175 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete. 27176 * config/arm/t-arm-elf: Rewritten. 27177 271782017-06-16 Richard Earnshaw <rearnsha@arm.com> 27179 27180 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we 27181 have some floating-point instructions. 27182 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT. 27183 (TARGET_MAYBE_HARD_FLOAT): New macro. 27184 * config/arm/arm-builtins.c (arm_init_builtins): Use 27185 TARGET_MAYBE_HARD_FLOAT. 27186 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI. 27187 271882017-06-16 Richard Earnshaw <rearnsha@arm.com> 27189 27190 * common/config/arm/arm-common.c: Define INCLUDE_LIST. 27191 (configargs.h): Include it. 27192 (arm_print_hint_for_fpu_option): New function. 27193 (arm_parse_fpu_option): New function. 27194 (candidate_extension): New class. 27195 (arm_canon_for_multilib): New function. 27196 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro. 27197 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION. 27198 (ARCH_CANONICAL_SPECS): New macro. 27199 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS. 27200 272012017-06-16 Richard Earnshaw <rearnsha@arm.com> 27202 27203 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu 27204 are set after handling multilib fragments. Set target_cpu_default2 27205 from with_cpu. 27206 272072017-06-16 Richard Earnshaw <rearnsha@arm.com> 27208 27209 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real 27210 cpu name. 27211 (arm*-*-*): Set target_cpu_default2 to a quoted string. 27212 * config/arm/parsecpu.awk (check_cpu): Validate any extension 27213 options. 27214 (check_arch): Likewise. 27215 * config/arm/arm.c (arm_configure_build_target): Handle 27216 TARGET_CPU_DEFAULT being a string constant. Scan any feature 27217 options in the default. 27218 272192017-06-16 Richard Earnshaw <rearnsha@arm.com> 27220 27221 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record 27222 when an option is an alias of another. 27223 * config/arm/parsecpu.awk (optalias): New parser token. 27224 (gen_comm_data): Mark non-alias options as such. Emit entries 27225 for extension aliases. 27226 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias. 27227 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise. 27228 (armv6kz, armv6zk, armv6t2): Likewise. 27229 (armv7): Make vfpv3-d16 an alias. 27230 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in 27231 canonical order. 27232 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases. 27233 Sort in canonical order. 27234 (armv8-a): Sort in canonical order. 27235 (armv8.1-a, armv8.2-a): Likewise. 27236 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in 27237 canonical order. 27238 (cortex-a9): Sort in canonical order. 27239 * config/arm/arm.c (selftests.h): Include it. 27240 (arm_test_cpu_arch_data): New function. 27241 (arm_run_self_tests): New function. 27242 (TARGET_RUN_TARGET_SELFTESTS): Redefine. 27243 (targetm): Move declaration to the end of the file. 27244 * arm-cpu-cdata.h: Regenerated. 27245 272462017-06-16 Richard Earnshaw <rearnsha@arm.com> 27247 27248 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to 27249 call to target_mode_check describing the type of option passed. 27250 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete. 27251 (arm_target_thumb_only): Use arm_parse_arch_option_name or 27252 arm_parse_cpu_option_name to match parameters against list of 27253 available targets. 27254 * config/arm/parsecpu.awk (gen_comm_data): Don't generate 27255 arm_arch_core_flags data structure. 27256 * config/arm/arm-cpu_cdata.h: Regenerated. 27257 272582017-06-16 Richard Earnshaw <rearnsha@arm.com> 27259 27260 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from 27261 config/arm/arm.c. 27262 (arm_print_hint_for_cpu_option): Likewise. 27263 (arm_print_hint_for_arch_option): Likewise. 27264 (arm_parse_cpu_option_name): Likewise. 27265 (arm_parse_arch_option_name): Likewise. 27266 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number 27267 of entries in the all_fpus list. 27268 * config/arm/arm-protos.h (all_architectures, all_cores): Declare. 27269 (arm_parse_cpu_option_name): Declare. 27270 (arm_parse_arch_option_name): Declare. 27271 (arm_parse_option_features): Declare. 27272 (arm_intialize_isa): Declare. 27273 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture 27274 data tables to ... 27275 (gen_comm_data): ... here. Make definitions non-static. 27276 * config/arm/arm-cpu-data.h: Regenerated. 27277 * config/arm/arm-cpu-cdata.h: Regenerated. 27278 272792017-06-16 Richard Earnshaw <rearnsha@arm.com> 27280 27281 * config/arm/arm-protos.h (arm_build_target): Remove arch_core. 27282 (cpu_arch_extension): New structure. 27283 (cpu_arch_option, arch_option, cpu_option): New structures. 27284 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of 27285 architecture types. 27286 (gen_data): Generate new format data tables. 27287 * config/arm/arm.c (cpu_tune): New structure. 27288 (cpu_option, processors): Delete. 27289 (arm_print_hint_for_core_or_arch): Delete. Replace with ... 27290 (arm_print_hint_for_cpu_option): ... this and ... 27291 (arm_print_hint_for_arch_option): ... this. 27292 (arm_parse_arch_cpu_name): Delete. Replace with ... 27293 (arm_parse_cpu_option_name): ... this and ... 27294 (arm_parse_arch_option_name): ... this. 27295 (arm_unrecognized_feature): Change type of target parameter to 27296 cpu_arch_option. 27297 (arm_parse_arch_cpu_features): Delete. Replace with ... 27298 (arm_parse_option_features): ... this. 27299 (arm_configure_build_target): Rework to use new configuration data 27300 tables. 27301 (arm_print_tune_info): Rework for new configuration data tables. 27302 * config/arm/arm-cpu-data.h: Regenerated. 27303 * config/arm/arm-cpu.h: Regenerated. 27304 273052017-06-16 Richard Earnshaw <rearnsha@arm.com> 27306 27307 * Makefile.in (OBJS): Move sbitmap.o from here ... 27308 (OBJS-libcommon): ... to here. 27309 273102017-06-16 Richard Earnshaw <rearnsha@arm.com> 27311 27312 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU. 27313 (ISA_ALL_CRYPTO): New macro. 27314 (ISA_ALL_SIMD): New macro 27315 (ISA_ALL_FP): New macro. 27316 * config/arm/arm.c (fpu_bitlist): Update initializer. 27317 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto, 27318 simd or fp. 27319 (arm9e): Add fpu. Add option for nofp 27320 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise. 27321 (arm926ej-s, arm1026ej-s): Likewise. 27322 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16, 27323 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3, 27324 neon-fp16, neon-vfpv4, nofp and nosimd. 27325 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp. 27326 (cortex-a8): Add fpu. Add option for nofp. 27327 (cortex-a9): Add fpu. Add options for nosimd and nofp. 27328 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp. 27329 (cortex-r4f): Add fpu. 27330 (cortex-r5): Add fpu. Add options for nofp.dp and nofp. 27331 (cortex-r7): Use idiv option from architecture. Add fpu. Add option 27332 for nofp. 27333 (cortex-r8): Likewise. 27334 (cortex-m4): Add fpu. Add option for nofp. 27335 (cortex-a15.cortex-a7): Add fpu. Add option for nofp. 27336 (cortex-a17.cortex-a7): Likewise. 27337 (cortex-a32): Add fpu. Add options for crypto and nofp. 27338 (cortex-a35, cortex-a53): Likewise. 27339 (cortex-a57): Add fpu. Add option for crypto. 27340 (cortex-a72, cortex-a73): Likewise. 27341 (exynos-m1): Likewise. 27342 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise. 27343 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise. 27344 (cortex-m33): Add fpu. Add option for nofp. 27345 * config/arm/arm-cpu-cdata.h: Regenerated 27346 * config/arm/arm-cpu-data.h: Regenerated. 27347 273482017-06-16 Richard Earnshaw <rearnsha@arm.com> 27349 27350 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp. 27351 (armv5te, armv5tej): Likewise. 27352 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise. 27353 (armv7): Add options fp and vfpv3-d16. 27354 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16, 27355 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4, 27356 nofp and nosimd. 27357 (armv7ve): Likewise. 27358 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv. 27359 (armv7e-m): Add options fp, fpv5, fp.dp and nofp. 27360 (armv8-a): Add nocrypto option. 27361 (armv8.1-a, armv8.2-a): Likewise. 27362 (armv8-m.main): add options fp, fp.dp and nofp. 27363 273642017-06-16 Richard Earnshaw <rearnsha@arm.com> 27365 27366 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and 27367 nofp. 27368 (armv8-a+crc): Delete. 27369 (armv8.1-a): Add options simd, crypto and nofp. 27370 (armv8.2-a): Add options fp16, simd, crypto and nofp. 27371 (armv8.2-a+fp16): Delete. 27372 (armv8-m.main): Add option dsp. 27373 (armv8-m.main+dsp): Delete. 27374 (cortex-a8): Add fpu. Add nofp option. 27375 (cortex-a9): Add fpu. Add nofp and nosimd options. 27376 * config/arm/parsecpu.awk (gen_data): Generate option tables and 27377 link to main cpu and architecture data structures. 27378 (gen_comm_data): Only put isa attributes from the main architecture 27379 in common tables. 27380 (option): New statement for architecture and CPU entries. 27381 * arm.c (struct cpu_option): New structure. 27382 (struct processors): Add entry for options. 27383 (arm_unrecognized_feature): New function. 27384 (arm_parse_arch_cpu_name): Ignore any characters after the first 27385 '+' character. 27386 (arm_parse_arch_cpu_feature): New function. 27387 (arm_configure_build_target): Separate out any CPU and architecture 27388 features and parse separately. Don't error out if -mfpu=auto is 27389 used with only an architecture string. 27390 (arm_print_asm_arch_directives): New function. 27391 (arm_file_start): Call it. 27392 * config/arm/arm-cpu-cdata.h: Regenerated. 27393 * config/arm/arm-cpu-data.h: Likewise. 27394 * config/arm/arm-tables.opt: Likewise. 27395 273962017-06-16 Richard Earnshaw <rearnsha@arm.com> 27397 27398 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the 27399 assembler when it is not -mfpu=auto. 27400 274012017-06-16 Richard Earnshaw <rearnsha@arm.com> 27402 27403 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro. 27404 (ASM_REWRITE_SPEC_FUNCTIONS): New macro. 27405 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro. 27406 (ASM_CPU_SPEC): Rewrite. 27407 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro. 27408 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use 27409 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove 27410 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS. 27411 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure 27412 copied string is NUL-terminated. Also strip any characters prefixed 27413 by '+'. 27414 (arm_rewrite_selected_arch): New function. 27415 (arm_rewrite_march): New function. 27416 274172017-06-16 Richard Earnshaw <rearnsha@arm.com> 27418 27419 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option. 27420 (x_arm_cpu_string, x_arm_tune_string): Likewise. 27421 (march, mcpu, mtune): Convert to string-based options. 27422 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function. 27423 (arm_parse_arch_cpu_name): New function. 27424 (arm_configure_build_target): Use arm_parse_arch_cpu_name to 27425 identify selected architecture or CPU. 27426 (arm_option_save): New function. 27427 (TARGET_OPTION_SAVE): Redefine. 27428 (arm_option_restore): Restore string options. 27429 (arm_option_print): Print string options. 27430 274312017-06-16 Martin Sebor <msebor@redhat.com> 27432 27433 PR tree-optimization/80933 27434 PR tree-optimization/80934 27435 * builtins.c (fold_builtin_3): Do not handle bcmp here. 27436 * gimple-fold.c (gimple_fold_builtin_bcmp): New function. 27437 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise. 27438 (gimple_fold_builtin): Call them. 27439 274402017-06-16 Jan Hubicka <hubicka@ucw.cz> 27441 27442 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path 27443 as unlikely; update profile. 27444 274452017-06-16 Jan Hubicka <hubicka@ucw.cz> 27446 27447 * predict.c (force_edge_cold): Handle declaring edges impossible 27448 more aggresively. 27449 274502017-06-16 Jan Hubicka <hubicka@ucw.cz> 27451 27452 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update 27453 profile. 27454 (try_unroll_loop_completely): Fix reporting. 27455 274562017-06-16 Jan Hubicka <hubicka@ucw.cz> 27457 27458 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating. 27459 274602017-06-16 James Greenhalgh <james.greenhalgh@arm.com> 27461 27462 PR target/71778 27463 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET 27464 if given a non-constant argument for an intrinsic which requires a 27465 constant. 27466 274672017-06-16 Jan Hubicka <hubicka@ucw.cz> 27468 27469 * profile.c (compare_freqs): New function. 27470 (branch_prob): Sort edge list. 27471 (find_spanning_tree): Assume that the list is priority sorted. 27472 274732017-06-16 Richard Biener <rguenther@suse.de> 27474 27475 PR tree-optimization/81090 27476 * passes.def (pass_record_bounds): Remove. 27477 * tree-pass.h (make_pass_record_bounds): Likewise. 27478 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds, 27479 make_pass_record_bounds): Likewise. 27480 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do 27481 not free niter estimates at the beginning but at the end. 27482 * tree-scalar-evolution.c (scev_finalize): Free niter estimates. 27483 274842017-06-16 Richard Biener <rguenther@suse.de> 27485 27486 * tree-switch-conversion.c (emit_case_bit_tests): Adjust 27487 initializer to workaround ICE in host GCC 4.8. 27488 274892017-06-16 Jan Hubicka <hubicka@ucw.cz> 27490 27491 * ipa-inline-transform.c (update_noncloned_frequencies): Update also 27492 counts. 27493 (clone_inlined_nodes): Update. 27494 274952017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 27496 27497 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update 27498 prefetch settings, and enable prefetching by default at -O3. 27499 275002017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 27501 27502 * config/aarch64/aarch64.c (aarch64_override_options_internal): 27503 Set flag_prefetch_loop_arrays according to tuning data. 27504 275052017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 27506 27507 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune): 27508 New tune structure. 27509 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size. 27510 [Unrelated to main purpose of the patch] Place the pointer field last 27511 to enable type checking errors when tune structure are wrongly merged. 27512 * config/aarch64/aarch64.c (generic_prefetch_tune,) 27513 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,) 27514 (thunderx2t99_prefetch_tune): New tune constants. 27515 (tune_params *_tunings): Update all tunings (no functional change). 27516 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES, 27517 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE 27518 from tunings structures. 27519 275202017-06-16 Jakub Jelinek <jakub@redhat.com> 27521 27522 PR sanitizer/81094 27523 * ubsan.c (instrument_null): Add T argument, use it instead 27524 of computing it based on IS_LHS. 27525 (instrument_object_size): Likewise. 27526 (pass_ubsan::execute): Adjust instrument_null and 27527 instrument_object_size callers to pass gimple_get_lhs or 27528 gimple_assign_rhs1 result to it. Use instrument_null instead of 27529 calling get_base_address and instrument_mem_ref. Handle 27530 aggregate call arguments for object-size sanitization. 27531 275322017-06-16 Yury Gribov <tetra2005@gmail.com> 27533 27534 PR tree-optimization/81089 27535 * tree-vrp.c (is_masked_range_test): Validate operands of 27536 subexpression. 27537 275382017-06-15 Martin Sebor <msebor@redhat.com> 27539 27540 PR c++/80560 27541 * dumpfile.c (dump_register): Avoid calling memset to initialize 27542 a class with a default ctor. 27543 * gcc.c (struct compiler): Remove const qualification. 27544 * genattrtab.c (gen_insn_reserv): Replace memset with initialization. 27545 * hash-table.h: Ditto. 27546 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with 27547 assignment. 27548 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto. 27549 * omp-low.c (lower_omp_ordered_clauses): Replace memset with 27550 default ctor. 27551 * params.h (struct param_info): Make struct members non-const. 27552 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset 27553 with default initialization. 27554 * vec.h (vec_copy_construct, vec_default_construct): New helper 27555 functions. 27556 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy 27557 with vec_copy_construct. 27558 (vect<T>::quick_grow_cleared): Replace memset with default ctor. 27559 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same. 27560 * doc/invoke.texi (-Wclass-memaccess): Document. 27561 275622017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 27563 27564 * emit-rtl.h (is_leaf): Update comment about local 27565 register allocator. 27566 275672017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com> 27568 27569 PR target/78818 27570 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible 27571 for a variable to have a section before checking if the section has a 27572 name. 27573 Set section to.persistent if persistent attribute is set. 27574 Warn if .persistent attribute is used on an automatic variable. 27575 275762017-06-15 Eric Botcazou <ebotcazou@adacore.com> 27577 27578 PR rtl-optimization/80474 27579 * reorg.c (update_block): Do not ignore instructions in a delay slot. 27580 275812017-06-15 Segher Boessenkool <segher@kernel.crashing.org> 27582 27583 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead 27584 of REGNO. 27585 275862017-06-14 Maciej W. Rozycki <macro@imgtec.com> 27587 27588 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant. 27589 (casesi): Emit bounds checking as RTL. 27590 (casesi_internal_mips16_<mode>): Remove bounds checking. 27591 275922017-06-14 Max Filippov <jcmvbkbc@gmail.com> 27593 27594 * config/xtensa/xtensa.c (xtensa_option_override): Append 27595 MASK_CONST16 to target_flags in the absence of TARGET_L32R. 27596 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg, 27597 xtensa_doloop_hooks): Define unconditionally. 27598 (xtensa_reorg_loops): Only call reorg_loops in the presence of 27599 TARGET_LOOPS. 27600 * config/xtensa/xtensa.h (TARGET_L32R): New definition. 27601 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account 27602 for it in xtensa_option_override. 27603 (HARD_FRAME_POINTER_IS_FRAME_POINTER, 27604 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions. 27605 276062017-06-14 Boris Kolpackov <boris@codesynthesis.com> 27607 27608 * doc/cppopts.texi: Document '-' special value to -MF. 27609 276102017-06-14 Wilco Dijkstra <wdijkstr@arm.com> 27611 27612 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency. 27613 (cortex_a53_fconst): Likewise. 27614 (cortex_a53_fpmul): Likewise. 27615 (cortex_a53_f_load_64): Likewise. 27616 (cortex_a53_f_load_many): Likewise. 27617 (cortex_a53_advsimd_alu): Likewise. 27618 (cortex_a53_advsimd_alu_q): Likewise. 27619 (cortex_a53_advsimd_mul): Likewise. 27620 (cortex_a53_advsimd_mul_q): Likewise. 27621 (fpmac bypass): Add new bypass for fpmac-fpmac case. 27622 Add missing fmul, r2f_cvt and fconst cases. 27623 276242017-06-14 Richard Biener <rguenther@suse.de> 27625 27626 PR middle-end/81088 27627 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from 27628 literal constants. 27629 (fold_binary_loc): When associating do not treat pre-existing 27630 TREE_OVERFLOW on literal constants as a reason to allow 27631 TREE_OVERFLOW on associated literal constants. 27632 276332017-06-14 Eric Botcazou <ebotcazou@adacore.com> 27634 27635 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3. 27636 (MASK_FEATURES): New macro. 27637 * config/sparc/sparc.c (sparc_option_override): Remove the special 27638 handling of -mfpu and generalize it to all MASK_FEATURES switches. 27639 276402017-06-14 Eric Botcazou <ebotcazou@adacore.com> 27641 27642 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify 27643 a division of 0 if non-call exceptions are enabled. 27644 276452017-06-14 Andrew Pinski <apinski@cavium.com> 27646 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 27647 27648 PR target/71663 27649 * config/aarch64/aarch64.c (aarch64_expand_vector_init): 27650 Improve vector initialization code gen for only variable case. 27651 276522017-06-14 Eric Botcazou <ebotcazou@adacore.com> 27653 27654 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry. 27655 276562017-06-14 Richard Biener <rguenther@suse.de> 27657 27658 PR tree-optimization/81083 27659 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals 27660 as values. 27661 276622017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27663 27664 * config/rs6000/rs6000.c: Update all comments that mentioned SPE. 27665 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL. 27666 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete. 27667 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use. 27668 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete. 27669 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete. 27670 276712017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27672 27673 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE. 27674 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE. 27675 276762017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27677 27678 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete. 27679 276802017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27681 27682 * config/rs6000/t-rtems: Don't handle SPE. 27683 276842017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27685 27686 * config/rs6000/t-linux: Don't handle SPE. 27687 276882017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27689 27690 * config/rs6000/eabispe.h: Delete file. 27691 276922017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27693 27694 * config/rs6000/t-spe: Delete file. 27695 276962017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27697 27698 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete. 27699 (rs6000_legitimate_offset_address_p): Return false for anything in 27700 V2SImode or V2SFmode. 27701 277022017-06-13 Segher Boessenkool <segher@kernel.crashing.org> 27703 27704 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes 27705 except V2SF and V2SI. Rearrange the vector modes, and add comments. 27706 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode 27707 and V4HImode. 27708 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode. 27709 (rs6000_legitimate_offset_address_p): Ditto. 27710 (rs6000_emit_move): Ditto. 27711 (rs6000_init_builtins): Remove V4HI_type_node. 27712 277132017-06-13 Martin Liska <mliska@suse.cz> 27714 27715 PR sanitize/78204 27716 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p. 27717 (gate_asan): Likewise. 27718 * asan.h (asan_no_sanitize_address_p): Remove the function. 27719 (sanitize_flags_p): New function. 27720 * builtins.def: Fix coding style. 27721 * common.opt: Use renamed enum value. 27722 * convert.c (convert_to_integer_1): Use sanitize_flags_p. 27723 * doc/extend.texi: Document no_sanitize attribute. 27724 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT 27725 to SANITIZE_UNDEFINED_NONDEFAULT. 27726 * gcc.c (sanitize_spec_function): Use the renamed enum value. 27727 * gimple-fold.c (optimize_atomic_compare_exchange_p): 27728 Use sanitize_flags_p. 27729 * gimplify.c (gimplify_function_tree): Likewise. 27730 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise. 27731 * opts.c (parse_no_sanitize_attribute): New function. 27732 (common_handle_option): Use renamed enum value. 27733 * opts.h (parse_no_sanitize_attribute): Declare. 27734 * tree.c (sanitize_flags_p): New function. 27735 * tree.h: Declared here. 27736 * tsan.c: Use sanitize_flags_p. 27737 * ubsan.c (ubsan_expand_null_ifn): Likewise. 27738 (instrument_mem_ref): Likewise. 27739 (instrument_bool_enum_load): Likewise. 27740 (do_ubsan_in_current_function): Remove the function. 27741 (pass_ubsan::execute): Use sanitize_flags_p. 27742 * ubsan.h: Remove do_ubsan_in_current_function 27743 * tree-cfg.c (print_no_sanitize_attr_value): New function. 27744 (dump_function_to_file): Use it here. 27745 277462017-06-13 Martin Jambor <mjambor@suse.cz> 27747 27748 PR tree-optimization/80803 27749 PR tree-optimization/81063 27750 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file. 27751 (propagate_subaccesses_across_link): Enqueue subtree whenever 27752 necessary instead of relying on the caller. 27753 277542017-06-13 Martin Jambor <mjambor@suse.cz> 27755 27756 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses 27757 that have a first_link. 27758 (sort_and_splice_var_accesses): Do not check first_link before 27759 enquing. 27760 (subtree_mark_written_and_enqueue): Likewise. 27761 (propagate_all_subaccesses): Likewise and do not stop at first 27762 parent with a first_link. 27763 277642017-06-13 Martin Jambor <mjambor@suse.cz> 27765 27766 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr 27767 instead of f. 27768 277692017-06-13 Yury Gribov <tetra2005@gmail.com> 27770 27771 * match.pd: New pattern. 27772 277732017-06-13 Yury Gribov <tetra2005@gmail.com> 27774 27775 * tree-vrp.c (is_masked_range_test): New function. 27776 (register_edge_assert_for): Determine ranges for 27777 some bit tests. 27778 277792017-06-13 Yury Gribov <tetra2005@gmail.com> 27780 27781 PR tree-optimization/67328 27782 * fold-const.c (maskable_range_p): New function. 27783 (build_range_check): Generate bittests if possible. 27784 277852017-06-13 Martin Liska <mliska@suse.cz> 27786 27787 * gimple-pretty-print.c (dump_probability): Add new argument. 27788 (dump_edge_probability): Dump both probability and count. 27789 (dump_gimple_label): Likewise. 27790 (dump_gimple_bb_header): Likewise. 27791 277922017-06-13 Georg-Johann Lay <avr@gjlay.de> 27793 27794 PR target/81072 27795 * config/avr/avr-devices.c: Fix indentation. 27796 * config/avr/gen-avr-mmcu-specs.c: Dito. 27797 277982017-06-13 Richard Biener <rguenther@suse.de> 27799 27800 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail, 27801 instead get vector type from stmt_info. 27802 (vectorizable_reduction): Adjust. Remove dead code. 27803 278042017-06-13 Richard Biener <rguenther@suse.de> 27805 27806 PR middle-end/81065 27807 * fold-const.c (extract_muldiv_1): Remove bogus distribution 27808 case of C * (x * C2 + C3). 27809 (fold_addr_of_array_ref_difference): Properly fold index difference. 27810 278112017-06-12 David S. Miller <davem@davemloft.net> 27812 27813 PR target/80968 27814 * config/sparc/sparc.md (return expander): Emit frame blockage if 27815 function uses alloca. 27816 278172017-06-12 Richard Sandiford <richard.sandiford@linaro.org> 27818 27819 * combine.c (make_field_assignment): Check len rather than the mode 27820 precision when calling force_to_mode. 27821 278222017-06-12 Georg-Johann Lay <avr@gjlay.de> 27823 27824 Support multilibs and devices that see flash in RAM address range. 27825 27826 PR target/81072 27827 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum. 27828 (avr_mcu_t) <flash_pm_offset>: New field. 27829 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum. 27830 * config/avr/avr.h (AVR_SHORT_CALLS): New define. 27831 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS. 27832 (AVR_TINY_PM_OFFSET): Remove macro. 27833 * config/avr/avr.opt (-mshort-calls): New option. 27834 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 27835 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL. 27836 * config/avr/avr-c.c (avr_cpu_cpp_builtins) 27837 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS. 27838 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition 27839 instead of avr_arch->have_jmp_call. 27840 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset. 27841 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use 27842 avr_arch->flash_pm_offset to define. 27843 * config/avr/avr-devices.c (avr_arch_types): Add initializers for 27844 new field flash_pm_offset. Add entry for avrxmega3. 27845 (avr_texinfo): Add entry for avrxmega3. 27846 * config/avr/avr-mcus.def: Add entries for: avrxmega3, 27847 attiny212, attiny214, 27848 attiny412, attiny414, attiny416, attiny417, 27849 attiny814, attiny816, attiny817, 27850 attiny1614, attiny1616, attiny1617, 27851 attiny3214, attiny3216, attiny3217. 27852 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use 27853 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET. 27854 (avr_print_operand_address) [AVR_TINY]: Same. 27855 (avr_asm_init_sections) <readonly_data_section>: Only patch 27856 callback if avr_arch->flash_pm_offset = 0. 27857 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it 27858 for rodata if avr_arch->flash_pm_offset != 0. 27859 (avr_encode_section_info) [AVR_TINY]: Adjust comment. 27860 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars. 27861 (opts) [AVR_ISA_RCALL]: Append opt_rcall. 27862 (m_options): Append opt_rcall. 27863 (m_dirnames): Append dir_rcall. 27864 * config/avr/t-multilib: Regenerate. 27865 27866 * configure.ac [target=avr]: Check whether avrxmega3 default 27867 linker description file works as needed. 27868 * configure: Regenerate. 27869 * doc/avr-mmcu.texi: Regenerate. 27870 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it. 27871 <__AVR_ARCH__>: Document avrxmega3 and 103. 27872 <__AVR_HAVE_JMP_CALL__>: Adjust documentation. 27873 <__AVR_SHORT_CALLS__>: Document it. 27874 <__AVR_PM_BASE_ADDRESS__>: Document it. 27875 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it. 27876 (AVR Variable Attributes) <progmem>: Document this is 27877 not needed for avrxmega3. 27878 (AVR Named Address Spaces) <__flash>: Dito. 27879 278802017-06-12 Jan Hubicka <hubicka@ucw.cz> 27881 27882 * cgraph.c (cgraph_node::dump): Complain about profile insanities. 27883 278842017-06-12 Doug Rupp <rupp@adacore.com> 27885 27886 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide". 27887 Append vxworks-stdint.h to the tm_file list. 27888 * config/vxworks-stdint.h: New file. 27889 278902017-06-12 Martin Liska <mliska@suse.cz> 27891 27892 PR tree-optimization/81041 27893 * tree-profile.c (gimple_gen_ic_func_profiler): 27894 Create an extra BB in profile-generate 27895 (gimple_gen_time_profiler): Likewise. 27896 278972017-06-12 Jakub Jelinek <jakub@redhat.com> 27898 27899 PR tree-optimization/81003 27900 * tree-ssa-reassoc.c (force_into_ssa_name): New function. 27901 (update_range_test): Use it instead of force_gimple_operand_gsi. 27902 279032017-06-12 Richard Biener <rguenther@suse.de> 27904 27905 PR tree-optimization/81053 27906 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI 27907 with backedge value not defined in loop. Simplify def stmt 27908 compute. 27909 279102017-06-11 Tom de Vries <tom@codesourcery.com> 27911 27912 PR target/79939 27913 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function. 27914 Return true. 27915 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to 27916 nvptx_cannot_force_const_mem. 27917 279182017-06-10 Jan Hubicka <hubicka@ucw.cz> 27919 27920 * opts.c (finish_options): Move test for flag_split_stack after 27921 it has been initialized. 27922 279232017-06-11 Jason Merrill <jason@redhat.com> 27924 27925 * tree.h (id_equal): New. 27926 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c, 27927 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it 27928 instead of strcmp of IDENTIFIER_POINTER. 27929 279302017-06-10 Jan Hubicka <hubicka@ucw.cz> 27931 27932 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h 27933 (mark_all_inlined_calls_cdtor): Fix formating. 27934 (inline_transform): Rescale profile before inlining. 27935 279362017-06-10 Jan Hubicka <hubicka@ucw.cz> 27937 27938 * cgraph.h (cgraph_edge::clone): Update prototype. 27939 * cgraphclones.c (cgraph_edge::clone): Update profile scaling. 27940 (cgraph_node::create_clone): Update. 27941 (cgraph_node::create_version_clone): Update. 27942 * tree-inline.c (copy_bb): Update. 27943 (expand_call_inline): Update. 27944 279452017-06-10 Segher Boessenkool <segher@kernel.crashing.org> 27946 27947 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function, 27948 factored out from ... 27949 (rs6000_emit_prologue): ... here. 27950 279512017-06-10 Segher Boessenkool <segher@kernel.crashing.org> 27952 27953 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function, 27954 factored out from ... 27955 (rs6000_emit_prologue): ... here. 27956 279572017-06-10 Jan Hubicka <hubicka@ucw.cz> 27958 27959 * predict.c (drop_profile): Also drop individual bb/edge and cgraph 27960 edge counts. 27961 (handle_missing_profiles): Fix computation of tp_first_run. 27962 (counts_to_freqs): Do not touch freqs when count is 0. 27963 279642017-06-10 Jan Hubicka <hubicka@ucw.cz> 27965 27966 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch 27967 profile. 27968 279692017-06-10 Tom de Vries <tom@codesourcery.com> 27970 27971 * doc/sourcebuild.texi (Effective-Target Keywords, Environment 27972 attributes): Document signal effective target. 27973 279742017-06-10 Tom de Vries <tom@codesourcery.com> 27975 27976 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 27977 Document effective target stack_size. 27978 279792017-06-09 David Malcolm <dmalcolm@redhat.com> 27980 27981 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits 27982 to the edit_context if they can be auto-applied. 27983 279842017-06-9 Ian Lance Taylor <iant@golang.org> 27985 27986 * opts.c (finish_options): If -fsplit-stack, disable implicit 27987 -forder-blocks-and-partition. 27988 * doc/invoke.texi (Optimize Options): Document that when using 27989 -fsplit-stack -forder-blocks-and-partition is not implicitly 27990 enabled. 27991 279922017-06-09 Jan Hubicka <hubicka@ucw.cz> 27993 27994 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, 27995 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, 27996 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. 27997 * builtins.def (abort, trap, unreachable): Declare cold. 27998 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. 27999 * tree-core.h (ECF_COLD): New. 28000 * tree.c (set_call_expr_flags): Handle ECF_COLD. 28001 (build_common_builtin_nodes): Mark unreachable and abort as cold. 28002 280032017-06-09 Jan Hubicka <hubicka@ucw.cz> 28004 28005 * predict.c (unlikely_executed_stmt_p): Cleanup. 28006 280072017-06-09 Richard Biener <rguenther@suse.de> 28008 28009 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded 28010 model if the ref is always written to. 28011 280122017-06-09 Tamar Christina <tamar.christina@arm.com> 28013 28014 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New. 28015 280162017-06-09 Tamar Christina <tamar.christina@arm.com> 28017 28018 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive 28019 than udiv. 28020 280212017-06-09 Tom de Vries <tom@codesourcery.com> 28022 28023 PR target/80855 28024 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with 28025 "target cannot support label values" when encountering LABEL_REF. 28026 280272017-06-09 Martin Liska <mliska@suse.cz> 28028 28029 * tree-profile.c (gimple_gen_ic_profiler): Update comment. 28030 (gimple_gen_ic_func_profiler): Emit direct comparison 28031 of __gcov_indirect_call_callee with NULL. 28032 (gimple_gen_time_profiler): Change probability from 28033 PROB_VERY_UNLIKELY to PROB_UNLIKELY. 28034 280352017-06-09 Jan Hubicka <hubicka@ucw.cz> 28036 28037 * profile.c (edge_gcov_counts): Turn to pointer. 28038 (compute_branch_probabilities, compute_branch_probabilities): Update. 28039 (branch_prob): Do not clear edge_gcov_count. 28040 * profile.h (edge_gcov_counts): Turn to pointer. 28041 (edge_gcov_count): Update. 28042 280432017-06-09 Jan Hubicka <hubicka@ucw.cz> 28044 28045 * gimple.h (gimple_check_failed): Mark cold. 28046 280472017-06-09 Richard Biener <rguenther@suse.de> 28048 28049 PR tree-optimization/66623 28050 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup, 28051 refactor check_reduction into two parts, properly computing 28052 whether we have to check reduction validity for outer loop 28053 vectorization. 28054 280552017-06-09 Richard Biener <rguenther@suse.de> 28056 28057 PR tree-optimization/79483 28058 * graphite-scop-detection.c (order): New global. 28059 (get_order): Compute bb to order mapping that satisfies code 28060 generation constraints. 28061 (cmp_pbbs): New helper. 28062 (build_scops): Start domwalk at entry block, sort generated 28063 pbbs. 28064 280652017-06-09 Richard Biener <rguenther@suse.de> 28066 28067 PR middle-end/81007 28068 * ipa-polymorphic-call.c 28069 (ipa_polymorphic_call_context::restrict_to_inner_class): 28070 Skip FIELD_DECLs with error_mark_node type. 28071 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges 28072 last again. 28073 280742017-06-09 Martin Liska <mliska@suse.cz> 28075 28076 * predict.c (struct branch_predictor): New struct. 28077 (test_prediction_value_range): New test. 28078 (predict_c_tests): New function. 28079 * selftest-run-tests.c (selftest::run_tests): Run the function. 28080 * selftest.h: Declare new tests. 28081 280822017-06-09 Segher Boessenkool <segher@kernel.crashing.org> 28083 28084 PR target/80966 28085 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that 28086 gen_add3_insn did not fail. 28087 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to 28088 r0, construct that number in a temporary reg and add that reg to r0. 28089 If asked to put the result in r0 as well, fail. 28090 280912017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> 28092 28093 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling 28094 for early expansion of vec_eqv. 28095 280962017-06-08 Jakub Jelinek <jakub@redhat.com> 28097 28098 PR middle-end/81005 28099 * ubsan.c (instrument_null): Avoid pointless code temporary. 28100 (pass_ubsan::execute): Instrument aggregate arguments of calls. 28101 281022017-06-08 Uros Bizjak <ubizjak@gmail.com> 28103 28104 PR target/81015 28105 Revert: 28106 2016-12-14 Uros Bizjak <ubizjak@gmail.com> 28107 28108 PR target/59874 28109 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. 28110 (*clzhi2): Ditto. 28111 281122017-06-08 Jan Hubicka <hubicka@ucw.cz> 28113 28114 * predict.c (unlikely_executed_edge_p): Move ahead. 28115 (probably_never_executed_edge_p): Use it. 28116 281172017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> 28118 28119 PR middle-end/79988 28120 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove 28121 gimple_call_builtin_p call. 28122 281232017-06-08 Jan Hubicka <hubicka@ucw.cz> 28124 28125 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD. 28126 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, 28127 rtl_check_failed_type2, rtl_check_failed_code1, 28128 rtl_check_failed_code2, rtl_check_failed_code_mode, 28129 rtl_check_failed_block_symbol, cwi_check_failed_bounds, 28130 rtvec_check_failed_bounds, rtl_check_failed_flag, 28131 _fatal_insn_not_found, _fatal_insn): Likewise. 28132 * tree.h (tree_contains_struct_check_failed, 28133 tree_check_failed, tree_not_check_failed, 28134 tree_class_check_failed, tree_range_check_failed, 28135 tree_not_class_check_failed, tree_int_cst_elt_check_failed, 28136 tree_vec_elt_check_failed, phi_node_elt_check_failed, 28137 tree_operand_check_failed, omp_clause_check_failed, 28138 omp_clause_operand_check_failed, omp_clause_range_check_failed): 28139 Likewise. 28140 281412017-06-08 Jan Hubicka <hubicka@ucw.cz> 28142 28143 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check 28144 flag_branch_probabilities. 28145 * ipa-inline.c (edge_badness): Likewise. 28146 * ipa-profile.c (ipa_propagate_frequency_1): Likewise. 28147 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. 28148 * predict.c (maybe_hot_frequency_p): Likewise. 28149 (probably_never_executed): Likewise. 28150 * sched-ebb.c (schedule_ebbs): Likewise. 28151 * sched-rgn.c (find_single_block_region): Likewise. 28152 * tracer.c (tail_duplicate): Likewise. 28153 281542017-06-08 Jan Hubicka <hubicka@ucw.cz> 28155 28156 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no 28157 longer requires x_flag_profile_use. 28158 281592017-06-08 Jan Hubicka <hubicka@ucw.cz> 28160 28161 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition 28162 instead of flag_reorder_blocks_and_partition. 28163 * dbxout.c (dbxout_function_end): Likewise. 28164 * dwarf2out.c (gen_subprogram_die): Likewise. 28165 * haifa-sched.c (sched_create_recovery_edges): Likewise. 28166 * hw-doloop.c (reorg_loops): Likewise. 28167 * varasm.c (assemble_start_function, 28168 assemble_end_function): Likewise. 28169 (decide_function_section): Do not check for 28170 flag_reorder_blocks_and_partition. 28171 281722017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> 28173 28174 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): 28175 New function. 28176 (chkp_get_hard_register_fake_addr_expr): Ditto. 28177 (chkp_build_addr_expr): Add check for hard reg case. 28178 (chkp_parse_array_and_component_ref): Ditto. 28179 (chkp_find_bounds_1): Ditto. 28180 (chkp_process_stmt): Don't generate bounds store for 28181 hard reg case. 28182 281832017-06-08 Jan Hubicka <hubicka@ucw.cz> 28184 28185 * predict.c (maybe_hot_bb_p): Do not check profile status. 28186 (maybe_hot_edge_p): Likewise. 28187 (probably_never_executed): Check for zero counts even if profile 28188 is not read. 28189 (unlikely_executed_edge_p): New function. 28190 (unlikely_executed_stmt_p): New function. 28191 (unlikely_executed_bb_p): New function. 28192 (set_even_probabilities): Use unlikely predicates. 28193 (combine_predictions_for_bb): Likewise. 28194 (predict_paths_for_bb): Likewise. 28195 (predict_paths_leading_to_edge): Likewise. 28196 (determine_unlikely_bbs): New function. 28197 (estimate_bb_frequencies): Use it. 28198 (compute_function_frequency): Use zero counts even if profile is 28199 not read. 28200 * profile-count.h: Fix typo. 28201 282022017-08-08 Julia Koval <julia.koval@intel.com> 28203 28204 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8, 28205 _mm512_mask_cvtsepi16_storeu_epi8, 28206 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics. 28207 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8, 28208 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8, 28209 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8, 28210 _mm_mask_cvtepi16_storeu_epi8): New intrinsics. 28211 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type. 28212 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI, 28213 VOID_FTYPE_PV16QI_V16HI_UHI): New function types. 28214 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask, 28215 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask, 28216 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask, 28217 __builtin_ia32_pmovuswb256mem_mask, 28218 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask) 28219 __builtin_ia32_pmovwb512mem_mask): New builtins. 28220 282212017-08-08 Julia Koval <julia.koval@intel.com> 28222 28223 PR target/73350,80862 28224 * config/i386/subst.md (round): Fix round pattern. 28225 * config/i386/i386.c (ix86_erase_embedded_rounding): 28226 Fix erasing rounding for the fixed pattern. 28227 282282017-06-08 Jan Hubicka <hubicka@ucw.cz> 28229 28230 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko. 28231 282322017-06-08 Martin Liska <mliska@suse.cz> 28233 28234 PR gcov-profile/80911 28235 * gcov.c (block_info::block_info): New constructor. 28236 282372017-06-07 Carl Love <cel@us.ibm.com> 28238 28239 * config/rs6000/rs6000-c: The return type of the following 28240 built-in functions was implemented as int not long long. Fix sign 28241 of return value for the unsigned version of vec_mulo and vec_mule. 28242 vector unsigned long long vec_bperm (vector unsigned long long, 28243 vector unsigned char) 28244 vector signed long long vec_mule (vector signed int, 28245 vector signed int) 28246 vector unsigned long long vec_mule (vector unsigned int, 28247 vector unsigned int) 28248 vector signed long long vec_mulo (vector signed int, 28249 vector signed int) 28250 vector unsigned long long vec_mulo (vector unsigned int, 28251 vector unsigned int) 28252 * doc/extend.texi: Fix the documentation for the built-in 28253 functions. 28254 282552017-06-07 Carl Love <cel@us.ibm.com> 28256 28257 PR target/80982 28258 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of 28259 for BE. 28260 282612017-06-07 Carl Love <cel@us.ibm.com> 28262 28263 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel 28264 support, Generate doublehv for signed int/float for BE case only. 28265 282662017-06-07 Alexander Monakov <amonakov@ispras.ru> 28267 28268 * doc/invoke.texi (mcx16): Rewrite. 28269 282702017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28271 28272 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete. 28273 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf, 28274 *mov<mode>_softfloat, and an anonymous splitter): Use 28275 nonimmediate_operand instead of rs6000_nonimmediate_operand. 28276 282772017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28278 28279 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and 28280 SPEFSCR registers. 28281 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. 28282 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE. 28283 (rs6000_debug_reg_global): Adjust. 28284 (rs6000_init_hard_regno_mode_ok): Adjust. 28285 (rs6000_dbx_register_number): Adjust. 28286 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115. 28287 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): 28288 Remove SPE_ACC and SPEFSCR. 28289 (REG_ALLOC_ORDER): Ditto. 28290 (FRAME_POINTER_REGNUM): Change to 111. 28291 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers. 28292 (REG_CLASS_NAMES): Ditto. 28293 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers. 28294 (REGISTER_NAMES): Ditto. 28295 (ADDITIONAL_REG_NAMES): Ditto. 28296 (rs6000_reg_names): Ditto. 28297 * config/rs6000/rs6000.md: Renumber some register number 28298 define_constants. 28299 283002017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28301 28302 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high 28303 registers. 28304 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. 28305 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149 28306 to 117. 28307 (DWARF_REG_TO_UNWIND_COLUMN): Do not define. 28308 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): 28309 Delete the SPE high registers. 28310 (REG_ALLOC_ORDER): Ditto. 28311 (enum reg_class): Remove SPE_HIGH_REGS. 28312 (REG_CLASS_NAMES): Ditto. 28313 (REG_CLASS_CONTENTS): Delete the SPE high registers. 28314 (REGISTER_NAMES): Ditto. 28315 (rs6000_reg_names): Ditto. 28316 * doc/tm.texi.in: Remove SPE as example. 28317 * doc/tm.texi: Regenerate. 28318 283192017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28320 28321 * config/rs6000/8540.md (ppc8540_brinc): Delete. 28322 * config/rs6000/e500mc.md (e500mc_brinc): Delete. 28323 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete. 28324 * config/rs6000/rs6000.md (type): Remove "brinc". 28325 283262017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28327 28328 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers. 28329 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000. 28330 * config/rs6000/linuxspe.h: Delete file. 28331 * config/rs6000/rs6000.md: Don't include spe.md. 28332 * config/rs6000/spe.h: Delete file. 28333 * config/rs6000/spe.md: Delete file. 28334 * config/rs6000/t-rs6000: Remove spe.md. 28335 283362017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28337 28338 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat. 28339 (reg_or_none500mem_operand): Delete. 28340 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand 28341 instead of reg_or_none500mem_operand. 28342 283432017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28344 28345 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete 28346 handling of SPE flags. 28347 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete. 28348 283492017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28350 28351 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove 28352 SPE ABI handling. 28353 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2. 28354 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3, 28355 paired_divv2sf3): Similar. 28356 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI, 28357 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify. 28358 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and 28359 RS6000_BUILTIN_S. 28360 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X. 28361 Rename the paired_* instruction patterns. 28362 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not 28363 define __SPE__. 28364 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete. 28365 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S. 28366 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size, 28367 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and 28368 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with 28369 PAIRED_VECTOR_MODE. 28370 (struct machine_function): Delete field spe_insn_chain_scanned_p. 28371 (spe_func_has_64bit_regs_p): Delete. 28372 (spe_expand_predicate_builtin): Delete. 28373 (spe_expand_evsel_builtin): Delete. 28374 (TARGET_DWARF_REGISTER_SPAN): Do not define. 28375 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define. 28376 (invalid_e500_subreg): Delete. 28377 (rs6000_legitimize_address): Always force_reg op2 as well, for 28378 paired single memory accesses. 28379 (rs6000_member_type_forces_blk): Delete. 28380 (rs6000_spe_function_arg): Delete. 28381 (rs6000_expand_unop_builtin): Delete SPE handling. 28382 (rs6000_expand_binop_builtin): Ditto. 28383 (spe_expand_stv_builtin): Delete. 28384 (bdesc_2arg_spe): Delete. 28385 (spe_expand_builtin): Delete. 28386 (spe_expand_predicate_builtin): Delete. 28387 (spe_expand_evsel_builtin): Delete. 28388 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling. 28389 (spe_init_builtins): Delete. 28390 (spe_func_has_64bit_regs_p): Delete. 28391 (savres_routine_name): Delete "info" parameter. Adjust callers. 28392 (rs6000_emit_stack_reset): Ditto. 28393 (rs6000_dwarf_register_span): Delete. 28394 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE, 28395 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P, 28396 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S): 28397 Delete. 28398 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO): 28399 Delete. 28400 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete. 28401 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE. 28402 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, 28403 mulv2sf3, divv2sf3): Delete expanders. 28404 284052017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28406 28407 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete. 28408 284092017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28410 28411 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete. 28412 * config/rs6000/rs6000.c: Ditto. 28413 284142017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28415 28416 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete. 28417 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by 28418 comparison_operator. 28419 284202017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28421 28422 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs. 28423 * config/rs6000/rs6000.opt: Ditto. 28424 * config/rs6000/t-rtems: Ditto. 28425 284262017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28427 28428 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and 28429 TARGET_E500_SINGLE by 0, simplify. 28430 * config/rs6000/rs6000.c: Ditto. 28431 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS. 28432 (spe_build_register_parallel): Delete. 28433 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE, 28434 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS. 28435 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE, 28436 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify. 28437 (E500_CONVERT): Delete. 28438 * config/rs6000/spe.md: Remove many patterns and all define_constants. 28439 284402017-06-07 Segher Boessenkool <segher@kernel.crashing.org> 28441 28442 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify. 28443 * config/rs6000/dfp.md: Ditto. 28444 (negdd2, *negdd2_fpr): Merge. 28445 (absdd2, *absdd2_fpr): Merge. 28446 (negtd2, *negtd2_fpr): Merge. 28447 (abstd2, *abstd2_fpr): Merge. 28448 * config/rs6000/e500.h: Delete file. 28449 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace 28450 TARGET_FPRS by 1 and simplify. 28451 * config/rs6000/rs6000-c.c: Ditto. 28452 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and 28453 TARGET_DF_SPE by 0. 28454 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and 28455 TARGET_DF_SPE. 28456 * config/rs6000/rs6000.md: Ditto. 28457 (floatdidf2, *floatdidf2_fpr): Merge. 28458 (move_from_CR_gt_bit): Delete. 28459 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify. 28460 (E500_CR_IOR_COMPARE): Delete. 28461 (All patterns that require !TARGET_FPRS): Delete. 28462 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify. 28463 284642017-06-07 Bin Cheng <bin.cheng@arm.com> 28465 28466 * passes.def (pass_iv_canon): Move before pass_loop_distribution. 28467 284682017-06-07 Bin Cheng <bin.cheng@arm.com> 28469 28470 * graphds.c (add_edge): Intitialize edge's attached data. 28471 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function 28472 pointer parameter. Call pointed function on each edge during 28473 graph traversing. Skip traversing the edge when the function 28474 returns true. 28475 (graphds_dfs, graphds_scc): Ditto. 28476 (for_each_edge): New parameter. Pass the new parameter to callback 28477 function. 28478 * graphds.h (skip_edge_callback): New function pointer type. 28479 (graphds_dfs, graphds_scc): New function pointer parameter. 28480 (graphds_edge_callback, for_each_edge): New parameter. 28481 284822017-06-07 Bin Cheng <bin.cheng@arm.com> 28483 28484 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor 28485 out code checking if runtime alias check is possible to below ... 28486 Call the new function. 28487 * tree-data-ref.c (runtime_alias_check_p): ... to new function. 28488 * tree-data-ref.h (runtime_alias_check_p): New decalaration. 28489 284902017-06-07 Marek Polacek <polacek@redhat.com> 28491 28492 PR sanitizer/80932 28493 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add 28494 TYPE_OVERFLOW_WRAPS check. 28495 284962017-06-07 Bin Cheng <bin.cheng@arm.com> 28497 28498 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop 28499 if versioning is required. 28500 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop 28501 peeling with the check for versioning. 28502 285032017-06-07 Bin Cheng <bin.cheng@arm.com> 28504 28505 * tree-vectorizer.h (vect_build_loop_niters): New parameter. 28506 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter. 28507 Set true to new parameter if new ssa variable is defined. 28508 (vect_gen_vector_loop_niters): Refactor. Set range information 28509 for the new vector loop bound variable. 28510 (vect_do_peeling): Ditto. 28511 285122017-06-07 Bin Cheng <bin.cheng@arm.com> 28513 28514 * tree-affine.c (ssa.h): Include header file. 28515 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type 28516 has wrapping overflow behavior. 28517 285182017-06-07 Bin Cheng <bin.cheng@arm.com> 28519 28520 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X). 28521 285222017-06-07 Bin Cheng <bin.cheng@arm.com> 28523 28524 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ... 28525 (tree_to_aff_combination): ... here. 28526 285272017-06-07 Bin Cheng <bin.cheng@arm.com> 28528 28529 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New 28530 reg_pressure model function. 28531 (ivopts_global_cost_for_size): Delete. 28532 (determine_set_costs, iv_ca_recount_cost): Call new model function 28533 ivopts_estimate_reg_pressure. 28534 285352017-06-07 Tamar Christina <tamar.christina@arm.com> 28536 28537 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more 28538 expensive than udiv. Remove floating point cases from mod. 28539 285402017-06-07 Tamar Christina <tamar.christina@arm.com> 28541 28542 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost): 28543 Increase idiv cost. 28544 285452017-06-07 Tamar Christina <tamar.christina@arm.com> 28546 28547 * config/aarch64/aarch64.md 28548 (copysignsf3): Fix mask generation. 28549 285502017-06-07 Jakub Jelinek <jakub@redhat.com> 28551 28552 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to 28553 TDI_gimple. 28554 (class dump_manager): Add register_dumps method. 28555 * dumpfile.c: Include langhooks.h. 28556 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}. 28557 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1. 28558 (FIRST_ME_AUTO_NUMBERED_DUMP): Define. 28559 (dump_manager::dump_register): Start with 512 entries instead of 32. 28560 (dump_manager::register_dumps): New method. 28561 * toplev.c (general_init): Instead of invoking register_dumps 28562 langhook, invoke register_dumps method on the dump manager. 28563 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of 28564 TDI_generic. 28565 285662017-06-07 Richard Sandiford <richard.sandiford@linaro.org> 28567 28568 * doc/md.texi: Clarify the restrictions on a define_insn condition. 28569 Say that # requires an associated define_split to exist, and that 28570 the define_split must be suitable for use after register allocation. 28571 285722017-06-06 Jan Hubicka <hubicka@ucw.cz> 28573 28574 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks. 28575 (compute_outgoing_frequencies): Also initialize zero counts. 28576 (find_many_sub_basic_blocks): Do not produce uninitialized profile 28577 around loops; preserve more of profile when nothing changes. 28578 285792017-06-06 Jim Wilson <jim.wilson@linaro.org> 28580 28581 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to 28582 here. 28583 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here. 28584 * config/arm/arm-cpu-cdata.h: Regenerate. 28585 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise. 28586 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise. 28587 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries. 28588 * config/arm/arm.c (arm_qdf24xx_tune): Delete. 28589 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx 28590 support. 28591 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx 28592 support. 28593 * config/arm/t-rmprofile: Likewise. 28594 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support. 28595 285962017-06-06 David S. Miller <davem@davemloft.net> 28597 28598 PR target/80968 28599 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame 28600 blockage if function uses alloca. 28601 286022017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 28603 28604 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref): 28605 New "uid" fields to hold pretty-print IDs of group and ref. 28606 Memory references are now identified as <group_id>:<ref_id> 28607 instead of using [random] addresses. 28608 (dump_mem_details): Simplify, no functional change. 28609 (dump_mem_ref): Simplify and make output more concise. 28610 Replace couple of fprintf's throughout code with calls to dump_mem_ref. 28611 (find_or_create_group): Initialize group uid. 28612 (record_ref): Initialize ref uid. Improve debug output. 28613 (prune_group_by_reuse, should_issue_prefetch_p,) 28614 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,) 28615 (mark_nontemporal_store, determine_loop_nest_reuse): 28616 Improve debug output. 28617 286182017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 28619 28620 * dbgcnt.def (prefetch): New debug counter. 28621 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include. 28622 (schedule_prefetches): Stop issueing prefetches if debug counter 28623 tripped. 28624 286252017-06-06 Tom de Vries <tom@codesourcery.com> 28626 28627 * doc/sourcebuild.texi (Testsuites, C Language Testsuites, 28628 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme. 28629 286302017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28631 28632 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander): 28633 Use aarch64_reg_or_zero predicate for operand 4. 28634 (aarch64_compare_and_swap<mode> define_insn_and_split): 28635 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint. 28636 (aarch64_store_exclusive<mode>): Likewise for operand 2. 28637 286382017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com> 28639 28640 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ... 28641 (arm_compute_save_core_reg_mask): This. 28642 (thumb1_compute_save_reg_mask): Rename into ... 28643 (thumb1_compute_save_core_reg_mask): This. 28644 (arm_compute_save_reg0_reg12_mask): Adapt comment. 28645 (arm_compute_frame_layout): Likewise. 28646 286472017-06-06 Richard Biener <rguenther@suse.de> 28648 28649 PR tree-optimization/80974 28650 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only 28651 keep or clear leaders SSA info. 28652 286532017-06-06 Tom de Vries <tom@codesourcery.com> 28654 28655 * config/nvptx/nvptx.c (split_mode_p): New function. 28656 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p. 28657 286582017-06-06 Tom de Vries <tom@codesourcery.com> 28659 28660 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode. 28661 286622017-06-06 Jan Hubicka <hubicka@ucw.cz> 28663 28664 PR bootstrap/80978 28665 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale 28666 profile. 28667 286682017-06-06 Jan Hubicka <hubicka@ucw.cz> 28669 28670 * shrink-wrap.c (handle_simple_exit): Update profile. 28671 (try_shrink_wrapping): Upate profile. 28672 286732017-06-06 Jan Hubicka <hubicka@ucw.cz> 28674 28675 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY. 28676 (tree_guess_outgoing_edge_probabilities): New. 28677 * predict.h (tree_guess_outgoing_edge_probabilities): Declare. 28678 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile. 28679 286802017-06-06 Jan Hubicka <hubicka@ucw.cz> 28681 28682 * ipa-split.c (split_function): Initialize return bb profile. 28683 286842017-06-06 Jan Hubicka <hubicka@ucw.cz> 28685 28686 * profile.c (compute_branch_probabilities): Also initialize 28687 EXIT_BLOCK profile. 28688 286892017-06-06 Richard Biener <rguenther@suse.de> 28690 28691 PR tree-optimization/80928 28692 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps. 28693 (vect_analyze_loop_operations): Properly guard analysis for 28694 pure SLP case. 28695 (vect_transform_loop): Likewise. 28696 (vect_analyze_loop_2): Also reset SLP type on PHIs. 28697 (vect_model_induction_cost): Do not cost for pure SLP. 28698 (vectorizable_induction): Pass in SLP node, implement SLP vectorization 28699 of induction in inner loop vectorization. 28700 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs. 28701 (vect_get_and_check_slp_defs): Handle vect_induction_def. 28702 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the 28703 recursion. 28704 (vect_analyze_slp_cost_1): Cost induction. 28705 (vect_detect_hybrid_slp_stmts): Handle PHIs. 28706 (vect_get_slp_vect_defs): Likewise. 28707 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction. 28708 (vect_transform_stmt): Handle SLP reductions. 28709 * tree-vectorizer.h (vectorizable_induction): Adjust. 28710 287112017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> 28712 28713 * config/rs6000/rs6000.c (make_resolver_func): Update 28714 init_lowered_empty_function call. 28715 287162017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de> 28717 28718 * doc/invoke.texi: Document the -fprofile-abs-path option. 28719 * common.opt (fprofile-abs-path): New option. 28720 * gcov-io.h (gcov_write_filename): Declare. 28721 * gcov-io.c (gcov_write_filename): New function. 28722 * coverage.c (coverage_begin_function): Use gcov_write_filename. 28723 * profile.c (output_location): Likewise. 28724 287252017-06-05 Jan Hubicka <hubicka@ucw.cz> 28726 28727 * shring-wrap.c: Revert accidental commit. 28728 287292017-06-05 Volker Reichelt <v.reichelt@netcologne.de> 28730 28731 * doc/invoke.texi (-Wduplicated-branches): Add to warning list. 28732 287332017-06-05 Jan Hubicka <hubicka@ucw.cz> 28734 28735 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of 28736 new edge. 28737 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing 28738 profile in callgraph edge. 28739 * profile-count.h (apply_probability): If THIS is 0, then result is 0 28740 (apply_scale): Likewise. 28741 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body): 28742 Also scale profile when inlining function with zero profile. 28743 (initialize_cfun): Update exit block profile even when it is zero. 28744 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case 28745 when profile is read. 28746 287472017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> 28748 28749 * config/rs6000/rs6000.c (toplevel): Include attribs.h. 28750 (CLONE_*): New constants to define the processors we can generate 28751 code for with the target_clone attribute. 28752 (rs6000_clone_map): New array to identify which clone processors 28753 the current program is running on. 28754 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the 28755 target_clone attribute. 28756 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise. 28757 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise. 28758 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise. 28759 (cpu_expand_builtin): Add support for target_clone attribute. 28760 (rs6000_valid_attribute_p): Allow "default" attribute. 28761 (get_decl_name): New debug function to simplify printing the 28762 current function name in debugging statements. 28763 (rs6000_clone_priority): New functions to support the target_clone 28764 attribute, and be able to generate code to switch between ISA 2.05 28765 through ISA 3.0 (power6 through power9). 28766 (rs6000_compare_version_priority): Likewise. 28767 (rs6000_get_function_versions_dispatcher): Likewise. 28768 (make_resolver_func): Likewise. 28769 (add_condition_to_bb): Likewise. 28770 (dispatch_function_versions): Likewise. 28771 (rs6000_generate_version_dispatcher_body): Likewise. 28772 (rs6000_can_inline_p): Call get_decl_name for debugging usage. 28773 (fusion_gpr_load_p): Fix a spacing issue. 28774 * doc/extend.texi (Common Function Attributes): Document that the 28775 PowerPC supports the target_clone attribute. 28776 287772017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com> 28778 28779 * config/arm/arm.h: explain F symbol found in description of ARM 28780 register allocation in its legend. 28781 287822017-06-05 Jan Hubicka <hubicka@ucw.cz> 28783 28784 * config/mips/frame-header-opt.c: Include profile-count.h. 28785 * config/riscv/riscv.c: Include profile-count.h 28786 287872017-06-05 Jan Hubicka <hubicka@ucw.cz> 28788 28789 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter; 28790 update profile. 28791 (sm_set_flag_if_changed): Add bbs field. 28792 (execute_sm_if_changed_flag_set): Pass BBS. 28793 (execute_sm): Update. 28794 287952017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28796 28797 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): 28798 New pattern. 28799 288002017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28801 28802 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn. 28803 (peephole2): New peephole2 to emit the above. 28804 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate. 28805 288062017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28807 28808 * config/aarch64/aarch64.c (define_peephole2 above 28809 *sub_<shift>_<mode>): New peephole. 28810 288112017-05-23 Jan Hubicka <hubicka@ucw.cz> 28812 28813 * config/i386/i386.c (make_resolver_func): Update. 28814 * Makefile.in: Add profile-count.h and profile-count.o 28815 * auto-profile.c (afdo_indirect_call): Update to new API. 28816 (afdo_set_bb_count): Update. 28817 (afdo_propagate_edge): Update. 28818 (afdo_propagate_circuit): Update. 28819 (afdo_calculate_branch_prob): Update. 28820 (afdo_annotate_cfg): Update. 28821 * basic-block.h: Include profile-count.h 28822 (struct edge_def): Turn count to profile_count. 28823 (struct basic_block_def): Likewie. 28824 (REG_BR_PROB_BASE): Move to profile-count.h 28825 (RDIV): Move to profile-count.h 28826 * bb-reorder.c (max_entry_count): Turn to profile_count. 28827 (find_traces): Update. 28828 (rotate_loop):Update. 28829 (connect_traces):Update. 28830 (sanitize_hot_paths):Update. 28831 * bt-load.c (migrate_btr_defs): Update. 28832 * cfg.c (RDIV): Remove. 28833 (init_flow): Use alloc_block. 28834 (alloc_block): Uninitialize count. 28835 (unchecked_make_edge): Uninitialize count. 28836 (check_bb_profile): Update. 28837 (dump_edge_info): Update. 28838 (dump_bb_info): Update. 28839 (update_bb_profile_for_threading): Update. 28840 (scale_bbs_frequencies_int): Update. 28841 (scale_bbs_frequencies_gcov_type): Update. 28842 (scale_bbs_frequencies_profile_count): New. 28843 * cfg.h (update_bb_profile_for_threading): Update. 28844 (scale_bbs_frequencies_profile_count): Declare. 28845 * cfgbuild.c (compute_outgoing_frequencies): Update. 28846 (find_many_sub_basic_blocks): Update. 28847 * cfgcleanup.c (try_forward_edges): Update. 28848 (try_crossjump_to_edge): Update. 28849 * cfgexpand.c (expand_gimple_tailcall): Update. 28850 (construct_exit_block): Update. 28851 * cfghooks.c (verify_flow_info): Update. 28852 (dump_bb_for_graph): Update. 28853 (split_edge): Update. 28854 (make_forwarder_block): Update. 28855 (duplicate_block): Update. 28856 (account_profile_record): Update. 28857 * cfgloop.c (find_subloop_latch_edge_by_profile): Update. 28858 (get_estimated_loop_iterations): Update. 28859 * cfgloopanal.c (expected_loop_iterations_unbounded): Update. 28860 (single_likely_exit): Update. 28861 * cfgloopmanip.c (scale_loop_profile): Update. 28862 (loopify): Update. 28863 (set_zero_probability): Update. 28864 (lv_adjust_loop_entry_edge): Update. 28865 * cfgrtl.c (force_nonfallthru_and_redirect): Update. 28866 (purge_dead_edges): Update. 28867 (rtl_account_profile_record): Update. 28868 * cgraph.c (cgraph_node::create): Uninitialize count. 28869 (symbol_table::create_edge): Uninitialize count. 28870 (cgraph_update_edges_for_call_stmt_node): Update. 28871 (cgraph_edge::dump_edge_flags): Update. 28872 (cgraph_node::dump): Update. 28873 (cgraph_edge::maybe_hot_p): Update. 28874 * cgraph.h: Include profile-count.h 28875 (create_clone), create_edge, create_indirect_edge): Update. 28876 (cgraph_node): Turn count to profile_count. 28877 (cgraph_edge0: Likewise. 28878 (make_speculative, clone): Update. 28879 (create_edge): Update. 28880 (init_lowered_empty_function): Update. 28881 * cgraphclones.c (cgraph_edge::clone): Update. 28882 (duplicate_thunk_for_node): Update. 28883 (cgraph_node::create_clone): Update. 28884 * cgraphunit.c (cgraph_node::analyze): Update. 28885 (cgraph_node::expand_thunk): Update. 28886 * final.c (dump_basic_block_info): Update. 28887 * gimple-streamer-in.c (input_bb): Update. 28888 * gimple-streamer-out.c (output_bb): Update. 28889 * graphite.c (print_global_statistics): Update. 28890 (print_graphite_scop_statistics): Update. 28891 * hsa-brig.c: Include basic-block.h. 28892 * hsa-dump.c: Include basic-block.h. 28893 * hsa-gen.c (T sum_slice): Update. 28894 (convert_switch_statements):Update. 28895 * hsa-regalloc.c: Include basic-block.h. 28896 * ipa-chkp.c (chkp_produce_thunks): Update. 28897 * ipa-cp.c (struct caller_statistics): Update. 28898 (init_caller_stats): Update. 28899 (gather_caller_stats): Update. 28900 (ipcp_cloning_candidate_p): Update. 28901 (good_cloning_opportunity_p): Update. 28902 (get_info_about_necessary_edges): Update. 28903 (dump_profile_updates): Update. 28904 (update_profiling_info): Update. 28905 (update_specialized_profile): Update. 28906 (perhaps_add_new_callers): Update. 28907 (decide_about_value): Update. 28908 (ipa_cp_c_finalize): Update. 28909 * ipa-devirt.c (struct odr_type_warn_count): Update. 28910 (struct decl_warn_count): Update. 28911 (struct final_warning_record): Update. 28912 (possible_polymorphic_call_targets): Update. 28913 (ipa_devirt): Update. 28914 * ipa-fnsummary.c (redirect_to_unreachable): Update. 28915 * ipa-icf.c (sem_function::merge): Update. 28916 * ipa-inline-analysis.c (do_estimate_edge_time): Update. 28917 * ipa-inline.c (compute_uninlined_call_time): Update. 28918 (compute_inlined_call_time): Update. 28919 (want_inline_small_function_p): Update. 28920 (want_inline_self_recursive_call_p): Update. 28921 (edge_badness): Update. 28922 (lookup_recursive_calls): Update. 28923 (recursive_inlining): Update. 28924 (inline_small_functions): Update. 28925 (dump_overall_stats): Update. 28926 (dump_inline_stats): Update. 28927 * ipa-profile.c (ipa_profile_generate_summary): Update. 28928 (ipa_propagate_frequency): Update. 28929 (ipa_profile): Update. 28930 * ipa-prop.c (ipa_make_edge_direct_to_target): Update. 28931 * ipa-utils.c (ipa_merge_profiles): Update. 28932 * loop-doloop.c (doloop_modify): Update. 28933 * loop-unroll.c (report_unroll): Update. 28934 (unroll_loop_runtime_iterations): Update. 28935 * lto-cgraph.c (lto_output_edge): Update. 28936 (lto_output_node): Update. 28937 (input_node): Update. 28938 (input_edge): Update. 28939 (merge_profile_summaries): Update. 28940 * lto-streamer-in.c (input_cfg): Update. 28941 * lto-streamer-out.c (output_cfg): Update. 28942 * mcf.c (create_fixup_graph): Update. 28943 (adjust_cfg_counts): Update. 28944 (sum_edge_counts): Update. 28945 * modulo-sched.c (sms_schedule): Update. 28946 * postreload-gcse.c (eliminate_partially_redundant_load): Update. 28947 * predict.c (maybe_hot_count_p): Update. 28948 (probably_never_executed): Update. 28949 (dump_prediction): Update. 28950 (combine_predictions_for_bb): Update. 28951 (propagate_freq): Update. 28952 (handle_missing_profiles): Update. 28953 (counts_to_freqs): Update. 28954 (rebuild_frequencies): Update. 28955 (force_edge_cold): Update. 28956 * predict.h: Include profile-count.h 28957 (maybe_hot_count_p, counts_to_freqs): UPdate. 28958 * print-rtl-function.c: Do not include cfg.h 28959 * print-rtl.c: Include basic-block.h 28960 * profile-count.c: New file. 28961 * profile-count.h: New file. 28962 * profile.c (is_edge_inconsistent): Update. 28963 (correct_negative_edge_counts): Update. 28964 (is_inconsistent): Update. 28965 (set_bb_counts): Update. 28966 (read_profile_edge_counts): Update. 28967 (compute_frequency_overlap): Update. 28968 (compute_branch_probabilities): Update; Initialize and deinitialize 28969 gcov_count tables. 28970 (branch_prob): Update. 28971 * profile.h (bb_gcov_counts, edge_gcov_counts): New. 28972 (edge_gcov_count): New. 28973 (bb_gcov_count): New. 28974 * shrink-wrap.c (try_shrink_wrapping): Update. 28975 * tracer.c (better_p): Update. 28976 * trans-mem.c (expand_transaction): Update. 28977 (ipa_tm_insert_irr_call): Update. 28978 (ipa_tm_insert_gettmclone_call): Update. 28979 * tree-call-cdce.c: Update. 28980 * tree-cfg.c (gimple_duplicate_sese_region): Update. 28981 (gimple_duplicate_sese_tail): Update. 28982 (gimple_account_profile_record): Update. 28983 (execute_fixup_cfg): Update. 28984 * tree-inline.c (copy_bb): Update. 28985 (copy_edges_for_bb): Update. 28986 (initialize_cfun): Update. 28987 (freqs_to_counts): Update. 28988 (copy_cfg_body): Update. 28989 (expand_call_inline): Update. 28990 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. 28991 * tree-ssa-loop-ivcanon.c (unloop_loops): Update. 28992 (try_unroll_loop_completely): Update. 28993 (try_peel_loop): Update. 28994 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. 28995 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update. 28996 * tree-ssa-loop-split.c (connect_loops): Update. 28997 * tree-ssa-loop-unswitch.c (hoist_guard): Update. 28998 * tree-ssa-reassoc.c (branch_fixup): Update. 28999 * tree-ssa-tail-merge.c (replace_block_by): Update. 29000 * tree-ssa-threadupdate.c (create_block_for_threading): Update. 29001 (compute_path_counts): Update. 29002 (update_profile): Update. 29003 (recompute_probabilities): Update. 29004 (update_joiner_offpath_counts): Update. 29005 (estimated_freqs_path): Update. 29006 (freqs_to_counts_path): Update. 29007 (clear_counts_path): Update. 29008 (ssa_fix_duplicate_block_edges): Update. 29009 (duplicate_thread_path): Update. 29010 * tree-switch-conversion.c (case_bit_test_cmp): Update. 29011 (struct switch_conv_info): Update. 29012 * tree-tailcall.c (decrease_profile): Update. 29013 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. 29014 * tree-vect-loop.c (scale_profile_for_vect_loop): Update. 29015 * value-prof.c (check_counter): Update. 29016 (gimple_divmod_fixed_value): Update. 29017 (gimple_mod_pow2): Update. 29018 (gimple_mod_subtract): Update. 29019 (gimple_ic_transform): Update. 29020 (gimple_stringop_fixed_value): Update. 29021 * value-prof.h (gimple_ic): Update. 29022 290232017-06-02 Carl Love <cel@us.ibm.com> 29024 29025 * config/rs6000/rs6000-c: Add support for built-in functions 29026 vector double vec_doublee (vector signed int); 29027 vector double vec_doublee (vector unsigned int); 29028 vector double vec_doublee (vector float); 29029 vector double vec_doubleh (vector signed int); 29030 vector double vec_doubleh (vector unsigned int); 29031 vector double vec_doubleh (vector float); 29032 vector double vec_doublel (vector signed int); 29033 vector double vec_doublel (vector unsigned int); 29034 vector double vec_doublel (vector float); 29035 vector double vec_doubleo (vector signed int); 29036 vector double vec_doubleo (vector unsigned int); 29037 vector double vec_doubleo (vector float);. 29038 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE, 29039 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH, 29040 UNS_DOUBLEL. 29041 * config/rs6000/altivec.md: Add code generator for doublee<mode>2, 29042 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2, 29043 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute 29044 VS_sxwsp. 29045 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo, 29046 vec_doublel, vec_doubleh. 29047 * doc/extend.texi: Update the built-in documentation file for the 29048 new built-in functions. 29049 290502017-06-02 David Malcolm <dmalcolm@redhat.com> 29051 29052 PR jit/80954 29053 * ipa-inline-analysis.c (free_growth_caches): Set 29054 edge_removal_hook_holder to NULL after removing it. 29055 290562017-06-02 Sudakshina Das <sudi.das@arm.com> 29057 29058 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for 29059 comparision with zero. 29060 290612017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> 29062 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling 29063 for early expansion of vec_min and vec_max builtins. 29064 (builtin_function_type): Add min/max unsigned variants to those 29065 identified as having unsigned arguments. 29066 290672017-06-02 Olivier Hainque <hainque@adacore.com> 29068 29069 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1. 29070 290712017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 29072 29073 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>): 29074 Use VALL_F16 iterator rather than VALL. 29075 290762017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 29077 29078 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): 29079 Emit CBNZ inside loop when doing a strong exchange and comparing 29080 against zero. Generate the CC flags after the loop. 29081 290822017-06-02 David Edelsohn <dje.gcc@gmail.com> 29083 29084 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New. 29085 (dl_section_ref): New. 29086 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref. 29087 On AIX, append an expression to subtract the size of the 29088 section length to dl_section_ref. 29089 290902017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> 29091 29092 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling 29093 for early expansion of vector absolute builtins. 29094 290952017-06-02 Richard Biener <rguenther@suse.de> 29096 29097 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up 29098 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts. 29099 291002017-06-02 Richard Biener <rguenther@suse.de> 29101 29102 PR tree-optimization/80948 29103 * tree-tailcall.c (find_tail_calls): Track stmts to move in 29104 stmt order as well. 29105 291062017-06-02 Richard Biener <rguenther@suse.de> 29107 29108 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant 29109 PHIs are ok. 29110 * tree-vect-stmts.c (process_use): Do not mark backedge defs 29111 for inductions as relevant. 29112 291132017-06-02 Richard Biener <rguenther@suse.de> 29114 29115 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ... 29116 (vectorizable_induction): ... this. Remove dead code. 29117 291182017-06-02 Eric Botcazou <ebotcazou@adacore.com> 29119 29120 * builtins. (expand_builtin_alloca): Remove second parameter and 29121 infer its value from the first parameter instead. 29122 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above. 29123 291242017-06-02 Jakub Jelinek <jakub@redhat.com> 29125 29126 PR rtl-optimization/80903 29127 * loop-doloop.c (add_test): Unshare sequence. 29128 291292017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> 29130 29131 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning. 29132 291332017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de> 29134 29135 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make 29136 static. 29137 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances, 29138 xlogue_layout::get_instance, logue_layout::xlogue_layout, 29139 sp_valid_at, fp_valid_at, choose_basereg): Formatting. 29140 (xlogue_layout::get_stub_rtx): Make static. 29141 (xlogue_layout::get_stub_name): Avoid const-cast, make static. 29142 (xlogue_layout::compute_stub_managed_regs): Rename to... 29143 (xlogue_layout::count_stub_managed_regs): ...this. 29144 (xlogue_layout::is_stub_managed_reg): New function. 29145 (xlogue_layout::m_stub_names): Rename to... 29146 (xlogue_layout::s_stub_names): ...this, make static. 29147 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS, 29148 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS, 29149 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN, 29150 xlogue_layout::s_stub_names): Instantiate statics. 29151 (stub_managed_regs): Remove. 29152 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs. 29153 (disable_call_ms2sysv_xlogues): Rename to... 29154 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once. 29155 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv 29156 warning logic. 29157 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't 29158 change after reload_completed. 29159 (ix86_can_use_return_insn_p): Use the ix86_frame data structure 29160 directly. 29161 (ix86_expand_prologue): Likewise. 29162 (ix86_expand_epilogue): Likewise. 29163 (ix86_expand_split_stack_prologue): Likewise. 29164 (ix86_compute_frame_layout): Remove frame parameter ... 29165 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook. 29166 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout 29167 only if necessary. 29168 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs. 29169 (ix86_frame): Move from here ... 29170 * config/i386/i386.h (ix86_frame): ... to here. 29171 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the 29172 complete ix86_frame data structure instead. Remove some_ld_name. 29173 291742017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> 29175 29176 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for 29177 symbols that hold a DECL_VALUE_EXPR. 29178 291792017-06-01 Martin Jambor <mjambor@suse.cz> 29180 29181 PR tree-optimization/80898 29182 * tree-sra.c (process_subtree_disqualification): Removed. 29183 (disqualify_candidate): Do not acll 29184 process_subtree_disqualification. 29185 (subtree_mark_written_and_enqueue): New function. 29186 (propagate_all_subaccesses): Set grp_write of LHS subtree if the 29187 RHS has been disqualified and re-queue LHS if necessary. Apart 29188 from that, ignore disqualified RHS. 29189 291902017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 29191 29192 * config/s390/s390.c (s390_emit_epilogue): Disable early return 29193 address fetch for z10 or later. 29194 291952017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29196 29197 * config/arc/arc.md (tst_movb): Add guard when splitting. 29198 291992017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29200 29201 * config/arc/arc.c (arc_can_eliminate): Test against 29202 arc_frame_pointer_needed. 29203 292042017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29205 29206 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier 29207 to prevent store reordering. 29208 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define. 29209 (type): Add block type. 29210 (stack_tie): Define special instruction to be used in 29211 expand_prologue. 29212 292132017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29214 29215 * config/arc/arc.md (commutative_binary_comparison): Remove 'I' 29216 constraint. It is not valid for the pattern. 29217 (noncommutative_binary_comparison): Likewise. 29218 292192017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29220 29221 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid 29222 scaled addresses. 29223 292242017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29225 29226 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to 29227 be used by the reg-alloc. 29228 292292017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29230 29231 * config/arc/arc.md (mulsi3): Avoid use of hard registers before 29232 reg-alloc when having mul64 or mul32x16 instructions. 29233 (mulsidi3): Likewise. 29234 (umulsidi3): Likewise. 29235 (mulsi32x16): New pattern. 29236 (mulsi64): Likewise. 29237 (mulsidi64): Likewise. 29238 (umulsidi64): Likewise. 29239 (MUL32x16_REG): Define. 29240 (mul64_600): Use MUL32x16_REG. 29241 (mac64_600): Likewise. 29242 (umul64_600): Likewise. 29243 (umac64_600): Likewise. 29244 292452017-06-01 Claudiu Zissulescu <claziss@synopsys.com> 29246 29247 * config/arc/arc.md (mulsi3_700): Make it commutative. 29248 292492017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com> 29250 29251 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn 29252 type for movstouw. 29253 (*sign_extendsidi2_insn): Likewise for movstosw. 29254 292552017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> 29256 29257 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on 29258 the type of the input discriminant value. Convert the 29259 discriminant value of signedness vary. 29260 292612017-06-01 Volker Reichelt <v.reichelt@netcologne.de> 29262 29263 * doc/invoke.texi (-Wcatch-value): Document new shortcut. 29264 Add to -Wall section. 29265 292662017-06-01 Richard Biener <rguenther@suse.de> 29267 29268 PR middle-end/66313 29269 * fold-const.c (fold_plusminus_mult_expr): If the factored 29270 factor may be zero use a wrapping type for the inner operation. 29271 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap 29272 and handle moved defs. 29273 (process_assignment): Properly guard the unary op case. Return a 29274 tri-state indicating that moving the stmt before the call may allow 29275 to continue. Pass through to_move. 29276 (find_tail_calls): Handle moving unrelated defs before 29277 the call. 29278 292792017-05-31 Segher Boessenkool <segher@kernel.crashing.org> 29280 29281 PR target/80618 29282 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the 29283 splitter result in the canonical way. 29284 292852017-05-31 Uros Bizjak <ubizjak@gmail.com> 29286 29287 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj) 29288 also for 32bit target. Update insn attributes. 29289 (zero-extendsidi2 splitter): Allow all registers for operand 1. 29290 292912017-05-31 Sebastian Peryt <sebastian.peryt@intel.com> 29292 29293 * config/i386/avx512fintrin.h (_mm_mask_max_sd) 29294 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss) 29295 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss) 29296 (_mm_maskz_min_ss): New intrinsics. 29297 292982017-05-31 Martin Liska <mliska@suse.cz> 29299 29300 * tree-vect-loop.c (vect_create_epilog_for_reduction): 29301 Change comment style to one we normally use. 29302 (vectorizable_reduction): Likewise. 29303 (vectorizable_induction): Likewise. 29304 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. 29305 (vectorizable_call): Likewise. 29306 (vectorizable_simd_clone_call): Likewise. 29307 (vectorizable_conversion): Likewise. 29308 (vectorizable_assignment): Likewise. 29309 (vectorizable_shift): Likewise. 29310 (vectorizable_operation): Likewise. 29311 (vectorizable_store): Likewise. 29312 (vectorizable_load): Likewise. 29313 * tree-vectorizer.h: Likewise. 29314 293152017-05-31 Alexander Monakov <amonakov@ispras.ru> 29316 29317 * passes.c (emergency_dump_function): New. 29318 * tree-pass.h (emergency_dump_function): Declare. 29319 * plugin.c (plugins_internal_error_function): Remove. 29320 * plugin.h (plugins_internal_error_function): Remove declaration. 29321 * toplev.c (internal_error_function): New static function. Use it... 29322 (general_init): ...here. 29323 293242017-05-31 Graham Markall <graham.markall@embecosm.com> 29325 29326 * config/arc/arc.c (arc_print_operand): Handle constant operands. 29327 (arc_rtx_costs): Add costs for new patterns. 29328 * config/arc/arc.md: Additional *add_n and *sub_n patterns. 29329 * config/arc/predicates.md: Add _1_2_3_operand predicate. 29330 293312017-05-31 Richard Sandiford <richard.sandiford@linaro.org> 29332 29333 * tree-ssa-strlen.c (get_next_strinfo): New function. 29334 (get_stridx_plus_constant): Use it. 29335 (zero_length_string): Likewise. 29336 (adjust_related_strinfos): Likewise. 29337 (adjust_last_stmt): Likewise. 29338 293392017-05-31 Richard Biener <rguenther@suse.de> 29340 29341 PR target/80880 29342 * config/i386/i386.c (ix86_expand_builtin): Remove assert 29343 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET. 29344 293452017-05-31 Richard Sandiford <richard.sandiford@linaro.org> 29346 29347 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove 29348 loop_vinfo argument and use of dependence distance vectors. 29349 Check instead whether the two references differ only in their 29350 initial value and assume that they have the same alignment if the 29351 difference is a multiple of the vector alignment. 29352 (vect_analyze_data_refs_alignment): Update call accordingly. 29353 293542017-05-31 Martin Liska <mliska@suse.cz> 29355 29356 PR target/79155 29357 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h. 29358 293592017-05-31 Bin Cheng <bin.cheng@arm.com> 29360 29361 * tree-vect-loop-manip.c (create_intersect_range_checks_index) 29362 (create_intersect_range_checks): Move from ... 29363 * tree-data-ref.c (create_intersect_range_checks_index) 29364 (create_intersect_range_checks): ... to here. 29365 (create_runtime_alias_checks): New function factored from ... 29366 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ... 29367 here. Call above function. 29368 * tree-data-ref.h (create_runtime_alias_checks): New function. 29369 293702017-05-31 Bin Cheng <bin.cheng@arm.com> 29371 29372 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal 29373 segment length for dr_b and compute it in wide_int. 29374 293752017-05-31 Richard Biener <rguenther@suse.de> 29376 29377 PR tree-optimization/80906 29378 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get 29379 and pass through iv_map. 29380 (copy_bb_and_scalar_dependences): Adjust. 29381 (translate_pending_phi_nodes): Likewise. 29382 (copy_loop_close_phi_args): Handle code-generating IVs instead 29383 of ICEing. 29384 293852017-05-30 David Malcolm <dmalcolm@redhat.com> 29386 29387 * diagnostic-color.c (color_dict): Add "type-diff". 29388 (parse_gcc_colors): Update comment. 29389 * doc/invoke.texi (Diagnostic Message Formatting Options): Add 29390 -fdiagnostics-show-template-tree and -fno-elide-type. 29391 (GCC_COLORS): Add type-diff to example. 29392 (type-diff=): New. 29393 (-fdiagnostics-show-template-tree): New. 29394 (-fno-elide-type): New. 29395 * pretty-print.c (pp_format): Pass quote and formatters[argno] to 29396 the pp_format_decoder callback. Call any m_format_postprocessor's 29397 "handle" method. 29398 (pretty_printer::pretty_printer): Initialize 29399 m_format_postprocessor. 29400 (pretty_printer::~pretty_printer): Delete any 29401 m_format_postprocessor. 29402 * pretty-print.h (printer_fn): Add bool and const char ** parameters. 29403 (class format_postprocessor): New class. 29404 (struct pretty_printer::format_decoder): Document the new parameters. 29405 (struct pretty_printer::m_format_postprocessor): New field. 29406 * tree-diagnostic.c (default_tree_printer): Update for new 29407 bool and const char ** params. 29408 * tree-diagnostic.h (default_tree_printer): Likewise. 29409 294102017-05-30 Segher Boessenkool <segher@kernel.crashing.org> 29411 29412 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete. 29413 (lwa_operand): Delete rs6000_gen_cell_microcode test. 29414 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete 29415 rs6000_gen_cell_microcode code. 29416 (rs6000_final_prescan_insn): Delete. 29417 (rs6000_opt_vars): Delete the "gen-cell-microcode" and 29418 "warn-cell-microcode" entries. 29419 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete. 29420 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests 29421 throughout. Change cc_reg_not_micro_cr0_operand to 29422 cc_reg_not_cr0_operand throughout. 29423 (*extendhi<mode>2_noload): Delete. 29424 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub. 29425 (mwarn-cell-microcode): Delete. 29426 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete 29427 -mgen-cell-microcode and -mwarn-cell-microcode. 29428 294292017-05-30 Uros Bizjak <ubizjak@gmail.com> 29430 29431 PR target/80833 29432 * config/i386/constraints.md (Yd): New constraint. 29433 (Ye): Ditto. 29434 * config/i386/i386.md (*movti_internal): Add (?r, Ye) 29435 and (?Yd, r) alternatives. Update insn attributes. 29436 * config/i386/i386.md (*movti_internal): Add (?r, *Ye) 29437 and (?*Yd, r) alternatives. Update insn attributes. 29438 (double-mode inter-unit splitters): Add new GR<->XMM splitters. 29439 294402017-05-30 Pierre-Marie de Rodat <derodat@adacore.com> 29441 29442 * gimplify.c (gimplify_modify_expr): Don't create a 29443 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current 29444 function. 29445 294462017-05-30 Wilco Dijkstra <wdijkstr@arm.com> 29447 29448 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. 29449 294502017-05-30 Richard Biener <rguenther@suse.de> 29451 29452 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type 29453 and reduc_def fields. 29454 (STMT_VINFO_REDUC_TYPE): New define. 29455 (STMT_VINFO_REDUC_DEF): Likewise. 29456 (vect_force_simple_reduction): Adjust prototype. 29457 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust. 29458 (vect_is_simple_reduction): Remove check_reduction argument. 29459 (vect_force_simple_reduction): Adjust and set 29460 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. 29461 (vectorizable_reduction): Do not re-do reduction analysis 29462 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. 29463 * tree-parloops.c (gather_scalar_reductions): Adjust. 29464 294652017-05-30 Richard Biener <rguenther@suse.de> 29466 29467 PR middle-end/80901 29468 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with 29469 split_edge code. 29470 294712017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com> 29472 29473 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): 29474 Introduce unknown_misalignment parameter and remove vf. 29475 (vect_peeling_hash_get_lowest_cost): 29476 Pass unknown_misalignment parameter. 29477 (vect_enhance_data_refs_alignment): 29478 Fix unsupportable data ref treatment. 29479 294802017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> 29481 29482 * tree-vect-data-refs.c (vect_get_data_access_cost): 29483 Workaround for SLP handling. 29484 (vect_enhance_data_refs_alignment): 29485 Compute costs for doing no peeling at all, compare to the best 29486 peeling costs so far and avoid peeling if cheaper. 29487 294882017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> 29489 29490 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling): 29491 Return peeling info and set costs to zero for unlimited cost 29492 model. 29493 (vect_enhance_data_refs_alignment): Also inspect all datarefs 29494 with unknown misalignment. Compute and costs for unknown 29495 misalignment, compare them to the costs for known misalignment 29496 and choose the cheapest for peeling. 29497 294982017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> 29499 29500 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename. 29501 (vect_get_peeling_costs_all_drs): Create function. 29502 (vect_peeling_hash_get_lowest_cost): 29503 Use vect_get_peeling_costs_all_drs. 29504 (vect_peeling_supportable): Create function. 29505 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable. 29506 295072017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> 29508 29509 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create 29510 DR_HAS_NEGATIVE_STEP. 29511 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT. 29512 (vect_enhance_data_refs_alignment): Use. 29513 (vect_duplicate_ssa_name_ptr_info): Use. 29514 * tree-vectorizer.h (dr_misalignment): Use. 29515 (known_alignment_for_access_p): Use. 29516 295172017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> 29518 29519 PR target/78838 29520 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is 29521 .lowtext. 29522 (has_section_name): New function. 29523 295242017-05-30 Martin Liska <mliska@suse.cz> 29525 29526 PR other/80909 29527 * auto-profile.c (get_function_decl_from_block): Fix 29528 parenthesis. 29529 295302017-05-30 Richard Biener <rguenther@suse.de> 29531 29532 PR middle-end/80876 29533 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again. 29534 295352017-05-30 Martin Liska <mliska@suse.cz> 29536 29537 * dumpfile.c: Use newly added macro DUMP_FILE_INFO. 29538 * dumpfile.h (struct dump_file_info): Remove ctors. 29539 295402017-05-30 Martin Liska <mliska@suse.cz> 29541 29542 * predict.def: Fix GNU coding style. 29543 295442017-05-29 Max Filippov <jcmvbkbc@gmail.com> 29545 29546 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): 29547 Mark 'to' argument with ATTRIBUTE_UNUSED. 29548 295492017-05-29 Max Filippov <jcmvbkbc@gmail.com> 29550 29551 * config/xtensa/xtensa.c (xtensa_emit_call): Use 29552 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string. 29553 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld 29554 format string. 29555 295562017-05-29 Eric Botcazou <ebotcazou@adacore.com> 29557 29558 * doc/install.texi (Options specification): Restore entry of 29559 --enable-sjlj-exceptions. 29560 295612017-05-27 Michael Eager <eager@eagercon.com> 29562 29563 Revert: 29564 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com> 29565 29566 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html. 29567 29568 * config/microblaze/microblaze.h 29569 (FIXED_REGISTERS): Update in macro. 29570 (CALL_USED_REGISTERS): Update in macro. 29571 295722017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org> 29573 29574 * doc/install.texi: Add links to macOS binary distributions. 29575 295762017-05-27 Jakub Jelinek <jakub@redhat.com> 29577 29578 PR bootstrap/80887 29579 Revert: 29580 2017-05-25 Marc Glisse <marc.glisse@inria.fr> 29581 29582 * match.pd ((A +- CST1) +- CST2): Allow some conversions. 29583 295842017-05-26 Martin Liska <mliska@suse.cz> 29585 29586 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous. 29587 295882017-05-26 Martin Liska <mliska@suse.cz> 29589 29590 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print 29591 always leading ';; '. 29592 (dump_bb_info): Likewise. 29593 (brief_dump_cfg): Likewise. 29594 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT. 29595 * dumpfile.c: Remove usage of TDF_VERBOSE. 29596 * dumpfile.h (enum dump_kind): Likewise. 29597 (dump_gimple_bb_header): Do not use TDF_COMMENT. 29598 * print-tree.c (debug_verbose): Remove. 29599 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT. 29600 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE. 29601 * tree-diagnostic.c (default_tree_printer): Replace 29602 TDF_DIAGNOSTIC with TDF_SLIM. 29603 296042017-05-26 Bin Cheng <bin.cheng@arm.com> 29605 29606 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass 29607 in parameter loop, rather than loop_vinfo. 29608 (create_intersect_range_checks): Ditto. 29609 (vect_create_cond_for_alias_checks): Update call to above functions. 29610 296112017-05-26 Bin Cheng <bin.cheng@arm.com> 29612 29613 PR tree-optimization/80815 29614 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition 29615 for merging runtime alias checks. Handle negative DR_STEPs. 29616 296172017-05-26 Bin Cheng <bin.cheng@arm.com> 29618 29619 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair): 29620 Move from ... 29621 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here. 29622 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor 29623 out code pruning runtime alias checks. 29624 * tree-data-ref.c (prune_runtime_alias_test_list): New function 29625 factored out from above. 29626 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): 29627 Move from ... 29628 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): 29629 ... to here. 29630 (prune_runtime_alias_test_list): New decalaration. 29631 296322017-05-26 Bin Cheng <bin.cheng@arm.com> 29633 29634 * tree-vect-data-refs.c (compare_tree): Rename and move ... 29635 * tree-data-ref.c (data_ref_compare_tree): ... to here. 29636 * tree-data-ref.h (data_ref_compare_tree): New decalaration. 29637 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses. 29638 (operator==, comp_dr_with_seg_len_pair): Ditto. 29639 (vect_prune_runtime_alias_test_list): Ditto. 29640 296412017-05-26 Martin Liska <mliska@suse.cz> 29642 29643 PR ipa/80663 29644 * params.def: Bound partial-inlining-entry-probability param. 29645 296462017-05-26 Marek Polacek <polacek@redhat.com> 29647 29648 PR sanitizer/80875 29649 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1 29650 can be negated. 29651 296522017-05-26 Richard Biener <rguenther@suse.de> 29653 29654 PR tree-optimization/80842 29655 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old 29656 value. 29657 296582017-05-26 Richard Biener <rguenther@suse.de> 29659 29660 PR tree-optimization/80844 29661 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results. 29662 296632017-05-25 Sebastian Peryt <sebastian.peryt@intel.com> 29664 29665 * doc/md.texi (Machine Constraints): Update x86 family 29666 machine constraints section to match 'config/i386/constraints.md'. 29667 296682017-05-25 Volker Reichelt <v.reichelt@netcologne.de> 29669 29670 * doc/invoke.texi (-Wcatch-value=): Document new warning option. 29671 296722017-05-25 Nathan Sidwell <nathan@acm.org> 29673 29674 * doc/invoke.texi (--enable-languages): Update documentation. 29675 296762017-05-25 Martin Liska <mliska@suse.cz> 29677 29678 * dumpfile.c: Add TDF_FOLDING. 29679 * dumpfile.h (enum dump_kind): Likewise. 29680 * genmatch.c (dt_simplify::gen_1): Use it. 29681 296822017-05-25 Marc Glisse <marc.glisse@inria.fr> 29683 29684 * match.pd (view_convert (convert@0 @1)): Handle zero-extension. 29685 296862017-05-25 Marc Glisse <marc.glisse@inria.fr> 29687 29688 * match.pd ((A +- CST1) +- CST2): Allow some conversions. 29689 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST. 29690 296912017-05-25 Marc Glisse <marc.glisse@inria.fr> 29692 29693 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation. 29694 * match.pd (X == C): Rewrite it here. 29695 (with_possible_nonzero_bits, with_possible_nonzero_bits2, 29696 with_certain_nonzero_bits2): New predicates. 29697 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST. 29698 296992017-05-24 Nathan Sidwell <nathan@acm.org> 29700 29701 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to 29702 avoid warning. 29703 29704 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid 29705 warning. 29706 297072017-05-24 Segher Boessenkool <segher@kernel.crashing.org> 29708 29709 * config/powerpcspe: New port. Files are copied from the rs6000 29710 port, with "rs6000" in filenames replaced by "powerpcspe". 29711 297122017-05-24 Wilco Dijkstra <wdijkstr@arm.com> 29713 29714 PR rtl-optimization/80754 29715 * lra-remat.c (do_remat): Add overlap checks for dst_regno. 29716 297172017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com> 29718 29719 * config/sparc/sparc.md (length): Return the correct value for -mflat 29720 sibcalls to match output_sibcall. 29721 297222017-05-24 Segher Boessenkool <segher@kernel.crashing.org> 29723 29724 PR bootstrap/80860 29725 PR bootstrap/80843 29726 * config/rs6000/rs6000.c (struct machine_function): Add new field 29727 n_components. 29728 (rs6000_get_separate_components): Init that field, use it. 29729 (rs6000_components_for_bb): Use the field. 29730 297312017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com> 29732 29733 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment. 29734 297352017-05-24 Peter Bergner <bergner@vnet.ibm.com> 29736 29737 PR middle-end/80823 29738 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i"; 29739 297402017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 29741 29742 PR target/80725 29743 * config/s390/s390.c (s390_check_qrst_address): Check incoming 29744 address against address_operand predicate. 29745 * config/s390/s390.md ("*indirect_jump"): Swap alternatives. 29746 297472017-05-24 Eric Botcazou <ebotcazou@adacore.com> 29748 29749 * var-tracking.c (track_expr_p): Do not return 0 for tracked record 29750 parameters passed indirectly. 29751 297522017-05-23 Uros Bizjak <ubizjak@gmail.com> 29753 29754 * config/i386/i386.md (*movdi_internal): Remove SSE4 29755 alternative 18 (?r, *v). Update insn attributes. 29756 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v). 29757 Update insn attributes. 29758 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x). 29759 Update insn attributes. 29760 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4 29761 alternative 1 (r, v). Remove isa attribute. 29762 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): 29763 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC 29764 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets. 29765 297662017-05-23 Tom de Vries <tom@codesourcery.com> 29767 29768 * doc/sourcebuild.texi (Directives, Verify compiler message): Document 29769 dg-line directive. 29770 297712017-05-23 Jan Hubicka <hubicka@ucw.cz> 29772 29773 * cgraphunit.c (symbol_table::process_new_functions): Update. 29774 * ipa-fnsummary.c (pass_data_inline_parameters): Remove. 29775 (inline_generate_summary): Rename to ... 29776 (ipa_fn_summary_generate): ... this one. 29777 (inline_read_summary): Rename to ... 29778 (ipa_fn_summary_read): ... this one. 29779 (inline_write_summary): Rename to ... 29780 (ipa_fn_summary_write): ... this one. 29781 (inline_free_summary): Rename to ... 29782 (ipa_free_fn_summary): ... this one. 29783 (pass_data_local_fn_summary, pass_local_fn_summary, 29784 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary, 29785 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary, 29786 pass_data_ipa_fn_summary, pass_ipa_fn_summary, 29787 make_pass_ipa_fn_summary): New. 29788 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary, 29789 inline_write_summary, inline_free_summary): Remove. 29790 (ipa_free_fn_summary) : New. 29791 * ipa-inline.c (ipa_inline): Update. 29792 (pass_ipa_inline): Do not generate summaries. 29793 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary): 29794 Remove. 29795 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary 29796 and add pass_ipa_fn_summary. 29797 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary): 29798 New. 29799 (make_pass_inline_parameters): Remove. 29800 298012017-05-23 Thomas Schwinge <thomas@codesourcery.com> 29802 29803 * omp-low.c (struct omp_context): Remove "default_kind" member. 29804 Adjust all users. 29805 29806 * omp-offload.c (execute_oacc_device_lower): Remove the 29807 parallelism dimensions function attributes for unparallelized 29808 OpenACC kernels constructs. 29809 298102017-05-23 Martin Liska <mliska@suse.cz> 29811 29812 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name 29813 functions. 29814 (cgraph_edge::make_speculative): Likewise. 29815 (cgraph_edge::resolve_speculation): Likewise. 29816 (cgraph_edge::redirect_call_stmt_to_callee): Likewise. 29817 (cgraph_node::dump): Likewise. 29818 * cgraph.h: Likewise. 29819 * cgraphunit.c (analyze_functions): Likewise. 29820 (symbol_table::compile): Likewise. 29821 * ipa-cp.c (print_all_lattices): Likewise. 29822 (determine_versionability): Likewise. 29823 (initialize_node_lattices): Likewise. 29824 (ipcp_verify_propagated_values): Likewise. 29825 (estimate_local_effects): Likewise. 29826 (update_profiling_info): Likewise. 29827 (create_specialized_node): Likewise. 29828 (perhaps_add_new_callers): Likewise. 29829 (decide_about_value): Likewise. 29830 (decide_whether_version_node): Likewise. 29831 (identify_dead_nodes): Likewise. 29832 (ipcp_store_bits_results): Likewise. 29833 * ipa-devirt.c (dump_targets): Likewise. 29834 (ipa_devirt): Likewise. 29835 * ipa-icf.c (sem_item::dump): Likewise. 29836 (sem_function::equals): Likewise. 29837 (sem_variable::equals): Likewise. 29838 (sem_item_optimizer::read_section): Likewise. 29839 (sem_item_optimizer::execute): Likewise. 29840 (congruence_class::dump): Likewise. 29841 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise. 29842 (dump_inline_summary): Likewise. 29843 (estimate_node_size_and_time): Likewise. 29844 (inline_analyze_function): Likewise. 29845 * ipa-inline-transform.c (inline_call): Likewise. 29846 * ipa-inline.c (report_inline_failed_reason): Likewise. 29847 (want_early_inline_function_p): Likewise. 29848 (edge_badness): Likewise. 29849 (update_edge_key): Likewise. 29850 (inline_small_functions): Likewise. 29851 * ipa-profile.c (ipa_profile): Likewise. 29852 * ipa-prop.c (ipa_print_node_jump_functions): Likewise. 29853 (ipa_make_edge_direct_to_target): Likewise. 29854 (remove_described_reference): Likewise. 29855 (ipa_impossible_devirt_target): Likewise. 29856 (propagate_controlled_uses): Likewise. 29857 (ipa_print_node_params): Likewise. 29858 (ipcp_transform_function): Likewise. 29859 * ipa-pure-const.c (pure_const_read_summary): Likewise. 29860 (propagate_pure_const): Likewise. 29861 * ipa-reference.c (generate_summary): Likewise. 29862 (read_write_all_from_decl): Likewise. 29863 (propagate): Likewise. 29864 (ipa_reference_read_optimization_summary): Likewise. 29865 * ipa-utils.c (ipa_merge_profiles): Likewise. 29866 * ipa.c (walk_polymorphic_call_targets): Likewise. 29867 (symbol_table::remove_unreachable_nodes): Likewise. 29868 (ipa_single_use): Likewise. 29869 * passes.c (execute_todo): Likewise. 29870 * predict.c (drop_profile): Likewise. 29871 * symtab.c (symtab_node::get_dump_name): New function. 29872 (symtab_node::dump_name): Likewise. 29873 (symtab_node::dump_asm_name): Likewise. 29874 (symtab_node::dump_references): Likewise. 29875 (symtab_node::dump_referring): Likewise. 29876 (symtab_node::dump_base): Likewise. 29877 (symtab_node::debug_symtab): Likewise. 29878 * tree-sra.c (convert_callers_for_node): Likewise. 29879 * tree-ssa-structalias.c (ipa_pta_execute): Likewise. 29880 * value-prof.c (init_node_map): Likewise. 29881 298822017-05-23 Martin Liska <mliska@suse.cz> 29883 29884 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump 29885 and symtab_node::debug_symtab to symbol_table::debug. 29886 * cgraphunit.c (analyze_functions): Use the renamed function. 29887 (symbol_table::compile): Likewise. 29888 * ipa-cp.c (ipcp_verify_propagated_values): Likewise. 29889 * ipa-icf.c (sem_item_optimizer::execute): Likewise. 29890 * passes.c (execute_todo): Likewise. 29891 * symtab.c (symbol_table::dump): New function. 29892 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function. 29893 298942017-05-23 Jan Hubicka <hubicka@ucw.cz> 29895 29896 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check 29897 that nonconst implies exec. 29898 298992017-05-23 Jan Hubicka <hubicka@ucw.cz> 29900 29901 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, 29902 inline_edge_removal_hook, inline_edge_duplication_hook): Remove. 29903 (inline_edge_summary_vec): Turn into ... 29904 (ipa_call_summaries): ... this one. 29905 (redirect_to_unreachable, edge_set_predicate, 29906 evaluate_properties_for_edge, inline_summary_alloc, 29907 reset_ipa_call_summary, reset_inline_summary, 29908 inline_summary_t::duplicate): Update. 29909 (inline_edge_duplication_hook): Turn to ... 29910 (ipa_call_summary_t::duplicate): ... this one. 29911 (inline_edge_removal_hook): Turn to ... 29912 (ipa_call_summary_t::remove): ... this one. 29913 (dump_inline_edge_summary): Turn to ... 29914 (dump_ipa_call_summary): ... this one. 29915 (estimate_function_body_sizes): Update. 29916 (inline_update_callee_summaries): Update. 29917 (remap_edge_change_prob): Update. 29918 (remap_edge_summaries): Update. 29919 (inline_merge_summary): Update. 29920 (do_estimate_edge_time): Update. 29921 (inline_generate_summary): Update. 29922 (inline_read_section): Update. 29923 (inline_read_summary): Update. 29924 (inline_free_summary): Update. 29925 * ipa-inline.c (can_inline_edge_p): Update. 29926 (compute_inlined_call_time): Update. 29927 (want_inline_small_function_p): Update. 29928 (edge_badness): Update. 29929 (early_inliner): Update. 29930 * ipa-inline.h (inline_edge_summary): Turn to ... 29931 (ipa_call_summary): ... this one. 29932 (ipa_call_summary_t): New class. 29933 (inline_edge_summary_t, inline_edge_summary_vec): Remove. 29934 (ipa_call_summaries): New. 29935 (inline_edge_summary): Remove. 29936 (estimate_edge_growth): Update. 29937 * ipa-profile.c (ipa_propagate_frequency_1): Update. 29938 * ipa-prop.c (ipa_make_edge_direct_to_target): Update. 29939 * ipa-split.c (execute_split_functions): Update. 29940 * ipa.c (symbol_table::remove_unreachable_nodes): Update. 29941 299422017-05-23 Tom de Vries <tom@codesourcery.com> 29943 29944 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware 29945 attributes): Document rdrand effective target. 29946 299472017-05-23 Tom de Vries <tom@codesourcery.com> 29948 29949 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware 29950 attributes): Sort alphabetically. 29951 299522017-05-23 Georg-Johann Lay <avr@gjlay.de> 29953 29954 * config/avr/genmultilib.awk: Use gsub instead of gensub. 29955 299562017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> 29957 29958 PR target/80718 29959 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split 29960 V2DF/V2DI splat into two separate patterns, one that handles 29961 registers, and the other that only handles memory. Drop support 29962 for splatting from a GPR on ISA 2.07 and then splitting the 29963 splat into direct move and splat. 29964 (vsx_splat_<mode>_reg): Likewise. 29965 (vsx_splat_<mode>_mem): Likewise. 29966 299672017-05-22 Segher Boessenkool <segher@kernel.crashing.org> 29968 29969 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs. 29970 299712017-05-22 Jakub Jelinek <jakub@redhat.com> 29972 29973 PR middle-end/80809 29974 * omp-low.c (finish_taskreg_remap): New function. 29975 (finish_taskreg_scan): If unit size of ctx->record_type 29976 is non-constant, unshare the size expression and replace 29977 decls in it with possible outer var refs. 29978 29979 PR middle-end/80809 29980 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use 29981 GOVD_SHARED rather than GOVD_PRIVATE with it. 29982 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect 29983 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE. 29984 29985 PR middle-end/80853 29986 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE 29987 as last argument to build_outer_var_ref for pointer bases of array 29988 section reductions. 29989 299902017-05-19 Martin Sebor <msebor@redhat.com> 29991 29992 * print-tree.c (print_node): Print DECL_READ_P flag. 29993 299942017-05-22 Jan Hubicka <hubicka@ucw.cz> 29995 29996 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h 29997 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h 29998 * cgraph.c: Likewise. 29999 * cgraphunit.c: Likewise. 30000 * gengtype.c: Likewise. 30001 * ipa-cp.c: Likewise. 30002 * ipa-devirt.c: Likewise. 30003 * ipa-icf.c: Likewise. 30004 * ipa-predicate.c: Likewise. 30005 * ipa-profile.c: Likewise. 30006 * ipa-prop.c: Likewise. 30007 * ipa-split.c: Likewise. 30008 * ipa.c: Likewise. 30009 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries, 30010 edge_predicate_pool, dump_inline_hints, 30011 inline_summary::account_size_time, redirect_to_unreachable, 30012 edge_set_predicate, set_hint_predicate, 30013 evaluate_conditions_for_known_args, evaluate_properties_for_edge, 30014 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset, 30015 inline_summary_t::remove, remap_hint_predicate_after_duplication, 30016 inline_summary_t::duplicate, ipa_call_summary_t::duplicate, 30017 ipa_call_summary_t::remove, initialize_growth_caches, 30018 free_growth_caches, dump_ipa_call_summary, dump_inline_summary, 30019 debug_inline_summary, dump_inline_summaries, initialize_inline_failed, 30020 mark_modified, unmodified_parm_1, unmodified_parm, 30021 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob, 30022 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate, 30023 compute_bb_predicates, will_be_nonconstant_expr_predicate, 30024 will_be_nonconstant_predicate, record_modified_bb_info, 30025 get_minimal_bb, record_modified, param_change_prob, 30026 phi_result_unknown_predicate, predicate_for_phi_result, 30027 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p, 30028 estimate_function_body_sizes, compute_inline_parameters, 30029 compute_inline_parameters_for_curren, pass_data_inline_parameters, 30030 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time, 30031 inline_update_callee_summaries, remap_edge_change_prob, 30032 remap_edge_summaries, remap_hint_predicate, inline_merge_summary, 30033 inline_update_overall_summary, inline_indirect_intraprocedural_analysis, 30034 inline_analyze_function, inline_summary_t::insert, 30035 inline_generate_summary, read_ipa_call_summary, inline_read_section, 30036 inline_read_summary, write_ipa_call_summary, inline_write_summary, 30037 inline_free_summary): Move to ipa-fnsummary.h 30038 (predicate_t): Remove. 30039 * ipa-fnsummary.c: New file. 30040 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h 30041 (enum inline_hints_vals, inline_hints, agg_position_info, 30042 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t, 30043 inline_summaries, ipa_call_summary, ipa_call_summary_t, 30044 ipa_call_summaries, debug_inline_summary, dump_inline_summaries, 30045 dump_inline_summary, dump_inline_hints, inline_generate_summary, 30046 inline_read_summary, inline_write_summary, inline_free_summary, 30047 inline_analyze_function, initialize_inline_failed, 30048 inline_merge_summary, inline_update_overall_summary, 30049 compute_inline_parameters): Move to ipa-fnsummary.h 30050 * ipa-fnsummary.h: New file. 30051 * ipa-inline-transform.h: Include ipa-inline.h. 30052 * ipa-inline.c: LIkewise. 30053 300542017-05-22 Jan Hubicka <hubicka@ucw.cz> 30055 30056 * ipa-inline.c (edge_badness): Use inlined_time instead of 30057 inline_summaries->get. 30058 300592017-05-22 Jan Hubicka <hubicka@ucw.cz> 30060 30061 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining. 30062 300632017-05-22 Nathan Sidwell <nathan@acm.org> 30064 30065 * doc/invoke.texi (fdump-translation-unit): Delete documentation. 30066 (fdump-lang): Document 'raw' option. 30067 * dumpfile.h (TDI_tu): Delete. 30068 * dumpfile.c (dump_files): Remove translation-unit. 30069 (FIRST_AUTO_NUMBERED_DUMP): Decrement. 30070 300712017-05-22 Georg-Johann Lay <avr@gjlay.de> 30072 30073 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile" 30074 command option from $(AWK) call. 30075 * config/avr/genmultilib.awk: Simplify and rewrite so that it 30076 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS. 30077 [FORMAT]: Remove handling of variable. 30078 * config/avr/t-multilib: Regenerate. 30079 300802017-05-22 Jan Hubicka <hubicka@ucw.cz> 30081 30082 * ipa-inline-analysis.c (inline_summary::reset): Do not reset 30083 self_time. 30084 (dump_inline_summary): Do not print self_time. 30085 (estimate_function_body_sizes): Do not set self_time. 30086 (compute_inline_parameters): Likewise. 30087 (inline_read_section, inline_write_summary): Do not stream self_time. 30088 * ipa-inline.h (inline_summary): Drop self_time. 30089 300902017-05-22 Jan Hubicka <hubicka@ucw.cz> 30091 30092 * ipa-inline-analysis.c (account_size_time): Rename to ... 30093 (inline_summary::account_size_time): ... this one. 30094 (reset_ipa_call_summary): Turn to ... 30095 (ipa_call_summary::reset): ... this one. 30096 (reset_inline_summary): Turn to ... 30097 (inline_summary::reset): ... this one. 30098 (inline_summary_t::remove): Update. 30099 (inline_summary_t::duplicate): Update. 30100 (ipa_call_summary_t::remove): Update. 30101 (dump_inline_summary): Update. 30102 (estimate_function_body_sizes): Update. 30103 (compute_inline_parameters): Update. 30104 (estimate_node_size_and_time): Update. 30105 (inline_merge_summary): Update. 30106 (inline_update_overall_summary): Update. 30107 (inline_read_section): Update. 30108 (inline_write_summary): Update. 30109 * ipa-inline.h (inline_summary): Rename entry to size_time_table; 30110 add account_size_time and reset member functions. 30111 (ipa_call_summary): Add reset function. 30112 * ipa-predicate.h (predicate::operator &): Constify. 30113 301142017-05-22 Richard Biener <rguenther@suse.de> 30115 30116 * df-scan.c (df_insn_refs_verify): Speedup when not verifying. 30117 301182017-05-19 Jason Merrill <jason@redhat.com> 30119 30120 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t. 30121 301222017-05-19 Marek Polacek <polacek@redhat.com> 30123 30124 PR sanitizer/80800 30125 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add 30126 TYPE_OVERFLOW_WRAPS checks. 30127 301282017-05-19 Thomas Schwinge <thomas@codesourcery.com> 30129 30130 * tree-core.h (enum omp_clause_default_kind): Add 30131 "OMP_CLAUSE_DEFAULT_PRESENT". 30132 * tree-pretty-print.c (dump_omp_clause): Handle it. 30133 * gimplify.c (enum gimplify_omp_var_data): Add 30134 "GOVD_MAP_FORCE_PRESENT". 30135 (gimplify_adjust_omp_clauses_1): Map it to 30136 "GOMP_MAP_FORCE_PRESENT". 30137 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT". 30138 30139 * gimplify.c (oacc_default_clause): Clarify. 30140 301412017-05-19 Nathan Sidwell <nathan@acm.org> 30142 30143 LANG_HOOK_REGISTER_DUMPS 30144 * toplev.c (general_init): Call register dump lang hook. 30145 * doc/invoke.texi: Document -fdump-lang option family. 30146 * dumpfile.c (dump_files): Remove class dump here. 30147 (FIRST_AUTO_NUMBERED_DUMP): Adjust. 30148 * dumpfile.h (tree_dump_index): Remove TDI_class. 30149 * langhooks-def.h (lhd_register_dumps): Declare. 30150 (LANG_HOOKS_REGISTER_DUMPS): Define. 30151 (LANG_HOOKS_INITIALIZER): Add it. 30152 * langhooks.c (lhd_register_dumps): Define. 30153 * langhooks.h (struct lang_hooks): Add register_dumps. 30154 301552017-05-19 Nathan Sidwell <nathan@acm.org> 30156 30157 * context.h (context::set_passes): New. 30158 * context.c (context::context): Do not create pass manager. 30159 * toplev.c (general_init): Create pass manager here. 30160 301612017-05-19 Segher Boessenkool <segher@kernel.crashing.org> 30162 30163 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't 30164 use this splitter if two add or or instructions would also work for 30165 the constant we want to generate. 30166 301672017-05-19 Richard Biener <rguenther@suse.de> 30168 30169 PR build/80821 30170 * genmatch.c (dt_node::gen_kids_1): Add missing scope around 30171 predicate evaluation. 30172 301732017-05-19 Jan Hubicka <hubicka@ucw.cz> 30174 30175 * ipa-inline.h (ipa_call_summary): Turn sizes into signed; 30176 add ctor. 30177 * ipa-inline.c (want_inline_small_function_p): Do not cast to 30178 unsigned. 30179 301802017-05-19 Jan Hubicka <hubicka@ucw.cz> 30181 30182 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, 30183 inline_edge_removal_hook, inline_edge_duplication_hook): Remove. 30184 (inline_edge_summary_vec): Turn into ... 30185 (ipa_call_summaries): ... this one. 30186 (redirect_to_unreachable, edge_set_predicate, 30187 evaluate_properties_for_edge, inline_summary_alloc, 30188 reset_ipa_call_summary, reset_inline_summary, 30189 inline_summary_t::duplicate): Update. 30190 (inline_edge_duplication_hook): Turn to ... 30191 (ipa_call_summary_t::duplicate): ... this one. 30192 (inline_edge_removal_hook): Turn to ... 30193 (ipa_call_summary_t::remove): ... this one. 30194 (dump_inline_edge_summary): Turn to ... 30195 (dump_ipa_call_summary): ... this one. 30196 (estimate_function_body_sizes): Update. 30197 (inline_update_callee_summaries): Update. 30198 (remap_edge_change_prob): Update. 30199 (remap_edge_summaries): Update. 30200 (inline_merge_summary): Update. 30201 (do_estimate_edge_time): Update. 30202 (inline_generate_summary): Update. 30203 (inline_read_section): Update. 30204 (inline_read_summary): Update. 30205 (inline_free_summary): Update. 30206 * ipa-inline.c (can_inline_edge_p): Update. 30207 (compute_inlined_call_time): Update. 30208 (want_inline_small_function_p): Update. 30209 (edge_badness): Update. 30210 (early_inliner): Update. 30211 * ipa-inline.h (inline_edge_summary): Turn to ... 30212 (ipa_call_summary): ... this one. 30213 (ipa_call_summary_t): New class. 30214 (inline_edge_summary_t, inline_edge_summary_vec): Remove. 30215 (ipa_call_summaries): New. 30216 (inline_edge_summary): Remove. 30217 (estimate_edge_growth): Update. 30218 * ipa-profile.c (ipa_propagate_frequency_1): Update. 30219 * ipa-prop.c (ipa_make_edge_direct_to_target): Update. 30220 * ipa-split.c (execute_split_functions): Update. 30221 * ipa.c (symbol_table::remove_unreachable_nodes): Update. 30222 302232017-05-19 Richard Biener <rguenther@suse.de> 30224 30225 PR middle-end/80764 30226 * cfgexpand.c (expand_gimple_cond): Fix loop fixup. 30227 302282017-05-18 Segher Boessenkool <segher@kernel.crashing.org> 30229 30230 * config/rs6000/rs6000.c (struct machine_function): Add field 30231 fpr_is_wrapped_separately. 30232 (rs6000_get_separate_components): Use 64 components. Handle the 30233 new FPR components. 30234 (rs6000_components_for_bb): Handle the FPR components. 30235 (rs6000_emit_prologue_components): Handle the FPR components. 30236 (rs6000_emit_epilogue_components): Handle the FPR components. 30237 (rs6000_set_handled_components): Handle the FPR components. 30238 (rs6000_emit_prologue): Don't output prologue code for those FPRs 30239 that are already separately shrink-wrapped. 30240 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs 30241 that are already separately shrink-wrapped. 30242 302432017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> 30244 30245 PR target/80510 30246 * config/rs6000/predicates.md (simple_offsettable_mem_operand): 30247 New predicate. 30248 30249 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator. 30250 (define_peephole2 for Altivec d-form load): Add peepholes to catch 30251 cases where the register allocator uses a move and an offsettable 30252 memory operation to/from a FPR register on ISA 2.06/2.07. 30253 (define_peephole2 for Altivec d-form store): Likewise. 30254 302552017-05-18 Uros Bizjak <ubizjak@gmail.com> 30256 30257 PR target/80799 30258 * config/i386/mmx.md (*mov<mode>_internal): Enable 30259 alternatives 11, 12, 13 and 14 also for 32bit targets. 30260 Remove alternatives 15, 16, 17 and 18. 30261 * config/i386/sse.md (vec_concatv2di): Change 30262 alternative (!x, *y) to (x, ?!*Yn). 30263 302642017-05-18 Paolo Carlini <paolo.carlini@oracle.com> 30265 30266 * dumpfile.h (enum dump_kind): Remove stray comma. 30267 302682017-05-18 Jan Hubicka <hubicka@ucw.cz> 30269 30270 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h 30271 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into 30272 predicate::num_conditions 30273 (IS_NOT_CONSTANT): turn into predicate::is_not_constant. 30274 (CHANGED): turn into predicate::changed. 30275 (agg_position_info): Move to ipa-predicate.h 30276 (add_condition, predicate::add_clause, predicate::operator &=, 30277 predicate::or_with, predicate::evaluate, predicate::probability, 30278 dump_condition, dump_clause, predicate::dump, 30279 predicate::remap_after_duplication, predicate::remap_after_inlining, 30280 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c 30281 (evaluate_conditions_for_known_args): Update. 30282 (set_cond_stmt_execution_predicate): Update. 30283 * ipa-inline.h: Include ipa-predicate.h 30284 (condition, inline_param_summary, conditions, agg_position_info, 30285 predicate): Move to ipa-predicate.h 30286 * ipa-predicate.c: New file. 30287 * ipa-predicate.h: New file. 30288 302892017-05-18 Wilco Dijkstra <wdijkstr@arm.com> 30290 30291 * final.c (leaf_function_p): Check we are not in a sequence. 30292 302932017-05-18 Martin Liska <mliska@suse.cz> 30294 30295 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL. 30296 * dumpfile.c (dump_register): Use new enum dump_kind. 30297 (get_dump_file_name): Likewise. 30298 (dump_enable_all): Likewise. 30299 (dump_switch_p_1): Likewise. 30300 (enable_rtl_dump_file): Remove usage of TDF_RTL. 30301 * dumpfile.h (enum dump_kind): New enum type. 30302 (struct dump_file_info): Create constructor and 30303 format fields and comments. 30304 * passes.c (pass_manager::register_one_dump_file): 30305 Use num dump_kind. 30306 * statistics.c (statistics_early_init): Likewise. 30307 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace 30308 TDF_TREE with TDF_SLIM. 30309 (gather_memory_references_ref): Likewise. 30310 303112017-05-18 Martin Liska <mliska@suse.cz> 30312 30313 * vec.h (struct vnull): Use it. 30314 303152017-05-18 Jan Hubicka <hubicka@ucw.cz> 30316 30317 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h 30318 (true_predicate, false_predicate, true_predicate_p, 30319 false_predicate_p): Remove. 30320 (single_cond_predicate, not_inlined_predicate): Turn to member function 30321 in ipa-inline.h 30322 (add_condition): Update. 30323 (add_clause): Turn to... 30324 (predicate::add_clause): ... this one; update; allow passing NULL 30325 as parameter. 30326 (and_predicates): Turn to ... 30327 (predicate::operator &=): ... this one. 30328 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h 30329 (or_predicates): Turn to ... 30330 (predicate::or_with): ... this one. 30331 (evaluate_predicate): Turn to ... 30332 (predicate::evaluate): ... this one. 30333 (predicate_probability): Turn to ... 30334 (predicate::probability): ... this one. 30335 (dump_condition): Update. 30336 (dump_predicate): Turn to ... 30337 (predicate::dump): ... this one. 30338 (account_size_time): Update. 30339 (edge_set_predicate): Update. 30340 (set_hint_predicate): UPdate. 30341 (evaluate_conditions_for_known_args): Update. 30342 (evaluate_properties_for_edge): Update. 30343 (remap_predicate_after_duplication): Turn to... 30344 (predicate::remap_after_duplication): ... this one. 30345 (remap_hint_predicate_after_duplication): Update. 30346 (inline_summary_t::duplicate): UPdate. 30347 (dump_inline_edge_summary): Update. 30348 (dump_inline_summary): Update. 30349 (set_cond_stmt_execution_predicate): Update. 30350 (set_switch_stmt_execution_predicate): Update. 30351 (compute_bb_predicates): Update. 30352 (will_be_nonconstant_expr_predicate): Update. 30353 (will_be_nonconstant_predicate): Update. 30354 (phi_result_unknown_predicate): Update. 30355 (predicate_for_phi_result): Update. 30356 (array_index_predicate): Update. 30357 (estimate_function_body_sizes): Update. 30358 (estimate_node_size_and_time): Update. 30359 (estimate_ipcp_clone_size_and_time): Update. 30360 (remap_predicate): Rename to ... 30361 (predicate::remap_after_inlining): ... this one. 30362 (remap_hint_predicate): Update. 30363 (inline_merge_summary): Update. 30364 (inline_update_overall_summary): Update. 30365 (estimate_size_after_inlining): Update. 30366 (read_predicate): Rename to ... 30367 (predicate::stream_in): ... this one. 30368 (read_inline_edge_summary): Update. 30369 (write_predicate): Rename to ... 30370 (predicate::stream_out): ... this one. 30371 (write_inline_edge_summary): Update. 30372 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses. 30373 (clause_t): Turn to uint32_t 30374 (predicate): Turn to class; implement constructor and operators 30375 ==, !=, & 30376 (size_time_entry): Update. 30377 (inline_summary): Update. 30378 (inline_edge_summary): Update. 30379 303802017-05-18 Marc Glisse <marc.glisse@inria.fr> 30381 30382 * fold-const.c (fold_binary_loc): Move transformation... 30383 * match.pd (C - X CMP X): ... here. 30384 303852017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com> 30386 30387 * config/sparc/sparc.c (sparc_option_override): Set function 30388 alignment for -mcpu=niagara7 to 64 to match the I$ line. 30389 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch 30390 latency to 1. 30391 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch 30392 latency to 2. 30393 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo. 30394 303952017-05-18 Marek Polacek <polacek@redhat.com> 30396 30397 PR sanitizer/80797 30398 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs. 30399 (pass_ubsan::execute): Call gimple_assign_single_p instead of 30400 gimple_assign_load_p. 30401 304022017-05-17 Segher Boessenkool <segher@kernel.crashing.org> 30403 30404 PR middle-end/80692 30405 * real.c (do_compare): Give decimal_do_compare preference over 30406 comparing just the signs. 30407 304082017-05-17 Uros Bizjak <ubizjak@gmail.com> 30409 30410 * doc/md.texi (Canonicalization of Instructions): Describe the 30411 canonical form of instructions that inherently set a condition 30412 code register. 30413 304142017-05-17 Peter Bergner <bergner@vnet.ibm.com> 30415 30416 PR middle-end/80775 30417 * tree-cfg.c: Move deletion of unreachable case statements to after 30418 the merging of consecutive case labels. 30419 304202017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com> 30421 30422 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer 30423 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and 30424 restoring of callee-saved registers. 30425 304262017-05-17 Eric Botcazou <ebotcazou@adacore.com> 30427 30428 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment. 30429 * config/visium/visium.c (single_set_and_flags): Likewise. 30430 * config/visium/visium.md (Substitutions): Likewise. 30431 304322017-05-17 Martin Liska <mliska@suse.cz> 30433 30434 * cfg.c: Introduce dump_flags_t type and 30435 use it instead of int type. 30436 * cfg.h: Likewise. 30437 * cfghooks.c: Likewise. 30438 * cfghooks.h (struct cfg_hooks): Likewise. 30439 * cfgrtl.c: Likewise. 30440 * cfgrtl.h: Likewise. 30441 * cgraph.c (cgraph_node::get_body): Likewise. 30442 * coretypes.h: Likewise. 30443 * domwalk.c: Likewise. 30444 * domwalk.h: Likewise. 30445 * dumpfile.c (struct dump_option_value_info): Likewise. 30446 (dump_enable_all): Likewise. 30447 (dump_switch_p_1): Likewise. 30448 (opt_info_switch_p): Likewise. 30449 * dumpfile.h (enum tree_dump_index): Likewise. 30450 (struct dump_file_info): Likewise. 30451 * genemit.c: Likewise. 30452 * generic-match-head.c: Likewise. 30453 * gengtype.c (open_base_files): Likewise. 30454 * gimple-pretty-print.c: Likewise. 30455 * gimple-pretty-print.h: Likewise. 30456 * graph.c (print_graph_cfg): Likewise. 30457 * graphite-scop-detection.c (dot_all_sese): Likewise. 30458 * ipa-devirt.c (build_type_inheritance_graph): Likewise. 30459 * loop-unroll.c (report_unroll): Likewise. 30460 * passes.c (pass_manager::register_one_dump_file): Likewise. 30461 * print-tree.c: Likewise. 30462 * statistics.c: Likewise. 30463 * tree-cfg.c: Likewise. 30464 * tree-cfg.h: Likewise. 30465 * tree-dfa.c: Likewise. 30466 * tree-dfa.h: Likewise. 30467 * tree-dump.c (dump_function): Likewise. 30468 * tree-dump.h (struct dump_info): Likewise. 30469 * tree-pretty-print.c: Likewise. 30470 * tree-pretty-print.h: Likewise. 30471 * tree-ssa-live.c: Likewise. 30472 * tree-ssa-live.h: Likewise. 30473 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. 30474 * tree-vect-loop.c: Likewise. 30475 * tree-vect-slp.c: Likewise. 30476 304772017-05-16 James Greenhalgh <james.greenhalgh@arm.com> 30478 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 30479 30480 PR tree-optimization/80457 30481 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost 30482 of all arguments to a statement as scalar_to_vec operations. 30483 (vectorizable_call): Adjust call to vect_model_simple_cost for 30484 new parameter. 30485 (vectorizable_conversion): Likewise. 30486 (vectorizable_assignment): Likewise. 30487 (vectorizable_shift): Likewise. 30488 (vectorizable_operation): Likewise. 30489 (vectorizable_comparison): Likewise. 30490 (vect_is_simple_cond): Record the def types for operands. 30491 (vectorizable_condition): Likewise, call vect_model_simple_cost. 30492 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter 30493 for statement argument count. 30494 304952017-05-16 Carl Love <cel@us.ibm.com> 30496 30497 * config/rs6000/rs6000-c: Add support for built-in functions 30498 vector unsigned long long vec_bperm (vector unsigned long long, 30499 vector unsigned char) 30500 vector signed long long vec_mule (vector signed int, 30501 vector signed int) 30502 vector unsigned long long vec_mule (vector unsigned int, 30503 vector unsigned int) 30504 vector signed long long vec_mulo (vector signed int, 30505 vector signed int) 30506 vector unsigned long long vec_mulo (vector unsigned int, 30507 vector unsigned int) 30508 vector signed char vec_sldw (vector signed char, 30509 vector signed char, 30510 const int) 30511 vector unsigned char vec_sldw (vector unsigned char, 30512 vector unsigned char, 30513 const int) 30514 vector signed short vec_sldw (vector signed short, 30515 vector signed short, 30516 const int) 30517 vector unsigned short vec_sldw (vector unsigned short, 30518 vector unsigned short, 30519 const int) 30520 vector signed int vec_sldw (vector signed int, 30521 vector signed int, 30522 const int) 30523 vector unsigned int vec_sldw (vector unsigned int, 30524 vector unsigned int, 30525 const int) 30526 vector signed long long vec_sldw (vector signed long long, 30527 vector signed long long, 30528 const int) 30529 vector unsigned long long vec_sldw (vector unsigned long long, 30530 vector unsigned long long, 30531 const int) 30532 * config/rs6000/rs6000-c: Add support for built-in functions 30533 * config/rs6000/rs6000-builtin.def: Add definition for SLDW. 30534 * config/rs6000/altivec.h: Add defintion for vec_sldw. 30535 * doc/extend.texi: Update the built-in documentation for the 30536 new built-in functions. 30537 305382017-05-16 Marek Polacek <polacek@redhat.com> 30539 30540 PR sanitizer/80536 30541 PR sanitizer/80386 30542 * tree.c (save_expr): Don't fold the expression. 30543 305442017-05-16 Uros Bizjak <ubizjak@gmail.com> 30545 30546 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative 30547 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r) 30548 and (?*y,m). Update insn attributes. 30549 305502017-05-16 Martin Liska <mliska@suse.cz> 30551 30552 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for 30553 flags argument of print_gimple_stmt, print_gimple_expr, 30554 print_generic_stmt and print_generic_expr. 30555 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. 30556 * coretypes.h: Likewise. 30557 * except.c (dump_eh_tree): Likewise. 30558 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. 30559 * gimple-pretty-print.h: Likewise. 30560 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise. 30561 (backprop::push_to_worklist): Likewise. 30562 (backprop::pop_from_worklist): Likewise. 30563 (backprop::process_use): Likewise. 30564 (backprop::intersect_uses): Likewise. 30565 (note_replacement): Likewise. 30566 * gimple-ssa-store-merging.c 30567 (pass_store_merging::terminate_all_aliasing_chains): Likewise. 30568 (imm_store_chain_info::coalesce_immediate_stores): Likewise. 30569 (pass_store_merging::execute): Likewise. 30570 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise. 30571 (ssa_base_cand_dump_callback): Likewise. 30572 (dump_incr_vec): Likewise. 30573 (replace_refs): Likewise. 30574 (replace_mult_candidate): Likewise. 30575 (create_add_on_incoming_edge): Likewise. 30576 (create_phi_basis): Likewise. 30577 (insert_initializers): Likewise. 30578 (all_phi_incrs_profitable): Likewise. 30579 (introduce_cast_before_cand): Likewise. 30580 (replace_one_candidate): Likewise. 30581 * gimplify.c (gimplify_expr): Likewise. 30582 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise. 30583 (set_rename): Likewise. 30584 (rename_uses): Likewise. 30585 (copy_loop_phi_nodes): Likewise. 30586 (add_close_phis_to_merge_points): Likewise. 30587 (copy_loop_close_phi_args): Likewise. 30588 (copy_cond_phi_args): Likewise. 30589 (graphite_copy_stmts_from_block): Likewise. 30590 (translate_pending_phi_nodes): Likewise. 30591 * graphite-poly.c (print_pdr): Likewise. 30592 (dump_gbb_cases): Likewise. 30593 (dump_gbb_conditions): Likewise. 30594 (print_scop_params): Likewise. 30595 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise. 30596 (build_cross_bb_scalars_use): Likewise. 30597 (gather_bbs::before_dom_children): Likewise. 30598 * hsa-dump.c (dump_hsa_immed): Likewise. 30599 * ipa-cp.c (print_ipcp_constant_value): Likewise. 30600 (get_replacement_map): Likewise. 30601 * ipa-inline-analysis.c (dump_condition): Likewise. 30602 (estimate_function_body_sizes): Likewise. 30603 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise. 30604 (ipa_polymorphic_call_context::get_dynamic_type): Likewise. 30605 * ipa-prop.c (ipa_dump_param): Likewise. 30606 (ipa_print_node_jump_functions_for_edge): Likewise. 30607 (ipa_modify_call_arguments): Likewise. 30608 (ipa_modify_expr): Likewise. 30609 (ipa_dump_param_adjustments): Likewise. 30610 (ipa_dump_agg_replacement_values): Likewise. 30611 (ipcp_modif_dom_walker::before_dom_children): Likewise. 30612 * ipa-pure-const.c (check_stmt): Likewise. 30613 (pass_nothrow::execute): Likewise. 30614 * ipa-split.c (execute_split_functions): Likewise. 30615 * omp-offload.c (dump_oacc_loop_part): Likewise. 30616 (dump_oacc_loop): Likewise. 30617 * trans-mem.c (tm_log_emit): Likewise. 30618 (tm_memopt_accumulate_memops): Likewise. 30619 (dump_tm_memopt_set): Likewise. 30620 (dump_tm_memopt_transform): Likewise. 30621 * tree-cfg.c (gimple_verify_flow_info): Likewise. 30622 (print_loop): Likewise. 30623 * tree-chkp-opt.c (chkp_print_addr): Likewise. 30624 (chkp_gather_checks_info): Likewise. 30625 (chkp_get_check_result): Likewise. 30626 (chkp_remove_check_if_pass): Likewise. 30627 (chkp_use_outer_bounds_if_possible): Likewise. 30628 (chkp_reduce_bounds_lifetime): Likewise. 30629 * tree-chkp.c (chkp_register_addr_bounds): Likewise. 30630 (chkp_mark_completed_bounds): Likewise. 30631 (chkp_register_incomplete_bounds): Likewise. 30632 (chkp_mark_invalid_bounds): Likewise. 30633 (chkp_maybe_copy_and_register_bounds): Likewise. 30634 (chkp_build_returned_bound): Likewise. 30635 (chkp_get_bound_for_parm): Likewise. 30636 (chkp_build_bndldx): Likewise. 30637 (chkp_get_bounds_by_definition): Likewise. 30638 (chkp_generate_extern_var_bounds): Likewise. 30639 (chkp_get_bounds_for_decl_addr): Likewise. 30640 * tree-chrec.c (chrec_apply): Likewise. 30641 * tree-data-ref.c (dump_data_reference): Likewise. 30642 (dump_subscript): Likewise. 30643 (dump_data_dependence_relation): Likewise. 30644 (analyze_overlapping_iterations): Likewise. 30645 * tree-inline.c (expand_call_inline): Likewise. 30646 (tree_function_versioning): Likewise. 30647 * tree-into-ssa.c (dump_defs_stack): Likewise. 30648 (dump_currdefs): Likewise. 30649 (dump_names_replaced_by): Likewise. 30650 (dump_update_ssa): Likewise. 30651 (update_ssa): Likewise. 30652 * tree-object-size.c (pass_object_sizes::execute): Likewise. 30653 * tree-parloops.c (build_new_reduction): Likewise. 30654 (try_create_reduction_list): Likewise. 30655 (ref_conflicts_with_region): Likewise. 30656 (oacc_entry_exit_ok_1): Likewise. 30657 (oacc_entry_exit_single_gang): Likewise. 30658 * tree-pretty-print.h: Likewise. 30659 * tree-scalar-evolution.c (set_scalar_evolution): Likewise. 30660 (get_scalar_evolution): Likewise. 30661 (add_to_evolution): Likewise. 30662 (get_loop_exit_condition): Likewise. 30663 (analyze_evolution_in_loop): Likewise. 30664 (analyze_initial_condition): Likewise. 30665 (analyze_scalar_evolution): Likewise. 30666 (instantiate_scev): Likewise. 30667 (number_of_latch_executions): Likewise. 30668 (gather_chrec_stats): Likewise. 30669 (final_value_replacement_loop): Likewise. 30670 (scev_const_prop): Likewise. 30671 * tree-sra.c (dump_access): Likewise. 30672 (disqualify_candidate): Likewise. 30673 (create_access): Likewise. 30674 (reject): Likewise. 30675 (maybe_add_sra_candidate): Likewise. 30676 (create_access_replacement): Likewise. 30677 (analyze_access_subtree): Likewise. 30678 (analyze_all_variable_accesses): Likewise. 30679 (sra_modify_assign): Likewise. 30680 (initialize_constant_pool_replacements): Likewise. 30681 (find_param_candidates): Likewise. 30682 (decide_one_param_reduction): Likewise. 30683 (replace_removed_params_ssa_names): Likewise. 30684 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. 30685 * tree-ssa-copy.c (dump_copy_of): Likewise. 30686 (copy_prop_visit_cond_stmt): Likewise. 30687 * tree-ssa-dce.c (mark_operand_necessary): Likewise. 30688 * tree-ssa-dom.c (pass_dominator::execute): Likewise. 30689 (record_equivalences_from_stmt): Likewise. 30690 * tree-ssa-dse.c (compute_trims): Likewise. 30691 (delete_dead_call): Likewise. 30692 (delete_dead_assignment): Likewise. 30693 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise. 30694 (forward_propagate_into_cond): Likewise. 30695 (pass_forwprop::execute): Likewise. 30696 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. 30697 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): 30698 Likewise. 30699 (move_computations_worker): Likewise. 30700 (execute_sm): Likewise. 30701 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. 30702 (remove_exits_and_undefined_stmts): Likewise. 30703 (remove_redundant_iv_tests): Likewise. 30704 * tree-ssa-loop-ivopts.c (dump_use): Likewise. 30705 (adjust_iv_update_pos): Likewise. 30706 * tree-ssa-math-opts.c (bswap_replace): Likewise. 30707 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise. 30708 (value_replacement): Likewise. 30709 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. 30710 * tree-ssa-pre.c (print_pre_expr): Likewise. 30711 (get_representative_for): Likewise. 30712 (create_expression_by_pieces): Likewise. 30713 (insert_into_preds_of_block): Likewise. 30714 (eliminate_insert): Likewise. 30715 (eliminate_dom_walker::before_dom_children): Likewise. 30716 (eliminate): Likewise. 30717 (remove_dead_inserted_code): Likewise. 30718 * tree-ssa-propagate.c (substitute_and_fold): Likewise. 30719 * tree-ssa-reassoc.c (get_rank): Likewise. 30720 (eliminate_duplicate_pair): Likewise. 30721 (eliminate_plus_minus_pair): Likewise. 30722 (eliminate_not_pairs): Likewise. 30723 (undistribute_ops_list): Likewise. 30724 (eliminate_redundant_comparison): Likewise. 30725 (update_range_test): Likewise. 30726 (optimize_range_tests_var_bound): Likewise. 30727 (optimize_vec_cond_expr): Likewise. 30728 (rewrite_expr_tree): Likewise. 30729 (rewrite_expr_tree_parallel): Likewise. 30730 (linearize_expr): Likewise. 30731 (break_up_subtract): Likewise. 30732 (linearize_expr_tree): Likewise. 30733 (attempt_builtin_powi): Likewise. 30734 (attempt_builtin_copysign): Likewise. 30735 (transform_stmt_to_copy): Likewise. 30736 (transform_stmt_to_multiply): Likewise. 30737 (dump_ops_vector): Likewise. 30738 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise. 30739 (print_scc): Likewise. 30740 (set_ssa_val_to): Likewise. 30741 (visit_reference_op_store): Likewise. 30742 (visit_use): Likewise. 30743 (sccvn_dom_walker::before_dom_children): Likewise. 30744 (run_scc_vn): Likewise. 30745 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): 30746 Likewise. 30747 (expr_hash_elt::print): Likewise. 30748 (const_and_copies::pop_to_marker): Likewise. 30749 (const_and_copies::record_const_or_copy_raw): Likewise. 30750 * tree-ssa-structalias.c (compute_dependence_clique): Likewise. 30751 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise. 30752 (dump_predicates): Likewise. 30753 (find_uninit_use): Likewise. 30754 (warn_uninitialized_phi): Likewise. 30755 (pass_late_warn_uninitialized::execute): Likewise. 30756 * tree-ssa.c (verify_vssa): Likewise. 30757 (verify_ssa): Likewise. 30758 (maybe_optimize_var): Likewise. 30759 * tree-vrp.c (dump_value_range): Likewise. 30760 (dump_all_value_ranges): Likewise. 30761 (dump_asserts_for): Likewise. 30762 (register_edge_assert_for_2): Likewise. 30763 (vrp_visit_cond_stmt): Likewise. 30764 (vrp_visit_switch_stmt): Likewise. 30765 (vrp_visit_stmt): Likewise. 30766 (vrp_visit_phi_node): Likewise. 30767 (simplify_cond_using_ranges_1): Likewise. 30768 (fold_predicate_in): Likewise. 30769 (evrp_dom_walker::before_dom_children): Likewise. 30770 (evrp_dom_walker::push_value_range): Likewise. 30771 (evrp_dom_walker::pop_value_range): Likewise. 30772 (execute_early_vrp): Likewise. 30773 307742017-05-16 Richard Biener <rguenther@suse.de> 30775 30776 * dwarf2out.c (loc_list_from_tree_1): Do not create 30777 DW_OP_GNU_variable_value for DECL_IGNORED_P decls. 30778 307792017-05-16 Richard Biener <rguenther@suse.de> 30780 30781 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE 30782 just generated. 30783 (note_variable_value_in_expr): If we resolved the decl ref 30784 do not push to the stack. 30785 307862017-05-16 Matthew Wahab <matthew.wahab@arm.com> 30787 30788 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic 30789 operations in fast-math mode. 30790 (vaddq_f16): Likewise. 30791 (vmul_f16): Likewise. 30792 (vmulq_f16): Likewise. 30793 (vsub_f16): Likewise. 30794 (vsubq_f16): Likewise. 30795 * config/arm/neon.md (add<mode>3): New. 30796 (sub<mode>3): New. 30797 (fma:<VH:mode>3): New. Also remove outdated comment. 30798 (mul<mode>3): New. 30799 308002017-05-16 Martin Liska <mliska@suse.cz> 30801 30802 PR ipa/79849. 30803 PR ipa/79850. 30804 * ipa-devirt.c (warn_types_mismatch): Fix typo. 30805 (odr_types_equivalent_p): Likewise. 30806 308072017-05-15 Sylvestre Ledru <sylvestre@debian.org> 30808 30809 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637). 30810 308112017-05-15 Uros Bizjak <ubizjak@gmail.com> 30812 30813 PR target/80425 30814 * config/i386.i386.md (*zero_extendsidi2): Do not penalize 30815 non-interunit SSE move alternatives with '?'. 30816 (zero-extendsidi peephole2): New peephole to skip intermediate 30817 general register in SSE zero-extend sequence. 30818 308192017-05-15 Jeff Law <law@redhat.com> 30820 30821 * reorg.c (relax_delay_slots): Create a new variable to hold 30822 the temporary target rather than clobbering TARGET_LABEL. 30823 30824 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add 30825 missing argument to extract_bit_field call. 30826 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise. 30827 308282017-05-15 Martin Liska <mliska@suse.cz> 30829 30830 PR driver/31468 30831 * gcc.c (process_command): Do not allow empty argument of -o option. 30832 308332017-05-15 Renlin Li <renlin.li@arm.com> 30834 30835 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare. 30836 * config/aarch64/aarch64.c (aarch64_expand_call): Define. 30837 * config/aarch64/constraints.md (Usf): Add long call check. 30838 * config/aarch64/aarch64.md (call): Use aarch64_expand_call. 30839 (call_value): Likewise. 30840 (sibcall): Likewise. 30841 (sibcall_value): Likewise. 30842 (call_insn): New. 30843 (call_value_insn): New. 30844 (sibcall_insn): Update rtx pattern. 30845 (sibcall_value_insn): Likewise. 30846 (call_internal): Remove. 30847 (call_value_internal): Likewise. 30848 (sibcall_internal): Likewise. 30849 (sibcall_value_internal): Likewise. 30850 (call_reg): Likewise. 30851 (call_symbol): Likewise. 30852 (call_value_reg): Likewise. 30853 (call_value_symbol): Likewise. 30854 308552017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com> 30856 30857 PR target/80600 30858 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc. 30859 308602017-05-14 Uros Bizjak <ubizjak@gmail.com> 30861 30862 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is 30863 compatible with CCGOCmode and with CCZmode. 30864 308652017-05-14 Martin Sebor <msebor@redhat.com> 30866 30867 PR middle-end/77671 30868 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern. 30869 (gimple_fold_builtin_snprintf): Same. 30870 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare. 30871 (gimple_fold_builtin_snprintf): Same. 30872 * gimple-ssa-sprintf.c (get_format_string): Correct the detection 30873 of character types. 30874 (is_call_safe): New function. 30875 (try_substitute_return_value): Call it. 30876 (try_simplify_call): New function. 30877 (pass_sprintf_length::handle_gimple_call): Call it. 30878 308792017-05-14 Martin Sebor <msebor@redhat.com> 30880 30881 PR middle-end/80669 30882 * builtins.c (expand_builtin_stpncpy): Simplify. 30883 308842017-05-14 Daniel Santos <daniel.santos@pobox.com> 30885 30886 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues. 30887 * config/i386/i386.h 30888 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned. 30889 (NUM_X86_64_MS_CLOBBERED_REGS): New macro. 30890 (struct machine_function): Add new members call_ms2sysv, 30891 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs. 30892 (struct machine_frame_state): New fields sp_realigned and 30893 sp_realigned_offset. 30894 * config/i386/i386.c 30895 (enum xlogue_stub): New enum. 30896 (enum xlogue_stub_sets): New enum. 30897 (class xlogue_layout): New class. 30898 (struct ix86_frame): New fields stack_realign_allocate_offset, 30899 stack_realign_offset and outlined_save_offset. Modify comments to 30900 detail stack layout when using out-of-line stubs. 30901 (ix86_target_string): Add -mcall-ms2sysv-xlogues option. 30902 (ix86_option_override_internal): Add sorry() for TARGET_SEH and 30903 -mcall-ms2sysv-xlogues. 30904 (stub_managed_regs): New static variable. 30905 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit 30906 registers managed by out-of-line stub. 30907 (disable_call_ms2sysv_xlogues): New function. 30908 (ix86_compute_frame_layout): Modify re-alignment calculations, disable 30909 m->call_ms2sysv when appropriate and compute frame layout for 30910 out-of-line stubs. 30911 (sp_valid_at, fp_valid_at): New inline functions. 30912 (choose_basereg): New function. 30913 (choose_baseaddr): Add align parameter, use choose_basereg and modify 30914 all callers. 30915 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov): 30916 Use align parameter of choose_baseaddr to generated aligned SSE movs 30917 when possible. 30918 (pro_epilogue_adjust_stack): Modify to track 30919 machine_frame_state::sp_realigned. 30920 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg. 30921 (ix86_nsaved_sseregs): Likewise. 30922 (ix86_emit_save_regs): Likewise. 30923 (ix86_emit_save_regs_using_mov): Likewise. 30924 (ix86_emit_save_sse_regs_using_mov): Likewise. 30925 (get_scratch_register_on_entry): Likewise. 30926 (gen_frame_set): New function. 30927 (gen_frame_load): Likewise. 30928 (gen_frame_store): Likewise. 30929 (emit_outlined_ms2sysv_save): Likewise. 30930 (emit_outlined_ms2sysv_restore): Likewise. 30931 (ix86_expand_prologue): Modify stack re-alignment code and call 30932 emit_outlined_ms2sysv_save when appropriate. 30933 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add 30934 parameter rtx_insn *insn, which allows the function to be used to only 30935 generate the notes. 30936 (ix86_expand_epilogue): Modify validity checks of frame and stack 30937 pointers, and call emit_outlined_ms2sysv_restore when appropriate. 30938 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate. 30939 * config/i386/predicates.md 30940 (save_multiple): New predicate. 30941 (restore_multiple): Likewise. 30942 * config/i386/sse.md 30943 (save_multiple<mode>): New pattern. 30944 (save_multiple_realign<mode>): Likewise. 30945 (restore_multiple<mode>): Likewise. 30946 (restore_multiple_and_return<mode>): Likewise. 30947 (restore_multiple_leave_return<mode>): Likewise. 30948 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp 30949 309502017-05-14 Julia Koval <julia.koval@intel.com> 30951 30952 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type. 30953 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv) 30954 (__builtin_ia32_xsetbv): New builtins. 30955 * config/i386/i386.c (ix86_expand_special_args_builtin): 30956 Process new types. 30957 (ix86_expand_builtin): Special expand for new intrinsics. 30958 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New. 30959 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns. 30960 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics. 30961 309622017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 30963 30964 * cfganal.c (inverted_post_order_compute): Change argument type 30965 to vec *. 30966 * cfganal.h (inverted_post_order_compute): Adjust prototype. 30967 * df-core.c (rest_of_handle_df_initialize): Adjust. 30968 (rest_of_handle_df_finish): Likewise. 30969 (df_analyze_1): Likewise. 30970 (df_analyze): Likewise. 30971 (loop_inverted_post_order_compute): Change argument to be a vec *. 30972 (df_analyze_loop): Adjust. 30973 (df_get_n_blocks): Likewise. 30974 (df_get_postorder): Likewise. 30975 * df.h (struct df_d): Change field to be a vec. 30976 * lcm.c (compute_laterin): Adjust. 30977 (compute_available): Likewise. 30978 * lra-lives.c (lra_create_live_ranges_1): Likewise. 30979 * tree-ssa-dce.c (remove_dead_stmt): Likewise. 30980 * tree-ssa-pre.c (compute_antic): Likewise. 30981 309822017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 30983 30984 * cfganal.c (connect_infinite_loops_to_exit): Adjust. 30985 (depth_first_search::depth_first_search): Change structure init 30986 function to this constructor. 30987 (depth_first_search::add_bb): Rename function to this member. 30988 (depth_first_search::execute): Likewise. 30989 (flow_dfs_compute_reverse_finish): Adjust. 30990 309912017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 30992 30993 * ddg.c (find_nodes_on_paths): Use auto_sbitmap. 30994 (longest_simple_path): Likewise. 30995 * shrink-wrap.c (spread_components): Likewise. 30996 (disqualify_problematic_components): Likewise. 30997 (emit_common_heads_for_components): Likewise. 30998 (emit_common_tails_for_components): Likewise. 30999 (insert_prologue_epilogue_for_components): Likewise. 31000 310012017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31002 31003 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a 31004 auto_sbitmap. 31005 310062017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31007 31008 * df-core.c (df_set_blocks): Start using auto_bitmap. 31009 (df_compact_blocks): Likewise. 31010 * df-problems.c (df_rd_confluence_n): Likewise. 31011 * df-scan.c (df_insn_rescan_all): Likewise. 31012 (df_process_deferred_rescans): Likewise. 31013 (df_update_entry_block_defs): Likewise. 31014 (df_update_exit_block_uses): Likewise. 31015 (df_entry_block_bitmap_verify): Likewise. 31016 (df_exit_block_bitmap_verify): Likewise. 31017 (df_scan_verify): Likewise. 31018 * lra-constraints.c (lra_constraints): Likewise. 31019 (undo_optional_reloads): Likewise. 31020 (lra_undo_inheritance): Likewise. 31021 * lra-remat.c (calculate_gen_cands): Likewise. 31022 (do_remat): Likewise. 31023 * lra-spills.c (assign_spill_hard_regs): Likewise. 31024 (spill_pseudos): Likewise. 31025 * tree-ssa-pre.c (bitmap_set_and): Likewise. 31026 (bitmap_set_subtract_values): Likewise. 31027 310282017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31029 31030 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap 31031 management with auto_bitmap. 31032 (fix_inter_tick): Likewise. 31033 (fix_recovery_deps): Likewise. 31034 * ira.c (add_store_equivs): Likewise. 31035 (find_moveable_pseudos): Likewise. 31036 (split_live_ranges_for_shrink_wrap): Likewise. 31037 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise. 31038 (rtx_reuse_manager::seen_def_p): Likewise. 31039 (rtx_reuse_manager::set_seen_def): Likewise. 31040 * print-rtl.h (class rtx_reuse_manager): Likewise. 31041 310422017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31043 31044 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap 31045 lifetime. 31046 (migrate_btr_def): Likewise. 31047 * cfgloop.c (get_loop_body_in_bfs_order): Likewise. 31048 * df-core.c (loop_post_order_compute): Likewise. 31049 (loop_inverted_post_order_compute): Likewise. 31050 * hsa-common.h: Likewise. 31051 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise. 31052 * init-regs.c (initialize_uninitialized_regs): Likewise. 31053 * ipa-inline.c (resolve_noninline_speculation): Likewise. 31054 (inline_small_functions): Likewise. 31055 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. 31056 * ira.c (combine_and_move_insns): Likewise. 31057 (build_insn_chain): Likewise. 31058 * loop-invariant.c (find_invariants): Likewise. 31059 * lower-subreg.c (propagate_pseudo_copies): Likewise. 31060 * predict.c (tree_predict_by_opcode): Likewise. 31061 (predict_paths_leading_to): Likewise. 31062 (predict_paths_leading_to_edge): Likewise. 31063 (estimate_loops_at_level): Likewise. 31064 (estimate_loops): Likewise. 31065 * shrink-wrap.c (try_shrink_wrapping): Likewise. 31066 (spread_components): Likewise. 31067 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. 31068 * tree-loop-distribution.c (rdg_build_partitions): Likewise. 31069 * tree-predcom.c (tree_predictive_commoning_loop): Likewise. 31070 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise. 31071 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise. 31072 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. 31073 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise. 31074 * tree-ssa-threadupdate.c (compute_path_counts): Likewise. 31075 (mark_threaded_blocks): Likewise. 31076 (thread_through_all_blocks): Likewise. 31077 * tree-ssa.c (verify_ssa): Likewise. 31078 (execute_update_addresses_taken): Likewise. 31079 * tree-ssanames.c (verify_ssaname_freelists): Likewise. 31080 310812017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31082 31083 * cfganal.c (mark_dfs_back_edges): Replace manual stack with 31084 auto_vec. 31085 (post_order_compute): Likewise. 31086 (inverted_post_order_compute): Likewise. 31087 (pre_and_rev_post_order_compute_fn): Likewise. 31088 310892017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31090 31091 * genrecog.c (int_set::int_set): Explicitly construct our 31092 auto_vec base class. 31093 * vec.h (auto_vec::auto_vec): New constructor. 31094 310952017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31096 31097 * bitmap.h (class auto_bitmap): New constructor taking 31098 bitmap_obstack * argument. 31099 311002017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> 31101 31102 * bitmap.h (class auto_bitmap): Change type of m_bits to 31103 bitmap_head, and adjust ctor / dtor and member operators. 31104 311052017-05-13 Uros Bizjak <ubizjak@gmail.com> 31106 31107 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX 31108 when returned register mode doesn't match original mode. 31109 311102017-05-12 Jeff Law <law@redhat.com> 31111 Jakub Jelinek <jakub@redhat.com> 31112 31113 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where 31114 we look for cc setter after the compare-elim changes. 31115 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns 31116 within the vector to match what compare-elim now expects. 31117 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise. 31118 (xorsi3_flags, one_cmplsi2_flags): Likewise. 31119 31120 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter 31121 after the compare-elim changes. 31122 * config/rx/rx.md (abssi2_flags): Fix order of patterns within 31123 the vector to match what compare-elim now expects. 31124 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise. 31125 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise. 31126 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise. 31127 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise. 31128 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise. 31129 31130 * config/visium/visium.c (single_set_and_flags): Fix where 31131 we look for cc setter after the compare-elim changes. 31132 * config/visium/visium.md (flags_subst_logic): Fix order of patterns 31133 with the vector to match what compare-elim now expects. 31134 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise. 31135 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise. 31136 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise. 31137 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise. 31138 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise. 31139 (neg<mode>2_insn_set_overflow): Likewise. 31140 311412017-05-12 Jim Wilson <jim.wilson@linaro.org> 31142 31143 PR middle-end/79794 31144 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before 31145 maybe_expand_insn call, set ops[0].target. If still set after call, 31146 set alt_rtl. Add extra arg to recursive calls. 31147 (extract_bit_field): Add alt_rtl argument. Pass to 31148 extract_bit_field. 31149 * expmed.h (extract_bit_field): Fix prototype. 31150 * expr.c (emit_group_load_1, copy_blkmode_from_reg) 31151 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL 31152 to extract_bit_field_calls. 31153 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0. 31154 Pass alt_rtl to extract_bit_field calls. 31155 * calls.c (store_unaligned_arguments_into_psuedos) 31156 load_register_parameters): Pass extra NULL to extract_bit_field calls. 31157 * optabs.c (maybe_legitimize_operand): Clear op->target when call 31158 gen_reg_rtx. 31159 * optabs.h (struct expand_operand): Add target bitfield. 31160 311612017-05-12 Uros Bizjak <ubizjak@gmail.com> 31162 31163 * compare-elim.c (try_eliminate_compare): Canonicalize 31164 operation with embedded compare to 31165 [(set (reg:CCM) (compare:CCM (operation) (immediate))) 31166 (set (reg) (operation)]. 31167 31168 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define. 31169 311702017-05-12 Uros Bizjak <ubizjak@gmail.com> 31171 31172 PR target/80723 31173 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the 31174 cost of adding a carry flag for ADC instruction. 31175 [case MINUS]: Ignore the cost of subtracting a carry flag 31176 for SBB instruction. 31177 311782017-05-12 Steven Munroe <munroesj@gcc.gnu.org> 31179 31180 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h, 31181 and x86intrin.h 31182 * config/rs6000/bmiintrin.h: New file. 31183 * config/rs6000/bmi2intrin.h: New file. 31184 * config/rs6000/x86intrin.h: New file. 31185 311862017-05-12 Jeff Law <law@redhat.com> 31187 31188 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding 31189 markers. 31190 311912017-05-12 Peter Bergner <bergner@vnet.ibm.com> 31192 31193 PR middle-end/80707 31194 * tree-cfg.c: Remove cfg edges of unreachable case statements. 31195 311962017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> 31197 31198 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for 31199 early expansion of vector divide builtins. 31200 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of 31201 builtins identified as having unsigned arguments. 31202 312032017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> 31204 31205 * config/rs6000/rs6000.c (gimple-fold.h): New #include. 31206 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE 31207 expansion of vector logical operations (and, andc, or, xor, 31208 nor, orc, nand). 31209 312102017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> 31211 31212 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration. 31213 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype. 31214 312152017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> 31216 31217 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for 31218 early GIMPLE expansion of vector multiplies. 31219 312202017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com> 31221 31222 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the 31223 TARGET_HAVE_MOVT conditional. 31224 (movt splitter): Likewise. 31225 312262017-05-12 Richard Biener <rguenther@suse.de> 31227 31228 * tree-ssa-sccvn.h (has_VN_INFO): Declare. 31229 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): 31230 Fold all stmts not inplace. 31231 312322017-05-12 Richard Biener <rguenther@suse.de> 31233 31234 PR tree-optimization/80713 31235 * tree-ssa-pre.c (remove_dead_inserted_code): Clear 31236 inserted_exprs bit for not removed stmts. 31237 312382017-05-12 Thomas Schwinge <thomas@codesourcery.com> 31239 31240 PR middle-end/69921 31241 * tree-parloops.c (create_parallel_loop): Set "oacc kernels 31242 parallelized" attribute for parallelized OpenACC kernels. 31243 * omp-offload.c (execute_oacc_device_lower): Use it. 31244 31245 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>: 31246 Set "oacc kernels" attribute. 31247 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal 31248 parameter. Adjust all users. 31249 (oacc_fn_attrib_kernels_p): Remove function. 31250 * omp-offload.c (execute_oacc_device_lower): Look for "oacc 31251 kernels" attribute instead of calling oacc_fn_attrib_kernels_p. 31252 * tree-ssa-loop.c (gate_oacc_kernels): Likewise. 31253 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p, 31254 assert "oacc kernels" attribute is set. 31255 312562017-05-11 Carl Love <cel@us.ibm.com> 31257 31258 * config/rs6000/rs6000-c: Add support for built-in functions 31259 vector unsigned char vec_popcnt (vector signed char) 31260 vector unsigned char vec_popcnt (vector unsigned char) 31261 vector unsigned short vec_popcnt (vector signed short) 31262 vector unsigned short vec_popcnt (vector unsigned short) 31263 vector unsigned int vec_popcnt (vector signed int) 31264 vector unsigned int vec_popcnt (vector unsigned int) 31265 vector unsigned long long vec_popcnt (vector signed long long) 31266 vector unsigned long long vec_popcnt (vector unsigned long long) 31267 vector signed long long vec_slo (vector signed long long, 31268 vector signed char) 31269 vector signed long long vec_slo (vector signed long long, 31270 vector unsigned char) 31271 vector unsigned long long vec_slo (vector unsigned long long, 31272 vector signed char) 31273 vector unsigned long long vec_slo (vector unsigned long long, 31274 vector unsigned char) 31275 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB, 31276 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads. 31277 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb, 31278 vec_popcnth, vec_popcntw and vec_popcntd built-in functions. 31279 * doc/extend.texi: Update the built-in documentation file for the 31280 new built-in functions. 31281 312822017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> 31283 31284 * attribs.h (sorted_attr_string): Move machine independent 31285 functions for target clone support from the i386 port to common 31286 code. Rename ix86_function_versions to common_function_versions. 31287 Rename make_name to make_unique_name. 31288 (common_function_versions): Likewise. 31289 (make_unique_name): Likewise. 31290 (make_dispatcher_decl): Likewise. 31291 (is_function_default_version): Likewise. 31292 * attribs.c (attr_strcmp): Likewise. 31293 (sorted_attr_string): Likewise. 31294 (common_function_versions): Likewise. 31295 (make_unique_name): Likewise. 31296 (make_dispatcher_decl): Likewise. 31297 (is_function_default_version): Likewise. 31298 * config/i386/i386.c (attr_strcmp): Likewise. 31299 (sorted_attr_string): Likewise. 31300 (ix86_function_versions): Likewise. 31301 (make_name): Likewise. 31302 (make_dispatcher_decl): Likewise. 31303 (is_function_default_version): Likewise. 31304 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook. 31305 313062017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31307 31308 PR target/80695 31309 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): 31310 Account for direct move costs for vec_construct of integer 31311 vectors. 31312 313132017-05-11 Uros Bizjak <ubizjak@gmail.com> 31314 31315 PR target/80706 31316 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec. 31317 (UNSPEC_STX_ATOMIC): Ditto. 31318 (loaddi_via_sse): New insn. 31319 (storedi_via_sse): Ditto. 31320 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse. 31321 Update corresponding peephole2 patterns. 31322 (atomic_storedi_fpu): Ditto. 31323 313242017-05-11 Julia Koval <julia.koval@intel.com> 31325 31326 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd) 31327 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): 31328 New intrinsics. 31329 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask) 31330 (__builtin_ia32_rsqrt14ss_mask): New builtins. 31331 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern. 31332 313332017-05-11 Nathan Sidwell <nathan@acm.org> 31334 31335 * graphite-poly.c: Include dumpfile.h. 31336 31337 * dumpfle.h (dump_function): Declare here ... 31338 * tree-dump.h (dump_function): ... not here. 31339 * dumpfile.c: #include tree-cfg.h. 31340 (dump_function): Move here from ... 31341 * tree-dump.c (dump_function): ... here. 31342 * gimplify.c: #include splay-tree.h, not tree-dump.h. 31343 * graphite-poly.c: Don't include tree-dump.h. 31344 * cgraphclones.c: Include dumpfile.h not tree-dump.h. 31345 * print-tree.c: Likewise. 31346 * stor-layout.c: Likewise. 31347 * tree-nested.c: Likewise. 31348 31349 * dumpfile.c (dump_start): Use TDF_FLAGS. 31350 (dump_enable_all): Fix TDF_KIND check thinko. 31351 313522017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 31353 31354 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 31355 array entries to represent two legal parameterizations of the 31356 overloaded __builtin_cmpb function, as represented by the 31357 P6_OV_BUILTIN_CMPB constant. 31358 (altivec_resolve_overloaded_builtin): Add special case handling 31359 for the __builtin_cmpb function, as represented by the 31360 P6_OV_BUILTIN_CMPB constant. 31361 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro. 31362 (BU_P6_64BIT_2): New macro. 31363 (BU_P6_OVERLOAD_2): New macro 31364 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets. 31365 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets. 31366 (CMPB): Add overload support to represent both 32-bit and 64-bit 31367 compare-bytes function. 31368 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add 31369 support for TARGET_CMPB. 31370 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB. 31371 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add 31372 documentation of the __builtin_cmpb overloaded built-in function. 31373 313742017-05-11 Richard Biener <rguenther@suse.de> 31375 31376 PR tree-optimization/80705 31377 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED 31378 bases are not vectorizable. 31379 313802017-05-11 Bin Cheng <bin.cheng@arm.com> 31381 31382 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger 31383 when counting register pressure. 31384 313852017-05-11 Bin Cheng <bin.cheng@arm.com> 31386 31387 * tree-ssa-loop-ivopts.c (compare_cost_pair): New. 31388 (iv_ca_more_deps): Renamed to ... 31389 (iv_ca_compare_deps): ... this. 31390 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP. 31391 313922017-05-11 Bin Cheng <bin.cheng@arm.com> 31393 31394 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump 31395 to ... 31396 (determine_group_iv_costs): ... here. 31397 (find_inv_vars_cb): Record inv var if it's not recorded before. 31398 313992017-05-11 Bin Cheng <bin.cheng@arm.com> 31400 31401 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments. 31402 (get_shiftadd_cost): Ditto. 31403 314042017-05-11 Bin Cheng <bin.cheng@arm.com> 31405 31406 * tree-ssa-address.c: Include header file. 31407 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory 31408 address. 31409 (add_to_parts): Refactor. 31410 (addr_to_parts): New parameter. Update use of move_hint_to_base. 31411 (create_mem_ref): Update use of addr_to_parts. Re-associate addr 31412 in new order. 31413 314142017-05-11 Bin Cheng <bin.cheng@arm.com> 31415 31416 PR tree-optimization/53090 31417 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value 31418 COMP_IV_EXPR_2. 31419 (extract_cond_operands): Detect condition with IV on both sides 31420 and return COMP_IV_EXPR_2. 31421 (find_interesting_uses_cond): Add iv_use for both IVs in condition. 31422 (rewrite_use_compare): Simplify by removing call to function 31423 extract_cond_operands. 31424 314252017-05-11 Bin Cheng <bin.cheng@arm.com> 31426 31427 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New. 31428 (extract_cond_operands): Detect condition comparing against non- 31429 invariant bound and return appropriate enum value. 31430 (find_interesting_uses_cond): Update use of extract_cond_operands. 31431 Handle its return value accordingly. 31432 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto. 31433 314342017-05-11 Bin Cheng <bin.cheng@arm.com> 31435 31436 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate 31437 nonlinear iv_use computation in loop invariant sensitive way. 31438 314392017-05-11 Bin Cheng <bin.cheng@arm.com> 31440 31441 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New. 31442 (find_iv_candidates): Call relate_compare_use_with_all_cands. 31443 314442017-05-11 Bin Cheng <bin.cheng@arm.com> 31445 31446 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs. 31447 (dump_cand): Support iv_cand.inv_exprs. 31448 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs 31449 for candidates. 31450 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support 31451 iv_cand.inv_exprs. 31452 314532017-05-11 Bin Cheng <bin.cheng@arm.com> 31454 31455 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move 31456 from ... 31457 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here 31458 as local function. Include necessary header files. 31459 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete. 31460 314612017-05-11 Bin Cheng <bin.cheng@arm.com> 31462 31463 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify. 31464 314652017-05-11 Bin Cheng <bin.cheng@arm.com> 31466 31467 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more 31468 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR, 31469 RSHIFT_EXPR and BIT_NOT_EXPR. 31470 314712017-05-11 Bin Cheng <bin.cheng@arm.com> 31472 31473 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify. 31474 (adjust_setup_cost): New parameter supporting round up adjustment. 31475 (struct address_cost_data): Delete. 31476 (force_expr_to_var_cost): Don't bound cost with spill_cost. 31477 (split_address_cost, ptr_difference_cost): Delete. 31478 (difference_cost, compare_aff_trees, record_inv_expr): Delete. 31479 (struct ainc_cost_data): New struct. 31480 (get_address_cost_ainc): New function. 31481 (get_address_cost, get_computation_cost): Reimplement. 31482 (determine_group_iv_cost_address): Record inv_expr for all uses of 31483 a group. 31484 (determine_group_iv_cost_cond): Call get_loop_invariant_expr. 31485 (iv_ca_has_deps): Reimplemented to ... 31486 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps 31487 than OLD_CP. 31488 (iv_ca_extend): Call iv_ca_more_deps. 31489 314902017-05-11 Bin Cheng <bin.cheng@arm.com> 31491 31492 * tree-ssa-address.c (struct mem_address): Move to header file. 31493 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global. 31494 * tree-ssa-address.h (struct mem_address): Move from C file. 31495 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare. 31496 314972017-05-11 Bin Cheng <bin.cheng@arm.com> 31498 31499 * tree-affine.h (aff_combination_type): New interface. 31500 (aff_combination_zero_p): Remove static. 31501 (aff_combination_const_p): New interface. 31502 (aff_combination_singleton_var_p): New interfaces. 31503 315042017-05-11 Richard Biener <rguenther@suse.de> 31505 31506 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): 31507 Skip unreachable blocks and destinations. 31508 (eliminate): Move stmt removal and fixup ... 31509 (fini_eliminate): ... here. Skip inserted exprs. 31510 (pass_pre::execute): Move fini_pre after fini_eliminate. 31511 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h. 31512 (tail_merge_optimize): Run cleanup_tree_cfg if requested by 31513 PRE to get rid of dead code that has invalid SSA form and 31514 split critical edges again. 31515 315162017-05-11 Bin Cheng <bin.cheng@arm.com> 31517 31518 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. 31519 315202017-05-11 Richard Biener <rguenther@suse.de> 31521 31522 * passes.c (execute_function_todo): Verify loops if they are 31523 said to be up-to-date. 31524 * cfgexpand.c (pass_expand::execute): Discard loops for -dx. 31525 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup. 31526 315272017-05-10 John David Anglin <danglin@gcc.gnu.org> 31528 31529 PR target/80090 31530 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF, 31531 handle calling assemble_external ourself. 31532 31533 PR target/79027 31534 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from 31535 modes with zero size. Enhance comment. 31536 315372017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31538 31539 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8 31540 built-ins for vec_xl and vec_xst with short and char pointer 31541 arguments. 31542 315432017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> 31544 31545 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd) 31546 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss) 31547 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd) 31548 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss) 31549 (_mm_maskz_min_round_ss): New intrinsics. 31550 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT) 31551 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases. 31552 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round) 31553 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round) 31554 (__builtin_ia32_minss_mask_round): New builtins. 31555 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) 31556 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. 31557 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>): 31558 Rename to ... 31559 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this. 31560 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}): 31561 Change to ... 31562 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): 31563 ... this. 31564 315652017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> 31566 31567 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd) 31568 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss) 31569 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd) 31570 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss) 31571 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd) 31572 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd) 31573 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics. 31574 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) 31575 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. 31576 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round) 31577 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round) 31578 (__builtin_ia32_mulss_mask_round): New builtins. 31579 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) 31580 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. 31581 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>): 31582 Rename to ... 31583 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this. 31584 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): 31585 Change to ... 31586 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): 31587 ... this. 31588 315892017-05-10 Julia Koval <julia.koval@intel.com> 31590 31591 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d) 31592 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d) 31593 (_mm256_setr_m128i): New intrinsics. 31594 315952017-05-10 Julia Koval <julia.koval@intel.com> 31596 31597 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd) 31598 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss) 31599 (_mm_maskz_rcp14_ss): New intrinsics. 31600 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask) 31601 (__builtin_ia32_rcp14ss_mask): New builtins. 31602 * config/i386/sse.md (srcp14<mode>_mask): New pattern. 31603 316042017-05-10 Peter Bergner <bergner@vnet.ibm.com> 31605 31606 PR tree-optimization/51513 31607 * tree-cfg.c (gimple_seq_unreachable_p): New function. 31608 (assert_unreachable_fallthru_edge_p): Use it. 31609 (group_case_labels_stmt): Likewise. 31610 * tree-cfg.h: Prototype it. 31611 * stmt.c: Include cfghooks.h and tree-cfg.h. 31612 (emit_case_dispatch_table) <gap_label>: New local variable. 31613 Use it to fill dispatch table gaps. 31614 Test for default_label before updating probabilities. 31615 (expand_case) <default_label>: Remove unneeded initialization. 31616 Test for unreachable default case statement and remove its edge. 31617 Set default_label accordingly. 31618 * tree-ssa-ccp.c (optimize_unreachable): Update comment. 31619 316202017-05-10 Carl Love <cel@us.ibm.com> 31621 31622 * config/rs6000/rs6000-c: Add support for built-in functions 31623 vector signed char vec_neg (vector signed char) 31624 vector signed short int vec_neg (vector short int) 31625 vector signed int vec_neg (vector signed int) 31626 vector signed long long vec_neg (vector signed long long) 31627 vector float vec_neg (vector float) 31628 vector double vec_neg (vector double) 31629 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function 31630 overload. 31631 * config/rs6000/altivec.h: Add define for vec_neg 31632 * doc/extend.texi: Update the built-in documentation for the 31633 new built-in functions. 31634 316352017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 31636 31637 PR tree-optimization/77644 31638 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern. 31639 316402017-05-10 Nathan Sidwell <nathan@acm.org> 31641 31642 * dumpfile.h (TDI_lang_all): New. 31643 (TDF_KIND): New. Renumber others 31644 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather 31645 than bits. 31646 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add 31647 lang-all. 31648 (get_dump_file_name): Adjust suffix generation. 31649 (dump_enable_all): Use TDF_KIND. 31650 * doc/invoke.texi (-fdump-lang-all): Document. 31651 31652 * dumpfile.h: Tabify. 31653 316542017-05-10 Wilco Dijkstra <wdijkstr@arm.com> 31655 31656 PR target/80671 31657 * config/aarch64/cortex-a57-fma-steering.c (merge_forest): 31658 Move member access before delete. 31659 316602017-05-10 Alexandre Oliva <aoliva@redhat.com> 31661 31662 * tree-inline.c (expand_call_inline): Split block at stmt 31663 before the call. 31664 316652017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com> 31666 31667 PR target/68163 31668 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that 31669 are now unused after splitting mov{sf,sd}_hardfloat. 31670 (f32_lr2): Likewise. 31671 (f32_lm): Likewise. 31672 (f32_lm2): Likewise. 31673 (f32_li): Likewise. 31674 (f32_li2): Likewise. 31675 (f32_lv): Likewise. 31676 (f32_sr): Likewise. 31677 (f32_sr2): Likewise. 31678 (f32_sm): Likewise. 31679 (f32_sm2): Likewise. 31680 (f32_si): Likewise. 31681 (f32_si2): Likewise. 31682 (f32_sv): Likewise. 31683 (f32_dm): Likewise. 31684 (f32_vsx): Likewise. 31685 (f32_av): Likewise. 31686 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces. 31687 For movsf, order stores so the VSX stores occur before the GPR 31688 store which encourages the register allocator to use a traditional 31689 FPR instead of a GPR. For movsd, order the stores so that the GPR 31690 store comes before the VSX stores to allow the power6 to work. 31691 This is due to the power6 not having a 32-bit integer store 31692 instruction from a FPR. 31693 (movsf_hardfloat): Likewise. 31694 (movsd_hardfloat): Likewise. 31695 316962017-05-09 Martin Sebor <msebor@redhat.com> 31697 31698 PR translation/80280 31699 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member 31700 added in r247778. 31701 31702 PR translation/80280 31703 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new 31704 data member added in r247778. 31705 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same. 31706 317072017-05-09 Nathan Sidwell <nathan@acm.org> 31708 31709 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure. 31710 31711 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope 31712 typedefs. 31713 317142017-05-09 Marek Polacek <polacek@redhat.com> 31715 31716 * doc/invoke.texi: Fix typo. 31717 317182017-05-09 Richard Biener <rguenther@suse.de> 31719 31720 * tree-vrp.c (vrp_val_is_max): Adjust comment. 31721 (vrp_val_is_min): Likewise. 31722 (set_value_range_to_value): Likewise. 31723 (set_value_range_to_nonnegative): Likewise. 31724 (gimple_assign_nonzero_p): Likewise. 31725 (gimple_stmt_nonzero_p): Likewise. 31726 (vrp_int_const_binop): Likewise. Remove unreachable case. 31727 (adjust_range_with_scev): Adjust comments. 31728 (compare_range_with_value): Likewise. 31729 (extract_range_from_phi_node): Likewise. 31730 (test_for_singularity): Likewise. 31731 317322017-05-09 Richard Biener <rguenther@suse.de> 31733 31734 * tree-vrp.c (get_single_symbol): Add assert that we don't 31735 get overflowed constants as invariant part. 31736 (compare_values_warnv): Add comment before the TREE_NO_WARNING 31737 checks. Use wi::cmp instead of recursing for integer constants. 31738 (compare_values): Just ignore whether we assumed undefined 31739 overflow instead of failing the compare. 31740 (extract_range_for_var_from_comparison_expr): Add comment before the 31741 TREE_NO_WARNING sets. 31742 (test_for_singularity): Likewise. 31743 (extract_range_from_comparison): Do not disable optimization 31744 when we assumed undefined overflow. 31745 (extract_range_basic): Remove init of unused var. 31746 317472017-05-09 Richard Biener <rguenther@suse.de> 31748 31749 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify. 31750 (extract_range_from_multiplicative_op_1): Adjust. 31751 (extract_range_from_binary_expr_1): Use int_const_binop. 31752 317532017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> 31754 31755 PR target/80101 31756 * config/rs6000/power6.md: Replace store_data_bypass_p calls with 31757 rs6000_store_data_bypass_p in seven define_bypass directives and 31758 in several comments. 31759 * config/rs6000/rs6000-protos.h: Add prototype for 31760 rs6000_store_data_bypass_p function. 31761 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New 31762 function implements slightly different (rs6000-specific) semantics 31763 than store_data_bypass_p, returning false rather than aborting 31764 with assertion error when arguments do not satisfy the 31765 requirements of store data bypass. 31766 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with 31767 rs6000_store_data_bypass_p. 31768 317692017-05-08 Max Filippov <jcmvbkbc@gmail.com> 31770 31771 * config/xtensa/xtensa-protos.h 31772 (xtensa_initial_elimination_offset): New declaration. 31773 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): 31774 New function. Move its body from the INITIAL_ELIMINATION_OFFSET 31775 macro definition, add case for FRAME_POINTER_REGNUM when 31776 FRAME_GROWS_DOWNWARD. 31777 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition. 31778 (INITIAL_ELIMINATION_OFFSET): Replace body with call to 31779 xtensa_initial_elimination_offset. 31780 317812017-05-08 Nathan Sidwell <nathan@acm.org> 31782 31783 * doc/invoke.texi: Alphabetize -fdump options. 31784 317852017-05-08 Martin Sebor <msebor@redhat.com> 31786 31787 PR translation/80280 31788 * config/sol2-c.c (solaris_pragma_align): Correct quoting. 31789 317902017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de> 31791 31792 * target.def (compute_frame_layout): New optional target hook. 31793 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook. 31794 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation. 31795 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout 31796 target hook. 31797 * reload1.c (verify_initial_elim_offsets): Likewise. 31798 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define. 31799 (use_simple_return_p): Call arm_compute_frame_layout if needed. 31800 (arm_get_frame_offsets): Split up into this ... 31801 (arm_compute_frame_layout): ... and this function. 31802 318032017-05-08 Richard Sandiford <richard.sandiford@arm.com> 31804 31805 * config/aarch64/constraints.md (Usa): New constraint. 31806 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it. 31807 318082017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com> 31809 31810 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from 31811 with_multilib_list after it has been checked. 31812 318132017-05-08 Richard Biener <rguenther@suse.de> 31814 31815 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy. 31816 (bitmap_set_subtract_values): Likewise. 31817 318182017-05-08 Richard Biener <rguenther@suse.de> 31819 31820 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ... 31821 (gimple_assign_nonzero): ... this and remove strict_overflow_p 31822 argument. 31823 (gimple_stmt_nonzero_warnv_p): Rename to ... 31824 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p 31825 argument. 31826 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument. 31827 (extract_range_basic): Adjust, do not disable propagation on 31828 strict overflow sensitive simplification. 31829 (vrp_visit_cond_stmt): Likewise. 31830 318312017-05-05 Jan Hubicka <hubicka@ucw.cz> 31832 31833 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute 31834 body size unconditionally. 31835 318362017-05-07 Jeff Law <law@redhat.com> 31837 31838 Revert: 31839 2017-05-06 Jeff Law <law@redhat.com> 31840 PR tree-optimization/78496 31841 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging 31842 code. 31843 31844 PR tree-optimization/78496 31845 * tree-vrp.c (simplify_assert_expr_using_ranges): New function. 31846 (simplify_stmt_using_ranges): Call it. 31847 (vrp_dom_walker::before_dom_children): Extract equivalences 31848 from an ASSERT_EXPR with an equality comparison against a 31849 constant. 31850 318512017-05-06 Jeff Law <law@redhat.com> 31852 31853 PR tree-optimization/78496 31854 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging 31855 code. 31856 31857 PR tree-optimization/78496 31858 * tree-vrp.c (simplify_assert_expr_using_ranges): New function. 31859 (simplify_stmt_using_ranges): Call it. 31860 (vrp_dom_walker::before_dom_children): Extract equivalences 31861 from an ASSERT_EXPR with an equality comparison against a 31862 constant. 31863 318642017-05-06 Richard Sandiford <richard.sandiford@linaro.org> 31865 31866 * lra-constraints.c (lra_copy_reg_equiv): New function. 31867 (split_reg): Use it to copy equivalence information from the 31868 original register to the spill register. 31869 318702017-05-06 Richard Sandiford <richard.sandiford@linaro.org> 31871 31872 PR rtl-optimization/75964 31873 * simplify-rtx.c (simplify_const_relational_operation): Remove 31874 invalid handling of comparisons of integer ABS. 31875 318762017-05-06 Uros Bizjak <ubizjak@gmail.com> 31877 31878 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly 31879 initialize to zero. 31880 (init_regs): Remove declaration. 31881 (function_arg_advance_32): Initialize error_p as boolean variable. 31882 318832017-05-05 Nathan Sidwell <nathan@acm.org> 31884 31885 * store-motion.c (remove_reachable_equiv_notes): Reformat long 31886 lines. Use for (;;). 31887 318882017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31889 31890 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var. 31891 (rs6000_init_cost): Initialize rs6000_vect_nonmem. 31892 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem. 31893 (rs6000_finish_cost): Avoid vectorizing simple copy loops with 31894 VF=2 that require versioning. 31895 318962017-05-05 David Malcolm <dmalcolm@redhat.com> 31897 31898 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const 31899 int. 31900 319012017-05-05 David Malcolm <dmalcolm@redhat.com> 31902 31903 * diagnostic.h (diagnostic_override_option_index): Convert from 31904 macro to inline function. 31905 319062017-05-05 David Malcolm <dmalcolm@redhat.com> 31907 31908 * diagnostic.c (last_module_changed_p): New function. 31909 (set_last_module): New function. 31910 (diagnostic_report_current_module): Convert macro usage to 31911 the above functions. 31912 * diagnostic.h (diagnostic_context::last_module): Strengthen 31913 from const line_map * to const line_map_ordinary *. 31914 (diagnostic_last_module_changed): Delete macro. 31915 (diagnostic_set_last_module): Delete macro. 31916 319172017-05-05 David Malcolm <dmalcolm@redhat.com> 31918 31919 * diagnostic.c (diagnostic_impl): Replace report_diagnostic 31920 with diagnostic_report_diagnostic. 31921 (diagnostic_n_impl_richloc): Likewise. 31922 * diagnostic.h (report_diagnostic): Delete macro. 31923 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic 31924 with diagnostic_report_diagnostic. 31925 * substring-locations.c (format_warning_va): Likewise. 31926 319272017-05-05 David Malcolm <dmalcolm@redhat.com> 31928 31929 * diagnostic.c (diagnostic_report_diagnostic): Eliminate 31930 save/restor of format_spec. Move option-printing code to... 31931 (print_option_information): ...this new function, and 31932 reimplement by simply printing to the pretty_printer, 31933 rather than appending to the format string. 31934 319352017-05-05 David Malcolm <dmalcolm@redhat.com> 31936 31937 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma 31938 handling logic into... 31939 (update_effective_level_from_pragmas): ...this new function. 31940 319412017-05-04 Andrew Waterman <andrew@sifive.com> 31942 31943 * config/riscv/riscv.opt (mstrict-align): New option. 31944 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment. 31945 (SLOW_UNALIGNED_ACCESS): Define. 31946 (riscv_slow_unaligned_access): Declare. 31947 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access 31948 field. 31949 (riscv_slow_unaligned_access): New variable. 31950 (rocket_tune_info): Set slow_unaligned_access to true. 31951 (optimize_size_tune_info): Set slow_unaligned_access to false. 31952 (riscv_cpu_info_table): Add entry for optimize_size_tune_info. 31953 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN. 31954 (riscv_option_override): Set riscv_slow_unaligned_access. 31955 * doc/invoke.texi: Add -mstrict-align to RISC-V. 31956 319572017-05-04 Kito Cheng <kito.cheng@gmail.com> 31958 31959 * config/riscv/riscv.md: Unify indentation. 31960 319612017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com> 31962 31963 PR target/79038 31964 PR target/79202 31965 PR target/79203 31966 * config/rs6000/rs6000.md (u code attribute): Add FIX and 31967 UNSIGNED_FIX. 31968 (extendsi<mode>2): Add support for doing sign extension via 31969 VUPKHSW and XXPERMDI if the value is in Altivec registers and we 31970 don't have ISA 3.0 instructions. 31971 (extendsi<mode>2 splitter): Likewise. 31972 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer), 31973 generate the normal insns since SImode can now go in vector 31974 registers. Disallow the special UNSPECs needed for previous 31975 machines to hide SImode being used. Add new insns 31976 fctiw{,w}_<mode>_smallint if SImode can go in vector registers. 31977 (fix_trunc<mode>si2_stfiwx): Likewise. 31978 (fix_trunc<mode>si2_internal): Likewise. 31979 (fixuns_trunc<mode>si2): Likewise. 31980 (fixuns_trunc<mode>si2_stfiwx): Likewise. 31981 (fctiw<u>z_<mode>_smallint): Likewise. 31982 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion 31983 of floating point to 32-bit integer from doing a direct move to 31984 the GPR registers to do a store. 31985 (fctiwz_<mode>): Break long line. 31986 319872017-05-05 Bin Cheng <bin.cheng@arm.com> 31988 31989 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c. 31990 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete. 31991 (addr_list, addr_offset_valid_p): New. 31992 (split_address_groups): Check offset validity with above function. 31993 (gt-tree-ssa-loop-ivopts.h): Include header file. 31994 319952017-05-05 Nathan Sidwell <nathan@acm.org> 31996 31997 * config.gcc (arm*-*-*): Add missing 'fi'. 31998 319992017-05-05 Steve Ellcey <sellcey@cavium.com> 32000 32001 * doc/invoke.texi (-fopt-info): Explicitly say order of options 32002 included in -fopt-info does not matter. 32003 * doc/optinfo.texi (-fopt-info): Fix description of default 32004 behavour. Explicitly say order of options included in -fopt-info 32005 does not matter. 32006 320072017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com> 32008 32009 * config.gcc: Allow combinations of aprofile and rmprofile values for 32010 --with-multilib-list. 32011 * config/arm/t-multilib: New file. 32012 * config/arm/t-aprofile: Remove initialization of MULTILIB_* 32013 variables. Remove setting of ISA and floating-point ABI in 32014 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in 32015 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS 32016 and MULTILIB_DIRNAMES respectively. Add comment to introduce all 32017 matches. Add architecture matches for marvel-pj4 and generic-armv7-a 32018 CPU options. 32019 * config/arm/t-rmprofile: Likewise except for the matches changes. 32020 * doc/install.texi (--with-multilib-list): Document the combination of 32021 aprofile and rmprofile values and warn about pitfalls in doing that. 32022 320232017-05-05 Wilco Dijkstra <wdijkstr@arm.com> 32024 32025 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w. 32026 (movdi_aarch64): Likewise. 32027 320282017-05-05 Jakub Jelinek <jakub@redhat.com> 32029 32030 PR tree-optimization/80632 32031 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop 32032 field. 32033 (build_arrays): Initialize it for virtual phis. 32034 (fix_phi_nodes): Use it for virtual phis. 32035 32036 PR tree-optimization/80558 32037 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize 32038 [x, y] op z into [x op, y op z] for op & or | if conditions 32039 are met. 32040 320412017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com> 32042 Prakhar Bahuguna <prakhar.bahuguna@arm.com> 32043 32044 PR target/71607 32045 * config/arm/arm.md (use_literal_pool): Remove. 32046 (64-bit immediate split): No longer takes cost into consideration 32047 if arm_disable_literal_pool is enabled. 32048 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is 32049 used when arm_disable_literal_pool is enabled. 32050 (arm_max_const_double_inline_cost): Remove use of 32051 arm_disable_literal_pool. 32052 (push_minipool_fix): Add assert. 32053 (arm_reorg): Add return if arm_disable_literal_pool is enabled. 32054 * config/arm/vfp.md (no_literal_pool_df_immediate): New. 32055 (no_literal_pool_sf_immediate): New. 32056 320572017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 32058 32059 PR tree-optimization/80613 32060 * tree-ssa-dce.c (propagate_necessity): Remove cases for 32061 BUILT_IN_STRDUP and BUILT_IN_STRNDUP. 32062 320632017-05-05 Richard Biener <rguenther@suse.de> 32064 32065 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify. 32066 320672017-05-05 Georg-Johann Lay <avr@gjlay.de> 32068 32069 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence 32070 of this flag from insn conditions due to removal from r247495. 32071 320722017-05-05 Wilco Dijkstra <wdijkstr@arm.com> 32073 32074 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr): 32075 New function. 32076 (arm_early_store_addr_dep_ptr): Likewise. 32077 * config/arm/aarch-common-protos.h 32078 (arm_early_load_addr_dep_ptr): Add prototype. 32079 (arm_early_store_addr_dep_ptr): Likewise. 32080 * config/arm/cortex-a53.md: Add new bypasses. 32081 320822017-05-05 Jakub Jelinek <jakub@redhat.com> 32083 32084 * tree.c (next_type_uid): Change type to unsigned. 32085 (type_hash_canon): Decrement back next_type_uid if 32086 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs 32087 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES 32088 if possible. 32089 320902017-05-04 Martin Sebor <msebor@redhat.com> 32091 32092 * builtins.c: Fix a trivial typo in a comment. 32093 32094 PR middle-end/79234 32095 * builtins.c (check_sizes): Adjust to handle reading past the end. 32096 Avoid printing excessive upper bound of ranges. Use %E to print 32097 tree nodes instead of converting them to %wu. 32098 (expand_builtin_memchr): New function. 32099 (compute_dest_size): Rename... 32100 (compute_objsize): ...to this. 32101 (expand_builtin_memcpy): Adjust. 32102 (expand_builtin_mempcpy): Adjust. 32103 (expand_builtin_strcat): Adjust. 32104 (expand_builtin_strcpy): Adjust. 32105 (check_strncat_sizes): Adjust. 32106 (expand_builtin_strncat): Adjust. 32107 (expand_builtin_strncpy): Adjust and simplify. 32108 (expand_builtin_memset): Adjust. 32109 (expand_builtin_bzero): Adjust. 32110 (expand_builtin_memcmp): Adjust. 32111 (expand_builtin): Handle memcmp. 32112 (maybe_emit_chk_warning): Check strncat just once. 32113 321142017-05-04 Martin Sebor <msebor@redhat.com> 32115 32116 PR preprocessor/79214 32117 PR middle-end/79222 32118 PR middle-end/79223 32119 * builtins.c (check_sizes): Add inlining context and issue 32120 warnings even when -Wno-system-headers is set. 32121 (check_strncat_sizes): Same. 32122 (expand_builtin_strncat): Same. 32123 (expand_builtin_memmove): New function. 32124 (expand_builtin_stpncpy): Same. 32125 (expand_builtin): Handle memmove and stpncpy. 32126 321272017-05-04 Bin Cheng <bin.cheng@arm.com> 32128 32129 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr 32130 which is not used any more. 32131 321322017-05-04 Wilco Dijkstra <wdijkstr@arm.com> 32133 32134 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model. 32135 321362017-05-04 Wilco Dijkstra <wdijkstr@arm.com> 32137 32138 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4. 32139 (cortexa53_tunings): Likewise. 32140 (cortexa57_tunings): Likewise. 32141 (cortexa72_tunings): Likewise. 32142 (cortexa73_tunings): Likewise. 32143 321442017-05-04 Wilco Dijkstra <wdijkstr@arm.com> 32145 32146 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. 32147 Set loop alignment to 8. 32148 321492017-05-04 Martin Sebor <msebor@redhat.com> 32150 32151 PR translation/80280 32152 * builtins.c (expand_builtin_object_size): Add missing quoting to 32153 %D and like directives. 32154 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same. 32155 (hsa_type_for_tree_type): Same. 32156 (verify_function_arguments): Same. 32157 * symtab.c (symbol_table::change_decl_assembler_name): Same. 32158 * varasm.c (get_section): Same. 32159 (mark_weak): Same. 32160 321612017-05-04 Martin Sebor <msebor@redhat.com> 32162 32163 PR translation/80280 32164 * config/i386/i386.c (ix86_function_versions): Quote a %D directive. 32165 321662017-05-04 Wilco Dijkstra <wdijkstr@arm.com> 32167 32168 * config/aarch64/aarch64.c (generic_addrcost_table): 32169 Change HI/TI mode setting. 32170 321712017-05-04 Martin Jambor <mjambor@suse.cz> 32172 32173 PR tree-optimization/80622 32174 * tree-sra.c (comes_initialized_p): New function. 32175 (build_accesses_from_assign): Only set write lazily when 32176 comes_initialized_p is false. 32177 (analyze_access_subtree): Use comes_initialized_p. 32178 (propagate_subaccesses_across_link): Assert !comes_initialized_p 32179 instead of testing for PARM_DECL. 32180 321812017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32182 32183 * config/aarch64/aarch64.md (prefetch); Adjust predicate and 32184 constraint on operand 0 to allow more general addressing modes. 32185 Adjust output template. 32186 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p): 32187 New function. 32188 * config/aarch64/aarch64-protos.h 32189 (aarch64_address_valid_for_prefetch_p): Declare prototype. 32190 * config/aarch64/constraints.md (Dp): New address constraint. 32191 * config/aarch64/predicates.md (aarch64_prefetch_operand): New 32192 predicate. 32193 321942017-05-04 Jan Hubicka <hubicka@ucw.cz> 32195 32196 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; 32197 update use of estimate_ipcp_clone_size_and_time. 32198 (estimate_local_effects): Update use of 32199 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value. 32200 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype. 32201 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): 32202 Return nonspecialized time. 32203 322042017-05-04 Richard Biener <rguenther@suse.de> 32205 32206 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking 32207 for the last VUSE which def dominates the PHI. Directly call 32208 maybe_skip_until. 32209 (get_continuation_for_phi_1): Remove. 32210 322112017-05-04 Richard Sandiford <richard.sandiford@linaro.org> 32212 32213 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary 32214 to explain the use of truncating division. Cap the number of 32215 iterations to the maximum given by nb_iterations_upper_bound, 32216 if defined. 32217 322182017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 32219 32220 * configure.ac (--enable-mingw-wildcard): Add new configurable feature. 32221 * configure: Regenerate. 32222 * config.in: Regenerate. 32223 * config/i386/driver-mingw32.c: new file. 32224 * config/i386/x-mingw32: Add rule to build driver-mingw32.o. 32225 * config.host: Link driver-mingw32.o on MinGW host. 32226 * doc/install.texi: Document new --enable-mingw-wildcard configure 32227 option. 32228 322292017-05-04 Marek Polacek <polacek@redhat.com> 32230 32231 PR tree-optimization/80612 32232 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P. 32233 322342017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> 32235 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> 32236 32237 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT. 32238 (movt splitter): Likewise. 32239 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2 32240 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check. 32241 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else 32242 block for Thumb-1 with MOVT. 32243 (thumb2_legitimate_address_p): Move code block ... 32244 (can_avoid_literal_pool_for_label_p): ... into this new function. 32245 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and 32246 literal pool. 32247 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT 32248 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for 32249 "M-profile targets with the MOVT instruction". 32250 322512017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> 32252 32253 * config/arm/arm-builtins.c (arm_init_builtins): Rename 32254 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename 32255 __builtin_arm_stfscr to __builtin_arm_set_fpscr. 32256 322572017-05-04 Martin Liska <mliska@suse.cz> 32258 32259 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused 32260 variable cond_code. 32261 322622017-05-04 Richard Biener <rguenther@suse.de> 32263 32264 * tree.c (array_at_struct_end_p): Handle arrays at struct 32265 end with flexarrays more conservatively. Refactor and treat 32266 arrays of arrays or aggregates more strict. Fix 32267 VIEW_CONVERT_EXPR handling. Remove allow_compref argument. 32268 * tree.c (array_at_struct_end_p): Adjust prototype. 32269 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust. 32270 * gimple-fold.c (get_range_strlen): Likewise. 32271 * tree-chkp.c (chkp_may_narrow_to_field): Likewise. 32272 322732017-05-04 Richard Biener <rguenther@suse.de> 32274 32275 PR tree-optimization/31130 32276 * tree-vrp.c (needs_overflow_infinity): Remove as always returning 32277 false. 32278 (supports_overflow_infinity): Likewise. 32279 (is_negative_overflow_infinity): Likewise. 32280 (is_positive_overflow_infinity): Likewise. 32281 (is_overflow_infinity): Likewise. 32282 (stmt_overflow_infinity): Likewise. 32283 (overflow_infinity_range_p): Likewise. 32284 (usable_range_p): Remove as always returning true. 32285 (make_overflow_infinity): Remove. 32286 (negative_overflow_infinity): Likewise. 32287 (positive_overflow_infinity): Likewise. 32288 (avoid_overflow_infinity): Likewise. 32289 (set_value_range): Adjust accordingly. 32290 (set_value_range_to_nonnegative): Likewise, remove now unused 32291 overflow_infinity arg. 32292 (vrp_operand_equal_p): Adjust. 32293 (update_value_range): Likewise. 32294 (range_int_cst_singleton_p): Likewise. 32295 (operand_less_p): Likewise. 32296 (compare_values_warnv): Likewise. 32297 (extract_range_for_var_from_comparison_expr): Likewise. 32298 (vrp_int_const_binop): Likewise. 32299 (zero_nonzero_bits_from_vr): Likewise. 32300 (extract_range_from_multiplicative_op_1): Likewise. 32301 (extract_range_from_binary_expr_1): Likewise. 32302 (extract_range_from_unary_expr): Likewise. 32303 (extract_range_from_comparison): Likewise. 32304 (extract_range_basic): Likewise. 32305 (adjust_range_with_scev): Likewise. 32306 (compare_ranges): Likewise. 32307 (compare_range_with_value): Likewise. 32308 (dump_value_range): Likewise. 32309 (test_for_singularity): Likewise, remove strict_overflow_p parameter 32310 never used. 32311 (simplify_cond_using_ranges): Adjust. 32312 323132017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> 32314 32315 * brig-builtins.def: Added a builtin for class_f64. 32316 * builtin-types.def: Added a builtin type needed by class_f64. 32317 323182017-05-03 Jason Merrill <jason@redhat.com> 32319 32320 * timevar.def: Add TV_CONSTEXPR. 32321 323222017-05-03 David Malcolm <dmalcolm@redhat.com> 32323 32324 * common.opt (fdiagnostics-parseable-fixits): Fix typo. 32325 323262017-05-03 Martin Jambor <mjambor@suse.cz> 32327 32328 * ipa-prop.c (ipa_update_after_lto_read): Removed. 32329 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration. 32330 * ipa-cp.c (ipcp_propagate_stage): Do not call 32331 ipa_update_after_lto_read. 32332 * ipa-inline.c (ipa_inline): Likewise. 32333 323342017-05-03 Martin Jambor <mjambor@suse.cz> 32335 32336 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY 32337 tag. Added a default constructor and a destructor. 32338 (ipa_edge_args_sum_t): New class; 32339 (ipa_edge_args_sum): Declare. 32340 (ipa_edge_args_vector): Remove declaration. 32341 (IPA_EDGE_REF): Use ipa_edge_args_sum. 32342 (ipa_free_edge_args_substructures): Remove declaration. 32343 (ipa_check_create_edge_args): Use ipa_edge_args_sum. 32344 (ipa_edge_args_info_available_for_edge_p): Likewise. 32345 * ipa-prop.c (ipa_edge_args_vector): Removed. 32346 (edge_removal_hook_holder): Likewise. 32347 (edge_duplication_hook_holder): Likewise. 32348 (ipa_edge_args_sum): New variable. 32349 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of 32350 ipa_edge_args_vector. 32351 (ipa_free_edge_args_substructures): Likewise. 32352 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of 32353 ipa_edge_args_vector. 32354 (ipa_edge_removal_hook): Turned into method 32355 ipa_edge_args_sum_t::remove. 32356 (ipa_edge_duplication_hook): Turned into method 32357 ipa_edge_args_sum_t::duplicate. 32358 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of 32359 registering edge hooks. 32360 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks. 32361 * ipa-inline-analysis.c (estimate_function_body_sizes): Test 32362 ipa_edge_args_sum instead of ipa_edge_args_vector. 32363 * ipa-profile.c (ipa_profile): Likewise. 32364 323652017-05-03 Martin Jambor <mjambor@suse.cz> 32366 32367 * symbol-summary.h (function_summary): New method exists. 32368 (function_summary::symtab_removal): Deallocate through release. 32369 (call_summary): New class. 32370 (gt_ggc_mx): New overload. 32371 (gt_pch_nx): Likewise. 32372 (gt_pch_nx): Likewise. 32373 323742017-05-03 Jeff Law <law@redhat.com> 32375 32376 PR tree-optimization/78496 32377 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed 32378 from simplify_cond_using_ranges. Split off code to walk 32379 backwards through casts into ... 32380 (simplify_cond_using_ranges_2): New function. 32381 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1. 32382 (execute_vrp): After identifying jump threads, call 32383 simplify_cond_using_ranges_2. 32384 323852017-05-03 Jan Hubicka <hubicka@ucw.cz> 32386 32387 PR bootstrap/80609 32388 * ipa-inline.h (inline_summary): Add ctor. 32389 (create_ggc): Do not use ggc_cleared_alloc. 32390 323912017-05-03 Jeff Downs <heydowns@somuchpressure.net> 32392 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 32393 32394 * gcc.c (handle_braces): Support escaping in switch matching 32395 text. 32396 * doc/invoke.texi (Spec Files): Document it. 32397 Remove superfluous @code markup in items. 32398 323992017-05-03 David Malcolm <dmalcolm@redhat.com> 32400 32401 * diagnostic-show-locus.c (struct column_range): New struct. 32402 (get_affected_columns): New function. 32403 (get_printed_columns): New function. 32404 (struct correction): New struct. 32405 (correction::ensure_capacity): New function. 32406 (correction::ensure_terminated): New function. 32407 (struct line_corrections): New struct. 32408 (line_corrections::~line_corrections): New dtor. 32409 (line_corrections::add_hint): New function. 32410 (layout::print_trailing_fixits): Reimplement in terms of the new 32411 classes. 32412 (selftest::test_overlapped_fixit_printing): New function. 32413 (selftest::diagnostic_show_locus_c_tests): Call it. 32414 324152017-05-03 Nathan Sidwell <nathan@acm.org> 32416 32417 Canonicalize canonical type hashing 32418 * tree.h (type_hash_canon_hash): Declare. 32419 * tree.c (type_hash_list, attribute_hash_list): Move into 32420 type_hash_canon_hash. 32421 (build_type_attribute_qual_variant): Break out hash code calc into 32422 type_hash_canon_hash. 32423 (type_hash_canon_hash): New. Generic type hash computation. 32424 (build_range_type_1, build_array_type_1, build_function_type, 32425 build_method_type_directly, build_offset_type, build_complex_type, 32426 make_vector_type): Call it. 32427 324282017-05-03 Richard Biener <rguenther@suse.de> 32429 32430 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 32431 When all DRs have unknown misaligned do not always peel 32432 when there is a store but apply the same costing model as if 32433 there were only loads. 32434 324352017-05-03 Richard Biener <rguenther@suse.de> 32436 32437 Revert 32438 PR tree-optimization/80492 32439 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle 32440 compare_base_decls returning dont-know properly. 32441 324422017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com> 32443 32444 * config/arm/iterators.md (CCSI): New mode iterator. 32445 (arch): New mode attribute. 32446 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ... 32447 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ... 32448 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI 32449 code iterator for success result mode. 32450 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use 32451 the corresponding new insn generators. 32452 324532017-05-03 Bin Cheng <bin.cheng@arm.com> 32454 32455 Revert r247509 32456 2017-05-02 Bin Cheng <bin.cheng@arm.com> 32457 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. 32458 324592017-05-03 Richard Sandiford <richard.sandiford@linaro.org> 32460 32461 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets. 32462 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise. 32463 (DDR_A): Wrap DDR argument in brackets. 32464 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise. 32465 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise. 32466 (DDR_REVERSED_P): Likewise. 32467 324682017-05-03 Jakub Jelinek <jakub@redhat.com> 32469 32470 PR tree-optimization/79472 32471 * tree-switch-conversion.c (struct switch_conv_info): Add 32472 contiguous_range and default_case_nonstandard fields. 32473 (collect_switch_conv_info): Compute contiguous_range and 32474 default_case_nonstandard fields, don't clear final_bb if 32475 contiguous_range and only the default case doesn't have the required 32476 structure. 32477 (check_all_empty_except_final): Set default_case_nonstandard instead 32478 of failing if contiguous_range and the default case doesn't have empty 32479 block. 32480 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range 32481 and only the default case doesn't have the required constants. Skip 32482 virtual phis. 32483 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW 32484 if default_case_nonstandard. 32485 (build_constructors): Build constant 1 just once. Assert that default 32486 values aren't inserted in between cases if contiguous_range. Skip 32487 virtual phis. 32488 (build_arrays): Skip virtual phis. 32489 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb. 32490 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard. 32491 Handle virtual phis. 32492 (gen_inbound_check): Handle default_case_nonstandard case. 32493 (process_switch): Adjust check_final_bb caller. Call 32494 gather_default_values with the first non-default case instead of 32495 default case if default_case_nonstandard. 32496 324972017-05-02 Nathan Sidwell <nathan@acm.org> 32498 32499 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- 32500 check. Fix formatting. 32501 325022017-05-02 Jan Hubicka <hubicka@ucw.cz> 32503 32504 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff 32505 errors when comparing specialized and unspecialized times. 32506 325072017-05-02 David Malcolm <dmalcolm@redhat.com> 32508 32509 * diagnostic-show-locus.c 32510 (layout::should_print_annotation_line_p): Make private. 32511 (layout::print_annotation_line): Make private. 32512 (layout::annotation_line_showed_range_p): Make private. 32513 (layout::show_ruler): Make private. 32514 (layout::print_source_line): Make private. Pass in line and 32515 line_width, rather than calling location_get_source_line. Drop 32516 returned value. 32517 (layout::print_leading_fixits): New method. 32518 (layout::print_any_fixits): Rename to... 32519 (layout::print_trailing_fixits): ...this, and make private. 32520 Don't print newline fixits. 32521 (diagnostic_show_locus): Move logic for printing one row into... 32522 (layout::print_line): ...this new function. Move the 32523 location_get_source_line call and error-handling from 32524 print_source_line to here. Call print_leading_fixits, and rename 32525 print_any_fixits to print_trailing_fixits. 32526 (selftest::test_fixit_insert_containing_newline): Update now that 32527 newlines are partially supported. 32528 (selftest::test_fixit_insert_containing_newline_2): New test. 32529 (selftest::test_fixit_replace_containing_newline): Update comments. 32530 (selftest::diagnostic_show_locus_c_tests): Call the new test. 32531 * edit-context.c (class added_line): New class. 32532 (class edited_line): Describe newline handling in comment. 32533 (edited_line::actually_edited_p): New method. 32534 (edited_line::print_content): Delete redundant decl. 32535 (edited_line::m_predecessors): New field. 32536 (edited_file::print_content): Call edited_line::print_content. 32537 (edited_file::print_diff): Update to support newlines. 32538 (edited_file::print_diff_hunk): Likewise. 32539 (edited_file::print_run_of_changed_lines): New function. 32540 (edited_file::print_diff_line): Convert to... 32541 (print_diff_line): ...this. 32542 (edited_file::get_effective_line_count): New function. 32543 (edited_line::edited_line): Initialize new field m_predecessors. 32544 (edited_line::~edited_line): Clean up m_predecessors. 32545 (edited_line::apply_fixit): Handle newlines. 32546 (edited_line::get_effective_line_count): New function. 32547 (edited_line::print_content): New function. 32548 (edited_line::print_diff_lines): New function. 32549 (selftest::test_applying_fixits_insert_containing_newline): New 32550 test. 32551 (selftest::test_applying_fixits_replace_containing_newline): New 32552 test. 32553 (selftest::insert_line): New function. 32554 (selftest::test_applying_fixits_multiple_lines): Add example of 32555 inserting a line. 32556 (selftest::edit_context_c_tests): Call the new tests. 32557 325582017-05-02 Bin Cheng <bin.cheng@arm.com> 32559 32560 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete 32561 parameter cand. Update dump information. 32562 (get_computation_cost): Update uses. 32563 325642017-05-02 Bin Cheng <bin.cheng@arm.com> 32565 32566 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New. 32567 (get_computation_aff): Reorder parameters. Use get_computation_aff_1. 32568 (get_computation_at, rewrite_use_address): Update use of 32569 get_computation_aff. 32570 325712017-05-02 Bin Cheng <bin.cheng@arm.com> 32572 32573 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters. 32574 (get_computation): Delete. 32575 (get_computation_cost): Implement like get_computation_cost_at. 32576 Use get_computation_at. 32577 (get_computation_cost_at): Delete. 32578 (rewrite_use_nonlinear_expr): Use get_computation_at. 32579 (rewrite_use_compare, remove_unused_ivs): Ditto. 32580 325812017-05-02 Bin Cheng <bin.cheng@arm.com> 32582 32583 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor. 32584 325852017-05-02 Bin Cheng <bin.cheng@arm.com> 32586 32587 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs. 32588 (ivopts_global_cost_for_size): Rename parameter and update uses. 32589 (iv_ca_recount_cost): Update uses. 32590 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and 32591 candidates seperately in n_invs and n_cands. 32592 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto. 32593 325942017-05-02 Bin Cheng <bin.cheng@arm.com> 32595 32596 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New. 32597 (find_inv_vars_cb): New. 32598 (find_depends): Renamed to ... 32599 (find_inv_vars): ... this. 32600 (add_candidate_1, force_var_cost): Call find_inv_vars. 32601 (split_address_cost, determine_group_iv_cost_cond): Ditto. 32602 326032017-05-02 Bin Cheng <bin.cheng@arm.com> 32604 32605 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to 32606 inv_vars. Add inv_exprs. 32607 (struct iv_cand): Rename depends_on to inv_vars. 32608 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to 32609 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around. 32610 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses. 32611 (dump_cand): Dump inv_vars. 32612 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs. 32613 (record_invariant, find_depends, add_candidate_1): Ditto. 32614 (set_group_iv_cost, force_var_cost): Ditto. 32615 (split_address_cost, ptr_difference_cost, difference_cost): Ditto. 32616 (get_computation_cost_at, get_computation_cost): Ditto. 32617 (determine_group_iv_cost_generic): Ditto. 32618 (determine_group_iv_cost_address): Ditto. 32619 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto. 32620 (determine_group_iv_costs): Ditto. 32621 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size. 32622 (iv_ca_set_remove_invariants): Renamed to ... 32623 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs. 32624 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs. 32625 (iv_ca_set_add_invariants): Renamed to ... 32626 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs. 32627 (iv_ca_set_cp): Use iv_ca_set_add_invs. 32628 (iv_ca_has_deps): Support inv_vars and inv_exprs. 32629 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto. 32630 (create_new_ivs): Remove useless dump. 32631 326322017-05-02 Bin Cheng <bin.cheng@arm.com> 32633 32634 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo 32635 iv_cand code. 32636 (determine_group_iv_cost_cond, determine_iv_cost): Ditto. 32637 (iv_ca_set_no_cp, create_new_iv): Ditto. 32638 326392017-05-02 Bin Cheng <bin.cheng@arm.com> 32640 32641 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. 32642 326432017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn> 32644 32645 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of 32646 function tree_check2. 32647 326482017-05-02 Martin Liska <mliska@suse.cz> 32649 32650 * doc/gcov.texi: Add missing preposition. 32651 * gcov.c (function_info::function_info): Properly fill up 32652 all member variables. 32653 326542017-05-02 Tamar Christina <tamar.christina@arm.com> 32655 32656 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same. 32657 326582017-05-02 Tamar Christina <tamar.christina@arm.com> 32659 32660 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case. 32661 326622017-05-02 Martin Liska <mliska@suse.cz> 32663 32664 PR lto/77954. 32665 * lto-streamer-in.c (lto_read_tree_1): Remove 32666 LTO_STREAMER_DEBUG. 32667 * lto-streamer.c (struct tree_hash_entry): Likewise. 32668 (struct tree_entry_hasher): Likewise. 32669 (tree_entry_hasher::hash): Likewise. 32670 (tree_entry_hasher::equal): Likewise. 32671 (lto_streamer_init): Likewise. 32672 (lto_orig_address_map): Likewise. 32673 (lto_orig_address_get): Likewise. 32674 (lto_orig_address_remove): Likewise. 32675 * lto-streamer.h: Likewise. 32676 * tree-streamer-in.c (streamer_alloc_tree): Likewise. 32677 * tree-streamer-out.c (streamer_write_tree_header): Likewise. 32678 326792017-05-02 Sebastian Peryt <sebastian.peryt@intel.com> 32680 32681 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd) 32682 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss) 32683 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd) 32684 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss) 32685 (mm_maskz_sub_round_ss, _mm_mask_add_sd) 32686 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss) 32687 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss) 32688 (mm_maskz_sub_ss): New intrinsics. 32689 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) 32690 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. 32691 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round) 32692 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round) 32693 (__builtin_ia32_subss_mask_round): New builtins. 32694 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) 32695 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. 32696 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>): 32697 Renamed to ... 32698 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this. 32699 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): 32700 Changed to ... 32701 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): 32702 ... this. 32703 327042017-05-02 Martin Jambor <mjambor@suse.cz> 32705 32706 PR tree-optimization/78687 32707 * tree-sra.c (access): New field parent. 32708 (process_subtree_disqualification): New function. 32709 (disqualify_candidate): Call it. 32710 (build_accesses_from_assign): Reset write flag if creating an 32711 assighnment link. 32712 (build_access_subtree): Fill in parent field and also prpagate 32713 down grp_write flag. 32714 (create_artificial_child_access): New parameter set_grp_write, set 32715 grp_write to its value. 32716 (propagate_subaccesses_across_link): Also propagate grp_write flag 32717 values. 32718 (propagate_all_subaccesses): Push the closest parent back to work 32719 queue if add_access_to_work_queue returned true. 32720 327212017-05-02 Richard Biener <rguenther@suse.de> 32722 32723 * common.opt (fstrict-overflow): Alias negative to fwrapv. 32724 * doc/invoke.texi (fstrict-overflow): Remove all traces of 32725 -fstrict-overflow documentation. 32726 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow. 32727 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of 32728 flag_strict_overflow. 32729 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow. 32730 * lto-opts.c (lto_write_options): Do not stream it. 32731 * lto-wrapper.c (merge_and_complain): Do not handle it. 32732 * opts.c (default_options_table): Do not set -fstrict-overflow. 32733 (finish_options): Likewise do not clear it when sanitizing. 32734 * simplify-rtx.c (simplify_const_relational_operation): Do not 32735 test flag_strict_overflow. 32736 327372017-05-02 Uros Bizjak <ubizjak@gmail.com> 32738 32739 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3 32740 using enabled attribute. 32741 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute. 32742 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute. 32743 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute. 32744 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute. 32745 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute. 32746 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute. 32747 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute. 32748 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute. 32749 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute. 32750 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute. 32751 327522017-05-02 Uros Bizjak <ubizjak@gmail.com> 32753 32754 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG. 32755 327562017-05-02 Richard Biener <rguenther@suse.de> 32757 32758 PR tree-optimization/80591 32759 Revert 32760 2017-04-10 Richard Biener <rguenther@suse.de> 32761 32762 * tree-ssa-structalias.c (find_func_aliases): Properly handle 32763 asm inputs. 32764 327652017-05-02 Richard Biener <rguenther@suse.de> 32766 32767 PR tree-optimization/80549 32768 * tree-cfgcleanup.c (mfb_keep_latches): New helper. 32769 (cleanup_tree_cfg_noloop): Create forwarders to known loop 32770 headers if they do not have a preheader. 32771 327722017-05-02 Martin Liska <mliska@suse.cz> 32773 32774 PR other/80589 32775 * common.opt: Fix typo. 32776 * doc/invoke.texi: Likewise. 32777 327782017-05-01 Jan Beulich <jbeulich@suse.com> 32779 32780 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand 32781 swapping, add (x,x,m,x,n) alternative. 32782 327832017-05-01 Nathan Sidwell <nathan@acm.org> 32784 32785 * calls.c (combine_pending_stack_adjustment_and_call): Remove 32786 unnecessary unadjusted_alignment check. 32787 327882017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn> 32789 32790 PR c++/80038 32791 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree 32792 operations here. 32793 * gimplify.c (gimplify_cilk_detach): New function. 32794 (gimplify_call_expr, gimplify_modify_expr): Call it as needed. 32795 * tree-core.h: Document EXPR_CILK_SPAWN. 32796 * tree.h (EXPR_CILK_SPAWN): Define. 32797 327982017-05-01 David Malcolm <dmalcolm@redhat.com> 32799 32800 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite 32801 to use new fixit_hint representation, using the "replace" logic. 32802 (get_line_span_for_fixit_hint): Likewise. 32803 (layout::print_any_fixits): Likewise. 32804 (selftest::test_one_liner_many_fixits): Rename to... 32805 (selftest::test_one_liner_many_fixits_1): ...this, and update 32806 comment and expected output to reflect that the multiple fix-it 32807 hints are now consolidated into one insertion. 32808 (selftest::test_one_liner_many_fixits_2): New test. 32809 (selftest::test_diagnostic_show_locus_one_liner): Update for 32810 above. 32811 (selftest::test_fixit_consolidation): Update for fix-it API 32812 change. 32813 * diagnostic.c (print_parseable_fixits): Likewise. 32814 * edit-context.c (edited_line::m_line_events): Convert from 32815 auto_vec <line_event *> to auto_vec <line_event>. 32816 (class line_event): Convert from abstract base class to a concrete 32817 class, taking over the role of replace_event. 32818 (class insert_event): Delete. 32819 (class replace_event): Rename to class line_event. Convert to 32820 half-open range. 32821 (edit_context::add_fixits): Reimplement. 32822 (edit_context::apply_insert): Delete. 32823 (edit_context::apply_replace): Rename to... 32824 (edit_context::apply_fixit): ...this. Convert to half-open range. 32825 (edited_file::apply_insert): Delete. 32826 (edited_file::apply_replace): Rename to... 32827 (edited_file::apply_fixit): ...this. 32828 (edited_line::~edited_line): Drop deletion of events. 32829 (edited_line::apply_insert): Delete. 32830 (edited_line::apply_replace): Rename to... 32831 (edited_line::apply_fixit): ...this. Convert to half-open range. 32832 Update for change to type of m_line_events. 32833 * edit-context.h (edit_context::apply_insert): Delete. 32834 (edit_context::apply_replace): Rename to... 32835 (edit_context::apply_fixit): ...this. 32836 328372017-05-01 Martin Sebor <msebor@redhat.com> 32838 32839 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's 32840 known. 32841 328422017-05-01 Uros Bizjak <ubizjak@gmail.com> 32843 32844 PR target/68491 32845 * config/i386/cpuid.h (__get_cpuid): Always return 0 when 32846 __get_cpuid_max returns 0. 32847 (__get_cpuid_count): Ditto. 32848 328492017-05-01 Eric Botcazou <ebotcazou@adacore.com> 32850 32851 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the 32852 replacement expression is another instance of one of its arguments. 32853 328542017-05-01 Jakub Jelinek <jakub@redhat.com> 32855 32856 PR target/79430 32857 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also 32858 check for stack push/pop autoinc. 32859 * config/i386/i386.c (ix86_agi_dependent): Return false 32860 if the only reason why modified_in_p returned true is that 32861 addr is SP based and set_insn is a push or pop. 32862 328632017-04-29 Jan Hubicka <hubicka@ucw.cz> 32864 32865 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary 32866 overflow check. 32867 328682017-04-29 Jan Hubicka <hubicka@ucw.cz> 32869 32870 PR ipa/79224 32871 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL. 32872 (account_size_time): Use two predicates - exec_pred and 32873 nonconst_pred_ptr. 32874 (evaluate_conditions_for_known_args): Compute both clause and 32875 nonspec_clause. 32876 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause. 32877 (inline_summary_t::duplicate): Update. 32878 (estimate_function_body_sizes): Caluculate exec and nonconst predicates 32879 separately. 32880 (compute_inline_parameters): Likewise. 32881 (estimate_edge_size_and_time): Update caluclation of time. 32882 (estimate_node_size_and_time): Compute both time and nonspecialized 32883 time. 32884 (estimate_ipcp_clone_size_and_time): Update. 32885 (inline_merge_summary): Update. 32886 (do_estimate_edge_time): Update. 32887 (do_estimate_edge_size): Update. 32888 (do_estimate_edge_hints): Update. 32889 (inline_read_section, inline_write_summary): Stream both new predicates. 32890 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time 32891 as argument. 32892 (compute_inlined_call_time): Cleanup. 32893 (big_speedup_p): Update. 32894 (edge_badness): Update. 32895 * ipa-inline.h (INLINE_TIME_SCALE): Remove. 32896 (size_time_entry): Replace predicate by exec_predicate and 32897 nonconst_predicate. 32898 (edge_growth_cache_entry): Cache both time nad nonspecialized time. 32899 (estimate_edge_time): Return also nonspec_time. 32900 (reset_edge_growth_cache): Update. 32901 329022017-04-29 Jakub Jelinek <jakub@redhat.com> 32903 32904 PR rtl-optimization/80491 32905 * ifcvt.c (noce_process_if_block): When looking for x setter 32906 with missing else_bb, don't check only the insn right before 32907 cond_earliest, but look for the last insn that x is modified in 32908 within the same bb. 32909 32910 PR rtl-optimization/80491 32911 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs. 32912 329132017-04-29 Marc Glisse <marc.glisse@inria.fr> 32914 32915 PR tree-optimization/80487 32916 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy. 32917 329182017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 32919 32920 PR tree-optimization/79697 32921 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee 32922 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC. 32923 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or 32924 BUILT_IN_STRNDUP. 32925 * gimple-fold.c (gimple_fold_builtin_realloc): New function. 32926 (gimple_fold_builtin): Call gimple_fold_builtin_realloc. 32927 329282017-04-28 Martin Sebor <msebor@redhat.com> 32929 32930 PR tree-optimization/80523 32931 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable. 32932 (init_target_to_host_charmap, target_to_host, target_strtol10): New 32933 functions. 32934 (maybe_warn, format_directive, parse_directive): Use new functions. 32935 (pass_sprintf_length::execute): Call init_target_to_host_charmap. 32936 329372017-04-28 Marc Glisse <marc.glisse@inria.fr> 32938 32939 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations. 32940 329412017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 32942 32943 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR, 32944 target_header_dir): Set correctly. 32945 * configure: Regenerated. 32946 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. 32947 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR 32948 instead of SYSTEM_HEADER_DIR. 32949 329502017-04-28 Jan Hubicka <hubicka@ucw.cz> 32951 32952 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal. 32953 (estimate_local_effects): Likewise. 32954 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p, 32955 edge_badness, inline_small_functions, dump_overall_stats): LIkewise. 32956 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining, 32957 estimate_ipcp_clone_size_and_time, do_estimate_edge_time, 32958 do_estimate_edge_time, estimate_edge_time): Likewise. 32959 * ipa-inline-analysis.c (estimate_node_size_and_time, 32960 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise. 32961 (estimate_time_after_inlining): Remove. 32962 329632017-04-28 Martin Liska <mliska@suse.cz> 32964 32965 * doc/gcov.texi: Enhance documentation of gcov. 32966 329672017-04-28 Martin Liska <mliska@suse.cz> 32968 32969 * doc/gcov.texi: Sort options in alphabetic order. 32970 * doc/gcov-dump.texi: Likewise. 32971 * doc/gcov-tool.texi: Likewise. 32972 * gcov.c (print_usage): Likewise. 32973 * gcov-dump.c (print_usage): Likewise. 32974 * gcov-tool.c (print_merge_usage_message): Likewise. 32975 (print_rewrite_usage_message): Likewise. 32976 (print_overlap_usage_message): Likewise. 32977 329782017-04-28 Martin Liska <mliska@suse.cz> 32979 32980 PR gcov-profile/53915 32981 * gcov.c (format_gcov): Print 'NAN %' when top > bottom. 32982 329832017-04-28 Martin Liska <mliska@suse.cz> 32984 32985 PR gcov-profile/79891 32986 * gcov.c (add_line_counts): Assign BBs to lines just if the BB 32987 is marked by compiler as living on a line. 32988 (get_cycles_count): Remove usage of the union. 32989 (output_intermediate_file): Likewise. 32990 (find_source): Fix GNU coding style. 32991 (accumulate_line_counts): Remove old non-all block mode. 32992 (output_lines): Remove usage of the union. 32993 * profile.c (output_location): Include all BBs, even if 32994 belonging to a same line (and file) as a previous BB. 32995 329962017-04-28 Martin Liska <mliska@suse.cz> 32997 32998 * gcov.c (process_args): Handle new argument 'w'. 32999 (read_graph_file): Assign ID to BBs. 33000 (output_branch_count): Display BB # if verbose flag is set. 33001 (output_lines): Likewise for arcs. 33002 (print_usage): Add '--verbose' option help. 33003 * doc/gcov.texi: Document --verbose (-w) option. 33004 330052017-04-28 Martin Liska <mliska@suse.cz> 33006 33007 * gcov.c (struct block_location_info): New struct. 33008 (process_file): Fill up the new structure. 33009 (read_graph_file): Replace usage of encoding by the newly added 33010 struct. 33011 (add_line_counts): Likewise. 33012 (accumulate_line_counts): Remove usage of the union. 33013 (function_info::function_info): New function. 33014 (function_info::~function_info): Likewise. 33015 (process_file): Call delete instead of release_function. 33016 (release_function): Release the function. 33017 (release_structures): Call delete instead of release_function. 33018 (solve_flow_graph): Replace usage of num_blocks. 33019 (find_exception_blocks): Likewise. 33020 (output_lines): Fix GNU coding style. 33021 330222017-04-28 Martin Liska <mliska@suse.cz> 33023 33024 PR driver/56469 33025 * coverage.c (coverage_remove_note_file): New function. 33026 * coverage.h: Declare the function. 33027 * toplev.c (finalize): Clean if an error has been seen. 33028 330292017-04-28 Martin Liska <mliska@suse.cz> 33030 33031 PR gcov-profile/80031 33032 * gcov-dump.c (tag_blocks): Just print number of basic blocks. 33033 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro. 33034 * gcov.c (read_graph_file): Read just number of blocks. 33035 * profile.c (branch_prob): Do not stream 0 flags per a basic 33036 block. 33037 330382017-04-28 Martin Liska <mliska@suse.cz> 33039 33040 * gcov-dump.c (tag_*): Add new argument to declarations. 33041 (dump_gcov_file): Likewise. 33042 (tag_blocks): Add and use new argument depth. 33043 (tag_arcs): Likewise. 33044 (tag_lines): Likewise. 33045 (tag_counters): Likewise. 33046 (tag_summary): Likewise. 33047 (dump_working_sets): Use depth to do a proper indentation. 33048 330492017-04-28 Jakub Jelinek <jakub@redhat.com> 33050 33051 PR bootstrap/80531 33052 * cgraph.h (symtab_node::debug_symtab): No longer inline. 33053 * symtab.c (symtab_node::debug_symtab): Move definition here. 33054 330552017-04-28 Richard Biener <rguenther@suse.de> 33056 33057 * lto-streamer.h (LTO_major_version): Bump to 7. 33058 330592017-04-28 Richard Biener <rguenther@suse.de> 33060 33061 * tree-vrp.c (assert_info): New struct. 33062 (add_assert_info): New helper. 33063 (register_edge_assert_for_2): Refactor to add asserts to a vector 33064 of assert_info. 33065 (register_edge_assert_for_1): Likewise. 33066 (register_edge_assert_for): Likewise. 33067 (finish_register_edge_assert_for): New helper actually registering 33068 asserts where live on edge. 33069 (find_conditional_asserts): Adjust. 33070 (find_switch_asserts): Likewise. 33071 (evrp_dom_walker::try_find_new_range): Generalize. 33072 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for. 33073 330742017-04-27 Marek Polacek <polacek@redhat.com> 33075 33076 PR sanitizer/80349 33077 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert 33078 arg10 and arg11 to itype. 33079 330802017-04-27 Jonathan Wakely <jwakely@redhat.com> 33081 33082 * doc/extend.texi (Object Size Checking): Improve grammar. 33083 330842017-04-27 Richard Earnshaw <rearnsha@arm.com> 33085 33086 PR target/80530 33087 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure 33088 that the logic for permitting reciprocal estimates matches that 33089 in use_rsqrt_p. 33090 330912017-04-27 Jakub Jelinek <jakub@redhat.com> 33092 33093 PR c++/80534 33094 * tree.c (type_cache_hasher::equal): Only compare 33095 TYPE_TYPELESS_STORAGE flag on non-aggregate element types. 33096 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on 33097 non-aggregate element types. 33098 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details 33099 about the flag on ARRAY_TYPEs in the comment, formatting fix. 33100 331012017-04-27 Richard Biener <rguenther@suse.de> 33102 33103 PR middle-end/80533 33104 * emit-rtl.c (set_mem_attributes_minus_bitpos): When 33105 stripping ARRAY_REFs from MEM_EXPR make sure we're not 33106 keeping a reference to a trailing array. 33107 331082017-04-27 Richard Biener <rguenther@suse.de> 33109 33110 PR middle-end/80539 33111 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not 33112 being in loop-closed SSA form conservatively. 33113 (chrec_fold_multiply_poly_poly): Likewise. 33114 331152017-04-27 Tamar Christina <tamar.christina@arm.com> 33116 33117 PR middle-end/79665 33118 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR, 33119 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases. 33120 331212017-04-27 Jakub Jelinek <jakub@redhat.com> 33122 33123 PR target/77728 33124 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove. 33125 (aarch64_function_arg_alignment): Return unsigned int again, but still 33126 ignore TYPE_FIELDS chain decls other than FIELD_DECLs. 33127 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. 33128 Don't emit -Wpsabi note. 33129 (aarch64_function_arg_boundary): Likewise. 33130 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment 33131 caller. 33132 331332017-04-26 Nathan Sidwell <nathan@acm.org> 33134 33135 * tree.h (crc32_unsigned_n): Declare. 33136 (crc32_unsigned, crc32_unsigned): Make inline. 33137 * tree.c (crc32_unsigned_bits): Replace with ... 33138 (crc32_unsigned_n): ... this. 33139 (crc32_unsigned, crc32_byte): Remove. 33140 (crc32_string): Remove unnecessary braces. 33141 331422017-04-25 Jan Hubicka <hubicka@ucw.cz> 33143 33144 * ipa-cp.c (estimate_local_effects): Convert sreal to int. 33145 * ipa-inline-analysis.c (MAX_TIME): Remove. 33146 (account_size_time): Use sreal for time. 33147 (dump_inline_summary): Update. 33148 (estimate_function_body_sizes): Update. 33149 (estimate_edge_size_and_time): Update. 33150 (estimate_calls_size_and_time): Update. 33151 (estimate_node_size_and_time): Update. 33152 (inline_merge_summary): Update. 33153 (inline_update_overall_summary): Update. 33154 (estimate_time_after_inlining): Update. 33155 (inline_read_section): Update. 33156 (inline_write_summary): Update. 33157 * ipa-inline.c (compute_uninlined_call_time): Update. 33158 (compute_inlined_call_time): Update. 33159 (recursive_inlining): Update. 33160 (inline_small_functions): Update. 33161 (dump_overall_stats): Update. 33162 * ipa-inline.h: Include sreal.h. 33163 (size_time_entry): Turn time to sreal. 33164 (inline_summary): Turn self_time nad time to sreal. 33165 331662017-04-25 Jan Hubicka <hubicka@ucw.cz> 33167 33168 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and 33169 data-streamer.h 33170 (sreal::stream_out, sreal::stream_in): New. 33171 * sreal.h (sreal::stream_out, sreal::stream_in): Declare. 33172 331732017-04-25 Jakub Jelinek <jakub@redhat.com> 33174 33175 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the 33176 environment. 33177 331782017-04-25 Uros Bizjak <ubizjak@gmail.com> 33179 33180 PR target/70799 33181 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): 33182 Handle ASHIFTRT. 33183 (dimode_scalar_chain::compute_convert_gain): Ditto. 33184 (dimode_scalar_chain::make_vector_copies): Ditto. 33185 (dimode_scalar_chain::convert_reg): Ditto. 33186 (dimode_scalar_chain::convert_insn): Ditto. 33187 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator. 33188 (VI248_AVX512BW_1): New mode iterator. 33189 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with 33190 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1 33191 mode iterator. 33192 331932017-04-25 Martin Sebor <msebor@redhat.com> 33194 33195 PR tree-optimization/80497 33196 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer 33197 constants are representable in HOST_WIDE_INT. 33198 (parse_directive): Ditto. 33199 332002017-04-25 Martin Sebor <msebor@redhat.com> 33201 33202 PR bootstrap/80486 33203 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned. 33204 (new_zero_array): Adjust signature. 33205 (dom_info::dom_init): Used unsigned rather that size_t. 33206 (dom_info::dom_info): Same. 33207 332082017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 33209 Jakub Jelinek <jakub@redhat.com> 33210 33211 PR target/77728 33212 * config/arm/arm.c: Include gimple.h. 33213 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align 33214 returns negative, increment ncrn only if it returned positive. 33215 (arm_needs_doubleword_align): Return int instead of bool, 33216 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain 33217 members, but if there is any such non-FIELD_DECL 33218 > PARM_BOUNDARY aligned decl, return -1 instead of false. 33219 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align 33220 returns negative, increment nregs only if it returned positive. 33221 (arm_setup_incoming_varargs): Likewise. 33222 (arm_function_arg_boundary): Emit -Wpsabi note if 33223 arm_needs_doubleword_align returns negative, return 33224 DOUBLEWORD_ALIGNMENT only if it returned positive. 33225 332262017-04-25 Marek Polacek <polacek@redhat.com> 33227 33228 PR sanitizer/80349 33229 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's 33230 first argument to type. 33231 332322017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com> 33233 33234 PR target/80482 33235 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change 33236 type checks to test for compatibility instead of equality. 33237 332382017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 33239 Jakub Jelinek <jakub@redhat.com> 33240 33241 PR target/77728 33242 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New 33243 type. 33244 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment 33245 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for 33246 the alignment computation, but return their maximum in warn_alignment. 33247 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. 33248 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment 33249 is smaller. 33250 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX. 33251 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment 33252 caller. 33253 332542017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33255 33256 * config/arc/simdext.md (dmpyh): Fix typo. 33257 332582017-04-25 Richard Biener <rguenther@suse.de> 33259 33260 PR tree-optimization/80492 33261 * alias.c (compare_base_decls): Handle registers with asm 33262 specification conservatively. 33263 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle 33264 compare_base_decls returning dont-know properly. 33265 332662017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33267 33268 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro. 33269 (legitimate_offset_address_p): New function. 33270 (arc_legitimate_address_p): Use above function. 33271 332722017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33273 33274 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls. 33275 332762017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33277 33278 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL, 33279 ACCH registers whenever they are available. 33280 332812017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33282 33283 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1 33284 double regs fix when not used. 33285 332862017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33287 33288 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension 33289 core registers. 33290 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise. 33291 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise. 33292 332932017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33294 33295 * config/arc/arc.c (arc_output_addsi): Check for h-register class 33296 when emitting short ADD instructions. 33297 332982017-04-25 Claudiu Zissulescu <claziss@synopsys.com> 33299 33300 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register 33301 constraint. 33302 (cmpsi_cc_c_insn): Likewise. 33303 (cbranchsi4_scratch): Compute proper instruction length using 33304 compact_hreg_operand. 33305 * config/arc/predicates.md (compact_hreg_operand): New predicate. 33306 333072017-04-25 Richard Biener <rguenther@suse.de> 33308 33309 PR middle-end/80509 33310 * passes.c (pass_manager::pass_manager): Initialize 33311 m_name_to_pass_map. 33312 333132017-04-25 Richard Biener <rguenther@suse.de> 33314 33315 PR tree-optimization/79201 33316 * tree-ssa-sink.c (statement_sink_location): Handle calls. 33317 333182017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 33319 33320 PR target/80464 33321 * config/s390/vector.md: Split MEM->GPR vector moves for 33322 non-s_operand addresses. 33323 333242017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 33325 33326 PR target/79895 33327 * config/s390/predicates.md (reload_const_wide_int_operand): New 33328 predicate. 33329 * config/s390/s390.md ("movti"): Remove d/P alternative. 33330 ("movti_bigconst"): New pattern definition. 33331 333322017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> 33333 33334 PR target/80080 33335 * s390-protos.h (s390_expand_cs_hqi): Removed. 33336 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. 33337 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer 33338 modes as well as CCZ1mode and CCZmode. 33339 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new 33340 signature of s390_emit_compare_and_swap. 33341 (s390_expand_cs_hqi): Likewise, make static. 33342 (s390_expand_cs_tdsi): Generate an explicit compare before trying 33343 compare-and-swap, in some cases. 33344 (s390_expand_cs): Wrapper function. 33345 (s390_expand_atomic_exchange_tdsi): New backend specific expander for 33346 atomic_exchange. 33347 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. 33348 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the 33349 patterns for small and large integers. Forbid symref memory operands. 33350 Move expander to s390.c. Require cc register. 33351 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal") 33352 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1") 33353 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2") 33354 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid 33355 symref memory operands. Remove CC mode and call s390_match_ccmode 33356 instead. 33357 ("atomic_exchange<mode>"): Allow and implement all integer modes. 33358 333592017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> 33360 33361 * config/s390/s390.md (define_peephole2): New peephole to help 33362 combining the load-and-test pattern with volatile memory. 33363 333642017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> 33365 33366 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal 33367 with CCZmode for TARGET_Z196. 33368 333692017-04-25 Jakub Jelinek <jakub@redhat.com> 33370 33371 PR rtl-optimization/80501 33372 * combine.c (make_compound_operation_int): Set subreg_code to SET 33373 even for AND with mask of the sign bit of mode. 33374 33375 PR rtl-optimization/80500 33376 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on 33377 sum's initial value. 33378 333792017-04-25 Julian Brown <julian@codesourcery.com> 33380 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 33381 33382 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation. 33383 333842017-04-25 Marc Glisse <marc.glisse@inria.fr> 33385 33386 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME. 33387 333882017-04-25 Julian Brown <julian@codesourcery.com> 33389 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 33390 33391 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation. 33392 (thunderx2t99_sha): New Reservation. 33393 333942017-04-25 Julian Brown <julian@codesourcery.com> 33395 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 33396 33397 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix 33398 type for 1-element load. 33399 334002017-04-24 Marc Glisse <marc.glisse@inria.fr> 33401 33402 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation. 33403 334042017-04-24 Martin Jambor <mjambor@suse.cz> 33405 33406 PR tree-optimization/80293 33407 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make 33408 char arrays not totally scalarizable if it is false. 33409 (analyze_all_variable_accesses): Pass correct value in the new 33410 parameter. Add a statistics counter. 33411 334122017-04-24 Jan Hubicka <hubicka@ucw.cz> 33413 33414 PR middle-end/79931 33415 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE. 33416 334172017-04-24 Richard Biener <rguenther@suse.de> 33418 33419 PR tree-optimization/80494 33420 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail 33421 out for complex types. 33422 334232017-04-24 Richard Biener <rguenther@suse.de> 33424 33425 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. 33426 * tree-ssa-sccvn.c (print_scc): Print SCC size. 33427 (extract_and_process_scc_for_name): Never fail but drop SCC to varying. 33428 (DFS): Adjust and never fail. 33429 (sccvn_dom_walker::fail): Remove. 33430 (sccvn_dom_walker::before_dom_children): Adjust. 33431 (run_scc_vn): Likewise and never fail. 33432 * tree-ssa-pre.c (pass_pre::execute): Adjust. 33433 (pass_fre::execute): Likewise. 33434 334352017-04-24 Richard Biener <rguenther@suse.de> 33436 33437 PR tree-optimization/79725 33438 * tree-ssa-sink.c (statement_sink_location): Return whether 33439 failure reason was zero uses. Move that check later. 33440 (sink_code_in_bb): Deal with zero uses by removing the stmt 33441 if possible. 33442 334432017-04-24 Richard Biener <rguenther@suse.de> 33444 33445 PR c++/2972 33446 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some 33447 pointer-based references. 33448 334492017-04-24 Richard Biener <rguenther@suse.de> 33450 33451 PR bootstrap/79814 33452 * pass_manager.h (pass_manager::operator new): Remove. 33453 (pass_manager::operator delete): Likewise. 33454 * passes.c (pass_manager::operator new): Remove. 33455 (pass_manager::operator delete): Likewise. 33456 (pass_manager::pass_manager): Zero individual pass members. 33457 334582017-04-23 Uros Bizjak <ubizjak@gmail.com> 33459 33460 PR target/70799 33461 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) 33462 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts. 33463 Check "XEXP (src, 1)" operand here. 33464 <case PLUS, case MINUS, case IOR, case XOR, case AND>: 33465 Check "XEXP (src, 1)" operand here. 33466 (dimode_scalar_chain::make_vector_copies): Detect count register 33467 of a shift instruction. Zero extend count register from QImode 33468 to DImode to satisfy vector shift pattern count operand predicate. 33469 Substitute vector shift count operand with a DImode copy. 33470 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from 33471 vector register. 33472 334732017-04-21 Uros Bizjak <ubizjak@gmail.com> 33474 33475 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. 33476 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. 33477 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove 33478 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. 33479 (UNSPEC_NOREX_MEM): Remove definition. 33480 334812017-04-21 Richard Biener <rguenther@suse.de> 33482 33483 PR tree-optimization/79547 33484 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): 33485 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp, 33486 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p 33487 without any constraints. 33488 334892017-04-21 Richard Biener <rguenther@suse.de> 33490 33491 PR tree-optimization/78847 33492 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR. 33493 334942017-04-21 Richard Biener <rguenther@suse.de> 33495 33496 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO. 33497 (build_distinct_type_copy): Likewise. 33498 (build_variant_type_copy): Likewise. 33499 * tree.c (build_qualified_type): Pass down mem-stat info. 33500 (build_distinct_type_copy): Likewise. 33501 (build_variant_type_copy): Likewise. 33502 335032017-04-21 Richard Biener <rguenther@suse.de> 33504 33505 PR tree-optimization/80237 33506 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument, 33507 defaulted to NULL. 33508 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred 33509 for a simplified result. 33510 335112016-04-21 Richard Biener <rguenther@suse.de> 33512 33513 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require 33514 sth as strict as a simple_iv but a chrec without symbols and an 33515 operand defined in the loop we are peeling (and not some subloop). 33516 (propagate_constants_for_unrolling): Propagate all constants. 33517 335182017-04-20 Uros Bizjak <ubizjak@gmail.com> 33519 33520 PR target/79804 33521 * config/i386/i386.c (print_reg): Remove assert for disalowed 33522 regno values, call output_operand_lossage instead. 33523 335242017-04-20 Uros Bizjak <ubizjak@gmail.com> 33525 33526 PR target/78090 33527 * config/i386/constraints.md (Yc): New register constraint. 33528 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): 33529 Use Yc constraint for alternative 2 of operand 0. Remove 33530 preferred_for_speed attribute. 33531 335322017-04-20 Alexander Monakov <amonakov@ispras.ru> 33533 33534 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and 33535 lastprivate clauses in SIMT case. 33536 335372017-04-20 Volker Reichelt <v.reichelt@netcologne.de> 33538 33539 * doc/invoke.texi (-Wextra-semi): Document new warning option. 33540 335412017-04-20 Richard Biener <rguenther@suse.de> 33542 33543 PR tree-optimization/57796 33544 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters 33545 as N scalar stores. 33546 (vect_model_load_cost): Cost gathers as N scalar loads. 33547 335482017-04-20 Richard Biener <rguenther@suse.de> 33549 33550 * ggc-page.c (ggc_allocated_p): Rename to ... 33551 (safe_lookup_page_table_entry): ... this and return the lookup 33552 result. 33553 (gt_ggc_m_S): Use safe_lookup_page_table_entry. 33554 335552017-04-20 Richard Biener <rguenther@suse.de> 33556 33557 PR tree-optimization/80453 33558 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members. 33559 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs 33560 from the conditions. 33561 (vn_phi_eq): Pass them down. 33562 (vn_phi_lookup): Record them. 33563 (vn_phi_insert): Likewise. 33564 335652017-04-20 Matthew Fortune <matthew.fortune@imgtec.com> 33566 33567 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix 33568 uninitialized variable warning to avoid buffer overrun. 33569 335702017-04-20 Alexander Monakov <amonakov@ispras.ru> 33571 33572 PR other/71250 33573 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning 33574 is suppressed for '{ 0 }' in C. 33575 335762017-04-20 Jakub Jelinek <jakub@redhat.com> 33577 33578 * BASE-VER: Set to 8.0.0. 33579 335802017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com> 33581 33582 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default 33583 priority .init_array and .fini_array section with SECTION_NOTYPE 33584 flag. 33585 335862017-04-20 Jakub Jelinek <jakub@redhat.com> 33587 33588 PR middle-end/80423 33589 * tree.h (build_array_type): Add typeless_storage default argument. 33590 * tree.c (type_cache_hasher::equal): Also compare 33591 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs. 33592 (build_array_type): Add typeless_storage argument, set 33593 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to 33594 recursive call. 33595 (build_nonshared_array_type): Adjust build_array_type_1 caller. 33596 (build_array_type): Likewise. Add typeless_storage argument. 33597 335982017-04-19 Eric Botcazou <ebotcazou@adacore.com> 33599 Jakub Jelinek <jakub@redhat.com> 33600 33601 PR tree-optimization/80426 33602 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive 33603 operation on symbolic operands, also compute the overflow for the 33604 invariant part when the operation degenerates into a negation. 33605 336062017-04-19 Jakub Jelinek <jakub@redhat.com> 33607 33608 PR debug/80461 33609 * dwarf2out.c (modified_type_die, gen_type_die_with_usage): 33610 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE. 33611 33612 PR debug/80436 33613 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses. 33614 336152017-04-19 Georg-Johann Lay <avr@gjlay.de> 33616 33617 PR target/80462 33618 * config/avr/avr.c (tree.h): Include it. 33619 (cgraph.h): Include it. 33620 (avr_encode_section_info): Don't warn for uninitialized progmem 33621 variable if it's just an alias. 33622 336232017-04-19 Richard Biener <rguenther@suse.de> 33624 33625 PR ipa/65972 33626 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA 33627 when needed by AutoPGO. 33628 336292017-04-19 Paulo J. Matos <paulo@matos-sorge.com> 33630 33631 PR lto/50345 33632 * doc/lto.texi: Remove an extra 'that'. 33633 336342017-04-19 Segher Boessenkool <segher@kernel.crashing.org> 33635 33636 PR rtl-optimization/80429 33637 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that 33638 are only used in debug insns. 33639 336402017-04-19 Eric Botcazou <ebotcazou@adacore.com> 33641 Vladimir Makarov <vmakarov@redhat.com> 33642 33643 * config/sparc/predicates.md (input_operand): Add comment. Return 33644 true for any memory operand when LRA is in progress. 33645 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix. 33646 336472017-04-18 Jeff Law <law@redhat.com> 33648 33649 PR target/74563 33650 * mips.md ({return,simple_return}_internal): Do not overwrite 33651 operands[0]. 33652 336532017-04-18 Jakub Jelinek <jakub@redhat.com> 33654 33655 PR tree-optimization/80443 33656 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type, 33657 instead of adding 1, subtract -1 and similarly instead of subtracting 33658 1 add -1. 33659 336602017-04-18 Richard Sandiford <richard.sandiford@arm.com> 33661 33662 PR rtl-optimization/80357 33663 * haifa-sched.c (tmp_bitmap): New variable. 33664 (model_recompute): Handle duplicate use records. 33665 (alloc_global_sched_pressure_data): Initialize tmp_bitmap. 33666 (free_global_sched_pressure_data): Free it. 33667 336682017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de> 33669 33670 Revert: 33671 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 33672 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. 33673 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR 33674 instead of SYSTEM_HEADER_DIR. 33675 336762017-04-18 Jeff Law <law@redhat.com> 33677 33678 PR middle-end/80422 33679 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have 33680 predecessors after walking up the insn chain. 33681 336822017-04-18 Jakub Jelinek <jakub@redhat.com> 33683 33684 PR debug/80263 33685 * dwarf2out.c (modified_type_die): Try harder not to emit internal 33686 sizetype type into debug info. 33687 336882017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com> 33689 33690 PR target/80099 33691 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate 33692 unneeded test for TARGET_UPPER_REGS_SF. 33693 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise. 33694 336952017-04-18 Jakub Jelinek <jakub@redhat.com> 33696 33697 PR sanitizer/80444 33698 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb 33699 instead of gsi_after_labels. 33700 337012017-04-18 Jeff Law <law@redhat.com> 33702 33703 * regcprop.c (maybe_mode_change): Avoid creating copies of the 33704 stack pointer. 33705 33706 Revert: 33707 2017-04-13 Jeff Law <law@redhat.com> 33708 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear 33709 in operands[1] if it is a MEM and TARGET_MIPS16 is active. 33710 337112017-04-18 Georg-Johann Lay <avr@gjlay.de> 33712 33713 PR target/79453 33714 * config/avr/avr.c (intl.h): Include it. 33715 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _(). 33716 337172017-04-18 Martin Liska <mliska@suse.cz> 33718 33719 PR gcov-profile/78783 33720 * gcov-tool.c (gcov_output_files): Validate that destination 33721 file is either removed by the tool or by a user. 33722 337232017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> 33724 Guy Benyei <guybe@mellanox.com> 33725 33726 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local 33727 block, and do not negate it, the stored id is already negative. 33728 337292017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> 33730 33731 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax. 33732 337332017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> 33734 33735 PR target/80098 33736 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define 33737 masks of options that should be turned off if the VSX vector 33738 options are turned off. 33739 (OTHER_P8_VECTOR_MASKS): Likewise. 33740 (OTHER_VSX_VECTOR_MASKS): Likewise. 33741 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call 33742 rs6000_disable_incompatible_switches to validate no type switches 33743 like -mvsx. 33744 (rs6000_incompatible_switch): New function to disallow turning on 33745 other vector options if -mno-vsx, -mno-power8-vector, or 33746 -mno-power9-vector are specified. 33747 337482017-04-14 Claudiu Zissulescu <claziss@synopsys.com> 33749 33750 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls. 33751 337522017-04-14 Claudiu Zissulescu <claziss@synopsys.com> 33753 33754 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove. 33755 * config/arc/arc.c (arc_decl_pretend_args): Likewise. 33756 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise. 33757 (ARG_POINTER_CFA_OFFSET): Likewise. 33758 337592017-04-14 Claudiu Zissulescu <claziss@synopsys.com> 33760 33761 * config/arc/arc.c (arc_mode_dependent_address_p): Relax 33762 conditions to take advantage of various optimizations. 33763 337642017-04-13 Jeff Law <law@redhat.com> 33765 33766 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear 33767 in operands[1] if it is a MEM and TARGET_MIPS16 is active. 33768 (zero_extendsidi2_dext): Likewise. 33769 337702017-04-13 Jakub Jelinek <jakub@redhat.com> 33771 33772 PR sanitizer/80403 33773 * fold-const.c (fold_ternary_loc): Revert 33774 use op0 instead of fold_convert_loc (loc, type, arg0) part of 33775 2017-04-12 change. 33776 337772017-04-13 Vladimir Makarov <vmakarov@redhat.com> 33778 33779 PR rtl-optimization/80343 33780 * lra-remat.c (update_scratch_ops): Assign original hard reg to 33781 new scratch pseudo. 33782 337832017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com> 33784 33785 PR sanitizer/80414 33786 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index 33787 to ubsan_encode_value. 33788 337892017-04-13 Jeff Law <law@redhat.com> 33790 33791 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs 33792 appearing in DEBUG_INSNs. 33793 337942017-04-13 Martin Liska <mliska@suse.cz> 33795 33796 PR gcov-profile/80413 33797 * gcov-io.c (gcov_write_string): Copy to buffer just when 33798 allocated size is greater than zero. 33799 338002017-04-13 Jakub Jelinek <jakub@redhat.com> 33801 33802 PR debug/80321 33803 * dwarf2out.c (decls_for_scope): Ignore declarations of 33804 current_function_decl in BLOCK_NONLOCALIZED_VARS. 33805 338062017-04-12 Jan Hubicka <hubicka@ucw.cz> 33807 33808 PR lto/69953 33809 * ipa-visibility.c (non_local_p): Fix typos. 33810 (localize_node): When localizing symbol in same comdat group, 33811 dissolve the group only when we know external symbols are going 33812 to be privatized. 33813 (function_and_variable_visibility): Do not localize DECL_EXTERNAL. 33814 338152017-04-12 Jakub Jelinek <jakub@redhat.com> 33816 33817 PR tree-optimization/79390 33818 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand 33819 order does not result in usable sequence, retry with reversed operand 33820 order. 33821 33822 PR sanitizer/80403 33823 PR sanitizer/80404 33824 PR sanitizer/80405 33825 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument 33826 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use 33827 op0 instead of fold_convert_loc (loc, type, arg0). 33828 338292017-04-12 Jeff Law <law@redhat.com> 33830 33831 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still 33832 has a delay slot in the generated code. 33833 33834 * config/cris/cris.md (cris_preferred_reload_class): Return 33835 GENNONACR_REGS rather than GENERAL_REGS. 33836 338372017-04-12 Jakub Jelinek <jakub@redhat.com> 33838 33839 PR c/80163 33840 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND 33841 vs. ZERO_EXTEND based on signedness of treeop0's type rather than 33842 signedness of the result type. 33843 338442017-04-12 Richard Biener <rguenther@suse.de> 33845 Jeff Law <law@redhat.com> 33846 33847 PR tree-optimization/80359 33848 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not 33849 trim stores to TARGET_MEM_REFs. 33850 338512017-04-12 Richard Biener <rguenther@suse.de> 33852 33853 PR tree-optimization/79390 33854 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict 33855 threading case even more. 33856 338572017-04-12 Segher Boessenkool <segher@kernel.crashing.org> 33858 33859 PR target/80382 33860 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test 33861 for quad_address_p for TImode, instead of just not indexed_address. 33862 338632017-04-12 Richard Biener <rguenther@suse.de> 33864 Bernd Edlinger <bernd.edlinger@hotmail.de> 33865 33866 PR middle-end/79671 33867 * alias.c (component_uses_parent_alias_set_from): Handle 33868 TYPE_TYPELESS_STORAGE. 33869 (get_alias_set): Likewise. 33870 * tree-core.h (tree_type_common): Add typeless_storage flag. 33871 * tree.h (TYPE_TYPELESS_STORAGE): New macro. 33872 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE 33873 for types containing members with TYPE_TYPELESS_STORAGE. 33874 (place_field): Likewise. 33875 (layout_type): Likewise for ARRAY_TYPE. 33876 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE. 33877 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream 33878 TYPE_TYPELESS_STORAGE. 33879 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. 33880 338812017-04-12 Jakub Jelinek <jakub@redhat.com> 33882 33883 PR sanitizer/80349 33884 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's 33885 first argument to type. 33886 338872017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 33888 33889 PR target/80376 33890 PR target/80315 33891 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return 33892 CONST0_RTX (mode) rather than const0_rtx where appropriate. 33893 (rs6000_expand_binop_builtin): Likewise. 33894 (rs6000_expand_ternop_builtin): Likewise; also add missing 33895 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for 33896 vshasigma built-ins. 33897 * doc/extend.texi: Document that vec_xxpermdi's third argument 33898 must be a constant. 33899 339002017-04-11 Uros Bizjak <ubizjak@gmail.com> 33901 33902 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain): 33903 Use shift_const cost parameter when calculating gain of STV shifts. 33904 339052017-04-11 Vladimir Makarov <vmakarov@redhat.com> 33906 33907 PR rtl-optimization/70478 33908 * lra-constraints.c (process_alt_operands): Check memory for 33909 disfavoring memory insn operand. 33910 339112017-04-11 Jakub Jelinek <jakub@redhat.com> 33912 33913 PR middle-end/80100 33914 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform 33915 left shift in unsigned HOST_WIDE_INT type. 33916 33917 PR rtl-optimization/80385 33918 * simplify-rtx.c (simplify_unary_operation_1): Don't transform 33919 (not (neg X)) into (plus X -1) for complex or non-integral modes. 33920 33921 PR libgomp/80394 33922 * omp-low.c (scan_omp_task): Don't optimize away empty tasks 33923 if they have any depend clauses. 33924 339252017-04-11 Martin Liska <mliska@suse.cz> 33926 33927 PR ipa/80212 33928 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local. 33929 * ipa-split.c (split_function): Create a local comdat symbol 33930 if caller is in a comdat group. 33931 339322017-04-11 Martin Liska <mliska@suse.cz> 33933 33934 PR ipa/80212 33935 * ipa-cp.c (determine_versionability): Handle calls_comdat_local 33936 flags. 33937 339382017-04-11 Martin Sebor <msebor@redhat.com> 33939 33940 PR middle-end/80364 33941 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and 33942 always use the int type. Use INTEGRAL_TYPE_P() rather than testing 33943 for INTEGER_TYPE. 33944 (directive::set_width, directive::set_precision, format_character): 33945 Adjust. 33946 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for 33947 INTEGER_TYPE. 33948 339492017-04-11 Richard Earnshaw <rearnsha@arm.com> 33950 33951 PR target/80389 33952 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch 33953 conflict, set target->arch_name instead of target->cpu_name. 33954 339552017-04-11 Richard Biener <rguenther@suse.de> 33956 33957 PR tree-optimization/80374 33958 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use 33959 build_zero_cst, remove fold_convertible_p check again. 33960 339612017-04-11 Martin Liska <mliska@suse.cz> 33962 33963 PR sanitizer/70878 33964 * ubsan.c (instrument_object_size): Do not instrument register 33965 variables. 33966 339672017-04-11 Jakub Jelinek <jakub@redhat.com> 33968 33969 PR target/80381 33970 * config/i386/i386-builtin-types.def 33971 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT, 33972 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT, 33973 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT, 33974 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT, 33975 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT, 33976 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT, 33977 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT, 33978 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT, 33979 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT, 33980 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT, 33981 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT, 33982 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT, 33983 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT, 33984 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT, 33985 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT, 33986 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT, 33987 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT, 33988 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases. 33989 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask, 33990 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask, 33991 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask, 33992 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask, 33993 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask, 33994 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask, 33995 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask, 33996 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask, 33997 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask, 33998 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask, 33999 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask, 34000 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask, 34001 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask, 34002 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask, 34003 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask, 34004 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask, 34005 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask, 34006 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask, 34007 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask, 34008 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask, 34009 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask, 34010 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask, 34011 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask, 34012 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask, 34013 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask, 34014 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask, 34015 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask, 34016 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type 34017 aliases. 34018 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count 34019 flag to second_arg_count, handle 4 argument function type _COUNT 34020 aliases, handle second_arg_count on second argument rather than last. 34021 340222017-04-10 Jeff Law <law@redhat.com> 34023 34024 PR tree-optimization/80374 34025 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to 34026 record anything if we can not convert integer_zero_node to the 34027 desired type. 34028 340292017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 34030 34031 PR target/80108 34032 * config/rs6000/rs6000.c (rs6000_option_override_internal): 34033 Enhance special handling given to the TARGET_P9_MINMAX option in 34034 relation to certain other options. 34035 340362017-04-10 Bin Cheng <bin.cheng@arm.com> 34037 34038 PR tree-optimization/80153 34039 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and 34040 remove POINTER_PLUS_EXPR's base part directly, rather than through 34041 aff_tree. 34042 340432017-04-10 Richard Biener <rguenther@suse.de> 34044 Bin Cheng <bin.cheng@arm.com> 34045 34046 PR tree-optimization/80153 34047 * tree-affine.c (aff_combination_to_tree): Get base pointer from 34048 the first element of pointer type aff_tree. Build result expr in 34049 aff_tree's type. 34050 (add_elt_to_tree): Convert to type unconditionally. Remove other 34051 fold_convert calls. 34052 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types. 34053 (rewrite_use_nonlinear_expr): Check invariant using iv information. 34054 340552017-04-10 Richard Biener <rguenther@suse.de> 34056 34057 * tree-ssa-structalias.c (find_func_aliases): Properly handle 34058 asm inputs. 34059 340602017-04-10 Vladimir Makarov <vmakarov@redhat.com> 34061 34062 PR rtl-optimization/70478 34063 * lra-constraints.c (curr_small_class_check): New. 34064 (update_and_check_small_class_inputs): New. 34065 (process_alt_operands): Update curr_small_class_check. Disfavor 34066 alternative insn memory operands. Check available regs for small 34067 class operands. 34068 340692017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> 34070 34071 PR target/80057 34072 * config/mips/mips.opt (-mvirt): Update description. 34073 * doc/invoke.texi (-mvirt): Likewise. 34074 340752017-04-10 Richard Biener <rguenther@suse.de> 34076 34077 PR middle-end/80362 34078 * fold-const.c (fold_binary_loc): Look at unstripped ops when 34079 looking for NEGATE_EXPR in -A / -B to A / B folding. 34080 340812017-04-10 Martin Liska <mliska@suse.cz> 34082 34083 PR gcov-profile/80224 34084 * gcov.c (print_usage): Fix usage string. 34085 (get_gcov_intermediate_filename): Remove. 34086 (output_gcov_file): Use both for normal and intermediate format. 34087 (generate_results): Do not initialize special file for 34088 intermediate format. 34089 340902017-04-10 Richard Biener <rguenther@suse.de> 34091 34092 PR tree-optimization/80304 34093 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse 34094 for safelen. 34095 340962017-04-10 Nathan Sidwell <nathan@acm.org> 34097 34098 PR target/79905 34099 * config/rs6000/rs6000.c (rs6000_vector_type): New. 34100 (rs6000_init_builtins): Use it. 34101 341022016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34103 34104 * config/arm/arm.md (<mrc>): Add mode to SET source. 34105 (<mrrc>): Likewise. 34106 341072017-04-10 Richard Biener <rguenther@suse.de> 34108 34109 PR middle-end/80344 34110 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs. 34111 341122017-04-10 Jakub Jelinek <jakub@redhat.com> 34113 34114 PR target/80324 34115 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32, 34116 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32, 34117 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32, 34118 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32, 34119 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32, 34120 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32, 34121 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32, 34122 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32, 34123 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps, 34124 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps, 34125 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps, 34126 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps, 34127 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64, 34128 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64, 34129 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64, 34130 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64, 34131 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64, 34132 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64, 34133 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64, 34134 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64, 34135 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd, 34136 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd, 34137 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics. 34138 341392017-04-08 Vladimir Makarov <vmakarov@redhat.com> 34140 34141 PR rtl-optimization/70478 34142 * lra-constraints.c: Reverse the last patch. 34143 341442017-04-08 Andreas Tobler <andreast@gcc.gnu.org> 34145 34146 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME. 34147 Add comment for WCHAR_T. 34148 341492017-04-08 Martin Liska <mliska@suse.cz> 34150 34151 Revert: 34152 2017-04-07 Martin Liska <mliska@suse.cz> 34153 34154 PR ipa/80212 34155 * ipa-split.c (split_function): Add function part to a same comdat 34156 group. 34157 341582017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 34159 34160 PR target/80358 34161 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check. 34162 341632017-04-07 Pat Haugen <pthaugen@us.ibm.com> 34164 34165 * rs6000/rs6000.c (vec_load_pendulum): Rename... 34166 (vec_pairing): ...to this. 34167 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns. 34168 (rs6000_sched_init): Adjust for name change. 34169 (struct rs6000_sched_context): Likewise. 34170 (rs6000_init_sched_context): Likewise. 34171 (rs6000_set_sched_context): Likewise. 34172 341732017-04-07 Jakub Jelinek <jakub@redhat.com> 34174 34175 PR target/80322 34176 PR target/80323 34177 PR target/80325 34178 PR target/80326 34179 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New 34180 intrinsics. 34181 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int, 34182 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd, 34183 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise. 34184 341852017-04-07 Andreas Tobler <andreast@gcc.gnu.org> 34186 34187 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE. 34188 341892017-04-07 Vladimir Makarov <vmakarov@redhat.com> 34190 34191 PR rtl-optimization/70703 34192 * ira-color.c (update_conflict_hard_regno_costs): Use 34193 int64_t instead of HOST_WIDE_INT. 34194 341952017-04-07 Vladimir Makarov <vmakarov@redhat.com> 34196 34197 PR rtl-optimization/70478 34198 * lra-constraints.c (process_alt_operands): Disfavor alternative 34199 insn memory operands. 34200 342012017-04-07 Jeff Law <law@redhat.com> 34202 34203 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a 34204 CALL and NOTE_INSN_CALL_ARG_LOCATION. 34205 342062017-04-07 Martin Liska <mliska@suse.cz> 34207 34208 PR target/79889 34209 * config/aarch64/aarch64.c (aarch64_process_target_attr): 34210 Show error message instead of an ICE. 34211 342122017-04-07 Martin Liska <mliska@suse.cz> 34213 34214 PR ipa/80212 34215 * ipa-split.c (split_function): Add function part to a same comdat 34216 group. 34217 342182017-04-07 Richard Biener <rguenther@suse.de> 34219 34220 PR middle-end/80341 34221 * tree.c (get_unwidened): Also handle ! for_type case for 34222 INTEGER_CSTs. 34223 * convert.c (do_narrow): Split out from ... 34224 (convert_to_integer_1): ... here. Do not pass final truncation 34225 type to get_unwidened for TRUNC_DIV_EXPR. 34226 342272017-04-07 Richard Biener <rguenther@suse.de> 34228 34229 * tree-affine.c (wide_int_ext_for_comb): Take type rather 34230 than aff_tree. 34231 (aff_combination_const): Adjust. 34232 (aff_combination_scale): Likewise. 34233 (aff_combination_add_elt): Likewise. 34234 (aff_combination_add_cst): Likewise. 34235 (aff_combination_convert): Likewise. 34236 (add_elt_to_tree): Likewise. Remove unused argument. 34237 (aff_combination_to_tree): Adjust calls to add_elt_to_tree. 34238 342392017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de> 34240 34241 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default 34242 definition. 34243 * config/arm/arm.c (arm_default_short_enums): Use 34244 ARM_DEFAULT_SHORT_ENUMS. 34245 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define. 34246 342472017-04-06 Jakub Jelinek <jakub@redhat.com> 34248 34249 PR debug/80234 34250 * dwarf2out.c (gen_member_die): Handle C++17 inline static data 34251 members with redundant out-of-class redeclaration. 34252 342532017-04-06 Uros Bizjak <ubizjak@gmail.com> 34254 34255 PR target/80286 34256 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern. 34257 * config/i386/i386.md (*zero_extendsidi2): 34258 Add (?*x,*x) and (?*v,*v) alternatives. 34259 342602017-04-06 Uros Bizjak <ubizjak@gmail.com> 34261 34262 PR target/79733 34263 * config/i386/i386.c (ix86_expand_builtin) 34264 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand 34265 mode from insn data. Convert operands to insn operand mode. 34266 Copy operands that don't satisfy insn predicate to a register. 34267 342682017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk> 34269 34270 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX. 34271 Update comments. 34272 342732017-04-06 Richard Biener <rguenther@suse.de> 34274 34275 PR tree-optimization/80334 34276 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly 34277 preserve alignment of accesses. 34278 342792017-04-06 Richard Biener <rguenther@suse.de> 34280 34281 PR tree-optimization/80262 34282 * tree-sra.c (build_ref_for_offset): Preserve address-space 34283 information. 34284 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): 34285 Drop useless address-space information on MEM_REF offsets. 34286 342872017-04-05 Andreas Schwab <schwab@linux-m68k.org> 34288 34289 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type. 34290 342912017-04-05 Vladimir Makarov <vmakarov@redhat.com> 34292 34293 PR rtl-optimization/70703 34294 * ira-color.c (update_conflict_hard_regno_costs): Use 34295 HOST_WIDE_INT instead of long. 34296 342972017-04-05 Uros Bizjak <ubizjak@gmail.com> 34298 34299 PR target/80298 34300 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is 34301 not defined for x86_64 target. Add -mmmx target option when __SSE2__ 34302 is not defined. 34303 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined 34304 for x86_64 target. Handle -m3dnowa option. 34305 343062017-04-05 Vladimir Makarov <vmakarov@redhat.com> 34307 34308 PR rtl-optimization/70703 34309 * ira-color.c (update_costs_from_allocno): Use the smallest mode. 34310 (update_conflict_hard_regno_costs): Use long instead of unsigned 34311 arithmetic for cost calculation. 34312 343132017-04-05 Jakub Jelinek <jakub@redhat.com> 34314 Bernd Edlinger <bernd.edlinger@hotmail.de> 34315 34316 PR sanitizer/80308 34317 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value 34318 for big endian. 34319 343202017-04-05 Eric Botcazou <ebotcazou@adacore.com> 34321 34322 PR target/78002 34323 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace 34324 ptr_mode with Pmode throughout. 34325 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename 34326 into probe_stack_range and use DImode. 34327 343282017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com> 34329 34330 PR target/79890 34331 * config/s390/s390.c (s390_register_info_gprtofpr): Return if 34332 call_eh_return is true. 34333 343342017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 34335 34336 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): 34337 Initialize last_match_fntype_index. 34338 343392017-04-05 Jakub Jelinek <jakub@redhat.com> 34340 34341 PR target/80310 34342 * tree-nvr.c: Include internal-fn.h. 34343 (pass_return_slot::execute): Ignore internal calls without 34344 direct optab. 34345 343462017-04-04 Jakub Jelinek <jakub@redhat.com> 34347 Richard Biener <rguenther@suse.de> 34348 34349 PR c++/80297 34350 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr 34351 captures used multiple times, except for the last use. 34352 * generic-match-head.c: Include gimplify.h. 34353 343542017-04-04 Jakub Jelinek <jakub@redhat.com> 34355 34356 PR tree-optimization/79390 34357 * target.h (struct noce_if_info): Declare. 34358 * targhooks.h (default_noce_conversion_profitable_p): Declare. 34359 * target.def (noce_conversion_profitable_p): New target hook. 34360 * ifcvt.h (struct noce_if_info): New type, moved from ... 34361 * ifcvt.c (struct noce_if_info): ... here. 34362 (noce_conversion_profitable_p): Renamed to ... 34363 (default_noce_conversion_profitable_p): ... this. No longer 34364 static nor inline. 34365 (noce_try_store_flag_constants, noce_try_addcc, 34366 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, 34367 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p 34368 instead of noce_conversion_profitable_p. 34369 * config/i386/i386.c: Include ifcvt.h. 34370 (ix86_option_override_internal): Don't override 34371 PARAM_MAX_RTL_IF_CONVERSION_INSNS default. 34372 (ix86_noce_conversion_profitable_p): New function. 34373 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine. 34374 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment. 34375 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add. 34376 * doc/tm.texi: Regenerated. 34377 343782017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34379 34380 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar 34381 correction. 34382 343832017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 34384 34385 PR target/80307 34386 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32 34387 instructions for small multiply cores. 34388 343892017-04-04 Jeff Law <law@redhat.com> 34390 34391 * config/mips/mips.c (mips_multi_add): Zero initialize the newly 34392 added member. 34393 (mips_expand_vec_perm_const): Initialize elements in orig_perm 34394 that are not set by the loop over the elements. 34395 343962017-04-04 Jakub Jelinek <jakub@redhat.com> 34397 34398 PR target/80286 34399 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar 34400 int mode, convert_modes it to mode as unsigned, otherwise use 34401 lowpart_subreg to mode rather than SImode. 34402 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>, 34403 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>): 34404 Use DImode instead of SImode for the shift count operand. 34405 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3): 34406 Likewise. 34407 344082017-04-04 Richard Biener <rguenther@suse.de> 34409 34410 PR middle-end/80281 34411 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned 34412 arithmetic done for the negate or the plus. Simplify. 34413 (A - (-B) -> A + B): Likewise. 34414 * fold-const.c (split_tree): Make sure to not negate pointers. 34415 344162017-04-04 Segher Boessenkool <segher@kernel.crashing.org> 34417 34418 PR rtl-optimization/60818 34419 * simplify-rtx.c (simplify_binary_operation_1): Do not replace 34420 a compare of comparisons with the thing compared if this results 34421 in a different machine mode. 34422 344232017-04-03 Jonathan Wakely <jwakely@redhat.com> 34424 34425 * alias.c (base_alias_check): Fix typo in comment. 34426 * cgraph.h (class ipa_polymorphic_call_context): Likewise. 34427 * cgraphunit.c (symbol_table::compile): Likewise. 34428 * collect2.c (maybe_run_lto_and_relink): Likewise. 34429 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise. 34430 * config/avr/avr-arch.h (avr_arch_info_t): Likewise. 34431 * config/avr/avr.c (avr_map_op_t): Likewise. 34432 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise. 34433 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise. 34434 * config/epiphany/epiphany.md (movcc): Likewise. 34435 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise. 34436 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue): 34437 Likewise. 34438 * config/mips/mips.c (mips_save_restore_reg): Likewise. 34439 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise. 34440 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise. 34441 * config/sh/sh.c (sh_rtx_costs): Likewise. 34442 * fold-const.c (fold_truth_andor): Likewise. 34443 * genautomata.c (collapse_flag): Likewise. 34444 * gengtype.h (struct type::u::s): Likewise. 34445 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise. 34446 * input.c (FORMAT_AMOUNT): Likewise. 34447 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector) 34448 (known_aggs_to_agg_replacement_list): Likewise. 34449 * ipa-inline-analysis.c: Likewise. 34450 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise. 34451 * ipa-polymorphic-call.c 34452 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise. 34453 * loop-unroll.c (analyze_insn_to_expand_var): Likewise. 34454 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos): 34455 Likewise. 34456 * modulo-sched.c (apply_reg_moves): Likewise. 34457 * omp-expand.c (build_omp_regions_1): Likewise. 34458 * trans-mem.c (struct tm_wrapper_hasher): Likewise. 34459 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise. 34460 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise. 34461 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 34462 * value-prof.c: Likewise. 34463 * var-tracking.c (val_reset): Likewise. 34464 344652017-04-03 Richard Biener <rguenther@suse.de> 34466 34467 PR tree-optimization/80275 34468 * fold-const.c (split_address_to_core_and_offset): Handle 34469 POINTER_PLUS_EXPR. 34470 344712017-04-03 Eric Botcazou <ebotcazou@adacore.com> 34472 34473 * tree-nested.c (get_descriptor_type): Make sure that the alignment of 34474 descriptors is at least equal to that of functions. 34475 344762017-04-02 Uros Bizjak <ubizjak@gmail.com> 34477 34478 * config/i386/sse.md (movdi_to_sse): Add missing DONE. 34479 344802017-04-02 Uros Bizjak <ubizjak@gmail.com> 34481 34482 PR target/80250 34483 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern. 34484 (mov<IMOD4:mode>): New expander. 34485 (*mov<IMOD4:mode>_internal): New insn and split pattern. 34486 344872017-03-31 Segher Boessenkool <segher@kernel.crashing.org> 34488 34489 PR rtl-optimization/79405 34490 * fwprop.c (propagations_left): New variable. 34491 (forward_propagate_into): Decrement it. 34492 (fwprop_init): Initialize it. 34493 (fw_prop): If the variable has reached zero, stop propagating. 34494 (fwprop_addr): Ditto. 34495 344962017-03-31 Jakub Jelinek <jakub@redhat.com> 34497 34498 PR debug/79255 34499 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is 34500 a FUNCTION_DECL, pass it as decl instead of origin to 34501 process_scope_var. 34502 345032017-03-31 Alexander Monakov <amonakov@ispras.ru> 34504 34505 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format 34506 string. 34507 345082017-03-31 Pat Haugen <pthaugen@us.ibm.com> 34509 34510 PR target/80107 34511 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for 34512 TARGET_VSX_SMALL_INTEGER. 34513 345142017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34515 34516 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add 34517 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification. 34518 345192017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> 34520 34521 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update 34522 extraction from odd-numbered MSA register. 34523 345242017-03-31 Jakub Jelinek <jakub@redhat.com> 34525 34526 PR middle-end/80173 34527 * expmed.c (store_bit_field_1): Don't attempt to create 34528 a word subreg out of hard registers wider than word if they 34529 have HARD_REGNO_NREGS of 1 for their mode. 34530 34531 PR middle-end/80163 34532 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending 34533 conversions to integer types wider than word and pointer. 34534 34535 PR debug/80025 34536 * cselib.h (rtx_equal_for_cselib_1): Add depth argument. 34537 (rtx_equal_for_cselib_p): Pass 0 to it. 34538 * cselib.c (cselib_hasher::equal): Likewise. 34539 (rtx_equal_for_cselib_1): Add depth argument. If depth 34540 is 128, don't look up VALUE locs and punt. Increment 34541 depth in recursive calls when walking VALUE locs. 34542 345432017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de> 34544 34545 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes. 34546 (make_gcov_file_name): Use the canonical path name for generating 34547 the MD5 value. 34548 (read_line): Fix handling of files with ascii null bytes. 34549 345502017-03-30 Matthew Fortune <matthew.fortune@imgtec.com> 34551 34552 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector 34553 to initialise a vector register instead 34554 of using a const_int. 34555 345562017-03-30 Jakub Jelinek <jakub@redhat.com> 34557 34558 PR translation/80189 34559 * gimplify.c (omp_default_clause): Use %qs instead of %s in 34560 diagnostic messages. 34561 345622017-03-30 Peter Bergner <bergner@vnet.ibm.com> 34563 34564 PR target/80246 34565 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0. 34566 (dfp_diex_<mode>): Update mode of operand 1. 34567 * doc/extend.texi (dxex, dxexq): Document change to return type. 34568 (diex, diexq): Document change to argument type. 34569 345702017-03-30 Martin Jambor <mjambor@suse.cz> 34571 34572 PR ipa/77333 34573 * cgraph.h (cgraph_build_function_type_skip_args): Declare. 34574 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that 34575 it reflects the signature changes performed at the callee side. 34576 * cgraphclones.c (build_function_type_skip_args): Make public, renamed 34577 to cgraph_build_function_type_skip_args. 34578 (build_function_decl_skip_args): Adjust call to the above function. 34579 345802017-03-30 Jakub Jelinek <jakub@redhat.com> 34581 34582 PR target/80206 34583 * config/i386/sse.md 34584 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use 34585 register as dest whenever it is a MEM not rtx_equal_p to the 34586 corresponding dup operand, and when forcing into reg move the 34587 reg into the memory afterwards. 34588 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask): 34589 Likewise. Use <ssehalfvecmode> instead of <ssequartermode> 34590 for the force_reg mode. 34591 (avx512vl_vextractf128<mode>): Use register as dest either 34592 always when a MEM, or when it is a MEM not rtx_equal_p to the 34593 corresponding dup operand, or even not when it is a CONST_VECTOR 34594 depending on the mode and lo vs. hi. 34595 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous 34596 parens. 34597 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise. 34598 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): 34599 Likewise. Require that operands[2] is even. 34600 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): 34601 Remove extraneous parens. Require that operands[2] is a multiple 34602 of 4. 34603 (vec_extract_lo_<mode><mask_name>): Don't bother testing if 34604 operands[0] is a MEM if <mask_applied>, the predicates/constraints 34605 disallow memory then. 34606 346072017-03-30 Richard Biener <rguenther@suse.de> 34608 34609 PR tree-optimization/77498 34610 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications 34611 to non-constants over backedges. 34612 346132017-03-29 Segher Boessenkool <segher@kernel.crashing.org> 34614 34615 PR rtl-optimization/80233 34616 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns 34617 as last_combined_insn. Do not test for BARRIER_P separately. 34618 346192017-03-29 Andreas Schwab <schwab@suse.de> 34620 34621 PR ada/80146 34622 * calls.c (prepare_call_address): Convert funexp to Pmode before 34623 copying to temp reg. 34624 346252017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34626 34627 PR tree-optimization/80158 34628 * gimple-ssa-strength-reduction.c (replace_mult_candidate): 34629 Handle possible future case of more than one alternate 34630 interpretation. 34631 (replace_rhs_if_not_dup): Likewise. 34632 (replace_one_candidate): Likewise. 34633 346342017-03-28 Vladimir Makarov <vmakarov@redhat.com> 34635 34636 PR rtl-optimization/80193 34637 * ira.c (ira): Do not check allocation for LRA. 34638 346392017-03-28 Alexander Monakov <amonakov@ispras.ru> 34640 34641 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare. 34642 (nvptx_output_simt_exit): Declare. 34643 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use 34644 cfun->machine->unisimt_location. Handle NULL unisimt_predicate. 34645 (init_softstack_frame): Move initialization of crtl->is_leaf to... 34646 (nvptx_declare_function_name): ...here. Emit declaration of local 34647 memory space buffer for omp_simt_enter insn. 34648 (nvptx_output_unisimt_switch): New. 34649 (nvptx_output_softstack_switch): New. 34650 (nvptx_output_simt_enter): New. 34651 (nvptx_output_simt_exit): New. 34652 * config/nvptx/nvptx.h (struct machine_function): New fields 34653 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align. 34654 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec. 34655 (UNSPECV_SIMT_EXIT): Ditto. 34656 (omp_simt_enter_insn): New insn. 34657 (omp_simt_enter): New expansion. 34658 (omp_simt_exit): New insn. 34659 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option. 34660 34661 * internal-fn.c (expand_GOMP_SIMT_ENTER): New. 34662 (expand_GOMP_SIMT_ENTER_ALLOC): New. 34663 (expand_GOMP_SIMT_EXIT): New. 34664 * internal-fn.def (GOMP_SIMT_ENTER): New internal function. 34665 (GOMP_SIMT_ENTER_ALLOC): Ditto. 34666 (GOMP_SIMT_EXIT): Ditto. 34667 * target-insns.def (omp_simt_enter): New insn. 34668 (omp_simt_exit): Ditto. 34669 * omp-low.c (struct omplow_simd_context): New fields simt_eargs, 34670 simt_dlist. 34671 (lower_rec_simd_input_clauses): Implement SIMT privatization. 34672 (lower_rec_input_clauses): Likewise. 34673 (lower_lastprivate_clauses): Handle SIMT privatization. 34674 34675 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h. 34676 (ompdevlow_adjust_simt_enter): New. 34677 (find_simtpriv_var_op): New. 34678 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER, 34679 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT. 34680 34681 * tree-inline.h (struct copy_body_data): New field dst_simt_vars. 34682 * tree-inline.c (expand_call_inline): Handle SIMT privatization. 34683 (copy_decl_for_dup_finish): Ditto. 34684 34685 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER. 34686 346872017-03-28 Uros Bizjak <ubizjak@gmail.com> 34688 34689 PR target/53383 34690 * config/i386/i386.c (ix86_option_override_internal): Always 34691 allow -mpreferred-stack-boundary=3 for 64-bit targets. 34692 346932017-03-28 Bin Cheng <bin.cheng@arm.com> 34694 34695 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop. 34696 346972017-03-28 Bin Cheng <bin.cheng@arm.com> 34698 34699 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and 34700 mark new edge's irreducible flag accordign to it. 34701 (vect_do_peeling): Check loop preheader edge's irreducible flag 34702 and pass it to function slpeel_add_loop_guard. 34703 347042017-03-28 Richard Sandiford <richard.sandiford@arm.com> 34705 34706 PR tree-optimization/80218 34707 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): 34708 Update block frequencies and counts. 34709 347102017-03-28 Richard Biener <rguenther@suse.de> 34711 34712 PR tree-optimization/78644 34713 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value 34714 of a simplification result we may not use it at all. 34715 347162017-03-28 Richard Biener <rguenther@suse.de> 34717 34718 PR ipa/80205 34719 * tree-inline.c (copy_phis_for_bb): Do not create PHI node 34720 without arguments, generate default definition of a SSA name. 34721 347222017-03-28 Richard Biener <rguenther@suse.de> 34723 34724 PR middle-end/80222 34725 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch 34726 TYPE_REF_CAN_ALIAS_ALL references. 34727 * fold-const.c (fold_indirect_ref_1): Likewise. 34728 347292017-03-28 Martin Liska <mliska@suse.cz> 34730 34731 PR ipa/80104 34732 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a 34733 thunk call as DECL_GIMPLE_REG_P when vector or complex type. 34734 347352017-03-28 Claudiu Zissulescu <claziss@synopsys.com> 34736 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 34737 34738 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec. 34739 (EXTRA_SPECS): Define. 34740 (SUBTARGET_EXTRA_SPECS): Likewise. 34741 (SUBTARGET_CPP_SPEC): Likewise. 34742 * config/arc/elf.h (EXTRA_SPECS): Renamed to 34743 SUBTARGET_EXTRA_SPECS. 34744 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define. 34745 347462017-03-28 Claudiu Zissulescu <claziss@synopsys.com> 34747 34748 * config/arc/simdext.md (vst64_insn): Update pattern. 34749 (vld32wh_insn): Likewise. 34750 (vld32wl_insn): Likewise. 34751 (vld64_insn): Likewise. 34752 (vld32_insn): Likewise. 34753 347542017-03-28 Marek Polacek <polacek@redhat.com> 34755 34756 PR sanitizer/80067 34757 * fold-const.c (fold_comparison): Use protected_set_expr_location 34758 instead of SET_EXPR_LOCATION. 34759 347602017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de> 34761 34762 * tree.c (add_expr): Avoid name lookup warning. 34763 347642017-03-27 Jeff Law <law@redhat.com> 34765 34766 PR tree-optimization/80216 34767 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in 34768 function name. Limit recursion depth. 34769 (record_temporary_equivalences): Corresponding changes. 34770 347712017-03-27 Jonathan Wakely <jwakely@redhat.com> 34772 34773 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is 34774 covered first. 34775 347762017-03-27 Jakub Jelinek <jakub@redhat.com> 34777 34778 PR target/80102 34779 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related 34780 notes. 34781 * cfgcleanup.c (reg_note_cfa_p): New array. 34782 (insns_have_identical_cfa_notes): New function. 34783 (old_insns_match_p): Don't cross-jump in between /f 34784 and non-/f instructions. If both i1 and i2 are frame related, 34785 verify all CFA notes, their order and content. 34786 347872017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> 34788 34789 PR target/78543 34790 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap 34791 HImode and SImode with zero extend to DImode to one insn. 34792 (bswap<mode>2_extenddi): Likewise. 34793 (bswapsi2_extenddi): Likewise. 34794 (bswaphi2_extendsi): Likewise. 34795 (bswaphi2): Combine bswap HImode and SImode into one insn. 34796 Separate memory insns from swapping register. 34797 (bswapsi2): Likewise. 34798 (bswap<mode>2): Likewise. 34799 (bswaphi2_internal): Delete, no longer used. 34800 (bswapsi2_internal): Likewise. 34801 (bswap<mode>2_load): Split bswap HImode/SImode into separate load, 34802 store, and gpr<-gpr swap insns. 34803 (bswap<mode>2_store): Likewise. 34804 (bswaphi2_reg): Register only splitter, combine with the splitter. 34805 (bswaphi2 splitter): Likewise. 34806 (bswapsi2_reg): Likewise. 34807 (bswapsi2 splitter): Likewise. 34808 (bswapdi2): If we have the LDBRX and STDBRX instructions, split 34809 the insns into load, store, and register/register insns. 34810 (bswapdi2_ldbrx): Likewise. 34811 (bswapdi2_load): Likewise. 34812 (bswapdi2_store): Likewise. 34813 (bswapdi2_reg): Likewise. 34814 348152017-03-27 Gunther Nikl <gnikl@users.sourceforge.net> 34816 34817 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case. 34818 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise. 34819 348202017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org> 34821 34822 PR target/80103 34823 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and 34824 add comments. 34825 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add 34826 special handling for target option conflicts between dform 34827 options (-mpower9-dform, -mpower9-dform-vector, 34828 -mpower9-dform-scalar) and -mno-direct-move. 34829 348302017-03-27 Richard Biener <rguenther@suse.de> 34831 34832 PR tree-optimization/80181 34833 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED. 34834 348352017-03-27 Claudiu Zissulescu <claziss@synopsys.com> 34836 34837 * config/arc/predicates.md (move_double_src_operand): Replace the 34838 call to move_double_src_operand with a call to address_operand. 34839 348402017-03-27 Claudiu Zissulescu <claziss@synopsys.com> 34841 34842 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define. 34843 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise. 34844 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT. 34845 348462017-03-27 Claudiu Zissulescu <claziss@synopsys.com> 34847 34848 * config/arc/predicates.md (long_immediate_loadstore_operand): 34849 Consider scaled addresses cases. 34850 348512017-03-27 Claudiu Zissulescu <claziss@synopsys.com> 34852 34853 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also 34854 restored when in interrupt. 34855 * config/arc/arc.md (simple_return): ARCv2 rtie instruction 34856 doesn't have delay slot. 34857 348582017-03-27 Richard Biener <rguenther@suse.de> 34859 34860 PR ipa/79776 34861 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip 34862 inlined thunk clones. 34863 348642017-03-27 Jakub Jelinek <jakub@redhat.com> 34865 34866 PR sanitizer/80168 34867 * asan.c (instrument_derefs): Copy over last operand from 34868 original COMPONENT_REF to the new COMPONENT_REF with 34869 DECL_BIT_FIELD_REPRESENTATIVE. 34870 * ubsan.c (instrument_object_size): Likewise. 34871 348722017-03-27 Richard Biener <rguenther@suse.de> 34873 34874 PR tree-optimization/80170 34875 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make 34876 sure DR/SCEV didnt fold in constants we do not see when looking 34877 at the reference base alignment. 34878 348792017-03-27 Richard Biener <rguenther@suse.de> 34880 34881 PR middle-end/80171 34882 * gimple-fold.c (fold_ctor_reference): Properly guard against 34883 NULL return value from canonicalize_constructor_val. 34884 348852017-03-25 Uros Bizjak <ubizjak@gmail.com> 34886 34887 PR target/80180 34888 * config/i386/i386.c (ix86_expand_builtin) 34889 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between 34890 flags reg setting and flags reg using instructions. 34891 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg 34892 clobbering instructions to zero extend op2. 34893 348942017-03-25 Gerald Pfeifer <gerald@pfeifer.com> 34895 34896 * doc/install.texi (Configuration) <--with-aix-soname>: 34897 Update link to AIX ld. 34898 348992017-03-25 Bernd Schmidt <bschmidt@redhat.com> 34900 34901 PR rtl-optimization/80160 34902 PR rtl-optimization/80159 34903 * lra-assigns.c (must_not_spill_p): Tighten new test to also take 34904 reg_alternate_class into account. 34905 349062017-03-24 Vladimir Makarov <vmakarov@redhat.com> 34907 34908 PR target/80148 34909 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos 34910 to consider in curr_insn_transform. 34911 349122017-03-24 Jakub Jelinek <jakub@redhat.com> 34913 34914 * genrecog.c (validate_pattern): Add VEC_SELECT validation. 34915 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits 34916 and emit_mode_inner. 34917 349182017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 34919 34920 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags 34921 argument to the overloaded builtin variants. Use the new flag to 34922 deprecate certain builtin variants. 34923 * config/s390/s390-builtin-types.def: Add new builtin types. 34924 * config/s390/s390-builtins.h: Support new flags field for 34925 overloaded builtins. 34926 * config/s390/s390-c.c (OB_DEF_VAR): New flags field. 34927 (s390_macro_to_expand): Enable vector float data type. 34928 (s390_cpu_cpp_builtins_internal): Indicate support of the new 34929 builtins by incrementing the __VEC__ version number. 34930 (s390_expand_overloaded_builtin): Support expansion of vec_xl and 34931 vec_xst. 34932 (s390_resolve_overloaded_builtin): Emit error messages depending 34933 on the builtin flags. 34934 * config/s390/s390.c (s390_expand_builtin): Support additional 34935 flags argument. Change error message to match the messages 34936 emitted in s390-c.c. 34937 * config/s390/s390.md: New UNSPEC_* constants. 34938 (op_type): Add new instruction types. 34939 * config/s390/vecintrin.h: Add new builtins and test data class 34940 constants. 34941 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF. 34942 (V_HW_4, VEC_HW, VECF_HW): New mode iterators. 34943 (VEC_INEXACT, VEC_NOINEXACT): New constants. 34944 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>") 34945 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>") 34946 ("vec_mergel<mode>"): V_HW -> VEC_HW. 34947 34948 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di") 34949 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly") 34950 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64") 34951 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition. 34952 34953 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3") 34954 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3") 34955 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs") 34956 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition. 34957 34958 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df") 34959 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df") 34960 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64") 34961 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly") 34962 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc") 34963 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc") 34964 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ... 34965 34966 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>") 34967 ("vec_scatter_element<V_HW_4:mode>_DI") 34968 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb") 34969 ("vec_fpint<mode>", "vflls") 34970 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc") 34971 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc") 34972 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc") 34973 ("*vec_cmphe<mode>_cc"): ... these. 34974 34975 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding 34976 mode constant instead of magic value. 34977 349782017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 34979 34980 * config/s390/s390.c (s390_expand_vec_compare): Support other 34981 vector floating point modes than just V2DF. 34982 (s390_expand_vcond): Likewise. 34983 (s390_hard_regno_mode_ok): Allow SFmode values in VRs. 34984 (s390_cannot_change_mode_class): Prevent mode changes between TF 34985 and V1TF in vector registers. 34986 * config/s390/s390.md (DF, SF): New mode attributes. 34987 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3") 34988 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add 34989 SFmode support for VRs. 34990 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new 34991 vector fp modes. 34992 (VFT, VF_HW): New mode iterators. 34993 (vw, sdx): New mode attributes. 34994 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2") 34995 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2") 34996 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc") 34997 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df") 34998 ("vec_unorderedv2df"): Adjust the v2df only patterns to support 34999 also the new vector floating point modes. Renaming to ... 35000 35001 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3") 35002 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2") 35003 ("abs<mode>2", "negabs<mode>2", "smax<mode>3") 35004 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc") 35005 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>") 35006 ("vec_unordered<mode>"): ... these. 35007 35008 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe") 35009 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf") 35010 ("*vec_extendv2df"): New insn definitions. 35011 350122017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35013 35014 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3") 35015 ("mulditi3_2", "*muldi3_sign"): New patterns. 35016 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and 35017 rename the pattern definition. 35018 350192017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35020 35021 * config/s390/s390.md ("indirect_jump"): Turn insn definition into 35022 expander. 35023 ("*indirect_jump", "*indirect2_jump"): New pattern definitions. 35024 350252017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35026 35027 * config/s390/s390.c (s390_expand_vec_init): Use vllezl 35028 instruction if possible. 35029 * config/s390/vector.md (vec_halfnumelts): New mode 35030 attribute. 35031 ("*vec_vllezlf<mode>"): New pattern. 35032 350332017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35034 35035 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2") 35036 ("popcountv4si2", "popcountv2di2"): Rename to ... 35037 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx") 35038 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the 35039 condition. 35040 ("popcount<mode>2_vxe"): New pattern. 35041 350422017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35043 35044 * common/config/s390/s390-common.c (processor_flags_table): Add 35045 arch12. 35046 * config.gcc: Add arch12. 35047 * config/s390/driver-native.c (s390_host_detect_local_cpu): 35048 Default to arch12 for unknown CPU model numbers. 35049 * config/s390/s390-builtins.def: Add B_VXE builtin flag. 35050 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust 35051 PROCESSOR_max sanity check. 35052 * config/s390/s390-opts.h (enum processor_type): Add 35053 PROCESSOR_ARCH12. 35054 * config/s390/s390.c (processor_table): Add arch12. 35055 (s390_expand_builtin): Add check for B_VXE flag. 35056 (s390_issue_rate): Add PROCESSOR_ARCH12. 35057 (s390_get_sched_attrmask): Likewise. 35058 (s390_get_unit_mask): Likewise. 35059 (s390_sched_score): Enable z13 scheduling for arch12. 35060 (s390_sched_reorder): Likewise. 35061 (s390_sched_variable_issue): Likewise. 35062 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and 35063 PF_VXE. 35064 (s390_tune_attr): Use z13 scheduling also for arch12. 35065 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE) 35066 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE) 35067 (TARGET_VXE_P): New macros. 35068 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12 35069 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute. 35070 * config/s390/s390.opt: Add arch12 as processor_type. 35071 350722017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35073 35074 * config/s390/s390.md 35075 ("fixuns_truncdddi2", "fixuns_trunctddi2") 35076 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ... 35077 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander. 35078 35079 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"): 35080 Rename expanders to ... 35081 35082 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu") 35083 ("fixuns_truncdddi2_emu"): ... these. 35084 35085 ("fixuns_trunc<mode>si2_emu"): New expander. 35086 35087 ("*fixuns_truncdfdi2_z13"): Rename to ... 35088 ("*fixuns_truncdfdi2_vx"): ... this. 35089 350902017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35091 35092 * config/s390/2964.md: Remove the single element vector compare 35093 instructions which are no longer used. 35094 * config/s390/s390.c (s390_select_ccmode): Remove handling of 35095 vector CCmodes. 35096 (s390_canonicalize_comparison): Remove handling of DFmode 35097 compares. 35098 (s390_expand_vec_compare_scalar): Remove function. 35099 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar. 35100 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove 35101 pattern. 35102 ("*cmp<mode>_ccs"): Add wfcdb instruction. 35103 351042017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35105 35106 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a 35107 FP zero. 35108 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These 35109 will anyway by matched by mov<mode>_64dfp. 35110 351112017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35112 35113 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to 35114 vlef/vstef. Add missing operand to vleif. 35115 351162017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35117 35118 * config/s390/s390.c (s390_expand_vec_init): Enable vector load 35119 pair for all vector types with 64 bit elements. 35120 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ... 35121 * config/s390/vector.md (V_HW_64): ... here. 35122 (V_128_NOSINGLE): New mode iterator. 35123 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator. 35124 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator. 35125 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions. 35126 ("*vec_load_pairv2di"): Change to ... 35127 ("*vec_load_pair<mode>"): ... this one. 35128 351292017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35130 35131 * config/s390/constraints.md: Add comments. 35132 (jKK): Reject element sizes > 8 bytes. 35133 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for 35134 s_operands. 35135 * config/s390/s390.md: Add the s_operand checks formerly in 35136 s390_split_ok_p to various splitters where they are still 35137 required. 35138 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives 35139 for 128 bit vectors. Plus two splitters. 35140 351412017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35142 35143 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout 35144 the file. 35145 351462017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35147 35148 PR target/79893 35149 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an 35150 error if the boundary argument is not constant. 35151 351522017-03-24 Jakub Jelinek <jakub@redhat.com> 35153 35154 PR rtl-optimization/80112 35155 * loop-doloop.c (doloop_condition_get): Don't check condition 35156 if cmp isn't SET with IF_THEN_ELSE src. 35157 351582017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35159 35160 PR tree-optimization/80158 35161 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When 35162 replacing a candidate statement, also replace it for the 35163 candidate's alternate interpretation. 35164 (replace_rhs_if_not_dup): Likewise. 35165 (replace_one_candidate): Likewise. 35166 351672017-03-24 Richard Biener <rguenther@suse.de> 35168 35169 PR tree-optimization/80167 35170 * graphite-isl-ast-to-gimple.c 35171 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs 35172 properly. 35173 (translate_isl_ast_to_gimple::get_rename): Likewise. 35174 351752017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org> 35176 35177 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change 35178 handling of certain combinations of target options, including the 35179 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs. 35180 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector. 35181 351822017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35183 35184 PR target/71436 35185 * config/arm/arm.md (*load_multiple): Add reload_completed to 35186 matching condition. 35187 351882017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35189 Richard Biener <rguenth@suse.de> 35190 35191 PR tree-optimization/79908 35192 PR tree-optimization/80136 35193 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has 35194 been cast away, gimplify_and_add suffices. 35195 351962017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de> 35197 35198 * tree-vrp.c (identify_jump_threads): Delete avail_exprs. 35199 352002017-03-23 Richard Biener <rguenther@suse.de> 35201 35202 PR tree-optimization/80032 35203 * gimplify.c (gimple_push_cleanup): Forced unconditional 35204 cleanups still have to go to the conditional_cleanups 35205 sequence. 35206 352072017-03-22 Jakub Jelinek <jakub@redhat.com> 35208 35209 PR tree-optimization/80072 35210 * tree-ssa-reassoc.c (struct operand_entry): Change id field type 35211 to unsigned int. 35212 (next_operand_entry_id): Change type to unsigned int. 35213 (sort_by_operand_rank): Make sure to return the right return value 35214 even if unsigned fields are bigger than INT_MAX. 35215 (struct oecount): Change cnt and id type to unsigned int. 35216 (oecount_hasher::equal): Formatting fix. 35217 (oecount_cmp): Make sure to return the right return value 35218 even if unsigned fields are bigger than INT_MAX. 35219 (undistribute_ops_list): Change next_oecount_id type to unsigned int. 35220 35221 PR c++/80129 35222 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear 35223 TREE_READONLY on result if writing it more than once. 35224 35225 PR sanitizer/80110 35226 * doc/invoke.texi (-fsanitize=thread): Document that with 35227 -fnon-call-exceptions atomics are not able to throw 35228 exceptions. 35229 35230 PR sanitizer/80110 35231 * tsan.c: Include tree-eh.h. 35232 (instrument_builtin_call): Call maybe_clean_eh_stmt or 35233 maybe_clean_or_replace_eh_stmt where needed. 35234 (instrument_memory_accesses): Add cfg_changed argument. 35235 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed 35236 if it returned true. 35237 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed. 35238 35239 PR rtl-optimization/63191 35240 * config/i386/i386.c (ix86_delegitimize_address): Turn into small 35241 wrapper function, moved the whole old content into ... 35242 (ix86_delegitimize_address_1): ... this. New inline function. 35243 (ix86_find_base_term): Use ix86_delegitimize_address_1 with 35244 true as last argument instead of ix86_delegitimize_address. 35245 352462017-03-22 Wilco Dijkstra <wdijkstr@arm.com> 35247 35248 * config/aarch64/aarch64.c (generic_branch_cost): Copy 35249 cortexa57_branch_cost. 35250 352512017-03-22 Wilco Dijkstra <wdijkstr@arm.com> 35252 35253 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion. 35254 352552017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 35256 35257 PR target/80123 35258 * doc/md.texi (Constraints): Document wA constraint. 35259 * config/rs6000/constraints.md (wA): New. 35260 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class. 35261 (rs6000_init_hard_regno_mode_ok): Init wA constraint. 35262 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New. 35263 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint. 35264 352652017-03-22 Cesar Philippidis <cesar@codesourcery.com> 35266 35267 PR c++/80029 35268 * gimplify.c (is_oacc_declared): New function. 35269 (oacc_default_clause): Use it to set default flags for acc declared 35270 variables inside parallel regions. 35271 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc 35272 declared variables. 35273 (gimplify_oacc_declare): Gimplify the declare clauses. Add the 35274 declare attribute to any decl as necessary. 35275 352762017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 35277 35278 PR target/80082 35279 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit. 35280 (ISA_ARMv7ve): Add isa_bit_lpae to the definition. 35281 * config/arm/arm-protos.h (arm_arch7ve): Rename into ... 35282 (arm_arch_lpae): This. 35283 * config/arm/arm.c (arm_arch7ve): Rename into ... 35284 (arm_arch_lpae): This. Define it in term of isa_bit_lpae. 35285 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of 35286 arm_arch_lpae. 35287 352882017-03-22 Martin Liska <mliska@suse.cz> 35289 35290 PR target/79906 35291 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show 35292 error message instead of an ICE. 35293 352942017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35295 35296 * doc/extend.texi (6.11 Additional Floating Types): Revise. 35297 352982017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org> 35299 35300 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add 35301 comments. 35302 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add 35303 comments. 35304 353052017-03-21 Martin Sebor <msebor@redhat.com> 35306 35307 * doc/extend.texi: Use "cannot" instead of "can't." 35308 * doc/hostconfig.texi: Same. 35309 * doc/install.texi: Same. 35310 * doc/invoke.texi: Same. 35311 * doc/loop.texi: Same. 35312 * doc/md.texi: Same. 35313 * doc/objc.texi: Same. 35314 * doc/rtl.texi: Same. 35315 * doc/tm.texi: Same. 35316 * doc/tm.texi.in: Same. 35317 * doc/trouble.texi: Same. 35318 353192017-03-21 Alexandre Oliva <aoliva@redhat.com> 35320 35321 PR debug/63238 35322 * dwarf2out.c (struct checksum_attributes): Add at_alignment. 35323 (collect_checksum_attributes): Set it. 35324 (die_checksum_ordered): Use it. 35325 353262017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35327 35328 PR tree-optimization/79908 35329 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following 35330 change: For a VA_ARG whose LHS has been cast away, use 35331 force_gimple_operand to construct the side effects. 35332 353332017-03-21 David Malcolm <dmalcolm@redhat.com> 35334 35335 PR translation/80001 35336 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics 35337 more amenable to translation. 35338 (oacc_loop_auto_partitions): Likewise. 35339 353402017-03-21 Marek Polacek <polacek@redhat.com> 35341 Martin Sebor <msebor@redhat.com> 35342 35343 PR tree-optimization/80109 35344 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info 35345 on INTEGRAL_TYPE_P. 35346 353472017-03-21 Jakub Jelinek <jakub@redhat.com> 35348 Segher Boessenkool <segher@kernel.crashing.org> 35349 35350 PR target/80125 35351 * combine.c (can_combine_p): Revert the 2017-03-20 change, only 35352 check reg_used_between_p between insn and one of succ or succ2 35353 depending on if succ is artificial insn not inserted into insn 35354 stream. 35355 353562017-03-21 Martin Liska <mliska@suse.cz> 35357 35358 PR gcov-profile/80081 35359 * Makefile.in: Add gcov-dump and fix installation of gcov-tool. 35360 * doc/gcc.texi: Include gcov-dump stuff. 35361 * doc/gcov-dump.texi: New file. 35362 353632017-03-21 Toma Tabacu <toma.tabacu@imgtec.com> 35364 35365 PR rtl-optimization/79150 35366 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the 35367 conditional jump, if the jump is the last insn of the loop. 35368 353692017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35370 Richard Biener <rguenth@suse.de> 35371 35372 PR tree-optimization/79908 35373 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has 35374 been cast away, use force_gimple_operand to construct the side 35375 effects. 35376 353772017-03-21 Martin Liska <mliska@suse.cz> 35378 35379 PR libfortran/79956 35380 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable 35381 to NULL. 35382 353832017-03-21 Brad Spengler <spender@grsecurity.net> 35384 35385 PR plugins/80094 35386 * plugin.c (htab_hash_plugin): New function. 35387 (add_new_plugin): Use it and adjust. 35388 (parse_plugin_arg_opt): Adjust. 35389 (init_one_plugin): Likewise. 35390 353912017-03-21 Richard Biener <rguenther@suse.de> 35392 35393 PR tree-optimization/80032 35394 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter, 35395 if set force the cleanup to happen unconditionally. 35396 (gimplify_target_expr): Push inserted clobbers with force_uncond 35397 to avoid them being removed by control-dependent DCE. 35398 353992017-03-21 Richard Biener <rguenther@suse.de> 35400 35401 PR tree-optimization/80122 35402 * tree-inline.c (copy_bb): Do not expans va-arg packs or 35403 va_arg_pack_len when the inlined call stmt requires pack 35404 expansion itself. 35405 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *. 35406 354072017-03-21 Jakub Jelinek <jakub@redhat.com> 35408 35409 PR sanitizer/78158 35410 * tsan.c (instrument_builtin_call): If the memory model argument 35411 is not a constant, assume it is valid. 35412 35413 PR c/67338 35414 * fold-const.c (round_up_loc): Negate divisor in unsigned type to 35415 avoid UB. 35416 354172017-03-20 Segher Boessenkool <segher@kernel.crashing.org> 35418 35419 PR rtl-optimization/79910 35420 * combine.c (can_combine_p): Do not allow combining an I0 or I1 35421 if its dest is used by an insn before I2 (other than the combined 35422 insns themselves, which are properly handled already). 35423 354242017-03-20 Segher Boessenkool <segher@kernel.crashing.org> 35425 35426 Revert: 35427 2017-03-17 Bernd Schmidt <bschmidt@redhat.com> 35428 35429 * combine.c (record_used_regs): New static function. 35430 (try_combine): Handle situations where there is an additional 35431 instruction between I2 and I3 which needs to have a LOG_LINK 35432 updated. 35433 35434 Revert: 35435 2017-03-17 Jim Wilson <jim.wilson@linaro.org> 35436 35437 * combine.c (try_combine): Delete redundant i1 test. Call 35438 prev_nonnote_nondebug_insn instead of prev_nonnote_insn. 35439 354402017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 35441 35442 PR target/80083 35443 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for 35444 alternatives 13/14. 35445 354462017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35447 35448 PR tree-optimization/80054 35449 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail 35450 the optimization if a PHI or any of its arguments is not dominated 35451 by the candidate's basis. Use gphi* rather than gimple* as 35452 appropriate. 35453 (replace_profitable_candidates): Clean up a gimple* variable that 35454 should be a gphi* variable. 35455 354562017-03-20 Martin Sebor <msebor@redhat.com> 35457 35458 PR c++/52477 35459 * doc/extend.texi (attribute constructor): Document present limitation. 35460 354612017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org> 35462 35463 PR target/79963 35464 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and 35465 __POWER9_VECTOR__ #ifdef control, change template definition to 35466 use Power9-specific built-in function. 35467 (vec_any_eq): Likewise. 35468 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used 35469 to control outcomes from this test. 35470 (vector_ae_<mode>p): For VEC_F modes, likewise. 35471 354722017-03-20 Ian Lance Taylor <iant@google.com> 35473 35474 * config/i386/i386.c (ix86_function_regparm): Save an extra 35475 register for -fsplit-stack with DECL_STATIC_CHAIN. 35476 354772017-03-17 Palmer Dabbelt <palmer@dabbelt.com> 35478 35479 PR target/79912 35480 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove. 35481 (TARGET_PREFERRED_RELOAD_CLASS): Likewise. 35482 354832017-03-17 Palmer Dabbelt <palmer@dabbelt.com> 35484 35485 * config/riscv/riscv.c (riscv_print_operand): Use "fence 35486 iorw,ow". 35487 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence 35488 iorw,iorw". 35489 354902017-03-20 Marek Polacek <polacek@redhat.com> 35491 35492 PR sanitizer/80063 35493 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0). 35494 354952017-03-20 Richard Biener <rguenther@suse.de> 35496 35497 PR tree-optimization/80113 35498 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not 35499 allocate extra SSA name for PHI def. 35500 (add_close_phis_to_outer_loops): Likewise. 35501 (add_close_phis_to_merge_points): Likewise. 35502 (copy_loop_close_phi_args): Likewise. 35503 (copy_cond_phi_nodes): Likewise. 35504 355052017-03-20 Martin Liska <mliska@suse.cz> 35506 35507 PR middle-end/79753 35508 * tree-chkp.c (chkp_build_returned_bound): Do not build 35509 returned bounds for a LHS that's not a BOUNDED_P type. 35510 355112017-03-20 Martin Liska <mliska@suse.cz> 35512 35513 PR target/79769 35514 PR target/79770 35515 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST, 35516 COMPLEX_CST and VECTOR_CST. 35517 355182017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 35519 35520 PR target/78857 35521 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the 35522 target operand. A new splitter adds the clobber statement in case 35523 the target operand is dead anyway. 35524 355252017-03-19 Gerald Pfeifer <gerald@pfeifer.com> 35526 35527 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer 35528 to age-old versions of binutils and glibc. 35529 355302017-03-18 Segher Boessenkool <segher@kernel.crashing.org> 35531 35532 * doc/contrib.texi (Contributors): Remove duplicate entry for myself. 35533 355342017-03-18 Gerald Pfeifer <gerald@pfeifer.com> 35535 35536 * doc/contrib.texi (Contributors): Add Segher Boessenkool. 35537 355382017-03-18 Gerald Pfeifer <gerald@pfeifer.com> 35539 35540 * doc/install.texi (Specific) <arm-*-eabi>: Remove old 35541 requirement for binutils 2.13. 35542 355432017-03-17 Jim Wilson <jim.wilson@linaro.org> 35544 35545 * combine.c (try_combine): Delete redundant i1 test. Call 35546 prev_nonnote_nondebug_insn instead of prev_nonnote_insn. 35547 355482017-03-17 Palmer Dabbelt <palmer@dabbelt.com 35549 35550 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf, 35551 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of 35552 contents. 35553 <riscv64-*-elf>: Re-arrange section 35554 <riscv32-*-elf>: Add a note about requiring binutils 2.28. 35555 <riscv32-*-linux>: Likewise. 35556 <riscv64-*-elf>: Likewise 35557 <riscv64-*-linux>: Likewise. 35558 355592017-03-17 Richard Earnshaw <rearnsha@arm.com> 35560 35561 PR target/80052 35562 * aarch64.opt(verbose-cost-dump): Fix typo. 35563 355642017-03-17 Pat Haugen <pthaugen@us.ibm.com> 35565 35566 PR target/79951 35567 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test 35568 for VECTOR_UNIT_VSX_P (<MODE>mode) too. 35569 355702017-03-17 Bernd Schmidt <bschmidt@redhat.com> 35571 35572 * reload.c (find_reloads): When reloading a nonoffsettable address, 35573 use RELOAD_OTHER for it and its address reloads. 35574 35575 PR rtl-optimization/79910 35576 * combine.c (record_used_regs): New static function. 35577 (try_combine): Handle situations where there is an additional 35578 instruction between I2 and I3 which needs to have a LOG_LINK 35579 updated. 35580 355812017-03-17 Jeff Law <law@redhat.com> 35582 35583 PR tree-optimization/71437 35584 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the 35585 conditional in the hash table first. 35586 (vrp_dom_walker::before_dom_children): Extract condition from 35587 ASSERT_EXPR. Record condition, its inverion and any implied 35588 conditions as well. 35589 355902017-03-17 Marek Polacek <polacek@redhat.com> 35591 Markus Trippelsdorf <markus@trippelsdorf.de> 35592 35593 PR tree-optimization/80079 35594 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize 35595 m_stores_head. 35596 355972017-03-17 Richard Biener <rguenther@suse.de> 35598 35599 PR middle-end/80075 35600 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns. 35601 Properly verify the LHS before the RHS possibly claims to be 35602 handled. 35603 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers 35604 do not throw. 35605 356062017-03-17 Martin Jambor <mjambor@suse.cz> 35607 35608 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list. 35609 (List of -O2 options): Likewise. 35610 (-fipa-bit-cp): Replace "ipa" with "interprocedural." 35611 (-fipa-vrp) New. 35612 356132017-03-17 Tom de Vries <tom@codesourcery.com> 35614 35615 * gcov-dump.c (print_usage): Print bug_report_url. 35616 356172017-03-17 Richard Biener <rguenther@suse.de> 35618 35619 PR middle-end/80050 35620 * genmatch.c (parser::next): Remove pointless check for CPP_EOF. 35621 (parser::peek): Likewise. 35622 356232017-03-17 Richard Biener <rguenther@suse.de> 35624 35625 PR tree-optimization/80048 35626 * sese.c (free_sese_info): Properly release rename_map and 35627 copied_bb_map elements. 35628 356292017-03-16 Alexandre Oliva <aoliva@redhat.com> 35630 35631 * gimple-ssa-store-merging.c (struct imm_store_chain_info): 35632 Add linked-list forward and backlinks. Insert on 35633 construction, remove on destruction. 35634 (class pass_store_merging): Add m_stores_head field. 35635 (pass_store_merging::terminate_and_process_all_chains): 35636 Iterate over m_stores_head list. 35637 (pass_store_merging::terminate_all_aliasing_chains): 35638 Likewise. 35639 (pass_store_merging::execute): Check for debug stmts first. 35640 Push new chains onto the m_stores_head stack. 35641 356422017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com> 35643 35644 PR target/71294 35645 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a 35646 SPLAT operation on ISA 2.07 64-bit systems that have direct move, 35647 but no MTVSRDD support, by doing MTVSRD and XXPERMDI. 35648 356492017-03-16 Jeff Law <law@redhat.com> 35650 35651 PR tree-optimization/71437 35652 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge 35653 member function. Implementation moved into after_dom_children 35654 member function and into the threader's thread_outgoing_edges 35655 function. 35656 (dom_opt_dom_walker::after_dom_children): Simplify by moving 35657 some code into new thread_outgoing_edges. 35658 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify 35659 definition. Simplify marker handling (do it here). Assume we always 35660 have the available expression and the const/copies tables. 35661 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c 35662 and tree-vrp.c 35663 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare. 35664 * tree-vrp.c (equiv_stack): No longer file scoped. 35665 (vrp_dom_walker): New class. 35666 (vrp_dom_walker::before_dom_children): New member function. 35667 (vrp_dom_walker::after_dom_children): Likewise. 35668 (identify_jump_threads): Setup domwalker. Use it rather than 35669 walking edges in a random order by hand. Simplify setup/finalization. 35670 (finalize_jump_threads): Remove. 35671 (vrp_finalize): Do not call identify_jump_threads here. 35672 (execute_vrp): Do it here instead and call thread_through_all_blocks 35673 here too. 35674 35675 PR tree-optimization/71437 35676 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All 35677 callers changed. 35678 (simplify_stmt_for_jump_threading): Add basic_block argument. All 35679 callers changed. 35680 (lhs_of_dominating_assert): Moved from here into tree-vrp.c. 35681 (dom_opt_dom_walker::thread_across_edge): Remove 35682 handle_dominating_asserts argument. All callers changed. 35683 (record_temporary_equivalences_from_stmts_at_dest): Corresponding 35684 changes. Remove calls to lhs_of_dominating_assert. Other 35685 uses of handle_dominating_asserts turn into unconditional code 35686 (simplify_control_stmt_condition_1): Likewise. 35687 (simplify_control_stmt_condition): Likewise. 35688 (thread_through_normal_block, thread_across_edge): Likewise. 35689 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes. 35690 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original 35691 object if it is not an SSA_NAME. 35692 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert 35693 before calling into the VRP specific simplifiers. 35694 (identify_jump_threads): Remove handle_dominating_asserts 35695 argument. 35696 356972017-03-16 Jakub Jelinek <jakub@redhat.com> 35698 35699 PR fortran/79886 35700 * tree-diagnostic.c (default_tree_printer): No longer static. 35701 * tree-diagnostic.h (default_tree_printer): New prototype. 35702 357032017-03-16 Tamar Christina <tamar.christina@arm.com> 35704 35705 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>) 35706 Change ins into fmov. 35707 357082017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35709 35710 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF. 35711 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>): 35712 Use h_con constraint for operand 1. 35713 (*aarch64_fnma4_elt_from_dup<mode>): Likewise. 35714 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2. 35715 357162017-03-15 Jeff Law <law@redhat.com> 35717 35718 PR tree-optimization/71437 35719 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function. 35720 (record_temporary_equivalences): Use it. 35721 35722 PR tree-optimization/71437 35723 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into 35724 tree-ssa-scopedtables. 35725 (lookup_avail_expr, build_and_record_new_cond): Likewise. 35726 (record_conditions, record_cond, vuse_eq): Likewise. 35727 (record_edge_info): Adjust to API tweak of record_conditions. 35728 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr. 35729 (record_temporary_equivalences, optimize_stmt): Likewise. 35730 (eliminate_redundant_computations): Likewise. 35731 (record_equivalences_from_stmt): Likewise. 35732 * tree-ssa-scopedtables.c: Include options.h and params.h. 35733 (vuse_eq): New function, moved from tree-ssa-dom.c 35734 (build_and_record_new_cond): Likewise. 35735 (record_conditions): Likewise. Accept vector of conditions rather 35736 than edge_equivalence structure for first argument. 35737 for the first argument. 35738 (avail_exprs_stack::lookup_avail_expr): New member function, moved 35739 from tree-ssa-dom.c. 35740 (avail_exprs_stack::record_cond): Likewise. 35741 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here 35742 from tree-ssa-dom.c. 35743 (avail_exprs_stack): Add new member functions lookup_avail_expr 35744 and record_cond. 35745 (record_conditions): Declare. 35746 357472017-03-15 Vladimir Makarov <vmakarov@redhat.com> 35748 35749 PR target/80017 35750 * lra-constraints.c (process_alt_operands): Increase reject for 35751 reloading an input/output operand. 35752 357532017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com> 35754 35755 PR target/79038 35756 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define 35757 insns to convert from signed/unsigned char/short to IEEE 128-bit 35758 floating point. 35759 (floatuns<QHI:mode><IEEE128:mode>2): Likewise. 35760 357612017-03-15 Uros Bizjak <ubizjak@gmail.com> 35762 35763 PR target/80019 35764 * config/i386/i386.c (ix86_vector_duplicate_value): Create 35765 subreg of inner mode for values already in registers. 35766 357672017-03-15 Bernd Schmidt <bschmidt@redhat.com> 35768 35769 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old 35770 iteration reg is used after the loop. 35771 357722017-03-14 Martin Sebor <msebor@redhat.com> 35773 35774 PR tree-optimization/79800 35775 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle 35776 precision in negative-positive range. 35777 (format_floating): Call non-const overload with adjusted precision. 35778 357792017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com> 35780 35781 PR target/79947 35782 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for 35783 -mpowerpc-gfxopt. 35784 357852017-03-14 Martin Sebor <msebor@redhat.com> 35786 35787 PR middle-end/80020 35788 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro. 35789 * builtins.def (aligned_alloc): Use it. 35790 35791 PR c/79936 35792 * Makefile.in (GTFILES): Add calls.c. 35793 * calls.c: Include "gt-calls.h". 35794 357952017-03-14 Bernd Schmidt <bschmidt@redhat.com> 35796 35797 PR rtl-optimization/79728 35798 * regs.h (struct target_regs): New field 35799 x_contains_allocatable_regs_of_mode. 35800 (contains_allocatable_regs_of_mode): New macro. 35801 * reginfo.c (init_reg_sets_1): Initialize it, and change 35802 contains_reg_of_mode so it includes global regs as well. 35803 * reload.c (push_reload): Use contains_allocatable_regs_of_mode 35804 rather than contains_regs_of_mode. 35805 358062017-03-14 Martin Liska <mliska@suse.cz> 35807 35808 * doc/invoke.texi: Document options that can't be combined with 35809 -fcheck-pointer-bounds. 35810 358112017-03-14 Martin Liska <mliska@suse.cz> 35812 35813 PR middle-end/79831 35814 * doc/invoke.texi (-Wchkp): Document the option. 35815 358162017-03-14 Martin Liska <mliska@suse.cz> 35817 35818 * Makefile.in: Install gcov-dump. 35819 358202017-03-14 Martin Liska <mliska@suse.cz> 35821 35822 * multiple_target.c (expand_target_clones): Bail out for 35823 an invalid attribute. 35824 358252017-03-14 Richard Biener <rguenther@suse.de> 35826 35827 * alias.c (struct alias_set_entry): Pack properly. 35828 * cfgloop.h (struct loop): Likewise. 35829 * cse.c (struct set): Likewise. 35830 * ipa-utils.c (struct searchc_env): Likewise. 35831 * loop-invariant.c (struct invariant): Likewise. 35832 * lra-remat.c (struct cand): Likewise. 35833 * recog.c (struct change_t): Likewise. 35834 * rtl.h (struct address_info): Likewise. 35835 * symbol-summary.h (function_summary): Likewise. 35836 * tree-loop-distribution.c (struct partition): Likewise. 35837 * tree-object-size.c (struct object_size_info): Likewise. 35838 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise. 35839 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise. 35840 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise. 35841 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise. 35842 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise. 35843 * tree-vectorizer.h (struct _loop_vec_info): Likewise. 35844 (struct _stmt_vec_info): Likewise. 35845 358462017-03-14 Martin Liska <mliska@suse.cz> 35847 35848 PR target/79892 35849 * multiple_target.c (create_dispatcher_calls): Check that 35850 a target can create a function dispatcher. 35851 358522017-03-14 Martin Liska <mliska@suse.cz> 35853 35854 PR lto/66295 35855 * multiple_target.c (expand_target_clones): Drop local.local 35856 flag for default implementation. 35857 358582017-03-14 Richard Biener <rguenther@suse.de> 35859 35860 PR tree-optimization/80030 35861 * tree-vect-stmts.c (vectorizable_store): Plug memleak. 35862 358632017-03-13 Kito Cheng <kito.cheng@gmail.com> 35864 35865 * config/riscv/riscv.c (riscv_emit_float_compare>: Use 35866 gcc_fallthrough() instead of __attribute__((fallthrough)); 35867 358682017-03-13 Gerald Pfeifer <gerald@pfeifer.com> 35869 35870 * doc/gcc.texi: Remove "up" link to (DIR). 35871 * doc/gccint.texi: Ditto. 35872 358732017-03-13 Gerald Pfeifer <gerald@pfeifer.com> 35874 35875 * doc/install.texi (Specific) <avr>: Remove reference to 35876 binutils 2.13. 35877 358782017-03-13 Jeff Law <law@redhat.com> 35879 35880 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru 35881 attribute rather than comments. 35882 35883 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to 35884 match_scratch operand is highest. 35885 358862017-03-13 Martin Liska <mliska@suse.cz> 35887 35888 PR middle-end/78339 35889 * ipa-pure-const.c (warn_function_noreturn): If the declarations 35890 is a CHKP clone, use original declaration. 35891 358922017-03-13 Claudiu Zissulescu <claziss@synopsys.com> 35893 35894 * config/arc/arc.c (arc_init): Use multiplier whenever we have it. 35895 (arc_conditional_register_usage): Use a different allocation order 35896 when optimizing for size. 35897 * common/config/arc/arc-common.c (arc_option_optimization_table): 35898 Section anchors default on when optimizing for size. 35899 359002017-03-13 Claudiu Zissulescu <claziss@synopsys.com> 35901 35902 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern. 35903 359042017-03-13 Claudiu Zissulescu <claziss@synopsys.com> 35905 35906 * config/arc/arc.c (arc_output_addsi): Emit code density adds. 35907 * config/arc/arc.md (cpu_facility): Add cd variant. 35908 (*movqi_insn): Add code density variant. 35909 (*movhi_insn): Likewise. 35910 (*movqi_insn): Likewise. 35911 (*addsi3_mixed): Likewise. 35912 (subsi3_insn): Likewise. 35913 359142017-03-13 Claudiu Zissulescu <claziss@synopsys.com> 35915 35916 * config/arc/arc.md (movsi_cond_exec): Update constraint. 35917 359182017-03-13 Claudiu Zissulescu <claziss@synopsys.com> 35919 35920 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC 35921 expressions with MINUS and UNARY ops. 35922 359232017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35924 35925 PR target/79911 35926 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): 35927 Rename to... 35928 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch 35929 between vec_select and vector argument. 35930 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to... 35931 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise. 35932 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to... 35933 (vec_sel_widen_usum_lo<mode><V_half>3): ... This. 35934 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to... 35935 (vec_sel_widen_usum_hi<mode><V_half>3): ... This. 35936 359372017-03-13 Richard Biener <rguenther@suse.de> 35938 35939 PR other/79991 35940 * params.def (vect-max-peeling-for-alignment): Fix typo. 35941 359422017-03-12 Gerald Pfeifer <gerald@pfeifer.com> 35943 35944 * doc/install.texi (Specific) <mips-*-*>: Remove description of 35945 issue that only occurred with binutils below 2.18. 35946 359472017-03-12 Gerald Pfeifer <gerald@pfeifer.com> 35948 35949 * doc/install.texi (Specific) <cris-axis-elf>: No longer 35950 refer to binutils 2.11/2.12 minimum. 35951 359522017-03-12 Gerald Pfeifer <gerald@pfeifer.com> 35953 35954 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to 35955 ftp.kernel.org and simplify binutils requirement. 35956 359572017-03-11 Gerald Pfeifer <gerald@pfeifer.com> 35958 35959 * doc/invoke.texi (Warning Options): Fix spelling of link-time 35960 optimization. 35961 (Optimize Options): Ditto. Also remove redundancy. 35962 359632017-03-10 David Malcolm <dmalcolm@redhat.com> 35964 35965 PR translation/79848 35966 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to 35967 "%qs". 35968 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _ 35969 to G_ to avoid double translation. 35970 359712017-03-10 David Malcolm <dmalcolm@redhat.com> 35972 35973 PR translation/79923 35974 * auto-profile.c (get_combined_location): Convert leading 35975 character of diagnostics to lower case and remove trailing period. 35976 (read_profile): Likewise for various diagnostics. 35977 * config/arm/arm.c (arm_option_override): Remove trailing period 35978 from various diagnostics. 35979 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise. 35980 (msp430_expand_delay_cycles): Likewise. 35981 359822017-03-10 David Malcolm <dmalcolm@redhat.com> 35983 35984 PR target/79925 35985 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the 35986 full command-line argument, rather than just "str". 35987 (aarch64_validate_march): Likewise. 35988 (aarch64_validate_mtune): Likewise. 35989 359902017-03-10 Bernd Schmidt <bschmidt@redhat.com> 35991 35992 PR rtl-optimization/78911 35993 * lra-assigns.c (must_not_spill_p): New function. 35994 (spill_for): Use it. 35995 359962017-03-10 Jakub Jelinek <jakub@redhat.com> 35997 35998 PR tree-optimization/79981 35999 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of 36000 ATOMIC_COMPARE_EXCHANGE ifn result. 36001 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle 36002 IFN_ATOMIC_COMPARE_EXCHANGE. 36003 360042017-03-10 David Malcolm <dmalcolm@redhat.com> 36005 36006 PR driver/79875 36007 * opts.c (parse_sanitizer_options): Add missing question mark to 36008 "did you mean" message. 36009 360102017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 36011 36012 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned 36013 built-in. 36014 (VMULEUH_UNS): Likewise. 36015 (VMULOUB_UNS): Likewise. 36016 (VMULOUH_UNS): Likewise. 36017 * config/rs6000/rs6000.c (builtin_function_type): Remove 36018 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS. 36019 360202017-03-10 David Malcolm <dmalcolm@redhat.com> 36021 36022 PR bootstrap/79952 36023 * read-rtl-function.c (function_reader::read_rtx_operand): Update 36024 x with result of extra_parsing_for_operand_code_0. 36025 (function_reader::extra_parsing_for_operand_code_0): Convert 36026 return type from void to rtx, returning x. When reading 36027 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the 36028 larger size containing struct block_symbol. 36029 360302017-03-10 Segher Boessenkool <segher@kernel.crashing.org> 36031 36032 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 36033 -mfloat128-hardware without -m64. 36034 360352017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com> 36036 36037 PR target/79941 36038 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB] 36039 entries to the case statement that marks unsigned arguments to 36040 overloaded functions. 36041 360422017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 36043 36044 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix 36045 two typographic errors in the handling of TARGET_UPPER_REGS_DI. 36046 360472017-03-10 Pat Haugen <pthaugen@us.ibm.com> 36048 36049 PR target/79907 36050 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test 36051 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass. 36052 360532017-03-10 Martin Liska <mliska@suse.cz> 36054 36055 PR target/65705 36056 PR target/69804 36057 * toplev.c (process_options): Enable MPX with LSAN and UBSAN. 36058 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that 36059 FIELD != NULL. 36060 360612017-03-10 Olivier Hainque <hainque@adacore.com> 36062 36063 * tree-switch-conversion (array_value_type): Start by resetting 36064 candidate type to it's main variant. 36065 360662017-03-10 Jakub Jelinek <jakub@redhat.com> 36067 36068 PR rtl-optimization/79909 36069 * combine.c (try_combine): Use simplify_replace_rtx on individual 36070 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx 36071 of the whole CALL_INSN_FUNCTION_USAGE. 36072 36073 PR tree-optimization/79972 36074 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call 36075 get_range_info on SSA_NAMEs. Formatting fixes. 36076 360772017-03-10 Richard Biener <rguenther@suse.de> 36078 Jakub Jelinek <jakub@redhat.com> 36079 36080 PR tree-optimization/77975 36081 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch 36082 edge to be constant. 36083 (get_val_for): For constant x return it. Formatting fix. 36084 (loop_niter_by_eval): Avoid pointless looping if the next iteration 36085 would use the same bases as the current one. 36086 360872017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 36088 36089 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate 36090 instead of vec_select for V1TImode. 36091 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no 36092 longer needed. 36093 (VSX_LE_128): Add V1TI to this mode iterator. 36094 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator. 36095 (*vsx_le_perm_store_<mode>): Likewise. 36096 (pre-reload splitter for VSX stores): Likewise. 36097 (post-reload splitter for VSX stores): Likewise. 36098 (*vsx_xxpermdi2_le_<mode>): Likewise. 36099 (*vsx_lxvd2x2_le_<mode>): Likewise. 36100 (*vsx_stxvd2x2_le_<mode>): Likewise. 36101 361022017-03-09 Michael Eager <eager@eagercon.com> 36103 36104 Correct failures with --enable-checking=yes,rtl. 36105 36106 * config/microblaze/microblaze.c (microblaze_expand_shift): 36107 Replace GET_CODE test with CONST_INT_P and INTVAL test with 36108 test for const0_rtx. 36109 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone, 36110 lshrsi3_byone): Replace INTVAL with test for const1_rtx. 36111 361122017-03-09 Richard Biener <rguenther@suse.de> 36113 36114 PR tree-optimization/79977 36115 * graphite-scop-detection.c (scop_detection::merge_sese): 36116 Handle the case of extra exits to blocks dominating the entry. 36117 361182017-03-09 Toma Tabacu <toma.tabacu@imgtec.com> 36119 36120 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 36121 Document rdynamic. 36122 361232017-03-09 Vladimir Makarov <vmakarov@redhat.com> 36124 36125 PR rtl-optimization/79949 36126 * lra-constraints.c (process_alt_operands): Check memory when 36127 trying to predict a cycle. Print about the overall increase. 36128 361292017-03-09 Richard Biener <rguenther@suse.de> 36130 36131 PR middle-end/79971 36132 * gimple-expr.c (useless_type_conversion_p): Preserve 36133 TYPE_SATURATING for fixed-point types. 36134 361352017-03-09 Richard Biener <rguenther@suse.de> 36136 36137 PR ipa/79970 36138 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing 36139 alignment of BLKmode params. 36140 361412017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 36142 36143 PR target/79913 36144 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator. 36145 (VALL_NO_V2Q): Likewise. 36146 (VDQF_DF): Delete. 36147 * config/aarch64/aarch64-simd.md 36148 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q 36149 iterator. 36150 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use 36151 VALL_NO_V2Q mode iterator. 36152 (*aarch64_vgetfmulx<mode>): Use VDQF iterator. 36153 361542017-03-09 Martin Liska <mliska@suse.cz> 36155 36156 PR tree-optimization/79631 36157 * tree-chkp-opt.c (chkp_is_constant_addr): Call 36158 tree_int_cst_sign_bit just for INTEGER constants. 36159 361602017-03-09 Martin Liska <mliska@suse.cz> 36161 36162 PR target/65705 36163 PR target/69804 36164 * toplev.c (process_options): Disable -fcheck-pointer-bounds with 36165 sanitizers. 36166 361672017-03-09 Marek Polacek <polacek@redhat.com> 36168 36169 PR c++/79672 36170 * tree.c (inchash::add_expr): Handle TREE_VEC. 36171 361722017-03-09 Martin Liska <mliska@suse.cz> 36173 36174 PR ipa/79764 36175 (chkp_narrow_size_and_offset): New function. 36176 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF. 36177 (void chkp_parse_bit_field_ref): New function. 36178 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF. 36179 (chkp_process_stmt): Use chkp_parse_bit_field_ref. 36180 361812017-03-09 Martin Liska <mliska@suse.cz> 36182 36183 PR ipa/79761 36184 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param. 36185 (chkp_find_bounds_1): Remove gcc_unreachable. 36186 361872017-03-09 Jakub Jelinek <jakub@redhat.com> 36188 36189 PR sanitizer/79944 36190 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and 36191 BUILT_IN_SYNC*, determine the access type from the size suffix and 36192 always build a MEM_REF with that type. Handle forgotten 36193 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16. 36194 36195 PR target/79932 36196 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask, 36197 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask, 36198 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask, 36199 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask, 36200 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask, 36201 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask, 36202 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask, 36203 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask, 36204 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask, 36205 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask, 36206 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask, 36207 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask, 36208 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask, 36209 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask, 36210 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask, 36211 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask, 36212 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask, 36213 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask, 36214 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask, 36215 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask, 36216 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask, 36217 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask, 36218 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask, 36219 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask, 36220 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask, 36221 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask, 36222 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask, 36223 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask, 36224 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask, 36225 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move 36226 definitions outside of __OPTIMIZE__ guarded section. 36227 36228 PR target/79932 36229 * config/i386/avx512bwintrin.h (_mm512_packs_epi32, 36230 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32, 36231 _mm512_packus_epi32, _mm512_maskz_packus_epi32, 36232 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__ 36233 guarded section. 36234 362352017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 36236 36237 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>") 36238 ("vfenez<mode>"): Add missing constraints. 36239 362402017-03-08 Martin Sebor <msebor@redhat.com> 36241 36242 PR target/79928 36243 * config/nds32/nds32.c (nds32_option_override): 36244 Fix misspelled diagnostic. 36245 362462017-03-08 Jakub Jelinek <jakub@redhat.com> 36247 36248 PR c/79940 36249 * gimplify.c (gimplify_omp_for): Replace index var in outer 36250 taskloop statement with an artificial variable and add 36251 OMP_CLAUSE_PRIVATE clause for it. 36252 362532017-03-08 Richard Biener <rguenther@suse.de> 36254 36255 PR tree-optimization/79955 36256 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn 36257 for accesses that are completely outside of the variable. 36258 362592017-03-08 Andrew Haley <aph@redhat.com> 36260 36261 PR tree-optimization/79943 36262 * tree-ssa-loop-split.c (compute_new_first_bound): When 36263 calculating the new upper bound, (END-BEG) should be added, not 36264 subtracted. 36265 362662017-03-08 Jakub Jelinek <jakub@redhat.com> 36267 36268 * config/avr/avr.md (setmemhi): Make sure match_dup 36269 operand number comes before match_scratch. 36270 362712017-03-08 Richard Biener <rguenther@suse.de> 36272 36273 PR tree-optimization/79920 36274 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline 36275 with ncopies == 1 to ... 36276 (vect_transform_slp_perm_load): ... here. Properly compute 36277 all element loads by iterating VF times over the group. Do 36278 not handle ncopies (computed in a broken way) in 36279 vect_create_mask_and_perm. 36280 362812017-03-08 Jakub Jelinek <jakub@redhat.com> 36282 36283 PR sanitizer/79904 36284 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1 36285 is a uniform vector, use uniform_vector_p return value instead of 36286 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type. 36287 362882017-03-07 Marek Polacek <polacek@redhat.com> 36289 36290 PR middle-end/79809 36291 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT. 36292 (alloca_call_type): Likewise. 36293 362942017-03-07 Martin Liska <mliska@suse.cz> 36295 36296 * gcov.c (process_args): Put comment to correct location. 36297 362982017-03-07 Martin Liska <mliska@suse.cz> 36299 36300 PR middle-end/68270 36301 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref. 36302 Use array_at_struct_end_p instead of DECL_CHAIN (field). 36303 (chkp_narrow_bounds_for_field): Likewise. 36304 (chkp_parse_array_and_component_ref): Pass one more argument to 36305 call. 36306 363072017-03-07 Richard Biener <rguenther@suse.de> 36308 36309 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve 36310 preheaders. 36311 363122017-03-07 Segher Boessenkool <segher@kernel.crashing.org> 36313 36314 * config/i386/i386.c (ix86_local_alignment): Align most aggregates 36315 of 16 bytes and more to 16 bytes, not those of 16 bits and more. 36316 363172017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 36318 36319 PR c/79855 36320 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop 36321 to end of description. 36322 (PARAM_MAX_STORES_TO_MERGE): Likewise. 36323 363242017-03-07 Jakub Jelinek <jakub@redhat.com> 36325 36326 PR rtl-optimization/79901 36327 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to 36328 ... 36329 (*avx512f_<code><mode>3<mask_name>): ... this. 36330 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F 36331 iterator instead of VI8_AVX2_AVX512BW. 36332 36333 PR rtl-optimization/79901 36334 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no 36335 min/max expander, expand it using expand_vec_cond_expr. 36336 36337 PR sanitizer/79897 36338 * ubsan.c (ubsan_encode_value): Call mark_addressable on the 36339 temporary. 36340 363412017-03-06 Jakub Jelinek <jakub@redhat.com> 36342 36343 PR c++/79821 36344 * dwarf2out.h (dw_vec_const): Change array type from unsigned char * 36345 to void * for PCH reasons. 36346 * dwarf2out.c (output_loc_operands, output_die): Cast 36347 v.val_vec.array to unsigned char *. 36348 363492017-03-06 John David Anglin <danglin@gcc.gnu.org> 36350 36351 PR target/77850 36352 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and 36353 vector types. 36354 363552017-03-06 Vladimir Makarov <vmakarov@redhat.com> 36356 36357 PR rtl-optimization/79571 36358 * lra-constraints.c (process_alt_operands): Calculate static 36359 reject and subtract it from overall when only addresses will be 36360 reloaded. 36361 363622017-03-06 Julia Koval <julia.koval@intel.com> 36363 36364 PR target/79793 36365 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set 36366 incoming stack boundary to 128 for 64-bit targets. 36367 363682017-03-06 Richard Biener <rguenther@suse.de> 36369 36370 PR tree-optimization/79894 36371 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call 36372 to NULL after folding it. 36373 363742017-03-06 Richard Biener <rguenther@suse.de> 36375 36376 PR tree-optimization/79824 36377 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment 36378 check disabling peeling for gaps. 36379 363802017-03-06 Toma Tabacu <toma.tabacu@imgtec.com> 36381 36382 * doc/sourcebuild.texi (Effective-Target Keywords, Environment 36383 attributes): Document gettimeofday. 36384 363852017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> 36386 36387 * config/s390/s390.c (s390_option_override_internal): Set 36388 PARAM_MIN_VECT_LOOP_BOUND 36389 363902017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> 36391 36392 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0. 36393 * config/s390/s390.md: Likewise. 36394 363952017-03-06 Jakub Jelinek <jakub@redhat.com> 36396 36397 PR target/79812 36398 * config/i386/sse.md (VI8F_256_512): Remove mode iterator. 36399 (<avx2_avx512>_perm<mode>): Rename to ... 36400 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead 36401 of VI8F_256_512. 36402 (<avx512>_perm<mode>_mask): Rename to ... 36403 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead 36404 of VI8F_256_512. 36405 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ... 36406 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator 36407 instead of VI8F_256_512. 36408 (avx512f_perm<mode>): New define_expand. 36409 (avx512f_perm<mode>_mask): Likewise. 36410 (avx512f_perm<mode>_1<mask_name>): New define_insn. 36411 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode. 36412 364132017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> 36414 36415 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>, 36416 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for 36417 if_then_else. 36418 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'. 36419 364202017-03-06 Martin Liska <mliska@suse.cz> 36421 36422 PR sanitize/79783 36423 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON 36424 when having a SSA NAME w/o VAR_DECL assigned to it. 36425 364262017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> 36427 36428 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d, 36429 msa_dpsub_<su>_d): Fix MODE for vec_select. 36430 364312017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> 36432 36433 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last 36434 argument. 36435 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise. 36436 364372017-03-06 Richard Biener <rguenther@suse.de> 36438 36439 * lto-streamer.c (lto_check_version): Use %qs in diagnostics. 36440 * plugin.c (register_plugin_info): Likewise. 36441 * tree-chkp.c (chkp_make_static_const_bounds): Likewise. 36442 364432017-03-05 Jakub Jelinek <jakub@redhat.com> 36444 36445 * config/i386/sse.md (sse_storehps, sse_storelps, 36446 avx_<castmode><avxsizesuffix>_<castmode>, 36447 avx512f_<castmode><avxsizesuffix>_<castmode>, 36448 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require 36449 in condition that at least one operand is not a MEM. 36450 364512017-03-03 Jakub Jelinek <jakub@redhat.com> 36452 36453 PR middle-end/79805 36454 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET, 36455 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove 36456 ECF_NOTHROW. 36457 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set 36458 gimple_call_nothrow_p flag based on whether original builtin can throw. 36459 If it can, emit following stmts on the fallthrough edge. 36460 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except 36461 don't create new bb if inserting just debug stmts on the edge, try to 36462 insert them on the fallthru bb or just reset debug stmts. 36463 364642017-03-03 Segher Boesssenkool <segher@kernel.crashing.org> 36465 36466 PR target/43763 36467 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and 36468 restore recog_data (including the operand rtxes inside it) around 36469 the call to get_insn_template. 36470 364712017-03-03 Martin Sebor <msebor@redhat.com> 36472 36473 PR tree-optimization/79699 36474 * context.c (context::~context): Free MPFR caches to avoid 36475 a memory leak on program exit. 36476 364772017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 36478 36479 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): 36480 Use wide_int::ulow () instead of .elt (0). 36481 364822017-03-03 Uros Bizjak <ubizjak@gmail.com> 36483 36484 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC. 36485 (*pushxf): Limit oF constraint to 32bit targets and add oC 36486 constraint for 64bit targets. 36487 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment. 36488 (*pushdf): Change rmF constraint to rmC. 36489 364902017-03-03 Martin Liska <mliska@suse.cz> 36491 36492 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute): 36493 Remove unused variable. 36494 364952017-03-03 Jakub Jelinek <jakub@redhat.com> 36496 36497 PR target/79807 36498 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target 36499 is a memory operand, increase num_memory. 36500 (ix86_expand_args_builtin): Likewise. 36501 365022017-03-03 Jan Hubicka <jh@suse.cz> 36503 36504 PR lto/79760 36505 * ipa-devirt.c (maybe_record_node): Properly handle 36506 __cxa_pure_virtual visibility. 36507 365082017-03-03 Martin Liska <mliska@suse.cz> 36509 36510 PR tree-optimization/79803 36511 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove 36512 assert. 36513 (pass_loop_prefetch::execute): Disabled optimization if an 36514 assumption about L1 cache size is not met. 36515 365162017-03-03 Martin Liska <mliska@suse.cz> 36517 36518 PR rtl-optimization/79574 36519 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int. 36520 (hash_scan_set): Likewise. 36521 (dump_hash_table): Likewise. 36522 (hoist_code): Likewise. 36523 365242017-03-03 Richard Biener <rguenther@suse.de> 36525 36526 * fixed-value.c (fixed_from_string): Restore use of elt (1) 36527 in place of uhigh (). 36528 (fixed_convert_from_real): Likewise. 36529 365302017-03-03 Uros Bizjak <ubizjak@gmail.com> 36531 36532 PR target/79514 36533 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode. 36534 365352017-03-03 Richard Biener <rguenther@suse.de> 36536 36537 PR middle-end/79818 36538 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing 36539 TYPE_OVERFLOW_UNDEFINED check. 36540 365412017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 36542 36543 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand 36544 numbers. 36545 (vector_ae_<mode>_p): Likewise. 36546 (vector_nez_<mode>_p): Likewise. 36547 (vector_ne_v2di_p): Likewise. 36548 (vector_ae_v2di_p): Likewise. 36549 (vector_ne_<mode>_p): Likewise. 36550 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand 36551 numbers. 36552 (vsx_tsqrt<mode>2_fe): Likewise. 36553 365542017-03-02 Uros Bizjak <ubizjak@gmail.com> 36555 36556 PR target/79514 36557 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. 36558 365592017-03-02 Jakub Jelinek <jakub@redhat.com> 36560 36561 PR rtl-optimization/79780 36562 * cprop.c (one_cprop_pass): When second and further conditional trap 36563 in a single basic block is turned into an unconditional trap, turn it 36564 into a deleted note to avoid RTL verification failures. 36565 365662017-03-02 Richard Biener <rguenther@suse.de> 36567 36568 * fold-const.c (const_binop): Use ulow () instead of elt (0). 36569 365702017-03-02 Richard Biener <rguenther@suse.de> 36571 36572 PR tree-optimization/79345 36573 PR c++/42000 36574 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit 36575 param and abort the walk, returning -1 if it is hit. 36576 (walk_aliased_vdefs): Take a limit param and pass it on. 36577 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param, 36578 defaulting to 0 and return a signed int. 36579 * tree-ssa-uninit.c (struct check_defs_data): New struct. 36580 (check_defs): New helper. 36581 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn 36582 about uninitialized memory. 36583 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid 36584 bogus uninitialized warning. 36585 (fixed_convert_from_real): Likewise. 36586 365872017-03-02 Bin Cheng <bin.cheng@arm.com> 36588 36589 PR tree-optimization/66768 36590 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr 36591 iv_use if base object can't be determined. 36592 365932017-03-02 Jakub Jelinek <jakub@redhat.com> 36594 36595 PR tree-optimization/79345 36596 * gensupport.h (struct pattern_stats): Add min_scratch_opno field. 36597 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it. 36598 (get_pattern_stats): Initialize it. 36599 * genemit.c (gen_expand): Verify match_scratch numbers come after 36600 match_operand/match_dup numbers. 36601 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and 36602 match_scratch numbers. 36603 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>): 36604 Likewise. 36605 * config/s390/s390.md (trunctdsd2): Likewise. 36606 366072017-03-02 Richard Biener <rguenther@suse.de> 36608 36609 * wide-int.h (wide_int_storage::operator=): Implement in terms 36610 of wi::copy. 36611 366122017-03-02 Richard Biener <rguenther@suse.de> 36613 36614 PR tree-optimization/79777 36615 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify 36616 the to insert expression to sth existing. 36617 366182017-03-01 Martin Sebor <msebor@redhat.com> 36619 36620 PR middle-end/79692 36621 * gimple-ssa-sprintf.c 36622 (directive::known_width_and_precision): New function. 36623 (format_integer): Use it. 36624 (get_mpfr_format_length): Consider the full range of precision 36625 when computing %g output with the # flag. Set the likely byte 36626 count to 3 rather than 1 when precision is indeterminate. 36627 (format_floating): Correct the lower bound of precision. 36628 366292017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 36630 36631 * doc/invoke.texi: Document default code model for 64-bit Linux. 36632 366332017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 36634 36635 PR target/79752 36636 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit 36637 udiv rather than div since input pattern is unsigned. 36638 366392017-03-01 Uros Bizjak <ubizjak@gmail.com> 36640 36641 * config/i386/i386.c (print_reg): Warn for values of 36642 unsupported size in integer register. 36643 366442017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com> 36645 36646 PR target/79439 36647 * config/rs6000/predicates.md (current_file_function_operand): Do 36648 not allow self calls to be local if the function is replaceable. 36649 366502017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org> 36651 36652 PR target/79395 36653 * config/rs6000/altivec.h (vec_ctz and others): Change the 36654 preprocessor macro that controls conditional compilation from 36655 _ARCH_PWR9 to __POWER9_VECTOR__. 36656 (vec_all_ne): Change parameterization of __altivec_scalar_pred 36657 macro expansion under preprocessor #ifdef __POWER9_VECTOR__ 36658 control (instead of _ARCH_PWR9 control) so that template 36659 definition uses power9-specific function. 36660 (vec_any_eq): Likewise. 36661 (vec_all_ne): Change macro definition to use a power9-specific 36662 expansion under #ifdef __POWER9_VECTOR__ control (instead of 36663 _ARCH_PWR9 control). 36664 (vec_any_eq) Likewise. 36665 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2 36666 expansion for CMPNEF to remove support for xvcmpnesp instruction. 36667 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove 36668 support for xvcmpnedp instruction. 36669 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2 36670 macro expansion so that Power9 implementation of vec_all_ne does 36671 not use the AltiVec predicate framework. 36672 (VCMPNEH_P): Likewise. 36673 (VCMPNEW_P): Likewise. 36674 (VCMPNED_P): Likewise. 36675 (VCMPNEFP_P): Likewise. 36676 (VCMPNEDP_P): Likewise. 36677 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change 36678 implementation of vec_any_eq to not use AltiVec predicate 36679 framework. 36680 (VCMPAEH_P): Likewise. 36681 (VCMPAEW_P): Likewise. 36682 (VCMPAED_P): Likewise. 36683 (VCMPAEFP_P): Likewise. 36684 (VCMPAEDP_P): Likewise. 36685 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with 36686 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does 36687 not use the AltiVec predicate framework. 36688 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation 36689 of vec_any_eq to not use AltiVec predicate framework. 36690 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add 36691 support for predefined __POWER9_VECTOR__ macro to indicate that 36692 Power9 instruction selection is enabled. 36693 (altivec_overloaded_builtins): Remove extraneous 36694 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded 36695 function argument types RS6000_BTI_bool_V16QI and 36696 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE 36697 entry for overloaded function argument types RS6000_BTI_bool_V4SI 36698 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove 36699 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to 36700 P9V_BUILTIN_CMPNEF to force use of instructions not specific to 36701 Power9 for implementations of vec_cmpne. Change the signature for 36702 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function 36703 (representing vec_all_ne) to remove the previously described first 36704 argument of type RS6000_BTI_INTSI, as this was an artifact of 36705 reliance on the AltiVec predicate framework, which is no longer 36706 used in the implementation of these functions. Add 36707 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq 36708 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries 36709 since, unlike the AltiVec predicate framework implementation, we 36710 do not share function descriptors between vec_alle and vec_anyeq. 36711 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the 36712 set of modes that receive special treatment even when 36713 TARGET_P9_VECTOR is true. The special treatment emits code that 36714 does not depend on Power9 instructions. 36715 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this 36716 define_expand to not rely on AltiVec predicate framework. 36717 (vector_ae_<mode>p): New define_expand to represent vec_any_eq 36718 function. 36719 (vector_ne_v2di_p): Change this define_expand to not rely on 36720 AltiVec predicate framework. 36721 (vector_ae_v2di_p): New define_expand to represent vec_any_eq 36722 function. 36723 (vector_ne_<mode>_p): Change this define_expand to not rely on 36724 AltiVec predicate framework. 36725 (vector_ae_<mode>p): New define_expand to represent vec_any_eq 36726 function. 36727 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I 36728 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this 36729 define_insn pattern. 36730 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this 36731 define_insn pattern because the xvcmpne<VSs>. instruction is not 36732 supported. 36733 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs> 36734 instruction is not supported. 36735 367362017-03-01 Jakub Jelinek <jakub@redhat.com> 36737 36738 * config/nvptx/nvptx.c: Include intl.h. 36739 367402017-03-01 Martin Jambor <mjambor@suse.cz> 36741 36742 PR lto/78140 36743 * ipa-prop.h (ipa_bits): Removed field known. 36744 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr 36745 to pointers. Adjusted their comments to warn about their sharing. 36746 (ipcp_transformation_summary): Change bits to a vector of pointers. 36747 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare. 36748 (ipa_get_ipa_bits_for_value): Declare. 36749 * tree-vrp.h (value_range): Mark as GTY((for_user)). 36750 * ipa-prop.c (ipa_bit_ggc_hash_traits): New. 36751 (ipa_bits_hash_table): Likewise. 36752 (ipa_vr_ggc_hash_traits): Likewise. 36753 (ipa_vr_hash_table): Likewise. 36754 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr 36755 being pointers and vr_known being removed. 36756 (ipa_set_jf_unknown): Likewise. 36757 (ipa_get_ipa_bits_for_value): New function. 36758 (ipa_set_jfunc_bits): Likewise. 36759 (ipa_get_value_range): New overloaded functions. 36760 (ipa_set_jfunc_vr): Likewise. 36761 (ipa_compute_jump_functions_for_edge): Use the above functions to 36762 construct bits and vr parts of jump functions. 36763 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate 36764 ipa_bits_hash_table and ipa_vr_hash_table if they do not already 36765 exist. 36766 (ipcp_grow_transformations_if_necessary): Also allocate 36767 ipa_bits_hash_table and ipa_vr_hash_table if they do not already 36768 exist. 36769 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to 36770 them. Fix too long lines. 36771 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and 36772 vr_known being removed. 36773 (ipa_read_jump_function): Use new setter functions to construct bits 36774 and vr parts of jump functions or set them to NULL. 36775 (write_ipcp_transformation_info): Adjust for bits being pointers. 36776 (read_ipcp_transformation_info): Likewise. 36777 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing 36778 space. 36779 Include gt-ipa-prop.h. 36780 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits 36781 being pointers. 36782 (ipcp_store_bits_results): Likewise. 36783 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer. 36784 Do not write to existing jump functions but use a temporary instead. 36785 367862017-03-01 Jakub Jelinek <jakub@redhat.com> 36787 36788 PR c++/79681 36789 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF, 36790 attempt to use its first operand as BIT_FIELD_REF base. 36791 367922017-03-01 Richard Biener <rguenther@suse.de> 36793 36794 PR middle-end/79721 36795 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons 36796 interpolating formula in wrapping arithmetic. 36797 (chrec_apply): Convert chrec_evaluate return value to wanted type. 36798 367992017-03-01 Jakub Jelinek <jakub@redhat.com> 36800 36801 PR tree-optimization/79734 36802 * tree-vect-generic.c (expand_vector_condition): Optimize 36803 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations. 36804 Handle VEC_COND_EXPR where comparison has different inner width from 36805 type's inner width. 36806 368072017-02-28 Sandra Loosemore <sandra@codesourcery.com> 36808 36809 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation, 36810 markup, and similar issues. Remove @opindex entries for things 36811 that aren't options. Add missing -mmpy-option entries. 36812 368132017-02-28 Jakub Jelinek <jakub@redhat.com> 36814 36815 PR tree-optimization/79737 36816 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is 36817 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear 36818 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1 36819 instead of byte_size. Formatting fix. 36820 (shift_bytes_in_array_right): Formatting fix. 36821 368222017-02-28 Eric Botcazou <ebotcazou@adacore.com> 36823 36824 PR target/79749 36825 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing 36826 condition on optimize for the leaf function test. 36827 368282017-02-28 Martin Liska <mliska@suse.cz> 36829 36830 PR lto/79625 36831 * read-rtl-function.c (function_reader::handle_unknown_directive): 36832 Bail out when one uses -flto. 36833 368342017-02-28 Martin Liska <mliska@suse.cz> 36835 36836 * common.opt: Replace space with tabular for options of <number> 36837 type. 36838 * config/i386/i386.opt: Show <number> value for 36839 -mlarge-data-threshold. 36840 * opts.c (print_filtered_help): Do not display number in hexadecimal 36841 format. 36842 368432017-02-28 Martin Liska <mliska@suse.cz> 36844 36845 * common.opt: Fix --help=option -Q for options which are of 36846 an enum type. 36847 368482017-02-28 Uros Bizjak <ubizjak@gmail.com> 36849 36850 * config/i386/i386.c (print_reg): Error out for values 36851 of 8-bit size in invalid integer register. 36852 368532017-02-28 Martin Sebor <msebor@redhat.com> 36854 36855 PR tree-optimization/79691 36856 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length. 36857 368582017-02-28 Jakub Jelinek <jakub@redhat.com> 36859 36860 PR target/79729 36861 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace 36862 gcc_unreachable with output_operand_lossage. 36863 368642017-02-28 Richard Biener <rguenther@suse.de> 36865 36866 PR tree-optimization/79740 36867 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant 36868 inserts. 36869 (visit_nary_op): Insert the nary into the hashtable if we 36870 pattern-matched sth. 36871 * tree-ssa-pre.c (eliminate_insert): Robustify. 36872 368732017-02-28 Richard Biener <rguenther@suse.de> 36874 36875 PR middle-end/79731 36876 * fold-const.c (decode_field_reference): Reject out-of-bound 36877 accesses. 36878 368792017-02-28 Jakub Jelinek <jakub@redhat.com> 36880 36881 * config/i386/i386.c: Include intl.h. 36882 (ix86_option_override_internal): Use cond ? G_("...") : G_("...") 36883 instead of just cond ? "..." : "...". 36884 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise. 36885 * coverage.c (read_counts_file): Likewise. 36886 * omp-offload.c: Include intl.h. 36887 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead 36888 of just cond ? "..." : "...". 36889 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead 36890 of just cond ? "..." : "...". 36891 368922017-02-28 Richard Earnshaw <rearnsha@arm.com> 36893 36894 PR target/79742 36895 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for' 36896 entry, if present. 36897 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct 36898 'tune for' CPU name. 36899 * config/arm/arm-cpu-data.h: Regenerated. 36900 369012017-02-28 Richard Biener <rguenther@suse.de> 36902 36903 PR tree-optimization/79732 36904 * tree-inline.c (expand_call_inline): Do not shadow var. 36905 369062017-02-28 Richard Biener <rguenther@suse.de> 36907 36908 PR tree-optimization/79723 36909 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve 36910 address-space properly. 36911 369122017-02-28 Thomas Schwinge <thomas@codesourcery.com> 36913 36914 * doc/optinfo.texi (Optimization groups): Fix option used for 36915 OPTGROUP_ALL. 36916 * doc/invoke.texi (-fopt-info): Document "omp". 36917 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC. 36918 (OPTGROUP_ALL): Add OPTGROUP_OMP. 36919 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP. 36920 * ipa-hsa.c (pass_data_ipa_hsa): Likewise. 36921 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise. 36922 36923 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust 36924 all users. 36925 * dumpfile.c (optgroup_options): Instead of "openmp", associate 36926 OPTGROUP_OMP with "omp". 36927 369282017-02-27 Pat Haugen <pthaugen@us.ibm.com> 36929 36930 PR target/79544 36931 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD 36932 for arithmetic shift of unsigned V2DI. 36933 369342017-02-27 Claudiu Zissulescu <claziss@synopsys.com> 36935 36936 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and 36937 arc/linux.h headers. 36938 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove. 36939 (LINK_SPEC): Likewise. 36940 (ARC_TLS_EXTRA_START_SPEC): Likewise. 36941 (EXTRA_SPECS): Likewise. 36942 (STARTFILE_SPEC): Likewise. 36943 (ENDFILE_SPEC): Likewise. 36944 (LIB_SPEC): Likewise. 36945 (TARGET_SDATA_DEFAULT): Likewise. 36946 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise. 36947 (MULTILIB_DEFAULTS): Likewise. 36948 (DWARF2_UNWIND_INFO): Likewise. 36949 * config/arc/big.h: New file. 36950 * config/arc/elf.h: Likewise. 36951 * config/arc/linux.h: Likewise. 36952 * config/arc/t-uClibc: Remove. 36953 369542017-02-27 Bin Cheng <bin.cheng@arm.com> 36955 36956 PR tree-optimization/77536 36957 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function. 36958 (tree_transform_and_unroll_loop): Use above function to compute the 36959 estimated niter of unrolled loop and use it when scaling profile. 36960 Also use count info rather than frequency if it's non-zero. 36961 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration. 36962 * tree-vect-loop.c (scale_profile_for_vect_loop): New function. 36963 (vect_transform_loop): Call above function. 36964 369652017-02-27 Richard Biener <rguenther@suse.de> 36966 36967 PR tree-optimization/45397 36968 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR. 36969 * tree-ssa-sccvn.c (valueized_wider_op): New helper. 36970 (visit_nary_op): Add pattern matching for CSEing sign-changed 36971 or truncated operations with wider ones. 36972 369732017-02-27 Richard Biener <rguenther@suse.de> 36974 36975 PR tree-optimization/79690 36976 * tree-vect-stmts.c (vectorizable_store): Use vector type 36977 built from the DR with address-space. 36978 369792017-02-26 Gerald Pfeifer <gerald@pfeifer.com> 36980 36981 * doc/invoke.texi (Optimize Options): Refine the description 36982 of asan-use-after-return. 36983 369842017-02-25 Alan Modra <amodra@gmail.com> 36985 36986 PR rtl-optimization/79584 36987 * lra-constraints.c (base_to_reg): Reload ad->base, the entire 36988 base, not ad->base_term, the reg within base. Remove assertion 36989 that ad->base == ad->base_term. Replace gen_int_mode using 36990 bogus mode with const0_rtx. 36991 369922017-02-25 Jakub Jelinek <jakub@redhat.com> 36993 36994 PR middle-end/79396 36995 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle 36996 FMA_EXPR like tcc_binary or tcc_unary. 36997 36998 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning. 36999 37000 PR debug/77589 37001 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value 37002 bitfield. 37003 (size_of_loc_descr): Handle DW_OP_GNU_variable_value. 37004 (output_loc_operands): Handle DW_OP_call_ref and 37005 DW_OP_GNU_variable_value. 37006 (struct variable_value_struct): New type. 37007 (struct variable_value_hasher): Likewise. 37008 (variable_value_hash): New variable. 37009 (string_types): Remove. 37010 (copy_loc_descr): New function. 37011 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr. 37012 (prepend_loc_descr_to_each): New function. 37013 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each 37014 instead of add_loc_descr_to_each if the first argument is single 37015 location list and the second has multiple. 37016 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value. 37017 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value 37018 when looking for variable value which doesn't have other location info. 37019 (loc_list_from_tree): Formatting fix. 37020 (gen_array_type_die): Simplify DW_AT_string_length handling. 37021 (adjust_string_types): Remove. 37022 (gen_subprogram_die): Don't call adjust_string_types nor test/set 37023 string_types. Call resolve_variable_values. 37024 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value. 37025 (resolve_addr_in_expr): Likewise. Add A argument. 37026 (copy_deref_exprloc): Remove deref argument. Adjust for the 37027 original expression being DW_OP_GNU_variable_value with optionally 37028 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref 37029 optionally after it. 37030 (optimize_string_length): Rework for DW_OP_GNU_variable_value. 37031 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr 37032 callers. Set remove_AT_byte_size if removing DW_AT_string_length. 37033 (variable_value_hasher::hash, variable_value_hasher::equal): New 37034 methods. 37035 (resolve_variable_value_in_expr, resolve_variable_value, 37036 resolve_variable_values, note_variable_value_in_expr, 37037 note_variable_value): New functions. 37038 (dwarf2out_early_finish): Call note_variable_value on all toplevel 37039 DIEs. 37040 370412017-02-24 Jakub Jelinek <jakub@redhat.com> 37042 37043 PR c/79677 37044 * opts.h (handle_generated_option): Add GENERATED_P argument. 37045 * opts-common.c (handle_option): Adjust function comment. 37046 (handle_generated_option): Add GENERATED_P argument, pass it to 37047 handle_option. 37048 (control_warning_option): Pass false to handle_generated_option 37049 GENERATED_P. 37050 * opts.c (maybe_default_option): Pass true to handle_generated_option 37051 GENERATED_P. 37052 * optc-gen.awk: Likewise. 37053 370542017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37055 37056 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of 37057 a REG, look at the REG it is a SUBREG of. 37058 (splitter for cmpeqsi_t): Ditto. 37059 370602017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37061 37062 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make 37063 the special USEs with the pattern of the insn, not the insn itself. 37064 370652017-02-24 Matthew Fortune <matthew.fortune@imgtec.com> 37066 37067 PR target/79473 37068 * doc/invoke.texi: Document -mload-store-pairs. 37069 370702017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37071 Sandra Loosemore <sandra@codesourcery.com> 37072 37073 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the 37074 argument isn't a CONST_INT. 37075 (nios2_alternate_compare_const): Assert op is a CONST_INT. 37076 (nios2_valid_compare_const_p): Assert op is a CONST_INT. 37077 (nios2_validate_compare): Bypass alternate compare logic if *op2 37078 is not a CONST_INT. 37079 (ldstwm_operation_p): Return false if first_base is not a REG or 37080 if first_offset is not a CONST_INT. 37081 370822017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37083 37084 * config/cris/cris.md: Use correct operand in a define_peephole2. 37085 370862017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37087 37088 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. 37089 370902017-02-24 Segher Boessenkool <segher@kernel.crashing.org> 37091 37092 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of 37093 this_insn if it is an INSN or JUMP_INSN. 37094 (force_offsettable): Look at base, not at addr. 37095 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL 37096 on things that aren't necessarily CONST_INTs. 37097 370982017-02-24 Uros Bizjak <ubizjak@gmail.com> 37099 37100 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that 37101 -mfpmath=sse is the default also for x86-32 targets with SSE2 37102 instruction set when @option{-ffast-math} is enabled 37103 371042017-02-24 Jeff Law <law@redhat.com> 37105 37106 PR rtl-optimizatoin/79286 37107 * ira.c (update_equiv_regs): Drop may_trap_p exception to 37108 dominance test. 37109 371102017-02-24 Richard Biener <rguenther@suse.de> 37111 37112 PR tree-optimization/79389 37113 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip 37114 debug insns. 37115 371162017-02-24 Aldy Hernandez <aldyh@redhat.com> 37117 37118 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update 37119 function comment to reflect reality. 37120 (loop_exits_before_overflow): Fix typo in function description. 37121 371222017-02-24 Richard Biener <rguenther@suse.de> 37123 37124 PR tree-optimization/79389 37125 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more 37126 properly that a threading opportunity exists. Detect conditional 37127 copy/constant propagation opportunities. 37128 371292017-02-23 Eric Botcazou <ebotcazou@adacore.com> 37130 37131 * config/visium/visium.md (type): Add trap. 37132 (b): New mode attribute. 37133 (*btst): Rename into... 37134 (*btst<mode>): ...this and adjust. 37135 (*cbranchsi4_btst_insn): Rename into... 37136 (*cbranch<mode>4_btst_insn): ...this and adjust. 37137 (trap): New define_insn. 37138 371392017-02-23 Jakub Jelinek <jakub@redhat.com> 37140 37141 PR tree-optimization/79389 37142 * ifcvt.c (struct noce_if_info): Add rev_cond field. 37143 (noce_reversed_cond_code): New function. 37144 (noce_emit_store_flag): Use rev_cond if non-NULL instead of 37145 reversed_comparison_code. Formatting fix. 37146 (noce_try_store_flag): Test rev_cond != NULL in addition to 37147 reversed_comparison_code. 37148 (noce_try_store_flag_constants): Likewise. 37149 (noce_try_store_flag_mask): Likewise. 37150 (noce_try_addcc): Use rev_cond if non-NULL instead of 37151 reversed_comparison_code. 37152 (noce_try_cmove_arith): Likewise. Formatting fixes. 37153 (noce_try_minmax, noce_try_abs): Clear rev_cond. 37154 (noce_find_if_block): Initialize rev_cond. 37155 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb 37156 instead of false as last argument never attempt to reverse it 37157 afterwards. 37158 371592017-02-23 Bin Cheng <bin.cheng@arm.com> 37160 37161 PR tree-optimization/79663 37162 * tree-predcom.c (combine_chains): Process refs in reverse order 37163 only for ZERO length chains, and add explaining comment. 37164 371652017-02-23 Jeff Law <law@redhat.com> 37166 37167 PR tree-optimization/79578 37168 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF 37169 in call to operand_equal_p. 37170 371712017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr> 37172 37173 PR target/71017 37174 * config/i386/cpuid.h: Fix another undefined behavior. 37175 371762017-02-23 Richard Biener <rguenther@suse.de> 37177 37178 PR tree-optimization/79683 37179 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite 37180 vector types for data-refs. 37181 371822017-02-23 Martin Liska <mliska@suse.cz> 37183 37184 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0. 37185 371862017-02-23 Jakub Jelinek <jakub@redhat.com> 37187 37188 PR middle-end/79665 37189 * internal-fn.c (get_range_pos_neg): Moved to ... 37190 * tree.c (get_range_pos_neg): ... here. No longer static. 37191 * tree.h (get_range_pos_neg): New prototype. 37192 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments 37193 are known to be in between 0 and signed maximum inclusive, try to 37194 expand both unsigned and signed divmod and use the cheaper one from 37195 those. 37196 371972017-02-22 Jeff Law <law@redhat.com> 37198 37199 PR tree-optimization/79578 37200 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p 37201 to compare base operands. 37202 372032017-02-22 Segher Boessenkool <segher@kernel.crashing.org> 37204 37205 PR target/79211 37206 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use 37207 gpc_reg_operand instead of fpr_reg_operand. 37208 372092017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com> 37210 37211 * config/mips/mips.c (mips_return_in_memory): Force FP 37212 vector types to be returned in memory for o32 ABI. 37213 372142017-02-22 Jakub Jelinek <jakub@redhat.com> 37215 37216 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable 37217 instead of DW_TAG_member for static data member declarations and don't 37218 set no_linkage_name for static inline data members. 37219 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable 37220 to DW_TAG_member. 37221 372222017-02-22 Martin Liska <mliska@suse.cz> 37223 37224 * doc/invoke.texi: Replace inequality signs with square brackets 37225 for -Wnormalized. 37226 372272017-02-22 Matthew Fortune <matthew.fortune@imgtec.com> 37228 37229 PR target/78660 37230 * lra-constraints.c (simplify_operand_subreg): Handle 37231 WORD_REGISTER_OPERATIONS targets. 37232 372332017-02-22 Jakub Jelinek <jakub@redhat.com> 37234 37235 PR target/70465 37236 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F)) 37237 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1) 37238 elimination by swapping fld*. 37239 372402017-02-22 Richard Biener <rguenther@suse.de> 37241 37242 PR tree-optimization/79673 37243 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to 37244 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off 37245 irrelevant address-space qualifiers and avoiding a 37246 ADDR_SPACE_CONVERT_EXPR from fold_convert. 37247 372482017-02-22 Richard Biener <rguenther@suse.de> 37249 37250 PR tree-optimization/79666 37251 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure 37252 to not symbolically negate if that may introduce undefined 37253 overflow. 37254 372552017-02-22 Martin Liska <mliska@suse.cz> 37256 37257 PR lto/79587 37258 * data-streamer-in.c (streamer_read_gcov_count): Remove assert. 37259 * data-streamer-out.c (streamer_write_gcov_count_stream): 37260 Likewise. 37261 * value-prof.c (stream_out_histogram_value): Make assert more 37262 precise based on type of counter. 37263 372642017-02-21 Uros Bizjak <ubizjak@gmail.com> 37265 37266 PR target/79593 37267 * config/i386/i386.md (standard_x87sse_constant_load splitter): 37268 Use nonimmediate_operand instead of memory_operand for operand 1. 37269 (float-extend standard_x87sse_constant_load splitter): Ditto. 37270 372712017-02-21 Jeff Law <law@redhat.com> 37272 37273 PR tree-optimization/79621 37274 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore 37275 blocks with edges to themselves. 37276 372772017-02-21 Jakub Jelinek <jakub@redhat.com> 37278 37279 PR target/79633 37280 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use 37281 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL. 37282 Use gimple_call_builtin_p. 37283 37284 PR target/79570 37285 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head 37286 on temporarily removed DEBUG_INSNs. 37287 37288 PR tree-optimization/79649 37289 * tree-loop-distribution.c (classify_partition): Give up on 37290 non-generic address space loads/stores. 37291 372922017-02-21 Aldy Hernandez <aldyh@redhat.com> 37293 37294 * doc/loop.texi (Loop manipulation): Remove nonexistent 37295 tree_ssa_loop_version from the documentation. 37296 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument. 37297 372982017-02-21 Jakub Jelinek <jakub@redhat.com> 37299 37300 PR target/79494 37301 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call 37302 make_reg_eh_region_note_nothrow_nononlocal on call_insn. 37303 * config/rs6000/rs6000.c: Include except.h. 37304 (rs6000_expand_split_stack_prologue): Call 37305 make_reg_eh_region_note_nothrow_nononlocal on the call insn. 37306 373072017-02-21 Martin Jambor <mjambor@suse.cz> 37308 37309 PR lto/79579 37310 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges 37311 have been analyzed. 37312 373132017-02-21 Martin Jambor <mjambor@suse.cz> 37314 37315 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved 37316 for backward compatibility only. 37317 * doc/invoke.texi (Option Summary): Remove all references to 37318 -fipa-cp-alignment. 37319 373202017-02-21 Matthew Fortune <matthew.fortune@imgtec.com> 37321 37322 PR target/78660 37323 Revert: 37324 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> 37325 37326 * lra-constraints.c (curr_insn_transform): Handle 37327 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. 37328 373292017-02-21 Martin Liska <mliska@suse.cz> 37330 37331 * config/i386/i386.opt: Replace -masm-dialect with -masm. 37332 373332017-02-21 Thomas Schwinge <thomas@codesourcery.com> 37334 37335 PR translation/79638 37336 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y". 37337 373382017-02-21 Eric Botcazou <ebotcazou@adacore.com> 37339 37340 PR ada/67205 37341 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. 37342 (arm_function_ok_for_sibcall): Return false for an indirect call by 37343 descriptor if all the argument registers are used. 37344 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the 37345 alignment of the function. 37346 373472017-02-21 Jakub Jelinek <jakub@redhat.com> 37348 37349 PR tree-optimization/61441 37350 * simplify-rtx.c (simplify_const_unary_operation): For 37351 -fsignaling-nans and sNaN operand, return NULL_RTX rather than 37352 the sNaN unmodified. 37353 373542017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 37355 37356 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. 37357 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR 37358 instead of SYSTEM_HEADER_DIR. 37359 373602017-02-20 Gerald Pfeifer <gerald@pfeifer.com> 37361 Martin Liška <mliska@suse.cz> 37362 37363 * doc/invoke.texi (use-after-scope-direct-emission-threshold): 37364 Fix typos and grammar, use active voice, and clarify. 37365 373662017-02-20 Marek Polacek <polacek@redhat.com> 37367 37368 PR middle-end/79537 37369 * gimplify.c (gimplify_expr): Handle unused *&&L;. 37370 37371 PR sanitizer/79558 37372 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null. 37373 373742017-02-20 Jakub Jelinek <jakub@redhat.com> 37375 37376 PR target/79568 37377 * config/i386/i386.c (ix86_expand_builtin): Handle 37378 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in 37379 ix86_builtins_isa[fcode].isa as a requirement of those 37380 flags and any other flag in the bitmask. 37381 (ix86_init_mmx_sse_builtins): Use 0 instead of 37382 ~OPTION_MASK_ISA_64BIT as mask. 37383 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc, 37384 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi, 37385 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi, 37386 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise. 37387 373882017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> 37389 37390 PR target/78012 37391 * lra-constraints.c (split_reg): Check requested split mode 37392 is supported by the register. 37393 373942017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> 37395 37396 * lra-constraints.c (simplify_operand_subreg): Remove early 37397 return false. 37398 373992017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> 37400 37401 PR target/78660 37402 * lra-constraints.c (curr_insn_transform): Tighten condition 37403 for converting SUBREG reloads from OP_OUT to OP_INOUT. 37404 374052017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> 37406 37407 PR target/78660 37408 * lra-constraints.c (curr_insn_transform): Handle 37409 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. 37410 374112017-02-19 Uros Bizjak <ubizjak@gmail.com> 37412 37413 Revert: 37414 2016-05-30 Uros Bizjak <ubizjak@gmail.com> 37415 37416 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)". 37417 374182017-02-19 Jonathan Wakely <jwakely@redhat.com> 37419 37420 PR c++/69523 37421 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update 37422 description. 37423 374242017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 37425 37426 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format 37427 for FMA_EXPR. 37428 374292017-02-18 Jakub Jelinek <jakub@redhat.com> 37430 37431 * final.c (last_columnnum, override_columnnum): New variables. 37432 (final_start_function): Set last_columnnum, pass it to begin_prologue 37433 hook and pass 0 to dwarf2out_begin_prologue. 37434 (final_scan_insn): Update override_columnnum. Pass last_columnnum 37435 to source_line debug hook. 37436 (notice_source_line): Compute last_columnnum and for debug_column_info 37437 return true on column changes. 37438 * debug.h (struct gcc_debug_hooks): Add column argument to 37439 source_line and begin_prologue hooks. 37440 (debug_nothing_int_charstar_int_bool): Remove prototype. 37441 (debug_nothing_int_int_charstar, 37442 debug_nothing_int_int_charstar_int_bool): New prototypes. 37443 (dwarf2out_begin_prologue): Add column argument. 37444 * debug.c (do_nothing_debug_hooks): Adjust source_line and 37445 begin_prologue hooks. 37446 (debug_nothing_int_charstar_int_bool): Remove. 37447 (debug_nothing_int_int_charstar, 37448 debug_nothing_int_int_charstar_int_bool): New functions. 37449 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it 37450 through to dwarf2out_source_line. 37451 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook. 37452 (dwarf2out_source_line): Add column argument, emit it if requested. 37453 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column 37454 arguments. 37455 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise. 37456 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise. 37457 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it 37458 through to dwarf2out_begin_prologue. 37459 (vmsdbgout_source_line): Add column argument, pass it through to 37460 dwarf2out_source_line. 37461 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust 37462 dbxout_source_line caller. 37463 (dbxout_source_line): Add column argument. 37464 37465 * common.opt (gno-column-info, gcolumn-info): New options. 37466 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix. 37467 (check_die): Also test for multiple DW_AT_decl_column attributes. 37468 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add 37469 DW_AT_decl_column if requested. 37470 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column 37471 if requested. 37472 (gen_variable_die): Likewise. 37473 (add_call_src_coords_attributes): Add DW_AT_call_column if requested. 37474 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document. 37475 37476 PR target/79569 37477 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report. 37478 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define. 37479 (ix86_handle_option): Handle OPT_m3dnowa. 37480 * doc/invoke.texi (-m3dnowa): Document. 37481 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use 37482 -m3dnowa instead of -m3dnow -march=athlon. 37483 37484 PR target/79559 37485 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage 37486 instead of gcc_assert for K, r and R code checks. Formatting fixes. 37487 374882017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 37489 37490 PR target/79261 37491 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add 37492 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be. 37493 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call 37494 generator for vsx_xxpermdi_<mode>_be. 37495 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to 37496 force big-endian semantics. 37497 (vsx_xxpermdi_<mode>_be): New define_expand with same 37498 implementation as previous version of vsx_xxpermdi_<mode>. 37499 375002017-02-17 Jakub Jelinek <jakub@redhat.com> 37501 37502 PR tree-optimization/79327 37503 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust 37504 variable, its initialization and use. 37505 375062017-02-17 Julia Koval <julia.koval@intel.com> 37507 37508 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New. 37509 (OPTION_MASK_ISA_PKU_UNSET): New. 37510 (ix86_handle_option): Handle -mrdpid. 37511 * config/i386/cpuid.h (bit_RDPID): New. 37512 * config/i386/driver-i386.c (host_detect_local_cpu): 37513 Detect RDPID feature. 37514 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New. 37515 * config/i386/i386-c.c (ix86_target_macros_internal): 37516 Handle RDPID flag. 37517 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts. 37518 (ix86_valid_target_attribute_inner_p): Add "rdpid". 37519 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. 37520 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New. 37521 * config/i386/i386.md (define_insn "rdpid"): New. 37522 * config/i386/i386.opt Add -mrdpid. 37523 * config/i386/immintrin.h (_rdpid_u32): New. 37524 375252017-02-17 Vladimir Makarov <vmakarov@redhat.com> 37526 37527 PR rtl-optimization/79541 37528 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn 37529 instead of transforming it into USE. 37530 375312017-02-17 Segher Boessenkool <segher@kernel.crashing.org> 37532 37533 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments. 37534 If HONOR_SNANS (SFmode) force the input to a register. 37535 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition. 37536 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates 37537 an frsp or similar insn. 37538 375392017-02-17 Martin Liska <mliska@suse.cz> 37540 37541 PR rtl-optimization/79577 37542 * params.def (selsched-max-sched-times): Increase minimum to 1. 37543 375442017-02-17 Martin Liska <mliska@suse.cz> 37545 37546 PR rtl-optimization/79574 37547 * gcse.c (want_to_gcse_p): Prevent integer overflow. 37548 375492017-02-17 Martin Liska <mliska@suse.cz> 37550 37551 PR tree-optimization/79529 37552 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use 37553 ssa_defined_default_def_p to handle cases which are implicitly 37554 defined. 37555 * tree-ssa.c (ssa_defined_default_def_p): New function. 37556 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases 37557 which are implicitly defined. 37558 * tree-ssa.h (ssa_defined_default_def_p): Declare. 37559 375602017-02-17 Richard Biener <rguenther@suse.de> 37561 37562 PR middle-end/79576 37563 * params.def (max-ssa-name-query-depth): Limit to 10. 37564 375652017-02-17 Richard Biener <rguenther@suse.de> 37566 37567 PR tree-optimization/79552 37568 * tree-ssa-structalias.c (visit_loadstore): Properly verify 37569 default defs. 37570 375712017-02-17 Richard Biener <rguenther@suse.de> 37572 37573 PR bootstrap/79567 37574 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2. 37575 375762017-02-17 Marek Polacek <polacek@redhat.com> 37577 37578 PR middle-end/79536 37579 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr. 37580 (fold_negate_expr): New wrapper. 37581 375822017-02-16 Sandra Loosemore <sandra@codesourcery.com> 37583 37584 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 37585 Correct terminology and de-emphasize pre-standard behavior. 37586 375872017-02-16 Alan Modra <amodra@gmail.com> 37588 37589 PR rtl-optimization/79286 37590 * ira.c (def_dominates_uses): New function. 37591 (update_equiv_regs): Don't create an equivalence for insns that 37592 may trap where the register def does not dominate the use. 37593 375942017-02-16 Vladimir Makarov <vmakarov@redhat.com> 37595 37596 PR rtl-optimization/78127 37597 * lra.c (lra): Call lra_eliminate before finish the loop after 37598 lra_constraint. 37599 376002017-02-16 Richard Biener <rguenther@suse.de> 37601 37602 * graphite.h: Do not include isl/isl_val_gmp.h, instead include 37603 isl/isl_val.h. 37604 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove. 37605 (gcc_expression_from_isl_expr_int): Use generic isl_val interface. 37606 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h. 37607 (isl_val_int_from_wi): New function. 37608 (extract_affine_gmp): Rename to ... 37609 (extract_affine_wi): ... this, take a widest_int. 37610 (extract_affine_int): Just wrap extract_affine_wi. 37611 (add_param_constraints): Use isl_val_int_from_wi. 37612 (add_loop_constraints): Likewise, and extract_affine_wi. 37613 376142017-02-15 Jeff Law <law@redhat.com> 37615 37616 PR middle-end/79521 37617 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling 37618 ira_init_register_move_cost_if_necessary. 37619 376202017-02-15 Martin Sebor <msebor@redhat.com> 37621 37622 PR middle-end/32003 37623 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally 37624 removed in a prior commit. 37625 376262017-02-15 Bin Cheng <bin.cheng@arm.com> 37627 37628 PR tree-optimization/79347 37629 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile 37630 counters during peeling. 37631 376322017-02-15 Thomas Schwinge <thomas@codesourcery.com> 37633 37634 * Makefile.in (site.exp): Remove "set ISLVER". 37635 376362017-02-15 Jakub Jelinek <jakub@redhat.com> 37637 37638 PR target/79487 37639 * real.c (real_from_integer): Call real_convert even for decimal. 37640 376412017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com> 37642 37643 PR target/79421 37644 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS. 37645 376462017-02-14 Andrew Pinski <apinski@cavium.com> 37647 37648 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C" 37649 cores and change the partno/implementer to be correct. 37650 (thunderx2t99p1): New core which replaces thunderx2t99 and still has 37651 the 'B" as the implementer. 37652 * config/aarch64/aarch64-tune.md: Regenerate. 37653 376542017-02-14 Carl Love <cel@us.ibm.com> 37655 37656 * config/rs6000/rs6000.c: Add case statement entry to make the 37657 xvcvuxdsp built-in argument unsigned. 37658 * config/rs6000/vsx.md: Fix the source and return operand types so they 37659 match the instruction definitions from the ISA document. Fix typo 37660 in the instruction generation for the (define_insn "vsx_xvcvuxdsp" 37661 statement. 37662 376632017-02-14 Vladimir Makarov <vmakarov@redhat.com> 37664 37665 PR target/79282 37666 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add 37667 member early_clobber_alts. 37668 * lra-lives.c (reg_early_clobber_p): New. 37669 (process_bb_lives): Use it. 37670 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it. 37671 (debug_operand_data): Initialize early_clobber_alts. 37672 (setup_operand_alternative): Set up early_clobber_alts. 37673 (collect_non_operand_hard_regs): Ditto. Pass early clobber 37674 alternatives to new_insn_reg. 37675 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use 37676 it. 37677 (lra_update_insn_regno_info): Pass the new arg. 37678 376792017-02-14 Jakub Jelinek <jakub@redhat.com> 37680 37681 PR middle-end/79505 37682 * omp-offload.c (free_oacc_loop): Release loop->ifns vector. 37683 (new_oacc_loop_raw): Don't clear already cleared fields. 37684 37685 PR target/79481 37686 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, 37687 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, 37688 _mm512_prefetch_i64gather_ps): New inline functions and macros. 37689 376902017-02-14 Uros Bizjak <ubizjak@gmail.com> 37691 37692 PR target/79495 37693 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative. 37694 376952017-02-14 H.J. Lu <hongjiu.lu@intel.com> 37696 37697 PR target/79498 37698 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert 37699 the extra instruction to the right place to store 128-bit constant 37700 when needed. 37701 377022017-02-14 Martin Sebor <msebor@redhat.com> 37703 37704 PR middle-end/79448 37705 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX 37706 warning for strings of unknown length. 37707 377082017-02-13 Segher Boessenkool <segher@kernel.crashing.org> 37709 37710 * config.gcc (supported_defaults) [powerpc*-*-*]: Update. 37711 377122017-02-14 Jeff Law <law@redhat.com> 37713 37714 PR target/79404 37715 * ira-costs.c (scan_one_insn): Initialize register move costs 37716 for pseudos seen in USE/CLOBBER insns. 37717 37718 PR tree-optimization/79095 37719 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR, 37720 if the numerator has the range ~[0,0] make the resultant range ~[0,0]. 37721 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range, 37722 if the operands are known to be not equal, then the resulting range 37723 is ~[0,0]. 37724 (intersect_ranges): If the new range is ~[0,0] and the old range is 37725 wide, then prefer ~[0,0]. 37726 * tree-vrp.c (overflow_comparison_p_1): New function. 37727 (overflow_comparison_p): New function. 37728 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts 37729 if NAME is used in an overflow test. 37730 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an 37731 overflow check that can be expressed as an equality test, then adjust 37732 ops to be that equality test. 37733 377342017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 37735 37736 * config/s390/s390-builtin-types.def: Remove flags argument. 37737 * config/s390/s390.c (s390_init_builtins): Likewise. 37738 377392017-02-14 Martin Liska <mliska@suse.cz> 37740 37741 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body 37742 vector. Fix trailing white spaces. 37743 377442017-02-14 James Greenhalgh <james.greenhalgh@arm.com> 37745 37746 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle 37747 HFmode. 37748 377492017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 37750 37751 PR rtl-optimization/68664 37752 * config/arm/arm.c (arm_sched_can_speculate_insn): 37753 New function. Declare prototype. 37754 (TARGET_SCHED_CAN_SPECULATE_INSN): Define. 37755 377562017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 37757 37758 PR rtl-optimization/68664 37759 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn): 37760 New function. 37761 (TARGET_SCHED_CAN_SPECULATE_INSN): Define. 37762 377632017-02-14 Amit Pawar <amit.pawar@amd.com> 37764 37765 * config/i386/i386.c (znver1_cost): Fix the alignment for function and 37766 max skip bytes for function, loop and jump. 37767 377682017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 37769 37770 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for 37771 ABS_EXPR for gimple dump. 37772 377732017-02-14 Jakub Jelinek <jakub@redhat.com> 37774 37775 PR target/79462 37776 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4]. 37777 37778 PR tree-optimization/79408 37779 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the 37780 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST. 37781 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges 37782 also if rhs1 is INTEGER_CST. 37783 377842017-02-14 Richard Biener <rguenther@suse.de> 37785 37786 PR middle-end/79432 37787 * tree-into-ssa.c (insert_phi_nodes): When the function can 37788 have abnormal edges rewrite SSA names with broken use-def 37789 dominance out of SSA and register them for PHI insertion. 37790 377912017-02-13 Martin Sebor <msebor@redhat.com> 37792 37793 PR middle-end/79496 37794 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid 37795 clearing info.nowrite flag when snprintf size argument is a range. 37796 377972017-02-13 Jakub Jelinek <jakub@redhat.com> 37798 37799 * cprop.c (cprop_jump): Add missing space in string literal. 37800 * tree-ssa-structalias.c (rewrite_constraints): Likewise. 37801 (get_constraint_for_component_ref): Likewise. 37802 * df-core.c (df_worklist_dataflow_doublequeue): Likewise. 37803 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise. 37804 * lra-constraints.c (process_alt_operands): Likewise. 37805 * ipa-inline.c (inline_small_functions): Likewise. 37806 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise. 37807 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. 37808 * trans-mem.c (diagnose_tm_1_op): Likewise. 37809 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise. 37810 (grid_parallel_clauses_gridifiable): Likewise. 37811 37812 * config/nvptx/mkoffload.c (process): Add space in between 37813 , and %d. 37814 37815 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between 37816 "MOD4_SSE_REGS" and "ALL_REGS". 37817 37818 * spellcheck.c (test_data): Add , in between "foo" and "food". 37819 378202017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 37821 37822 PR target/79449 37823 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime 37824 boundary crossing check and subsequent code generation agree. 37825 378262017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 37827 37828 * config/aarch64/aarch64.c (has_memory_op): Delete. 37829 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of 37830 has_memory_op. 37831 378322017-02-13 Jakub Jelinek <jakub@redhat.com> 37833 37834 PR rtl-optimization/79388 37835 PR rtl-optimization/79450 37836 * combine.c (distribute_notes): When removing TEM_INSN for which 37837 corresponding dest has last value recorded, invalidate that last 37838 value. 37839 378402017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 37841 37842 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead 37843 of explicit '@'. Add missing assembly comment marker on branch costs 37844 printout. 37845 378462017-02-13 Nathan Sidwell <nathan@acm.org> 37847 37848 * gengtype-lex.l (<in_struct>): Add '/'. 37849 378502017-02-13 Martin Liska <mliska@suse.cz> 37851 37852 PR c/79471 37853 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC. 37854 378552017-02-13 Richard Biener <rguenther@suse.de> 37856 37857 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS): 37858 Remove. 37859 * configure: Re-generate. 37860 * config.in: Likewise. 37861 * graphite-dependences.c: Simplify as if 37862 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined. 37863 * graphite-isl-ast-to-gimple.c: Likewise. 37864 * graphite-optimize-isl.c: Likewise. 37865 * graphite-poly.c: Likewise. 37866 * graphite-sese-to-poly.c: Likewise. 37867 * graphite.h: Likewise. 37868 * toplev.c: Include isl/version.h and use isl_version () for 37869 printing the ISL version. 37870 * doc/install.texi: Update ISL requirement. 37871 378722017-02-12 Gerald Pfeifer <gerald@pfeifer.com> 37873 37874 * doc/standards.texi (Standards): Update reference to 37875 Objective-C 2.0. 37876 378772017-02-12 Gerald Pfeifer <gerald@pfeifer.com> 37878 37879 * doc/extend.texi (Named Address Spaces): sourceware.org now 37880 defaults to https. 37881 * doc/install.texi (Binaries): Ditto. 37882 (Specific): Ditto. 37883 378842017-02-11 Sandra Loosemore <sandra@codesourcery.com> 37885 37886 * doc/cpp.texi: Replace "stringify"/"stringification" with C 37887 standard terminology "stringize"/"stringizing" throughout. 37888 * doc/cppinternals.texi: Likewise. 37889 378902017-02-11 Sandra Loosemore <sandra@codesourcery.com> 37891 37892 * doc/extend.texi: Fix some spelling mistakes and typos. 37893 * doc/invoke.texi: Likewise. 37894 378952017-02-11 Jan Hubicka <hubicka@ucw.cz> 37896 37897 PR ipa/79224 37898 * params.def (inline-min-speedup) Change from 10 to 8. 37899 379002017-02-11 Jakub Jelinek <jakub@redhat.com> 37901 37902 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to 37903 4.5. 37904 379052017-02-11 Jan Hubicka <hubicka@ucw.cz> 37906 37907 PR ipa/79224 37908 * ipa-inline-analysis.c (get_minimal_bb): New function. 37909 (record_modified): Use it. 37910 (remap_edge_change_prob): Handle also ancestor functions. 37911 379122017-02-11 Gerald Pfeifer <gerald@pfeifer.com> 37913 37914 * doc/contrib.texi (Contributors): Remove broken link into 37915 the Mauve CVS repository. 37916 379172017-02-11 Jakub Jelinek <jakub@redhat.com> 37918 37919 PR middle-end/79454 37920 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise 37921 result computation whenever lhs doesn't have vector mode, not 37922 just when it has BLKmode. 37923 379242017-02-10 Gerald Pfeifer <gerald@pfeifer.com> 37925 37926 * doc/makefile.texi (profiledbootstrap): Refer to the 37927 installation instructions only in textual form. 37928 379292017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 37930 37931 PR target/79295 37932 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints. 37933 379342017-02-10 Gerald Pfeifer <gerald@pfeifer.com> 37935 37936 * doc/install.texi (Specific): Use https for blackfin.uclinux.org. 37937 (Specific): Update mingw-w64 reference. 37938 (Binaries): Ditto. 37939 (Specific): Remove broken link to Renesas RX processor. 37940 379412017-02-10 Richard Biener <rguenther@suse.de> 37942 37943 * toplev.c (process_options): Do not mention obsolete graphite 37944 options when printing sorry message about missing graphite support. 37945 Mention -floop-nest-optimize. 37946 379472017-02-10 Christophe Lyon <christophe.lyon@linaro.org> 37948 37949 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm. 37950 (vtst_p16): Likewise. 37951 (vtstq_p8): Likewise. 37952 (vtstq_p16): Likewise. 37953 (vtst_p64): New. 37954 (vtstq_p64): Likewise. 37955 * config/arm/arm_neon.h (vgetq_lane_p64): New. 37956 (vset_lane_p64): New. 37957 (vsetq_lane_p64): New. 37958 379592017-02-10 Jakub Jelinek <jakub@redhat.com> 37960 37961 PR tree-optimization/79411 37962 * tree-ssa-reassoc.c (is_reassociable_op): Return false if 37963 stmt operands are SSA_NAMEs used in abnormal phis. 37964 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal 37965 phis. 37966 379672017-02-09 Jan Hubicka <hubicka@ucw.cz> 37968 37969 PR ipa/70795 37970 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible 37971 flag if needed. 37972 379732017-02-09 Jan Hubicka <hubicka@ucw.cz> 37974 37975 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile. 37976 379772017-02-09 Jakub Jelinek <jakub@redhat.com> 37978 37979 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of | 37980 to avoid warning. 37981 37982 PR c/79413 37983 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants, 37984 not arbitrary TREE_CONSTANT. 37985 37986 PR c/79431 37987 * gimplify.c (gimplify_adjust_omp_clauses): Ignore 37988 "omp declare target link" attribute unless is_global_var. 37989 * omp-offload.c (find_link_var_op): Likewise. 37990 379912017-02-09 Nathan Sidwell <nathan@codesourcery.com> 37992 Chung-Lin Tang <cltang@codesourcery.com> 37993 37994 * gimplify.c (gimplify_scan_omp_clauses): No special handling for 37995 OMP_CLAUSE_TILE. 37996 (gimplify_adjust_omp_clauses): Don't delete TILE. 37997 (gimplify_omp_for): Deal with TILE. 37998 * internal-fn.c (expand_GOACC_TILE): New function. 37999 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative. 38000 (GOACC_TILE): New. 38001 * omp-expand.c (struct oacc_collapse): Add tile and outer fields. 38002 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile 38003 element fields. 38004 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling, 38005 avoid DIV for outermost collapse var. 38006 (expand_oacc_for): Insert tile element loop as needed. Adjust. 38007 Remove out of date comments, fix whitespace. 38008 * omp-general.c (omp_extract_for_data): Deal with tiling. 38009 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag, 38010 adjust OLF_DIM_BASE value. 38011 (struct omp_for_data): Add tiling field. 38012 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE. 38013 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels 38014 for auto loops. Remove default auto determining, moved to 38015 oacc_loop_fixed_partitions. 38016 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call 38017 stmts, add e_mask field. 38018 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers. 38019 (oacc_thread_numbers): Use oacc_dim_call. 38020 (oacc_xform_tile): New. 38021 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector. 38022 (finish_oacc_loop): Adjust for ifns vector. 38023 (oacc_loop_discover_walk): Append loop abstraction sites to list, 38024 add case for GOACC_TILE fns. 38025 (oacc_loop_xform_loop): Delete. 38026 (oacc_loop_process): Iterate over call list directly, and add 38027 handling for GOACC_TILE fns. 38028 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE, 38029 dump partitioning. 38030 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but 38031 vector partitioning to outer loops. Assign 2 partitions to loops 38032 when available. Add TILE handling. 38033 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. 38034 (execite_oacc_device_lower): Process GOACC_TILE fns, 38035 ignore unknown specs. 38036 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE. 38037 * tree.c (omp_clause_num_ops): Adjust TILE ops. 38038 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New. 38039 380402017-02-09 Gerald Pfeifer <gerald@pfeifer.com> 38041 38042 * configure.ac (ACX_BUGURL): Update. 38043 * configure: Regenerate. 38044 380452017-02-09 Richard Biener <rguenther@suse.de> 38046 38047 PR tree-optimization/69823 38048 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): 38049 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap. 38050 380512017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> 38052 38053 * config/arc/arc-c.def: Add __NPS400__ definition. 38054 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here. 38055 (TARGET_NPS400): Define. 38056 380572017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> 38058 38059 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in 38060 file. 38061 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t 38062 pointer, arch_info. 38063 (arc_cpu_types): Fill the arch_info field with a pointer into the 38064 arc_arch_types table. 38065 (arc_selected_cpu): Declare. 38066 * config/arc/arc.c (arc_selected_cpu): Make global. 38067 (arc_selected_arch): Delete. 38068 (arc_base_cpu): Delete. 38069 (arc_override_options): Remove references to deleted variables, 38070 update access to arch information. 38071 (ARC_OPT): Update access to arch information. 38072 (ARC_OPTX): Likewise. 38073 * config/arc/arc.h (arc_base_cpu): Remove declaration. 38074 (TARGET_ARC600): Update access to arch information. 38075 (TARGET_ARC601): Likewise. 38076 (TARGET_ARC700): Likewise. 38077 (TARGET_EM): Likewise. 38078 (TARGET_HS): Likewise. 38079 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch 38080 information. 38081 380822017-02-08 Pat Haugen <pthaugen@us.ibm.com> 38083 38084 PR target/78604 38085 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert 38086 condition/operands for integer GE/LE/GEU/LEU operations. 38087 380882017-02-08 Segher Boessenkool <segher@kernel.crashing.org> 38089 38090 PR translation/79397 38091 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling 38092 of AltiVec. 38093 380942017-02-08 Martin Jambor <mjambor@suse.cz> 38095 38096 PR ipa/79375 38097 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool 38098 whether allocation happened. 38099 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if 38100 nothing was allocated. 38101 381022017-02-08 Jakub Jelinek <jakub@redhat.com> 38103 38104 PR tree-optimization/79408 38105 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not 38106 constant, but SSA_NAME with a known integer range, use the minimum 38107 of that range instead of op1 to determine if modulo can be replaced 38108 with its first operand. 38109 381102016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 38111 38112 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX. 38113 381142017-02-08 Richard Biener <rguenther@suse.de> 38115 38116 PR tree-optimization/71824 38117 * graphite-scop-detection.c (scop_detection::build_scop_breadth): 38118 Check all loops contained in the merged region. 38119 381202017-02-07 Andrew Pinski <apinski@cavium.com> 38121 38122 * config/aarch64/aarch64.md (popcount<mode>2): New pattern. 38123 381242017-02-07 Andrew Pinski <apinski@cavium.com> 38125 38126 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE. 38127 (thunderxt88): Likewise. 38128 (thunderxt81): Disable LSE and change v8.1 to v8. 38129 (thunderxt83): Likewise. 38130 381312017-02-07 Jakub Jelinek <jakub@redhat.com> 38132 Richard Biener <rguenther@suse.de> 38133 38134 PR middle-end/79399 38135 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size 38136 type from int to size_t. 38137 * ira-costs.c (struct_costs_size): Change type from int to size_t. 38138 381392017-02-07 Jakub Jelinek <jakub@redhat.com> 38140 38141 PR rtl-optimization/79386 38142 * cprop.c (bypass_conditional_jumps): Initialize 38143 bypass_last_basic_block already before splitting bbs after 38144 unconditional traps... 38145 (bypass_conditional_jumps): ... rather than here. 38146 38147 PR target/79299 38148 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs. 38149 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2, 38150 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them, 38151 fix -masm=intel patterns. 38152 381532017-02-07 Richard Biener <rguenther@suse.de> 38154 38155 PR tree-optimization/79256 38156 PR middle-end/79278 38157 * builtins.c (get_object_alignment_2): Use min_align_of_type 38158 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT 38159 and ADJUST_FIELD_ALIGN. 38160 38161 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional 38162 type parameter. 38163 * doc/tm.texi: Regenerate. 38164 * stor-layout.c (layout_decl): Adjust. 38165 (update_alignment_for_field): Likewise. 38166 (place_field): Likewise. 38167 (min_align_of_type): Likewise. 38168 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust. 38169 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise. 38170 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise. 38171 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise. 38172 * config/frv/frv.c (frv_adjust_field_align): Likewise. 38173 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise. 38174 * config/i386/i386.c (x86_field_alignment): Likewise. 38175 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise. 38176 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise. 38177 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise. 38178 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. 38179 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise. 38180 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): 38181 Likewise. 38182 38183 Revert 38184 2017-01-30 Richard Biener <rguenther@suse.de> 38185 38186 PR tree-optimization/79256 38187 * targhooks.c (default_builtin_vector_alignment_reachable): Honor 38188 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus 38189 alignment on TYPE. 38190 381912017-02-07 Toma Tabacu <toma.tabacu@imgtec.com> 38192 38193 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode 38194 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw 38195 builtins to SImode and emit a zero-extend, if necessary. 38196 381972017-02-06 Palmer Dabbelt <palmer@dabbelt.com> 38198 38199 * docs/invoke.texi (RISC-V Options): Alphabetize. 38200 382012017-02-06 Palmer Dabbelt <palmer@dabbelt.com> 38202 38203 * doc/invoke.texi (RISC-V Options): Use two spaces to separate 38204 options. 38205 382062017-02-06 Palmer Dabbelt <palmer@dabbelt.com> 38207 38208 * config/riscv/riscv.c: New file. 38209 * common/config/riscv/riscv-common.c: Likewise. 38210 * config.gcc: Likewise. 38211 * config/riscv/constraints.md: Likewise. 38212 * config/riscv/elf.h: Likewise. 38213 * config/riscv/generic.md: Likewise. 38214 * config/riscv/linux.h: Likewise. 38215 * config/riscv/multilib-generator: Likewise. 38216 * config/riscv/peephole.md: Likewise. 38217 * config/riscv/pic.md: Likewise. 38218 * config/riscv/predicates.md: Likewise. 38219 * config/riscv/riscv-builtins.c: Likewise. 38220 * config/riscv/riscv-c.c: Likewise. 38221 * config/riscv/riscv-ftypes.def: Likewise. 38222 * config/riscv/riscv-modes.def: Likewise. 38223 * config/riscv/riscv-opts.h: Likewise. 38224 * config/riscv/riscv-protos.h: Likewise. 38225 * config/riscv/riscv.h: Likewise. 38226 * config/riscv/riscv.md: Likewise. 38227 * config/riscv/riscv.opt: Likewise. 38228 * config/riscv/sync.md: Likewise. 38229 * config/riscv/t-elf-multilib: Likewise. 38230 * config/riscv/t-linux: Likewise. 38231 * config/riscv/t-linux-multilib: Likewise. 38232 * config/riscv/t-riscv: Likewise. 38233 * configure.ac: Likewise. 38234 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew 38235 Waterman as RISC-V maintainers. 38236 * doc/install.texi: Add RISC-V entries. 38237 * doc/invoke.texi: Add RISC-V options section. 38238 * doc/md.texi: Add RISC-V constraints section. 38239 * configure: Regenerated. 38240 382412017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> 38242 38243 PR target/66144 38244 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and 38245 false values to be constant vectors with all 0 or all 1 bits set. 38246 (vcondu<mode><mode>): Likewise. 38247 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New 38248 predicate. 38249 (fpmask_comparison_operator): Update comment. 38250 (vecint_comparison_operator): New predicate. 38251 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize 38252 vector conditionals when the true and false values are constant 38253 vectors with all 0 bits or all 1 bits set. 38254 382552017-02-06 Martin Sebor <msebor@redhat.com> 38256 38257 PR tree-optimization/79376 38258 * gimple-fold.c (get_range_strlen): Set the minimum length to zero. 38259 382602017-02-06 Uros Bizjak <ubizjak@gmail.com> 38261 38262 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use 38263 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate 38264 to simplify split condition. 38265 382662017-02-06 Jakub Jelinek <jakub@redhat.com> 38267 38268 * omp-expand.c (oxpand_omp_atomic_fetch_op, 38269 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is 38270 false. 38271 382722017-02-06 Segher Boessenkool <segher@kernel.crashing.org> 38273 38274 PR rtl-optimization/68664 38275 * target.def (can_speculate_insn): New hook. 38276 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook. 38277 * doc/tm.texi: Regenerate. 38278 * sched-rgn.c (can_schedule_ready_p): Use the new hook. 38279 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro. 38280 (rs6000_sched_can_speculate_insn): New function. 38281 382822017-02-06 Jakub Jelinek <jakub@redhat.com> 38283 38284 PR tree-optimization/79284 38285 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define. 38286 * tree-vect-stmts.c (vect_get_vec_def_for_operand, 38287 vectorizable_mask_load_store, vectorizable_operation, 38288 vect_is_simple_cond, get_same_sized_vectype): Use it instead 38289 of comparing TREE_CODE of a type against BOOLEAN_TYPE. 38290 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1, 38291 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise. 38292 * tree-vect-slp.c (vect_get_constant_vectors): Likewise. 38293 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 38294 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after 38295 is_gimple_assign (stmt). Replace another such test with 38296 is_gimple_assign (stmt). 38297 382982017-02-06 Georg-Johann Lay <avr@gjlay.de> 38299 38300 PR target/78883 38301 * config/avr/avr.c (rtl-iter.h): Include it. 38302 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define... 38303 (avr_legitimate_combined_insn): ...and implementation. 38304 383052017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com> 38306 38307 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h. 38308 * config/s390/s390.c (s390_const_operand_ok) 38309 (s390_canonicalize_comparison, s390_extract_part) 38310 (s390_single_part, s390_contiguous_bitmask_nowrap_p) 38311 (s390_contiguous_bitmask_p, s390_rtx_costs) 38312 (legitimize_pic_address): Likewise. 38313 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise. 38314 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi") 38315 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>") 38316 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT. 38317 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise. 38318 383192017-02-06 Georg-Johann Lay <avr@gjlay.de> 38320 38321 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where 38322 REGNO($0) == REGNO($1). 38323 383242017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 38325 38326 * config/s390/linux.h(SIZE_TYPE): Add comment. 38327 383282017-02-06 Julian Brown <julian@codesourcery.com> 38329 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 38330 Virendra Pathak <virendra.pathak@broadcom.com> 38331 38332 * config/aarch64/aarch64-cores.def: Change the scheduler 38333 to Thunderx2t99. 38334 * config/aarch64/aarch64.md: Include thunderx2t99.md. 38335 * config/aarch64/thunderx2t99.md: New file. 38336 383372017-02-05 Gerald Pfeifer <gerald@pfeifer.com> 38338 38339 * doc/standards.texi (Go Language): Update link to language 38340 standard. 38341 383422017-02-05 Jan Hubicka <hubicka@ucw.cz> 38343 38344 * tree-eh.c (lower_resx): Sanitize profile. 38345 (cleanup_empty_eh_move_lp): Likewise. 38346 383472017-02-05 Jan Hubicka <hubicka@ucw.cz> 38348 38349 PR tree-ssa/79347 38350 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add 38351 ELSE_PROB. 38352 * cfgloopmanip.h (loop_version): Update prototype. 38353 * modulo-sched.c (sms_schedule): Update call of loop_version. 38354 * tree-if-conv.c(version_loop_for_if_conversion): Likewise. 38355 * tree-parloops.c (gen_parallel_loop): Likewise. 38356 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise. 38357 * tree-ssa-loop-split.c (split_loop): Likewise. 38358 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise. 38359 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. 38360 383612017-02-05 Martin Liska <mliska@suse.cz> 38362 38363 PR bootstrap/78985 38364 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local 38365 variable to NULL. 38366 (print_operand_address): Initialize a struct to zero. 38367 383682017-02-05 Gerald Pfeifer <gerald@pfeifer.com> 38369 38370 * doc/contrib.texi (Contributors): Refer to Hans Boehm's 38371 garbage collector only in textual form. 38372 383732017-02-05 Gerald Pfeifer <gerald@pfeifer.com> 38374 38375 * doc/extend.texi (x86 specific memory model extensions for 38376 transactional memory): Simplify a phrase. 38377 383782017-02-05 Eric Botcazou <ebotcazou@adacore.com> 38379 38380 PR target/79353 38381 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with 38382 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32. 38383 (atomic_storedi_1): Likewise. 38384 383852017-02-04 Jakub Jelinek <jakub@redhat.com> 38386 38387 PR tree-optimization/79338 38388 * tree-parloops.c (gather_scalar_reductions): Don't call 38389 vect_analyze_loop_form for loop->inner before destroying loop's 38390 loop_vinfo. 38391 383922017-02-03 Martin Sebor <msebor@redhat.com> 38393 38394 PR tree-optimization/79327 38395 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix 38396 when precision has resulted in leading zeros. 38397 (format_integer): Adjust the likely counter to assume an unknown 38398 argument that may be zero is non-zero. 38399 384002017-02-03 Jason Merrill <jason@redhat.com> 38401 38402 PR c++/78689 38403 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to 38404 avoid copying non-taken branch. 38405 384062017-02-03 Jakub Jelinek <jakub@redhat.com> 38407 38408 PR tree-optimization/79340 38409 * tree-vect-loop.c (vectorizable_reduction): Release 38410 vec_defs elements after safe_splicing them into other vectors. 38411 Formatting fixes. 38412 38413 PR tree-optimization/79327 38414 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning 38415 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of 38416 dirtype. 38417 (format_integer): Use wide_int_to_tree instead of build_int_cst 38418 + to_?hwi. If argmin is NULL, just set argmin and argmax to 38419 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation 38420 of shortest and longest sequence. 38421 384222017-02-03 Uros Bizjak <ubizjak@gmail.com> 38423 38424 * config/i386/i386.c (dimode_scalar_chain::convert_reg): 38425 Use pextrd for TARGET_SSE4_1 when creating scalar copy. 38426 384272017-02-03 Walter Lee <walt@tilera.com> 38428 38429 PR target/78862 38430 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage 38431 after initial stackframe link reg save. 38432 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise. 38433 384342017-02-03 Jakub Jelinek <jakub@redhat.com> 38435 38436 PR target/79354 38437 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of 38438 wu for stxssp alternative. 38439 384402017-02-03 Martin Sebor <msebor@redhat.com> 38441 38442 PR tree-optimization/79352 38443 * gimple-fold.c (get_range_strlen): Add argument. 38444 (get_range_strlen): Change return type to bool. 38445 (get_maxval_strlen): Pass in a dummy argument. 38446 * gimple-fold.h (get_range_strlen): Change return type to bool. 38447 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter. 38448 * tree.h (array_at_struct_end_p): Add argument. 38449 * tree.c (array_at_struct_end_p): Handle it. 38450 384512017-02-03 Martin Liska <mliska@suse.cz> 38452 38453 PR lto/66295 38454 * multiple_target.c (create_dispatcher_calls): Redirect edge 38455 from a caller of a dispatcher. 38456 (expand_target_clones): Make the clones local. 38457 (ipa_target_clone): Do both target clones and resolvers. 38458 (ipa_dispatcher_calls): Remove the pass. 38459 (pass_dispatcher_calls::gate): Likewise. 38460 (make_pass_dispatcher_calls): Likewise. 38461 * passes.def (pass_target_clone): Put as very first IPA early 38462 pass. 38463 384642017-02-03 Martin Liska <mliska@suse.cz> 38465 38466 * symtab.c (symtab_node::binds_to_current_def_p): Bail out 38467 in case of a function with ifunc attribute. 38468 384692017-02-03 Martin Liska <mliska@suse.cz> 38470 38471 * cgraph.c (cgraph_node::dump): Dump function version info. 38472 * symtab.c (symtab_node::dump_base): Add missing new line. 38473 384742017-02-02 Jan Hubicka <hubicka@ucw.cz> 38475 38476 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function. 38477 (ifcombine_ifandif): Use it. 38478 384792017-02-03 Martin Liska <mliska@suse.cz> 38480 38481 * doc/invoke.texi: Document default value for 38482 use-after-scope-direct-emission-threshold. 38483 384842017-02-03 Martin Liska <mliska@suse.cz> 38485 38486 PR tree-optimization/79339 38487 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear. 38488 (format_floating): Likewise. 38489 384902017-02-03 Martin Liska <mliska@suse.cz> 38491 38492 PR ipa/79337 38493 * ipa-prop.c (ipa_node_params_t::insert): Remove current 38494 implementation. 38495 (ipa_node_params_t::remove): Likewise. 38496 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default 38497 initialization from removed ipa_node_params_t::insert. 38498 (ipa_node_params::~ipa_node_params): Move from removed 38499 ipa_node_params_t::release. 38500 * symbol-summary.h (symbol_summary::m_released): New member. 38501 Do not release a summary twice. Do not allow to call finalizer 38502 for types of a summary that live in GGC memory. 38503 385042017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com> 38505 38506 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and 38507 cmp_branch fusion. 38508 385092017-02-02 Martin Sebor <msebor@redhat.com> 38510 38511 PR middle-end/79275 38512 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero. 38513 (format_string): Tighten up the range of output for non-constant 38514 strings and correct the expected range for wide non-constant strings. 38515 385162017-02-02 Martin Sebor <msebor@redhat.com> 38517 38518 * doc/invoke.texi (-maccumulate-args): Fix bad grammar. 38519 38520 PR middle-end/32003 38521 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from 38522 index. 38523 (-fdump-tree-@var): Add to index and document how to come up 38524 with pass-specific option and dump file names. 38525 (-fdump-passes): Clarify where to look for output. 38526 385272017-02-02 Jan Hubicka <hubicka@ucw.cz> 38528 38529 PR middle-end/77445 38530 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump 38531 statistics of the analyzed path; allow threading for speed when 38532 any of BBs along the path are optimized for speed. 38533 385342017-02-02 Eric Botcazou <ebotcazou@adacore.com> 38535 38536 PR middle-end/78468 38537 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment 38538 settings of the virtual registers. 38539 38540 Revert again 38541 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> 38542 38543 * explow.c (get_dynamic_stack_size): Take known alignment of stack 38544 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size 38545 needed. 38546 385472017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 38548 38549 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor") 38550 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders. 38551 385522017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 38553 38554 * config/s390/s390.md: Add missing comments with the expanded 38555 mnemonics. 38556 * config/s390/vector.md: Likewise. 38557 * config/s390/vx-builtins.md: Likewise. 38558 385592017-02-02 Jakub Jelinek <jakub@redhat.com> 38560 38561 PR target/79197 38562 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ... 38563 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all 38564 conditions on a single line. 38565 385662017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 38567 38568 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename 38569 __S390_VX__ to __VX__. 38570 385712017-02-01 Andrew Pinski <apinski@cavium.com> 38572 38573 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass 38574 stmt_info to record_stmt_cost. 38575 (vect_get_known_peeling_cost): Pass stmt_info if known to 38576 record_stmt_cost. 38577 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split 38578 cpu_vector_cost field into 38579 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost 38580 field into vec_int_stmt_cost and vec_fp_stmt_cost. 38581 * config/aarch64/aarch64.c (generic_vector_cost): Update for the 38582 splitting of scalar_stmt_cost and vec_stmt_cost. 38583 (thunderx_vector_cost): Likewise. 38584 (cortexa57_vector_cost): LIkewise. 38585 (exynosm1_vector_cost): Likewise. 38586 (xgene1_vector_cost): Likewise. 38587 (thunderx2t99_vector_cost): Improve after the splitting of the two 38588 fields. 38589 (aarch64_builtin_vectorization_cost): Update for the splitting of 38590 scalar_stmt_cost and vec_stmt_cost. 38591 385922017-02-01 Torvald Riegel <triegel@redhat.com> 38593 Richard Henderson <rth@redhat.com> 38594 38595 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free" 38596 conditional on existance of a fast atomic load. 38597 * optabs-query.c (can_atomic_load_p): New function. 38598 * optabs-query.h (can_atomic_load_p): Declare it. 38599 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if 38600 no fast atomic load is available for the particular size of access. 38601 (expand_atomic_compare_and_swap): Likewise. 38602 (expand_atomic_load): Likewise. 38603 (expand_atomic_store): Likewise. 38604 (expand_atomic_fetch_op): Likewise. 38605 * testsuite/lib/target-supports.exp 38606 (check_effective_target_sync_int_128): Remove x86 because it provides 38607 no fast atomic load. 38608 (check_effective_target_sync_int_128_runtime): Likewise. 38609 386102017-02-01 Richard Biener <rguenther@suse.de> 38611 38612 * graphite.c: Include tree-vectorizer.h for find_loop_location. 38613 (graphite_transform_loops): Provide opt-info for optimized nests. 38614 * tree-parloop.c (parallelize_loops): Provide opt-info for 38615 parallelized loops. 38616 386172017-02-01 Richard Biener <rguenther@suse.de> 38618 38619 PR middle-end/79315 38620 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it 38621 was not set before. 38622 386232017-02-01 Richard Biener <rguenther@suse.de> 38624 38625 PR tree-optimization/71824 38626 * graphite-scop-detection.c (scop_detection::build_scop_breadth): 38627 Verify the loops are valid in the merged SESE region. 38628 (scop_detection::can_represent_loop_1): Check analyzing the 38629 evolution of the number of iterations in the region succeeds. 38630 386312017-01-31 Ian Lance Taylor <iant@golang.org> 38632 38633 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add 38634 REG_ARGS_SIZE note to 32-bit push insns and call insn. 38635 386362017-01-31 David Malcolm <dmalcolm@redhat.com> 38637 38638 PR preprocessor/79210 38639 * input.c (get_substring_ranges_for_loc): Replace line_width 38640 assertion with error-handling. 38641 386422017-01-31 Richard Biener <rguenther@suse.de> 38643 38644 PR tree-optimization/77318 38645 * graphite-sese-to-poly.c (extract_affine): Fix assert. 38646 (create_pw_aff_from_tree): Take loop parameter. 38647 (add_condition_to_pbb): Pass loop of the condition to 38648 create_pw_aff_from_tree. 38649 386502017-01-31 Jakub Jelinek <jakub@redhat.com> 38651 38652 * config/s390/s390.c (s390_asan_shadow_offset): New function. 38653 (TARGET_ASAN_SHADOW_OFFSET): Redefine. 38654 386552017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com> 38656 38657 PR target/78597 38658 PR target/79038 38659 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete, 38660 no longer used. 38661 (convert_int_to_float128): Likewise. 38662 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise. 38663 (convert_int_to_float128): Likewise. 38664 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise. 38665 (UNSPEC_IEEE128_CONVERT): Likewise. 38666 (floatsi<mode>2, FLOAT128 iterator): Bypass calling 38667 rs6000_expand_float128_convert if we have IEEE 128-bit hardware. 38668 Use local variables for IBM extended format. 38669 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise. 38670 (fix_trunc<mode>si2_fprs): Likewise. 38671 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. 38672 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise. 38673 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support 38674 to know that we can now have integers of all sizes in vector 38675 registers. 38676 (fix<uns>_<mode>di2_hw): Likewise. 38677 (float<uns>_<mode>si2_hw): Likewise. 38678 (fix_<mode>si2_hw): Likewise. 38679 (fixuns_<mode>si2_hw): Likewise. 38680 (float<uns>_<mode>di2_hw): Likewise. 38681 (float_<mode>di2_hw): Likewise. 38682 (float_<mode>si2_hw): Likewise. 38683 (floatuns_<mode>di2_hw): Likewise. 38684 (floatuns_<mode>si2_hw): Likewise. 38685 (xscvqp<su>wz_<mode>): Delete, no longer used. 38686 (xscvqp<su>dz_<mode>): Likewise. 38687 (xscv<su>dqp_<mode>): Likewise. 38688 (ieee128_mfvsrd_64bit): Likewise. 38689 (ieee128_mfvsrd_32bit): Likewise. 38690 (ieee128_mfvsrwz): Likewise. 38691 (ieee128_mtvsrw): Likewise. 38692 (ieee128_mtvsrd_64bit): Likewise. 38693 (ieee128_mtvsrd_32bit): Likewise. 38694 386952017-01-31 Martin Liska <mliska@suse.cz> 38696 38697 PR ipa/79285 38698 * ipa-prop.c (ipa_free_all_node_params): Call release method 38699 instead of ~sumbol_summary to not to trigger double times 38700 dtor of hash_map. 38701 387022017-01-31 Aldy Hernandez <aldyh@redhat.com> 38703 38704 PR tree-optimization/71691 38705 * bitmap.h (class auto_bitmap): New. 38706 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call 38707 is_maybe_undefined instead of ssa_undefined_value_p. 38708 387092017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 38710 38711 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename 38712 __S390_ARCH_LEVEL__ to __ARCH__. 38713 387142017-01-31 Jakub Jelinek <jakub@redhat.com> 38715 38716 PR tree-optimization/79267 38717 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls 38718 if should_remove_lhs_p is true. 38719 387202017-01-30 Alexandre Oliva <aoliva@redhat.com> 38721 38722 PR debug/63238 38723 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment. 38724 (add_alignment_attribute): New. 38725 (base_type_die): Add alignment attribute. 38726 (subrange_type_die): Likewise. 38727 (modified_type_die): Likewise. 38728 (gen_array_type_die): Likewise. 38729 (gen_descr_array_type_die: Likewise. 38730 (gen_enumeration_type_die): Likewise. 38731 (gen_subprogram_die): Likewise. 38732 (gen_variable_die): Likewise. 38733 (gen_field_die): Likewise. 38734 (gen_ptr_to_mbr_type_die): Likewise. 38735 (gen_struct_or_union_type_die): Likewise. 38736 (gen_subroutine_type_die): Likewise. 38737 (gen_typedef_die): Likewise. 38738 (base_type_cmp): Compare alignment attribute. 38739 387402017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 38741 38742 PR target/79170 38743 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed. 38744 (setb_unsigned) New pattern for setb with CCUNS. 38745 * config/rs6000/rs6000.c (expand_block_compare): Use a different 38746 subfc./subfe sequence to avoid overflow problems. Generate a 38747 shorter sequence with cmpld/setb for power9. 38748 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern 38749 for generating subfc. instruction. 38750 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence 38751 now uses this instruction. 38752 387532017-01-30 Ian Lance Taylor <iant@google.com> 38754 38755 PR debug/79289 38756 * dwarf2out.c (gen_type_die_with_usage): When picking a variant 38757 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one. 38758 387592017-01-30 Martin Sebor <msebor@redhat.com> 38760 38761 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision): 38762 Move constant to the right of a relational operator. 38763 (get_mpfr_format_length, format_character, format_string): Ditto. 38764 (should_warn_p, maybe_warn): Same. 38765 38766 * doc/invoke.texi (-Wformat-truncation=1): Fix typo. 38767 387682017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com> 38769 38770 PR lto/79061 38771 * asan.c (get_translation_unit_decl): Remove function. 38772 (asan_add_global): Force has_dynamic_init to zero in LTO mode. 38773 387742017-01-30 Martin Liska <mliska@suse.cz> 38775 38776 PR gcov-profile/79259 38777 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/ 38778 -fprofile-generate. 38779 387802017-01-30 Martin Liska <mliska@suse.cz> 38781 38782 PR bootstrap/78985 38783 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze): 38784 Initialize variables with NULL value. 38785 387862017-01-30 Richard Earnshaw <rearnsh@arm.com> 38787 38788 PR target/79260 38789 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to 38790 tm_p_file. 38791 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h. 38792 387932017-01-30 Richard Biener <rguenther@suse.de> 38794 38795 PR tree-optimization/79276 38796 * tree-vrp.c (process_assert_insertions): Properly adjust common 38797 when removing a duplicate. 38798 387992017-01-30 Richard Biener <rguenther@suse.de> 38800 38801 PR tree-optimization/79256 38802 * targhooks.c (default_builtin_vector_alignment_reachable): Honor 38803 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus 38804 alignment on TYPE. 38805 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN. 38806 388072017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com> 38808 38809 PR target/79240 38810 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask") 38811 ("*r<noxa>sbg_<mode>_sll_bitmask") 38812 ("*extzv_<mode>_srl<clobbercc_or_nocc>") 38813 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): 38814 Use contiguous_bitmask_nowrap_operand. 38815 388162017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 38817 38818 PR target/79268 38819 * config/rs6000/altivec.h (vec_xl): Revise #define. 38820 (vec_xst): Likewise. 38821 388222017-01-27 Uros Bizjak <ubizjak@gmail.com> 38823 38824 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum. 38825 388262017-01-27 Bernd Schmidt <bschmidt@redhat.com> 38827 38828 PR rtl-optimization/79194 38829 * cprop.c (one_cprop_pass): Move deletion of code after unconditional 38830 traps before call to bypass_conditional_jumps. 38831 388322017-01-27 Vladimir Makarov <vmakarov@redhat.com> 38833 38834 PR tree-optimization/71374 38835 * lra-constraints.c (check_conflict_input_operands): New. 38836 (match_reload): Use it. 38837 388382017-01-27 Vladimir Makarov <vmakarov@redhat.com> 38839 38840 PR target/79131 38841 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into 38842 account to calculate conflict_set. 38843 388442017-01-27 Bin Cheng <bin.cheng@arm.com> 38845 38846 PR rtl-optimization/78559 38847 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for 38848 other_insn in combine. 38849 388502017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> 38851 38852 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use 38853 uint16_type_node for BT_UINT16. 38854 388552017-01-27 David Malcolm <dmalcolm@redhat.com> 38856 38857 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and 38858 "RTL Tests" to menu. 38859 (GIMPLE Tests): New node. 38860 (RTL Tests): New node. 38861 388622017-01-27 Richard Biener <rguenther@suse.de> 38863 38864 PR tree-optimization/79245 38865 * tree-loop-distribution.c (distribute_loop): Apply cost 38866 modeling also to detected patterns. 38867 388682017-01-27 Richard Biener <rguenther@suse.de> 38869 38870 PR tree-optimization/71433 38871 * tree-vrp.c (register_new_assert_for): Revert earlier changes. 38872 (compare_assert_loc): New function. 38873 (process_assert_insertions): Sort and optimize assert locations 38874 to remove duplicates and push down identical assertions on 38875 edges to their destination block. 38876 388772017-01-27 Richard Biener <rguenther@suse.de> 38878 38879 PR tree-optimization/79244 38880 * tree-vrp.c (remove_range_assertions): Forcefully propagate 38881 out SSA names even if abnormal. 38882 388832017-01-27 Jakub Jelinek <jakub@redhat.com> 38884 38885 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}. 38886 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN 38887 instead of MPFR_RNDN. 38888 388892017-01-27 Richard Earnshaw <rearnsha@arm.com> 38890 38891 PR target/79239 38892 * arm.c (arm_option_override): Don't call build_target_option_node 38893 until after doing all option overrides. 38894 (arm_valid_target_attribute_tree): Likewise. 38895 388962017-01-27 Martin Liska <mliska@suse.cz> 38897 38898 * doc/invoke.texi (-fprofile-arcs): Document profiling support 38899 for {cd}tors and C++ {cd}tors. 38900 389012017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com> 38902 38903 * config/s390/s390.md ("*setmem_long_and") 38904 ("*setmem_long_and_31z"): Use zero_extend instead of and. 38905 389062017-01-26 Martin Sebor <msebor@redhat.com> 38907 38908 * gimple-ssa-sprintf.c (format_floating): Simplify the computation 38909 of precision. 38910 389112017-01-26 Martin Sebor <msebor@redhat.com> 38912 38913 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and 38914 HAVE_DFmode before using XFmode or DFmode. 38915 (parse_directive): Avoid using the z length modifier to avoid 38916 the ISO C++98 does not support the ‘z’ gnu_printf length modifier. 38917 38918 PR middle-end/78703 38919 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change 38920 to accept adjustment as an array. 38921 (get_int_range): New function. 38922 (struct directive): Make width and prec arrays. 38923 (directive::set_width, directive::set_precision): Call get_int_range. 38924 (format_integer, format_floating): Handle width and precision ranges. 38925 (format_string, parse_directive): Same. 38926 389272017-01-26 Jakub Jelinek <jakub@redhat.com> 38928 38929 PR debug/79129 38930 * dwarf2out.c (generate_skeleton_bottom_up): For children with 38931 comdat_type_p set, just clone them, but keep the children in the 38932 original DIE. 38933 38934 PR debug/78835 38935 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs 38936 which have direct callers with -fvar-tracking-assignments enabled 38937 in the current TU. 38938 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin 38939 inside of type units. 38940 389412017-01-26 Martin Sebor <msebor@redhat.com> 38942 38943 PR middle-end/78703 38944 * gimple-ssa-sprintf.c (struct result_range): Add likely and 38945 unlikely counters. 38946 (struct format_result): Replace number_chars, number_chars_min, 38947 and number_chars_max with a single member of struct result_range. 38948 Remove bounded. 38949 (format_result::operator+=): Adjust. 38950 (struct fmtresult): Remove bounded. Handle likely and unlikely 38951 counters. 38952 (fmtresult::adjust_for_width_or_precision): New function. 38953 (fmtresult:type_max_digits): New function. 38954 (bytes_remaining): Handle likely and unlikely counters. 38955 (min_bytes_remaining): Remove. 38956 (format_percent): Simplify. 38957 (format_integer, format_floating): Set likely and unlikely counters. 38958 (get_string_length, format_character, format_string): Same. 38959 (format_plain, should_warn_p): New function. 38960 (maybe_warn): Call should_warn_p. Update diagnostic messages 38961 and handle those for all directives, including plain strings. 38962 (format_directive): Handle likely and unlikely counters. 38963 Remove unnecessary quoting from diagnostics. Add an informational 38964 note. 38965 (add_bytes): Remove. 38966 (pass_sprintf_length::compute_format_length): Simplify. 38967 (try_substitute_return_value): Handle likely and unlikely counters. 38968 389692017-01-26 Carl Love <cel@us.ibm.com> 38970 38971 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove 38972 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins 38973 389742017-01-26 Vladimir Makarov <vmakarov@redhat.com> 38975 38976 PR target/79131 38977 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take 38978 endianess for subregs into account. 38979 * lra-constraints.c (lra_constraints): Do risky transformations 38980 always on the first iteration. 38981 * lra-lives.c (check_pseudos_live_through_calls): Add arg 38982 last_call_used_reg_set. 38983 (process_bb_lives): Define and use last_call_used_reg_set. 38984 * lra.c (lra): Always continue after lra_constraints on the first 38985 iteration. 38986 389872017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com> 38988 38989 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long 38990 constant. 38991 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto. 38992 389932017-01-26 Jakub Jelinek <jakub@redhat.com> 38994 38995 * config/i386/avx512fintrin.h (_ktest_mask16_u8, 38996 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ... 38997 * config/i386/avx512dqintrin.h (_ktest_mask16_u8, 38998 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here. 38999 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi, 39000 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use 39001 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F. 39002 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator. 39003 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ. 39004 390052017-01-26 Marek Polacek <polacek@redhat.com> 39006 39007 PR c/79199 39008 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL 39009 for the third operand. 39010 390112017-01-26 Jakub Jelinek <jakub@redhat.com> 39012 39013 PR middle-end/79236 39014 * omp-low.c (struct omp_context): Add simt_stmt field. 39015 (scan_omp_for): Return omp_context *. 39016 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD 39017 context to the _simt_ SIMD stmt. 39018 (lower_omp_for): For combined SIMD with sibling _simt_ 39019 SIMD, make sure to use the same decls in _looptemp_ 39020 clauses as in the sibling. 39021 390222017-01-26 David Sherwood <david.sherwood@arm.com> 39023 39024 PR middle-end/79212 39025 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in 39026 all contexts. 39027 390282017-01-26 Jakub Jelinek <jakub@redhat.com> 39029 39030 PR target/70465 39031 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1); 39032 emit fld b; fld a; if possible. 39033 39034 * brig-builtins.def: Update copyright years. 39035 * config/arm/arm_acle_builtins.def: Update copyright years. 39036 390372017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com> 39038 39039 PR target/79179 39040 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY 39041 constraint instead of o for the stxsd instruction. 39042 390432017-01-25 Carl Love <cel@us.ibm.com> 39044 39045 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order 39046 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD. 39047 390482017-01-25 Jonathan Wakely <jwakely@redhat.com> 39049 39050 * doc/invoke.texi (C++ Dialect Options): Fix typo. 39051 390522017-01-25 Richard Biener <rguenther@suse.de> 39053 39054 PR tree-optimization/69264 39055 * target.def (vector_alignment_reachable): Improve documentation. 39056 * doc/tm.texi: Regenerate. 39057 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify 39058 and add a comment. 39059 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert 39060 earlier changes with respect to TYPE_USER_ALIGN. 39061 (vector_alignment_reachable_p): Likewise. Improve dumping. 39062 390632016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 39064 39065 PR target/79145 39066 * config/arm/arm.md (xordi3): Force constant operand into a register 39067 for TARGET_IWMMXT. 39068 390692016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 39070 39071 * doc/invoke.texi (-fstore-merging): Correct default optimization 39072 levels at which it is enabled. 39073 (-O): Move -fstore-merging from list to... 39074 (-O2): ... Here. 39075 390762017-01-25 Richard Biener <rguenther@suse.de> 39077 39078 PR debug/78363 39079 * omp-expand.c: Include debug.h. 39080 (expand_omp_taskreg): Make sure to generate early debug before 39081 outlining anything from a function. 39082 (expand_omp_target): Likewise. 39083 (grid_expand_target_grid_body): Likewise. 39084 390852017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> 39086 39087 PR lto/79061 39088 * asan.c (get_translation_unit_decl): New function. 39089 (asan_add_global): Extract modules file name from globals 39090 TRANSLATION_UNIT_DECL name. 39091 390922017-01-24 Eric Botcazou <ebotcazou@adacore.com> 39093 39094 PR target/77439 39095 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction 39096 for long calls with APCS frame and VFP. 39097 390982017-01-24 David Malcolm <dmalcolm@redhat.com> 39099 39100 * cfg.c (original_copy_tables_initialized_p): New function. 39101 * cfg.h (original_copy_tables_initialized_p): New decl. 39102 * cfgrtl.c (relink_block_chain): Guard the call to 39103 free_original_copy_tables with a call to 39104 original_copy_tables_initialized_p. 39105 * cgraph.h (symtab_node::native_rtl_p): New decl. 39106 * cgraphunit.c (symtab_node::native_rtl_p): New function. 39107 (symtab_node::needed_p): Don't assert for early assembly output 39108 for __RTL functions. 39109 (cgraph_node::finalize_function): Set "force_output" for __RTL 39110 functions. 39111 (cgraph_node::analyze): Bail out early for __RTL functions. 39112 (analyze_functions): Update assertion to support __RTL functions. 39113 (cgraph_node::expand): Bail out early for __RTL functions. 39114 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for 39115 __RTL functions. 39116 * function.h (struct function): Update comment for field 39117 "pass_startwith". 39118 * gimple-expr.c: Include "tree-pass.h". 39119 (gimple_has_body_p): Return false for __RTL functions. 39120 * Makefile.in (OBJS): Add run-rtl-passes.o. 39121 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New 39122 accessor. 39123 (gcc::pass_manager::get_clean_slate): New accessor. 39124 * passes.c: Include "insn-addr.h". 39125 (should_skip_pass_p): Add logging. Update logic for running 39126 "expand" to be compatible with both __GIMPLE and __RTL. Guard 39127 property-provider override so it is only done for gimple passes. 39128 Don't skip dfinit. 39129 (skip_pass): New function. 39130 (execute_one_pass): Call skip_pass when skipping passes. 39131 * read-md.c (md_reader::read_char): Support filtering 39132 the input to a subset of line numbers. 39133 (md_reader::md_reader): Initialize fields 39134 m_first_line and m_last_line. 39135 (md_reader::read_file_fragment): New function. 39136 * read-md.h (md_reader::read_file_fragment): New decl. 39137 (md_reader::m_first_line): New field. 39138 (md_reader::m_last_line): New field. 39139 * read-rtl-function.c (function_reader::create_function): Only 39140 create cfun if it doesn't already exist. Set PROP_rtl on cfun's 39141 curr_properties. Set DECL_INITIAL to a dummy block. 39142 (read_rtl_function_body_from_file_range): New function. 39143 * read-rtl-function.h (read_rtl_function_body_from_file_range): 39144 New decl. 39145 * run-rtl-passes.c: New file. 39146 * run-rtl-passes.h: New file. 39147 391482017-01-24 Jeff Law <law@redhat.com> 39149 39150 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase 39151 buffer size. 39152 391532017-01-24 Bin Cheng <bin.cheng@arm.com> 39154 39155 PR tree-optimization/79159 39156 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function. 39157 (record_nonwrapping_iv): Improve boundary using above function if no 39158 value range information. 39159 391602017-01-24 Pekka Jääskeläinen <pekka@parmance.com> 39161 Martin Jambor <mjambor@suse.cz> 39162 39163 * brig-builtins.def: New file. 39164 * builtins.def (DEF_HSAIL_BUILTIN): New macro. 39165 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. 39166 (DEF_HSAIL_SAT_BUILTIN): Likewise. 39167 (DEF_HSAIL_INTR_BUILTIN): Likewise. 39168 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. 39169 * builtin-types.def (BT_INT8): New. 39170 (BT_INT16): Likewise. 39171 (BT_UINT8): Likewise. 39172 (BT_UINT16): Likewise. 39173 (BT_FN_ULONG): Likewise. 39174 (BT_FN_UINT_INT): Likewise. 39175 (BT_FN_UINT_ULONG): Likewise. 39176 (BT_FN_UINT_LONG): Likewise. 39177 (BT_FN_UINT_PTR): Likewise. 39178 (BT_FN_ULONG_PTR): Likewise. 39179 (BT_FN_INT8_FLOAT): Likewise. 39180 (BT_FN_INT16_FLOAT): Likewise. 39181 (BT_FN_UINT32_FLOAT): Likewise. 39182 (BT_FN_UINT16_FLOAT): Likewise. 39183 (BT_FN_UINT8_FLOAT): Likewise. 39184 (BT_FN_UINT64_FLOAT): Likewise. 39185 (BT_FN_UINT16_UINT32): Likewise. 39186 (BT_FN_UINT32_UINT16): Likewise. 39187 (BT_FN_UINT16_UINT16_UINT16): Likewise. 39188 (BT_FN_INT_PTR_INT): Likewise. 39189 (BT_FN_UINT_PTR_UINT): Likewise. 39190 (BT_FN_LONG_PTR_LONG): Likewise. 39191 (BT_FN_ULONG_PTR_ULONG): Likewise. 39192 (BT_FN_VOID_UINT64_UINT64): Likewise. 39193 (BT_FN_UINT8_UINT8_UINT8): Likewise. 39194 (BT_FN_INT8_INT8_INT8): Likewise. 39195 (BT_FN_INT16_INT16_INT16): Likewise. 39196 (BT_FN_INT_INT_INT): Likewise. 39197 (BT_FN_UINT_FLOAT_UINT): Likewise. 39198 (BT_FN_FLOAT_UINT_UINT): Likewise. 39199 (BT_FN_ULONG_UINT_UINT): Likewise. 39200 (BT_FN_ULONG_UINT_PTR): Likewise. 39201 (BT_FN_ULONG_ULONG_ULONG): Likewise. 39202 (BT_FN_UINT_UINT_UINT): Likewise. 39203 (BT_FN_VOID_UINT_PTR): Likewise. 39204 (BT_FN_UINT_UINT_PTR: Likewise. 39205 (BT_FN_UINT32_UINT64_PTR): Likewise. 39206 (BT_FN_INT_INT_UINT_UINT): Likewise. 39207 (BT_FN_UINT_UINT_UINT_UINT): Likewise. 39208 (BT_FN_UINT_UINT_UINT_PTR): Likewise. 39209 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise. 39210 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise. 39211 (BT_FN_LONG_LONG_UINT_UINT): Likewise. 39212 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise. 39213 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise. 39214 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise. 39215 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise. 39216 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise. 39217 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise. 39218 * doc/frontends.texi: List BRIG FE. 39219 * doc/install.texi (Testing): Add BRIG tesring requirements. 39220 * doc/invoke.texi (Overall Options): Mention BRIG. 39221 * doc/standards.texi (Standards): Doucment BRIG HSA version. 39222 392232017-01-24 Richard Biener <rguenther@suse.de> 39224 39225 PR translation/79208 39226 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic. 39227 392282017-01-24 Martin Jambor <mjambor@suse.cz> 39229 39230 PR bootstrap/79198 39231 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor. 39232 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts 39233 and known_contexts. 39234 392352017-01-24 Aldy Hernandez <aldyh@redhat.com> 39236 39237 PR middle-end/79123 39238 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure 39239 casts from signed to unsigned really don't have a range. 39240 392412017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de> 39242 39243 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to 39244 GMP_RNDx for compatiblity. 39245 392462017-01-24 Martin Liska <mliska@suse.cz> 39247 39248 PR bootstrap/79132 39249 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert 39250 that would prevent us to call alloca with -1 as argument. 39251 392522017-01-24 Jakub Jelinek <jakub@redhat.com> 39253 39254 * dwarf2out.c (output_compilation_unit_header, output_file_names): 39255 Avoid -Wformat-security warning. 39256 392572017-01-23 Andrew Pinski <apinski@cavium.com> 39258 39259 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve 39260 cost table. 39261 392622017-01-23 Martin Sebor <msebor@redhat.com> 39263 39264 PR middle-end/78703 39265 * gimple-ssa-sprintf.c (warn_level): New global. 39266 (format_integer): Use it here and throughout the rest of the file. 39267 Use the same switch to compute sign as base. 39268 (maybe_warn): New function. 39269 (format_directive): Factor out warnings into maybe_warn. 39270 Add debugging output. Use warn_level. 39271 (add_bytes): Use warn_level. 39272 (pass_sprintf_length::compute_format_length): Add debugging output. 39273 (try_substitute_return_value): Same. 39274 (pass_sprintf_length::handle_gimple_call): Set and use warn_level. 39275 39276 PR middle-end/78703 39277 * gimple-ssa-sprintf.c (struct format_result): Remove constant member. 39278 (struct fmtresult, format_integer, format_floating): Adjust. 39279 (fmtresult::fmtresult): Set max correctly in two argument ctor. 39280 (get_string_length, format_string,format_directive): Same. 39281 (pass_sprintf_length::compute_format_length): Same. 39282 (try_substitute_return_value): Simplify slightly. 39283 39284 PR middle-end/78703 39285 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting. 39286 (fmtresult::operator+=): Outlined. 39287 (struct fmtresult): Add ctors. 39288 (struct conversion_spec): Rename... 39289 (struct directive): ...to this. Add and remove data members. 39290 (directive::set_width, directive::set_precision): New functions. 39291 (format_percent): Use fmtresult ctor. 39292 (get_width_and_precision): Remove. 39293 (format_integer): Make naming changes. Avoid computing width and 39294 precision. 39295 (format_floating): Same. Adjust indentation. 39296 (format_character, format_none): New functions. 39297 (format_string): Moved character handling to format_character. 39298 (format_directive): Remove arguments, change return type. 39299 (parse_directive): New function. 39300 (pass_sprintf_length::compute_format_length): Move directive 39301 parsing to parse_directive. 39302 393032017-01-23 Jakub Jelinek <jakub@redhat.com> 39304 39305 * tree.h (assign_assembler_name_if_neeeded): Rename to ... 39306 (assign_assembler_name_if_needed): ... this. 39307 * tree.c (assign_assembler_name_if_neeeded): Rename to ... 39308 (assign_assembler_name_if_needed): ... this. 39309 (free_lang_data_in_cgraph): Adjust callers. 39310 * cgraphunit.c (cgraph_node::analyze): Likewise. 39311 * omp-expand.c (expand_omp_taskreg, expand_omp_target): 39312 Likewise. 39313 393142017-01-23 Richard Biener <rguenther@suse.de> 39315 39316 PR tree-optimization/79088 39317 PR tree-optimization/79188 39318 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code 39319 resetting loop bounds after last path deletion. Reset loop 39320 bounds of the target loop, make code match the comments. 39321 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute): 39322 Make sure loops need no fixups. 39323 393242017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> 39325 39326 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert 39327 exponent support with double type for first argument. 39328 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed 39329 type returned by __builtin_vec_extract_sig, 39330 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp 39331 functions from "vector int" to "vector unsigned int" or from 39332 "vector long long int" to "vector unsigned long long int". 39333 Changed type returned by __builtin_vec_extract_exp, 39334 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp 39335 functions from "vector int" to "vector unsigned int" or from 39336 "vector long long int" to "vector unsigned long long int". 39337 Changed return type of __builtin_vec_test_data_class, 39338 __builtin_vec_test_data_class_sp, and 39339 __builtin_vec_test_data_class_dp from "vector int" to 39340 "vector bool int" or from "vector long long int" to "vector bool 39341 long long int" and changed second argument type from "unsigned 39342 int" to "int". Added new overloaded function forms "vector float 39343 __builtin_vec_insert_exp (vector float, vector unsigned int)" and 39344 "vector float __builtin_vec_insert_exp_sp (vector float, vector 39345 unsigned int)" and "vector double __builtin_vec_insert_exp (vector 39346 double, vector unsigned long long int)" and "vector double 39347 __builtin_vec_insert_exp_dp (vector double, vector unsigned long 39348 long int)". Changed return type of 39349 __builtin_scalar_test_data_class and 39350 __builtin_scalar_test_data_class_sp and 39351 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool 39352 int" and changed second argument from "unsigned int" to "int". 39353 Changed type returned by __builtin_scalar_test_neg, 39354 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp 39355 from "int" to "bool int". Added new overloaded function form 39356 "double __builtin_scalar_insert_exp (double, unsigned long long int)". 39357 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert 39358 exponent double-precision with floating point first argument. 39359 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust 39360 documentation of scalar_test_data_class, scalar_test_neg, 39361 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp, 39362 vector_extract_exp, vec_extract_sig, vec_insert_exp, and 39363 vec_test_data_class built-in functions to reflect refinements in 39364 their type signatures. 39365 393662017-01-23 Andreas Tobler <andreast@gcc.gnu.org> 39367 39368 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase 39369 size of buf. 39370 (aarch64_elf_asm_destructor): Likewise. 39371 393722017-01-23 Bernd Schmidt <bschmidt@redhat.com> 39373 39374 PR rtl-optimization/78634 39375 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function. 39376 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define. 39377 * ifcvt.c (noce_try_cmove): Add missing cost check. 39378 39379 PR rtl-optimization/71724 39380 * combine.c (if_then_else_cond): Look for situations where it is 39381 beneficial to undo the work of one of the recursive calls. 39382 393832017-01-23 Bin Cheng <bin.cheng@arm.com> 39384 39385 PR tree-optimization/70754 39386 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. 39387 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert 39388 combined stmt before it if not NULL. 39389 (combine_chains): Process refs reversely and compute dominance point 39390 for root ref. 39391 393922017-01-23 Martin Liska <mliska@suse.cz> 39393 39394 PR tree-optimization/79196 39395 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ... 39396 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp 39397 instead of memcmp. 39398 (strlen_optimize_stmt): Call the renamed function. 39399 394002017-01-23 Michael Matz <matz@suse.de> 39401 39402 PR tree-optimization/78384 39403 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. 39404 394052017-01-23 Richard Biener <rguenther@suse.de> 39406 39407 PR tree-optimization/79186 39408 * tree-vrp.c (register_new_assert_for): Make sure we've seen 39409 both incoming edges before moving an assert. 39410 394112017-01-23 Martin Jambor <mjambor@suse.cz> 39412 39413 * ipa-prop.c (load_from_param_1): Removed. 39414 (load_from_unmodified_param): Bits from load_from_param_1 put back 39415 here. 39416 (load_from_param): Removed. 39417 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it 39418 with stmt. Reverted back to use of load_from_unmodified_param. 39419 394202017-01-23 Martin Jambor <mjambor@suse.cz> 39421 39422 PR ipa/79108 39423 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()). 39424 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors 39425 field a pointer to garbage collected vector, mark lattices and 39426 ipcp_orig_node with GTY((skip)). 39427 (ipa_get_param_count): Adjust to descriptors being a pointer. 39428 (ipa_get_param): Likewise. 39429 (ipa_get_type): Likewise. 39430 (ipa_get_param_move_cost): Likewise. 39431 (ipa_set_param_used): Likewise. 39432 (ipa_get_controlled_uses): Likewise. 39433 (ipa_set_controlled_uses): Likewise. 39434 (ipa_is_param_used): Likewise. 39435 (ipa_node_params_t): Move into garbage collector. New methods insert 39436 and remove. 39437 (ipa_node_params_sum): Annotate wth GTY(()). 39438 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being 39439 garbage collected. 39440 (ipa_load_from_parm_agg): Adjust declaration. 39441 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer. 39442 * ipa-profile.c (ipa_profile): Likewise. 39443 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise. 39444 (ipa_populate_param_decls): Make descriptors parameter garbage 39445 collected. 39446 (ipa_dump_param): Adjust to descriptors being a pointer. 39447 (ipa_alloc_node_params): Likewise. 39448 (ipa_initialize_node_params): Likewise. 39449 (load_from_param_1): Make descriptors parameter garbage collected. 39450 (load_from_unmodified_param): Likewise. 39451 (load_from_param): Likewise. 39452 (ipa_load_from_parm_agg): Likewise. 39453 (ipa_node_params::~ipa_node_params): Removed. 39454 (ipa_free_all_node_params): Remove call to delete operator. 39455 (ipa_node_params_t::insert): New. 39456 (ipa_node_params_t::remove): Likewise. 39457 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer, 39458 copy known_csts and known_contexts vectors. 39459 (ipa_read_node_info): Adjust to descriptors being a pointer. 39460 (ipcp_modif_dom_walker): Make m_descriptors field garbage 39461 collected. 39462 (ipcp_transform_function): Make descriptors variable garbage 39463 collected. 39464 394652017-01-23 Andrew Senkevich <andrew.senkevich@intel.com> 39466 39467 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics. 39468 * config/i386/avx512dqintrin.h: Ditto. 39469 * config/i386/avx512fintrin.h: Ditto. 39470 * config/i386/i386.c: Handle new builtins. 39471 * config/i386/i386-builtin.def: Add new builtins. 39472 * config/i386/sse.md (ktest<mode>, kortest<mode>): New. 39473 (UNSPEC_KORTEST, UNSPEC_KTEST): New. 39474 394752017-01-23 Jakub Jelinek <jakub@redhat.com> 39476 Martin Liska <mliska@suse.cz> 39477 39478 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE. 39479 * asan.c (asan_expand_poison_ifn): Support stores and use 39480 appropriate ASAN report function. 39481 * internal-fn.c (expand_ASAN_POISON_USE): New function. 39482 * internal-fn.def (ASAN_POISON_USE): Declare. 39483 * tree-into-ssa.c (maybe_add_asan_poison_write): New function. 39484 (maybe_register_def): Create ASAN_POISON_USE when sanitizing. 39485 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove 39486 ASAN_POISON calls w/o LHS. 39487 * tree-ssa.c (execute_update_addresses_taken): Create clobber 39488 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS 39489 from ASAN_MARK (POISON, &x, ...) coming to a PHI node. 39490 * gimplify.c (asan_poison_variables): Add attribute 39491 use_after_scope_memory to variables that really needs to live 39492 in memory. 39493 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when 39494 having the attribute. 39495 394962017-01-23 Martin Liska <mliska@suse.cz> 39497 39498 * asan.c (create_asan_shadow_var): New function. 39499 (asan_expand_poison_ifn): Likewise. 39500 * asan.h (asan_expand_poison_ifn): New declaration. 39501 * internal-fn.c (expand_ASAN_POISON): Likewise. 39502 * internal-fn.def (ASAN_POISON): New builtin. 39503 * sanopt.c (pass_sanopt::execute): Expand 39504 asan_expand_poison_ifn. 39505 * tree-inline.c (copy_decl_for_dup_finish): Make function 39506 external. 39507 * tree-inline.h (copy_decl_for_dup_finish): Likewise. 39508 * tree-ssa.c (is_asan_mark_p): New function. 39509 (execute_update_addresses_taken): Rewrite local variables 39510 (identified just by use-after-scope as addressable) into SSA. 39511 395122017-01-22 Gerald Pfeifer <gerald@pfeifer.com> 39513 39514 * doc/install.texi (Specific): opensource.apple.com uses https 39515 now. Remove trailing slash. 39516 395172017-01-22 Gerald Pfeifer <gerald@pfeifer.com> 39518 39519 * README.Portability: Remove note on an Irix compatibility issue. 39520 395212017-01-22 Dimitry Andric <dim@FreeBSD.org> 39522 39523 * gcov.c (INCLUDE_ALGORITHM): Define. 39524 (INCLUDE_VECTOR): Define. 39525 No longer include <vector> and <algorithm> directly. 39526 395272017-01-21 Gerald Pfeifer <gerald@pfeifer.com> 39528 39529 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference 39530 to https. 39531 * doc/invoke.texi (Code Gen Options): Ditto. 39532 395332017-01-21 Jan Hubicka <hubicka@ucw.cz> 39534 39535 PR lto/78407 39536 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity. 39537 395382017-01-21 Bernd Schmidt <bschmidt@redhat.com> 39539 39540 rtl-optimization/79125 39541 * cprop.c (local_cprop_pass): Handle cases where we make an 39542 unconditional trap. 39543 395442017-01-20 Segher Boessenkool <segher@kernel.crashing.org> 39545 39546 PR target/61729 39547 PR target/77850 39548 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to 39549 read from, for big endian. 39550 395512017-01-20 Jiong Wang <jiong.wang@arm.com> 39552 39553 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register 39554 register pauth builtins for LP64 only. 39555 395562017-01-20 Marek Polacek <polacek@redhat.com> 39557 39558 PR c/79152 39559 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive 39560 non-case labels. 39561 395622017-01-20 Alexander Monakov <amonakov@ispras.ru> 39563 39564 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless 39565 of safelen status. 39566 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev. 39567 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev. 39568 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev. 39569 395702017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 39571 39572 PR target/71270 39573 * config/arm/arm.c (neon_valid_immediate): Reject vector constants 39574 in big-endian mode when they are not a single duplicated value. 39575 395762017-01-20 Richard Biener <rguenther@suse.de> 39577 39578 * BASE-VER: Bump to 7.0.1. 39579 395802017-01-20 Alexander Monakov <amonakov@ispras.ru> 39581 39582 * omp-low.c (omplow_simd_context): New struct. Use it... 39583 (lower_rec_simd_input_clauses): ...here and... 39584 (lower_rec_input_clauses): ...here to hold common data. Adjust all 39585 references to idx, lane, max_vf, is_simt. 39586 395872017-01-20 Graham Markall <graham.markall@embecosm.com> 39588 39589 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when 39590 mcpu=nps400. 39591 395922017-01-20 Martin Jambor <mjambor@suse.cz> 39593 39594 * hsa.h: Renaed to hsa-common.h. Adjusted a comment. 39595 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to 39596 gt-hsa-common.h. 39597 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o. 39598 (GTFILES): Rename hsa.c to hsa-common.c. 39599 * hsa-brig.c: Change include of hsa.h to hsa-common.h. 39600 * hsa-dump.c: Likewise. 39601 * hsa-gen.c: Likewise. 39602 * hsa-regalloc.c: Likewise. 39603 * ipa-hsa.c: Likewise. 39604 * omp-expand.c: Likewise. 39605 * omp-low.c: Likewise. 39606 * toplev.c: Likewise. 39607 396082017-01-20 Marek Polacek <polacek@redhat.com> 39609 39610 PR c/64279 39611 * doc/invoke.texi: Document -Wduplicated-branches. 39612 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR, 39613 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR, 39614 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT, 39615 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions 39616 return 0 only when not OEP_LEXICOGRAPHIC. 39617 (fold_build_cleanup_point_expr): Use the expression 39618 location when building CLEANUP_POINT_EXPR. 39619 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC. 39620 * tree.c (add_expr): Handle error_mark_node. 39621 396222017-01-20 Martin Liska <mliska@suse.cz> 39623 39624 PR lto/69188 39625 * tree-profile.c (init_ic_make_global_vars): Do not call 39626 finalize_decl. 39627 (gimple_init_gcov_profiler): Likewise. 39628 396292017-01-20 Martin Liska <mliska@suse.cz> 39630 39631 PR ipa/71190 39632 * cgraph.h (maybe_create_reference): Remove argument and 39633 update comment. 39634 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one 39635 argument. 39636 * ipa-cp.c (create_specialized_node): Likewise. 39637 * symtab.c (symtab_node::maybe_create_reference): Handle 39638 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type. 39639 396402017-01-20 Martin Liska <mliska@suse.cz> 39641 39642 * read-rtl-function.c (function_reader::create_function): Use 39643 build_decl instread of build_decl_stat. 39644 396452017-01-20 Andrew Senkevich <andrew.senkevich@intel.com> 39646 39647 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics. 39648 * config/i386/avx512dqintrin.h: Ditto. 39649 * config/i386/avx512fintrin.h: Ditto. 39650 * config/i386/i386-builtin-types.def: Add new types. 39651 * config/i386/i386.c: Handle new types. 39652 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi) 39653 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi) 39654 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi) 39655 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi) 39656 (__builtin_ia32_kshiftridi): New. 39657 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>. 39658 396592017-01-19 Segher Boessenkool <segher@kernel.crashing.org> 39660 39661 PR target/78875 39662 PR target/79140 39663 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally 39664 define to rs6000_init_stack_protect_guard. 39665 (rs6000_init_stack_protect_guard): New function. 39666 396672017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> 39668 Yunqiang Su <yunqiang.su@imgtec.com> 39669 39670 * config.gcc (supported_defaults): Add madd4. 39671 (with_madd4): Add validation. 39672 (all_defaults): Add madd4. 39673 * config/mips/mips.opt (mmadd4): New option. 39674 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for 39675 mmadd4. 39676 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for 39677 __mips_no_madd4. 39678 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4. 39679 (ISA_HAS_FUSED_MADD4): Likewise. 39680 * doc/invoke.texi (-mmadd4): Document the new option. 39681 * doc/install.texi (--with-madd4): Document the new option. 39682 396832017-01-19 Jiong Wang <jiong.wang@arm.com> 39684 39685 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New 39686 entries for AARCH64_PAUTH_BUILTIN_XPACLRI, 39687 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716. 39688 (aarch64_init_pauth_hint_builtins): New. 39689 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins. 39690 (aarch64_expand_builtin): Expand new builtins. 39691 396922017-01-19 Jiong Wang <jiong.wang@arm.com> 39693 39694 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note. 39695 * combine-stack-adj.c (no_unhandled_cfa): Handle 39696 REG_CFA_TOGGLE_RA_MANGLE. 39697 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE. 39698 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF 39699 info for return address signing. 39700 (aarch64_expand_epilogue): Likewise. 39701 397022017-01-19 Jiong Wang <jiong.wang@arm.com> 39703 39704 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum. 39705 * config/aarch64/aarch64-protos.h 39706 (aarch64_return_address_signing_enabled): New declaration. 39707 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): 39708 New function. 39709 (aarch64_expand_prologue): Sign return address before it's pushed onto 39710 stack. 39711 (aarch64_expand_epilogue): Authenticate return address fetched from 39712 stack. 39713 (aarch64_override_options): Sanity check for ILP32 and ISA level. 39714 (aarch64_attributes): New function attributes for "sign-return-address". 39715 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP, 39716 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs. 39717 ("*do_return"): Generate combined instructions according to key index. 39718 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New. 39719 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer 39720 iterators. 39721 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes. 39722 * config/aarch64/aarch64.opt (msign-return-address=): New. 39723 * doc/extend.texi (AArch64 Function Attributes): Documents 39724 "sign-return-address=". 39725 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=". 39726 397272017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> 39728 39729 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to 39730 overall option summary. 39731 397322017-01-19 Jiong Wang <jiong.wang@arm.com> 39733 39734 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a". 39735 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3, 39736 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New. 39737 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a". 39738 397392017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com> 39740 39741 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable 39742 -mpower9-minmax by default for -mcpu=power9. 39743 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE 39744 128-bit floating point. 39745 397462017-01-20 Alan Modra <amodra@gmail.com> 39747 39748 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if 39749 optimizing for size. 39750 397512017-01-20 Alan Modra <amodra@gmail.com> 39752 39753 PR target/79144 39754 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name 39755 for strcmp and strncmp from corresponding builtin decl. 39756 397572017-01-19 Uros Bizjak <ubizjak@gmail.com> 39758 39759 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h 39760 instead of i386/rtems-64.h. 39761 * config/i386/rtems-64.h: Remove. 39762 397632017-01-19 Uros Bizjak <ubizjak@gmail.com> 39764 39765 PR target/78478 39766 Revert: 39767 2013-11-05 Uros Bizjak <ubizjak@gmail.com> 39768 39769 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define. 39770 397712017-01-19 Tamar Christina <tamar.christina@arm.com> 39772 39773 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): 39774 Change int to HOST_WIDE_INT. 39775 * config/aarch64/aarch64-protos.h 39776 (aarch64_simd_gen_const_vector_dup): Likewise. 39777 * config/aarch64/aarch64-simd.md: Add copysign<mode>3. 39778 397792017-01-19 David Malcolm <dmalcolm@redhat.com> 39780 39781 * langhooks-def.h (lhd_type_for_size): New decl. 39782 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size. 39783 * langhooks.c (lhd_type_for_size): New function, taken from 39784 lto_type_for_size. 39785 397862017-01-19 Pat Haugen <pthaugen@us.ibm.com> 39787 39788 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add 39789 define_bypass for CR latency. 39790 (power9-cracked-alu): Update bypass latency and remove power9-branch. 39791 (power9-alu2): Add define_bypass for CR latency. 39792 (power9-cmp): New. 39793 (power9-mul): Update insn latency. 39794 (power9-mul-compare): Update insn latency, bypass latency and remove 39795 power9-branch. 39796 397972016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 39798 39799 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): 39800 Delete. 39801 * config/aarch64/aarch64.md 39802 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to 39803 aarch64_nopcrelative_literal_loads. 39804 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. 39805 398062017-01-19 Chenghua Xu <paul.hua.gm@gmail.com> 39807 39808 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for 39809 TARGET_LOONGSON_3A. 39810 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A. 39811 398122017-01-19 Doug Gilmore <doug.gilmore@imgtec.com> 39813 39814 PR target/78176 39815 * config.gcc (supported_defaults): Add lxc1-sxc1. 39816 (with_lxc1_sxc1): Add validation. 39817 (all_defaults): Add lxc1-sxc1. 39818 * config/mips/mips.opt (mlxc1-sxc1): New option. 39819 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for 39820 mlxc1-sxc1. 39821 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for 39822 __mips_no_lxc1_sxc1. 39823 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1. 39824 * doc/invoke.texi (-mlxc1-sxc1): Document the new option. 39825 * doc/install.texi (--with-lxc1-sxc1): Document the new option. 39826 398272017-01-19 Richard Biener <rguenther@suse.de> 39828 39829 PR tree-optimization/72488 39830 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make 39831 sure to restore SSA info. 39832 * tree-ssa.c (verify_ssa): Verify SSA info is not shared. 39833 398342017-01-19 Richard Earnshaw <rearnsha@arm.com> 39835 39836 PR rtl-optimization/79121 39837 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness 39838 of the inner type when shifting an extended value. 39839 398402017-01-17 Jan Hubicka <hubicka@ucw.cz> 39841 39842 PR lto/78407 39843 * symtab.c (symtab_node::equal_address_to): Fix comparing of 39844 interposable aliases. 39845 398462017-01-18 Peter Bergner <bergner@vnet.ibm.com> 39847 39848 PR target/78516 39849 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints. 39850 Use the evmergelohi instruction. 39851 (mov_si<mode>_e500_subreg4_2_le): Likewise. 39852 (mov_sitf_e500_subreg8_2_be): Likewise. 39853 (mov_sitf_e500_subreg12_2_le): Likewise. 39854 (mov_si<mode>_e500_subreg0_2_le): Fix constraints. 39855 (mov_si<mode>_e500_subreg4_2_be): Likewise. 39856 (mov_sitf_e500_subreg8_2_le): Likewise. 39857 (mov_sitf_e500_subreg12_2_be): Likewise. 39858 398592017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 39860 39861 * config/rs6000/altivec.md (altivec_vbpermq): Change "type" 39862 attribute from vecsimple to vecperm. 39863 (altivec_vbpermq2): Likewise. 39864 398652017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 39866 39867 PR target/79040 39868 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz. 39869 398702017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 39871 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg. 39872 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand 39873 strcmp. Fix bug where comparison didn't stop with zero byte. Fix 39874 case where N arg is SIZE_MAX. 39875 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare. 39876 (cmpstrsi): Add pattern. 39877 398782017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com> 39879 39880 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 39881 __builtin_vec_revb builtins. 39882 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add 39883 built-in functions to support generation of the ISA 3.0 XXBR<x> 39884 vector byte reverse instructions. 39885 (P9V_BUILTIN_XXBRQ_V1TI): Likewise. 39886 (P9V_BUILTIN_XXBRD_V2DI): Likewise. 39887 (P9V_BUILTIN_XXBRD_V2DF): Likewise. 39888 (P9V_BUILTIN_XXBGW_V4SI): Likewise. 39889 (P9V_BUILTIN_XXBGW_V4SF): Likewise. 39890 (P9V_BUILTIN_XXBGH_V8HI): Likewise. 39891 (P9V_BUILTIN_VEC_REVB): Likewise. 39892 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to 39893 generate the ISA 3.0 XXBR<x> vector byte reverse instructions. 39894 (p9_xxbrq_v16qi): Likewise. 39895 (p9_xxbrd_<mode>, VSX_D iterator): Likewise. 39896 (p9_xxbrw_<mode>, VSX_W iterator): Likewise. 39897 (p9_xxbrh_v8hi): Likewise. 39898 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0. 39899 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the 39900 vec_revb built-in functions. 39901 399022017-01-18 Uros Bizjak <ubizjak@gmail.com> 39903 39904 PR rtl-optimization/78952 39905 * config/i386/i386.md (any_extract): New code iterator. 39906 (*insvqi_2): Use any_extract for source operand. 39907 (*insvqi_3): Use any_shiftrt for source operand. 39908 399092017-01-18 Wilco Dijkstra <wdijkstr@arm.com> 39910 39911 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority) 39912 New function. 39913 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook. 39914 399152017-01-18 Matthias Klose <doko@ubuntu.com> 39916 39917 * doc/install.texi: Allow default for --with-target-bdw-gc-include. 39918 399192016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 39920 39921 * config/rs6000/altivec.h (vec_bperm): Change #define. 39922 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant. 39923 (altivec_vbpermq2): New define_insn. 39924 (altivec_vbpermd): Likewise. 39925 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic 39926 function interface. 39927 (VBPERMD): Likewise. 39928 (VBPERM): New polymorphic function interface. 39929 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table): 39930 Add entries for P9V_BUILTIN_VEC_VBPERM. 39931 * doc/extend.texi: Add interfaces for vec_bperm. 39932 399332017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 39934 39935 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase 39936 first letter of error messages. 39937 (s390_resolve_overloaded_builtin): Likewise. 39938 * config/s390/s390.c (s390_expand_builtin): Likewise. 39939 (s390_invalid_arg_for_unprototyped_fn): Likewise. 39940 (s390_valid_target_attribute_inner_p): Likewise. 39941 * config/s390/s390.md ("tabort"): Likewise. 39942 399432017-01-18 Toma Tabacu <toma.tabacu@imgtec.com> 39944 39945 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro. 39946 (ISA_AVOID_DIV_HILO): New macro. 39947 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro. 39948 (ISA_HAS_DDIV): Likewise. 39949 399502017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> 39951 39952 * doc/invoke.texi (fabi-version): Correct number of occurrences. 39953 399542017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> 39955 39956 * doc/invoke.texi (fabi-version): Spelling fix. 39957 399582017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> 39959 39960 PR c++/70182 39961 * doc/invoke.texi (fabi-version): Mention mangling fix for 39962 operator names. 39963 399642017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> 39965 39966 PR c++/77489 39967 * doc/invoke.texi (fabi-version): Document discriminator mangling. 39968 399692017-01-17 Segher Boessenkool <segher@kernel.crashing.org> 39970 39971 PR target/78875 39972 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum. 39973 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle 39974 the new options. 39975 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more 39976 flexible settings. 39977 (stack_protect_test): Ditto. 39978 * config/rs6000/rs6000.opt (mstack-protector-guard=, 39979 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New 39980 options. 39981 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]: 39982 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and 39983 -mstack-protector-guard-offset=. 39984 (RS/6000 and PowerPC Options): Ditto. 39985 399862017-01-17 Uros Bizjak <ubizjak@gmail.com> 39987 39988 * config/i386/i386.h (MASK_CLASS_P): New define. 39989 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that 39990 there are no registers from different register sets also when 39991 mask registers are used. Update function comment. 39992 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative 39993 to (*k/*r) and (*k/*km) alternatives. 39994 399952017-01-17 Wilco Dijkstra <wdijkstr@arm.com> 39996 39997 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter. 39998 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove. 39999 (EH_RETURN_HANDLER_RTX): New define. 40000 * config/aarch64/aarch64.c (aarch64_frame_pointer_required): 40001 Force frame pointer in EH return functions. 40002 (aarch64_expand_epilogue): Add barrier for eh_return. 40003 (aarch64_final_eh_return_addr): Remove. 40004 (aarch64_eh_return_handler_rtx): New function. 40005 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr): 40006 Remove. 40007 (aarch64_eh_return_handler_rtx): New prototype. 40008 400092017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 40010 40011 * config/rs6000/altivec.h (vec_rlmi): New #define. 40012 (vec_vrlnm): Likewise. 40013 (vec_rlnm): Likewise. 40014 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value. 40015 (UNSPEC_VRLNM): Likewise. 40016 (VIlong): New mode iterator. 40017 (altivec_vrl<VI_char>mi): New define_insn. 40018 (altivec_vrl<VI_char>nm): Likewise. 40019 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic 40020 function entry. 40021 (VRLDNM): Likewise. 40022 (RLNM): New polymorphic function entry. 40023 (VRLWMI): New monomorphic function entry. 40024 (VRLDMI): Likewise. 40025 (RLMI): New polymorphic function entry. 40026 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add 40027 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM. 40028 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and 40029 vec_vrlnm. 40030 400312017-01-17 Jakub Jelinek <jakub@redhat.com> 40032 40033 PR debug/78839 40034 * dwarf2out.c (field_byte_offset): Restore the 40035 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET 40036 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold. 40037 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead 40038 of build2 + fold. 40039 400402017-01-17 Eric Botcazou <ebotcazou@adacore.com> 40041 40042 PR ada/67205 40043 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define 40044 400452017-01-17 Jakub Jelinek <jakub@redhat.com> 40046 40047 PR debug/71669 40048 * dwarf2out.c (add_data_member_location_attribute): For constant 40049 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute 40050 instead of DW_AT_data_member_location, DW_AT_bit_offset and 40051 DW_AT_byte_size attributes. 40052 400532017-01-17 Eric Botcazou <ebotcazou@adacore.com> 40054 40055 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference 40056 after forcing to constant memory when the code model is medium. 40057 400582017-01-17 Julia Koval <julia.koval@intel.com> 40059 40060 PR target/76731 40061 * config/i386/avx512fintrin.h 40062 (_mm512_i32gather_ps): Change __addr type to void const*. 40063 (_mm512_mask_i32gather_ps): Ditto. 40064 (_mm512_i32gather_pd): Ditto. 40065 (_mm512_mask_i32gather_pd): Ditto. 40066 (_mm512_i64gather_ps): Ditto. 40067 (_mm512_mask_i64gather_ps): Ditto. 40068 (_mm512_i64gather_pd): Ditto. 40069 (_mm512_mask_i64gather_pd): Ditto. 40070 (_mm512_i32gather_epi32): Ditto. 40071 (_mm512_mask_i32gather_epi32): Ditto. 40072 (_mm512_i32gather_epi64): Ditto. 40073 (_mm512_mask_i32gather_epi64): Ditto. 40074 (_mm512_i64gather_epi32): Ditto. 40075 (_mm512_mask_i64gather_epi32): Ditto. 40076 (_mm512_i64gather_epi64): Ditto. 40077 (_mm512_mask_i64gather_epi64): Ditto. 40078 (_mm512_i32scatter_ps): Change __addr type to void*. 40079 (_mm512_mask_i32scatter_ps): Ditto. 40080 (_mm512_i32scatter_pd): Ditto. 40081 (_mm512_mask_i32scatter_pd): Ditto. 40082 (_mm512_i64scatter_ps): Ditto. 40083 (_mm512_mask_i64scatter_ps): Ditto. 40084 (_mm512_i64scatter_pd): Ditto. 40085 (_mm512_mask_i64scatter_pd): Ditto. 40086 (_mm512_i32scatter_epi32): Ditto. 40087 (_mm512_mask_i32scatter_epi32): Ditto. 40088 (_mm512_i32scatter_epi64): Ditto. 40089 (_mm512_mask_i32scatter_epi64): Ditto. 40090 (_mm512_i64scatter_epi32): Ditto. 40091 (_mm512_mask_i64scatter_epi32): Ditto. 40092 (_mm512_i64scatter_epi64): Ditto. 40093 (_mm512_mask_i64scatter_epi64): Ditto. 40094 * config/i386/avx512pfintrin.h 40095 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*. 40096 (_mm512_mask_prefetch_i32gather_ps): Ditto. 40097 (_mm512_mask_prefetch_i64gather_pd): Ditto. 40098 (_mm512_mask_prefetch_i64gather_ps): Ditto. 40099 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*. 40100 (_mm512_prefetch_i32scatter_ps): Ditto. 40101 (_mm512_mask_prefetch_i32scatter_pd): Ditto. 40102 (_mm512_mask_prefetch_i32scatter_ps): Ditto. 40103 (_mm512_prefetch_i64scatter_pd): Ditto. 40104 (_mm512_prefetch_i64scatter_ps): Ditto. 40105 (_mm512_mask_prefetch_i64scatter_pd): Ditto. 40106 (_mm512_mask_prefetch_i64scatter_ps): Ditto. 40107 * config/i386/avx512vlintrin.h 40108 (_mm256_mmask_i32gather_ps): Change __addr type to void const*. 40109 (_mm_mmask_i32gather_ps): Ditto. 40110 (_mm256_mmask_i32gather_pd): Ditto. 40111 (_mm_mmask_i32gather_pd): Ditto. 40112 (_mm256_mmask_i64gather_ps): Ditto. 40113 (_mm_mmask_i64gather_ps): Ditto. 40114 (_mm256_mmask_i64gather_pd): Ditto. 40115 (_mm_mmask_i64gather_pd): Ditto. 40116 (_mm256_mmask_i32gather_epi32): Ditto. 40117 (_mm_mmask_i32gather_epi32): Ditto. 40118 (_mm256_mmask_i32gather_epi64): Ditto. 40119 (_mm_mmask_i32gather_epi64): Ditto. 40120 (_mm256_mmask_i64gather_epi32): Ditto. 40121 (_mm_mmask_i64gather_epi32): Ditto. 40122 (_mm256_mmask_i64gather_epi64): Ditto. 40123 (_mm_mmask_i64gather_epi64): Ditto. 40124 (_mm256_i32scatter_ps): Change __addr type to void*. 40125 (_mm256_mask_i32scatter_ps): Ditto. 40126 (_mm_i32scatter_ps): Ditto. 40127 (_mm_mask_i32scatter_ps): Ditto. 40128 (_mm256_i32scatter_pd): Ditto. 40129 (_mm256_mask_i32scatter_pd): Ditto. 40130 (_mm_i32scatter_pd): Ditto. 40131 (_mm_mask_i32scatter_pd): Ditto. 40132 (_mm256_i64scatter_ps): Ditto. 40133 (_mm256_mask_i64scatter_ps): Ditto. 40134 (_mm_i64scatter_ps): Ditto. 40135 (_mm_mask_i64scatter_ps): Ditto. 40136 (_mm256_i64scatter_pd): Ditto. 40137 (_mm256_mask_i64scatter_pd): Ditto. 40138 (_mm_i64scatter_pd): Ditto. 40139 (_mm_mask_i64scatter_pd): Ditto. 40140 (_mm256_i32scatter_epi32): Ditto. 40141 (_mm256_mask_i32scatter_epi32): Ditto. 40142 (_mm_i32scatter_epi32): Ditto. 40143 (_mm_mask_i32scatter_epi32): Ditto. 40144 (_mm256_i32scatter_epi64): Ditto. 40145 (_mm256_mask_i32scatter_epi64): Ditto. 40146 (_mm_i32scatter_epi64): Ditto. 40147 (_mm_mask_i32scatter_epi64): Ditto. 40148 (_mm256_i64scatter_epi32): Ditto. 40149 (_mm256_mask_i64scatter_epi32): Ditto. 40150 (_mm_i64scatter_epi32): Ditto. 40151 (_mm_mask_i64scatter_epi32): Ditto. 40152 (_mm256_i64scatter_epi64): Ditto. 40153 (_mm256_mask_i64scatter_epi64): Ditto. 40154 (_mm_i64scatter_epi64): Ditto. 40155 (_mm_mask_i64scatter_epi64): Ditto. 40156 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT) 40157 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT) 40158 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT) 40159 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT) 40160 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT) 40161 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT) 40162 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT) 40163 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT) 40164 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT) 40165 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT) 40166 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT) 40167 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT) 40168 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT) 40169 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT) 40170 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT) 40171 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT) 40172 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT) 40173 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT) 40174 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT) 40175 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT) 40176 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT) 40177 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT) 40178 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT) 40179 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT) 40180 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT) 40181 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT) 40182 (VOID_QI_V8DI_PCINT_INT_INT): Remove. 40183 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT) 40184 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT) 40185 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT) 40186 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT) 40187 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT) 40188 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT) 40189 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT) 40190 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT) 40191 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT) 40192 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT 40193 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT) 40194 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT) 40195 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT) 40196 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT) 40197 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT) 40198 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT) 40199 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT) 40200 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT) 40201 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT) 40202 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT) 40203 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT) 40204 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT) 40205 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT) 40206 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT) 40207 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT) 40208 (VOID_QI_V8DI_PCVOID_INT_INT): Add. 40209 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin 40210 definitions accordingly. 40211 402122017-01-17 Kito Cheng <kito.cheng@gmail.com> 40213 Kuan-Lin Chen <kuanlinchentw@gmail.com> 40214 40215 PR target/79079 40216 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of 40217 gen_lowpart. 40218 402192017-01-17 Vladimir Makarov <vmakarov@redhat.com> 40220 40221 PR target/79058 40222 * ira-conflicts.c (ira_build_conflicts): Update total conflict 40223 hard regs for inner regno. 40224 402252017-01-17 Martin Liska <mliska@suse.cz> 40226 40227 PR ipa/71207 40228 * ipa-polymorphic-call.c (contains_type_p): Fix wrong 40229 assumption and add comment. 40230 402312017-01-17 Nathan Sidwell <nathan@acm.org> 40232 40233 * ipa-visibility.c (localize_node): New function, broken out of ... 40234 (function_and_variable_visibility): ... here. Call it. 40235 402362017-01-17 Jan Hubicka <hubicka@ucw.cz> 40237 40238 PR middle-end/77445 40239 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): 40240 correctly set frequency of oudgoing edge. 40241 (duplicate_thread_path): Fix profile updating. 40242 402432017-01-17 Jakub Jelinek <jakub@redhat.com> 40244 40245 PR other/79046 40246 * configure.ac: Add GCC_BASE_VER. 40247 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get 40248 version from BASE-VER file. 40249 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). 40250 (gcc.o): Depend on $(BASEVER). 40251 * common.opt (dumpfullversion): New option. 40252 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. 40253 * doc/invoke.texi: Document -dumpfullversion. 40254 * doc/install.texi: Document --with-gcc-major-version-only. 40255 * configure: Regenerated. 40256 402572017-01-17 Richard Biener <rguenther@suse.de> 40258 40259 PR tree-optimization/71433 40260 * tree-vrp.c (register_new_assert_for): Merge same asserts 40261 on all incoming edges. 40262 (process_assert_insertions_for): Handle insertions at the 40263 beginning of BBs. 40264 402652017-01-17 Gerald Pfeifer <gerald@pfeifer.com> 40266 40267 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove. 40268 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove. 40269 402702017-01-17 Kaz Kojima <kkojima@gcc.gnu.org> 40271 40272 PR target/78633 40273 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid 40274 RTL sharing. 40275 402762017-01-17 Alan Modra <amodra@gmail.com> 40277 40278 PR target/79066 40279 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic. 40280 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow 40281 symbolic stack limit when pic. 40282 402832017-01-16 Martin Sebor <msebor@redhat.com> 40284 40285 PR tree-optimization/78608 40286 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN. 40287 402882017-01-16 Jeff Law <law@redhat.com> 40289 40290 Revert: 40291 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com> 40292 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection 40293 for several include directories that may be relative to sysroot. 40294 * config/i386/x-mingw32 (gplus_includedir): Define. 40295 (gplus_tool_includedir, gplus_backward_include_dir): Likewise. 40296 (native_system_includedir): Likewise. 40297 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not 40298 override if TARGET_SYSTEM_ROOT is defined. 40299 (NATIVE_SYSTEM_HEADER_DIR): Likewise. 40300 40301 PR tree-optimization/79090 40302 PR tree-optimization/33562 40303 PR tree-optimization/61912 40304 PR tree-optimization/77485 40305 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT 40306 and computed trims into the dump file. 40307 403082017-01-17 Uros Bizjak <ubizjak@gmail.com> 40309 40310 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove. 40311 403122017-01-16 Jakub Jelinek <jakub@redhat.com> 40313 40314 PR c/79089 40315 * gimplify.c (gimplify_init_constructor): If want_value and 40316 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting 40317 fix. 40318 40319 PR target/79080 40320 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on 40321 sequence. Formatting fixes. 40322 (doloop_optimize): Formatting fixes. 40323 40324 PR driver/49726 40325 * gcc.c (debug_level_greater_than_spec_func): New function. 40326 (static_spec_functions): Add debug-level-gt spec function. 40327 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of 40328 !g0. 40329 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. 40330 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. 40331 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames, 40332 gpubnames, ggnu-pubnames, gno-record-gcc-switches, 40333 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs, 40334 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag. 40335 403362017-01-16 Uros Bizjak <ubizjak@gmail.com> 40337 40338 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and 40339 QImode fixups to general and mask registers only. 40340 403412017-01-16 Carl Love <cel@us.ibm.com> 40342 40343 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support 40344 for built-in functions 40345 vector signed char vec_nabs (vector signed char) 40346 vector signed short vec_nabs (vector signed short) 40347 vector signed int vec_nabs (vector signed int) 40348 vector signed long long vec_nabs (vector signed long long) 40349 vector float vec_nabs (vector float) 40350 vector double vec_nabs (vector double) 40351 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions 40352 and NABS overload. 40353 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types 40354 * config/rs6000/altivec.h: New define for vec_nabs built-in function. 40355 * doc/extend.texi: Update the documentation file for the new built-in 40356 functions. 40357 403582017-01-16 Martin Sebor <msebor@redhat.com> 40359 40360 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning 40361 message. 40362 403632017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 40364 40365 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change 40366 UNSPEC_VSX__XXSPLTD to require special splat handling. 40367 403682017-01-16 David Malcolm <dmalcolm@redhat.com> 40369 40370 PR bootstrap/78616 40371 * system.h: Poison strndup. 40372 403732017-01-16 Alan Modra <amodra@gmail.com> 40374 40375 PR target/79098 40376 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't 40377 use a switch. 40378 403792017-01-16 Georg-Johann Lay <avr@gjlay.de> 40380 40381 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4. 40382 403832017-01-15 Uros Bizjak <ubizjak@gmail.com> 40384 40385 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not 40386 call recog here. Assert that INSN_CODE (insn) is non-negative. 40387 403882017-01-15 Segher Boessenkool <segher@kernel.crashing.org> 40389 40390 PR target/72749 40391 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the 40392 fallthrough. 40393 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label 40394 in the currently scheduled RTL fragment. 40395 403962017-01-15 Segher Boessenkool <segher@kernel.crashing.org> 40397 40398 PR rtl-optimization/78751 40399 * ifcvt.c (find_cond_trap): If we generated a non-existing insn, 40400 give up. 40401 404022017-01-14 Jeff Law <law@redhat.com> 40403 40404 PR tree-optimization/79090 40405 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and 40406 variable length stores. 40407 (compute_trims): Delete dead assignment to *trim_tail. 40408 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with 40409 zero length. 40410 404112017-01-14 Bernd Schmidt <bschmidt@redhat.com> 40412 40413 PR rtl-optimization/78626 40414 PR rtl-optimization/78727 40415 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle 40416 of a block, and split such blocks after everything else is finished. 40417 404182017-01-14 Alan Modra <amodra@gmail.com> 40419 40420 PR target/72749 40421 * combine.c (recog_for_combine_1): Set INSN_CODE before calling 40422 target legitimate_combined_insn. 40423 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define. 40424 (rs6000_legitimate_combined_insn): New function. 40425 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove 40426 all uses. 40427 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5. 40428 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6. 40429 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name. 40430 404312017-01-14 Gerald Pfeifer <gerald@pfeifer.com> 40432 40433 * doc/frontends.texi (G++ and GCC): Remove references to Java. 40434 404352017-01-13 Jeff Law <law@redhat.com> 40436 40437 PR tree-optimization/33562 40438 PR tree-optimization/61912 40439 PR tree-optimization/77485 40440 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than 40441 a statement. 40442 (delete_dead_assignment): Likewise. 40443 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than 40444 statement to delete_dead_call and delete_dead_assignment. 40445 404462017-01-13 David Malcolm <dmalcolm@redhat.com> 40447 40448 PR c/78304 40449 * substring-locations.c (format_warning_va): Strengthen case 1 so 40450 that both endpoints of the substring must be within the format 40451 range for just the substring to be printed. 40452 404532017-01-13 Uros Bizjak <ubizjak@gmail.com> 40454 40455 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable. 40456 * config/i386/i386.c (ix86_target_string): Add missing options 40457 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to 40458 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to 40459 flags_other and ix86_target_other to flags2_other. Display unknown 40460 isa2 options. 40461 (ix86_valid_target_attribute_inner_p): Add missing options and 40462 reorder options by implied ISAs, as in ix86_target_string. 40463 404642017-01-13 Richard Sandiford <richard.sandiford@arm.com> 40465 40466 * hash-table.h (hash_table::too_empty_p): New function. 40467 (hash_table::expand): Use it. 40468 (hash_table::traverse): Likewise. 40469 (hash_table::empty_slot): Use sizeof (value_type) instead of 40470 sizeof (PTR) to convert bytes to elements. Shrink the table 40471 if the current size is excessive for the current number of 40472 elements. 40473 404742017-01-13 Richard Sandiford <richard.sandiford@arm.com> 40475 40476 * ira-costs.c (record_reg_classes): Break from the inner loop 40477 early once alt_fail is known to be true. Update outer loop 40478 handling accordingly. 40479 404802017-01-13 Jeff Law <law@redhat.com> 40481 40482 * tree-ssa-dse.c (decrement_count): New function. 40483 (increment_start_addr, maybe_trim_memstar_call): Likewise. 40484 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly 40485 when we know the partially dead statement is a mem* function. 40486 40487 PR tree-optimization/61912 40488 PR tree-optimization/77485 40489 * tree-ssa-dse.c: Include expr.h. 40490 (maybe_trim_constructor_store): New function. 40491 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store. 40492 40493 PR tree-optimization/33562 40494 PR tree-optimization/61912 40495 PR tree-optimization/77485 40496 * doc/invoke.texi: Document new dse-max-object-size param. 40497 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM. 40498 * tree-ssa-dse.c: Include params.h. 40499 (dse_store_status): New enum. 40500 (initialize_ao_ref_for_dse): New, partially extracted from 40501 dse_optimize_stmt. 40502 (valid_ao_ref_for_dse, normalize_ref): New. 40503 (setup_live_bytes_from_ref, compute_trims): Likewise. 40504 (clear_bytes_written_by, maybe_trim_complex_store): Likewise. 40505 (maybe_trim_partially_dead_store): Likewise. 40506 (maybe_trim_complex_store): Likewise. 40507 (dse_classify_store): Renamed from dse_possibly_dead_store_p. 40508 Track what bytes live from the original store. Return tri-state 40509 for dead, partially dead or live. 40510 (dse_dom_walker): Add constructor, destructor and new private members. 40511 (delete_dead_call, delete_dead_assignment): New extracted from 40512 dse_optimize_stmt. 40513 (dse_optimize_stmt): Make a member of dse_dom_walker. 40514 Use initialize_ao_ref_for_dse. 40515 40516 PR tree-optimization/33562 40517 PR tree-optimization/61912 40518 PR tree-optimization/77485 40519 * sbitmap.h (bitmap_count_bits): Prototype. 40520 (bitmap_clear_range, bitmap_set_range): Likewise. 40521 * sbitmap.c (bitmap_clear_range): New function. 40522 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise. 40523 405242017-01-13 Martin Liska <mliska@suse.cz> 40525 40526 PR ipa/79043 40527 * function.c (set_cfun): Add new argument force. 40528 * function.h (set_cfun): Likewise. 40529 * ipa-inline-transform.c (inline_call): Use the function when 40530 strict alising from is dropped for function we inline to. 40531 405322017-01-13 Richard Biener <rguenther@suse.de> 40533 40534 * tree-pretty-print.c (dump_generic_node): Fix inverted condition 40535 for dumping GIMPLE INTEGER_CSTs. 40536 405372017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 40538 40539 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__ 40540 to 201112L since C++17. 40541 405422017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com> 40543 40544 PR sanitizer/78887 40545 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators 40546 if -fsanitize=kernel-address is present. 40547 405482017-01-13 Richard Biener <rguenther@suse.de> 40549 40550 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs 40551 as _Literal ( type ) number in case usual suffixes do not 40552 preserve all information. 40553 405542017-01-13 Richard Biener <rguenther@suse.de> 40555 40556 PR tree-optimization/77283 40557 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h 40558 and ssa-iterators.h. 40559 (is_feasible_trace): Implement a cost model based on joiner 40560 PHI node uses. 40561 405622017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com> 40563 40564 PR target/79004 40565 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting 40566 char or short to __float128/_Float128 directly. 40567 405682017-01-12 Martin Sebor <msebor@redhat.com> 40569 40570 to -Wformat-overflow. 40571 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust. 40572 (min_bytes_remaining): Same. 40573 (get_string_length): Same. 40574 (format_string): Same. 40575 (format_directive): Same. 40576 (add_bytes): Same. 40577 (pass_sprintf_length::handle_gimple_call): Same. 40578 405792017-01-12 Jakub Jelinek <jakub@redhat.com> 40580 40581 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove 40582 info.nowrite calls with no lhs that can't throw. Return bool 40583 whether gsi_remove has been called or not. 40584 (pass_sprintf_length::handle_gimple_call): Return bool whether 40585 try_substitute_return_value called gsi_remove. Formatting fix. 40586 (pass_sprintf_length::execute): Don't use gsi_remove if 40587 handle_gimple_call returned true. 40588 40589 PR bootstrap/79069 40590 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't 40591 be removed due to side-effects, don't remove following barrier nor 40592 turn the successor edge into fallthru edge. 40593 405942017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 40595 40596 PR target/79044 40597 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark 40598 element-reversing loads and stores as not swappable. 40599 406002017-01-12 Nathan Sidwell <nathan@acm.org> 40601 Nicolai Stange <nicstange@gmail.com> 40602 40603 * combine.c (try_combine): Don't ignore result of overlap checking 40604 loop. Combine overlap & asm check into single loop. 40605 406062017-01-12 Richard Biener <rguenther@suse.de> 40607 40608 * tree-pretty-print.c (dump_generic_node): Provide -gimple 40609 variant for MEM_REF. Sanitize INTEGER_CST for -gimple. 40610 406112017-01-12 Richard Biener <rguenther@suse.de> 40612 40613 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION 40614 and TS_TARGET_OPTION directly derive from TS_BASE. 40615 * tree-core.h (tree_optimization_option): Derive from tree_base. 40616 (tree_target_option): Likewise. 40617 406182017-01-11 Uros Bizjak <ubizjak@gmail.com> 40619 40620 * config/i386/i386.c (memory_address_length): Increase len 40621 only when rip_relative_addr_p returns false. 40622 406232017-01-11 Julia Koval <julia.koval@intel.com> 40624 40625 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New. 40626 (OPTION_MASK_ISA_SGX_SET): New. 40627 (ix86_handle_option): Handle OPT_msgx. 40628 * config.gcc: Added sgxintrin.h. 40629 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx. 40630 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__. 40631 * config/i386/i386.c (ix86_target_string): Add -msgx. 40632 (PTA_SGX): New. 40633 (ix86_option_override_internal): Handle new options. 40634 (ix86_valid_target_attribute_inner_p): Add sgx. 40635 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New. 40636 * config/i386/i386.opt: Add msgx. 40637 * config/i386/sgxintrin.h: New file. 40638 * config/i386/x86intrin.h: Add sgxintrin.h. 40639 406402017-01-11 Jakub Jelinek <jakub@redhat.com> 40641 40642 PR c++/71537 40643 * fold-const.c (maybe_nonzero_address): Return 1 for function 40644 local objects. 40645 (tree_single_nonzero_warnv_p): Don't handle function local objects 40646 here. 40647 40648 PR c++/72813 40649 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps 40650 of c-header. 40651 406522017-01-11 David Malcolm <dmalcolm@redhat.com> 40653 40654 PR driver/78877 40655 * opts.c: Include "spellcheck.h" 40656 (struct string_fragment): New struct. 40657 (struct edit_distance_traits<const string_fragment &>): New 40658 struct. 40659 (get_closest_sanitizer_option): New function. 40660 (parse_sanitizer_options): Offer suggestions for unrecognized arguments. 40661 406622017-01-11 Jakub Jelinek <jakub@redhat.com> 40663 40664 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease 40665 by 12. 40666 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always 40667 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12. 40668 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define. 40669 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE 40670 for initial die_offset if dwarf_split_debug_info. 40671 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for 40672 initial next_die_offset if dwo_id is non-NULL. Don't emit padding 40673 fields. 40674 (output_skeleton_debug_sections): Formatting fix. Use 40675 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of 40676 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding. 40677 406782017-01-11 Wilco Dijkstra <wdijkstr@arm.com> 40679 40680 * config/arm/cortex-a53.md: Add bypasses for 40681 cortex_a53_r2f_cvt. 40682 (cortex_a53_r2f): Only use for transfers. 40683 (cortex_a53_f2r): Likewise. 40684 (cortex_a53_r2f_cvt): Add reservation for conversions. 40685 (cortex_a53_f2r_cvt): Likewise. 40686 406872017-01-11 Tamar Christina <tamar.christina@arm.com> 40688 40689 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline 40690 to all inlined functions, change static to extern. 40691 406922017-01-11 Christophe Lyon <christophe.lyon@linaro.org> 40693 40694 PR target/78253 40695 * config/arm/arm.c (legitimize_pic_address): Handle reference to 40696 weak symbol. 40697 (arm_assemble_integer): Likewise. 40698 406992017-01-11 Richard Earnshaw <rearnsha@arm.com> 40700 40701 * config.gcc: Use new awk script to check CPU, FPU and architecture 40702 parameters for --with-... options. 40703 * config/arm/parsecpu.awk: New file 40704 * config/arm/arm-cpus.in: New file. 40705 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def 40706 files. 40707 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def 40708 files. 40709 * config/arm/t-arm: Update dependency rules. 40710 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead 40711 of processing .def files. 40712 * config/arm/genopt.sh: Deleted. 40713 * config/arm/gentune.sh: Deleted. 40714 * config/arm/arm-cores.def: Deleted. 40715 * config/arm/arm-arches.def: Deleted. 40716 * config/arm/arm-fpus.def: Deleted. 40717 * config/arm/arm-tune.md: Regenerated. 40718 * config/arm/arm-tables.opt: Regenerated. 40719 * config/arm/arm-cpu.h: New generated file. 40720 * config/arm/arm-cpu-data.h: New generated file. 40721 * config/arm/arm-cpu-cdata.h: New generated file. 40722 407232017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com> 40724 40725 PR lto/79042 40726 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized 40727 bit. 40728 (input_varpool_node): Unpack dynamically_initialized bit. 40729 407302017-01-11 Eric Botcazou <ebotcazou@adacore.com> 40731 40732 PR rtl-optimization/79032 40733 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test 40734 the alignment of the adjusted memory reference against that of MODE, 40735 instead of the alignment of the original memory reference. 40736 407372017-01-11 Martin Jambor <mjambor@suse.cz> 40738 40739 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL 40740 test. 40741 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial 40742 decorated functions. 40743 407442017-01-11 Richard Biener <rguenther@suse.de> 40745 40746 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also 40747 set range/nonnull info for PHI results. Do not set it on 40748 stmts marked for removal. 40749 407502017-01-10 Eric Botcazou <ebotcazou@adacore.com> 40751 40752 * expr.c (store_field): In the bitfield case, fetch the return value 40753 from the registers before applying a single big-endian adjustment. 40754 Always do a final load for a BLKmode value not larger than a word. 40755 407562017-01-10 David Malcolm <dmalcolm@redhat.com> 40757 40758 PR c++/77949 40759 * input.c (selftest::test_accessing_ordinary_linemaps): Verify 40760 that we correctly handle column numbers greater than 40761 LINE_MAP_MAX_COLUMN_NUMBER. 40762 407632017-01-10 Martin Sebor <msebor@redhat.com> 40764 40765 PR middle-end/78245 40766 * gimple-ssa-sprintf.c (get_destination_size): Call 40767 {init,fini}object_sizes. 40768 * tree-object-size.c (addr_object_size): Adjust. 40769 (pass_through_call): Adjust. 40770 (pass_object_sizes::execute): Adjust. 40771 * tree-object-size.h (fini_object_sizes): Declare. 40772 407732017-01-10 Martin Sebor <msebor@redhat.com> 40774 40775 PR tree-optimization/78775 40776 * builtins.c (get_size_range): Move... 40777 * calls.c: ...to here. 40778 (alloc_max_size): Accept zero argument. 40779 (operand_signed_p): Remove. 40780 (maybe_warn_alloc_args_overflow): Call get_size_range. 40781 * calls.h (get_size_range): Declare. 40782 407832017-01-10 Joe Seymour <joe.s@somniumtech.com> 40784 40785 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data 40786 from TI's devices.csv file as of September 2016. 40787 * config/msp430/msp430.c (msp430_mcu_data): Likewise. 40788 407892017-01-10 Sandra Loosemore <sandra@codesourcery.com> 40790 40791 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings. 40792 * doc/invoke.texi: Likewise. 40793 * doc/md.texi: Likewise. 40794 * doc/objc.texi: Likewise. 40795 407962017-01-10 Joshua Conner <joshconner@google.com> 40797 40798 * config/arm/fuchsia-elf.h: New file. 40799 * config/fuchsia.h: New file. 40800 * config.gcc (*-*-fuchsia*): Set native_system_header_dir. 40801 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to 40802 targets. 40803 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts. 40804 408052016-01-10 Richard Biener <rguenther@suse.de> 40806 40807 PR tree-optimization/79034 40808 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): 40809 Propagate out degenerate PHIs in the joiner. 40810 408112017-01-10 Martin Liska <mliska@suse.cz> 40812 40813 * ipa-icf.c (sort_sem_items_by_decl_uid): New function. 40814 (sort_congruence_classes_by_decl_uid): Likewise. 40815 (sort_congruence_class_groups_by_decl_uid): Likewise. 40816 (sem_item_optimizer::merge_classes): Sort class, groups in these 40817 classes and members in the groups by DECL_UID of declarations. 40818 This would make merge operations stable. 40819 408202017-01-10 Martin Liska <mliska@suse.cz> 40821 40822 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove 40823 usage of m_classes_vec. 40824 (sem_item_optimizer::~sem_item_optimizer): Likewise. 40825 (sem_item_optimizer::get_group_by_hash): Likewise. 40826 (sem_item_optimizer::subdivide_classes_by_equality): Likewise. 40827 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise. 40828 (sem_item_optimizer::verify_classes): Likewise. 40829 (sem_item_optimizer::process_cong_reduction): Likewise. 40830 (sem_item_optimizer::dump_cong_classes): Likewise. 40831 (sem_item_optimizer::merge_classes): Likewise. 40832 * ipa-icf.h (congruence_class_hash): Rename from 40833 congruence_class_group_hash. Remove declaration of m_classes_vec. 40834 408352017-01-10 Andrew Senkevich <andrew.senkevich@intel.com> 40836 40837 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, 40838 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New. 40839 * config.gcc: Add avx512vpopcntdqintrin.h. 40840 * config/i386/avx512vpopcntdqintrin.h: New. 40841 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New. 40842 * config/i386/i386-builtin-types.def: Add new types. 40843 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si, 40844 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di, 40845 __builtin_ia32_vpopcountq_v8di_mask): New. 40846 * config/i386/i386-c.c (ix86_target_macros_internal): Define 40847 __AVX512VPOPCNTDQ__. 40848 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq. 40849 (PTA_AVX512VPOPCNTDQ): Define. 40850 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ, 40851 TARGET_AVX512VPOPCNTDQ_P): Define. 40852 * config/i386/i386.opt: Add mavx512vpopcntdq. 40853 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h. 40854 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New. 40855 408562017-01-01 Jan Hubicka <hubicka@ucw.cz> 40857 40858 PR middle-end/77484 40859 * predict.def (PRED_CALL): Set to 67. 40860 408612017-01-09 Eric Botcazou <ebotcazou@adacore.com> 40862 40863 * expr.c (store_field): In the bitfield case, if the value comes from 40864 a function call and is of an aggregate type returned in registers, do 40865 not modify the field mode; extract the value in all cases if the mode 40866 is BLKmode and the size is not larger than a word. 40867 408682017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr> 40869 40870 PR target/71017 40871 * config/i386/cpuid.h: Fix undefined behavior. 40872 408732017-01-04 Jeff Law <law@redhat.com> 40874 40875 PR tree-optimization/79007 40876 PR tree-optimization/67955 40877 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be 40878 conservative for pt.null when flag_non_call_exceptions is on. 40879 408802017-01-09 Jakub Jelinek <jakub@redhat.com> 40881 40882 PR translation/79019 40883 PR translation/79020 40884 * params.def (PARAM_INLINE_MIN_SPEEDUP, 40885 PARAM_IPA_CP_SINGLE_CALL_PENALTY, 40886 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos 40887 in descriptions. 40888 * config/avr/avr.opt (maccumulate-args): Likewise. 40889 * config/msp430/msp430.opt (mwarn-mcu): Likewise. 40890 * common.opt (freport-bug): Likewise. 40891 * cif-code.def (CIF_FINAL_ERROR): Likewise. 40892 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise. 40893 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in 40894 translatable string. 40895 * config/i386/i386.c (function_value_32): Likewise. 40896 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise. 40897 * config/msp430/msp430.c (msp430_option_override, msp430_attr): 40898 Likewise. 40899 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise. 40900 * common/config/msp430/msp430-common.c (msp430_handle_option): 40901 Likewise. 40902 * symtab.c (symtab_node::verify_base): Likewise. 40903 * opts.c (set_debug_level): Likewise. 40904 * tree.c (verify_type_variant): Likewise. Fix typo in comment. 40905 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add 40906 missing whitespace to translatable strings. 40907 * config/avr/avr.md (bswapsi2): Fix typo in comment. 40908 * config/sh/superh.h: Likewise. 40909 * config/i386/xopintrin.h: Likewise. 40910 * config/i386/znver1.md: Likewise. 40911 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise. 40912 * ipa-inline-analysis.c (compute_inline_parameters): Likewise. 40913 * double-int.h (struct double_int): Likewise. 40914 * double-int.c (div_and_round_double): Likewise. 40915 * wide-int.cc: Likewise. 40916 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise. 40917 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. 40918 * cfgcleanup.c (crossjumps_occured): Renamed to ... 40919 (crossjumps_occurred): ... this. 40920 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg): 40921 Adjust all uses. 40922 40923 PR tree-optimization/78899 40924 * tree-if-conv.c (version_loop_for_if_conversion): Instead of 40925 returning bool return struct loop *, NULL for failure and the new 40926 loop on success. 40927 (versionable_outer_loop_p): Don't version outer loop if it has 40928 dont_vectorized bit set. 40929 (tree_if_conversion): When versioning outer loop, ensure 40930 tree_if_conversion is performed also on the inner loop of the 40931 non-vectorizable outer loop copy. 40932 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold 40933 LOOP_VECTORIZED in inner loop of the scalar outer loop and 40934 prevent vectorization of it. 40935 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure 40936 the outer loop vectorization of the non-scalar version is attempted 40937 before vectorization of the inner loop in scalar version. If 40938 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent 40939 vectorization of its inner loop. 40940 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop 40941 has 2 inner loops, rename also on edges from bb whose single pred 40942 is outer_loop->header. Fix typo in function comment. 40943 409442017-01-09 Martin Sebor <msebor@redhat.com> 40945 40946 PR bootstrap/79033 40947 * asan.c (asan_emit_stack_protection): Increase local buffer size 40948 to avoid snprintf truncation warning. 40949 409502017-01-09 Andrew Pinski <apinski@cavium.com> 40951 40952 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan 40953 to reference thunderx2t99 for the tuning structure 40954 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): 40955 Rename to ... 40956 (thunderx2t99_extra_costs): This. 40957 * config/aarch64/aarch64-tune.md: Regenerate. 40958 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ... 40959 (vulcan_addrcost_table): This. 40960 (vulcan_regmove_cost): Rename to ... 40961 (thunderx2t99_regmove_cost): This. 40962 (vulcan_vector_cost): Rename to ... 40963 (thunderx2t99_vector_cost): this. 40964 (vulcan_branch_cost): Rename to ... 40965 (thunderx2t99_branch_cost): This. 40966 (vulcan_tunings): Rename to ... 40967 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 . 40968 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99. 40969 409702017-01-09 Martin Jambor <mjambor@suse.cz> 40971 40972 PR ipa/78365 40973 PR ipa/78599 40974 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr. 40975 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function. 40976 (propagate_vr_accross_jump_function): Use the above function for all 40977 value range computations for pass-through jump functions and type 40978 converasion from explicit value range values. 40979 (ipcp_propagate_stage): Do not attempt to deduce types of formal 40980 parameters from TYPE_ARG_TYPES. 40981 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace. 40982 (ipa_write_node_info): Stream type of the actual argument. 40983 (ipa_read_node_info): Likewise. Also remove trailing whitespace. 40984 409852017-01-09 Martin Liska <mliska@suse.cz> 40986 40987 PR pch/78970 40988 * gcc.c (driver_handle_option): Handle OPT_E and set have_E. 40989 (lookup_compiler): Do not show error message with have_E. 40990 409912017-01-09 Jakub Jelinek <jakub@redhat.com> 40992 40993 PR tree-optimization/78938 40994 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR 40995 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use 40996 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of 40997 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting 40998 fixes. 40999 410002017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 41001 41002 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it 41003 is const0_rtx. 41004 410052017-01-09 Richard Biener <rguenther@suse.de> 41006 41007 PR tree-optimization/78997 41008 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA 41009 name condition properly. 41010 410112017-01-09 Richard Biener <rguenther@suse.de> 41012 41013 PR debug/79000 41014 * dwarf2out.c (is_cxx): New overload with context. 41015 (is_naming_typedef_decl): Use it. 41016 410172017-01-08 Sandra Loosemore <sandra@codesourcery.com> 41018 41019 * invoke.texi (Option Summary): Correct spacing in option lists 41020 and add line breaks to fix over-long lines. 41021 410222017-01-08 Sandra Loosemore <sandra@codesourcery.com> 41023 41024 PR middle-end/17660 41025 41026 * extend.texi (Common Variable Attributes): Add xref to GCC 41027 Internals manual to explain mode attribute keywords. 41028 410292017-01-08 Sandra Loosemore <sandra@codesourcery.com> 41030 41031 PR other/16519 41032 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options 41033 and Preprocessor Options. 41034 (Options for Linking): Document -pthread here.... 41035 (RS/6000 and PowerPC Options): ...not here. 41036 (Solaris 2 Options): ...or here. 41037 * doc/cppopts.texi: Document -pthread. 41038 410392017-01-08 Martin Sebor <msebor@redhat.com> 41040 41041 PR middle-end/77708 41042 * doc/invoke.texi (Warning Options): Document -Wformat-truncation. 41043 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt): 41044 New member functions. 41045 (format_directive): Used them. 41046 (add_bytes): Same. 41047 (pass_sprintf_length::handle_gimple_call): Same. 41048 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size 41049 to avoid truncation for any argument. 41050 (extract_affine_mul): Same. 41051 * tree.c (get_file_function_name): Same. 41052 410532017-01-01 Jan Hubicka <hubicka@ucw.cz> 41054 41055 PR middle-end/77484 41056 * predict.def (PRED_INDIR_CALL): Set to 86. 41057 410582017-01-07 Sandra Loosemore <sandra@codesourcery.com> 41059 41060 PR preprocessor/54124 41061 * doc/cppopts.texi: Reformat -d subtable to list the full name 41062 of the options. Add cross-reference to the docs for the general 41063 compiler -d options. 41064 * doc/invoke.texi (Developer Options): Add cross-reference to the 41065 preprocessor-specific -d option documentation. 41066 410672017-01-07 Sandra Loosemore <sandra@codesourcery.com> 41068 41069 PR preprocessor/13498 41070 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and 41071 redudant material, and reflect new command-line options. 41072 (System Headers): Likewise. 41073 410742017-01-07 Sandra Loosemore <sandra@codesourcery.com> 41075 41076 * doc/cppdiropts.texi: Merge documentation of -I, -iquote, 41077 -isystem, and -idirafter. Copy-edit. 41078 * doc/cppopts.texi: Copy-edit. Remove contradiction about 41079 default for -ftrack-macro-expansion. Delete obsolete and 41080 badly-formatted implementation details about -fdebug-cpp output. 41081 * doc/cppwarnopts.texi: Copy-edit. 41082 410832017-01-07 David Malcolm <dmalcolm@redhat.com> 41084 41085 PR c++/72803 41086 * input.c (selftest::test_accessing_ordinary_linemaps): Verify 41087 that the transition from a max line width >= 1<<10 to narrower 41088 lines works correctly. 41089 410902017-01-07 Alexandre Oliva <aoliva@redhat.com> 41091 41092 * doc/options.texi (PerFunction): New. 41093 * opt-functions.awk (switch_flags): Map both Optimization and 41094 PerFunction to CL_OPTIMIZATION. 41095 * opth-gen.awk: Test for PerFunction flag along with 41096 Optimization. 41097 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set 41098 it only when the latter is present. Skip those that don't in 41099 the hash function generator. 41100 * common.opt (fvar-tracking): Mark as PerFunction instead of 41101 Optimization. 41102 (fvar-tracking-assignments): Likewise. 41103 (fvar-tracking-assignments-toggle): Likewise. 41104 (fvar-tracking-uninit): Likewise. 41105 411062017-01-07 Jakub Jelinek <jakub@redhat.com> 41107 41108 PR translation/79018 41109 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between 41110 the and store. 41111 411122017-01-06 Mikael Pettersson <mikpelinux@gmail.com> 41113 41114 PR target/57583 41115 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option. 41116 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle 41117 TARGET_LONG_JUMP_TABLE_OFFSETS. 41118 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise. 41119 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise. 41120 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise. 41121 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise. 41122 * config/m68k/m68k.md (tablejump expander): Likewise. 41123 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject 41124 TARGET_LONG_JUMP_TABLE_OFFSETS. 41125 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS. 41126 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets. 41127 411282017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com> 41129 David Holsgrove <david.holsgrove@xilinx.com> 41130 41131 * common/config/microblaze/microblaze-common.c 41132 (TARGET_EXCEPT_UNWIND_INFO): Remove. 41133 * config/microblaze/microblaze-protos.h (microblaze_eh_return): 41134 New prototype. 41135 * config/microblaze/microblaze.c (microblaze_must_save_register) 41136 (microblaze_expand_epilogue, microblaze_return_addr): Handle 41137 calls_eh_return. 41138 (microblaze_eh_return): New function. 41139 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET) 41140 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM) 41141 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros. 41142 * config/microblaze/microblaze.md (eh_return): New pattern. 41143 411442017-01-06 Jakub Jelinek <jakub@redhat.com> 41145 41146 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP, 41147 GCC_DIAGNOSTIC_STRINGIFY): Define. 41148 41149 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning. 41150 411512017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41152 41153 * config/arm/arm.md (<mcrr>): New. 41154 (<mrrc>): New. 41155 * config/arm/arm.c (arm_arch5te): New. 41156 (arm_option_override): Set arm_arch5te. 41157 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc 41158 and mrrc2. 41159 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to... 41160 (arm_mcrr_qualifiers): ... this. New. 41161 (MRRC_QUALIFIERS): Define to... 41162 (arm_mrrc_qualifiers): ... this. New. 41163 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc, 41164 __arm_mrrc2): New. 41165 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New. 41166 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New. 41167 (MRRCI, mrrc, MRRC): New. 41168 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC, 41169 VUNSPEC_MRRC2): New. 41170 411712017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41172 41173 * config/arm/arm.md (<mcr>): New. 41174 (<mrc>): New. 41175 * config/arm/arm.c (arm_coproc_builtin_available): Add 41176 support for mcr, mrc, mcr2 and mrc2. 41177 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to... 41178 (arm_mcr_qualifiers): ... this. New. 41179 (MRC_QUALIFIERS): Define to ... 41180 (arm_mrc_qualifiers): ... this. New. 41181 (MCR_QUALIFIERS): Define to ... 41182 (arm_mcr_qualifiers): ... this. New. 41183 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2, 41184 __arm_mrc2): New. 41185 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New. 41186 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New. 41187 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC, 41188 VUNSPEC_MRC2): New. 41189 411902017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41191 41192 * config/arm/arm.md (*ldc): New. 41193 (*stc): New. 41194 (<ldc>): New. 41195 (<stc>): New. 41196 * config/arm/arm.c (arm_coproc_builtin_available): Add 41197 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l. 41198 (arm_coproc_ldc_stc_legitimate_address): New. 41199 * config/arm/arm-builtins.c (arm_type_qualifiers): Add 41200 'qualifier_const_pointer'. 41201 (LDC_QUALIFIERS): Define to... 41202 (arm_ldc_qualifiers): ... this. New. 41203 (STC_QUALIFIERS): Define to... 41204 (arm_stc_qualifiers): ... this. New. 41205 * config/arm/arm-protos.h 41206 (arm_coproc_ldc_stc_legitimate_address): New. 41207 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc, 41208 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New. 41209 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc, 41210 stc2, stcl, stc2l): New. 41211 * config/arm/constraints.md (Uz): New. 41212 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New. 41213 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL, 41214 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL, 41215 VUNSPEC_STC2L): New. 41216 412172017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41218 41219 * config/arm/arm.md (<cdp>): New. 41220 * config/arm/arm.c (neon_const_bounds): Rename this ... 41221 (arm_const_bounds): ... this. 41222 (arm_coproc_builtin_available): New. 41223 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase. 41224 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'. 41225 (CDP_QUALIFIERS): Define to... 41226 (arm_cdp_qualifiers): ... this. New. 41227 (void_UP): Define. 41228 (arm_expand_builtin_args): Add case for 6 arguments. 41229 * config/arm/arm-protos.h (neon_const_bounds): Rename this ... 41230 (arm_const_bounds): ... this. 41231 (arm_coproc_builtin_available): New. 41232 * config/arm/arm_acle.h (__arm_cdp): New. 41233 (__arm_cdp2): New. 41234 * config/arm/arm_acle_builtins.def (cdp): New. 41235 (cdp2): New. 41236 * config/arm/iterators.md (CDPI,CDP,cdp): New. 41237 * config/arm/neon.md: Rename all 'neon_const_bounds' to 41238 'arm_const_bounds'. 41239 * config/arm/types.md (coproc): New. 41240 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New. 41241 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics. 41242 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok, 41243 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets. 41244 412452017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41246 41247 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New. 41248 (UBINOP_QUALIFIERS): New. 41249 (si_UP): Define. 41250 (acle_builtin_data): New. Change comment. 41251 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H, 41252 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH, 41253 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include 41254 arm_acle_builtins.def. 41255 (ARM_BUILTIN_ACLE_PATTERN_START): Define. 41256 (arm_init_acle_builtins): New. 41257 (CRC32_BUILTIN): Remove. 41258 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w, 41259 crc32cb, crc32ch and crc32cw. 41260 (arm_init_crc32_builtins): Remove. 41261 (arm_init_builtins): Use arm_init_acle_builtins rather 41262 than arm_init_crc32_builtins. 41263 (arm_expand_acle_builtin): New. 41264 (arm_expand_builtin): Use 'arm_expand_acle_builtin'. 41265 * config/arm/arm_acle_builtins.def: New. 41266 412672017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> 41268 41269 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to .. 41270 (arm_builtin_datum): ... this. 41271 (arm_init_neon_builtin): Rename to ... 41272 (arm_init_builtin): ... this. Add a new parameters PREFIX 41273 and USE_SIG_IN_NAME. 41274 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with 41275 'arm_init_builtin'. Replace type 'neon_builtin_datum' with 41276 'arm_builtin_datum'. 41277 (arm_init_vfp_builtins): Likewise. 41278 (builtin_arg): Rename enum's replacing 'NEON_ARG' with 41279 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY. 41280 (arm_expand_neon_args): Rename to ... 41281 (arm_expand_builtin_args): ... this. Rename builtin_arg 41282 enum values and differentiate between ARG_BUILTIN_MEMORY 41283 and ARG_BUILTIN_NEON_MEMORY. 41284 (arm_expand_neon_builtin_1): Rename to ... 41285 (arm_expand_builtin_1): ... this. Rename builtin_arg enum 41286 values, arm_expand_builtin_args and add bool parameter NEON. 41287 (arm_expand_neon_builtin): Use arm_expand_builtin_1. 41288 (arm_expand_vfp_builtin): Likewise. 41289 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused. 41290 412912017-01-01 Jan Hubicka <hubicka@ucw.cz> 41292 41293 PR middle-end/77484 41294 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59. 41295 * predict.c (tree_estimate_probability_bb): Reverse direction of 41296 polymorphic call predictor. 41297 412982017-01-06 David Malcolm <dmalcolm@redhat.com> 41299 41300 * passes.c (execute_one_pass): Split out pass-skipping logic into... 41301 (determine_pass_name_match): ...this new function and... 41302 (should_skip_pass_p): ...this new function. 41303 413042017-01-06 Nathan Sidwell <nathan@acm.org> 41305 41306 * ipa-visibility.c (function_and_variable_visibility): Reformat 41307 comments and long lines. Remove extrneous if. 41308 * symtab.c (symtab_node::make_decl_local): Fix code format. 41309 (symtab_node::set_section_for_node): Fix comment typo. 41310 413112017-01-06 Martin Liska <mliska@suse.cz> 41312 41313 PR bootstrap/79003 41314 * lra-constraints.c: Rename invariant to lra_invariant. 41315 * predict.c (set_even_probabilities): Initialize e to NULL. 41316 413172017-01-05 Martin Sebor <msebor@redhat.com> 41318 41319 PR tree-optimization/78910 41320 * gimple-ssa-sprintf.c (tree_digits): Add an argument. 41321 (format_integer): Correct off-by-one error in the handling 41322 of precision with negative numbers in signed conversions.. 41323 413242017-01-05 Eric Botcazou <ebotcazou@adacore.com> 41325 41326 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry. 41327 413282017-01-05 Jakub Jelinek <jakub@redhat.com> 41329 41330 PR tree-optimization/71016 41331 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to 41332 factor_out_conditional_conversion. Formatting fix. 41333 (factor_out_conditional_conversion): Add cond_stmt argument. 41334 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of 41335 cond_stmt and if arg0_def_stmt is not the only stmt in its bb. 41336 Formatting fix. 41337 413382017-01-05 David Malcolm <dmalcolm@redhat.com> 41339 41340 * Makefile.in (OBJS): Add read-md.o, read-rtl.o, 41341 read-rtl-function.o, and selftest-rtl.o. 41342 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h. 41343 (selftest::aarch64_test_loading_full_dump): New function. 41344 (selftest::aarch64_run_selftests): New function. 41345 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to 41346 selftest::aarch64_run_selftests. 41347 * config/i386/i386.c 41348 (selftest::ix86_test_loading_dump_fragment_1): New function. 41349 (selftest::ix86_test_loading_call_insn): New function. 41350 (selftest::ix86_test_loading_full_dump): New function. 41351 (selftest::ix86_test_loading_unspec): New function. 41352 (selftest::ix86_run_selftests): Call the new functions. 41353 * emit-rtl.c (maybe_set_max_label_num): New function. 41354 * emit-rtl.h (maybe_set_max_label_num): New decl. 41355 * function.c (instantiate_decls): Guard call to 41356 instantiate_decls_1 with if (DECL_INITIAL (fndecl)). 41357 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove 41358 "static". 41359 * gensupport.c (gen_reader::gen_reader): Pass "false" 41360 for new "compact" param of rtx_reader. 41361 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)" 41362 rather than an empty string for NULL strings. 41363 * read-md.c: Potentially include config.h rather than bconfig.h. 41364 Wrap include of errors.h with #ifdef GENERATOR_FILE. 41365 (have_error): New global, copied from errors.c. 41366 (md_reader::read_name): Rename to... 41367 (md_reader::read_name_1): ...this, adding "out_loc" param, 41368 and converting "missing name or number" to returning false, rather 41369 than failing. 41370 (md_reader::read_name): Reimplement in terms of read_name_1. 41371 (md_reader::read_name_or_nil): New function. 41372 (md_reader::read_string): Handle "(nil)" by returning NULL. 41373 (md_reader::md_reader): Add new param "compact". 41374 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE. 41375 (md_reader::read_file): New method. 41376 * read-md.h (md_reader::md_reader): Add new param "compact". 41377 (md_reader::read_file): New method. 41378 (md_reader::is_compact): New accessor. 41379 (md_reader::read_name): Convert return type from void to file_location. 41380 (md_reader::read_name_or_nil): New decl. 41381 (md_reader::read_name_1): New decl. 41382 (md_reader::m_compact): New field. 41383 (noop_reader::noop_reader): Pass "false" for new "compact" param 41384 of rtx_reader. 41385 (rtx_reader::rtx_reader): Add new "compact" param. 41386 (rtx_reader::read_rtx_operand): Make virtual and convert return 41387 type from void to rtx. 41388 (rtx_reader::read_until): New decl. 41389 (rtx_reader::handle_any_trailing_information): New virtual function. 41390 (rtx_reader::postprocess): New virtual function. 41391 (rtx_reader::finalize_string): New virtual function. 41392 (rtx_reader::m_in_call_function_usage): New field. 41393 (rtx_reader::m_reuse_rtx_by_id): New field. 41394 * read-rtl-function.c: New file. 41395 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function. 41396 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro. 41397 (selftest::verify_three_block_rtl_cfg): New decl. 41398 * read-rtl-function.h: New file. 41399 * read-rtl.c: Potentially include config.h rather than bconfig.h. 41400 For host, include function.h, memmodel.h, and emit-rtl.h. 41401 (one_time_initialization): New function. 41402 (struct compact_insn_name): New struct. 41403 (compact_insn_names): New array. 41404 (find_code): Handle insn codes in compact dumps. 41405 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE. 41406 (bind_subst_iter_and_attr): Likewise. 41407 (add_condition_to_string): Likewise. 41408 (add_condition_to_rtx): Likewise. 41409 (apply_attribute_uses): Likewise. 41410 (add_current_iterators): Likewise. 41411 (apply_iterators): Likewise. 41412 (initialize_iterators): Guard usage of apply_subst_iterator with 41413 #ifdef GENERATOR_FILE. 41414 (read_conditions): Wrap with #ifdef GENERATOR_FILE. 41415 (md_reader::read_mapping): Likewise. 41416 (add_define_attr_for_define_subst): Likewise. 41417 (add_define_subst_attr): Likewise. 41418 (read_subst_mapping): Likewise. 41419 (check_code_iterator): Likewise. 41420 (rtx_reader::read_rtx): Likewise. Move one-time initialization 41421 logic to... 41422 (one_time_initialization): New function. 41423 (rtx_reader::read_until): New method. 41424 (read_flags): New function. 41425 (parse_reg_note_name): New function. 41426 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL. 41427 Handle reuse_rtx ids. 41428 Wrap iterator lookup within #ifdef GENERATOR_FILE. 41429 Add parsing support for RTL dumps, mirroring the special-cases in 41430 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID 41431 values, and calling handle_any_trailing_information. 41432 (rtx_reader::read_rtx_operand): Convert return type from void 41433 to rtx, returning return_rtx. Handle case 'e'. Call 41434 finalize_string on XSTR and XTMPL fields. 41435 (rtx_reader::read_nested_rtx): Handle dumps in which trailing 41436 "(nil)" values were omitted. Call the postprocess vfunc on the 41437 return_rtx. 41438 (rtx_reader::rtx_reader): Add new "compact" param and pass to base 41439 class ctor. Initialize m_in_call_function_usage. Call 41440 one_time_initialization. 41441 * rtl-tests.c (selftest::test_uncond_jump): Call 41442 set_new_first_and_last_insn. 41443 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE. 41444 * selftest-rtl.c: New file. 41445 * selftest-rtl.h (class selftest::rtl_dump_test): New class. 41446 (selftest::get_insn_by_uid): New decl. 41447 * selftest-run-tests.c (selftest::run_tests): Call 41448 read_rtl_function_c_tests. 41449 * selftest.h (selftest::read_rtl_function_c_tests): New decl. 41450 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function 41451 dumps. 41452 414532017-01-05 Uros Bizjak <ubizjak@gmail.com> 41454 41455 * config/i386/i386.md (*testqi_ext_3): No need to handle memory 41456 operands in a special way. Assert that pos+len <= mode precision. 41457 414582017-01-05 Jakub Jelinek <jakub@redhat.com> 41459 41460 * common.opt (fvect-cost-model): Remove RejectNegative flag, use 41461 3 argument Alias with unlimited for the negative form. 41462 (fno-vect-cost-model): Removed. 41463 414642017-01-05 Martin Liska <mliska@suse.cz> 41465 41466 * hsa-gen.c (gen_hsa_divmod): New function. 41467 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD. 41468 414692017-01-05 Martin Liska <mliska@suse.cz> 41470 41471 PR pch/78970 41472 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled 41473 header. 41474 414752017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 41476 41477 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for 41478 small constant length operands. 41479 414802017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 41481 41482 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes 41483 between loop iterations. 41484 414852017-01-05 Martin Liska <mliska@suse.cz> 41486 41487 PR sanitizer/78815 41488 * gimplify.c (gimplify_decl_expr): Compare to 41489 asan_poisoned_variables instread of checking flags. 41490 (gimplify_target_expr): Likewise. 41491 (gimplify_expr): Likewise. 41492 (gimplify_function_tree): Conditionally initialize 41493 asan_poisoned_variables. 41494 414952017-01-04 Jeff Law <law@redhat.com> 41496 41497 PR tree-optimizatin/78812 41498 * rtl.h (contains_mem_rtx_p): Prototype. 41499 * ifcvt.c (containts_mem_rtx_p): Move from here to... 41500 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage. 41501 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover 41502 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look 41503 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs. 41504 415052017-01-04 Alexandre Oliva <aoliva@redhat.com> 41506 41507 * input.c (assert_char_at_range): Default-initialize actual_range. 41508 415092017-01-04 Alexandre Oliva <aoliva@redhat.com> 41510 41511 * df-scan.c (df_ref_create_structure): Make regno unsigned, 41512 to match the caller. 41513 415142017-01-04 Alexandre Oliva <aoliva@redhat.com> 41515 41516 * cfgexpand.c (expand_gimple_basic_block): Disregard debug 41517 insns after final jump in test to emit dummy move. 41518 415192017-01-04 Alexandre Oliva <aoliva@redhat.com> 41520 41521 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New. 41522 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts. 41523 415242017-01-04 Alexandre Oliva <aoliva@redhat.com> 41525 41526 * multiple_target.c (create_dispatcher_calls): Init e_next. 41527 * tree-ssa-loop-split.c (split_loop): Init border. 41528 * tree-vect-loop.c (vect_determine_vectorization_factor): Init 41529 scalar_type. 41530 415312017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com> 41532 41533 PR target/71977 41534 PR target/70568 41535 PR target/78823 41536 * config/rs6000/predicates.md (sf_subreg_operand): New predicate. 41537 (altivec_register_operand): Do not return true if the operand 41538 contains a SUBREG mixing SImode and SFmode. 41539 (vsx_register_operand): Likewise. 41540 (vsx_reg_sfsubreg_ok): New predicate. 41541 (vfloat_operand): Do not return true if the operand contains a 41542 SUBREG mixing SImode and SFmode. 41543 (vint_operand): Likewise. 41544 (vlogical_operand): Likewise. 41545 (gpc_reg_operand): Likewise. 41546 (int_reg_operand): Likewise. 41547 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration. 41548 * config/rs6000/rs6000.c (valid_sf_si_move): New function to 41549 determine if a MOVSI or MOVSF operation contains SUBREGs that mix 41550 SImode and SFmode. 41551 (rs6000_emit_move_si_sf_subreg): New helper function. 41552 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily 41553 fixup SUBREGs involving SImode and SFmode. 41554 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand 41555 numbers for the new peephole2 optimization. 41556 (peephole2 for SFmode unions): New peephole2 to optimize cases in 41557 the GLIBC math library that do AND/IOR/XOR operations on single 41558 precision floating point. 41559 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal 41560 target macros to say whether we need to avoid SUBREGs mixing 41561 SImode and SFmode. 41562 (TARGET_ALLOW_SF_SUBREG): Likewise. 41563 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs. 41564 (UNSPEC_SI_FROM_SF): Likewise. 41565 (iorxor): Change spacing. 41566 (and_ior_xor): New iterator for AND, IOR, and XOR. 41567 (movsi_from_sf): New insns for SImode/SFmode SUBREG support. 41568 (movdi_from_sf_zero_ext): Likewise. 41569 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand 41570 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support. 41571 (movsf_from_si): New insn for SImode/SFmode SUBREG support. 41572 (fma<mode>4): Use gpc_reg_operand instead of register_operand. 41573 (fms<mode>4): Likewise. 41574 (fnma<mode>4): Likewise. 41575 (fnms<mode>4): Likewise. 41576 (nfma<mode>4): Likewise. 41577 (nfms<mode>4): Likewise. 41578 415792017-01-04 Marek Polacek <polacek@redhat.com> 41580 41581 PR c++/64767 41582 * doc/invoke.texi: Document -Wpointer-compare. 41583 415842017-01-04 Jakub Jelinek <jakub@redhat.com> 41585 41586 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without 41587 RejectNegative. 41588 41589 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location 41590 descriptions for -gdwarf-5 and emit them as uleb128 instead of 41591 2-byte data. 41592 415932017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org> 41594 41595 PR target/78056 41596 * doc/sourcebuild.texi (PowerPC-specific attributes): Add 41597 documentation of the powerpc_popcntb_ok attribute. 41598 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add 41599 code to issue warning messages if a requested CPU configuration is 41600 not supported by the binary (assembler and loader) toolchain. 41601 (spe_init_builtins): Add two assertions to prevent ICE if attempt is 41602 made to define a built-in function that has been disabled. 41603 (paired_init_builtins): Add assertion to prevent ICE if attempt is 41604 made to define a built-in function that has been disabled. 41605 (altivec_init_builtins): Add comment explaining why definition 41606 of the DST built-in functions is not preceded by an assertion 41607 check. Add assertions to prevent ICE if attempts are made to 41608 define an altivec predicate or an abs* built-in function that has 41609 been disabled. 41610 (htm_init_builtins): Add comment explaining why definition of the 41611 htm built-in functions is not preceded by an assertion check. 41612 416132017-01-04 Jeff Law <law@redhat.com> 41614 41615 PR tree-optimizatin/67955 41616 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first. 41617 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify 41618 the points-to solution does not include pt_null. Use DECL_PT_UID 41619 unconditionally. 41620 416212017-01-04 Uros Bizjak <ubizjak@gmail.com> 41622 41623 * config/i386/i386.md (HI/SImode test with imm to QImode splitters): 41624 Use gen_int_mode instead of gen_lopwart for const_int operands. 41625 416262017-01-04 Jakub Jelinek <jakub@redhat.com> 41627 41628 PR tree-optimization/71563 41629 * match.pd: Simplify X << Y into X if Y is known to be 0 or 41630 out of range value - has low bits known to be zero. 41631 416322017-01-04 Alan Modra <amodra@gmail.com> 41633 41634 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4. 41635 * configure: Regenerate. 41636 * config.in: Regenerate. 41637 416382017-01-04 Jakub Jelinek <jakub@redhat.com> 41639 41640 PR bootstrap/77569 41641 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for 41642 a substring of the message, but strcmp with the whole message. Ifdef 41643 ENABLE_NLS, translate the message first using dgettext. 41644 416452017-01-03 Jeff Law <law@redhat.com> 41646 41647 PR tree-optimizatin/78856 41648 * tree-ssa-threadupdate.c: Include tree-vectorizer.h. 41649 (mark_threaded_blocks): Remove code to truncate thread paths that 41650 cross multiple loop headers. Instead invalidate the cached loop 41651 iteration information and handle case of a thread path walking 41652 into an irreducible region. 41653 416542017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com> 41655 41656 PR target/78900 41657 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some 41658 assertions. Add support for doing the signbit if the IEEE 128-bit 41659 floating point value is in a GPR. 41660 * config/rs6000/rs6000.md (Fsignbit): Delete. 41661 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa". 41662 Update the length attribute if the value is in a GPR. 41663 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate 41664 the sign or zero extension instruction, since the value is always 0/1. 41665 (signbit<mode>2_dm2): Delete using <Fsignbit>. 41666 41667 PR target/78953 41668 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are 41669 extracting SImode to a GPR register so that we can generate a 41670 store, limit the vector to be in a traditional Altivec register 41671 for the vextuwrx instruction. 41672 416732017-01-03 Ian Lance Taylor <iant@google.com> 41674 41675 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE. 41676 416772017-01-03 Martin Sebor <msebor@redhat.com> 41678 41679 PR tree-optimization/78696 41680 * gimple-ssa-sprintf.c (format_floating): Correct handling of 41681 precision. Use MPFR for %f for greater fidelity. Correct handling 41682 of %g. 41683 (pass_sprintf_length::compute_format_length): Set width and precision 41684 specified by asrerisk to void_node for vararg functions. 41685 (try_substitute_return_value): Adjust dump output. 41686 416872017-01-03 David Edelsohn <dje.gcc@gmail.com> 41688 41689 * doc/invoke.texi (RS6000 options): LRA is enabled by default. 41690 416912017-01-03 Eric Botcazou <ebotcazou@adacore.com> 41692 41693 * doc/invoke.texi (SPARC options): Document -mlra as the default. 41694 * config/sparc/sparc.c (sparc_option_override): Force LRA unless 41695 -mlra/-mno-lra was passed to the compiler. 41696 416972017-01-03 James Cowgill <James.Cowgill@imgtec.com> 41698 41699 PR rtl-optimization/65618 41700 * emit-rtl.c (try_split): Move initialization of "before" and 41701 "after" to just before the call to emit_insn_after_setloc. 41702 417032017-01-03 Gerald Pfeifer <gerald@pfeifer.com> 41704 41705 * doc/md.texi (Standard Names): Remove reference to Java frontend. 41706 417072017-01-03 Pierre-Marie de Rodat <derodat@adacore.com> 41708 41709 * dwarf2out.c (gen_enumeration_type_die): When 41710 -gno-strict-dwarf, add a DW_AT_encoding attribute. 41711 417122017-01-03 Jakub Jelinek <jakub@redhat.com> 41713 41714 PR tree-optimization/78965 41715 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length): 41716 Change first argument from const call_info & to call_info &. For %n 41717 set info.nowrite to false. 41718 41719 PR middle-end/78901 41720 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change 41721 possibly throwing calls. 41722 41723 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME 41724 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs 41725 and fns handling, rather than in a separate case SSA_NAME. 41726 417272017-01-02 Jeff Law <law@redhat.com> 41728 41729 * config/darwin-driver.c (darwin_driver_init): Const-correctness 41730 fixes for first_period and second_period variables. 41731 417322017-01-02 Uros Bizjak <ubizjak@gmail.com> 41733 41734 PR target/78967 41735 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec. 41736 (*insvqi_1): New insn pattern. 41737 (*insvqi_1_mem_rex64): Ditto. 41738 (*insvqi_2): Ditto. 41739 (*insvqi_3): Rename from *insvqi. 41740 41741 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag. 41742 417432017-01-02 Gerald Pfeifer <gerald@pfeifer.com> 41744 41745 * doc/cfg.texi (Edges): Remove reference to Java. 41746 (Maintaining the CFG): Ditto. 41747 417482017-01-01 Jan Hubicka <hubicka@ucw.cz> 41749 41750 PR middle-end/77674 41751 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of 41752 transparent aliases. 41753 417542017-01-01 Jan Hubicka <hubicka@ucw.cz> 41755 41756 PR middle-end/77484 41757 * predict.def (PRED_CALL): Update hitrate. 41758 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors. 41759 * predict.c (tree_estimate_probability_bb): Split CALL predictor 41760 into direct/indirect/polymorphic variants. 41761 417622017-01-01 Jakub Jelinek <jakub@redhat.com> 41763 41764 Update copyright years. 41765 41766 * gcc.c (process_command): Update copyright notice dates. 41767 * gcov-dump.c (print_version): Ditto. 41768 * gcov.c (print_version): Ditto. 41769 * gcov-tool.c (print_version): Ditto. 41770 * gengtype.c (create_file): Ditto. 41771 * doc/cpp.texi: Bump @copying's copyright year. 41772 * doc/cppinternals.texi: Ditto. 41773 * doc/gcc.texi: Ditto. 41774 * doc/gccint.texi: Ditto. 41775 * doc/gcov.texi: Ditto. 41776 * doc/install.texi: Ditto. 41777 * doc/invoke.texi: Ditto. 41778 41779Copyright (C) 2017 Free Software Foundation, Inc. 41780 41781Copying and distribution of this file, with or without modification, 41782are permitted in any medium without royalty provided the copyright 41783notice and this notice are preserved. 41784