]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
[16/77] Add scalar_int_mode_pod
[thirdparty/gcc.git] / gcc / ChangeLog
1 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
2 Alan Hayward <alan.hayward@arm.com>
3 David Sherwood <david.sherwood@arm.com>
4
5 * coretypes.h (pod_mode): New type.
6 (scalar_int_mode_pod): New typedef.
7 * machmode.h (pod_mode): New class.
8 (int_n_data_t::m): Change type to scalar_int_mode_pod.
9 * genmodes.c (emit_mode_int_n): Update accordingly.
10 * lower-subreg.h (target_lower_subreg): Change type to
11 scalar_int_mode_pod.
12 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
13 scalar_int_mode_pod.
14
15 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
16 Alan Hayward <alan.hayward@arm.com>
17 David Sherwood <david.sherwood@arm.com>
18
19 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
20 machine_mode to scalar_int_mode.
21 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
22 (rs6000_option_override_internal): Remove cast to int.
23 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
24 machine_mode to scalar_int_mode.
25 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
26 (rs6000_option_override_internal): Remove cast to int.
27 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
28 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
29 to machine_mode.
30 * config/s390/s390.c (s390_expand_builtin): Likewise.
31 * coretypes.h (scalar_int_mode): New type.
32 (opt_scalar_int_mode): New typedef.
33 * machmode.h (scalar_int_mode): New class.
34 (scalar_int_mode::includes_p): New function.
35 (byte_mode): Change type to scalar_int_mode.
36 (word_mode): Likewise.
37 (ptr_mode): Likewise.
38 * emit-rtl.c (byte_mode): Likewise.
39 (word_mode): Likewise.
40 (ptr_mode): Likewise.
41 (init_derived_machine_modes): Update accordingly.
42 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
43 and MODE_PARTIAL_INT.
44 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
45 opt_scalar_int_mode.
46
47 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
48 Alan Hayward <alan.hayward@arm.com>
49 David Sherwood <david.sherwood@arm.com>
50
51 * target.def (libgcc_floating_mode_supported_p): Take a
52 scalar_float_mode.
53 * doc/tm.texi: Regenerate.
54 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
55 scalar_float_mode.
56 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
57 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
58 Likewise.
59
60 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
61 Alan Hayward <alan.hayward@arm.com>
62 David Sherwood <david.sherwood@arm.com>
63
64 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
65 * doc/tm.texi: Regenerate.
66 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
67 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
68 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
69 * targhooks.h (default_floatn_mode): Likewise.
70 * targhooks.c (default_floatn_mode): Likewise.
71 * tree.c (build_common_tree_nodes): Update accordingly.
72
73 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
74 Alan Hayward <alan.hayward@arm.com>
75 David Sherwood <david.sherwood@arm.com>
76
77 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
78 (mode_iterator::iterate_p): Likewise.
79 (mode_iterator::get_wider): Likewise.
80 * expr.c (init_expr_target): Use opt_scalar_float_mode.
81
82 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
83 Alan Hayward <alan.hayward@arm.com>
84 David Sherwood <david.sherwood@arm.com>
85
86 * coretypes.h (opt_scalar_float_mode): New typedef.
87 * machmode.h (float_mode_for_size): New function.
88 * emit-rtl.c (double_mode): Delete.
89 (init_emit_once): Use float_mode_for_size.
90 * stor-layout.c (layout_type): Likewise.
91 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
92
93 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
94 Alan Hayward <alan.hayward@arm.com>
95 David Sherwood <david.sherwood@arm.com>
96
97 * output.h (assemble_real): Take a scalar_float_mode.
98 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
99 * config/arm/arm.md (consttable_4): Likewise.
100 (consttable_8): Likewise.
101 (consttable_16): Likewise.
102 * config/mips/mips.md (consttable_float): Likewise.
103 * config/s390/s390.c (s390_output_pool_entry): Likewise.
104 * varasm.c (assemble_real): Take a scalar_float_mode.
105 (output_constant_pool_2): Update accordingly.
106 (output_constant): Likewise.
107
108 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
109 Alan Hayward <alan.hayward@arm.com>
110 David Sherwood <david.sherwood@arm.com>
111
112 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
113 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
114 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
115 (native_encode_real): Likewise.
116 (native_interpret_real): Likewise.
117 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
118 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
119
120 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
121 Alan Hayward <alan.hayward@arm.com>
122 David Sherwood <david.sherwood@arm.com>
123
124 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
125 <scalar_float_mode>. Simplify.
126 (gen_extend_conv_libfunc): Likewise.
127
128 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
129 Alan Hayward <alan.hayward@arm.com>
130 David Sherwood <david.sherwood@arm.com>
131
132 * coretypes.h (scalar_float_mode): New type.
133 * machmode.h (mode_traits::from_int): Use machine_mode if
134 USE_ENUM_MODES is defined.
135 (is_a): New function.
136 (as_a): Likewise.
137 (dyn_cast): Likewise.
138 (scalar_float_mode): New class.
139 (scalar_float_mode::includes_p): New function.
140 (is_float_mode): Likewise.
141 * gdbhooks.py (MachineModePrinter): New class.
142 (build_pretty_printer): Use it for scalar_float_mode.
143 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
144 (format_helper::format_helper): Turn into a template.
145 * genmodes.c (get_mode_class): New function.
146 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
147 or machine_mode if none.
148 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
149 as_a <scalar_float_mode>.
150 * dwarf2out.c (mem_loc_descriptor): Likewise.
151 (insert_float): Likewise.
152 (add_const_value_attribute): Likewise.
153 * simplify-rtx.c (simplify_immed_subreg): Likewise.
154 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
155 (expand_unop): Update accordingly.
156 (expand_abs_nojump): Likewise.
157 (expand_copysign_absneg): Take a scalar_float_mode.
158 (expand_copysign_bit): Likewise.
159 (expand_copysign): Update accordingly.
160
161 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
162 Alan Hayward <alan.hayward@arm.com>
163 David Sherwood <david.sherwood@arm.com>
164
165 * coretypes.h (opt_mode): New class.
166 * machmode.h (opt_mode): Likewise.
167 (opt_mode::else_void): New function.
168 (opt_mode::require): Likewise.
169 (opt_mode::exists): Likewise.
170 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
171 (GET_MODE_2XWIDER_MODE): Likewise.
172 (mode_iterator::get_wider): Update accordingly.
173 (mode_iterator::get_2xwider): Likewise.
174 (mode_iterator::get_known_wider): Likewise, turning into a template.
175 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
176 forcing a wider mode to exist.
177 * config/cr16/cr16.h (LONG_REG_P): Likewise.
178 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
179 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
180 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
181 * lower-subreg.c (init_lower_subreg): Likewise.
182 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
183 on the final iteration.
184 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
185 a wider mode exists before asking for a move pattern.
186 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
187 forcing a wider mode to exist.
188 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
189 returning false if no such mode exists.
190 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
191 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
192 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
193 Avoid checking for a MODE_INT if we already know the mode is not a
194 SCALAR_INT_MODE_P.
195 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
196 forcing a wider mode to exist.
197 (expmed_mult_highpart_optab): Likewise.
198 (expmed_mult_highpart): Likewise.
199 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
200 using else_void.
201 * lto-streamer-in.c (lto_input_mode_table): Likewise.
202 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
203 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
204 * internal-fn.c (expand_mul_overflow): Update use of
205 GET_MODE_2XWIDER_MODE.
206 * omp-low.c (omp_clause_aligned_alignment): Likewise.
207 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
208 GET_MODE_WIDER_MODE.
209 (convert_plusminus_to_widen): Likewise.
210 * tree-switch-conversion.c (array_value_type): Likewise.
211 * var-tracking.c (emit_note_insn_var_location): Likewise.
212 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
213 Return false inside rather than outside the loop if no wider mode
214 exists
215 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
216 and GET_MODE_2XWIDER_MODE
217 (can_compare_p): Use else_void.
218 * gdbhooks.py (OptMachineModePrinter): New class.
219 (build_pretty_printer): Use it for opt_mode.
220
221 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
222 Alan Hayward <alan.hayward@arm.com>
223 David Sherwood <david.sherwood@arm.com>
224
225 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
226 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
227
228 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
229 Alan Hayward <alan.hayward@arm.com>
230 David Sherwood <david.sherwood@arm.com>
231
232 * machmode.h (mode_traits): New structure.
233 (get_narrowest_mode): New function.
234 (mode_iterator::start): Likewise.
235 (mode_iterator::iterate_p): Likewise.
236 (mode_iterator::get_wider): Likewise.
237 (mode_iterator::get_known_wider): Likewise.
238 (mode_iterator::get_2xwider): Likewise.
239 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
240 (FOR_EACH_MODE): Likewise.
241 (FOR_EACH_MODE_FROM): Likewise.
242 (FOR_EACH_MODE_UNTIL): Likewise.
243 (FOR_EACH_WIDER_MODE): Likewise.
244 (FOR_EACH_2XWIDER_MODE): Likewise.
245 * builtins.c (expand_builtin_strlen): Use new mode iterators.
246 * combine.c (simplify_comparison): Likewise
247 * config/i386/i386.c (type_natural_mode): Likewise.
248 * cse.c (cse_insn): Likewise.
249 * dse.c (find_shift_sequence): Likewise.
250 * emit-rtl.c (init_derived_machine_modes): Likewise.
251 (init_emit_once): Likewise.
252 * explow.c (hard_function_value): Likewise.
253 * expmed.c (extract_fixed_bit_field_1): Likewise.
254 (extract_bit_field_1): Likewise.
255 (expand_divmod): Likewise.
256 (emit_store_flag_1): Likewise.
257 * expr.c (init_expr_target): Likewise.
258 (convert_move): Likewise.
259 (alignment_for_piecewise_move): Likewise.
260 (widest_int_mode_for_size): Likewise.
261 (emit_block_move_via_movmem): Likewise.
262 (copy_blkmode_to_reg): Likewise.
263 (set_storage_via_setmem): Likewise.
264 (compress_float_constant): Likewise.
265 * omp-low.c (omp_clause_aligned_alignment): Likewise.
266 * optabs-query.c (get_best_extraction_insn): Likewise.
267 * optabs.c (expand_binop): Likewise.
268 (expand_twoval_unop): Likewise.
269 (expand_twoval_binop): Likewise.
270 (widen_leading): Likewise.
271 (widen_bswap): Likewise.
272 (expand_parity): Likewise.
273 (expand_unop): Likewise.
274 (prepare_cmp_insn): Likewise.
275 (prepare_float_lib_cmp): Likewise.
276 (expand_float): Likewise.
277 (expand_fix): Likewise.
278 (expand_sfix_optab): Likewise.
279 * postreload.c (move2add_use_add2_insn): Likewise.
280 * reg-stack.c (reg_to_stack): Likewise.
281 * reginfo.c (choose_hard_reg_mode): Likewise.
282 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
283 * stor-layout.c (mode_for_size): Likewise.
284 (smallest_mode_for_size): Likewise.
285 (mode_for_vector): Likewise.
286 (finish_bitfield_representative): Likewise.
287 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
288 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
289 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
290 * var-tracking.c (prepare_call_arguments): Likewise.
291
292 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
293 Alan Hayward <alan.hayward@arm.com>
294 David Sherwood <david.sherwood@arm.com>
295
296 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
297 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
298 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
299 * machmode.h (mode_size): Move earlier in file.
300 (mode_precision): Likewise.
301 (mode_inner): Likewise.
302 (mode_nunits): Likewise.
303 (mode_unit_size): Likewise.
304 (unit_unit_precision): Likewise.
305 (mode_wider): Likewise.
306 (mode_2xwider): Likewise.
307 (machine_mode): New class.
308 (mode_to_bytes): New function.
309 (mode_to_bits): Likewise.
310 (mode_to_precision): Likewise.
311 (mode_to_inner): Likewise.
312 (mode_to_unit_size): Likewise.
313 (mode_to_unit_precision): Likewise.
314 (mode_to_nunits): Likewise.
315 (GET_MODE_SIZE): Use mode_to_bytes.
316 (GET_MODE_BITSIZE): Use mode_to_bits.
317 (GET_MODE_PRECISION): Use mode_to_precision.
318 (GET_MODE_INNER): Use mode_to_inner.
319 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
320 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
321 (GET_MODE_NUNITS): Use mode_to_nunits.
322 * system.h (ALWAYS_INLINE): New macro.
323 * config/powerpcspe/powerpcspe-c.c
324 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
325 int for arg1_mode and arg2_mode.
326
327 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
328 Alan Hayward <alan.hayward@arm.com>
329 David Sherwood <david.sherwood@arm.com>
330
331 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
332 Prefix mode names with E_ in case statements.
333 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
334 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
335 (aarch64_split_simd_move): Likewise.
336 (aarch64_gen_storewb_pair): Likewise.
337 (aarch64_gen_loadwb_pair): Likewise.
338 (aarch64_gen_store_pair): Likewise.
339 (aarch64_gen_load_pair): Likewise.
340 (aarch64_get_condition_code_1): Likewise.
341 (aarch64_constant_pool_reload_icode): Likewise.
342 (get_rsqrte_type): Likewise.
343 (get_rsqrts_type): Likewise.
344 (get_recpe_type): Likewise.
345 (get_recps_type): Likewise.
346 (aarch64_gimplify_va_arg_expr): Likewise.
347 (aarch64_simd_container_mode): Likewise.
348 (aarch64_emit_load_exclusive): Likewise.
349 (aarch64_emit_store_exclusive): Likewise.
350 (aarch64_expand_compare_and_swap): Likewise.
351 (aarch64_gen_atomic_cas): Likewise.
352 (aarch64_emit_bic): Likewise.
353 (aarch64_emit_atomic_swap): Likewise.
354 (aarch64_emit_atomic_load_op): Likewise.
355 (aarch64_evpc_trn): Likewise.
356 (aarch64_evpc_uzp): Likewise.
357 (aarch64_evpc_zip): Likewise.
358 (aarch64_evpc_ext): Likewise.
359 (aarch64_evpc_rev): Likewise.
360 (aarch64_evpc_dup): Likewise.
361 (aarch64_gen_ccmp_first): Likewise.
362 (aarch64_gen_ccmp_next): Likewise.
363 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
364 (alpha_emit_xfloating_libcall): Likewise.
365 (emit_insxl): Likewise.
366 (alpha_arg_type): Likewise.
367 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
368 (arc_preferred_simd_mode): Likewise.
369 (arc_secondary_reload): Likewise.
370 (get_arc_condition_code): Likewise.
371 (arc_print_operand): Likewise.
372 (arc_legitimate_constant_p): Likewise.
373 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
374 * config/arc/arc.md (casesi_load): Likewise.
375 (casesi_compact_jump): Likewise.
376 * config/arc/predicates.md (proper_comparison_operator): Likewise.
377 (cc_use_register): Likewise.
378 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
379 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
380 (arm_init_iwmmxt_builtins): Likewise.
381 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
382 (neon_expand_vector_init): Likewise.
383 (arm_attr_length_move_neon): Likewise.
384 (maybe_get_arm_condition_code): Likewise.
385 (arm_emit_vector_const): Likewise.
386 (arm_preferred_simd_mode): Likewise.
387 (arm_output_iwmmxt_tinsr): Likewise.
388 (thumb1_output_casesi): Likewise.
389 (thumb2_output_casesi): Likewise.
390 (arm_emit_load_exclusive): Likewise.
391 (arm_emit_store_exclusive): Likewise.
392 (arm_expand_compare_and_swap): Likewise.
393 (arm_evpc_neon_vuzp): Likewise.
394 (arm_evpc_neon_vzip): Likewise.
395 (arm_evpc_neon_vrev): Likewise.
396 (arm_evpc_neon_vtrn): Likewise.
397 (arm_evpc_neon_vext): Likewise.
398 (arm_validize_comparison): Likewise.
399 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
400 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
401 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
402 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
403 (c6x_preferred_simd_mode): Likewise.
404 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
405 (epiphany_rtx_costs): Likewise.
406 * config/epiphany/predicates.md (proper_comparison_operator):
407 Likewise.
408 * config/frv/frv.c (condexec_memory_operand): Likewise.
409 (frv_emit_move): Likewise.
410 (output_move_single): Likewise.
411 (output_condmove_single): Likewise.
412 (frv_hard_regno_mode_ok): Likewise.
413 (frv_matching_accg_mode): Likewise.
414 * config/h8300/h8300.c (split_adds_subs): Likewise.
415 (h8300_rtx_costs): Likewise.
416 (h8300_print_operand): Likewise.
417 (compute_mov_length): Likewise.
418 (output_logical_op): Likewise.
419 (compute_logical_op_length): Likewise.
420 (compute_logical_op_cc): Likewise.
421 (h8300_shift_needs_scratch_p): Likewise.
422 (output_a_shift): Likewise.
423 (compute_a_shift_length): Likewise.
424 (compute_a_shift_cc): Likewise.
425 (expand_a_rotate): Likewise.
426 (output_a_rotate): Likewise.
427 * config/i386/i386.c (classify_argument): Likewise.
428 (function_arg_advance_32): Likewise.
429 (function_arg_32): Likewise.
430 (function_arg_64): Likewise.
431 (function_value_64): Likewise.
432 (ix86_gimplify_va_arg): Likewise.
433 (ix86_legitimate_constant_p): Likewise.
434 (put_condition_code): Likewise.
435 (split_double_mode): Likewise.
436 (ix86_avx256_split_vector_move_misalign): Likewise.
437 (ix86_expand_vector_logical_operator): Likewise.
438 (ix86_split_idivmod): Likewise.
439 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
440 (ix86_build_const_vector): Likewise.
441 (ix86_build_signbit_mask): Likewise.
442 (ix86_match_ccmode): Likewise.
443 (ix86_cc_modes_compatible): Likewise.
444 (ix86_expand_branch): Likewise.
445 (ix86_expand_sse_cmp): Likewise.
446 (ix86_expand_sse_movcc): Likewise.
447 (ix86_expand_int_sse_cmp): Likewise.
448 (ix86_expand_vec_perm_vpermi2): Likewise.
449 (ix86_expand_vec_perm): Likewise.
450 (ix86_expand_sse_unpack): Likewise.
451 (ix86_expand_int_addcc): Likewise.
452 (ix86_split_to_parts): Likewise.
453 (ix86_vectorize_builtin_gather): Likewise.
454 (ix86_vectorize_builtin_scatter): Likewise.
455 (avx_vpermilp_parallel): Likewise.
456 (inline_memory_move_cost): Likewise.
457 (ix86_tieable_integer_mode_p): Likewise.
458 (x86_maybe_negate_const_int): Likewise.
459 (ix86_expand_vector_init_duplicate): Likewise.
460 (ix86_expand_vector_init_one_nonzero): Likewise.
461 (ix86_expand_vector_init_one_var): Likewise.
462 (ix86_expand_vector_init_concat): Likewise.
463 (ix86_expand_vector_init_interleave): Likewise.
464 (ix86_expand_vector_init_general): Likewise.
465 (ix86_expand_vector_set): Likewise.
466 (ix86_expand_vector_extract): Likewise.
467 (emit_reduc_half): Likewise.
468 (ix86_emit_i387_round): Likewise.
469 (ix86_mangle_type): Likewise.
470 (ix86_expand_round_sse4): Likewise.
471 (expand_vec_perm_blend): Likewise.
472 (canonicalize_vector_int_perm): Likewise.
473 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
474 (expand_vec_perm_1): Likewise.
475 (expand_vec_perm_interleave3): Likewise.
476 (expand_vec_perm_even_odd_pack): Likewise.
477 (expand_vec_perm_even_odd_1): Likewise.
478 (expand_vec_perm_broadcast_1): Likewise.
479 (ix86_vectorize_vec_perm_const_ok): Likewise.
480 (ix86_expand_vecop_qihi): Likewise.
481 (ix86_expand_mul_widen_hilo): Likewise.
482 (ix86_expand_sse2_abs): Likewise.
483 (ix86_expand_pextr): Likewise.
484 (ix86_expand_pinsr): Likewise.
485 (ix86_preferred_simd_mode): Likewise.
486 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
487 * config/i386/sse.md (*andnot<mode>3): Likewise.
488 (<mask_codefor><code><mode>3<mask_name>): Likewise.
489 (*<code><mode>3): Likewise.
490 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
491 (ia64_expand_atomic_op): Likewise.
492 (ia64_arg_type): Likewise.
493 (ia64_mode_to_int): Likewise.
494 (ia64_scalar_mode_supported_p): Likewise.
495 (ia64_vector_mode_supported_p): Likewise.
496 (expand_vec_perm_broadcast): Likewise.
497 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
498 (iq2000_function_arg_advance): Likewise.
499 (iq2000_function_arg): Likewise.
500 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
501 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
502 (m68k_libcall_value): Likewise.
503 (m68k_function_value): Likewise.
504 (sched_attr_op_type): Likewise.
505 * config/mcore/mcore.c (mcore_output_move): Likewise.
506 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
507 Likewise.
508 (microblaze_function_arg): Likewise.
509 * config/mips/mips.c (mips16_build_call_stub): Likewise.
510 (mips_print_operand): Likewise.
511 (mips_mode_ok_for_mov_fmt_p): Likewise.
512 (mips_vector_mode_supported_p): Likewise.
513 (mips_preferred_simd_mode): Likewise.
514 (mips_expand_vpc_loongson_even_odd): Likewise.
515 (mips_expand_vec_unpack): Likewise.
516 (mips_expand_vi_broadcast): Likewise.
517 (mips_expand_vector_init): Likewise.
518 (mips_expand_vec_reduc): Likewise.
519 (mips_expand_msa_cmp): Likewise.
520 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
521 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
522 (cc_flags_for_mode): Likewise.
523 * config/msp430/msp430.c (msp430_print_operand): Likewise.
524 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
525 (nds32_output_casesi_pc_relative): Likewise.
526 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
527 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
528 (nvptx_gen_unpack): Likewise.
529 (nvptx_gen_pack): Likewise.
530 (nvptx_gen_shuffle): Likewise.
531 (nvptx_gen_wcast): Likewise.
532 (nvptx_preferred_simd_mode): Likewise.
533 * config/pa/pa.c (pa_secondary_reload): Likewise.
534 * config/pa/predicates.md (base14_operand): Likewise.
535 * config/powerpcspe/powerpcspe-c.c
536 (altivec_resolve_overloaded_builtin): Likewise.
537 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
538 Likewise.
539 (rs6000_preferred_simd_mode): Likewise.
540 (output_vec_const_move): Likewise.
541 (rs6000_expand_vector_extract): Likewise.
542 (rs6000_split_vec_extract_var): Likewise.
543 (reg_offset_addressing_ok_p): Likewise.
544 (rs6000_legitimate_offset_address_p): Likewise.
545 (rs6000_legitimize_address): Likewise.
546 (rs6000_emit_set_const): Likewise.
547 (rs6000_const_vec): Likewise.
548 (rs6000_emit_move): Likewise.
549 (spe_build_register_parallel): Likewise.
550 (rs6000_darwin64_record_arg_recurse): Likewise.
551 (swap_selector_for_mode): Likewise.
552 (spe_init_builtins): Likewise.
553 (paired_init_builtins): Likewise.
554 (altivec_init_builtins): Likewise.
555 (do_load_for_compare): Likewise.
556 (rs6000_generate_compare): Likewise.
557 (rs6000_expand_float128_convert): Likewise.
558 (emit_load_locked): Likewise.
559 (emit_store_conditional): Likewise.
560 (rs6000_output_function_epilogue): Likewise.
561 (rs6000_handle_altivec_attribute): Likewise.
562 (rs6000_function_value): Likewise.
563 (emit_fusion_gpr_load): Likewise.
564 (emit_fusion_p9_load): Likewise.
565 (emit_fusion_p9_store): Likewise.
566 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
567 (fusion_gpr_mem_load): Likewise.
568 (fusion_addis_mem_combo_load): Likewise.
569 (fusion_addis_mem_combo_store): Likewise.
570 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
571 (fusion_gpr_mem_load): Likewise.
572 (fusion_addis_mem_combo_load): Likewise.
573 (fusion_addis_mem_combo_store): Likewise.
574 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
575 Likewise.
576 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
577 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
578 (rs6000_preferred_simd_mode): Likewise.
579 (output_vec_const_move): Likewise.
580 (rs6000_expand_vector_extract): Likewise.
581 (rs6000_split_vec_extract_var): Likewise.
582 (reg_offset_addressing_ok_p): Likewise.
583 (rs6000_legitimate_offset_address_p): Likewise.
584 (rs6000_legitimize_address): Likewise.
585 (rs6000_emit_set_const): Likewise.
586 (rs6000_const_vec): Likewise.
587 (rs6000_emit_move): Likewise.
588 (rs6000_darwin64_record_arg_recurse): Likewise.
589 (swap_selector_for_mode): Likewise.
590 (paired_init_builtins): Likewise.
591 (altivec_init_builtins): Likewise.
592 (rs6000_expand_float128_convert): Likewise.
593 (emit_load_locked): Likewise.
594 (emit_store_conditional): Likewise.
595 (rs6000_output_function_epilogue): Likewise.
596 (rs6000_handle_altivec_attribute): Likewise.
597 (rs6000_function_value): Likewise.
598 (emit_fusion_gpr_load): Likewise.
599 (emit_fusion_p9_load): Likewise.
600 (emit_fusion_p9_store): Likewise.
601 * config/rx/rx.c (rx_gen_move_template): Likewise.
602 (flags_from_mode): Likewise.
603 * config/s390/predicates.md (s390_alc_comparison): Likewise.
604 (s390_slb_comparison): Likewise.
605 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
606 (s390_vector_mode_supported_p): Likewise.
607 (s390_cc_modes_compatible): Likewise.
608 (s390_match_ccmode_set): Likewise.
609 (s390_canonicalize_comparison): Likewise.
610 (s390_emit_compare_and_swap): Likewise.
611 (s390_branch_condition_mask): Likewise.
612 (s390_rtx_costs): Likewise.
613 (s390_secondary_reload): Likewise.
614 (__SECONDARY_RELOAD_CASE): Likewise.
615 (s390_expand_cs): Likewise.
616 (s390_preferred_simd_mode): Likewise.
617 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
618 * config/sh/sh.c (sh_print_operand): Likewise.
619 (dump_table): Likewise.
620 (sh_secondary_reload): Likewise.
621 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
622 * config/sh/sh.md (casesi_worker_1): Likewise.
623 (casesi_worker_2): Likewise.
624 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
625 (fcc_comparison_operator): Likewise.
626 * config/sparc/sparc.c (sparc_expand_move): Likewise.
627 (emit_soft_tfmode_cvt): Likewise.
628 (sparc_preferred_simd_mode): Likewise.
629 (output_cbranch): Likewise.
630 (sparc_print_operand): Likewise.
631 (sparc_expand_vec_perm_bmask): Likewise.
632 (vector_init_bshuffle): Likewise.
633 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
634 (spu_vector_mode_supported_p): Likewise.
635 (spu_expand_insv): Likewise.
636 (spu_emit_branch_or_set): Likewise.
637 (spu_handle_vector_attribute): Likewise.
638 (spu_builtin_splats): Likewise.
639 (spu_builtin_extract): Likewise.
640 (spu_builtin_promote): Likewise.
641 (spu_expand_sign_extend): Likewise.
642 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
643 (tilegx_simd_int): Likewise.
644 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
645 (tilepro_simd_int): Likewise.
646 * config/v850/v850.c (const_double_split): Likewise.
647 (v850_print_operand): Likewise.
648 (ep_memory_offset): Likewise.
649 * config/vax/vax.c (vax_rtx_costs): Likewise.
650 (vax_output_int_move): Likewise.
651 (vax_output_int_add): Likewise.
652 (vax_output_int_subtract): Likewise.
653 * config/visium/predicates.md (visium_branch_operator): Likewise.
654 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
655 (visium_print_operand_address): Likewise.
656 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
657 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
658 (xtensa_expand_conditional_branch): Likewise.
659 (xtensa_copy_incoming_a7): Likewise.
660 (xtensa_output_literal): Likewise.
661 * dfp.c (decimal_real_maxval): Likewise.
662 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
663
664 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
665 Alan Hayward <alan.hayward@arm.com>
666 David Sherwood <david.sherwood@arm.com>
667
668 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
669 (mode_nunits_inline): Likewise.
670 (mode_inner_inline): Likewise.
671 (mode_unit_size_inline): Likewise.
672 (mode_unit_precision_inline): Likewise.
673 (emit_insn_modes_h): Likewise. Also emit a #define of the
674 unprefixed name.
675 (emit_mode_wider): Add an E_ prefix to mode names.
676 (emit_mode_complex): Likewise.
677 (emit_mode_inner): Likewise.
678 (emit_mode_adjustments): Likewise.
679 (emit_mode_int_n): Likewise.
680 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
681 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
682 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
683 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
684 (CRC32_BUILTIN, ENTRY): Likewise.
685 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
686 (aarch64_pop_regs): Likewise.
687 (aarch64_process_components): Likewise.
688 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
689 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
690 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
691 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
692 * config/arm/arm.c (arm_init_libfuncs): Likewise.
693 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
694 Likewise.
695 * config/i386/i386-builtin.def (pcmpestr): Likewise.
696 (pcmpistr): Likewise.
697 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
698 * config/mmix/mmix.c (mmix_output_condition): Likewise.
699 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
700 Likewise.
701 * config/rl78/rl78.c (mduc_regs): Likewise.
702 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
703 (htm_expand_builtin): Likewise.
704 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
705 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
706 * config/xtensa/xtensa.c (print_operand): Likewise.
707 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
708 (NUM_MODE_VECTOR_INT): Likewise.
709 * genoutput.c (null_operand): Likewise.
710 (output_operand_data): Likewise.
711 * genrecog.c (print_parameter_value): Likewise.
712 * lra.c (debug_operand_data): Likewise.
713
714 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
715
716 * dwarf2out.c (scompare_loc_descriptor_wide)
717 (scompare_loc_descriptor_narrow): New functions, split out from...
718 (scompare_loc_descriptor): ...here.
719 * expmed.c (emit_store_flag_int): New function, split out from...
720 (emit_store_flag): ...here.
721
722 2017-08-30 Richard Biener <rguenther@suse.de>
723
724 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
725 (dwarf2out_early_finish): Move setting of AT_pubnames from
726 early debug output to early finish.
727
728 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
729
730 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
731 and -mdata-region to the assembler.
732
733 2017-08-30 Richard Biener <rguenther@suse.de>
734
735 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
736 attributes.
737 (gen_subprogram_die): Add DW_AT_object_pointer only early.
738 (dwarf2out_early_global_decl): Only generate a DIE for the
739 abstract origin if it doesn't already exist or is a declaration DIE.
740 (resolve_addr): Do not add the linkage name twice when
741 generating a stub DIE for the DW_TAG_GNU_call_site target.
742
743 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
744
745 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
746 Use machine_mode rather than int for arg1_mode.
747
748 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
749
750 PR target/82015
751 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
752 that the second argument of the built-in functions to unpack
753 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
754 switch statement instead a lot of if statements.
755 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
756 Allow 64-bit values to be in Altivec registers as well as
757 traditional floating point registers.
758 (pack<mode>, FMOVE128_VSX iterator): Likewise.
759
760 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
761
762 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
763 MAX_REGS_PER_ADDRESS == 1.
764
765 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
766
767 * config/i386/i386.opt (flag_fentry): Do not init to -1.
768 * config/i386/i386.c (ix86_option_override_internal): Simplify
769 setting of opts->x_flag_entry.
770
771 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
772 Jakub Jelinek <jakub@redhat.com>
773 Richard Biener <rguenther@suse.de>
774
775 PR tree-optimization/81503
776 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
777 folded constant fits in the target type; reorder tests for clarity.
778
779 2017-08-29 Martin Liska <mliska@suse.cz>
780
781 * passes.def: Include pass_lower_switch.
782 * stmt.c (dump_case_nodes): Remove and move to
783 tree-switch-conversion.
784 (case_values_threshold): Likewise.
785 (expand_switch_as_decision_tree_p): Likewise.
786 (emit_case_decision_tree): Likewise.
787 (expand_case): Likewise.
788 (balance_case_nodes): Likewise.
789 (node_has_low_bound): Likewise.
790 (node_has_high_bound): Likewise.
791 (node_is_bounded): Likewise.
792 (emit_case_nodes): Likewise.
793 (struct simple_case_node): New struct.
794 (add_case_node): Remove.
795 (emit_case_dispatch_table): Use vector instead of case_list.
796 (reset_out_edges_aux): Remove.
797 (compute_cases_per_edge): Likewise.
798 (expand_case): Build list of simple_case_node.
799 (expand_sjlj_dispatch_table): Use it.
800 * tree-switch-conversion.c (struct case_node): Moved from
801 stmt.c and adjusted.
802 (emit_case_nodes): Likewise.
803 (node_has_low_bound): Likewise.
804 (node_has_high_bound): Likewise.
805 (node_is_bounded): Likewise.
806 (case_values_threshold): Likewise.
807 (reset_out_edges_aux): Likewise.
808 (compute_cases_per_edge): Likewise.
809 (add_case_node): Likewise.
810 (dump_case_nodes): Likewise.
811 (balance_case_nodes): Likewise.
812 (expand_switch_as_decision_tree_p): Likewise.
813 (emit_jump): Likewise.
814 (emit_case_decision_tree): Likewise.
815 (try_switch_expansion): Likewise.
816 (do_jump_if_equal): Likewise.
817 (emit_cmp_and_jump_insns): Likewise.
818 (fix_phi_operands_for_edge): New function.
819 (record_phi_operand_mapping): Likewise.
820 (class pass_lower_switch): New pass.
821 (pass_lower_switch::execute): New function.
822 (make_pass_lower_switch): Likewise.
823 (conditional_probability):
824 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
825 * tree-pass.h: Add make_pass_lower_switch.
826
827 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
828
829 PR target/80993
830 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
831 handlers as used.
832
833 2017-08-29 Richard Biener <rguenther@suse.de>
834
835 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
836 we do not add a DW_AT_inline attribute twice.
837 (gen_subprogram_die): Remove code setting DW_AT_inline on
838 DECL_ABSTRACT_P nodes.
839
840 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
841
842 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
843 calls to internal functions.
844 (gimplify_modify_expr): Likewise.
845 * tree-call-cdce.c (use_internal_fn): Likewise.
846 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
847 (convert_to_divmod): Set the nothrow flag.
848 * tree-if-conv.c (predicate_mem_writes): Likewise.
849 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
850 (vectorizable_call): Likewise.
851 (vectorizable_store): Likewise.
852 (vectorizable_load): Likewise.
853 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
854 (vect_recog_mask_conversion_pattern): Likewise.
855
856 2017-08-29 Martin Liska <mliska@suse.cz>
857
858 PR other/39851
859 * gcc.c (driver_handle_option): Add new argument.
860 * opts-common.c (handle_option): Pass
861 target_option_override_hook.
862 * opts-global.c (lang_handle_option): Add new option.
863 (set_default_handlers): Add new argument.
864 (decode_options): Likewise.
865 * opts.c (target_handle_option): Likewise.
866 (common_handle_option): Call target_option_override_hook.
867 * opts.h (struct cl_option_handler_func): Add hook for
868 target option override.
869 (struct cl_option_handlers): Likewise.
870 (set_default_handlers): Add new argument.
871 (decode_options): Likewise.
872 (common_handle_option): Likewise.
873 (target_handle_option): Likewise.
874 * toplev.c (toplev::main): Pass targetm.target_option.override
875 hook.
876
877 2017-08-29 Richard Biener <rguenther@suse.de>
878 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
879
880 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
881 life to the active subtree.
882
883 2017-08-28 Jeff Law <law@redhat.com>
884
885 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
886 derive_equivalences.
887 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
888 Code moved into....
889 (edge_info::derive_equivalences): New private member function
890
891 * tree-ssa-dom.c (class edge_info): Changed from a struct
892 to a class. Add ctor/dtor, methods and data members.
893 (edge_info::edge_info): Renamed from allocate_edge_info.
894 Initialize additional members.
895 (edge_info::~edge_info): New.
896 (free_dom_edge_info): Delete the edge info.
897 (record_edge_info): Use new class & associated member functions.
898 Tighten forms for testing for edge equivalences.
899 (record_temporary_equivalences): Iterate over the simple
900 equivalences rather than assuming there's only one per edge.
901 (cprop_into_successor_phis): Iterate over the simple
902 equivalences rather than assuming there's only one per edge.
903 (optimize_stmt): Use operand_equal_p rather than pointer
904 equality for mini-DSE code.
905
906 2017-08-28 Nathan Sidwell <nathan@acm.org>
907
908 * gcc.c (execute): Fold SIGPIPE handling into switch
909 statement. Adjust internal error message.
910
911 2017-08-28 Richard Biener <rguenther@suse.de>
912
913 PR debug/81993
914 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
915 Do nothing for removed DIEs.
916
917 2017-08-28 Richard Biener <rguenther@suse.de>
918
919 PR tree-optimization/81977
920 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
921 memcpy.
922
923 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
924
925 PR target/80640
926 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
927 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
928 using targetm.gen_mem_thread_fence.
929
930 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
931
932 PR target/81995
933 * config/i386/i386.md (*<btsc><mode>): Change operand 2
934 predicate to register_operand. Reorder operands.
935 (*btr<mode>): Ditto.
936 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
937 (*btr<mode>_mask): Ditto.
938
939 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
940
941 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
942 * config/rs6000/xmmintrin.h: New file.
943 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
944
945 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
946
947 PR target/81504
948 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
949 parameter and_insn and return it.
950 (recombine_lvx_pattern): Insert a copy to ensure availability of
951 the base register of the copied masking operation at the point of
952 the instruction replacement.
953 (recombine_stvx_pattern): Likewise.
954
955 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
956
957 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
958 undocumented switches.
959 (-mpower9-dform-vector): Likewise.
960 (-mpower9-dform): Likewise.
961 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
962 comments to delete references to -mpower9-dform* switches.
963 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
964 Delete reference to -mpower9-dform* switches, test for
965 -mpower9-vector instead.
966 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
967 (OTHER_P9_VECTOR_MASKS): Likewise.
968 (POWERPC_MASKS): Likewise.
969 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
970 tests against -mpower9-dform* to -mpower9-vector. Delete code
971 that checked for -mpower9-dform* consistancy with other options.
972 Add test for -mpower9-misc to enable other power9 switches.
973 (rs6000_init_hard_regno_mode_ok): Likewise.
974 (rs6000_option_override_internal): Likewise.
975 (rs6000_emit_prologue): Likewise.
976 (rs6000_emit_epilogue): Likewise.
977 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
978 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
979 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
980 -mpower9-vector.
981 (emit_fusion_p9_store): Likewise.
982 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
983 resetting these macros if the assembler does not support ISA 3.0
984 instructions.
985 (TARGET_P9_DFORM_VECTOR): Likewise.
986 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
987 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
988
989 2017-08-25 Alan Modra <amodra@gmail.com>
990
991 PR rtl-optimization/81747
992 * cse.c (cse_extended_basic_block): Don't attempt to record
993 equivalences for degenerate conditional branches that branch
994 to their fall-through.
995
996 2017-08-24 Martin Sebor <msebor@redhat.com>
997
998 PR middle-end/81908
999 * gimple-fold.c (size_must_be_zero_p): New function.
1000 (gimple_fold_builtin_memory_op): Call it.
1001
1002 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
1003
1004 * config/rs6000/mm_malloc.h: New file.
1005
1006 2017-08-24 Bin Cheng <bin.cheng@arm.com>
1007
1008 PR tree-optimization/81913
1009 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
1010 analysis when either IVs in condition can wrap.
1011
1012 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
1013
1014 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
1015 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
1016
1017 2017-08-24 Richard Biener <rguenther@suse.de>
1018
1019 PR target/81921
1020 * targhooks.c (default_target_can_inline_p): Properly
1021 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
1022 is present and always compare.
1023 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
1024 infer -mfpmath=sse from TARGET_SSE_P.
1025 (ix86_can_inline_p): Properly use target_option_default_node when
1026 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
1027
1028 2017-08-24 Richard Biener <rguenther@suse.de>
1029
1030 PR debug/81936
1031 * dwarf2out.c (output_die): Handle flag_generate_offload like
1032 flag_generate_lto.
1033 (output_comp_unit): Likewise.
1034 (gen_array_type_die): Likewise.
1035 (dwarf2out_early_finish): Likewise.
1036 (note_variable_value_in_expr): Likewise.
1037 (dwarf2out_finish): Likewise. Adjust assert.
1038 * cgraphunit.c (symbol_table::compile): Move setting of
1039 flag_generate_offload earlier ...
1040 (symbol_table::finalize_compilation_unit): ... here, before
1041 early debug finalization.
1042
1043 2017-08-24 Richard Biener <rguenther@suse.de>
1044
1045 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
1046 and ipa-fnsummary.h.
1047 (ix86_can_inline_p): When ix86_fpmath flags do not match
1048 check whether the callee uses FP math at all.
1049
1050 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
1051
1052 PR middle-end/81931
1053 * tree-ssanames.c (get_nonzero_bits): Use element_precision
1054 instead of TYPE_PRECISION.
1055
1056 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
1057 Alan Hayward <alan.hayward@arm.com>
1058 David Sherwood <david.sherwood@arm.com>
1059
1060 * combine.c (make_extraction): Use subreg_offset_from_lsb.
1061
1062 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
1063
1064 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
1065 Remove field.
1066 (ix86_frame::stack_realign_allocate): New field.
1067 (struct machine_frame_state): Modify comments.
1068 (machine_frame_state::sp_realigned_fp_end): New field.
1069 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
1070 layout calculation.
1071 (sp_valid_at): Add assertion to assure no attempt to access invalid
1072 offset of a realigned stack.
1073 (fp_valid_at): Likewise.
1074 (choose_baseaddr): Modify comments.
1075 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
1076 ix86_expand_prologue.
1077 (ix86_expand_prologue): Modify stack realignment and allocation.
1078 (ix86_expand_epilogue): Modify comments.
1079 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
1080 avx2_runtime, avx512f, and avx512f_runtime.
1081
1082 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
1083
1084 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
1085 (mstackrealign): Do not init to -1.
1086 * config/i386/i386.c (ix86_option_override_internal):
1087 Check opts_set, not opts when setting default value of
1088 opts->x_ix86_force_align_arg_pointer.
1089
1090 2017-08-23 Richard Biener <rguenther@suse.de>
1091
1092 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
1093 lang_hooks.decl_printable_name.
1094 * print-rtl-function.c (print_rtx_function): Likewise.
1095 * tree-pretty-print.c (dump_function_header): Likewise.
1096
1097 2017-08-23 Richard Biener <rguenther@suse.de>
1098
1099 PR lto/81940
1100 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
1101 -g0 at compile-time.
1102
1103 2017-08-23 Tamar Christina <tamar.christina@arm.com>
1104
1105 PR middle-end/19706
1106 * doc/sourcebuild.texi (Other hardware attributes):
1107 Document xorsign.
1108
1109 2017-08-23 Tamar Christina <tamar.christina@arm.com>
1110
1111 PR middle-end/19706
1112 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
1113 Fix single-use check.
1114
1115 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
1116
1117 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
1118
1119 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
1120
1121 * doc/install.texi: Modify to add more details on running selected
1122 tests.
1123
1124 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
1125
1126 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
1127 is combined with -mabi=ms.
1128 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
1129 ms_abi.
1130
1131 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1132
1133 PR tree-optimization/81488
1134 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
1135 and cached_basis fields.
1136 (MAX_SPREAD): New constant.
1137 (alloc_cand_and_find_basis): Initialize new fields.
1138 (clear_visited): New function.
1139 (create_phi_basis_1): Rename from create_phi_basis, set visited
1140 and cached_basis fields.
1141 (create_phi_basis): New wrapper function.
1142 (phi_add_costs_1): Rename from phi_add_costs, add spread
1143 parameter, set visited field, short-circuit when limits reached.
1144 (phi_add_costs): New wrapper function.
1145 (record_phi_increments_1): Rename from record_phi_increments, set
1146 visited field.
1147 (record_phi_increments): New wrapper function.
1148 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
1149 (phi_incr_cost): New wrapper function.
1150 (all_phi_incrs_profitable_1): Rename from
1151 all_phi_incrs_profitable, set visited field.
1152 (all_phi_incrs_profitable): New wrapper function.
1153
1154 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
1155 Alan Hayward <alan.hayward@arm.com>
1156 David Sherwood <david.sherwood@arm.com>
1157
1158 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
1159 that takes the outer and inner modes.
1160 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
1161 comparison as the canonical test for a paradoxical subreg.
1162 * combine.c (simplify_set): Use paradoxical_subreg_p.
1163 (make_extraction): Likewise.
1164 (force_to_mode): Likewise.
1165 (rtx_equal_for_field_assignment_p): Likewise.
1166 (gen_lowpart_for_combine): Likewise.
1167 (simplify_comparison): Likewise.
1168 * cse.c (equiv_constant): Likewise.
1169 * expmed.c (store_bit_field_1): Likewise.
1170 * final.c (alter_subreg): Likewise.
1171 * fwprop.c (propagate_rtx): Likewise.
1172 (forward_propagate_subreg): Likewise.
1173 * ira-conflicts.c (ira_build_conflicts): Likewise.
1174 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
1175 * lra-constraints.c (curr_insn_transform): Likewise.
1176 (split_reg): Likewise.
1177 * lra-eliminations.c (move_plus_up): Likewise.
1178 (lra_eliminate_regs_1): Likewise.
1179 * recog.c (general_operand): Likewise.
1180 * ree.c (combine_reaching_defs): Likewise.
1181 * reload.c (push_reload): Likewise.
1182 (find_reloads): Likewise.
1183 * reload1.c (elimination_effects): Likewise.
1184 (compute_reload_subreg_offset): Likewise.
1185 (choose_reload_regs): Likewise.
1186 * rtlanal.c (subreg_lsb_1): Likewise.
1187 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1188 (simplify_subreg): Likewise.
1189 * var-tracking.c (track_loc_p): Likewise.
1190 * emit-rtl.c (byte_lowpart_offset): Likewise.
1191 (paradoxical_subreg_p): Delete out-of-line definition.
1192
1193 2017-08-22 Jeff Law <law@redhat.com>
1194
1195 PR tree-optimization/81741
1196 PR tree-optimization/71947
1197 * tree-ssa-dom.c: Include tree-inline.h.
1198 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
1199 equivalences if one is more expensive to compute than the other.
1200 * tree-ssa-scopedtables.h (class const_or_copies): Make
1201 record_const_or_copy_raw method private.
1202 (class avail_exprs_stack): New method simplify_binary_operation.
1203 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
1204 avail_exprs_stack::simplify_binary_operation as needed.
1205 (avail_exprs_stack::simplify_binary_operation): New function.
1206
1207 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
1208
1209 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
1210 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
1211 (DOT_SYMBOLS): Likewise.
1212 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1213 (RELOCATABLE_NEEDS_FIXUP): Likewise.
1214 (RS6000_ABI_NAME): Likewise.
1215 (TARGET_CMODEL): Likewise.
1216 (TOC_SECTION_ASM_OP): Likewise.
1217 (SET_CMODEL): New macro.
1218 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
1219
1220 2017-08-22 Richard Biener <rguenther@suse.de>
1221
1222 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
1223 to allow for free-lang-data replacements similar to verify_type_variant.
1224
1225 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
1226 Alan Hayward <alan.hayward@arm.com>
1227 David Sherwood <david.sherwood@arm.com>
1228
1229 * config/aarch64/aarch64.md (casesi): Use DImode rather than
1230 VOIDmode for the LABEL_REF.
1231
1232 2017-08-22 Richard Biener <rguenther@suse.de>
1233
1234 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
1235
1236 2017-08-22 Richard Biener <rguenther@suse.de>
1237
1238 * common.opt (feliminate-dwarf2-dups): Ignore.
1239 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
1240 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
1241 same_die_p_wrap, compute_section_prefix,
1242 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
1243 (comdat_symbol_id, comdat_symbol_number): Likewise.
1244 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
1245 Likewise.
1246 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
1247 (output_die): Mark unreachable path unreachable.
1248 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
1249 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
1250 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
1251 (dwarf2out_early_finish): Likewise.
1252
1253 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
1254
1255 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
1256
1257 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
1258
1259 PR target/81910
1260 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
1261 not VAR_P. Filter attribute warnings with OPT_Wattributes.
1262 (avr_attribute_table) <io, io_low, address>: Initialize
1263 .decl_required with true.
1264
1265 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1266
1267 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
1268 undocumented debugging options.
1269 (-mvsx-scalar-double): Likewise.
1270 (-mallow-df-permute): Likewise.
1271 (-mvectorize-builtins): Likewise.
1272 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
1273 (rs6000_builtin_vectorized_function): Likewise.
1274 (rs6000_builtin_md_vectorized_function): Likewise.
1275 (rs6000_opt_vars): Likewise.
1276
1277 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
1278
1279 PR target/46091
1280 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
1281 (*btrq_imm): Rename from *btrq.
1282 (*btcq_imm): Rename from *btcq.
1283 (btsc): New code attribute.
1284 (*<btsc><mode>): New insn pattern.
1285 (*btr<mode>): Ditto.
1286 (*<btsc><mode>_mask): New insn_and_split pattern.
1287 (*btr<mode>_mask): Ditto.
1288
1289 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1290 Alan Hayward <alan.hayward@arm.com>
1291 David Sherwood <david.sherwood@arm.com>
1292
1293 * function.c (pad_below): Simplify padding calculation.
1294
1295 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1296 Alan Hayward <alan.hayward@arm.com>
1297 David Sherwood <david.sherwood@arm.com>
1298
1299 * target.def (function_prologue): Remove frame size argument.
1300 (function_epilogue): Likewise.
1301 * doc/tm.texi: Regenerate.
1302 * final.c (final_start_function): Update call to function_prologue.
1303 (final_end_function): Update call to function_epilogue.
1304 (default_function_pro_epilogue): Remove frame size argument.
1305 * output.h (default_function_pro_epilogue): Likewise.
1306 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
1307 (arm_output_function_prologue): Likewise.
1308 * config/frv/frv.c (frv_function_prologue): Likewise.
1309 (frv_function_epilogue): Likewise.
1310 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
1311 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
1312 (ia64_output_function_epilogue): Likewise.
1313 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
1314 (m32r_output_function_epilogue): Likewise.
1315 * config/microblaze/microblaze.c (microblaze_function_prologue)
1316 (microblaze_function_epilogue): Likewise.
1317 * config/mips/mips.c (mips_output_function_prologue): Likewise.
1318 (mips_output_function_epilogue): Likewise.
1319 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
1320 (mmix_target_asm_function_epilogue): Likewise.
1321 * config/msp430/msp430.c (msp430_start_function): Likewise.
1322 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
1323 (nds32_asm_function_epilogue): Likewise.
1324 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
1325 * config/pa/pa.c (pa_output_function_prologue): Likewise.
1326 (pa_output_function_epilogue): Likewise.
1327 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
1328 (rs6000_output_function_epilogue): Likewise.
1329 * config/rl78/rl78.c (rl78_start_function): Likewise.
1330 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
1331 (rs6000_output_function_epilogue): Likewise.
1332 * config/rx/rx.c (rx_output_function_prologue): Likewise.
1333 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
1334 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
1335 (sparc_asm_function_epilogue): Likewise.
1336
1337 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1338
1339 * tree.h (type_has_mode_precision_p): New function.
1340 * convert.c (convert_to_integer_1): Use it.
1341 * expr.c (expand_expr_real_2): Likewise.
1342 (expand_expr_real_1): Likewise.
1343 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
1344 * match.pd: Likewise.
1345 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1346 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
1347 * tree-tailcall.c (process_assignment): Likewise.
1348 * tree-vect-loop.c (vectorizable_reduction): Likewise.
1349 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
1350 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
1351 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
1352 (vectorizable_assignment): Likewise.
1353 (vectorizable_shift): Likewise.
1354 (vectorizable_operation): Likewise.
1355 * tree-vrp.c (register_edge_assert_for_2): Likewise.
1356
1357 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
1358
1359 * match.pd: Add pow (C, x) simplification.
1360
1361 2017-08-21 Richard Biener <rguenther@suse.de>
1362
1363 PR tree-optimization/81900
1364 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
1365 for blocks with abnormal predecessors.
1366 (compute_antic): Do not set visited flag prematurely.
1367
1368 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
1369
1370 PR target/79883
1371 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
1372
1373 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1374
1375 * stor-layout.h (vector_type_mode): Move to...
1376 * tree.h (vector_type_mode): ...here.
1377 * stor-layout.c (vector_type_mode): Move to...
1378 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
1379
1380 2017-08-21 Richard Biener <rguenther@suse.de>
1381
1382 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
1383 register_external_die hooks.
1384 (debug_false_tree_charstarstar_uhwistar): Declare.
1385 (debug_nothing_tree_charstar_uhwi): Likewise.
1386 * debug.c (do_nothing_debug_hooks): Adjust.
1387 (debug_false_tree_charstarstar_uhwistar): New do nothing.
1388 (debug_nothing_tree_charstar_uhwi): Likewise.
1389 * dbxout.c (dbx_debug_hooks): Adjust.
1390 (xcoff_debug_hooks): Likewise.
1391 * sdbout.c (sdb_debug_hooks): Likewise.
1392 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1393 * dwarf2out.c (macinfo_label_base): New global.
1394 (dwarf2out_register_external_die): New function for the
1395 register_external_die hook.
1396 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
1397 (dwarf2_debug_hooks): Use them.
1398 (dwarf2_lineno_debug_hooks): Adjust.
1399 (struct die_struct): Add with_offset flag.
1400 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
1401 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
1402 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
1403 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
1404 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
1405 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
1406 defining section names for the early LTO debug variants.
1407 (reset_indirect_string): New helper.
1408 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
1409 (print_dw_val): Add support for offsetted symbol references.
1410 (get_ultimate_context): Split out from is_cxx.
1411 (is_cxx): Use get_ultimate_context.
1412 (is_fortran): Add decl overload.
1413 (compute_comp_unit_symbol): Split out worker from
1414 compute_section_prefix.
1415 (compute_section_prefix): Call compute_comp_unit_symbol and
1416 set comdat_type_p here.
1417 (output_die): Skip DIE symbol output for the LTO added one.
1418 Handle DIE symbol references with offset.
1419 (output_comp_unit): Guard section name mangling properly.
1420 For LTO debug sections emit a symbol at the section beginning
1421 which we use to refer to its DIEs.
1422 (add_abstract_origin_attribute): For DIEs registered via
1423 dwarf2out_register_external_die directly refer to the early
1424 DIE rather than indirectly through the shadow one we created.
1425 Remove obsolete call to dwarf2out_abstract_function for
1426 non-function/block origins.
1427 (gen_array_type_die): When generating early LTO debug do
1428 not emit DW_AT_string_length.
1429 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
1430 late when in LTO. As suggested place a gcc_unreachable for
1431 the DECL_ABSTRACT_P case.
1432 (gen_subprogram_die): Avoid another specification DIE
1433 for early built declarations/definitions for the late LTO case.
1434 (gen_variable_die): Add type references for late duplicated VLA dies
1435 when in late LTO.
1436 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
1437 we have the abstract instance already.
1438 (process_scope_var): Adjust decl DIE contexts in LTO which
1439 first puts them in limbo.
1440 (gen_decl_die): Do not generate type DIEs late apart from
1441 types for VLAs or for decls we do not yet have a DIE. Do not
1442 call dwarf2out_abstract_function late.
1443 (dwarf2out_early_global_decl): Make sure to create DIEs
1444 for abstract instances of a decl first.
1445 (dwarf2out_late_global_decl): Adjust comment.
1446 (output_macinfo_op): With multiple macro sections use
1447 macinfo_label_base to distinguish labels.
1448 (output_macinfo): Likewise. Update macinfo_label_base.
1449 Pass in the line info label.
1450 (note_variable_value_in_expr): When generating LTO resolve
1451 all variable values here by generating DIEs as needed.
1452 (init_sections_and_labels): Add early LTO debug flag parameter
1453 and generate different sections and names if set. Add generation
1454 counter for the labels so we can have multiple of them.
1455 (reset_dies): Helper to allow DIEs to be output multiple times.
1456 (dwarf2out_finish): When outputting DIEs to the fat part of an
1457 LTO object first reset DIEs.
1458 (dwarf2out_early_finish): Output early DIEs when generating LTO.
1459 (modified_type_die): Check for decl_ultimate_origin being self
1460 before recursing.
1461 (gen_type_die_with_usage): Likewise.
1462 (gen_typedef_die): Allow decl_ultimate_origin being self.
1463 (set_decl_abstract_flags): Remove.
1464 (set_block_abstract_flags): Likewise.
1465 (dwarf2out_abstract_function): Treat the early generated DIEs
1466 as the abstract copy and only add DW_AT_inline and
1467 DW_AT_artificial here and call set_decl_origin_self.
1468 If the DIE has an abstract origin don't do anything.
1469 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
1470 if we have none yet (Go fails to build one, PR78628).
1471 (variably_modified_type_p): Prevent endless recursion for Ada
1472 cyclic pointer types.
1473 * lto-streamer-in.c: Include debug.h.
1474 (dref_queue): New global.
1475 (lto_read_tree_1): Stream in DIE references.
1476 (lto_input_tree): Register DIE references.
1477 (input_function): Stream DECL_DEBUG_ARGS.
1478 * lto-streamer-out.c: Include debug.h.
1479 (lto_write_tree_1): Output DIE references.
1480 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
1481 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
1482 (output_function): Stream DECL_DEBUG_ARGS.
1483 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1484 Stream DECL_ABSTRACT_ORIGIN.
1485 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
1486 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
1487 DECL_CONTEXT for file-scope decls.
1488 * lto-streamer.h (struct dref_entry): Declare.
1489 (dref_queue): Likewise.
1490 * cfgexpand.c (pass_expand::execute): Do not call the
1491 outlining_inline_function hook here.
1492 * lto-wrapper.c (debug_obj): New global.
1493 (tool_cleanup): Unlink it if required.
1494 (debug_objcopy): New function.
1495 (run_gcc): Handle early debug sections in the IL files by
1496 extracting them to separate files, partially linkin them and
1497 feeding the result back as result to the linker.
1498 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
1499 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
1500 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
1501 sections into a separate segment.
1502 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
1503 segments.
1504 (darwin_asm_dwarf_section): Likewise.
1505 (darwin_asm_output_dwarf_offset): Likewise.
1506 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
1507
1508 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1509 Alan Hayward <alan.hayward@arm.com>
1510 David Sherwood <david.sherwood@arm.com>
1511
1512 * read-md.h (md_reader::record_potential_iterator_use): Replace
1513 pointer argument with an rtx and an index.
1514 * read-rtl.c (iterator_group::apply_iterator): Likewise.
1515 (apply_mode_iterator): Likewise.
1516 (apply_code_iterator): Likewise.
1517 (apply_int_iterator): Likewise.
1518 (apply_subst_iterator): Likewise.
1519 (record_iterator_use): Likewise.
1520 (record_attribute_use): Likewise.
1521 (md_reader::record_potential_iterator_use): Likewise. Update calls
1522 to record_iterator_use and apply_iterator.
1523 (iterator_use): Replace ptr with x and index.
1524 (attribute_use): Likewise.
1525 (apply_attribute_uses): Update calls to apply_iterator.
1526 (apply_iterators): Likewise. Update initialization of iterator_use.
1527 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
1528 and record_potential_iterator_use.
1529 (rtx_reader::read_rtx_operand): Likewise.
1530
1531 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
1532 Alan Hayward <alan.hayward@arm.com>
1533 David Sherwood <david.sherwood@arm.com>
1534
1535 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
1536 CONST_WIDE_INT.
1537
1538 2017-08-21 Richard Biener <rguenther@suse.de>
1539
1540 PR middle-end/81884
1541 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
1542 at struct end conservatively when comparing common bases.
1543
1544 2017-08-21 Richard Biener <rguenther@suse.de>
1545
1546 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
1547 (mem_ref_in_stmt): Remove.
1548 (determine_max_movement): Use ref index to get at the reference.
1549 (invariantness_dom_walker::before_dom_children): Deal with
1550 lim data already initialized.
1551 (gather_mem_refs_stmt): Initialize lim data and record ref index.
1552
1553 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
1554
1555 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
1556 (TARGET_ISA_ROUND): Ditto.
1557 (TARGET_ROUND): Ditto.
1558 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
1559 * config/i386/i386.md: Ditto.
1560 * config/i386/sse.md: Ditto.
1561 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
1562 with OPTION_MASK_ISA_SSE4_1.
1563
1564 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
1565
1566 PR target/81894
1567 * doc/extend.texi (x86 Built-in Functions): Correct the name of
1568 __builtin_ia32_lzcnt_u16.
1569
1570 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
1571
1572 PR target/80210
1573 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
1574 (rs6000_set_current_function): Rewrite function to use it.
1575
1576 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
1577
1578 PR c/53037
1579 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
1580 and TYPE_WARN_IF_NOT_ALIGN.
1581 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
1582 (handle_warn_if_not_align): New.
1583 (place_union_field): Call handle_warn_if_not_align.
1584 (place_field): Call handle_warn_if_not_align.
1585 Copy TYPE_WARN_IF_NOT_ALIGN.
1586 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
1587 (layout_type): Likewise.
1588 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
1589 spare to 18.
1590 (tree_decl_common): Add warn_if_not_align.
1591 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
1592 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
1593 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
1594 (DECL_WARN_IF_NOT_ALIGN): Likewise.
1595 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
1596 * doc/extend.texi: Document warn_if_not_aligned attribute.
1597 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
1598
1599 2017-08-17 Martin Liska <mliska@suse.cz>
1600
1601 PR bootstrap/81864
1602 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
1603 (get_data_dependence): Use it as pointer type.
1604 (distribute_loop): Likewise.
1605
1606 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1607
1608 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
1609 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
1610 (p8_vmrgow_<mode>_direct): New define_insn.
1611 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
1612 handle endianness for vmrgew and vmrgow permute patterns.
1613
1614 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
1615
1616 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
1617 * config/rs6000/rs6000-cpus.def: Remove comment.
1618 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
1619 (POWERPC_MASKS): Likewise.
1620 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
1621 use of TARGET_VSX_TIMODE.
1622 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
1623 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
1624 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
1625 (rs6000_option_override_internal): Remove dead code.
1626 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
1627 (rs6000_legitimize_reload_address): Likewise.
1628 (rs6000_legitimate_address_p): Likewise.
1629 (rs6000_opt_masks): Delete "vsx-timode".
1630 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
1631 from function comment.
1632 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
1633 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
1634 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
1635 condition.
1636 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
1637 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
1638 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
1639 (VSX_TI): Likewise.
1640 (VSX_M): Likewise.
1641 (define_peephole2): Likewise.
1642
1643 2017-08-17 Martin Sebor <msebor@redhat.com>
1644
1645 PR c/81859
1646 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
1647 past the end of an array.
1648 (test_pp_format): Add test cases.
1649
1650 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
1651
1652 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
1653 missing ECF_NOTHROW flags.
1654
1655 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
1656
1657 PR target/72804
1658 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
1659 operands residing in integer registers.
1660 (*vsx_le_perm_load_<mode>): Likewise.
1661 (*vsx_le_perm_store_<mode>): Likewise.
1662 (define_peephole2): Add peepholes to optimize the above.
1663
1664 2017-08-17 Marek Polacek <polacek@redhat.com>
1665
1666 PR middle-end/81814
1667 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
1668 to mimic what shorten_compare did. Change the return type to bool.
1669 (fold_cond_expr_with_comparison): Update call to
1670 operand_equal_for_comparison_p.
1671 (fold_ternary_loc): Likewise.
1672
1673 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
1674
1675 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
1676 register.
1677 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
1678
1679 2017-08-17 Richard Biener <rguenther@suse.de>
1680
1681 * tree-ssa-structalias.c (solve_graph): When propagating
1682 to successors update the graphs succ edges and avoid duplicate work.
1683
1684 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
1685
1686 PR target/81861
1687 * config/i386/i386.c (ix86_option_override_internal): Save target
1688 specific options after ix86_stack_protector_guard_reg was changed.
1689
1690 2017-08-17 Richard Biener <rguenther@suse.de>
1691
1692 PR tree-optimization/81827
1693 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
1694 (new_var_info): Initialize it conservatively.
1695 (get_call_vi): Mark register vars.
1696 (new_scalar_tmp_constraint_exp): Likewise.
1697 (handle_rhs_call): Likewise.
1698 (handle_const_call): Likewise.
1699 (create_function_info_for): Likewise.
1700 (solve_constraints): Sort varinfos to separate register from
1701 non-register vars to pack points-to solution bitmaps during
1702 iteration.
1703
1704 2017-08-17 Marek Polacek <polacek@redhat.com>
1705
1706 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
1707
1708 2017-08-17 Richard Biener <rguenther@suse.de>
1709
1710 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
1711 to true when overflow is undefined and we saturated the result.
1712
1713 2017-08-17 Alan Modra <amodra@gmail.com>
1714
1715 PR target/80938
1716 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
1717 Don't use store multiple if only one reg needs saving.
1718 (interesting_frame_related_regno): New function.
1719 (rs6000_frame_related): Don't emit frame info for regs that
1720 don't need saving.
1721 (rs6000_emit_epilogue): Likewise.
1722
1723 2017-08-16 Nathan Sidwell <nathan@acm.org>
1724
1725 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
1726 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
1727 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
1728 * tree.c (free_lang_data_in_type): Use else-if chain. Always
1729 clear TYPE_LANG_1. Remove obsolete member-function stripping.
1730 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
1731 (verify_type): Adjust for TYPE_BINFO move.
1732 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
1733 process TYPE_BINFO directly.
1734 (hash_tree): Likewise.
1735 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
1736 Likewise.
1737 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
1738 Likewise.
1739
1740 2017-08-16 David Malcolm <dmalcolm@redhat.com>
1741
1742 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
1743
1744 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
1745
1746 PR target/46091
1747 * config/i386/i386.md (*anddi_1_btr): Change predicates of
1748 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
1749 Add ix86_binary_operator_ok to insn constraint.
1750 (*iordi_1_bts): Ditto.
1751 (*xordi_1_btc): Ditto.
1752 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
1753 Update corresponding peephole2 pattern.
1754 (*btrq): Ditto.
1755 (*btcq): Ditto.
1756
1757 2017-08-16 Bin Cheng <bin.cheng@arm.com>
1758
1759 PR tree-optimization/81832
1760 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
1761 copy loop header which has IFN_LOOP_DIST_ALIAS call.
1762
1763 2017-08-16 Marek Polacek <polacek@redhat.com>
1764
1765 PR middle/81695
1766 * fold-const.c (fold_indirect_ref_1): Restore original behavior
1767 regarding size_zero_node.
1768
1769 2017-08-16 Martin Liska <mliska@suse.cz>
1770
1771 PR target/81753
1772 * config.gcc: Respect previously set extra_objs in case
1773 of darwin target.
1774
1775 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
1776
1777 PR tree-optimization/81835
1778 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
1779 the phi SSA_NAME. Check that the condition in a COND_EXPR does
1780 not depend on the phi.
1781
1782 2017-08-16 Alan Modra <amodra@gmail.com>
1783
1784 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
1785 dead code.
1786
1787 2017-08-16 Alan Modra <amodra@gmail.com>
1788
1789 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
1790 (save_reg_p): ..into this. Update all callers.
1791 (first_reg_to_save): Simplify.
1792
1793 2017-08-16 Alan Modra <amodra@gmail.com>
1794
1795 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
1796 fixed regs.
1797
1798 2017-08-15 Joseph Myers <joseph@codesourcery.com>
1799
1800 PR target/78460
1801 PR target/67712
1802 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
1803 constant count if that count is less than 32.
1804
1805 2017-08-15 Nathan Sidwell <nathan@acm.org>
1806
1807 * gcc.c (execute): Emit friendlier message if inferior is killed
1808 by an external cause.
1809
1810 2017-08-15 Richard Biener <rguenther@suse.de>
1811
1812 PR tree-optimization/81790
1813 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
1814 CONSTRUCTORs from simplifying and VN.
1815
1816 2017-08-14 Martin Sebor <msebor@redhat.com>
1817
1818 * builtin-attrs.def: Add comments.
1819
1820 2017-08-14 Martin Sebor <msebor@redhat.com>
1821
1822 PR c/81117
1823 * doc/extend.texi (attribute nonstring): Document new attribute.
1824
1825 2017-08-14 Martin Sebor <msebor@redhat.com>
1826
1827 PR c/81117
1828 * tree-diagnostic.c (default_tree_printer): Handle %G.
1829 * gimple-pretty-print.h (percent_G_format): Declare new function.
1830 * gimple-pretty-print.c (percent_G_format): Define.
1831 * tree-pretty-print.c (percent_K_format): Add argument.
1832
1833 2017-08-14 Martin Sebor <msebor@redhat.com>
1834
1835 PR translation/79998
1836 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1837 Remove a stray space.
1838
1839 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
1840
1841 PR target/46091
1842 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
1843 (*iordi_1_bts): Ditto.
1844 (*xordi_1_btc): Ditto.
1845
1846 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1847
1848 PR target/79845
1849 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
1850 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1851 Likewise.
1852 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
1853 quoted strings, and make more translator-friendly.
1854 (darwin_rs6000_override_options): Likewise.
1855 (rs6000_option_override_internal): Likewise.
1856 (rs6000_return_in_memory): Fix overlong line.
1857 (init_cmulative_args): Use quoted strings, and make more
1858 translator-friendly.
1859 (rs6000_pass_by_reference): Fix overlong line.
1860 (def_builtin): Use quoted strings.
1861 (altivec_expand_predicate_builtin): Use quoted strings, and make
1862 more translator-friendly.
1863 (htm_expand_builtin): Use quoted strings.
1864 (cpu_expand_builtin): Use quoted strings, and make more
1865 translator-friendly.
1866 (altivec_expand_builtin): Likewise.
1867 (paired_expand_predicate_builtin): Likewise.
1868 (rs6000_invalid_builtin): Likewise.
1869 (builtin_function_type): Use quoted strings.
1870 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
1871 more translator-friendly.
1872 (rs6000_trampoline_init): Likewise.
1873 (rs6000_handle_altivec_attribute): Likewise.
1874 (rs6000_inner_target_options): Use quoted strings.
1875 (rs6000_disable_incompatible_switches): Likewise.
1876 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
1877 strings, and make more translator-friendly.
1878 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
1879
1880 2017-08-14 Bin Cheng <bin.cheng@arm.com>
1881
1882 PR tree-optimization/81799
1883 * tree-loop-distribution.c (version_loop_by_alias_check): Force
1884 cond_expr to simple gimple operand.
1885
1886 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
1887
1888 PR middle-end/46932
1889 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
1890
1891 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
1892
1893 PR target/81754
1894 PR target/81268
1895 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
1896 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
1897 TARGET_GASISR_PROLOGUES.
1898 * config/avr/avr.c (avr_option_override): Same.
1899 (avr_pass_pre_proep::execute): Same.
1900
1901 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
1902
1903 PR target/81820
1904 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
1905 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
1906
1907 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
1908
1909 * config/i386/i386.md (*load_tp_<mode>): Redefine as
1910 define_insn_and_split. Split to a memory load from 0 in
1911 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
1912 using PTR mode iterator.
1913 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
1914 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
1915 (*add_tp_<mode>): Redefine as define_insn_and_split.
1916 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
1917 address space. Merge with *add_tp_x32 using PTR mode iterator.
1918 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
1919 Split to an add with a memory load from 0 in
1920 DEFAULT_TLS_SEG_REG address space.
1921
1922 2017-08-12 Andrew Pinski <apinski@cavium.com>
1923
1924 * config/aarch64/aarch64-option-extensions.def (rdma):
1925 Fix feature string to what Linux prints out in /proc/cpuinfo.
1926
1927 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
1928
1929 PR ada/79542
1930 * dwarf2out.c (modified_type_die): For C typedef types that have
1931 an ultimate origin, process the ultimate origin instead of the
1932 input type.
1933 (gen_typedef_die): Assert that input DECLs have no ultimate
1934 origin.
1935 (gen_type_die_with_usage): For typedef variants that have an
1936 ultimate origin, just call gen_decl_die on the original DECL.
1937 (process_scope_var): Avoid creating DIEs for local typedefs and
1938 concrete static variables.
1939
1940 2017-08-12 Alan Modra <amodra@gmail.com>
1941
1942 PR target/81170
1943 PR target/81295
1944 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
1945 match gnu-user.h startfile.
1946 (ENDFILE_LINUX_SPEC): Similarly.
1947
1948 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
1949
1950 PR lto/81430
1951 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
1952 Remove function.
1953 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
1954
1955 2017-08-11 Tamar Christina <tamar.christina@arm.com>
1956 * config/aarch64/aarch64.md (mov<mode>): Change.
1957 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
1958 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
1959 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
1960
1961 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
1962
1963 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
1964 for storage order barriers.
1965
1966 2017-08-11 Martin Liska <mliska@suse.cz>
1967
1968 PR tree-opt/79987
1969 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
1970 variables of void type.
1971
1972 2017-08-11 Martin Liska <mliska@suse.cz>
1973
1974 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
1975 TARGET_SUPPORTS_ALIASES.
1976 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
1977 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
1978 (optimize_weakref): Likewise.
1979 * symtab.c (symtab_node::noninterposable_alias): Likewise.
1980 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
1981 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
1982
1983 2017-08-11 Martin Liska <mliska@suse.cz>
1984
1985 PR ipa/81213
1986 * config/i386/i386.c (make_resolver_func): Do complete
1987 refactoring of the function.
1988
1989 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
1990
1991 PR target/81708
1992 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
1993 * config/i386/i386.c (ix86_stack_protect_guard): Use
1994 ix86_stack_protect_guard_symbol_str to generate varible declaration.
1995 * doc/invoke.texi (x86 Options): Document
1996 -mstack-protector-guard-symbol= option.
1997
1998 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
1999
2000 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
2001 * config/i386/i386.c (ix86_split_stack_guard): New function.
2002 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
2003 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
2004 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
2005 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
2006 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
2007 (split_stack_space_check): Call ix86_split_stack_guard.
2008
2009 2017-08-10 Martin Sebor <msebor@redhat.com>
2010
2011 * print-tree.c (print_node): Print location using the established
2012 format %s:%i%i.
2013 Replace spaces with colons.
2014 (debug_raw, debug): Ditto.
2015
2016 2017-08-10 Martin Sebor <msebor@redhat.com>
2017
2018 PR c++/81586
2019 * pretty-print.c (pp_format): Correct the handling of %s precision.
2020
2021 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
2022
2023 PR target/81736
2024 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
2025 to ...
2026 (ix86_finalize_stack_frame_flags): This. Also clear
2027 frame_pointer_needed if -fno-omit-frame-pointer is used without
2028 stack access.
2029 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
2030 with ix86_finalize_stack_frame_flags.
2031 (ix86_expand_epilogue): Likewise.
2032 (ix86_expand_split_stack_prologue): Likewise.
2033 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
2034
2035 2017-08-10 Martin Liska <mliska@suse.cz>
2036
2037 PR c++/81355
2038 * c-attribs.c (handle_target_attribute):
2039 Report warning for an empty string argument of target attribute.
2040
2041 2017-08-09 Jakub Jelinek <jakub@redhat.com>
2042
2043 PR c/81687
2044 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
2045 LABEL_DECLs.
2046 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
2047 or DECL_NONLOCAL labels.
2048 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
2049 or DECL_NONLOCAL labels here.
2050
2051 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
2052
2053 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
2054 to indicate when early gimple folding has been disabled.
2055 (rs6000_gimple_fold_builtin): Add debug content.
2056 (rs6000_invalid_builtin): Fix whitespace.
2057 (rs6000_expand_builtin): Fix whitespace.
2058 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
2059
2060 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
2061
2062 PR target/80938
2063 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
2064 SAVE_MULTIPLE if not all the registers that saves, should be saved.
2065
2066 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
2067
2068 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
2069 (qdf24xx): Likewise.
2070 * config/aarch64/aarch64.md: Include falkor.md.
2071 * config/aarch64/falkor.md: New.
2072
2073 2017-08-09 Marek Polacek <polacek@redhat.com>
2074
2075 PR c/81233
2076 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
2077 * diagnostic.c (emit_diagnostic): Add a comment.
2078 (emit_diagnostic_valist): New function.
2079
2080 2017-08-09 Marek Polacek <polacek@redhat.com>
2081
2082 PR c/81417
2083 * input.c (make_location): New overload.
2084 * input.h (make_location): Declare.
2085
2086 2017-08-08 Alan Modra <amodra@gmail.com>
2087 H.J. Lu <hongjiu.lu@intel.com>
2088
2089 PR driver/81523
2090 * gcc.c (NO_PIE_SPEC): Delete.
2091 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
2092 exclusion..
2093 (LINK_PIE_SPEC): ..to here.
2094 (LINK_COMMAND_SPEC): Support -no-pie.
2095 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
2096 chain of crtbegin*.o selection, update for PIE_SPEC changes and
2097 format.
2098 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
2099 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
2100 (ENDFILE_CRTEND_SPEC): Similarly.
2101
2102 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
2103
2104 PR target/81708
2105 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
2106 (mstack-protector-guard-offset=): Ditto.
2107 * config/i386/i386.c (ix86_option_override): Handle
2108 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
2109 options.
2110 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
2111 ix86_stack_protect_guard_offset variables.
2112 (TARGET_STACK_PROTECT_GUARD): Always define.
2113 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
2114 and -mstack-protector-guard-offset= options.
2115
2116 2017-08-08 Bin Cheng <bin.cheng@arm.com>
2117
2118 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
2119 boundary case for the last candidate.
2120
2121 2017-08-08 Bin Cheng <bin.cheng@arm.com>
2122
2123 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
2124 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
2125
2126 2017-08-08 Tamar Christina <tamar.christina@arm.com>
2127
2128 PR middle-end/19706
2129 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
2130 * config/aarch64/aarch64-builtins.c
2131 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
2132 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
2133 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
2134
2135 2017-08-08 Tamar Christina <tamar.christina@arm.com>
2136 Andrew Pinski <pinskia@gmail.com>
2137
2138 PR middle-end/19706
2139 * internal-fn.def (XORSIGN): New.
2140 * optabs.def (xorsign_optab): New.
2141 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
2142 (convert_expand_mult_copysign): New.
2143 (pass_optimize_widening_mul::execute): Call
2144 convert_expand_mult_copysign.
2145
2146 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2147
2148 PR tree-optimization/81354
2149 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
2150 Insert on edges rather than explicitly creating landing pads.
2151 (analyze_candidates_and_replace): Commit edge inserts.
2152
2153 2017-08-08 Richard Biener <rguenther@suse.de>
2154
2155 PR middle-end/81719
2156 * tree-ssa-loop-niter.c: Include tree-dfa.h.
2157 (expand_simple_operations): Also look through ADDR_EXPRs with
2158 MEM_REF bases treating them as POINTER_PLUS_EXPR.
2159
2160 2017-08-08 Richard Biener <rguenther@suse.de>
2161
2162 PR tree-optimization/81723
2163 * tree-vect-slp.c (struct bst_traits): New hash traits.
2164 (bst_fail): New global.
2165 (vect_build_slp_tree_2): New worker, split out from ...
2166 (vect_build_slp_tree): ... this now wrapping it with using
2167 bst_fail set to cache SLP tree build fails. Properly handle
2168 max_tree_size.
2169 (vect_analyze_slp_instance): Allocate and free bst_fail.
2170
2171 2017-08-08 Martin Liska <mliska@suse.cz>
2172
2173 PR tree-opt/81696
2174 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
2175 LABEL_DECLs that can be from a different function.
2176
2177 2017-08-08 Bin Cheng <bin.cheng@arm.com>
2178
2179 PR tree-optimization/81744
2180 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
2181 loop's number of iterations.
2182
2183 2017-08-08 Martin Liska <mliska@suse.cz>
2184
2185 * asan.c: Include header files.
2186 * attribs.c (build_decl_attribute_variant): New function moved
2187 from tree.[ch].
2188 (build_type_attribute_qual_variant): Likewise.
2189 (cmp_attrib_identifiers): Likewise.
2190 (simple_cst_list_equal): Likewise.
2191 (omp_declare_simd_clauses_equal): Likewise.
2192 (attribute_value_equal): Likewise.
2193 (comp_type_attributes): Likewise.
2194 (build_type_attribute_variant): Likewise.
2195 (lookup_ident_attribute): Likewise.
2196 (remove_attribute): Likewise.
2197 (merge_attributes): Likewise.
2198 (merge_type_attributes): Likewise.
2199 (merge_decl_attributes): Likewise.
2200 (merge_dllimport_decl_attributes): Likewise.
2201 (handle_dll_attribute): Likewise.
2202 (attribute_list_equal): Likewise.
2203 (attribute_list_contained): Likewise.
2204 * attribs.h (lookup_attribute): New function moved from tree.[ch].
2205 (lookup_attribute_by_prefix): Likewise.
2206 * bb-reorder.c: Include header files.
2207 * builtins.c: Likewise.
2208 * calls.c: Likewise.
2209 * cfgexpand.c: Likewise.
2210 * cgraph.c: Likewise.
2211 * cgraphunit.c: Likewise.
2212 * convert.c: Likewise.
2213 * dwarf2out.c: Likewise.
2214 * final.c: Likewise.
2215 * fold-const.c: Likewise.
2216 * function.c: Likewise.
2217 * gimple-expr.c: Likewise.
2218 * gimple-fold.c: Likewise.
2219 * gimple-pretty-print.c: Likewise.
2220 * gimple.c: Likewise.
2221 * gimplify.c: Likewise.
2222 * hsa-common.c: Likewise.
2223 * hsa-gen.c: Likewise.
2224 * internal-fn.c: Likewise.
2225 * ipa-chkp.c: Likewise.
2226 * ipa-cp.c: Likewise.
2227 * ipa-devirt.c: Likewise.
2228 * ipa-fnsummary.c: Likewise.
2229 * ipa-inline.c: Likewise.
2230 * ipa-visibility.c: Likewise.
2231 * ipa.c: Likewise.
2232 * lto-cgraph.c: Likewise.
2233 * omp-expand.c: Likewise.
2234 * omp-general.c: Likewise.
2235 * omp-low.c: Likewise.
2236 * omp-offload.c: Likewise.
2237 * omp-simd-clone.c: Likewise.
2238 * opts-global.c: Likewise.
2239 * passes.c: Likewise.
2240 * predict.c: Likewise.
2241 * sancov.c: Likewise.
2242 * sanopt.c: Likewise.
2243 * symtab.c: Likewise.
2244 * toplev.c: Likewise.
2245 * trans-mem.c: Likewise.
2246 * tree-chkp.c: Likewise.
2247 * tree-eh.c: Likewise.
2248 * tree-into-ssa.c: Likewise.
2249 * tree-object-size.c: Likewise.
2250 * tree-parloops.c: Likewise.
2251 * tree-profile.c: Likewise.
2252 * tree-ssa-ccp.c: Likewise.
2253 * tree-ssa-live.c: Likewise.
2254 * tree-ssa-loop.c: Likewise.
2255 * tree-ssa-sccvn.c: Likewise.
2256 * tree-ssa-structalias.c: Likewise.
2257 * tree-ssa.c: Likewise.
2258 * tree-streamer-in.c: Likewise.
2259 * tree-vectorizer.c: Likewise.
2260 * tree-vrp.c: Likewise.
2261 * tsan.c: Likewise.
2262 * ubsan.c: Likewise.
2263 * varasm.c: Likewise.
2264 * varpool.c: Likewise.
2265 * tree.c: Remove functions moved to attribs.[ch].
2266 * tree.h: Likewise.
2267 * config/aarch64/aarch64.c: Add attrs.h header file.
2268 * config/alpha/alpha.c: Likewise.
2269 * config/arc/arc.c: Likewise.
2270 * config/arm/arm.c: Likewise.
2271 * config/avr/avr.c: Likewise.
2272 * config/bfin/bfin.c: Likewise.
2273 * config/c6x/c6x.c: Likewise.
2274 * config/cr16/cr16.c: Likewise.
2275 * config/cris/cris.c: Likewise.
2276 * config/darwin.c: Likewise.
2277 * config/epiphany/epiphany.c: Likewise.
2278 * config/fr30/fr30.c: Likewise.
2279 * config/frv/frv.c: Likewise.
2280 * config/ft32/ft32.c: Likewise.
2281 * config/h8300/h8300.c: Likewise.
2282 * config/i386/winnt.c: Likewise.
2283 * config/ia64/ia64.c: Likewise.
2284 * config/iq2000/iq2000.c: Likewise.
2285 * config/lm32/lm32.c: Likewise.
2286 * config/m32c/m32c.c: Likewise.
2287 * config/m32r/m32r.c: Likewise.
2288 * config/m68k/m68k.c: Likewise.
2289 * config/mcore/mcore.c: Likewise.
2290 * config/microblaze/microblaze.c: Likewise.
2291 * config/mips/mips.c: Likewise.
2292 * config/mmix/mmix.c: Likewise.
2293 * config/mn10300/mn10300.c: Likewise.
2294 * config/moxie/moxie.c: Likewise.
2295 * config/msp430/msp430.c: Likewise.
2296 * config/nds32/nds32-isr.c: Likewise.
2297 * config/nds32/nds32.c: Likewise.
2298 * config/nios2/nios2.c: Likewise.
2299 * config/nvptx/nvptx.c: Likewise.
2300 * config/pa/pa.c: Likewise.
2301 * config/pdp11/pdp11.c: Likewise.
2302 * config/powerpcspe/powerpcspe.c: Likewise.
2303 * config/riscv/riscv.c: Likewise.
2304 * config/rl78/rl78.c: Likewise.
2305 * config/rx/rx.c: Likewise.
2306 * config/s390/s390.c: Likewise.
2307 * config/sh/sh.c: Likewise.
2308 * config/sol2.c: Likewise.
2309 * config/sparc/sparc.c: Likewise.
2310 * config/spu/spu.c: Likewise.
2311 * config/stormy16/stormy16.c: Likewise.
2312 * config/tilegx/tilegx.c: Likewise.
2313 * config/tilepro/tilepro.c: Likewise.
2314 * config/v850/v850.c: Likewise.
2315 * config/vax/vax.c: Likewise.
2316 * config/visium/visium.c: Likewise.
2317 * config/xtensa/xtensa.c: Likewise.
2318
2319 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2320
2321 PR target/81593
2322 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
2323 constraints since the -mupper-regs-* switches have been
2324 eliminated.
2325 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
2326 into a vector from a double word element that was extracted from
2327 another vector, and eliminate extra XXPERMDI instructions.
2328 (vsx_concat_<mode>_2): Likewise.
2329 (vsx_concat_<mode>_3): Likewise.
2330 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
2331 concat to allow optimizing inserts from previous extracts.
2332
2333 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
2334
2335 * config/i386/i386.c (ix86_stack_protect_guard): Generate
2336 memory reference to a SSP offset in TLS address space.
2337 (ix86_print_operand) <case '@'>: Remove.
2338 (ix86_print_operand_punct_valid_p): Remove '@' code.
2339 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
2340 UNSPEC_SP_TLS_TEST.
2341 (stack_tls_protect_set_<mode>): Remove.
2342 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
2343 (stack_tls_protect_test_<mode>): Remove.
2344 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
2345
2346 2017-08-07 Olivier Hainque <hainque@adacore.com>
2347
2348 PR target/81755
2349 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
2350
2351 2017-08-07 Douglas Rupp <rupp@adacore.com>
2352
2353 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
2354 variable was referenced as multidir in command.
2355
2356 2017-08-07 Jakub Jelinek <jakub@redhat.com>
2357
2358 PR c/69389
2359 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
2360 BIT_FIELD_REF.
2361
2362 2017-08-07 Martin Liska <mliska@suse.cz>
2363
2364 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
2365 * config/rl78/rl78.c: Add include of attribs.h.
2366 * config/sh/sh.c: Likewise.
2367 * config/v850/v850.c: Likewise.
2368
2369 2017-08-07 Tom de Vries <tom@codesourcery.com>
2370
2371 PR middle-end/78266
2372 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
2373
2374 2017-08-07 Martin Liska <mliska@suse.cz>
2375
2376 * config/mips/mips.c: Include attribs.h.
2377
2378 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
2379
2380 PR fortran/68829
2381 * doc/invoke.texi: Document change in behvaior for -Ofast for
2382 Fortran.
2383
2384 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
2385
2386 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
2387 Use gen_frame_mem.
2388 (aarch64_pop_regs): Likewise.
2389 (aarch64_gen_load_pair): Likewise.
2390 (aarch64_save_callee_saves): Likewise.
2391 (aarch64_restore_callee_saves): Likewise.
2392
2393 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
2394
2395 * config/i386/i386.c: Revert the last change.
2396
2397 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
2398
2399 PR target/81736
2400 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
2401 to ...
2402 (ix86_finalize_stack_frame_flags): This. Also clear
2403 frame_pointer_needed if -fno-omit-frame-pointer is used without
2404 stack access.
2405 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
2406 with ix86_finalize_stack_frame_flags.
2407 (ix86_expand_epilogue): Likewise.
2408 (ix86_expand_split_stack_prologue): Likewise.
2409
2410 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
2411
2412 PR target/81743
2413 * config/i386/i386.c (get_builtin_code_for_version): Set priority
2414 to P_AES for Westmere.
2415
2416 2017-08-07 Jonathan Yong <10walls@gmail.com>
2417
2418 * config/i386/mingw.opt (fset-stack-executable): Removed.
2419 * config/i386/cygming.opt (fset-stack-executable): Moved
2420 from mingw.opt.
2421 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
2422
2423 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
2424
2425 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
2426
2427 2017-08-07 Marek Polacek <polacek@redhat.com>
2428
2429 PR middle-end/81737
2430 * fold-const.c (fold_indirect_ref_1): Check type_domain.
2431
2432 2017-08-07 Martin Liska <mliska@suse.cz>
2433
2434 * attribs.h (canonicalize_attr_name): New function.
2435 (cmp_attribs): Move from c-format.c and adjusted.
2436 (is_attribute_p): Moved from tree.h.
2437 * tree-inline.c: Add new includes.
2438 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
2439 (private_is_attribute_p): Remove.
2440 (private_lookup_attribute): Likewise.
2441 (private_lookup_attribute_by_prefix): Simplify.
2442 (remove_attribute): Use is_attribute_p.
2443 * tree.h: Remove removed declarations.
2444
2445 2017-08-07 Jakub Jelinek <jakub@redhat.com>
2446
2447 PR middle-end/81698
2448 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
2449 instead of computing it in the function. Formatting fix.
2450 (expand_case): Don't rely on default_edge being the first edge,
2451 clear it if removing it, pass default_edge to
2452 emit_case_dispatch_table.
2453 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
2454 fix.
2455
2456 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
2457
2458 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
2459 insn in the function, emit NOP after the insn.
2460
2461 2017-08-06 Tom de Vries <tom@codesourcery.com>
2462
2463 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
2464 and element loops.
2465
2466 2017-08-06 Tom de Vries <tom@codesourcery.com>
2467
2468 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
2469 loop.
2470
2471 2017-08-04 Yury Gribov <tetra2005@gmail.com>
2472
2473 PR tree-optimization/57371
2474 * match.pd: New pattern.
2475
2476 2017-08-04 Marek Polacek <polacek@redhat.com>
2477
2478 PR middle-end/81695
2479 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
2480 perform the computation in offset_int.
2481
2482 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
2483
2484 PR tree-optimization/81136
2485 * tree-vectorizer.h: Include tree-hash-traits.h.
2486 (vec_base_alignments): New typedef.
2487 (vec_info): Add a base_alignments field.
2488 (vect_record_base_alignments): Declare.
2489 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
2490 field.
2491 (DR_IS_CONDITIONAL_IN_STMT): New macro.
2492 (create_data_ref): Add an is_conditional_in_stmt argument.
2493 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
2494 the is_conditional_in_stmt field.
2495 (data_ref_loc): Add an is_conditional_in_stmt field.
2496 (get_references_in_stmt): Set the is_conditional_in_stmt field.
2497 (find_data_references_in_stmt): Update call to create_data_ref.
2498 (graphite_find_data_references_in_stmt): Likewise.
2499 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
2500 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
2501 (vect_record_base_alignment): New function.
2502 (vect_record_base_alignments): Likewise.
2503 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
2504 for nested statements even if we fail to compute a misalignment.
2505 Use pooled base alignments for unconditional references.
2506 (vect_find_same_alignment_drs): Compare base addresses instead
2507 of base objects.
2508 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
2509 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
2510
2511 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
2512
2513 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
2514 Add an explicit name for the enum. Use auto_vec for slp_instances
2515 and grouped_stores.
2516 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
2517 for all vectors.
2518 (_bb_vec_info): Add a constructor and destructor.
2519 (vinfo_for_stmt): Return NULL for uids of -1 as well.
2520 (destroy_loop_vec_info): Delete.
2521 (vect_destroy_datarefs): Likewise.
2522 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
2523 (vec_info::vec_info): New function.
2524 (vec_info::~vec_info): Likewise.
2525 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
2526 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
2527 destroy_loop_vec_info.
2528 * tree-vect-loop.c (new_loop_vec_info): Replace with...
2529 (_loop_vec_info::_loop_vec_info): ...this.
2530 (destroy_loop_vec_info): Replace with...
2531 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
2532 the stmt_vec_infos. Leave handling of vec_info information to its
2533 destructor. Remove explicit vector releases.
2534 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
2535 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
2536 * tree-vect-slp.c (new_bb_vec_info): Replace with...
2537 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
2538 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
2539 (destroy_bb_vec_info): Replace with...
2540 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
2541 information to its destructor.
2542 (vect_slp_analyze_bb_1): Use new and delete instead of
2543 new_bb_vec_info and destroy_bb_vec_info.
2544 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
2545 single delete.
2546
2547 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
2548
2549 * tree-data-ref.h (subscript): Add access_fn field.
2550 (data_dependence_relation): Add could_be_independent_p.
2551 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
2552 (same_access_functions): Move to tree-data-ref.c.
2553 * tree-data-ref.c (ref_contains_union_access_p): New function.
2554 (access_fn_component_p): Likewise.
2555 (access_fn_components_comparable_p): Likewise.
2556 (dr_analyze_indices): Add a reference to access_fn_component_p.
2557 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
2558 DR_ACCESS_FN.
2559 (constant_access_functions): Likewise.
2560 (add_other_self_distances): Likewise.
2561 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
2562 (initialize_data_dependence_relation): Use XCNEW and remove
2563 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
2564 of access functions that have the same type. Allow the
2565 subsequence to end with different bases in some circumstances.
2566 Record the chosen access functions in SUB_ACCESS_FN.
2567 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
2568 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
2569 (subscript_dependence_tester_1): Likewise dra and drb.
2570 (build_classic_dist_vector): Update calls accordingly.
2571 (subscript_dependence_tester): Likewise.
2572 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
2573 DDR_COULD_BE_INDEPENDENT_P.
2574 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
2575 comp_alias_ddrs instead of may_alias_ddrs.
2576 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
2577 New function.
2578 (vect_analyze_data_ref_dependence): Use it if
2579 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
2580 distance vectors if that fails.
2581 (dependence_distance_ge_vf): New function.
2582 (vect_prune_runtime_alias_test_list): Use it. Don't clear
2583 LOOP_VINFO_MAY_ALIAS_DDRS.
2584
2585 2017-08-04 Richard Biener <rguenther@suse.de>
2586
2587 PR middle-end/81705
2588 * fold-const.c (fold_binary_loc): Properly restrict
2589 minus_var0 && minus_var1 case when associating undefined overflow
2590 entities.
2591
2592 2017-08-04 Tom de Vries <tom@codesourcery.com>
2593
2594 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
2595
2596 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2597
2598 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2599 Don't start diagnostic messages with a capital letter.
2600 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2601 Likewise.
2602 (rs6000_invalid_builtin): Likewise.
2603 (rs6000_trampoline_init): Likewise.
2604
2605 2017-08-03 Jakub Jelinek <jakub@redhat.com>
2606
2607 PR target/81621
2608 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
2609 after setting changeable df flags.
2610
2611 2017-08-03 Richard Biener <rguenther@suse.de>
2612
2613 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
2614 up if the use is in USE - X.
2615
2616 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
2617
2618 * toplev.c (dumpfile.h): New include.
2619 (internal_error_reentered): New static function. Use it...
2620 (internal_error_function): ...here to handle reentered internal_error.
2621
2622 2017-08-03 Richard Biener <rguenther@suse.de>
2623
2624 PR middle-end/81148
2625 * fold-const.c (split_tree): Add minus_var and minus_con
2626 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
2627 here but always use minus_*.
2628 (associate_trees): Assert we never associate with MINUS_EXPR
2629 and NULL first operand. Do not recurse for PLUS_EXPR operands
2630 when associating as MINUS_EXPR either.
2631 (fold_binary_loc): Track minus_var and minus_con.
2632
2633 2017-08-03 Tom de Vries <tom@codesourcery.com>
2634
2635 PR lto/81430
2636 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
2637 ACCEL_COMPILER, apply finish_options on
2638 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
2639
2640 2017-08-03 Tom de Vries <tom@codesourcery.com>
2641
2642 PR target/81662
2643 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
2644 function_entry_patch_area_size > 0.
2645
2646 2017-08-03 Jakub Jelinek <jakub@redhat.com>
2647
2648 PR driver/81650
2649 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
2650 instead of 10??LU, perform unit multiplication in wide_int,
2651 don't change alloc_object_size_limit if the limit is larger
2652 than SSIZE_MAX.
2653
2654 PR tree-optimization/81655
2655 PR tree-optimization/81588
2656 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
2657 the case when ranges[i].low and high are 1 for unsigned type with
2658 precision 1.
2659
2660 PR middle-end/81052
2661 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
2662 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
2663
2664 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2665
2666 * tree-vrp.h: Add include guard.
2667
2668 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
2669
2670 PR target/81644
2671 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
2672 (ud2): New insn pattern.
2673 * config/i386/i386.c (ix86_expand_epilogue):
2674 For naked functions, generate ud2 instead of trap insn.
2675
2676 2017-08-02 Marek Polacek <polacek@redhat.com>
2677
2678 PR other/81667
2679 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
2680
2681 2017-08-02 Tom de Vries <tom@codesourcery.com>
2682 Cesar Philippidis <cesar@codesourcery.com>
2683
2684 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
2685 Add missing edge probabilities.
2686
2687 2017-08-02 Tamar Christina <tamar.christina@arm.com>
2688
2689 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
2690 Correct endianness.
2691
2692 2017-08-02 Jakub Jelinek <jakub@redhat.com>
2693
2694 PR middle-end/79499
2695 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
2696 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
2697 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
2698 prologue_seq sequences - if any.
2699
2700 2017-08-02 Richard Biener <rguenther@suse.de>
2701
2702 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
2703 via vectors if supported, integer extracts via punning if supported
2704 or otherwise vector extracts.
2705
2706 2017-08-02 Richard Biener <rguenther@suse.de>
2707
2708 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
2709 into ...
2710 (bitmap_insert_into_set): ... this.
2711
2712 2017-08-02 Richard Biener <rguenther@suse.de>
2713
2714 PR tree-optimization/81633
2715 Revert
2716 2015-08-17 Alan Hayward <alan.hayward@arm.com>
2717
2718 PR tree-optimization/71752
2719 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
2720
2721 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
2722
2723 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
2724 (machine_function::call_ms2sysv_pad_out): Remove field.
2725 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
2726 (ix86_compute_frame_layout): Likewise.
2727
2728 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
2729
2730 PR target/81654
2731 * config/i386/i386.c (ix86_set_func_type): Disallow naked
2732 attribute with interrupt attribute.
2733
2734 2017-08-01 Andrew Pinski <apinski@cavium.com>
2735
2736 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
2737 BIT_INSERT_EXPR's operand 1
2738 to see if the types precision matches.
2739
2740 2017-08-01 Martin Liska <mliska@suse.cz>
2741
2742 PR middle-end/70140
2743 * builtins.c (expand_builtin_memcpy_args): Remove.
2744 (expand_builtin_memcpy): Call newly added function
2745 expand_builtin_memory_copy_args.
2746 (expand_builtin_memcpy_with_bounds): Likewise.
2747 (expand_builtin_mempcpy): Remove last argument.
2748 (expand_builtin_mempcpy_with_bounds): Likewise.
2749 (expand_builtin_memory_copy_args): New function created from
2750 expand_builtin_mempcpy_args with small modifications.
2751 (expand_builtin_mempcpy_args): Remove.
2752 (expand_builtin_stpcpy): Remove unused argument.
2753 (expand_builtin): Likewise.
2754 (expand_builtin_with_bounds): Likewise.
2755
2756 2017-08-01 Martin Liska <mliska@suse.cz>
2757
2758 Revert r250771
2759 Make mempcpy more optimal (PR middle-end/70140).
2760
2761 2017-08-01 Jakub Jelinek <jakub@redhat.com>
2762
2763 PR target/81622
2764 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
2765 __builtin_vec_cmpne verify both arguments are compatible vectors
2766 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
2767 verify arg1_type is a pointer or array type. For __builtin_vec_st,
2768 move computation of aligned to after checking the argument types.
2769 Formatting fixes.
2770
2771 PR target/80846
2772 * config/rs6000/vsx.md (vextract_fp_from_shorth,
2773 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
2774 calls.
2775
2776 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
2777 Doug Rupp <rupp@adacore.com>
2778 Olivier Hainque <hainque@adacore.com>
2779
2780 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
2781 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
2782 arm8 (arch v4).
2783 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
2784 for TARGET_OS_CPP_BUILTIN.
2785 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
2786 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
2787 arm_arch7.
2788 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
2789 passing required abi options to the assembler for EABI configurations.
2790 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
2791 of .text.hot and .text.unlikely sections for kernel modules when
2792 using ARM style exceptions.
2793 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
2794 options. Add EXTRA_CC1_SPEC.
2795 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
2796 toolchain options.
2797 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
2798 transition.
2799 (ARM_TARGET2_DWARF_FORMAT): Define.
2800 * config/arm/t-vxworks: Adjust multilib control to removal of the
2801 Diab command line options.
2802
2803 2017-08-01 Martin Liska <mliska@suse.cz>
2804
2805 PR gcov-profile/81561
2806 * gcov.c (unblock): Make unblocking safe as we need to preserve
2807 index correspondence of blocks and block_lists.
2808
2809 2017-08-01 Richard Biener <rguenther@suse.de>
2810
2811 PR tree-optimization/81181
2812 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
2813 (compute_antic): ... end of iteration here.
2814
2815 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
2816
2817 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
2818 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
2819 (ftree-slp-vectorize): Likewise.
2820 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
2821 can no longer be set independent of flag_tree_loop_vectorize.
2822 * omp-general.c (emp_max_vf): Likewise.
2823 * opts.c (enable_fdo_optimizations): Remove references to
2824 flag_tree_vectorize, these are now implicit.
2825 (common_handle_option): Remove handling for OPT_ftree_vectorize,
2826 and leave it for the options machinery.
2827
2828 2017-08-01 Martin Liska <mliska@suse.cz>
2829
2830 PR middle-end/70140
2831 * builtins.c (expand_builtin_memcpy_args): Remove.
2832 (expand_builtin_memcpy): Call newly added function
2833 expand_builtin_memory_copy_args.
2834 (expand_builtin_memcpy_with_bounds): Likewise.
2835 (expand_builtin_mempcpy): Remove last argument.
2836 (expand_builtin_mempcpy_with_bounds): Likewise.
2837 (expand_builtin_memory_copy_args): New function created from
2838 expand_builtin_mempcpy_args with small modifications.
2839 (expand_builtin_mempcpy_args): Remove.
2840 (expand_builtin_stpcpy): Remove unused argument.
2841 (expand_builtin): Likewise.
2842 (expand_builtin_with_bounds): Likewise.
2843
2844 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
2845
2846 PR target/81641
2847 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
2848 print "ds:" only for immediates in generic address space.
2849
2850 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
2851
2852 PR target/81639
2853 * config/i386/i386.c (ix86_funciton_naked): New prototype.
2854 (ix86_function_ok_for_sibcall): Return false for naked functions.
2855
2856 2017-08-01 Richard Biener <rguenther@suse.de>
2857
2858 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
2859 (compute_antic): Seed worklist with exit block predecessors.
2860 * cfganal.c (dfs_find_deadend): For a cycle return the source
2861 of the edge closing it.
2862
2863 2017-08-01 Tamar Christina <tamar.christina@arm.com>
2864
2865 * config/aarch64/aarch64.c
2866 (aarch64_can_const_movi_rtx_p): Move 0 check.
2867
2868 2017-08-01 Bin Cheng <bin.cheng@arm.com>
2869
2870 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
2871 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
2872 above macro.
2873 * match.pd: Ditto in address comparison pattern.
2874
2875 2017-08-01 Bin Cheng <bin.cheng@arm.com>
2876
2877 PR tree-optimization/81627
2878 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
2879 closed ssa form for store-store chain.
2880
2881 2017-08-01 Bin Cheng <bin.cheng@arm.com>
2882
2883 PR tree-optimization/81620
2884 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
2885 for store-store chain.
2886
2887 2017-08-01 Jakub Jelinek <jakub@redhat.com>
2888
2889 PR tree-optimization/81588
2890 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
2891 ranges[i].in_p, invert comparison code ccode. For >/>=,
2892 swap rhs1 and rhs2 and comparison code unconditionally,
2893 for </<= don't do that. Don't swap rhs1/rhs2 again if
2894 ranges[i].in_p, instead invert comparison code ccode if
2895 opcode or oe->rank is BIT_IOR_EXPR.
2896
2897 PR target/80846
2898 * optabs.def (vec_extract_optab, vec_init_optab): Change from
2899 a direct optab to conversion optab.
2900 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
2901 with GET_MODE_INNER as last argument instead of optab_handler.
2902 * expmed.c (extract_bit_field_1): Likewise. Use vector from
2903 vector extraction if possible and optab is available.
2904 * expr.c (store_constructor): Use convert_optab_handler instead
2905 of optab_handler. Use vector initialization from smaller
2906 vectors if possible and optab is available.
2907 * tree-vect-stmts.c (vectorizable_load): Likewise.
2908 * doc/md.texi (vec_extract, vec_init): Document that the optabs
2909 now have two modes.
2910 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
2911 of vec_init from half-sized vectors with the same element mode.
2912 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
2913 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
2914 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
2915 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
2916 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
2917 after mode in gen_vec_extract* calls.
2918 (vec_extract<mode>): Renamed to ...
2919 (vec_extract<mode><ssescalarmodelower>): ... this.
2920 (vec_extract<mode><ssehalfvecmodelower>): New expander.
2921 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
2922 element mode after mode in gen_vec_init* calls.
2923 (VEC_INIT_HALF_MODE): New mode iterator.
2924 (vec_init<mode>): Renamed to ...
2925 (vec_init<mode><ssescalarmodelower>): ... this.
2926 (vec_init<mode><ssehalfvecmodelower>): New expander.
2927 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
2928 (vec_extractv2sfsf): ... this.
2929 (vec_initv2sf): Renamed to ...
2930 (vec_initv2sfsf): ... this.
2931 (vec_extractv2si): Renamed to ...
2932 (vec_extractv2sisi): ... this.
2933 (vec_initv2si): Renamed to ...
2934 (vec_initv2sisi): ... this.
2935 (vec_extractv4hi): Renamed to ...
2936 (vec_extractv4hihi): ... this.
2937 (vec_initv4hi): Renamed to ...
2938 (vec_initv4hihi): ... this.
2939 (vec_extractv8qi): Renamed to ...
2940 (vec_extractv8qiqi): ... this.
2941 (vec_initv8qi): Renamed to ...
2942 (vec_initv8qiqi): ... this.
2943 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
2944 (vec_init<mode>): Renamed to ...
2945 (vec_init<mode><VEC_base_l>): ... this.
2946 (vec_extract<mode>): Renamed to ...
2947 (vec_extract<mode><VEC_base_l>): ... this.
2948 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
2949 (vec_initv2sfsf): ... this.
2950 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
2951 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
2952 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
2953 element mode after mode in gen_vec_init* calls.
2954 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
2955 (vec_init<mode><Vel>): ... this.
2956 (vec_extract<mode>): Renamed to ...
2957 (vec_extract<mode><Vel>): ... this.
2958 * config/aarch64/iterators.md (Vel): New mode attribute.
2959 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
2960 Add element mode after mode in gen_vec_extract* calls.
2961 * config/s390/vector.md (non_vec_l): New mode attribute.
2962 (vec_extract<mode>): Renamed to ...
2963 (vec_extract<mode><non_vec_l>): ... this.
2964 (vec_init<mode>): Renamed to ...
2965 (vec_init<mode><non_vec_l>): ... this.
2966 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
2967 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
2968 vec_extract mode.
2969 * config/arm/iterators.md (V_elem_l): New mode attribute.
2970 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
2971 (vec_extract<mode><V_elem_l>): ... this.
2972 (vec_extractv2di): Renamed to ...
2973 (vec_extractv2didi): ... this.
2974 (vec_init<mode>): Renamed to ...
2975 (vec_init<mode><V_elem_l>): ... this.
2976 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
2977 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
2978 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
2979 Add element mode after gen_vec_extract* calls.
2980 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
2981 (vec_init<mode><unitmode>): ... this.
2982 (vec_extract<mode>): Renamed to ...
2983 (vec_extract<mode><unitmode>): ... this.
2984 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
2985 (vec_init<mode><unitmode>): ... this.
2986 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
2987 (vec_initv2sfsf): ... this.
2988 (vec_extractv2sf): Renamed to ...
2989 (vec_extractv2sfsf): ... this.
2990 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
2991 Add element mode after gen_vec_extract* calls.
2992 * config/mips/mips.md (unitmode): New mode iterator.
2993 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
2994 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
2995 * config/spu/spu.md (inner_l): New mode attribute.
2996 (vec_init<mode>): Renamed to ...
2997 (vec_init<mode><inner_l>): ... this.
2998 (vec_extract<mode>): Renamed to ...
2999 (vec_extract<mode><inner_l>): ... this.
3000 * config/sparc/sparc.md (veltmode): New mode iterator.
3001 (vec_init<VMALL:mode>): Renamed to ...
3002 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
3003 * config/ia64/vect.md (vec_initv2si): Renamed to ...
3004 (vec_initv2sisi): ... this.
3005 (vec_initv2sf): Renamed to ...
3006 (vec_initv2sfsf): ... this.
3007 (vec_extractv2sf): Renamed to ...
3008 (vec_extractv2sfsf): ... this.
3009 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
3010 (vec_init<mode>): Renamed to ...
3011 (vec_init<mode><VEC_base_l>): ... this.
3012 (vec_extract<mode>): Renamed to ...
3013 (vec_extract<mode><VEC_base_l>): ... this.
3014 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
3015 (vec_initv2sfsf): ... this.
3016 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
3017 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
3018 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
3019 gen_vec_init* calls.
3020
3021 2017-08-01 Richard Biener <rguenther@suse.de>
3022
3023 PR tree-optimization/81297
3024 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
3025 TREE_OVERFLOW from INTEGER_CSTs.
3026
3027 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
3028
3029 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
3030
3031 2017-07-31 Carl Love <cel@us.ibm.com>
3032
3033 * config/rs6000/rs6000-c: Add support for built-in functions
3034 vector signed char vec_xl_be (signed long long, signed char *);
3035 vector unsigned char vec_xl_be (signed long long, unsigned char *);
3036 vector signed int vec_xl_be (signed long long, signed int *);
3037 vector unsigned int vec_xl_be (signed long long, unsigned int *);
3038 vector signed long long vec_xl_be (signed long long, signed long long *);
3039 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
3040 vector signed short vec_xl_be (signed long long, signed short *);
3041 vector unsigned short vec_xl_be (signed long long, unsigned short *);
3042 vector double vec_xl_be (signed long long, double *);
3043 vector float vec_xl_be (signed long long, float *);
3044 * config/rs6000/altivec.h (vec_xl_be): Add #define.
3045 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
3046 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
3047 for the builtins.
3048 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
3049 (altivec_expand_builtin): Add switch statement to call
3050 altivec_expand_xl_be for each builtin.
3051 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
3052 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
3053 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
3054 __builtin_vsx_le_be_v16qi.
3055 * doc/extend.texi: Update the built-in documentation file for the
3056 new built-in functions.
3057
3058 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
3059
3060 PR target/25967
3061 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
3062 New function.
3063 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
3064
3065 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3066
3067 * config.gcc: Add z14.
3068 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
3069 CPU model numbers for z13s and z14.
3070 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
3071 arch12 with z14.
3072 * config/s390/s390-opts.h (enum processor_type): Rename
3073 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
3074 * config/s390/s390.c (processor_table): Add field for CPU name to
3075 be passed to Binutils.
3076 (s390_asm_output_machine_for_arch): Use the new field in
3077 processor_table for Binutils.
3078 (s390_expand_builtin): Replace arch12 with z14.
3079 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
3080 (s390_get_sched_attrmask): Likewise.
3081 (s390_get_unit_mask): Likewise.
3082 * config/s390/s390.opt: Add z14 to processor_type enum.
3083
3084 2017-07-31 Martin Jambor <mjambor@suse.cz>
3085
3086 PR hsa/81477
3087 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
3088 regardless of optimization level.
3089
3090 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
3091 Martin Liska <mliska@suse.cz>
3092
3093 * predict.def: Remove old comment and adjust probability.
3094 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
3095 PREDICT statements.
3096
3097 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
3098
3099 PR target/25967
3100 * config/i386/i386.c (ix86_function_naked): New function.
3101 (ix86_can_use_return_insn_p): Return false for naked functions.
3102 (ix86_expand_prologue): Skip prologue for naked functions.
3103 (ix86_expand_epilogue): Skip epilogue for naked functions
3104 and emit trap instruction.
3105 (ix86_warn_func_return): New function.
3106 (ix86_attribute_table): Add "naked" attribute specification.
3107 (TARGET_WARN_FUNC_RETURN): Define.
3108 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
3109
3110 2017-07-31 Martin Liska <mliska@suse.cz>
3111
3112 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
3113 (dump_gimple_bb_header): Always dump BB info.
3114 (pp_cfg_jump): Do not append info about BB when dumping a jump.
3115
3116 2017-07-31 Martin Liska <mliska@suse.cz>
3117
3118 PR sanitize/81530
3119 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
3120 also with current_function_decl non-null equality.
3121
3122 2017-07-31 Jakub Jelinek <jakub@redhat.com>
3123
3124 PR sanitizer/81604
3125 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
3126 change type to the element type, instead add eltype variable and
3127 use it where we are interested in the element type.
3128
3129 PR tree-optimization/81603
3130 * ipa-polymorphic-call.c
3131 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
3132 offset arithmetic in offset_int, bail out if the resulting bit offset
3133 doesn't fit into shwi.
3134
3135 2017-07-31 Martin Liska <mliska@suse.cz>
3136
3137 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
3138 (gimplify_save_expr): Fix comment.
3139
3140 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
3141
3142 PR target/79793
3143 * config/i386/i386.c (ix86_function_arg): Update arguments for
3144 exception handler.
3145 (ix86_compute_frame_layout): Set the initial stack offset to
3146 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
3147 INCOMING_FRAME_SP_OFFSET.
3148 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
3149 stack before exception handler returns.
3150 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
3151 the 'ERROR_CODE' for exception handler.
3152
3153 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
3154
3155 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
3156 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
3157 (ASM_OUTPUT_REG_POP): Ditto.
3158 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
3159 instead of asm_fprintf to output pure string.
3160
3161 2017-07-29 Jakub Jelinek <jakub@redhat.com>
3162
3163 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
3164 to imported_module_or_decl hook.
3165 (debug_nothing_tree_tree_tree_bool): Remove.
3166 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
3167 * debug.c (do_nothing_debug_hooks): Use
3168 debug_nothing_tree_tree_tree_bool_bool instead of
3169 debug_nothing_tree_tree_tree_bool.
3170 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3171 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3172 * sdbout.c (sdb_debug_hooks): Likewise.
3173 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
3174 (gen_namespace_die): Add DW_AT_export_symbols attribute if
3175 langhook wants it.
3176 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
3177 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
3178 attribute, don't add anything.
3179
3180 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3181
3182 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
3183 (fold_build2_stat_loc): Likewise.
3184 (fold_build3_stat_loc): Likewise.
3185 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
3186 (fold_build1_loc): Remove macro.
3187 (fold_build2_loc): Likewise.
3188 (fold_build3_loc): Likewise.
3189
3190 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3191
3192 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
3193 (gimple_build_debug_bind_source_stat): Likewise.
3194 * gimple.h (gimple_build_debug_bind): Remove macro.
3195 (gimple_build_debug_bind_source): Likewise.
3196
3197 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3198
3199 * bitmap.c (bitmap_alloc): Adjust.
3200 (bitmap_gc_alloc): Likewise.
3201 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
3202
3203 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3204
3205 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
3206 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
3207 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
3208 (bitmap_gc_alloc_stat): Likewise.
3209 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
3210
3211 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3212
3213 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
3214 * rtl.h (shallow_copy_rtx): Remove macro.
3215
3216 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3217
3218 * emit-rtl.c (gen_raw_REG): Adjust.
3219 * gengenrtl.c (gendef): Likewise.
3220 * rtl.c (rtx_alloc_stat): Remove _stat from name.
3221 * rtl.h (rtx_alloc): Remove macro.
3222
3223 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3224
3225 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
3226 (build_tree_list_stat): Likewise.
3227 * tree.h (build_tree_list): Remove macro.
3228 (build_tree_list_vec): Likewise.
3229
3230 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3231
3232 * tree.c (make_vector_stat): Remove _stat from name.
3233 (build_vector_stat): Likewise.
3234 * tree.h (make_vector_stat): Remove macro.
3235 (build_vector_stat): Likewise.
3236
3237 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3238
3239 * tree.h (build_var_debug_value): Remove prototype.
3240
3241 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3242
3243 * tree.c (tree_cons_stat): Remove _stat from name.
3244 * tree.h (tree_cons): Remove macro.
3245
3246 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3247
3248 * tree.c (build_vl_exp_stat): Remove _stat from name.
3249 * tree.h (build_vl_exp): Remove macro.
3250
3251 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3252
3253 * tree.c (build_decl_stat): Remove _stat from name.
3254 * tree.h (build_decl): Remove macro.
3255
3256 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3257
3258 * gimple.c (gimple_build_with_ops_stat): Adjust.
3259 (gimple_alloc_stat): Remove _stat from name.
3260 * gimple.h (gimple_alloc): Remove macro.
3261
3262 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3263
3264 * tree.c (make_tree_vec_stat): Remove _stat from name.
3265 (grow_tree_vec_stat): Likewise.
3266 * tree.h (make_tree_vec_stat): Adjust prototype.
3267 (grow_tree_vec_stat): Likewise.
3268 (make_tree_vec): Remove macro.
3269 (grow_tree_vec): Likewise.
3270
3271 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3272
3273 * fold-const.c (fold_build1_stat_loc): Adjust.
3274 (fold_build2_stat_loc): Likewise.
3275 (fold_build3_stat_loc): Likewise.
3276 * tree.c (build0_stat): Remove _stat from name.
3277 (build1_stat): Likewise.
3278 (build2_stat): Likewise.
3279 (build3_stat): Likewise.
3280 (build4_stat): Likewise.
3281 (build5_stat): Likewise.
3282 * tree.h (build1_loc): Remove macro, and rename _stat function
3283 to this.
3284 (build2_loc): Likewise.
3285 (build3_loc): Likewise.
3286 (build4_loc): Likewise.
3287 (build5_loc): Likewise.
3288
3289 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3290
3291 * tree.c (make_int_cst_stat): Remove _stat from name.
3292 * tree.h (make_int_cst_stat): Adjust prototype.
3293 (make_int_cst): Remove macro.
3294
3295 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3296
3297 * tree.c (make_tre_binfo_stat): Remove _stat from name.
3298 * tree.h (make_tree_binfo_stat): Adjust prototype.
3299 (make_tree_binfo): Remove.
3300
3301 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3302
3303 * tree.c (copy_node_stat): Rename to copy_node.
3304 (build_distinct_type_copy): Adjust.
3305 * tree.h (copy_node_stat): Adjust prototype.
3306 (copy_node): Remove macro.
3307
3308 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3309
3310 * tree.c (make_node_stat): rename to make_node.
3311 (build_tree_list_stat): Adjust.
3312 (build0_stat): Likewise.
3313 (build2_stat): Likewise.
3314 (build3_stat): Likewise.
3315 (build4_stat): Likewise.
3316 (build5_stat): Likewise.
3317 (build_decl_stat): Likewise.
3318 * tree.h (make_node_stat): Adjust prototype.
3319 (make_node): remove macro.
3320
3321 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
3322
3323 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
3324 (PPC_FEATURE2_SCV): Likewise.
3325 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
3326
3327 2017-07-28 Tamar Christina <tamar.christina@arm.com>
3328
3329 * config/aarch64/aarch64.c
3330 (aarch64_internal_mov_immediate): Add new special pattern.
3331 * config/aarch64/aarch64.md (*movdi_aarch64):
3332 Add reg/32bit const mov case.
3333
3334 2017-07-28 Tamar Christina <tamar.christina@arm.com>
3335 Richard Sandiford <richard.sandiford@linaro.org>
3336
3337 * config/aarch64/aarch64.md (mov<mode>): Generalize.
3338 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
3339 Add integer and movi cases.
3340 (movi-split-hf-df-sf split, fp16): New.
3341 (enabled): Added TARGET_FP_F16INST.
3342 * config/aarch64/iterators.md (GPF_HF): New.
3343 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
3344
3345 2017-07-28 Tamar Christina <tamar.christina@arm.com>
3346
3347 * config/aarch64/aarch64.c
3348 (aarch64_simd_container_mode): Add prototype.
3349 (aarch64_expand_mov_immediate): Add HI support.
3350 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
3351 (aarch64_can_const_movi_rtx_p): New.
3352 (aarch64_preferred_reload_class):
3353 Remove restrictions of using FP registers for certain SIMD operations.
3354 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
3355 (aarch64_valid_floating_const): Add integer move validation.
3356 (aarch64_simd_imm_scalar_p): Remove.
3357 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
3358 (aarch64_legitimate_constant_p): Expand list of supported cases.
3359 * config/aarch64/aarch64-protos.h
3360 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
3361 (aarch64_reinterpret_float_as_int): New.
3362 (aarch64_simd_imm_scalar_p): Remove.
3363 * config/aarch64/constraints.md (Uvi): New.
3364 (Dd): Split into Ds and new Dd.
3365 * config/aarch64/aarch64.md (*movsi_aarch64):
3366 Add SIMD mov case.
3367 (*movdi_aarch64): Add SIMD mov case.
3368
3369 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3370
3371 * tree-predcom.c: (struct chain): Handle store-store chain in which
3372 stores for elimination only store loop invariant values.
3373 (execute_pred_commoning_chain): Ditto.
3374 (prepare_initializers_chain_store_elim): Ditto.
3375 (prepare_finalizers): Ditto.
3376 (is_inv_store_elimination_chain): New function.
3377 (initialize_root_vars_store_elim_1): New function.
3378
3379 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3380
3381 * tree-predcom.c: Revise general description of the pass.
3382 (enum chain_type): New enum type for store elimination.
3383 (struct chain): New field supporting store elimination.
3384 (struct component): Ditto.
3385 (dump_chain): Dump store-stores chain.
3386 (release_chain): Release resources.
3387 (split_data_refs_to_components): Compute and create component
3388 contains only stores for elimination.
3389 (get_chain_last_ref_at): New function.
3390 (make_invariant_chain): Initialization.
3391 (make_rooted_chain): Specify chain type in parameter and record it.
3392 (add_looparound_copies): Skip for store-stores chain.
3393 (determine_roots_comp): Compute type of chain and pass it to
3394 make_rooted_chain.
3395 (initialize_root_vars_store_elim_2): New function.
3396 (finalize_eliminated_stores): New function.
3397 (remove_stmt): Handle store for elimination.
3398 (execute_pred_commoning_chain): Execute predictive commoning on
3399 store-store chains.
3400 (determine_unroll_factor): Skip unroll for store-stores chain.
3401 (prepare_initializers_chain_store_elim): New function.
3402 (prepare_initializers_chain): Hanlde store-store chain.
3403 (prepare_finalizers_chain, prepare_finalizers): New function.
3404 (tree_predictive_commoning_loop): Return integer value indicating
3405 if loop is unrolled or lcssa form is corrupted.
3406 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
3407
3408 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3409
3410 * tree-predcom.c (initialize_root): Delete.
3411 (execute_pred_commoning_chain): Initialize root vars and replace
3412 reference of non-combined chain directly, rather than call above
3413 function.
3414
3415 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3416
3417 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
3418 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
3419
3420 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3421
3422 * tree-predcom.c (struct chain): New field init_seq.
3423 (release_chain): Release init_seq.
3424 (prepare_initializers_chain): Record intialization stmts in above
3425 field.
3426 (insert_init_seqs): New function.
3427 (tree_predictive_commoning_loop): Call insert_init_seqs.
3428
3429 2017-07-28 Bin Cheng <bin.cheng@arm.com>
3430
3431 * tree-predcom.c (determine_roots_comp): Skip trivial components.
3432
3433 2017-07-28 Richard Biener <rguenther@suse.de>
3434
3435 * match.pd: Remove superfluous :c.
3436 * genmatch.c (simplify::id): Add member.
3437 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
3438 Copy id.
3439 (current_id): New global.
3440 (dt_node::parent): Move from ...
3441 (dt_operand::parent): ... here. Add for_id member.
3442 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
3443 (decision_tree::find_node): Relax order requirement when
3444 merging DT_TRUE nodes to ones inbetween the current simplify
3445 and the one we try to merge with. Add diagnostic whenever
3446 we need to enforce pattern order by not merging.
3447 (decision_tree::insert): Set current_id.
3448 (decision_tree::print_node): Dump parent node and for_id.
3449 (parser::last_id): Add member.
3450 (parser::push_simplify): Assign unique id.
3451 (parser::parser): Initialize last_id.
3452
3453 2017-07-28 Martin Liska <mliska@suse.cz>
3454
3455 PR sanitizer/81340
3456 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
3457 gimple_build_debug_bind.
3458
3459 2017-07-28 Richard Biener <rguenther@suse.de>
3460
3461 PR tree-optimization/81502
3462 * match.pd: Add pattern combining BIT_INSERT_EXPR with
3463 BIT_FIELD_REF.
3464 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
3465 size/pos operands.
3466 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
3467 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
3468 for BIT_FIELD_REF args.
3469 * fold-const.c (make_bit_field_ref): Likewise.
3470 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
3471
3472 2017-07-28 Jakub Jelinek <jakub@redhat.com>
3473
3474 PR sanitizer/80998
3475 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
3476 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
3477 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
3478 Or it into SANITIZER_UNDEFINED.
3479 * ubsan.c: Include gimple-fold.h and varasm.h.
3480 (ubsan_expand_ptr_ifn): New function.
3481 (instrument_pointer_overflow): New function.
3482 (maybe_instrument_pointer_overflow): New function.
3483 (instrument_object_size): Formatting fix.
3484 (pass_ubsan::execute): Call instrument_pointer_overflow
3485 and maybe_instrument_pointer_overflow.
3486 * internal-fn.c (expand_UBSAN_PTR): New function.
3487 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
3488 * sanitizer.def (__ubsan_handle_pointer_overflow,
3489 __ubsan_handle_pointer_overflow_abort): New builtins.
3490 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
3491 * internal-fn.def (UBSAN_PTR): New internal function.
3492 * opts.c (sanitizer_opts): Add pointer-overflow.
3493 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
3494 * fold-const.c (build_range_check): Compute pointer range check in
3495 integral type if pointer arithmetics would be needed. Formatting
3496 fixes.
3497
3498 2017-07-28 Martin Liska <mliska@suse.cz>
3499
3500 PR sanitizer/81460
3501 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
3502 parameters that are of a variable-length.
3503
3504 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
3505
3506 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
3507 rs6000/biarch64.h.
3508 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
3509 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3510 (CRT_CALL_STATIC_FUNCTION): Likewise.
3511 (ASM_DEFAULT_SPEC): New define.
3512 (ASM_SPEC32): Likewise.
3513 (ASM_SPEC64): Likewise.
3514 (ASM_SPEC_COMMON): Likewise.
3515 (ASM_SPEC): Likewise.
3516 (INVALID_64BIT): Likewise.
3517 (LINK_OS_DEFAULT_SPEC): Likewise.
3518 (LINK_OS_SPEC32): Likewise.
3519 (LINK_OS_SPEC64): Likewise.
3520 (POWERPC_LINUX): Likewise.
3521 (PTRDIFF_TYPE): Likewise.
3522 (RESTORE_FP_PREFIX): Likewise.
3523 (RESTORE_FP_SUFFIX): Likewise.
3524 (SAVE_FP_PREFIX): Likewise.
3525 (SAVE_FP_SUFFIX): Likewise.
3526 (SIZE_TYPE): Likewise.
3527 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
3528 (TARGET_64BIT): Likewise.
3529 (TARGET_64BIT): Likewise.
3530 (TARGET_AIX): Likewise.
3531 (WCHAR_TYPE_SIZE): Likewise.
3532 (WCHAR_TYPE): Undefine.
3533 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
3534 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
3535 (CPP_OS_RTEMS_SPEC): Delete.
3536 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
3537 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
3538 link_os_spec64.
3539 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
3540
3541 2017-07-28 Jakub Jelinek <jakub@redhat.com>
3542
3543 PR tree-optimization/81578
3544 * tree-parloops.c (build_new_reduction): Bail out if
3545 reduction_code isn't one of the standard OpenMP reductions.
3546 Move the details printing after that decision.
3547
3548 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
3549
3550 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
3551 related to reload_in_progress.
3552 (splat_input_operand): Likewise.
3553 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
3554 Delete prototype.
3555 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
3556 field.
3557 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
3558 (TARGET_INSTANTIATE_DECLS): Likewise.
3559 (legitimate_indexed_address_p): Delete reload_in_progress code.
3560 (rs6000_debug_legitimate_address_p): Likewise.
3561 (rs6000_eliminate_indexed_memrefs): Likewise.
3562 (rs6000_emit_le_vsx_store): Likewise.
3563 (rs6000_emit_move_si_sf_subreg): Likewise.
3564 (rs6000_emit_move): Likewise.
3565 (register_to_reg_type): Likewise.
3566 (rs6000_pre_atomic_barrier): Likewise.
3567 (rs6000_machopic_legitimize_pic_address): Likewise.
3568 (rs6000_allocate_stack_temp): Likewise.
3569 (rs6000_address_for_fpconvert): Likewise.
3570 (rs6000_address_for_altivec): Likewise.
3571 (rs6000_secondary_memory_needed_rtx): Delete function.
3572 (rs6000_check_sdmode): Likewise.
3573 (rs6000_alloc_sdmode_stack_slot): Likewise.
3574 (rs6000_instantiate_decls): Likewise.
3575 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
3576 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
3577 Delete reload_in_progress.
3578 (*vec_reload_and_plus_<mptrsize>): Likewise.
3579 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
3580 (vsx_div_v2di): Likewise.
3581 (vsx_udiv_v2di): Likewise.
3582
3583 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
3584
3585 * config/rs6000/rs6000.opt (mlra): Replace with stub.
3586 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
3587 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
3588 (rs6000_debug_reg_global): Delete print of LRA status.
3589 (rs6000_option_override_internal): Delete dead LRA related code.
3590 (rs6000_lra_p): Delete function.
3591 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
3592
3593 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
3594
3595 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
3596 * config/riscv/rtems.h: New file.
3597
3598 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3599 Sudakshina Das <sudi.das@arm.com>
3600
3601 * config/aarch64/aarch64.md
3602 (define_split for and<mode>3nr_compare): Move
3603 non aarch64_logical_operand to a register.
3604 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
3605 register immediate operand to a register.
3606 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
3607
3608 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
3609
3610 PR middle-end/81564
3611 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
3612
3613 2017-07-27 Richard Biener <rguenther@suse.de>
3614
3615 PR tree-optimization/81573
3616 PR tree-optimization/81494
3617 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
3618 multi defuse cycle case.
3619
3620 2017-07-27 Richard Biener <rguenther@suse.de>
3621
3622 PR tree-optimization/81571
3623 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
3624 PHIs.
3625
3626 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
3627
3628 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
3629 earlier and only if MASK_FPU is set. Adjust formatting.
3630
3631 2017-07-27 Martin Liska <mliska@suse.cz>
3632
3633 * opt-functions.awk: Add validation of value of Init.
3634 * optc-gen.awk: Pass new argument.
3635
3636 2017-07-27 Martin Liska <mliska@suse.cz>
3637
3638 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
3639 Fix wrong condition.
3640
3641 2017-07-27 Martin Liska <mliska@suse.cz>
3642
3643 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
3644 BBs and edges seen by autoFDO.
3645
3646 2017-07-27 Richard Biener <rguenther@suse.de>
3647
3648 PR tree-optimization/81502
3649 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
3650 with incompatible but same sized type.
3651 (execute_update_addresses_taken): Likewise.
3652
3653 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
3654
3655 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
3656 flag_tree_loop_vectorize rather than flag_tree_vectorize.
3657
3658 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3659
3660 PR target/81534
3661 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
3662 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
3663 Change s_operand to memory_operand.
3664
3665 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
3666
3667 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
3668 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
3669 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
3670 Emit instructions rather than returning an expression. Handle TFmode
3671 and KFmode by casting to TImode.
3672 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
3673 (rs6000_emit_le_vsx_store): Likewise.
3674 * config/rs6000/vsx.md (VSX_TI): New iterator.
3675 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
3676 (*vsx_le_undo_permute_<mode>): Likewise.
3677 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
3678 emit the split sequence.
3679 (*vsx_le_perm_store_<mode>): Likewise.
3680
3681 2017-07-27 Jakub Jelinek <jakub@redhat.com>
3682
3683 PR tree-optimization/81555
3684 PR tree-optimization/81556
3685 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
3686 if true, force CHANGED for the recursive invocation.
3687 (reassociate_bb): Remember original length of ops array, pass
3688 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
3689
3690 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
3691 attributes for noipa attribute. For naked attribute use
3692 lookup_attribute first before lookup_attribute_spec.
3693 * final.c (rest_of_handle_final): Disable IPA RA for functions with
3694 noipa attribute.
3695 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
3696 for functions with noipa attribute.
3697 (cgraph_externally_visible_p): Return true for functions with noipa
3698 attribute.
3699 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
3700 for functions with noipa attribute.
3701 * doc/extend.texi: Document noipa function attribute.
3702 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
3703 also for functions with noipa attribute.
3704 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
3705
3706 2017-07-26 Andrew Pinski <apinski@cavium.com>
3707
3708 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
3709 vec_unalign_load_cost and vec_unalign_store_cost.
3710
3711 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3712
3713 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
3714 -mvsx-small-integer option.
3715 (ISA_3_0_MASKS_IEEE): Likewise.
3716 (OTHER_VSX_VECTOR_MASKS): Likewise.
3717 (POWERPC_MASKS): Likewise.
3718 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
3719 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
3720 code, only testing for DImode being allowed in non-VSX floating
3721 point registers.
3722 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
3723 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
3724 another VSX test.
3725 (rs6000_option_override_internal): Delete -mvsx-small-integer.
3726 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
3727 TARGET_P8_VECTOR test.
3728 (rs6000_secondary_reload_simple_move): Likewise.
3729 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
3730 since TARGET_P9_VECTOR was already tested.
3731 (rs6000_opt_masks): Remove -mvsx-small-integer.
3732 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
3733 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
3734 used.
3735 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
3736 test for TARGET_VEXTRACTUB was used, and that uses
3737 TARGET_P9_VECTOR.
3738 (p9 extract splitter): Likewise.
3739 (vsx_extract_<mode>_di_p9): Likewise.
3740 (vsx_extract_<mode>_store_p9): Likewise.
3741 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
3742 for TARGET_P9_VECTOR was used. Delete code that is now dead with
3743 the elimination of TARGET_VSX_SMALL_INTEGER.
3744 (vsx_extract_<mode>_p8): Likewise.
3745 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
3746 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
3747 (vsx_set_<mode>_p9): Likewise.
3748 (vsx_set_v4sf_p9): Likewise.
3749 (vsx_set_v4sf_p9_zero): Likewise.
3750 (vsx_insert_extract_v4sf_p9): Likewise.
3751 (vsx_insert_extract_v4sf_p9_2): Likewise.
3752 * config/rs6000/rs6000.md (sign extend splitter): Change
3753 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
3754 (floatsi<mode>2_lfiwax_mem): Likewise.
3755 (floatunssi<mode>2_lfiwzx_mem): Likewise.
3756 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
3757 since a test for TARGET_P9_VECTOR was used.
3758 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
3759 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
3760 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
3761 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
3762 TARGET_P8_VECTOR test.
3763 (fix_trunc<mode>si2_stfiwx): Likewise.
3764 (fix_trunc<mode>si2_internal): Likewise.
3765 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
3766 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
3767 used.
3768 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
3769 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
3770 TARGET_P8_VECTOR test.
3771 (fixuns_trunc<mode>si2_stfiwx): Likewise.
3772 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
3773 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
3774 used.
3775 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
3776 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
3777 since a test for TARGET_P9_VECTOR was used.
3778 (splitter for loading small constants): Likewise.
3779
3780 2017-07-26 Andrew Pinski <apinski@cavium.com>
3781
3782 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
3783 vec_fp_stmt_cost.
3784
3785 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
3786
3787 PR target/81563
3788 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
3789 (fp_valid_at): Likewise.
3790
3791 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
3792
3793 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
3794 (qdf24xx_addrcost_table): Likewise.
3795 (cortexa57_tunings): Update to use generic_branch_cost.
3796 (cortexa72_tunings): Likewise.
3797 (cortexa73_tunings): Likewise.
3798 (qdf24xx_tunings): Likewise.
3799
3800 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
3801
3802 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
3803 (thunderx2t99_branch_cost): Likewise.
3804 (cortexa35_tunings): Update to use generic_branch_cost.
3805 (cortexa53_tunings): Likewise.
3806 (cortexa57_tunings): Likewise.
3807 (cortexa72_tunings): Likewise.
3808 (cortexa73_tunings): Likewise.
3809 (thunderx2t99_tunings): Likewise.
3810
3811 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
3812
3813 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
3814 (sparc_option_override): Honour MASK_FSMULD.
3815 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
3816 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
3817 * config/sparc/sparc.opt (mfsmuld): New option.
3818 * doc/invoke.texi (mfsmuld): Document option.
3819
3820 2017-07-26 Marek Polacek <polacek@redhat.com>
3821
3822 PR middle-end/70992
3823 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
3824
3825 2017-07-26 Richard Biener <rguenther@suse.de>
3826
3827 * gimple-match-head.c (do_valueize): Return OP if valueize
3828 returns NULL_TREE.
3829 (get_def): New helper to get at the def stmt of a SSA name
3830 if valueize allows.
3831 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
3832 do_valueize to get at the def stmt.
3833 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
3834
3835 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
3836
3837 PR middle-end/46932
3838 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
3839
3840 2017-07-26 Martin Liska <mliska@suse.cz>
3841
3842 PR sanitize/81186
3843 * function.c (expand_function_start): Make expansion of
3844 nonlocal_goto_save_area after parm_birth_insn.
3845
3846 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
3847
3848 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
3849 from all CPU target flags enable members.
3850
3851 2017-07-26 Richard Biener <rguenther@suse.de>
3852
3853 * genmatch.c (dt_simplify::gen): Make iterator vars const.
3854 (decision_tree::gen): Make 'type' const.
3855 (write_predicate): Likewise.
3856
3857 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
3858
3859 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
3860 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
3861 (rs6000_option_override_internal): Likewise.
3862 (rs6000_expand_vector_set): Likewise.
3863 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
3864 (TARGET_UPPER_REGS_SF): Likewise.
3865 (TARGET_UPPER_REGS_DI): Likewise.
3866 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
3867 (TARGET_DIRECT_MOVE_64BIT): Likewise.
3868 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
3869 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
3870 (Splitters for DI constants in Altivec registers): Likewise.
3871 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
3872 (vsx_set_v4sf_p9): Likewise.
3873 (vsx_set_v4sf_p9_zero): Likewise.
3874 (vsx_insert_extract_v4sf_p9): Likewise.
3875 (vsx_insert_extract_v4sf_p9_2): Likewise.
3876
3877 2017-07-25 Carl Love <cel@us.ibm.com>
3878
3879 * doc/extend.texi: Update the built-in documentation file for the
3880 existing built-in functions
3881 vector signed char vec_cnttz (vector signed char);
3882 vector unsigned char vec_cnttz (vector unsigned char);
3883 vector signed short vec_cnttz (vector signed short);
3884 vector unsigned short vec_cnttz (vector unsigned short);
3885 vector signed int vec_cnttz (vector signed int);
3886 vector unsigned int vec_cnttz (vector unsigned int);
3887 vector signed long long vec_cnttz (vector signed long long);
3888 vector unsigned long long vec_cnttz (vector unsigned long long);
3889
3890 2017-07-25 Andrew Pinski <apinski@cavium.com>
3891
3892 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
3893 accesses where the use is for the first operand of a BIT_INSERT.
3894
3895 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
3896
3897 PR bootstrap/81521
3898 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
3899 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
3900
3901 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
3902
3903 * config/i386/gstabs.h: Delete.
3904 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
3905
3906 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
3907
3908 * config/i386/i386.c (ix86_decompose_address): Do not check for
3909 register RTX when looking at index_reg or base_reg.
3910 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
3911
3912 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
3913
3914 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
3915 to update EH info here.
3916
3917 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
3918
3919 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
3920
3921 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
3922
3923 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
3924
3925 2017-07-25 Torsten Duwe <duwe@suse.de>
3926
3927 * common.opt: Introduce -fpatchable-function-entry
3928 command line option, and its variables function_entry_patch_area_size
3929 and function_entry_patch_area_start.
3930 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
3931 including a two-value parser.
3932 * target.def (print_patchable_function_entry): New target hook.
3933 * targhooks.h (default_print_patchable_function_entry): New function.
3934 * targhooks.c (default_print_patchable_function_entry): Likewise.
3935 * toplev.c (process_options): Switch off IPA-RA if
3936 patchable function entries are being generated.
3937 * varasm.c (assemble_start_function): Look at the
3938 patchable-function-entry command line switch and current
3939 function attributes and maybe generate NOP instructions by
3940 calling the print_patchable_function_entry hook.
3941 * doc/extend.texi: Document patchable_function_entry attribute.
3942 * doc/invoke.texi: Document -fpatchable_function_entry
3943 command line option.
3944 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
3945 New target hook.
3946 * doc/tm.texi: Re-generate.
3947
3948 2017-07-25 Jakub Jelinek <jakub@redhat.com>
3949
3950 PR target/81532
3951 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
3952 TARGET_AVX512DQ rather than TARGET_AVX512BW.
3953
3954 2017-07-25 Tamar Christina <tamar.christina@arm.com>
3955
3956 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
3957
3958 2017-07-25 Richard Biener <rguenther@suse.de>
3959
3960 PR tree-optimization/81455
3961 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
3962 not walk in cycles when looking for guards.
3963
3964 2017-07-25 Richard Biener <rguenther@suse.de>
3965
3966 PR tree-optimization/81529
3967 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
3968 when optimizing backedge uses.
3969
3970 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
3971
3972 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
3973 character for AIX.
3974 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
3975 to dl_section_ref. On AIX, append an expression to subtract
3976 the size of the section length to dl_section_ref.
3977
3978 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
3979
3980 * configure.ac: If any of the config.* scripts fail, exit 1.
3981 * configure: Regenerate.
3982
3983 2017-07-25 Richard Biener <rguenther@suse.de>
3984
3985 PR middle-end/81546
3986 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
3987 of immediate uses, be more verbose on errors.
3988
3989 2017-07-25 Richard Biener <rguenther@suse.de>
3990
3991 PR tree-optimization/81510
3992 * tree-vect-loop.c (vect_is_simple_reduction): When the
3993 reduction stmt is not inside the loop bail out.
3994
3995 2017-07-25 Richard Biener <rguenther@suse.de>
3996
3997 PR tree-optimization/81303
3998 * tree-vect-loop-manip.c (vect_loop_versioning): Build
3999 profitability check against LOOP_VINFO_NITERSM1.
4000
4001 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
4002
4003 * domwalk.c (cmp_bb_postorder): Simplify.
4004 (sort_bbs_postorder): New function. Use it...
4005 (dom_walker::walk): ...here to optimize common cases.
4006
4007 2017-07-25 Martin Liska <mliska@suse.cz>
4008
4009 PR ipa/81520
4010 * ipa-visibility.c (function_and_variable_visibility): Make the
4011 redirection just on target that supports aliasing.
4012 Fix GNU coding style.
4013
4014 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
4015
4016 PR libgcc/61152
4017 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
4018 Format changes.
4019 * config/arm/rtems.h: Likewise.
4020 * config/bfin/rtems.h: Likewise.
4021 * config/i386/rtemself.h: Likewise.
4022 * config/lm32/rtems.h: Likewise.
4023 * config/m32c/rtems.h: Likewise.
4024 * config/m68k/rtemself.h: Likewise.
4025 * config/microblaze/rtems.h: Likewise.
4026 * config/mips/rtems.h: Likewise.
4027 * config/moxie/rtems.h: Likewise.
4028 * config/nios2/rtems.h: Likewise.
4029 * config/powerpcspe/rtems.h: Likewise.
4030 * config/rs6000/rtems.h: Likewise.
4031 * config/rtems.h: Likewise.
4032 * config/sh/rtems.h: Likewise.
4033 * config/sh/rtemself.h: Likewise.
4034 * config/sparc/rtemself.h: Likewise.
4035
4036 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
4037
4038 PR 81487
4039 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
4040 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
4041 * tree-ssa-structalias.c (alias_get_name): Same.
4042
4043 2017-07-25 Bin Cheng <bin.cheng@arm.com>
4044
4045 PR target/81414
4046 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
4047 instructions if no du chain is found.
4048
4049 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
4050
4051 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
4052
4053 2017-07-25 Richard Biener <rguenther@suse.de>
4054
4055 PR middle-end/81505
4056 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
4057 sticky.
4058
4059 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4060
4061 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
4062 upper-regs options.
4063 (ISA_2_7_MASKS_SERVER): Likewise.
4064 (ISA_3_0_MASKS_IEEE): Likewise.
4065 (OTHER_P8_VECTOR_MASKS): Likewise.
4066 (OTHER_VSX_VECTOR_MASKS): Likewise.
4067 (POWERPC_MASKS): Likewise.
4068 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
4069 duplicate list of options.
4070 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
4071 explicit -mupper-regs options.
4072 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
4073 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
4074 alias for -mupper-regs-df.
4075 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
4076 (rs6000_init_hard_regno_mode_ok): Likewise.
4077 (rs6000_option_override_internal): Likewise.
4078 (rs6000_opt_masks): Likewise.
4079 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
4080 options in terms of whether -mvsx or -mpower8-vector was used.
4081 (TARGET_UPPER_REGS_DI): Likewise.
4082 (TARGET_UPPER_REGS_SF): Likewise.
4083 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
4084 -mupper-regs-* options.
4085
4086 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
4087
4088 * passes.c (emergency_dump_function): Print some empty lines and a
4089 header before the RTL dump.
4090
4091 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
4092
4093 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
4094
4095 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
4096
4097 PR target/79041
4098 * config/aarch64/aarch64.c (aarch64_classify_symbol):
4099 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
4100
4101 2017-07-24 Carl Love <cel@us.ibm.com>
4102
4103 * config/rs6000/rs6000-c.c: Add support for built-in functions
4104 vector float vec_extract_fp32_from_shorth (vector unsigned short);
4105 vector float vec_extract_fp32_from_shortl (vector unsigned short);
4106 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
4107 vec_extract_fp_from_shortl): Add defines for the two builtins.
4108 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
4109 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
4110 new builtins.
4111 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
4112 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
4113 * doc/extend.texi: Update the built-in documentation file for the
4114 new built-in function.
4115
4116 2017-07-24 Jakub Jelinek <jakub@redhat.com>
4117
4118 PR bootstrap/81521
4119 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
4120 documentation.
4121 * doc/generic.texi: Likewise.
4122 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
4123 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
4124
4125 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
4126
4127 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
4128 (aarch64_mls_elt_merge<mode>): Likewise.
4129
4130 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
4131
4132 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
4133 having __cxa_atexit.
4134
4135 2017-07-23 Michael Collison <michael.collison@arm.com>
4136
4137 * config/arm/arm.c (arm_option_override): Deprecate
4138 use of -mstructure-size-boundary.
4139 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
4140 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
4141
4142 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4143
4144 PR target/80695
4145 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4146 Reduce cost estimate for direct moves.
4147
4148 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
4149
4150 PR target/80569
4151 * config/i386/i386.c (ix86_option_override_internal): Disable
4152 BMI, BMI2 and TBM instructions for -m16.
4153
4154 2017-07-21 Carl Love <cel@us.ibm.com>
4155
4156 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4157 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4158 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4159 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4160 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4161 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
4162 VMULOSW): New enum "unspec" values.
4163 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
4164 altivec_vmulosw): New patterns.
4165 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4166 VMULOSW): Add definitions.
4167
4168 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
4169
4170 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
4171 (qdf24xx): Likewise.
4172 * config/aarch64/aarch64-options-extensions.def (rdma); New.
4173 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
4174 (AARCH64_FL_V8_1): Renumber.
4175 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
4176 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
4177 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
4178 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
4179 rdma to feature modifiers list.
4180
4181 2017-07-21 Yury Gribov <tetra2005@gmail.com>
4182
4183 PR middle-end/56727
4184 * ipa-visibility (function_and_variable_visibility): Convert
4185 recursive PLT call to direct call if appropriate.
4186
4187 2017-07-21 Andrew Pinski <apinski@cavium.com>
4188
4189 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
4190 operand 1 to see if the types precision matches.
4191 * fold-const.c (operand_equal_p): Likewise.
4192
4193 2017-07-21 Richard Biener <rguenther@suse.de>
4194
4195 PR tree-optimization/81303
4196 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
4197 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
4198 (vect_peeling_hash_get_lowest_cost): Adjust.
4199 (vect_enhance_data_refs_alignment): Likewise. Use
4200 vect_get_peeling_costs_all_drs to compute the penalty for no
4201 peeling to match up costs.
4202
4203 2017-07-21 Richard Biener <rguenther@suse.de>
4204
4205 PR tree-optimization/81500
4206 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
4207 we didn't identify a reduction path.
4208
4209 2017-07-21 Tom de Vries <tom@codesourcery.com>
4210 Cesar Philippidis <cesar@codesourcery.com>
4211
4212 PR gcov-profile/81442
4213 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
4214 probabilities.
4215
4216 2017-07-21 Tom de Vries <tom@codesourcery.com>
4217
4218 PR lto/81430
4219 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
4220 function.
4221 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
4222 nvptx_override_options_after_change.
4223
4224 2017-07-21 Ulrich Drepper <drepper@redhat.com>
4225
4226 * dwarf2out.c (output_file_names): Avoid double testing for
4227 dwarf_version >= 5.
4228
4229 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
4230
4231 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
4232
4233 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
4234
4235 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
4236 hot/cold regions.
4237 (try_crossjump_to_edge): Do not punt on partitioned functions.
4238
4239 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
4240
4241 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
4242 Put all BBs reachable only via paths crossing cold region to cold
4243 region.
4244 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
4245
4246 2016-07-21 Richard Biener <rguenther@suse.de>
4247
4248 PR tree-optimization/81303
4249 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
4250 into account prologue and epilogue iterations when raising
4251 min_profitable_iters to sth at least covering one vector iteration.
4252
4253 2017-07-21 Tamar Christina <tamar.christina@arm.com>
4254
4255 * config/arm/arm.c (arm_test_cpu_arch_dat):
4256 Check for overlap.
4257
4258 2017-07-20 Nathan Sidwell <nathan@acm.org>
4259
4260 Remove TYPE_METHODS.
4261 * tree.h (TYPE_METHODS): Delete.
4262 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
4263 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
4264 (dbxout_type_methods): Scan TYPE_FIELDS.
4265 (dbxout_type): Don't check TYPE_METHODS here.
4266 * function.c (use_register_for_decl): Always ignore register for
4267 class types when not optimizing.
4268 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
4269 * tree.c (free_lang_data_in_type): Stitch out member functions and
4270 templates from TYPE_FIELDS.
4271 (build_distinct_type_copy, verify_type_variant,
4272 verify_type): Member fns are on TYPE_FIELDS.
4273 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
4274 * tree-pretty-print.c (dump_generic_node): Likewise.
4275
4276 2017-07-20 Jakub Jelinek <jakub@redhat.com>
4277
4278 PR target/80846
4279 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
4280 V2TImode and V4TImode.
4281 (ix86_expand_vector_extract): Likewise.
4282 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
4283 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
4284 (ssescalarmode): Handle V4TImode and V2TImode.
4285 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
4286 (*vec_extractv2ti, *vec_extractv4ti): New insns.
4287 (VEXTRACTI128_MODE): New mode iterator.
4288 (splitter for *vec_extractv?ti first element): New.
4289 (VEC_INIT_MODE): New mode iterator.
4290 (vec_init<mode>): Consolidate 3 expanders into one using
4291 VEC_INIT_MODE mode iterator.
4292
4293 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
4294
4295 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
4296 non_spilled_static_chain_regno_p.
4297
4298 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
4299
4300 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
4301
4302 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
4303
4304 * bb-reorder.c (connect_traces): Allow copying of blocks within
4305 single partition.
4306
4307 2017-07-20 Richard Biener <rguenther@suse.de>
4308
4309 * gimple.h (gimple_phi_result): Add gphi * overload.
4310 (gimple_phi_result_ptr): Likewise.
4311 (gimple_phi_arg): Likewise. Adjust index assert to only
4312 allow actual argument accesses rather than all slots available
4313 by capacity.
4314 (gimple_phi_arg_def): Add gphi * overload.
4315 * tree-phinodes.c (make_phi_node): Initialize only actual
4316 arguments.
4317 (resize_phi_node): Clear memory not covered by old node,
4318 do not initialize excess argument slots.
4319 (reserve_phi_args_for_new_edge): Initialize new argument slot
4320 completely.
4321
4322 2017-07-20 Bin Cheng <bin.cheng@arm.com>
4323
4324 PR tree-optimization/81388
4325 Revert r238585:
4326 2016-07-21 Bin Cheng <bin.cheng@arm.com>
4327
4328 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
4329 by removing computation of may_be_zero.
4330
4331 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
4332 Tom de Vries <tom@codesourcery.com>
4333
4334 PR middle-end/81030
4335 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
4336 when gimple level profile disagrees with what RTL expander did.
4337
4338 2017-07-20 Richard Biener <rguenther@suse.de>
4339
4340 PR tree-optimization/61171
4341 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
4342 (vect_analyze_stmt): Add slp instance parameter.
4343 (vectorizable_reduction): Likewise.
4344 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
4345 (vect_is_simple_reduction): Deal with chains not detected
4346 as SLP reduction chain, specifically not properly associated
4347 chains containing a mix of plus/minus.
4348 (get_reduction_op): Remove.
4349 (get_initial_defs_for_reduction): Simplify, pass in whether
4350 this is a reduction chain, pass in the SLP node for the PHIs.
4351 (vect_create_epilog_for_reduction): Get the SLP instance as
4352 arg and adjust.
4353 (vectorizable_reduction): Get the SLP instance as arg.
4354 During analysis remember the SLP node with the PHIs in the
4355 instance. Simplify getting at the vectorized reduction PHIs.
4356 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
4357 through SLP instance.
4358 (vect_slp_analyze_operations): Likewise.
4359 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
4360 (vect_transform_stmt): Likewise.
4361
4362 2017-07-20 Tom de Vries <tom@codesourcery.com>
4363
4364 PR tree-optimization/81489
4365 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
4366 read of phi arg location to before loop that modifies phi.
4367
4368 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
4369
4370 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
4371 New pattern.
4372
4373 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
4374
4375 PR middle-end/81331
4376 * except.c (execute): Fix ordering issue.
4377
4378 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
4379
4380 PR rtl-optimization/81423
4381 * combine.c (make_compound_operation_int): Don't try to optimize
4382 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
4383
4384 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
4385
4386 PR rtl-optimization/81423
4387 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
4388 with a constant that is -1 in the truncated to mode.
4389
4390 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
4391
4392 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
4393 (determine_unlikely_bbs): ... here.
4394 * predict.h (propagate_unlikely_bbs_forward): Declare.
4395 * cfgexpand.c (pass_expand::execute): Use it.
4396 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
4397 unlikely edges.
4398 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
4399 propagate_unlikely_bbs_forward.
4400
4401 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
4402
4403 PR middle-end/81331
4404 * except.c (maybe_add_nop_after_section_switch): New function.
4405 (execute): Use it.
4406
4407 2017-07-19 Tom de Vries <tom@codesourcery.com>
4408
4409 * gimple.h (gimple_phi_set_arg): Make assert more strict.
4410
4411 2017-07-19 Tom de Vries <tom@codesourcery.com>
4412
4413 * gimple.h (gimple_phi_arg): Make assert more strict.
4414
4415 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
4416
4417 * config.gcc (powerpc*-*-*): Add mmintrin.h.
4418 * config/rs6000/mmintrin.h: New file.
4419 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
4420
4421 2017-07-19 Jakub Jelinek <jakub@redhat.com>
4422
4423 PR tree-optimization/81346
4424 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
4425
4426 2017-07-19 Tom de Vries <tom@codesourcery.com>
4427
4428 * config/nvptx/nvptx.md (VECIM): Add V2DI.
4429
4430 2017-07-19 Tom de Vries <tom@codesourcery.com>
4431
4432 * config/nvptx/nvptx-modes.def: Add V2DImode.
4433 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
4434 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
4435 (nvptx_output_mov_insn): Handle lack of mov.b128.
4436 (nvptx_print_operand): Handle 'H' and 'L' codes.
4437 (nvptx_vector_mode_supported): Allow V2DImode.
4438 (nvptx_preferred_simd_mode): New function.
4439 (nvptx_data_alignment): New function.
4440 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
4441 nvptx_preferred_simd_mode.
4442 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
4443 64 to 128 bits.
4444 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
4445
4446 2017-07-19 Tom de Vries <tom@codesourcery.com>
4447
4448 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
4449 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
4450 (nvptx_vector_mode_supported): New function. Allow V2SImode.
4451 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
4452 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
4453 (mov<VECIM>_insn): New define_insn.
4454 (define_expand "mov<VECIM>): New define_expand.
4455
4456 2017-07-19 Tom de Vries <tom@codesourcery.com>
4457
4458 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
4459
4460 2017-07-19 Jakub Jelinek <jakub@redhat.com>
4461
4462 PR tree-optimization/81346
4463 * fold-const.h (fold_div_compare, range_check_type): Declare.
4464 * fold-const.c (range_check_type): New function.
4465 (build_range_check): Use range_check_type.
4466 (fold_div_compare): No longer static, rewritten into
4467 a match.pd helper function.
4468 (fold_comparison): Don't call fold_div_compare here.
4469 * match.pd (X / C1 op C2): New optimization using fold_div_compare
4470 as helper function.
4471
4472 2017-07-19 Nathan Sidwell <nathan@acm.org>
4473
4474 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
4475 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
4476 * tree.c (find_decls_types_r, verify_type): Use
4477 TYPE_{MIN,MAX}_VALUE_RAW.
4478 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
4479 (hash_tree): Likewise.
4480 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
4481 Likewise.
4482 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
4483 Likewise.
4484
4485 2017-07-18 Tom de Vries <tom@codesourcery.com>
4486
4487 PR middle-end/81464
4488 * omp-expand.c (expand_omp_for_static_chunk): Handle
4489 equal-argument loop exit phi.
4490
4491 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
4492
4493 PR target/81471
4494 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
4495 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
4496 operand 2 predicate.
4497 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
4498 operand 2 predicate.
4499 (ror,rol -> rorx splitters): Use const_int_operand as
4500 operand 2 predicate.
4501
4502 2017-06-18 Richard Biener <rguenther@suse.de>
4503
4504 PR tree-optimization/81410
4505 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
4506 the gap in the ! slp_perm SLP case after each group.
4507
4508 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
4509
4510 PR middle-end/81463
4511 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
4512 again.
4513
4514 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
4515
4516 PR middle-end/81462
4517 * predict.c (set_even_probabilities): Cleanup; do not affect
4518 probabilities that are already known.
4519 (combine_predictions_for_bb): Call even when count is set.
4520
4521 2017-07-18 Nathan Sidwell <nathan@acm.org>
4522
4523 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
4524 TYPE_MAX_VALUE.
4525
4526 2017-07-18 Bin Cheng <bin.cheng@arm.com>
4527
4528 PR target/81408
4529 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
4530 optimization for loop niter analysis.
4531
4532 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
4533
4534 PR target/81473
4535 * config/avr/avr.c (avr_optimize_casesi): Don't use
4536 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
4537
4538 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
4539
4540 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
4541 body_cost_vec from _vect_peel_extended_info.
4542 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
4543 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
4544 npeel.
4545
4546 2017-07-18 Bin Cheng <bin.cheng@arm.com>
4547
4548 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
4549
4550 2017-07-18 Richard Biener <rguenther@suse.de>
4551
4552 PR tree-optimization/80620
4553 PR tree-optimization/81403
4554 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
4555 info when re-using a VN table entry.
4556
4557 2017-07-18 Richard Biener <rguenther@suse.de>
4558
4559 PR tree-optimization/81418
4560 * tree-vect-loop.c (vectorizable_reduction): Properly compute
4561 vectype_in. Verify that with lane-reducing reduction operations
4562 we have a single def-use cycle.
4563
4564 2017-07-17 Carl Love <cel@us.ibm.com>
4565
4566 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
4567
4568 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4569 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4570 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4571 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4572 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4573 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
4574 VMULOSW): New enum "unspec" values.
4575 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
4576 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
4577 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
4578 altivec_vmulosw): New patterns.
4579 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4580 VMULOSW): Add definitions.
4581 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
4582
4583 * config/alpha/alpha.c: Include predict.h.
4584
4585 2017-07-17 Yury Gribov <tetra2005@gmail.com>
4586
4587 * tree-vrp.c (compare_assert_loc): Fix comparison function
4588 to return predictable results.
4589
4590 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
4591
4592 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
4593 option.
4594 (subdi3): Likewise.
4595 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
4596 * doc/invoke.texi (mexpand-adddi): Update text.
4597
4598 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
4599
4600 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
4601 that also clobbers the CC register. The old expand code is moved
4602 to ...
4603 (*arc_clzsi2): ... here.
4604 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
4605 the CC register. The old expand code is moved to ...
4606 (arc_ctzsi2): ... here.
4607
4608 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
4609
4610 * config/arc/arc.opt (mindexed-loads): Use initial value
4611 TARGET_INDEXED_LOADS_DEFAULT.
4612 (mauto-modify-reg): Use initial value
4613 TARGET_AUTO_MODIFY_REG_DEFAULT.
4614 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
4615 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
4616 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
4617 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
4618
4619 2017-07-17 Martin Liska <mliska@suse.cz>
4620
4621 PR sanitizer/81302
4622 * opts.c (finish_options): Do not allow -fgnu-tm
4623 w/ -fsanitize={kernel-,}address. Say sorry.
4624
4625 2017-07-17 Bin Cheng <bin.cheng@arm.com>
4626
4627 PR target/81369
4628 * tree-loop-distribution.c (classify_partition): Only assert on
4629 numer of iterations.
4630 (merge_dep_scc_partitions): Delete prameter. Update function call.
4631 (distribute_loop): Remove code handling loop with unknown niters.
4632 (pass_loop_distribution::execute): Skip loop with unknown niters.
4633
4634 2017-07-17 Bin Cheng <bin.cheng@arm.com>
4635
4636 PR target/81369
4637 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
4638 function sort_partitions_by_post_order.
4639
4640 2017-07-17 Bin Cheng <bin.cheng@arm.com>
4641
4642 PR tree-optimization/81374
4643 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
4644 the max index of basic blocks, rather than number of basic blocks.
4645
4646 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
4647
4648 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
4649 proto.
4650 (arc_legitimate_pic_operand_p): Likewise.
4651 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
4652 function.
4653 (arc_needs_pcl_p): Likewise.
4654 (arc_legitimate_pc_offset_p): Likewise.
4655 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
4656 function is also used in constrains.md.
4657 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
4658 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
4659 PLUS. Only return true/false in known cases, otherwise assert.
4660 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
4661 is already called in arc_legitimate_constant_p.
4662 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
4663 pic addresses.
4664 (LEGITIMATE_PIC_OPERAND_P): Use
4665 arc_raw_symbolic_reference_mentioned_p function.
4666 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
4667 function.
4668 (Cal): Likewise.
4669 (C32): Likewise.
4670
4671 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
4672 Andrew Burgess <andrew.burgess@embecosm.com>
4673
4674 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
4675 (arc_return_address_register): New function.
4676 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
4677 (arc_handle_fndecl_attribute): Add naked attribute.
4678 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
4679 (TARGET_WARN_FUNC_RETURN): Likewise.
4680 (arc_allocate_stack_slots_for_args): New function.
4681 (arc_warn_func_return): Likewise.
4682 (machine_function): Change type fn_type.
4683 (arc_compute_function_type): Consider new naked function type,
4684 change function return type.
4685 (arc_must_save_register): Adapt to handle new
4686 arc_compute_function_type's return type.
4687 (arc_expand_prologue): Likewise.
4688 (arc_expand_epilogue): Likewise.
4689 (arc_return_address_regs): Delete.
4690 (arc_return_address_register): New function.
4691 (arc_epilogue_uses): Use above function.
4692 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
4693 (arc_function_type): Change encoding, add naked type.
4694 (ARC_INTERRUPT_P): Change to handle the new encoding.
4695 (ARC_FAST_INTERRUPT_P): Likewise.
4696 (ARC_NORMAL_P): Define.
4697 (ARC_NAKED_P): Likewise.
4698 (arc_compute_function_type): Delete prototype.
4699 * config/arc/arc.md (in_ret_delay_slot): Use
4700 arc_return_address_register function.
4701 (simple_return): Likewise.
4702 (p_return_i): Likewise.
4703
4704 2017-07-17 Jakub Jelinek <jakub@redhat.com>
4705
4706 PR tree-optimization/81428
4707 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
4708 can't be built for those types.
4709
4710 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
4711
4712 Remove stuff dead since r239246.
4713
4714 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
4715 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
4716 (avr_inform_devices): Remove dead stuff.
4717
4718 2017-07-17 Tamar Christina <tamar.christina@arm.com>
4719
4720 * config/arm/arm_neon.h: Fix softp typo.
4721
4722 2017-07-17 Jakub Jelinek <jakub@redhat.com>
4723
4724 PR tree-optimization/81365
4725 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
4726 aggregate moves onto bb predecessor edges, make sure there are no
4727 loads that could alias the lhs in between the start of bb and the
4728 loads from *phi.
4729
4730 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
4731
4732 PR 80929
4733 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
4734 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
4735 [LSHIFTRT, outer_code = TRUNCATE]: Same.
4736
4737 2017-07-17 Jakub Jelinek <jakub@redhat.com>
4738
4739 PR tree-optimization/81396
4740 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
4741 (init_symbolic_number): Initialize it to 1.
4742 (perform_symbolic_merge): Add n_ops from both operands into the new
4743 n_ops.
4744 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
4745 without base_addr as useless if they need more than one operation.
4746 (bswap_replace): Handle !bswap case for NULL base_addr.
4747
4748 2017-07-17 Tom de Vries <tom@codesourcery.com>
4749
4750 PR target/81069
4751 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
4752 as possible.
4753
4754 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
4755
4756 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
4757 conditional builtin define __FIX_LEON3FT_B2BST.
4758
4759 2017-07-17 Daniel Cederman <cederman@gaisler.com>
4760
4761 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
4762 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
4763 with -mfix-ut700.
4764
4765 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
4766
4767 PR rtl-optimization/81424
4768 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
4769 to remove potential trapping from operands if -fnon-call-exceptions.
4770
4771 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4772
4773 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
4774 profile_proability for scalling.
4775 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
4776
4777 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4778
4779 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
4780
4781 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4782
4783 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
4784 fixpoint arithmetics.
4785
4786 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4787
4788 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
4789 fixpoint arithmetics.
4790
4791 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4792
4793 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
4794 fixpoint arithmetics.
4795
4796 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
4797
4798 * profile-count.h (profile_probability::from_reg_br_prob_note,
4799 profile_probability::to_reg_br_prob_note): New functions.
4800 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
4801 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
4802 * predict.c (probability_reliable_p): Update.
4803 (edge_probability_reliable_p): Update.
4804 (br_prob_note_reliable_p): Update.
4805 (invert_br_probabilities): Update.
4806 (add_reg_br_prob_note): New function.
4807 (combine_predictions_for_insn): Update.
4808 * asan.c (asan_clear_shadow): Update.
4809 * cfgbuild.c (compute_outgoing_frequencies): Update.
4810 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
4811 (update_br_prob_note): Update.
4812 (rtl_verify_edges): Update.
4813 (purge_dead_edges): Update.
4814 (fixup_reorder_chain): Update.
4815 * emit-rtl.c (try_split): Update.
4816 * ifcvt.c (cond_exec_process_insns): Update.
4817 (cond_exec_process_if_block): Update.
4818 (dead_or_predicable): Update.
4819 * internal-fn.c (expand_addsub_overflow): Update.
4820 (expand_neg_overflow): Update.
4821 (expand_mul_overflow): Update.
4822 * loop-doloop.c (doloop_modify): Update.
4823 * loop-unroll.c (compare_and_jump_seq): Update.
4824 * optabs.c (emit_cmp_and_jump_insn_1): Update.
4825 * predict.h: Update.
4826 * reorg.c (mostly_true_jump): Update.
4827 * rtl.h: Update.
4828 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
4829 * config/alpha/alpha.c (emit_unlikely_jump): Update.
4830 * config/arc/arc.c: (emit_unlikely_jump): Update.
4831 * config/arm/arm.c: (emit_unlikely_jump): Update.
4832 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
4833 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
4834 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
4835 (ix86_print_operand): Update.
4836 (ix86_split_fp_branch): Update.
4837 (predict_jump): Update.
4838 * config/ia64/ia64.c (ia64_print_operand): Update.
4839 * config/mmix/mmix.c (mmix_print_operand): Update.
4840 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
4841 (rs6000_expand_split_stack_prologue): Update.
4842 * config/rs6000/rs6000.c: Update.
4843 * config/s390/s390.c (s390_expand_vec_strlen): Update.
4844 (s390_expand_vec_movstr): Update.
4845 (s390_expand_cs_tdsi): Update.
4846 (s390_expand_split_stack_prologue): Update.
4847 * config/sh/sh.c (sh_print_operand): Update.
4848 (expand_cbranchsi4): Update.
4849 (expand_cbranchdi4): Update.
4850 * config/sparc/sparc.c (output_v9branch): Update.
4851 * config/spu/spu.c (get_branch_target): Update.
4852 (ea_load_store_inline): Update.
4853 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
4854 * config/tilepro/tilepro.c: Update.
4855
4856 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
4857
4858 * gimplify.c (mostly_copy_tree_r): Revert latest change.
4859 (gimplify_save_expr): Likewise.
4860
4861 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
4862
4863 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
4864
4865 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
4866
4867 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
4868 TV_IPA_FNSUMMARY.
4869 * timevar.def (TV_IPA_FNSUMMARY): Define.
4870
4871 2017-07-16 Daniel Cederman <cederman@gaisler.com>
4872
4873 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
4874 to back store errata sensitive sequence from being generated.
4875 (sqrtdf2_fix): Likewise.
4876
4877 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
4878
4879 * tree-ssa-threadupdate.c (compute_path_counts,
4880 update_joiner_offpath_counts): Use profile_probability.
4881
4882 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
4883
4884 Revert:
4885 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4886
4887 * config/arm/arm-c.c (arm_cpu_builtins): Define
4888 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
4889
4890 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
4891
4892 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4893 array entries to represent __ieee128 versions of the
4894 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
4895 scalar_extract_sig, and scalar_insert_exp built-in functions.
4896 (altivec_resolve_overloaded_builtin): Add special case handling
4897 for the __builtin_scalar_insert_exp function, as represented by
4898 the P9V_BUILTIN_VEC_VSIEDP constant.
4899 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
4900 exponent support for __ieee128 argument.
4901 (VSESQP): Add scalar extract signature support for __ieee128
4902 argument.
4903 (VSTDCNQP): Add scalar test negative support for __ieee128
4904 argument.
4905 (VSIEQP): Add scalar insert exponent support for __int128 argument
4906 with __ieee128 result.
4907 (VSIEQPF): Add scalar insert exponent support for __ieee128
4908 argument with __ieee128 result.
4909 (VSTDCQP): Add scalar test data class support for __ieee128
4910 argument.
4911 (VSTDCNQP): Add overload support for scalar test negative with
4912 __ieee128 argument.
4913 (VSTDCQP): Add overload support for scalar test data class
4914 __ieee128 argument.
4915 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
4916 UNSPEC_VSX_SXSIGDP.
4917 (UNSPEC_VSX_SIEXPQP): New constant.
4918 (xsxexpqp): New insn for VSX scalar extract exponent quad
4919 precision.
4920 (xsxsigqp): New insn for VSX scalar extract significand quad
4921 precision.
4922 (xsiexpqpf): New insn for VSX scalar insert exponent quad
4923 precision with floating point argument.
4924 (xststdcqp): New expand for VSX scalar test data class quad
4925 precision.
4926 (xststdcnegqp): New expand for VSX scalar test negative quad
4927 precision.
4928 (xststdcqp): New insn to match expansions for VSX scalar test data
4929 class quad precision and VSX scalar test negative quad precision.
4930 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
4931 special case operand checking to enforce that second operand of
4932 VSX scalar test data class with quad precision argument is a 7-bit
4933 unsigned literal.
4934 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
4935 prototypes and descriptions of __ieee128 versions of
4936 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
4937 scalar_test_data_class, and scalar_test_neg built-in functions.
4938
4939 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4940
4941 PR tree-optimization/81162
4942 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
4943 replace a negate with an add.
4944
4945 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
4946
4947 * doc/invoke.texi (arm/-mcpu): Document +crypto.
4948
4949 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4950
4951 * config/arm/arm-c.c (arm_cpu_builtins): Define
4952 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
4953
4954 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4955
4956 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
4957 (armv8-r): Set ARM Cortex-R52 as default CPU.
4958 * config/arm/arm-tables.opt: Regenerate.
4959 * config/arm/arm-tune.md: Regenerate.
4960 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
4961 Cortex-R52.
4962 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
4963 extension for -mcpu=cortex-r52.
4964
4965 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4966
4967 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
4968 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
4969 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
4970 (fp-armv8): Define it as FP_ARMv8 only.
4971 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
4972 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
4973 TARGET_FPU_ARMV8.
4974 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
4975 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
4976 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
4977 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
4978 than TARGET_FPU_ARMV8.
4979 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
4980 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
4981 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
4982 TARGET_FPU_ARMV8.
4983 * config/arm/neon.md (neon_vrint): Likewise.
4984 (neon_vcvt): Likewise.
4985 (neon_<fmaxmin_op><mode>): Likewise.
4986 (<fmaxmin><mode>3): Likewise.
4987 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
4988 * config/arm/predicates.md (arm_cond_move_operator): Check against
4989 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
4990
4991 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
4992
4993 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
4994 to top of function.
4995
4996 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4997
4998 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
4999 loop in comment with memset.
5000
5001 2017-07-14 Martin Liska <mliska@suse.cz>
5002
5003 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
5004 * dwarf2out.c (is_java): Remove the function.
5005 (output_pubname): Remove usage of the function.
5006 (lower_bound_default): Remove usage of DW_LANG_Java.
5007 (gen_compile_unit_die): Likewise.
5008 * gcc.c: Remove compiler defaults for .java and .zip files.
5009 * gimple-expr.c (remove_suffix): Change as there's no longer
5010 extension than 4-letter one.
5011 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
5012 (gimplify_save_expr): Likewise.
5013 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
5014 as it's possible even for other languages than Java.
5015 * langhooks.h (struct lang_hooks): Remove Java from a comment.
5016 * lto-opts.c (lto_write_options): Remove reference to Java.
5017 * opts.c (strip_off_ending): Update file extension handling.
5018 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
5019 * tree-eh.c (lower_resx): Likewise.
5020 * tree.c (free_lang_data_in_type): Remove dead code.
5021 (find_decls_types_r): Likewise.
5022 (build_common_builtin_nodes): Remove Java from a comment.
5023 (verify_type): Remove dead code.
5024 * varasm.c (assemble_external): Remove Java from a comment.
5025
5026 2017-07-14 Martin Liska <mliska@suse.cz>
5027
5028 * opts.c (finish_options): Add quotes.
5029 (common_handle_option): Likewise.
5030
5031 2017-07-14 Martin Liska <mliska@suse.cz>
5032
5033 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
5034 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
5035 Remove N_SO_PASCAL.
5036 * dwarf2out.c (lower_bound_default): Do not handle
5037 DW_LANG_Pascal83.
5038 (gen_compile_unit_die): Likewise.
5039 * gcc.c: Remove default extension binding for GNU Pascal.
5040 * stmt.c: Remove Pascal language from a comment.
5041 * xcoffout.c: Likewise.
5042
5043 2017-07-13 David Malcolm <dmalcolm@redhat.com>
5044
5045 PR c/81405
5046 * diagnostic-show-locus.c (fixit_cmp): New function.
5047 (layout::layout): Sort m_fixit_hints.
5048 (column_range::column_range): Assert that the values are valid.
5049 (struct char_span): New struct.
5050 (correction::overwrite): New method.
5051 (struct source_line): New struct.
5052 (line_corrections::add_hint): Add assertions. Reimplement memcpy
5053 calls in terms of classes source_line and char_span, and
5054 correction::overwrite.
5055 (selftest::test_overlapped_fixit_printing_2): New function.
5056 (selftest::diagnostic_show_locus_c_tests): Call it.
5057
5058 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
5059
5060 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
5061 early if there is no lhs.
5062
5063 2017-07-13 Martin Liska <mliska@suse.cz>
5064
5065 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
5066 (gen_reference_type_die): Likewise.
5067 * stor-layout.c: Remove Pascal-related comment.
5068
5069 2017-07-13 Martin Liska <mliska@suse.cz>
5070
5071 * opts.c (finish_options): Add quotes to error messages.
5072 (parse_sanitizer_options): Likewise.
5073
5074 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
5075
5076 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
5077
5078 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
5079
5080 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
5081
5082 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
5083
5084 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
5085 during expansion.
5086 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
5087
5088 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5089
5090 PR target/81193
5091 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
5092 provides the hardware capability bits, define the macro
5093 __BUILTIN_CPU_SUPPORTS__.
5094 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
5095 if GLIBC does not provide the hardware capability bits. Add a
5096 gcc_unreachable call if the built-in cpu function is neither
5097 __builtin_cpu_is nor __builtin_cpu_supports.
5098 (rs6000_get_function_versions_dispatcher): Change the warning
5099 that an old GLIBC is used which does not export the capability
5100 bits to be an error.
5101 * doc/extend.texi (target_clones attribute): Document the
5102 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
5103 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
5104 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
5105 the macros defined by GCC if the newer GLIBC is available.
5106
5107 2017-07-12 Jeff Law <law@redhat.com>
5108
5109 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
5110 remaining includes slightly.
5111 * config/riscv/riscv-builtins.c: Include profile-count.h.
5112
5113 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
5114
5115 PR target/79883
5116 * config/avr/avr.c (avr_set_current_function): In diagnostic
5117 messages: Quote keywords and (parts of) identifiers.
5118 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
5119 "INTERUPT".
5120
5121 2017-07-12 Carl Love <cel@us.ibm.com>
5122
5123 * config/rs6000/rs6000-c.c: Add support for built-in functions
5124 vector bool char vec_revb (vector bool char);
5125 vector bool short vec_revb (vector short char);
5126 vector bool int vec_revb (vector bool int);
5127 vector bool long long vec_revb (vector bool long long);
5128 * doc/extend.texi: Update the built-in documentation file for the
5129 new built-in functions.
5130
5131 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5132
5133 * config/s390/s390.md: Remove movcc splitter.
5134
5135 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5136
5137 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
5138 load/store on condition.
5139
5140 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
5141
5142 PR target/81407
5143 * config/avr/avr.c (avr_encode_section_info)
5144 [progmem && !TREE_READONLY]: Error if progmem object needs
5145 constructing.
5146
5147 2017-07-11 Michael Collison <michael.collison@arm.com>
5148
5149 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
5150 New pattern.
5151
5152 2017-07-11 Carl Love <cel@us.ibm.com>
5153
5154 * config/rs6000/rs6000-c.c: Add support for builtins
5155 vector unsigned int vec_parity_lsbb (vector signed int);
5156 vector unsigned int vec_parity_lsbb (vector unsigned int);
5157 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
5158 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
5159 vector unsigned long long vec_parity_lsbb (vector signed long long);
5160 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
5161 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
5162 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
5163 * doc/extend.texi: Update the built-in documentation file for the
5164 new built-in functions.
5165
5166 2017-07-11 David Malcolm <dmalcolm@redhat.com>
5167
5168 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
5169 (layout::m_primary_loc): New field.
5170 (layout::layout): Initialize new field. Move location filtering
5171 logic from here to...
5172 (layout::maybe_add_location_range): ...this new method. Add
5173 support for filtering to just the lines already specified by other
5174 locations.
5175 (layout::will_show_line_p): New method.
5176 (gcc_rich_location::add_location_if_nearby): New method.
5177 (selftest::test_add_location_if_nearby): New test function.
5178 (selftest::diagnostic_show_locus_c_tests): Call it.
5179 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
5180 New method.
5181
5182 2017-07-11 Tom de Vries <tom@codesourcery.com>
5183
5184 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
5185 (bb_first_real_insn): New function.
5186 (nvptx_single): Add extra initialization of broadcasted condition
5187 variables.
5188
5189 2017-07-11 Nathan Sidwell <nathan@acm.org>
5190
5191 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
5192
5193 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
5194
5195 * doc/extend.texi (AVR Function Attributes): Remove weblink to
5196 Binutils doc as TEXI will mess them up.
5197 * doc/invoke.texi (AVR Options): Same here.
5198
5199 2017-07-11 Daniel Cederman <cederman@gaisler.com>
5200
5201 * config/sparc/sparc.opt (mfix-ut700): New option.
5202 (mfix-gr712rc): Likewise.
5203 (sparc_fix_b2bst): New variable.
5204 * doc/invoke.texi (SPARC options): Document them.
5205 (ARM options): Fix warnings.
5206 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
5207 instructions to prevent sequences that can trigger the store-store
5208 errata for certain LEON3FT processors.
5209 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
5210 (sparc_option_override): Set sparc_fix_b2bst appropriately.
5211 * config/sparc/sparc.md (fix_b2bst): New attribute.
5212 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
5213
5214 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
5215
5216 PR target/81375
5217 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
5218 (rcpps): Ditto.
5219 (*rsqrtsf2_sse): Ditto.
5220 (rsqrtsf2): Ditto.
5221 (div<mode>3): Macroize insn from divdf3 and divsf3
5222 using MODEF mode iterator.
5223
5224 2017-07-10 Martin Sebor <msebor@redhat.com>
5225
5226 PR tree-optimization/80397
5227 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
5228 instead of testing for equality to INTEGER_TYPE.
5229
5230 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
5231
5232 * config.gcc: Remove uclibc from arc target spec.
5233
5234 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
5235
5236 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
5237
5238 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
5239
5240 PR lto/80838
5241 * lto-wrapper.c (remove_option): New function.
5242 (merge_and_complain): Merge PIC/PIE options more realistically.
5243
5244 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
5245
5246 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
5247
5248 PR target/20296
5249 PR target/81268
5250 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
5251 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
5252 * config.in: Regenerate.
5253 * configure: Regenerate.
5254 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
5255 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
5256 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
5257 (TARGET_GASISR_PROLOGUES): ...target mask.
5258 * common/config/avr/avr-common.c
5259 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
5260 Set -mgas-isr-prologues.
5261 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
5262 INSERT_PASS_BEFORE for it.
5263 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
5264 * config/avr/avr.c (avr_option_override)
5265 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
5266 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
5267 (avr_attribute_table) <no_gccisr>: Add new function attribute.
5268 (avr_set_current_function) <is_no_gccisr>: Init machine field.
5269 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
5270 and rtl_opt_pass.
5271 (make_avr_pass_pre_proep): New function.
5272 (emit_push_sfr) <treg>: Add argument to function and use it
5273 instead of TMP_REG.
5274 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
5275 and set machine->gasisr.yes.
5276 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
5277 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
5278 __gcc_isr.n_pushed to .L__stack_usage.
5279 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
5280 (avr_asm_final_postscan_insn): ...this new static function.
5281 * config/avr/avr.h (machine_function)
5282 <is_no_gccisr, use_L__stack_usage>: New fields.
5283 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
5284 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
5285 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
5286 (gasisr, *gasisr): New expander and insn.
5287 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
5288 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
5289 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
5290
5291 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
5292
5293 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
5294 in quoted strings.
5295
5296 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
5297
5298 Move jump-tables out of .text again.
5299
5300 PR target/81075
5301 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
5302 (ASM_OUTPUT_ADDR_VEC): New function.
5303 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
5304 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
5305 INSN_ADDRESSes as asm comment.
5306 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
5307 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
5308 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
5309 * config/avr/avr.md (*tablejump): Adjust comment.
5310 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
5311 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
5312 New detail.
5313 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
5314 (avr_output_addr_vec): New proto.
5315 (avr_log_t) <insn_addresses>: New field.
5316
5317 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
5318
5319 PR target/81313
5320 * config/i386/i386.c (ix86_function_arg_advance): Set
5321 outgoing_args_on_stack to true if there are outgoing arguments
5322 on stack.
5323 (ix86_function_arg): Likewise.
5324 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
5325 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
5326 * config/i386/i386.h (machine_function): Add
5327 outgoing_args_on_stack.
5328
5329 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
5330
5331 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
5332 supporting pthreds.
5333 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
5334
5335 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
5336
5337 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
5338 (REAL_H): Remove $(MACHMODE_H).
5339 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
5340 double-int.h.
5341 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
5342 $(MACHMODE_H) and double-int.h.
5343 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
5344 $(MACHMODE_H).
5345 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
5346 double-int.h.
5347
5348 2017-07-07 Andrew Pinski <apinski@cavium.com>
5349
5350 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
5351 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
5352
5353 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5354
5355 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
5356 Add warning if GCC was not configured to link against a GLIBC that
5357 exports the hardware capability bits.
5358 (make_resolver_func): Make resolver function private and not a
5359 COMDAT function. Create the name with clone_function_name instead
5360 of make_unique_name.
5361
5362 PR target/81348
5363 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
5364 correct operand in doing the split.
5365
5366 2017-07-07 Carl Love <cel@us.ibm.com>
5367
5368 * config/rs6000/rs6000-c: Add support for built-in function
5369 vector unsigned short vec_pack_to_short_fp32 (vector float,
5370 vector float).
5371 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
5372 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
5373 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
5374 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
5375 (convert_4f32_8i16): Add define_expand.
5376 * doc/extend.texi: Update the built-in documentation file for the
5377 new built-in function.
5378
5379 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5380
5381 * config/sparc/m8.md: New file.
5382 * config/sparc/sparc.md: Include m8.md.
5383
5384 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5385
5386 * config/sparc/sparc.opt: New option -mvis4b.
5387 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
5388 (sparc_option_override): Handle VIS4B.
5389 (enum sparc_builtins): Define
5390 SPARC_BUILTIN_DICTUNPACK{8,16,32},
5391 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
5392 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
5393 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
5394 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
5395 (check_constant_argument): New function.
5396 (sparc_vis_init_builtins): Define builtins
5397 __builtin_vis_dictunpack{8,16,32},
5398 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
5399 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
5400 __builtin_vis_fpcmpde{8,16,32}shl and
5401 __builtin_vis_fpcmpur{8,16,32}shl.
5402 (sparc_expand_builtin): Check that the constant operands to
5403 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
5404 constant and in range.
5405 * config/sparc/sparc-c.c (sparc_target_macros): Handle
5406 TARGET_VIS4B.
5407 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
5408 (SPARC_IMM5_P): Likewise.
5409 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
5410 (enabled): Handle vis4b.
5411 (UNSPEC_DICTUNPACK): New unspec.
5412 (UNSPEC_FPCMPSHL): Likewise.
5413 (UNSPEC_FPUCMPSHL): Likewise.
5414 (UNSPEC_FPCMPDESHL): Likewise.
5415 (UNSPEC_FPCMPURSHL): Likewise.
5416 (cpu_feature): New CPU feature `vis4b'.
5417 (dictunpack{8,16,32}): New insns.
5418 (FPCSMODE): New mode iterator.
5419 (fpcscond): New code iterator.
5420 (fpcsucond): Likewise.
5421 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
5422 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
5423 (fpcmpde{8,16,32}{si,di}shl): Likewise.
5424 (fpcmpur{8,16,32}{si,di}shl): Likewise.
5425 * config/sparc/constraints.md: Define constraints `q' for unsigned
5426 2-bit integer constants and `t' for unsigned 5-bit integer
5427 constants.
5428 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
5429 predicate.
5430 (imm5_operand_dictunpack16): Likewise.
5431 (imm5_operand_dictunpack32): Likewise.
5432 (imm2_operand): Likewise.
5433 * doc/invoke.texi (SPARC Options): Document -mvis4b.
5434 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
5435 ditunpack* and fpcmp*shl builtins.
5436
5437 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5438
5439 * config.gcc: Handle m8 in --with-{cpu,tune} options.
5440 * config.in: Add HAVE_AS_SPARC6 define.
5441 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
5442 M8.
5443 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
5444 TARGET_CPU_m8.
5445 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
5446 (CPP_CPU_SPEC): Handle m8.
5447 (ASM_CPU_SPEC): Likewise.
5448 * config/sparc/sparc-opts.h (enum processor_type): Add
5449 PROCESSOR_M8.
5450 * config/sparc/sparc.c (m8_costs): New struct.
5451 (sparc_option_override): Handle TARGET_CPU_m8.
5452 (sparc32_initialize_trampoline): Likewise.
5453 (sparc64_initialize_trampoline): Likewise.
5454 (sparc_issue_rate): Likewise.
5455 (sparc_register_move_cost): Likewise.
5456 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
5457 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
5458 (ASM_CPU64_DEFAULT_SPEC): Likewise.
5459 (CPP_CPU_SPEC): Handle M8.
5460 (ASM_CPU_SPEC): Likewise.
5461 (AS_M8_FLAG): Define.
5462 * config/sparc/sparc.md: Add m8 to the cpu attribute.
5463 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
5464 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
5465 M8 instructions.
5466 * configure: Regenerate.
5467 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
5468 -mtune=m8.
5469
5470 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5471
5472 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
5473 subtypes.
5474 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
5475 ("*movdi_insn_sp32"): Do not set v3pipe.
5476 ("*movsi_insn"): Likewise.
5477 ("*movdi_insn_sp64"): Likewise.
5478 ("*movsf_insn"): Likewise.
5479 ("*movdf_insn_sp32"): Likewise.
5480 ("*movdf_insn_sp64"): Likewise.
5481 ("*zero_extendsidi2_insn_sp64"): Likewise.
5482 ("*sign_extendsidi2_insn"): Likewise.
5483 ("*mov<VM32:mode>_insn"): Likewise.
5484 ("*mov<VM64:mode>_insn_sp64"): Likewise.
5485 ("*mov<VM64:mode>_insn_sp32"): Likewise.
5486 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
5487 ("<vlop:code><VL:mode>3"): Likewise.
5488 ("*not_<vlop:code><VL:mode>3"): Likewise.
5489 ("*nand<VL:mode>_vis"): Likewise.
5490 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
5491 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
5492 ("one_cmpl<VL:mode>2"): Likewise.
5493 ("faligndata<VM64:mode>_vis"): Likewise.
5494 ("alignaddrsi_vis"): Likewise.
5495 ("alignaddrdi_vis"): Likweise.
5496 ("alignaddrlsi_vis"): Likewise.
5497 ("alignaddrldi_vis"): Likewise.
5498 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
5499 ("bmaskdi_vis"): Likewise.
5500 ("bmasksi_vis"): Likewise.
5501 ("bshuffle<VM64:mode>_vis"): Likewise.
5502 ("cmask8<P:mode>_vis"): Likewise.
5503 ("cmask16<P:mode>_vis"): Likewise.
5504 ("cmask32<P:mode>_vis"): Likewise.
5505 ("pdistn<P:mode>_vis"): Likewise.
5506 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
5507
5508 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5509
5510 * config/sparc/sparc.md ("subtype"): New insn attribute.
5511 ("*wrgsr_sp64"): Set insn subtype.
5512 ("*rdgsr_sp64"): Likewise.
5513 ("alignaddrsi_vis"): Likewise.
5514 ("alignaddrdi_vis"): Likewise.
5515 ("alignaddrlsi_vis"): Likewise.
5516 ("alignaddrldi_vis"): Likewise.
5517 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
5518 ("fexpand_vis"): Likewise.
5519 ("fpmerge_vis"): Likewise.
5520 ("faligndata<VM64:mode>_vis"): Likewise.
5521 ("bshuffle<VM64:mode>_vis"): Likewise.
5522 ("cmask8<P:mode>_vis"): Likewise.
5523 ("cmask16<P:mode>_vis"): Likewise.
5524 ("cmask32<P:mode>_vis"): Likewise.
5525 ("fchksm16_vis"): Likewise.
5526 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
5527 ("fmean16_vis"): Likewise.
5528 ("fp<plusminus_insn>64_vis"): Likewise.
5529 ("<plusminus_insn>v8qi3"): Likewise.
5530 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
5531 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
5532 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
5533 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
5534 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
5535 ("*movqi_insn"): Likewise.
5536 ("*movhi_insn"): Likewise.
5537 ("*movsi_insn"): Likewise.
5538 ("movsi_pic_gotdata_op"): Likewise.
5539 ("*movdi_insn_sp32"): Likewise.
5540 ("*movdi_insn_sp64"): Likewise.
5541 ("movdi_pic_gotdata_op"): Likewise.
5542 ("*movsf_insn"): Likewise.
5543 ("*movdf_insn_sp32"): Likewise.
5544 ("*movdf_insn_sp64"): Likewise.
5545 ("*zero_extendhisi2_insn"): Likewise.
5546 ("*zero_extendqihi2_insn"): Likewise.
5547 ("*zero_extendqisi2_insn"): Likewise.
5548 ("*zero_extendqidi2_insn"): Likewise.
5549 ("*zero_extendhidi2_insn"): Likewise.
5550 ("*zero_extendsidi2_insn_sp64"): Likewise.
5551 ("ldfsr"): Likewise.
5552 ("prefetch_64"): Likewise.
5553 ("prefetch_32"): Likewise.
5554 ("tie_ld32"): Likewise.
5555 ("tie_ld64"): Likewise.
5556 ("*tldo_ldub_sp32"): Likewise.
5557 ("*tldo_ldub1_sp32"): Likewise.
5558 ("*tldo_ldub2_sp32"): Likewise.
5559 ("*tldo_ldub_sp64"): Likewise.
5560 ("*tldo_ldub1_sp64"): Likewise.
5561 ("*tldo_ldub2_sp64"): Likewise.
5562 ("*tldo_ldub3_sp64"): Likewise.
5563 ("*tldo_lduh_sp32"): Likewise.
5564 ("*tldo_lduh1_sp32"): Likewise.
5565 ("*tldo_lduh_sp64"): Likewise.
5566 ("*tldo_lduh1_sp64"): Likewise.
5567 ("*tldo_lduh2_sp64"): Likewise.
5568 ("*tldo_lduw_sp32"): Likewise.
5569 ("*tldo_lduw_sp64"): Likewise.
5570 ("*tldo_lduw1_sp64"): Likewise.
5571 ("*tldo_ldx_sp64"): Likewise.
5572 ("*mov<VM32:mode>_insn"): Likewise.
5573 ("*mov<VM64:mode>_insn_sp64"): Likewise.
5574 ("*mov<VM64:mode>_insn_sp32"): Likewise.
5575
5576 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5577
5578 * config/sparc/sparc.md ("type"): New insn type viscmp.
5579 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
5580 viscmp.
5581 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
5582 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
5583 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
5584 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
5585 viscmp.
5586 ("n7_vis_logical_11cycle"): Likewise.
5587 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
5588 * config/sparc/niagara2.md ("niag3_vis": Likewise.
5589 * config/sparc/niagara.md ("niag_vis"): Likewise.
5590 * config/sparc/ultra3.md ("us3_fga"): Likewise.
5591 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
5592
5593 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
5594
5595 * config/sparc/sparc.md: New instruction type `bmask'.
5596 (bmaskdi_vis): Use the `bmask' type.
5597 (bmasksi_vis): Likewise.
5598 * config/sparc/ultra3.md (us3_array): Likewise.
5599 * config/sparc/niagara7.md (n7_array): Likewise.
5600 * config/sparc/niagara4.md (n4_array): Likewise.
5601 * config/sparc/niagara2.md (niag2_vis): Likewise.
5602 (niag3_vis): Likewise.
5603 * config/sparc/niagara.md (niag_vis): Likewise.
5604
5605 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
5606
5607 * ipa-comdats.c: Remove optimize check from gate.
5608 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
5609 for functions not optimized.
5610 (ipa_fn_summary_read): Skip optimize check.
5611 (ipa_fn_summary_write): Likewise.
5612 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
5613 is optimized.
5614 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
5615 uninlinable.
5616 (can_inline_edge_p): Check flag_pcc_struct_return for match.
5617 (check_callers): Give up on caller which is not optimized.
5618 (inline_small_functions): Likewise.
5619 (ipa_inline): Do not give up when not optimizing.
5620 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
5621 away unoptimizes cdtors.
5622 (whole_program_function_and_variable_visibility): Do
5623 ipa_discover_readonly_nonaddressable_vars in LTO mode.
5624 * ipa.c (process_references): Do not check optimize.
5625 (symbol_table::remove_unreachable_nodes): Update optimize check.
5626 (set_writeonly_bit): Update optimize check.
5627 (pass_ipa_cdtor_merge::gate): Do not check optimize.
5628 (pass_ipa_single_use::gate): Remove.
5629
5630 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5631
5632 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
5633 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
5634 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
5635 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
5636 permute_load, permute_store, adjust_extract, adjust_splat,
5637 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
5638 replace_swap_with_copy, dump_swap_insn_table,
5639 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
5640 recombine_lvx_pattern, recombine_stvx_pattern,
5641 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
5642 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
5643 to file rs6000-p8swap.c.
5644 * config/rs6000/rs6000-p8swap.c: New file.
5645 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
5646 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
5647 and rs6000*-*-* targets.
5648
5649 2017-07-06 David Malcolm <dmalcolm@redhat.com>
5650
5651 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
5652
5653 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
5654
5655 * lto-wrapper.c (merge_and_complain): Do not merge
5656 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
5657 fsigned_zeros, ftrapping_math, fwrapv.
5658 (append_compiler_options): Do not track these options.
5659 (append_linker_options): Likewie
5660
5661 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
5662
5663 * cgraphunit.c (cgraph_node::finalize_function): When
5664 !flag_toplevel_reorde set no_reorder flag.
5665 (varpool_node::finalize_decl): Likewise.
5666 (symbol_table::compile): Drop no toplevel reorder path.
5667
5668 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
5669
5670 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
5671 edges; zero probability is not better than uninitialized.
5672
5673 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
5674
5675 * asan.h (asan_sanitize_allocas_p): Declare.
5676 * asan.c (asan_sanitize_allocas_p): New function.
5677 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
5678 (handle_builtin_alloca): Likewise.
5679 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
5680 if !asan_sanitize_allocas_p.
5681 * params.def (asan-instrument-allocas): Add new option.
5682 * params.h (ASAN_PROTECT_ALLOCAS): Define.
5683 * opts.c (common_handle_option): Disable allocas sanitization for
5684 KASan by default.
5685
5686 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
5687
5688 * asan.c: Include gimple-fold.h.
5689 (get_last_alloca_addr): New function.
5690 (handle_builtin_stackrestore): Likewise.
5691 (handle_builtin_alloca): Likewise.
5692 (asan_emit_allocas_unpoison): Likewise.
5693 (get_mem_refs_of_builtin_call): Add new parameter, remove const
5694 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
5695 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
5696 (instrument_builtin_call): Pass gimple iterator to
5697 get_mem_refs_of_builtin_call.
5698 (last_alloca_addr): New global.
5699 * asan.h (asan_emit_allocas_unpoison): Declare.
5700 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
5701 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
5702 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
5703 if function calls alloca.
5704 * gimple-fold.c (replace_call_with_value): Remove static keyword.
5705 * gimple-fold.h (replace_call_with_value): Declare.
5706 * internal-fn.c: Include asan.h.
5707 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
5708 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
5709
5710 2017-07-06 David Malcolm <dmalcolm@redhat.com>
5711
5712 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
5713 (C_SELFTEST_FLAGS): New.
5714 (CPP_SELFTEST_FLAGS): New.
5715 (SELFTEST_DEPS): New, from deps of s-selftest.
5716 (C_SELFTEST_DEPS): New, from deps of s-selftest.
5717 (CPP_SELFTEST_DEPS): New.
5718 (selftest): Add dependency on s-selftest-c++.
5719 (s-selftest): Rename to...
5720 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
5721 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
5722 than SELFTEST_FLAGS.
5723 (selftest-gdb): Rename to...
5724 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
5725 C_SELFTEST_FLAGS.
5726 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
5727 (selftest-valgrind): Rename to...
5728 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
5729 C_SELFTEST_FLAGS.
5730 (selftest-valgrind): Reintroduce as an alias for
5731 selftest-c-valgrind.
5732 (s-selftest-c++): New.
5733 (selftest-c++-gdb): New.
5734 (selftest-c++-valgrind): New.
5735
5736 2017-07-06 Olivier Hainque <hainque@adacore.com>
5737
5738 * gcc.c (process_command): When deciding if undefined variables
5739 should be ignored when processing specs, accept "gcc -v" as well.
5740
5741 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
5742
5743 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
5744 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
5745
5746 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
5747
5748 * config/arm/arm-cpus.in (armv8-r): Add new entry.
5749 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
5750 * config/arm/arm-tables.opt: Regenerate.
5751 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
5752 enumerator.
5753 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
5754
5755 2017-07-06 Carl Love <cel@us.ibm.com>
5756
5757 * ChangeLog: Clean up from mid air collision
5758
5759 2017-07-06 Carl Love <cel@us.ibm.com>
5760
5761 * config/rs6000/rs6000-c.c: Add support for built-in functions
5762 vector signed int vec_subc (vector signed int, vector signed int);
5763 vector signed __int128 vec_subc (vector signed __int128,
5764 vector signed __int128);
5765 vector unsigned __int128 vec_subc (vector unsigned __int128,
5766 vector unsigned __int128);
5767 vector signed int vec_sube (vector signed int, vector signed int,
5768 vector signed int);
5769 vector unsigned int vec_sube (vector unsigned int,
5770 vector unsigned int,
5771 vector unsigned int);
5772 vector signed __int128 vec_sube (vector signed __int128,
5773 vector signed __int128,
5774 vector signed__int128);
5775 vector unsigned __int128 vec_sube (vector unsigned __int128,
5776 vector unsigned __int128,
5777 vector unsigned __int128);
5778 vector signed int vec_subec (vector signed int, vector signed int,
5779 vector signed int);
5780 vector unsigned int vec_subec (vector unsigned int,
5781 vector unsigned int,
5782 vector unsigned int);
5783 vector signed __int128 vec_subec (vector signed __int128,
5784 vector signed __int128,
5785 vector signed__int128);
5786 vector unsigned __int128 vec_subec (vector unsigned __int128,
5787 vector unsigned __int128,
5788 vector unsigned __int128);
5789 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
5790 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
5791 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
5792 BU_ALTIVEC_OVERLOAD_X definitions.
5793 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
5794 * doc/extend.texi: Update the built-in documentation file for the new
5795 built-in functions.
5796
5797 2017-07-06 David Malcolm <dmalcolm@redhat.com>
5798
5799 PR c++/79300
5800 * diagnostic-show-locus.c (layout::layout): Use start and finish
5801 spelling location for the start and finish of each range.
5802 * genmatch.c (linemap_client_expand_location_to_spelling_point):
5803 Add unused aspect param.
5804 * input.c (expand_location_1): Add "aspect" param, and use it
5805 to access the correct part of the location.
5806 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
5807 expand_location_1.
5808 (expand_location_to_spelling_point): Likewise.
5809 (linemap_client_expand_location_to_spelling_point): Add "aspect"
5810 param, and pass it to expand_location_1.
5811
5812 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
5813
5814 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
5815 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
5816 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
5817 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
5818 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
5819 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
5820 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
5821 _mm_maskz_getmant_ss): New intrinsics.
5822 (__builtin_ia32_getexpss128_mask): Changed to ...
5823 __builtin_ia32_getexpss128_round ... this.
5824 (__builtin_ia32_getexpsd128_mask): Changed to ...
5825 __builtin_ia32_getexpsd128_round ... this.
5826 * config/i386/i386-builtin-types.def
5827 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
5828 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
5829 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
5830 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
5831 __builtin_ia32_getmantss_mask_round): New builtins.
5832 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
5833 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
5834 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
5835 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
5836 * config/i386/sse.md
5837 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
5838 avx512f_sgetexp<mode><mask_scalar_name>
5839 <round_saeonly_scalar_name> ... this.
5840 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
5841 %0, %1, %2<round_saeonly_op3>}): Changed to ...
5842 vgetexp<ssescalarmodesuffix>
5843 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
5844 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
5845 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
5846 avx512f_vgetmant<mode><mask_scalar_name>
5847 <round_saeonly_scalar_name> ... this.
5848 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
5849 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
5850 vgetmant<ssescalarmodesuffix>
5851 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
5852 %0<mask_scalar_operand4>, %1, %2
5853 <round_saeonly_scalar_mask_op4>, %3} ... this.
5854 * config/i386/subst.md (mask_scalar_operand4,
5855 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
5856 round_saeonly_scalar_nimm_predicate): New subst attributes.
5857
5858 2017-07-06 Julia Koval <julia.koval@intel.com>
5859
5860 * config/i386/i386.c (ix86_erase_embedded_rounding):
5861 Remove code for old rounding pattern.
5862
5863 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
5864
5865 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
5866
5867 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
5868
5869 * doc/sourcebuild.texi (Test Directives, Variants of
5870 dg-require-support): Add documentation for dg-require-stack-check.
5871
5872 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
5873
5874 * config/i386/subst.md (mask_scalar, round_scalar,
5875 round_saeonly_scalar): New meta-templates.
5876 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
5877 round_scalar_mask_operand3, round_scalar_mask_op3,
5878 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
5879 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
5880 round_saeonly_scalar_constraint,
5881 round_saeonly_scalar_prefix): New subst attribute.
5882 * config/i386/sse.md
5883 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
5884 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
5885 <round_scalar_name> ... this.
5886 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
5887 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
5888 <round_scalar_name> ... this.
5889 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
5890 <sse>_vm<code><mode>3<mask_scalar_name>
5891 <round_saeonly_scalar_name> ... this.
5892 (v<plusminus_mnemonic><ssescalarmodesuffix>
5893 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
5894 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
5895 v<plusminus_mnemonic><ssescalarmodesuffix>
5896 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
5897 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
5898 (v<multdiv_mnemonic><ssescalarmodesuffix>
5899 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
5900 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
5901 v<multdiv_mnemonic><ssescalarmodesuffix>
5902 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
5903 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
5904 (v<maxmin_float><ssescalarmodesuffix>
5905 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
5906 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
5907 v<maxmin_float><ssescalarmodesuffix>
5908 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
5909 %0<mask_scalar_operand3>, %1, %<iptr>2
5910 <round_saeonly_scalar_mask_op3>} ... this.
5911
5912 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
5913
5914 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
5915 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
5916
5917 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
5918 Alan Hayward <alan.hayward@arm.com>
5919 David Sherwood <david.sherwood@arm.com>
5920
5921 * combine.c (simplify_if_then_else): Remove "enum" before
5922 "machine_mode".
5923 * compare-elim.c (can_eliminate_compare): Likewise.
5924 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
5925 Likewise.
5926 (aarch64_lookup_simd_builtin_type): Likewise.
5927 (aarch64_simd_builtin_type): Likewise.
5928 (aarch64_init_simd_builtin_types): Likewise.
5929 (aarch64_simd_expand_args): Likewise.
5930 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
5931 Likewise.
5932 (aarch64_reverse_mask): Likewise.
5933 (aarch64_simd_emit_reg_reg_move): Likewise.
5934 (aarch64_gen_adjusted_ldpstp): Likewise.
5935 (aarch64_ccmp_mode_to_code): Likewise.
5936 (aarch64_operands_ok_for_ldpstp): Likewise.
5937 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
5938 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
5939 Likewise.
5940 (aarch64_min_divisions_for_recip_mul): Likewise.
5941 (aarch64_reassociation_width): Likewise.
5942 (aarch64_get_condition_code_1): Likewise.
5943 (aarch64_simd_emit_reg_reg_move): Likewise.
5944 (aarch64_simd_attr_length_rglist): Likewise.
5945 (aarch64_reverse_mask): Likewise.
5946 (aarch64_operands_ok_for_ldpstp): Likewise.
5947 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
5948 (aarch64_gen_adjusted_ldpstp): Likewise.
5949 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
5950 Likewise.
5951 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
5952 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
5953 (arm_lookup_simd_builtin_type): Likewise.
5954 (arm_simd_builtin_type): Likewise.
5955 (arm_init_simd_builtin_types): Likewise.
5956 (arm_expand_builtin_args): Likewise.
5957 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
5958 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
5959 (ft32_setup_incoming_varargs): Likewise.
5960 (ft32_function_arg): Likewise.
5961 (ft32_function_arg_advance): Likewise.
5962 (ft32_pass_by_reference): Likewise.
5963 (ft32_arg_partial_bytes): Likewise.
5964 (ft32_valid_pointer_mode): Likewise.
5965 (ft32_addr_space_pointer_mode): Likewise.
5966 (ft32_addr_space_legitimate_address_p): Likewise.
5967 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
5968 Likewise.
5969 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
5970 (ix86_emit_outlined_ms2sysv_restore): Likewise.
5971 (iamcu_alignment): Likewise.
5972 (canonicalize_vector_int_perm): Likewise.
5973 (ix86_noce_conversion_profitable_p): Likewise.
5974 (ix86_mpx_bound_mode): Likewise.
5975 (ix86_operands_ok_for_move_multiple): Likewise.
5976 * config/microblaze/microblaze-protos.h
5977 (microblaze_expand_conditional_branch_reg): Likewise.
5978 * config/microblaze/microblaze.c
5979 (microblaze_expand_conditional_branch_reg): Likewise.
5980 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
5981 Likewise.
5982 (rs6000_reassociation_width): Likewise.
5983 (rs6000_invalid_binary_op): Likewise.
5984 (fusion_p9_p): Likewise.
5985 (emit_fusion_p9_load): Likewise.
5986 (emit_fusion_p9_store): Likewise.
5987 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
5988 Likewise.
5989 (riscv_hard_regno_mode_ok_p): Likewise.
5990 (riscv_address_insns): Likewise.
5991 (riscv_split_symbol): Likewise.
5992 (riscv_legitimize_move): Likewise.
5993 (riscv_function_value): Likewise.
5994 (riscv_hard_regno_nregs): Likewise.
5995 (riscv_expand_builtin): Likewise.
5996 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
5997 (riscv_build_integer): Likewise.
5998 (riscv_split_integer): Likewise.
5999 (riscv_legitimate_constant_p): Likewise.
6000 (riscv_cannot_force_const_mem): Likewise.
6001 (riscv_regno_mode_ok_for_base_p): Likewise.
6002 (riscv_valid_base_register_p): Likewise.
6003 (riscv_valid_offset_p): Likewise.
6004 (riscv_valid_lo_sum_p): Likewise.
6005 (riscv_classify_address): Likewise.
6006 (riscv_legitimate_address_p): Likewise.
6007 (riscv_address_insns): Likewise.
6008 (riscv_load_store_insns): Likewise.
6009 (riscv_force_binary): Likewise.
6010 (riscv_split_symbol): Likewise.
6011 (riscv_force_address): Likewise.
6012 (riscv_legitimize_address): Likewise.
6013 (riscv_move_integer): Likewise.
6014 (riscv_legitimize_const_move): Likewise.
6015 (riscv_legitimize_move): Likewise.
6016 (riscv_address_cost): Likewise.
6017 (riscv_subword): Likewise.
6018 (riscv_output_move): Likewise.
6019 (riscv_canonicalize_int_order_test): Likewise.
6020 (riscv_emit_int_order_test): Likewise.
6021 (riscv_function_arg_boundary): Likewise.
6022 (riscv_pass_mode_in_fpr_p): Likewise.
6023 (riscv_pass_fpr_single): Likewise.
6024 (riscv_pass_fpr_pair): Likewise.
6025 (riscv_get_arg_info): Likewise.
6026 (riscv_function_arg): Likewise.
6027 (riscv_function_arg_advance): Likewise.
6028 (riscv_arg_partial_bytes): Likewise.
6029 (riscv_function_value): Likewise.
6030 (riscv_pass_by_reference): Likewise.
6031 (riscv_setup_incoming_varargs): Likewise.
6032 (riscv_print_operand): Likewise.
6033 (riscv_elf_select_rtx_section): Likewise.
6034 (riscv_save_restore_reg): Likewise.
6035 (riscv_for_each_saved_reg): Likewise.
6036 (riscv_register_move_cost): Likewise.
6037 (riscv_hard_regno_mode_ok_p): Likewise.
6038 (riscv_hard_regno_nregs): Likewise.
6039 (riscv_class_max_nregs): Likewise.
6040 (riscv_memory_move_cost): Likewise.
6041 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
6042 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
6043 (rl78_addr_space_address_mode): Likewise.
6044 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6045 Likewise.
6046 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
6047 (rs6000_reassociation_width): Likewise.
6048 (rs6000_invalid_binary_op): Likewise.
6049 (fusion_p9_p): Likewise.
6050 (emit_fusion_p9_load): Likewise.
6051 (emit_fusion_p9_store): Likewise.
6052 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
6053 (ok_for_simple_move_operands): Likewise.
6054 (ok_for_simple_move_strict_operands): Likewise.
6055 (ok_for_simple_arith_logic_operands): Likewise.
6056 (visium_legitimize_reload_address): Likewise.
6057 (visium_select_cc_mode): Likewise.
6058 (output_cbranch): Likewise.
6059 (visium_split_double_move): Likewise.
6060 (visium_expand_copysign): Likewise.
6061 (visium_expand_int_cstore): Likewise.
6062 (visium_expand_fp_cstore): Likewise.
6063 * config/visium/visium.c (visium_pass_by_reference): Likewise.
6064 (visium_function_arg): Likewise.
6065 (visium_function_arg_advance): Likewise.
6066 (visium_libcall_value): Likewise.
6067 (visium_setup_incoming_varargs): Likewise.
6068 (visium_legitimate_constant_p): Likewise.
6069 (visium_legitimate_address_p): Likewise.
6070 (visium_legitimize_address): Likewise.
6071 (visium_secondary_reload): Likewise.
6072 (visium_register_move_cost): Likewise.
6073 (visium_memory_move_cost): Likewise.
6074 (prepare_move_operands): Likewise.
6075 (ok_for_simple_move_operands): Likewise.
6076 (ok_for_simple_move_strict_operands): Likewise.
6077 (ok_for_simple_arith_logic_operands): Likewise.
6078 (visium_function_value_1): Likewise.
6079 (rtx_ok_for_offset_p): Likewise.
6080 (visium_legitimize_reload_address): Likewise.
6081 (visium_split_double_move): Likewise.
6082 (visium_expand_copysign): Likewise.
6083 (visium_expand_int_cstore): Likewise.
6084 (visium_expand_fp_cstore): Likewise.
6085 (visium_split_cstore): Likewise.
6086 (visium_select_cc_mode): Likewise.
6087 (visium_split_cbranch): Likewise.
6088 (output_cbranch): Likewise.
6089 (visium_print_operand_address): Likewise.
6090 * expmed.c (flip_storage_order): Likewise.
6091 * expmed.h (emit_cstore): Likewise.
6092 (flip_storage_order): Likewise.
6093 * genrecog.c (validate_pattern): Likewise.
6094 * hsa-gen.c (gen_hsa_addr): Likewise.
6095 * internal-fn.c (expand_arith_overflow): Likewise.
6096 * ira-color.c (allocno_copy_cost_saving): Likewise.
6097 * lra-assigns.c (find_hard_regno_for_1): Likewise.
6098 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
6099 (process_invariant_for_inheritance): Likewise.
6100 * lra-eliminations.c (move_plus_up): Likewise.
6101 * omp-low.c (lower_oacc_reductions): Likewise.
6102 * simplify-rtx.c (simplify_subreg): Likewise.
6103 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
6104 (TARGET_CHKP_BOUND_MODE): Likewise..
6105 * targhooks.c (default_chkp_bound_mode): Likewise.
6106 (default_setup_incoming_vararg_bounds): Likewise.
6107 * targhooks.h (default_chkp_bound_mode): Likewise.
6108 (default_setup_incoming_vararg_bounds): Likewise.
6109 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
6110 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
6111 (have_whole_vector_shift): Likewise.
6112 * tree-vect-stmts.c (vectorizable_load): Likewise.
6113 * doc/tm.texi: Regenerate.
6114
6115 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
6116
6117 Graceful degrade if Binutils PR21472 is not available.
6118
6119 PR target/81072
6120 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
6121 .rodata in flash test fails.
6122 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
6123 * confgure: Regenerate.
6124 * config.in: Regenerate.
6125 * config/avr/avr.c (avr_asm_named_section)
6126 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
6127 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
6128 (avr_asm_init_sections): Same.
6129
6130 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6131
6132 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
6133 (fma<VH:mode>4_intrinsic): Likewise.
6134 (*fmsub<VCVTF:mode>4): Likewise.
6135 (*fmsub<VH:mode>4_intrinsic): Likewise.
6136
6137 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
6138
6139 PR target/81305
6140 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
6141 Don't depend on "optimize > 0".
6142 (out_movhi_r_mr, out_movqi_mr_r): Same.
6143 (out_movhi_mr_r, out_movqi_r_mr): Same.
6144 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
6145 io_address_operand on "optimize > 0".
6146
6147 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6148
6149 * tree-loop-distribution.c: Add general explanantion on the pass.
6150 (generate_loops_for_partition): Mark distributed loop.
6151 (pg_add_dependence_edges): New parameter. Handle alias data
6152 dependence specially and record it in the parameter if asked.
6153 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
6154 (init_partition_graph_vertices, add_partition_graph_edge): New.
6155 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
6156 (free_partition_graph_vdata, build_partition_graph): New.
6157 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
6158 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
6159 (data_ref_segment_size, latch_dominated_by_data_ref): New.
6160 (compute_alias_check_pairs, version_loop_by_alias_check): New.
6161 (version_for_distribution_p, finalize_partitions): New.
6162 (distribute_loop): Handle alias data dependence specially. Factor
6163 out loop fusion code as functions and call these functions.
6164
6165 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6166
6167 * tree-loop-distribution.c (classify_partition): New parameter and
6168 better handle reduction statement.
6169 (rdg_build_partitions): Revise comment.
6170 (distribute_loop): Compute statements in all partitions and pass it
6171 to classify_partition.
6172
6173 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6174
6175 * tree-loop-distribution.c (enum partition_type): New.
6176 (struct partition): New field type.
6177 (partition_merge_into): Add parameter. Update partition type.
6178 (data_dep_in_cycle_p, update_type_for_merge): New functions.
6179 (build_rdg_partition_for_vertex): Compute partition type.
6180 (rdg_build_partitions): Dump partition type.
6181 (distribute_loop): Update calls to partition_merge_into.
6182
6183 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6184
6185 * tree-loop-distribution.c (struct ddr_hasher): New.
6186 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
6187 (ddrs_table): New.
6188 (classify_partition): Call get_data_dependence.
6189 (pg_add_dependence_edges): Ditto.
6190 (distribute_loop): Release data dependence hash table.
6191
6192 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6193
6194 * tree-loop-distribution.c (ref_base_address): Delete.
6195 (similar_memory_accesses): Rename ...
6196 (share_memory_accesses): ... to this. Check if partitions access
6197 the same memory reference.
6198 (distribute_loop): Call share_memory_accesses.
6199
6200 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6201
6202 * tree-loop-distribution.c (struct partition): New field recording
6203 its data reference.
6204 (partition_alloc, partition_free): Init and release data refs.
6205 (partition_merge_into): Merge data refs.
6206 (build_rdg_partition_for_vertex): Collect data refs for partition.
6207 (pg_add_dependence_edges): Change parameters from vector to bitmap.
6208 Update uses.
6209 (distribute_loop): Remve data refs from vertice data of partition
6210 graph.
6211
6212 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6213
6214 * tree-loop-distribution.c (params.h): Include header file.
6215 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
6216 (datarefs_vec): New global var.
6217 (create_rdg_vertices): Use datarefs_vec directly.
6218 (free_rdg): Don't free data references.
6219 (build_rdg): Update use. Don't free data references.
6220 (distribute_loop): Compute global variable for data references.
6221 Bail out if there are too many data references.
6222
6223 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6224
6225 * tree-loop-distribution.c (loop_nest): New global var.
6226 (build_rdg): Use loop directly, rather than loop nest.
6227 (pg_add_dependence_edges): Remove loop nest parameter. Use global
6228 variable directly.
6229 (distribute_loop): Compute global variable loop nest. Update use.
6230
6231 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6232
6233 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
6234 (partition_merge_into): New parameter. Dump reason for fusion.
6235 (distribute_loop): Update use of partition_merge_into.
6236
6237 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6238
6239 * tree-loop-distribution.c (bb_top_order_index): New.
6240 (bb_top_order_index_size, bb_top_order_cmp): New.
6241 (stmts_from_loop): Use topological order.
6242 (pass_loop_distribution::execute): Compute and release topological
6243 order for basic blocks.
6244
6245 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6246
6247 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
6248 if no loops.
6249
6250 2017-07-05 Bin Cheng <bin.cheng@arm.com>
6251
6252 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
6253 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
6254 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
6255 * internal-fn.def (LOOP_DIST_ALIAS): New.
6256 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
6257 (fold_loop_internal_call): ... this.
6258 (vect_loop_dist_alias_call): New function.
6259 (set_uid_loop_bbs): Call fold_loop_internal_call.
6260 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
6261 internal calls.
6262
6263 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
6264
6265 PR target/81300
6266 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
6267 Require dead FLAGS_REG at the beginning of a peephole.
6268
6269 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
6270
6271 PR target/81294
6272 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
6273 arguments in the call to __builtin_ia32_sbb_u32.
6274 (_subborrow_u64): Swap _X and _Y arguments in the call to
6275 __builtin_ia32_sbb_u64.
6276
6277 2017-07-04 Jakub Jelinek <jakub@redhat.com>
6278
6279 PR debug/81278
6280 * tree-vrp.c (compare_assert_loc): Turn into a function template
6281 with stable template parameter. Only test if a->e is NULL,
6282 !a->e == !b->e has been verified already. Use e == NULL or
6283 e != NULL instead of e or ! e tests. If stable is true, don't use
6284 iterative_hash_expr, on the other side allow a or b or both NULL
6285 and sort the NULLs last.
6286 (process_assert_insertions): Sort using compare_assert_loc<false>
6287 instead of compare_assert_loc, later sort using
6288 compare_assert_loc<true> before calling process_assert_insertions_for
6289 in a loop. Use break instead of continue once seen NULL pointer.
6290
6291 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
6292
6293 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
6294 Cortex-R7 and Cortex-R8 processors.
6295
6296 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
6297
6298 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
6299 uninitialized while src is not.
6300
6301 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
6302
6303 * common/config/arm/arm-common.c: Adjust include path for
6304 arm-cpu-cdata.h
6305 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
6306 (arm-cpu.h): Create in build directory. Adjust dependency rules.
6307 (arm-cpu-data.h): Likewise.
6308 (arm-cpu-cdata.h): Likewise.
6309 * config/arm/arm-cpu.h: Delete.
6310 * config/arm/arm-cpu-cdata.h: Delete.
6311 * config/arm/arm-cpu-data.h: Delete.
6312
6313 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
6314
6315 * config/arm/arm-cpus.in (cortex-a55): New.
6316 (cortex-a75): Likewise.
6317 (cortex-a75.cortex-a55): Likewise.
6318 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
6319 cortex-a75.
6320 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
6321 * config/arm/arm-cpu-cdata.h: Regenerate.
6322 * config/arm/arm-cpu-data.h: Regenerate.
6323 * config/arm/arm-cpu.h: Regenerate.
6324 * config/arm/arm-tables.opt: Regenerate.
6325 * config/arm/arm-tune.md: Regenerate.
6326
6327 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
6328
6329 * haifa-sched.c (sched_create_recovery_edges): Update profile.
6330
6331 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
6332
6333 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
6334 probability.
6335
6336 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
6337
6338 PR tree-optimization/81292
6339 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
6340 full_string_p, also call adjust_related_strinfos if the adjustment
6341 is simple, otherwise invalidate related strinfos.
6342
6343 2017-07-04 Martin Liska <mliska@suse.cz>
6344
6345 PR sanitizer/81040
6346 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
6347 newly created variable as DECL_IGNORED_P.
6348
6349 2017-07-04 Martin Liska <mliska@suse.cz>
6350
6351 PR ipa/81293
6352 * ipa-inline.c (inline_small_functions):
6353 Use xstrdup_for_dump.
6354
6355 2017-07-04 Tom de Vries <tom@codesourcery.com>
6356
6357 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
6358
6359 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
6360
6361 PR target/81033
6362 * config/darwin.c (darwin_function_switched_text_sections):
6363 Fix spaces.
6364
6365 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
6366
6367 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
6368
6369 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
6370
6371 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
6372
6373 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6374
6375 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
6376 min_profitable_iters, and th as inclusive lower bounds.
6377 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
6378 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
6379 for min_profitable_iters and min_profitable_estimate.
6380 (vect_transform_loop): Treat th as an inclusive lower bound.
6381 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
6382
6383 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
6384
6385 PR target/81033
6386 * config/darwin.c (darwin_function_switched_text_sections):
6387 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
6388 in two pieces, and suppress the use of buf.
6389
6390 2017-07-03 Nathan Sidwell <nathan@acm.org>
6391
6392 * hash-table.h (hash_table_mod1): Fix indentation.
6393
6394 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6395
6396 PR middle-end/81290
6397 * predict.c (force_edge_cold): Be more careful about propagation
6398 backward.
6399 * profile-count.h (profile_probability::guessed,
6400 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
6401 New.
6402 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
6403
6404 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
6405
6406 * doc/invoke.texi (rcpc architecture extension): Document it.
6407
6408 2017-07-03 Richard Biener <rguenther@suse.de>
6409
6410 PR tree-optimization/60510
6411 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
6412 the scalar reduction PHI and use it.
6413 (vectorizable_reduction): Properly guard the single_defuse_cycle
6414 path for non-SLP reduction chains where we cannot use it.
6415 Rework reduc_def/index and vector type deduction. Rework
6416 vector operand gathering during reduction op code-gen.
6417 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
6418 chains dissolve the chain and leave it to non-SLP reduction
6419 handling.
6420
6421 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6422
6423 * tree-data-ref.h (dr_alignment): Declare.
6424 * tree-data-ref.c (dr_alignment): New function.
6425 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
6426 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
6427 set it.
6428 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
6429
6430 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6431
6432 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
6433 and base_misalignment fields.
6434 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
6435 * tree-data-ref.c: Include builtins.h.
6436 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
6437 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
6438 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
6439 * tree-vect-data-refs.c: Include tree-cfg.h.
6440 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
6441 fields instead of calculating an alignment here.
6442 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
6443 innermost_loop_behavior fields.
6444
6445 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6446
6447 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
6448 field.
6449 (DR_STEP_ALIGNMENT): New macro.
6450 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
6451 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
6452 (create_data_ref): Print it.
6453 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
6454 to tell whether the step preserves vector (mis)alignment.
6455 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6456 Move the check for an integer step and generalise to all INTEGER_CST.
6457 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
6458 Print the outer step alignment.
6459
6460 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6461
6462 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
6463 with offset_alignment.
6464 (DR_ALIGNED_TO): Delete.
6465 (DR_OFFSET_ALIGNMENT): New macro.
6466 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
6467 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
6468 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
6469 (create_data_ref): Likewise.
6470 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
6471 (vect_analyze_data_refs): Likewise.
6472 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
6473 creating dummy innermost behavior.
6474
6475 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6476
6477 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
6478 with a "innermost_loop_behavior *" and refeence tree.
6479 * tree-data-ref.c (dr_analyze_innermost): Likewise.
6480 (create_data_ref): Update call accordingly.
6481 * tree-predcom.c (find_looparound_phi): Likewise.
6482
6483 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6484
6485 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
6486 fields with dr_wrt_vec_loop.
6487 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
6488 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
6489 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
6490 (vect_dr_behavior): New function.
6491 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
6492 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6493 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
6494 track whether the step preserves the misalignment.
6495 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
6496 Use vect_dr_behavior.
6497 (vect_setup_realignment): Update call accordingly.
6498 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
6499 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
6500 call to vect_create_addr_base_for_vector_ref.
6501 (vect_create_cond_for_align_checks): Likewise.
6502 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
6503 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
6504 (vect_recog_mask_conversion_pattern): Likewise.
6505 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
6506 (new_stmt_vec_info): Remove redundant zeroing.
6507
6508 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
6509
6510 * common/config/arm/arm-common.c (arm_be8_option): New function.
6511 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
6512 (ISA_ARMv6): Add isa_bit_be8.
6513 * config/arm/arm.h (arm_be8_option): Add prototype.
6514 (BE8_SPEC_FUNCTION): New define.
6515 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
6516 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
6517 (mlittle-endian): Similarly.
6518 (mbe8, mbe32): New options.
6519 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
6520 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
6521
6522 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6523
6524 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
6525
6526 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6527
6528 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
6529 (cleanup_tree_cfg_bb): Use it.
6530 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
6531 New functions.
6532 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
6533
6534 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6535
6536 PR bootstrap/81285
6537 * loop-doloop.c (add_test): Update profile.
6538
6539 2017-07-03 Martin Liska <mliska@suse.cz>
6540
6541 PR sanitize/81040
6542 * sanopt.c (rewrite_usage_of_param): New function.
6543 (sanitize_rewrite_addressable_params): Likewise.
6544 (pass_sanopt::execute): Call rewrite_usage_of_param.
6545
6546 2017-07-03 Richard Biener <rguenther@suse.de>
6547
6548 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
6549 back to using VIEW_CONVERT_EXPR.
6550
6551 2017-07-03 Martin Liska <mliska@suse.cz>
6552
6553 PR other/78366
6554 * doc/extend.texi: Document when a resolver function is
6555 generated for target_clones.
6556
6557 2017-07-03 Martin Liska <mliska@suse.cz>
6558
6559 * asan.c (asan_emit_stack_protection): Unpoison just red zones
6560 and shadow memory of auto variables which are subject of
6561 use-after-scope sanitization.
6562 (asan_expand_mark_ifn): Add do set only when is_poison.
6563
6564 2016-07-03 Richard Biener <rguenther@suse.de>
6565
6566 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
6567 reduction PHIs.
6568 (vect_force_simple_reduction): Record reduction def -> phi mapping.
6569 (vectorizable_reduction): Perform reduction PHI creation when
6570 visiting a reduction PHI and adjust and simplify code generation
6571 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
6572 (vect_transform_loop): Visit reduction PHIs.
6573 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
6574 defs into the SLP tree.
6575 (vect_build_slp_tree): Reduction defs terminate the recursion.
6576 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
6577 of reduction defs.
6578 (vect_get_vec_defs_for_stmt_copy): Export.
6579 (vect_get_vec_defs): Likewise.
6580 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
6581 purpose.
6582 (vect_get_vec_defs_for_stmt_copy): Declare.
6583 (vect_get_vec_defs): Likewise.
6584
6585 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
6586
6587 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
6588 parameter with a "loop" parameter and use it instead of the
6589 loop containing DR_STMT. Don't check simple_iv when doing
6590 BB analysis. Describe the two analysis modes in the comment.
6591
6592 2017-07-03 Tom de Vries <tom@codesourcery.com>
6593
6594 PR tree-optimization/69468
6595 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
6596 (find_same_succ_bb): Handle ignore_edge_flags.
6597
6598 2017-07-03 Tom de Vries <tom@codesourcery.com>
6599
6600 PR tree-optimization/81192
6601 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
6602 hash.
6603 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
6604 differs.
6605 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
6606
6607 2017-07-03 Tom de Vries <tom@codesourcery.com>
6608
6609 PR tree-optimization/81192
6610 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
6611 BB_SAME_SUCC (bb) == NULL.
6612
6613 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6614
6615 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
6616 consistency.
6617
6618 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6619
6620 * dumpfile.c: Include profile-count.h
6621 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
6622 update profile.
6623 (insert_cond_bb): Update profile.
6624 * tree-cfg.h (insert_cond_bb): Update prototype.
6625 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
6626 * tree-dump.c: Do not include tree-cfg.
6627
6628 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6629
6630 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
6631
6632 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6633
6634 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
6635 bb.
6636
6637 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
6638
6639 * tree-complex.c (expand_complex_div_wide): update profile.
6640
6641 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
6642 Alan Hayward <alan.hayward@arm.com>
6643 David Sherwood <david.sherwood@arm.com>
6644
6645 * Makefile.in (MACHMODE_H): Remove insn-modes.h
6646 (CORETYPES_H): New define.
6647 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
6648 (insn-modes-inline.h, s-modes-inline-h): New rules.
6649 (generated_files): Add insn-modes-inline.h.
6650 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
6651 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
6652 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
6653 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
6654 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
6655 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
6656 (build/gencodes.o, build/genconditions.o): Likewise.
6657 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
6658 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
6659 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
6660 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
6661 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
6662 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
6663 * coretypes.h: Include everything up to real.h for generators.
6664 Include insn-modes.h first. Include wide-int-print.h after
6665 wide-int.h. Include insn-modes-inline.h and then machmode.h.
6666 * machmode.h: Don't include insn-modes.h here.
6667 * function-tests.c: Remove includes of signop.h, machmode.h,
6668 double-int.h and wide-int.h.
6669 * rtl.h: Likewise.
6670 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
6671 and wide-int.h.
6672 * optc-save-gen.awk: Likewise.
6673 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
6674 * godump.c: Remove include of wide-int-print.h.
6675 * pretty-print.h: Likewise.
6676 * wide-int-print.cc: Likewise.
6677 * wide-int.cc: Likewise.
6678 * hash-map-tests.c: Remove include of signop.h.
6679 * hash-set-tests.c: Likewise.
6680 * rtl-tests.c: Likewise.
6681 * mkconfig.sh: Remove include of machmode.h.
6682 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
6683 into...
6684 (emit_insn_modes_inline_h): ...this new function. Emit the code
6685 into an insn-modes-inline.h header file, adding appropriate
6686 include guards and end comments.
6687 (emit_insn_modes_c_header): Remove include of machmode.h.
6688 (emit_min_insn_modes_c_header): Include coretypes.h rather than
6689 machmode.h.
6690 (main): Handle -i flag and call emit_insn_modes_inline_h when
6691 it is passed.
6692
6693 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
6694
6695 * tree-ssa-strlen.c (strinfo): Rename the length field to
6696 nonzero_chars. Add a full_string_p field.
6697 (compare_nonzero_chars, zero_length_string_p): New functions.
6698 (get_addr_stridx): Add an offset_out parameter.
6699 Use compare_nonzero_chars.
6700 (get_stridx): Update accordingly. Use compare_nonzero_chars.
6701 (new_strinfo): Update after above changes to strinfo.
6702 (set_endptr_and_length): Set full_string_p.
6703 (get_string_length): Update after above changes to strinfo.
6704 (unshare_strinfo): Update call to new_strinfo.
6705 (maybe_invalidate): Likewise.
6706 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
6707 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
6708 as a uhwi instead of an shwi. Update after above changes to
6709 strinfo and new_strinfo.
6710 (zero_length_string): Assert that chainsi contains full strings.
6711 Use zero_length_string_p. Update call to new_strinfo.
6712 (adjust_related_strinfos): Update after above changes to strinfo.
6713 Copy full_string_p from origsi.
6714 (adjust_last_stmt): Use zero_length_string_p.
6715 (handle_builtin_strlen): Update after above changes to strinfo and
6716 new_strinfo. Install the lhs as the string length if the previous
6717 entry didn't describe a full string.
6718 (handle_builtin_strchr): Update after above changes to strinfo
6719 and new_strinfo.
6720 (handle_builtin_strcpy): Likewise.
6721 (handle_builtin_strcat): Likewise.
6722 (handle_builtin_malloc): Likewise.
6723 (handle_pointer_plus): Likewise.
6724 (handle_builtin_memcpy): Likewise. Track nonzero characters
6725 that aren't necessarily followed by a nul terminator.
6726 (handle_char_store): Likewise.
6727
6728 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
6729
6730 PR tree-optimization/80769
6731 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
6732 for malloc and calloc. Document the new invariant that all related
6733 strinfos have delayed lengths or none do.
6734 (verify_related_strinfos): Move earlier in file.
6735 (set_endptr_and_length): New function, split out from...
6736 (get_string_length): ...here. Also set the lengths of related
6737 strinfos.
6738 (zero_length_string): Assert that chainsi has known (rather than
6739 delayed) lengths.
6740 (adjust_related_strinfos): Likewise.
6741
6742 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
6743
6744 PR tree-optimization/81136
6745 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
6746 assert that two references with the same misalignment have the same
6747 compile-time misalignment if those compile-time misalignments
6748 are known.
6749
6750 2017-07-01 Andi Kleen <ak@linux.intel.com>
6751
6752 * print-tree.c (print_node): Print all attributes.
6753
6754 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6755
6756 * cfg.c (scale_bbs_frequencies): New function.
6757 * cfg.h (scale_bbs_frequencies): Declare it.
6758 * cfgloopanal.c (single_likely_exit): Cleanup.
6759 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
6760 as parameter.
6761 (scale_loop_profile): Likewise.
6762 (loop_version): Likewise.
6763 (create_empty_loop_on_edge): Update.
6764 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
6765 scale_loop_frequencies, scale_loop_profile, loopify,
6766 loop_version): Update prototypes.
6767 * modulo-sched.c (sms_schedule): Update.
6768 * predict.c (unlikely_executed_edge_p): Also check probability.
6769 (probably_never_executed_edge_p): Fix typo.
6770 * tree-if-conv.c (version_loop_for_if_conversion): Update.
6771 * tree-parloops.c (gen_parallel_loop): Update.
6772 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
6773 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
6774 * tree-ssa-loop-split.c (split_loop): Update.
6775 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
6776 * tree-vect-loop-manip.c (vect_do_peeling): Update.
6777 (vect_loop_versioning): Update.
6778 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
6779
6780 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6781
6782 * trans-mem.c (split_bb_make_tm_edge): Update profile.
6783
6784 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6785
6786 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
6787 to keep profile consistent.
6788
6789 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6790
6791 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
6792 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
6793 * profile-count.h (max_safe_multiplier): Make unsigned.
6794 (profile_count::guessed_zero): New.
6795
6796 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6797
6798 * bb-reorder.c (fix_up_crossing_landing_pad,
6799 fix_crossing_conditional_branches): Use make_single_succ_edge
6800 to keep profile consistent.
6801
6802 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
6803
6804 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
6805 to update profile.
6806
6807 2017-07-01 Jakub Jelinek <jakub@redhat.com>
6808
6809 PR sanitizer/81262
6810 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
6811 the right scopes, make sure cond_jump isn't preserved between multiple
6812 iterations. Search for fallthru edge whenever there are 3+ edges and
6813 use find_fallthru_edge for it.
6814
6815 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
6816
6817 Patch by Alexander Monakov <amonakov@ispras.ru>
6818 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
6819 probabilities consistently.
6820
6821 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
6822
6823 * pa.c (pa_expand_compare_and_swap_loop): Update call of
6824 emit_cmp_and_jump_insns.
6825
6826 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
6827
6828 PR ipa/81261
6829 * tree-inline.c (expand_call_inline): Combine profile statuses.
6830
6831 2017-06-30 Andrew Pinski <apinski@cavium.com>
6832
6833 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
6834 fold_stmt returned true.
6835
6836 2017-06-30 Nathan Sidwell <nathan@acm.org>
6837
6838 * ggc.h (empty_string): Delete.
6839 * cfgexpand.c (expand_asm_stmt): Use plain "".
6840 * optabs.c (expand_asm_memory_barrier): Likewise.
6841 * stringpool.c (empty_string): Delete.
6842 (digit_vector, digit_string): Delete.
6843 (ggc_alloc_string): Use plain "", don't optimize single digit
6844 strings. Use ggc_alloc_atomic.
6845
6846 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
6847
6848 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
6849 comparison set and one other set, use the cost of the non-comparison
6850 set.
6851
6852 2017-06-30 Nathan Sidwell <nathan@acm.org>
6853
6854 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
6855 some formatting.
6856
6857 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
6858
6859 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
6860 loops. Remove now unneeded calls to gimple_switch_set_label() that
6861 just set removed labels to NULL_TREE.
6862
6863 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
6864
6865 * tree-ssanames.c (set_range_info_raw): Abstract from ...
6866 (set_range_info): ...here. Only call set_range_info_raw if domain
6867 is useful.
6868 (set_nonzero_bits): Call set_range_info_raw.
6869 * tree-ssanames.h (set_range_info_raw): New.
6870
6871 2017-06-30 Jakub Jelinek <jakub@redhat.com>
6872
6873 PR target/81225
6874 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
6875 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
6876 of nonimmediate_operand and <store_mask_constraint> instead of m
6877 for the input operand. For V8FI iterator, always split if input
6878 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
6879 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
6880 <store_mask_predicate> instead of register_operand and
6881 <store_mask_constraint> instead of v for the input operand. Make
6882 sure both operands aren't MEMs for if not <mask_applied>.
6883
6884 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
6885
6886 * lto-wrapper.c (copy_file) Close both file descriptors before
6887 exiting normally.
6888
6889 2017-06-30 Martin Liska <mliska@suse.cz>
6890
6891 PR ipa/81214
6892 * multiple_target.c (create_dispatcher_calls): Make ifunc
6893 also for function that don't have calls or are not referenced.
6894
6895 2017-06-30 Richard Biener <rguenther@suse.de>
6896
6897 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
6898 analyze the first scalar stmt. Move vector type computation
6899 for the BB case here from ...
6900 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
6901 live operation processing in the SLP case properly.
6902
6903 2017-06-30 Richard Biener <rguenther@suse.de>
6904
6905 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
6906
6907 2017-06-30 Martin Liska <mliska@suse.cz>
6908
6909 PR sanitizer/81021
6910 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
6911 before BUILT_IN_UNWIND_RESUME when ASAN is used.
6912
6913 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
6914
6915 * doc/invoke.texi (AArch64): Add missing options and remove redundant
6916 ones.
6917
6918 2017-06-30 Richard Biener <rguenther@suse.de>
6919
6920 PR tree-optimization/81249
6921 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
6922 condition reduction result to original scalar type.
6923
6924 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6925
6926 * profile-count.h (enum profile_quality): Fix typos and whitespace
6927 issues.
6928
6929 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6930
6931 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
6932 type for branch probabilities.
6933
6934 2017-06-29 Julian Brown <julian@codesourcery.com>
6935 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
6936
6937 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
6938 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
6939 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
6940 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
6941
6942 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
6943
6944 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
6945 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
6946 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
6947 CC usage from generic code to here.
6948 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
6949 CC usage into the target macros.
6950
6951 2017-06-29 Maya Rashish <coypu@sdf.org>
6952
6953 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
6954 objects.
6955
6956 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
6957
6958 * arm/arm-builtins.c: Include profile-count.h
6959 * except.c (sjlj_emit_function_enter): Use
6960 profile_probability::unlikely.
6961
6962 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
6963
6964 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
6965 and tocrel_offset be pointer args rather than implicitly using
6966 static versions.
6967 (legitimate_constant_pool_address_p, rs6000_emit_move,
6968 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
6969 tocrel_offset and use in toc_relative_expr_p call.
6970 (print_operand, print_operand_address): Use static tocrel_base_oac
6971 and tocrel_offset_oac.
6972 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
6973 tocrel_offset_oac.
6974
6975 2017-06-29 Maya Rashish <coypu@sdf.org>
6976
6977 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
6978
6979 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
6980
6981 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
6982 objects, take into account only the alignment of 'op0' and 'mode1' if
6983 'op0' is a MEM.
6984
6985 2017-06-29 Steve Ellcey <sellcey@cavium.com>
6986
6987 * ccmp.c (ccmp_tree_comparison_p): New function.
6988 (ccmp_candidate_p): Update to use above function.
6989 (get_compare_parts): New function.
6990 (expand_ccmp_next): Update to use new functions.
6991 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
6992 new functions.
6993 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
6994 take mode as argument.
6995 * ccmp.h (expand_ccmp_expr): Add mode as argument.
6996 * expr.c (expand_expr_real_1): Pass mode as argument.
6997
6998 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
6999
7000 * combine.c (combine_instructions): Print insns to dump_file, together
7001 with their costs.
7002
7003 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
7004
7005 * asan.c (asan_emit_stack_protection): Update.
7006 (create_cond_insert_point): Update.
7007 * auto-profile.c (afdo_propagate_circuit): Update.
7008 * basic-block.h (struct edge_def): Turn probability to
7009 profile_probability.
7010 (EDGE_FREQUENCY): Update.
7011 * bb-reorder.c (find_traces_1_round): Update.
7012 (better_edge_p): Update.
7013 (sanitize_hot_paths): Update.
7014 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
7015 (make_single_succ_edge): Update.
7016 (check_bb_profile): Update.
7017 (dump_edge_info): Update.
7018 (update_bb_profile_for_threading): Update.
7019 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
7020 probabilitycount to 0.
7021 * cfgbuild.c (compute_outgoing_frequencies): Update.
7022 * cfgcleanup.c (try_forward_edges): Update.
7023 (outgoing_edges_match): Update.
7024 (try_crossjump_to_edge): Update.
7025 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
7026 (expand_gimple_tailcall): Update.
7027 (construct_init_block): Use make_single_succ_edge.
7028 (construct_exit_block): Use make_single_succ_edge.
7029 * cfghooks.c (verify_flow_info): Update.
7030 (redirect_edge_succ_nodup): Update.
7031 (split_edge): Update.
7032 (account_profile_record): Update.
7033 * cfgloopanal.c (single_likely_exit): Update.
7034 * cfgloopmanip.c (scale_loop_profile): Update.
7035 (set_zero_probability): Remove.
7036 (duplicate_loop_to_header_edge): Update.
7037 * cfgloopmanip.h (loop_version): Update prototype.
7038 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
7039 (force_nonfallthru_and_redirect): Update.
7040 (update_br_prob_note): Update.
7041 (rtl_verify_edges): Update.
7042 (purge_dead_edges): Update.
7043 (rtl_lv_add_condition_to_bb): Update.
7044 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
7045 * cgraphunit.c (init_lowered_empty_function): Update.
7046 (cgraph_node::expand_thunk): Update.
7047 * cilk-common.c: Include profile-count.h
7048 * dojump.c (inv): Remove.
7049 (jumpifnot): Update.
7050 (jumpifnot_1): Update.
7051 (do_jump_1): Update.
7052 (do_jump): Update.
7053 (do_jump_by_parts_greater_rtx): Update.
7054 (do_compare_rtx_and_jump): Update.
7055 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
7056 do_jump_1. do_compare_rtx_and_jump): Update prototype.
7057 * dwarf2cfi.c: Include profile-count.h
7058 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
7059 (sjlj_emit_dispatch_table): Likewise.
7060 * explow.c: Include profile-count.h
7061 * expmed.c (emit_store_flag_force): Update.
7062 (do_cmp_and_jump): Update.
7063 * expr.c (compare_by_pieces_d::generate): Update.
7064 (compare_by_pieces_d::finish_mode): Update.
7065 (emit_block_move_via_loop): Update.
7066 (store_expr_with_bounds): Update.
7067 (store_constructor): Update.
7068 (expand_expr_real_2): Update.
7069 (expand_expr_real_1): Update.
7070 * expr.h (try_casesi, try_tablejump): Update prototypes.
7071 * gimple-pretty-print.c (dump_probability): Update.
7072 (dump_profile): New.
7073 (dump_gimple_label): Update.
7074 (dump_gimple_bb_header): Update.
7075 * graph.c (draw_cfg_node_succ_edges): Update.
7076 * hsa-gen.c (convert_switch_statements): Update.
7077 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
7078 (find_if_case_1): Update.
7079 (find_if_case_2): Update.
7080 * internal-fn.c (expand_arith_overflow_result_store): Update.
7081 (expand_addsub_overflow): Update.
7082 (expand_neg_overflow): Update.
7083 (expand_mul_overflow): Update.
7084 (expand_vector_ubsan_overflow): Update.
7085 * ipa-cp.c (good_cloning_opportunity_p): Update.
7086 * ipa-split.c (split_function): Use make_single_succ_edge.
7087 * ipa-utils.c (ipa_merge_profiles): Update.
7088 * loop-doloop.c (add_test): Update.
7089 (doloop_modify): Update.
7090 * loop-unroll.c (compare_and_jump_seq): Update.
7091 (unroll_loop_runtime_iterations): Update.
7092 * lra-constraints.c (lra_inheritance): Update.
7093 * lto-streamer-in.c (input_cfg): Update.
7094 * lto-streamer-out.c (output_cfg): Update.
7095 * mcf.c (adjust_cfg_counts): Update.
7096 * modulo-sched.c (sms_schedule): Update.
7097 * omp-expand.c (expand_omp_for_init_counts): Update.
7098 (extract_omp_for_update_vars): Update.
7099 (expand_omp_ordered_sink): Update.
7100 (expand_omp_for_ordered_loops): Update.
7101 (expand_omp_for_generic): Update.
7102 (expand_omp_for_static_nochunk): Update.
7103 (expand_omp_for_static_chunk): Update.
7104 (expand_cilk_for): Update.
7105 (expand_omp_simd): Update.
7106 (expand_omp_taskloop_for_outer): Update.
7107 (expand_omp_taskloop_for_inner): Update.
7108 * omp-simd-clone.c (simd_clone_adjust): Update.
7109 * optabs.c (expand_doubleword_shift): Update.
7110 (expand_abs): Update.
7111 (emit_cmp_and_jump_insn_1): Update.
7112 (expand_compare_and_swap_loop): Update.
7113 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
7114 * predict.c (predictable_edge_p): Update.
7115 (edge_probability_reliable_p): Update.
7116 (set_even_probabilities): Update.
7117 (combine_predictions_for_insn): Update.
7118 (combine_predictions_for_bb): Update.
7119 (propagate_freq): Update.
7120 (estimate_bb_frequencies): Update.
7121 (force_edge_cold): Update.
7122 * profile-count.c (profile_count::dump): Add missing space into dump.
7123 (profile_count::debug): Add newline.
7124 (profile_count::differs_from_p): Explicitly convert to unsigned.
7125 (profile_count::stream_in): Update.
7126 (profile_probability::dump): New member function.
7127 (profile_probability::debug): New member function.
7128 (profile_probability::differs_from_p): New member function.
7129 (profile_probability::differs_lot_from_p): New member function.
7130 (profile_probability::stream_in): New member function.
7131 (profile_probability::stream_out): New member function.
7132 * profile-count.h (profile_count_quality): Rename to ...
7133 (profile_quality): ... this one.
7134 (profile_probability): New.
7135 (profile_count): Update.
7136 * profile.c (compute_branch_probabilities): Update.
7137 * recog.c (peep2_attempt): Update.
7138 * sched-ebb.c (schedule_ebbs): Update.
7139 * sched-rgn.c (find_single_block_region): Update.
7140 (compute_dom_prob_ps): Update.
7141 (schedule_region): Update.
7142 * sel-sched-ir.c (compute_succs_info): Update.
7143 * stmt.c (struct case_node): Update.
7144 (do_jump_if_equal): Update.
7145 (get_outgoing_edge_probs): Update.
7146 (conditional_probability): Update.
7147 (emit_case_dispatch_table): Update.
7148 (expand_case): Update.
7149 (expand_sjlj_dispatch_table): Update.
7150 (emit_case_nodes): Update.
7151 * targhooks.c: Update.
7152 * tracer.c (better_p): Update.
7153 (find_best_successor): Update.
7154 * trans-mem.c (expand_transaction): Update.
7155 * tree-call-cdce.c: Update.
7156 * tree-cfg.c (gimple_split_edge): Upate.
7157 (move_sese_region_to_fn): Upate.
7158 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
7159 * tree-eh.c (lower_resx): Upate.
7160 (cleanup_empty_eh_move_lp): Upate.
7161 * tree-if-conv.c (version_loop_for_if_conversion): Update.
7162 * tree-inline.c (copy_edges_for_bb): Update.
7163 (copy_cfg_body): Update.
7164 * tree-parloops.c (gen_parallel_loop): Update.
7165 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
7166 (gimple_gen_time_profiler): Update.
7167 * tree-ssa-dce.c (remove_dead_stmt): Update.
7168 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
7169 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
7170 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
7171 (unloop_loops): Update.
7172 (try_peel_loop): Update.
7173 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
7174 * tree-ssa-loop-split.c (connect_loops): Update.
7175 (split_loop): Update.
7176 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
7177 (hoist_guard): Update.
7178 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
7179 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
7180 (value_replacement): Update.
7181 * tree-ssa-reassoc.c (branch_fixup): Update.
7182 * tree-ssa-tail-merge.c (replace_block_by): Update.
7183 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
7184 (create_edge_and_update_destination_phis): Update.
7185 (compute_path_counts): Update.
7186 (recompute_probabilities): Update.
7187 (update_joiner_offpath_counts): Update.
7188 (freqs_to_counts_path): Update.
7189 (duplicate_thread_path): Update.
7190 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
7191 (struct switch_conv_info): Update.
7192 (gen_inbound_check): Update.
7193 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
7194 (vect_do_peeling): Update.
7195 (vect_loop_versioning): Update.
7196 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
7197 (optimize_mask_stores): Update.
7198 * ubsan.c (ubsan_expand_null_ifn): Update.
7199 * value-prof.c (gimple_divmod_fixed_value): Update.
7200 (gimple_divmod_fixed_value_transform): Update.
7201 (gimple_mod_pow2): Update.
7202 (gimple_mod_pow2_value_transform): Update.
7203 (gimple_mod_subtract): Update.
7204 (gimple_mod_subtract_transform): Update.
7205 (gimple_ic): Update.
7206 (gimple_stringop_fixed_value): Update.
7207 (gimple_stringops_transform): Update.
7208 * value-prof.h: Update.
7209
7210 2017-06-29 Carl Love <cel@us.ibm.com>
7211
7212 * config/rs6000/rs6000-c.c: Add support for built-in functions
7213 vector signed int vec_signed (vector float);
7214 vector signed long long vec_signed (vector double);
7215 vector signed int vec_signed2 (vector double, vector double);
7216 vector signed int vec_signede (vector double);
7217 vector signed int vec_signedo (vector double);
7218 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
7219 instruction generator.
7220 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
7221 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
7222 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
7223 Add define_insn.
7224 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
7225 vunsignede_v2df): Add define_expands.
7226 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
7227 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
7228 VEC_UNSIGNEDO): Add definitions.
7229 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
7230 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
7231 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
7232 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
7233 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
7234 * config/rs6000/altivec.h (vec_signed, vec_signed2,
7235 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
7236 vec_unsignede, vec_unsignedo): Add builtin defines.
7237 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
7238 declaration.
7239 * doc/extend.texi: Update the built-in documentation file for the
7240 new built-in functions.
7241
7242 2017-06-29 Richard Biener <rguenther@suse.de>
7243
7244 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
7245 reduction chains to LOOP_VINFO_REDUCTIONS.
7246 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
7247 SLP reductions after processing reduction chains.
7248
7249 2017-06-29 Nathan Sidwell <nathan@acm.org>
7250
7251 * builtins.c (fold_builtin_FUNCTION): Use
7252 lang_hooks.decl_printable_name.
7253
7254 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
7255
7256 PR middle-end/81194
7257 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
7258 with only one label.
7259 * stmt.c (expand_case): Assert NCASES is greater than one.
7260
7261 2017-06-29 Richard Biener <rguenther@suse.de>
7262
7263 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
7264 anything.
7265 (group_case_labels): Likewise.
7266 (find_taken_edge): Push sanity checking on val to workers...
7267 (find_taken_edge_cond_expr): ... here
7268 (find_taken_edge_switch_expr): ... and here, handle cases
7269 with just a default label.
7270 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
7271 (group_case_labels): Likewise.
7272 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
7273 group_case_labels does anything cleanup the CFG again.
7274
7275 2017-06-29 Bin Cheng <bin.cheng@arm.com>
7276
7277 PR tree-optimization/81196
7278 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
7279 exit condition comparing two IVs.
7280
7281 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
7282
7283 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
7284 profile to the dummy entry at the end of the list of architectures.
7285 * config/arm/arm-cpu-cdata.h: Regenerated.
7286
7287 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7288 Michael Collison <michael.collison@arm.com>
7289
7290 PR target/70119
7291 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
7292 New pattern.
7293 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
7294 (*aarch64_reg_<mode>3_minus_mask): New pattern.
7295 (*aarch64_<optab>_reg_di3_mask2): New pattern.
7296 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
7297 of shift when the shift amount is masked with constant equal to
7298 the size of the mode.
7299 * config/aarch64/predicates.md (subreg_lowpart_operator): New
7300 predicate.
7301
7302 2017-06-29 Martin Liska <mliska@suse.cz>
7303
7304 * config/i386/i386.opt: Change range from [1,5] to [0,5].
7305
7306 2017-06-29 Yury Gribov <tetra2005@gmail.com>
7307
7308 PR bootstrap/80565
7309 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
7310 code.
7311 * ipa-inline.h
7312 (edge_growth_cache_entry::edge_growth_cache_entry): New
7313 function.
7314 (reset_edge_growth_cache): Update to use constructor.
7315
7316 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7317
7318 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
7319 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
7320 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
7321
7322 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
7323
7324 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
7325 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
7326
7327 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
7328
7329 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
7330 (*-linux-uclibc*): Add t-uclibc tmake_file.
7331 * config/t-musl: New.
7332 * config/t-uclibc: New.
7333
7334 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
7335
7336 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
7337 context.
7338 (gen_comm_data): Emit architectural setting of arch_prof.
7339 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
7340 profile.
7341 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
7342 (armv8-m.base, armv8-m.main): Likewise.
7343 * arm-protos.h (arm_build_target): Add profile field.
7344 (arch_option): Likewise.
7345 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
7346 the active target.
7347 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
7348 arm_active_target.profile.
7349
7350 2017-06-28 Richard Biener <rguenther@suse.de>
7351
7352 PR middle-end/81227
7353 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
7354 TYPE_OVERFLOW_WRAPS.
7355 * match.pd (negate_expr_p): Likewise.
7356 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
7357 fold_build2, not fold_binary.
7358
7359 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
7360
7361 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
7362 Convert memory address to Pmode.
7363 (aarch64_print_operand): Assert MEM operands are always Pmode.
7364
7365 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
7366
7367 PR target/79665
7368 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
7369 Remove redundant if.
7370 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
7371 * config/arm/aarch-common-protos.h
7372 (aarch_forward_to_shift_is_not_shifted_re): Remove.
7373 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
7374
7375 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
7376
7377 PR ipa/81238
7378 * multiple_target.c (create_dispatcher_calls): Set the default
7379 clone to be static, not public.
7380
7381 2017-06-28 Richard Biener <rguenther@suse.de>
7382
7383 * tree-vect-loop.c (vectorizable_reduction): Move special
7384 cond reduction IV var creation ...
7385 (vect_create_epilog_for_reduction): ... here. Remove induction_index
7386 parameter. Use STMT_VINFO_VECTYPE.
7387 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
7388 constant_p.
7389
7390 2017-06-28 Martin Liska <mliska@suse.cz>
7391
7392 PR ipa/81128
7393 * ipa-visibility.c (non_local_p): Handle visibility.
7394
7395 2017-06-28 Martin Liska <mliska@suse.cz>
7396
7397 PR driver/79659
7398 * common.opt: Add IntegerRange to various options.
7399 * opt-functions.awk (integer_range_info): New function.
7400 * optc-gen.awk: Add integer_range_info to cl_options struct.
7401 * opts-common.c (decode_cmdline_option): Handle
7402 CL_ERR_INT_RANGE_ARG.
7403 (cmdline_handle_error): Likewise.
7404 * opts.c (print_filtered_help): Show valid interval in
7405 when --help is provided.
7406 * opts.h (struct cl_option): Add range_min and range_max fields.
7407 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
7408
7409 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
7410
7411 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
7412 (x * C EQ/NE y * C): New transformation.
7413
7414 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
7415
7416 * genmultilib (combination_space): Accept '+' in option names.
7417
7418 2017-06-28 Martin Liska <mliska@suse.cz>
7419
7420 PR sanitizer/81224
7421 * asan.c (instrument_derefs): Bail out inner references
7422 that are hard register variables.
7423
7424 2017-06-28 Jakub Jelinek <jakub@redhat.com>
7425
7426 PR target/81175
7427 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
7428 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
7429
7430 2017-06-28 Richard Biener <rguenther@suse.de>
7431
7432 * tree-vectorizer.h (vect_get_vec_defs): Remove.
7433 (vect_get_slp_defs): Adjust.
7434 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
7435 out from ...
7436 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
7437 simplify.
7438 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
7439 get_initial_defs_for_reduction instead of vect_get_vec_defs.
7440 (vectorizable_reduction): Adjust.
7441 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
7442 handling.
7443 (vect_get_slp_defs): Likewise.
7444 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
7445 (vectorizable_bswap): Adjust.
7446 (vectorizable_call): Likewise.
7447 (vectorizable_conversion): Likewise.
7448 (vectorizable_assignment): Likewise.
7449 (vectorizable_shift): Likewise.
7450 (vectorizable_operation): Likewise.
7451 (vectorizable_store): Likewise.
7452 (vectorizable_condition): Likewise.
7453 (vectorizable_comparison): Likewise.
7454
7455 2017-06-28 Michael Collison <michael.collison@arm.com>
7456
7457 PR target/68535
7458 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
7459 set of base_reg
7460 (arm_gen_movmemqi): Removed unused variable 'i'.
7461 Convert 'for' loop into 'while' loop.
7462 (arm_expand_prologue): Remove last unnecessary set of insn.
7463 (thumb_pop): Remove unused variable 'pushed_words'.
7464 (thumb_exit): Remove last unnecessary set of regs_to_pop.
7465
7466 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7467
7468 * config/s390/predicates.md: Use s390_rel_address_ok_p.
7469 * config/s390/s390-protos.h: Add prototype of
7470 s390_rel_address_ok_p.
7471 * config/s390/s390.c (s390_got_symbol): New function.
7472 (s390_rel_address_ok_p): New function.
7473 (legitimize_pic_address): Use s390_rel_address_ok_p.
7474 (s390_load_got): Use s390_got_symbol.
7475 (s390_option_override): Issue error if
7476 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
7477 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
7478 New macro.
7479 * config/s390/s390.opt: New option mpic-data-is-text-relative.
7480
7481 2017-06-27 Andrew Pinski <apinski@cavium.com>
7482
7483 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
7484 (X * copysign (1.0, X)): New pattern.
7485 (X * copysign (1.0, -X)): New pattern.
7486 (copysign (-1.0, CST)): New pattern.
7487
7488 2017-06-27 Joseph Myers <joseph@codesourcery.com>
7489
7490 * genmultilib (combination_space): Remove variable.
7491 Validate reuse rules against regular expression for any sequence
7492 of multilib options in any order.
7493
7494 2017-06-27 Michael Collison <michael.collison@arm.com>
7495
7496 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
7497 call aarch64_split_simd_combine.
7498 * (aarch64_combine_internal<mode>): Delete pattern.
7499 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
7500 Allow register and subreg operands.
7501
7502 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
7503
7504 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
7505 specific need, just fallback on defaults.
7506 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
7507
7508 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
7509 Olivier Hainque <hainque@adacore.com>
7510
7511 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
7512 map for 64bits.
7513 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
7514 targets. Pick a default if no particular attempt applied.
7515 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
7516 larger contexts.
7517
7518 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
7519
7520 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
7521 (x86_64-wrs-vxworks7): Likewise.
7522
7523 2017-06-27 Marek Polacek <polacek@redhat.com>
7524
7525 PR sanitizer/81223
7526 * ubsan.c (instrument_null): Check get_base_address's result for null.
7527
7528 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
7529
7530 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
7531
7532 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
7533
7534 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
7535 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
7536 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
7537 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
7538 New function types.
7539 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
7540 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
7541 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
7542 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
7543 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
7544 BUILT_IN_FEUPDATEENV): New builtins.
7545 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
7546 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
7547 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
7548 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
7549 macros.
7550 (builtin_structptr_types): Adjust size.
7551 * tree.c (builtin_structptr_types): Add four entries.
7552
7553 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
7554 Olivier Hainque <hainque@adacore.com>
7555
7556 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
7557 (TLS_SYM): New local macro, forcing reference to __tls__ on
7558 link command lines for VxWorks 7 RTPs, triggering initialization
7559 of tlsLib.
7560 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
7561 OS features TLS support, true for RTPs on VxWorks 7.
7562 * config/vxworks.c (vxworks_override_options): Setup emutls
7563 accordingly.
7564
7565 2017-06-27 Jakub Jelinek <jakub@redhat.com>
7566
7567 * predict.c (test_prediction_value_range): Use -1U instead of -1
7568 to avoid narrowing conversion warning.
7569 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
7570 to avoid narrowing conversion warning.
7571 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
7572 -1.
7573 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
7574
7575 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
7576
7577 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
7578 64bit configurations.
7579 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
7580 (SIZE_TYPE): Likewise.
7581 * config/vxworks.c (vxworks_emutls_var_fields): Use
7582 long_unsigned_type_node instead of unsigned_type_node as the offset
7583 field type, which is "pointer" mode in emutls.c.
7584
7585 2017-06-27 Jakub Jelinek <jakub@redhat.com>
7586
7587 PR sanitizer/81209
7588 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
7589
7590 PR middle-end/81207
7591 * gimple-fold.c (replace_call_with_call_and_fold): Handle
7592 gimple_vuse copying separately from gimple_vdef copying.
7593
7594 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7595
7596 * value-prof.c (free_hist): Remove call to memset and the enclosing if
7597 condition.
7598
7599 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
7600 Olivier Hainque <hainque@adacore.com>
7601
7602 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
7603 for all vxworks7 targets.
7604 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
7605 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
7606 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
7607 variations for VX6/VX7 and 32/64bits later on in ...
7608 (VXWORKS_LIB_SPEC): Leverage new macros.
7609 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
7610 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
7611
7612 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
7613
7614 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
7615 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
7616
7617 2017-06-26 Carl Love <cel@us.ibm.com>
7618
7619 * config/rs6000/rs6000-c.c: Add support for built-in functions
7620 vector bool char vec_reve (vector bool char);
7621 vector signed char vec_reve (vector signed char);
7622 vector unsigned char vec_reve (vector unsigned char);
7623 vector bool int vec_reve (vector bool int);
7624 vector signed int vec_reve (vector signed int);
7625 vector unsigned int vec_reve (vector unsigned int);
7626 vector bool long long vec_reve (vector bool long long);
7627 vector signed long long vec_reve (vector signed long long);
7628 vector unsigned long long vec_reve (vector unsigned long long);
7629 vector bool short vec_reve (vector bool short);
7630 vector signed short vec_reve (vector signed short);
7631 vector double vec_reve (vector double);
7632 vector float vec_reve (vector float);
7633 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
7634 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
7635 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
7636 (altivec_vreve): New pattern.
7637 * config/rs6000/altivec.h (vec_reve): New define.
7638 * doc/extend.texi (vec_rev): Update the built-in documentation file
7639 for the new built-in functions.
7640
7641 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7642
7643 PR tree-optimization/71815
7644 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
7645 function.
7646 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
7647 has_single_use.
7648 (slsr_process_phi): Likewise.
7649 (replace_uncond_cands_and_profitable_phis): Don't replace a
7650 multiply candidate with a stride of 1 (copy or cast).
7651 (phi_incr_cost): Call uses_consumed_by_stmt rather than
7652 has_single_use.
7653 (lowest_cost_path): Likewise.
7654 (total_savings): Likewise.
7655
7656 2017-06-26 Richard Biener <rguenther@suse.de>
7657
7658 PR target/81175
7659 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
7660 Use def_builtin_pure for all gather builtins.
7661
7662 2017-06-26 Richard Biener <rguenther@suse.de>
7663
7664 PR tree-optimization/81203
7665 * tree-tailcall.c (find_tail_calls): Do not move stmts into
7666 non-dominating BBs.
7667
7668 2017-06-26 Marek Polacek <polacek@redhat.com>
7669
7670 PR c/80116
7671 * doc/invoke.texi: Document -Wmultistatement-macros.
7672
7673 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
7674
7675 * doc/sourcebuild.texi (ARM-specific attributes): Document new
7676 arm_neon_ok_no_float_abi effective target.
7677
7678 2017-06-26 Richard Biener <rguenther@suse.de>
7679
7680 PR tree-optimization/80928
7681 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
7682 (copy_bbs): Set BB_DUPLICATED flag early.
7683 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
7684 marked blocks.
7685 (execute_on_shrinking_pred): Likewise.
7686 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
7687 BB_DUPLICATED blocks.
7688 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
7689 iterate over all PHIs considering removal of *gsi.
7690
7691 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
7692
7693 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
7694 qdf24xx.
7695
7696 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7697
7698 * config/rs6000/rs6000-string.c: (expand_block_clear,
7699 do_load_for_compare, select_block_compare_mode,
7700 compute_current_alignment, expand_block_compare,
7701 expand_strncmp_align_check, expand_strn_compare,
7702 expand_block_move, rs6000_output_load_multiple)
7703 Move functions related to string/block move/compare
7704 to a separate file.
7705 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
7706 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
7707 for this function which is now used in two files.
7708 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
7709 * config.gcc: Add rs6000-string.o to extra_objs for
7710 targets powerpc*-*-* and rs6000*-*-*.
7711
7712 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7713
7714 PR target/80510
7715 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
7716 32-bit, since indexed is not valid for DImode.
7717 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
7718 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
7719 (define_peephole2 for Altivec d-form load): Add 32-bit support.
7720 (define_peephole2 for Altivec d-form store): Likewise.
7721
7722 PR ipa/81185
7723 * multiple_target.c (create_dispatcher_calls): Only create the
7724 dispatcher call if the function is the default clone of a
7725 versioned function.
7726
7727 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
7728
7729 PR middle-end/80902
7730 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
7731 a call, force the call to not be a tail call.
7732
7733 2017-06-23 Jeff Law <law@redhat.com>
7734
7735 * doc/contrib.texi: Add entry for Steven Pemberton's work on
7736 enquire.
7737
7738 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
7739
7740 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
7741 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
7742 handling for early expansion of vector shifts (sl,sr,sra,rl).
7743 (builtin_function_type): Add vector shift right instructions
7744 to the unsigned argument list.
7745
7746 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
7747
7748 rtl-optimizatoin/79286
7749 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
7750 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
7751 trap. PIC register plus a const unspec without offset can never trap.
7752
7753 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
7754
7755 * tree.h (builtin_structptr_type): New type.
7756 (builtin_structptr_types): Declare new array.
7757 * tree.c (builtin_structptr_types): New array.
7758 (free_lang_data, build_common_tree_nodes): Use it.
7759
7760 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
7761
7762 PR c++/81187
7763 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
7764 -Wnoexcept.
7765
7766 2017-06-22 Matt Turner <mattst88@gmail.com>
7767
7768 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
7769 Lake models to skylake case. Assume skylake for unknown
7770 models with clflushopt.
7771
7772 2017-06-22 Jeff Law <law@redhat.com>
7773
7774 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
7775 frame sizes that do not satisfy aarch64_uimm12_shift.
7776
7777 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
7778
7779 * profile-count.h (apply_probability,
7780 apply_scale, probability_in): Fix checks for zero.
7781
7782 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7783
7784 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
7785 * doc/cppdiropts.texi (-I @var{dir}): Document it.
7786
7787 2016-06-22 Richard Biener <rguenther@suse.de>
7788
7789 * tree-vect-loop.c (vect_model_reduction_cost): Handle
7790 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
7791 REDUC_MAX_EXPR support.
7792 (vectorizable_reduction): Likewise.
7793 (vect_create_epilog_for_reduction): Likewise.
7794
7795 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
7796
7797 * match.pd (A / (1 << B) -> A >> B): New.
7798 * generic-match-head.c: Include optabs-tree.h.
7799 * gimple-match-head.c: Likewise.
7800 * optabs-tree.h (target_supports_op_p): New.
7801 * optabs-tree.c (target_supports_op_p): New.
7802
7803 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7804
7805 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
7806 $gcc_cv_ld --help output.
7807 (gcc_cv_ld_demangle): Likewise.
7808 (gcc_cv_ld_eh_frame_hdr): Likewise.
7809 (gcc_cv_ld_pie): Likewise.
7810 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
7811 (gcc_cv_ld_buildid): Likewise.
7812 (gcc_cv_ld_sysroot): Likewise.
7813 (ld_bndplt_support): Likewise.
7814 (ld_pushpopstate_support): Likewise.
7815 * configure: Regenerate.
7816 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
7817
7818 2017-06-21 Jakub Jelinek <jakub@redhat.com>
7819
7820 PR target/81151
7821 * config/i386/sse.md (round<mode>2): Renumber match_dup and
7822 operands indexes to avoid gap between operands and match_dups.
7823
7824 2017-06-21 Andrew Pinski <apinski@cavium.com>
7825
7826 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
7827 Increment Arith_shift and Arith_shift_reg by 1.
7828 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
7829 New tuning flag.
7830 * config/aarch64/aarch64.c (thunderx_tunings): Enable
7831 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
7832 (aarch64_strip_extend): Add new argument and test for it.
7833 (aarch64_cheap_mult_shift_p): New function.
7834 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
7835 add a cost if it is true.
7836 Update calls to aarch64_strip_extend.
7837 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
7838
7839 2017-06-21 Andrew Pinski <apinski@cavium.com>
7840
7841 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
7842 tunings.
7843 (thunderxt88): Likewise.
7844 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
7845 (thunderx_prefetch_tune): New variable.
7846 (thunderx2t99_prefetch_tune): Update for the correct values.
7847 (thunderxt88_tunings): New variable.
7848 (thunderx_tunings): Use thunderx_prefetch_tune instead of
7849 generic_prefetch_tune.
7850 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
7851
7852 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7853
7854 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
7855 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
7856 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
7857 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
7858 (aarch64_atomic_cas<mode>, GPI): Likewise.
7859
7860 2017-06-21 Martin Liska <mliska@suse.cz>
7861
7862 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
7863 statements on cold and hot labels.
7864 * predict.c (tree_estimate_probability_bb): Remove the
7865 prediction from this place.
7866
7867 2017-06-21 Martin Liska <mliska@suse.cz>
7868
7869 PR tree-optimization/79489
7870 * gimplify.c (maybe_add_early_return_predict_stmt): New
7871 function.
7872 (gimplify_return_expr): Call the function.
7873 * predict.c (tree_estimate_probability_bb): Remove handling
7874 of early return.
7875 * predict.def: Update comment about early return predictor.
7876 * gimple-predict.h (is_gimple_predict): New function.
7877 * predict.def: Change default value of early return to 66.
7878 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
7879 statements.
7880 * passes.def: Put pass_strip_predict_hints to the beginning of
7881 IPA passes.
7882
7883 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
7884
7885 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
7886 FUNCTION_DECL declarations.
7887 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
7888 declarations.
7889 (dwaf2out_decl): Likewise.
7890 * godump.c (go_early_global_decl): Skip call to the real debug hook
7891 for FUNCTION_DECL declarations.
7892 * passes.c (rest_of_decl_compilation): Skip call to the
7893 early_global_decl debug hook for FUNCTION_DECL declarations, unless
7894 -fdump-go-spec is passed.
7895
7896 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
7897
7898 * config/i386/i386.c (struct builtin_isa): New field pure_p.
7899 Reorder for compactness.
7900 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
7901 (def_builtin_pure, def_builtin_pure2): New functions.
7902 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
7903
7904 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
7905
7906 * match.pd (nop_convert): New predicate.
7907 ((A +- CST1) +- CST2): Allow some NOP conversions.
7908
7909 2017-06-21 Jakub Jelinek <jakub@redhat.com>
7910
7911 PR c++/81130
7912 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
7913 with ctors/dtors if GOVD_SHARED is set.
7914
7915 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
7916
7917 * config/aarch64/aarch64.md (movti_aarch64):
7918 Emit mov rather than orr.
7919 (movtf_aarch64): Likewise.
7920 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
7921 Emit mov rather than orr.
7922
7923 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
7924
7925 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
7926 Swap alternatives, make integer dup more expensive.
7927
7928 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
7929
7930 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
7931 Return true for non-tls symbols.
7932
7933 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
7934
7935 * config/aarch64/aarch64-cores.def (cortex-a55): New.
7936 (cortex-a75): Likewise.
7937 (cortex-a75.cortex-a55): Likewise.
7938 * config/aarch64/aarch64-tune.md: Regenerate.
7939 * doc/invoke.texi (-mtune): Document new values for -mtune.
7940
7941 2017-06-21 Tom de Vries <tom@codesourcery.com>
7942
7943 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
7944 stack_size feature.
7945 (Effective-Target Keywords, Other attributes): Suggest using
7946 dg-add-options stack_size feature to get stack limit in stack_size
7947 effective target documentation.
7948
7949 2017-06-21 Julian Brown <julian@codesourcery.com>
7950 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
7951
7952 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
7953 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
7954 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
7955 reservation.
7956 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
7957 attribute type list for neon_multiply.
7958 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
7959 attribute type list for neon_multiply.
7960 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
7961 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
7962 attribute type list for neon_multiply.
7963 * config/arm/types.md (crypto_pmull): Add.
7964 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
7965 attribute type list.
7966
7967 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
7968
7969 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
7970 arm1176jzf-s.
7971
7972 2017-06-20 Jakub Jelinek <jakub@redhat.com>
7973
7974 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
7975 to make sure not to dereference a NULL cost_classes_ptr pointer.
7976
7977 2017-06-20 Carl Love <cel@us.ibm.com>
7978
7979 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7980 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
7981 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
7982 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
7983 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
7984 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
7985 VMULOSW): New enum "unspec" values.
7986 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
7987 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
7988 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
7989 altivec_vmulosw): New patterns.
7990 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
7991 VMULOSW): Add definitions.
7992
7993 2017-06-20 Julia Koval <julia.koval@intel.com>
7994
7995 * config/i386/i386.c: Fix rounding expand for new pattern.
7996 * config/i386/subst.md: Fix pattern (parallel -> unspec).
7997
7998 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
7999
8000 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
8001 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
8002
8003 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
8004
8005 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
8006 feature string.
8007
8008 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
8009
8010 * config/aarch64/aarch64-cores.def: Rearrange to sort by
8011 architecture, then by implementer ID.
8012 * config/aarch64/aarch64-tune.md: Regenerate.
8013
8014 2017-06-20 Richard Biener <rguenther@suse.de>
8015
8016 PR middle-end/81097
8017 * fold-const.c (split_tree): Fold to type before negating.
8018
8019 2017-06-20 David Malcolm <dmalcolm@redhat.com>
8020
8021 * diagnostic-show-locus.c
8022 (selftest::test_fixit_deletion_affecting_newline): New function.
8023 (selftest::diagnostic_show_locus_c_tests): Call it.
8024
8025 2017-06-20 Andreas Schwab <schwab@suse.de>
8026
8027 PR target/80970
8028 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
8029 instead of "+d".
8030
8031 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
8032
8033 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
8034 __ARM_FEATURE_COPROC according to support.
8035
8036 2017-06-20 Jakub Jelinek <jakub@redhat.com>
8037
8038 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
8039 Rewritten to avoid overflow for > 32-bit pointers.
8040
8041 PR sanitizer/81125
8042 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
8043 by removing enum keyword.
8044 (ubsan_type_descriptor): Likewise. Formatting fix.
8045
8046 PR target/81121
8047 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
8048 splitter): Require TARGET_SSE2 in the condition.
8049
8050 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8051
8052 PR target/79799
8053 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
8054 for doing vector set of SFmode on ISA 3.0.
8055 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
8056 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
8057 element.
8058 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
8059 SFmode value into a V4SF variable that was extracted from another
8060 V4SF variable without converting the element to double precision
8061 and back to single precision vector format.
8062 (vsx_insert_extract_v4sf_p9_2): Likewise.
8063
8064 2017-06-19 Jakub Jelinek <jakub@redhat.com>
8065
8066 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
8067 in UWHI to avoid undefined overflow.
8068
8069 PR sanitizer/81125
8070 * ubsan.h (enum ubsan_encode_value_phase): New.
8071 (ubsan_encode_value): Change second argument to
8072 enum ubsan_encode_value_phase with default value of
8073 UBSAN_ENCODE_VALUE_GENERIC.
8074 * ubsan.c (ubsan_encode_value): Change second argument to
8075 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
8076 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
8077 create_tmp_var_raw instead of create_tmp_var and use a
8078 TARGET_EXPR.
8079 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
8080 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
8081 ubsan_encode_value callers.
8082
8083 PR sanitizer/81111
8084 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
8085 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
8086 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
8087
8088 2017-06-19 Richard Biener <rguenther@suse.de>
8089
8090 PR middle-end/81118
8091 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
8092 estimates if we changed anything.
8093
8094 2017-06-19 Richard Biener <rguenther@suse.de>
8095
8096 PR tree-optimization/80887
8097 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
8098 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
8099 simplified lookups, then reset mprts_hook.
8100 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
8101 simplifying.
8102 (try_to_simplify): Likewise.
8103
8104 2017-06-19 Martin Liska <mliska@suse.cz>
8105
8106 PR sanitizer/80879
8107 * gimplify.c (gimplify_switch_expr):
8108 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
8109
8110 2017-06-19 Martin Liska <mliska@suse.cz>
8111
8112 * doc/install.texi: Document that PGO runs in 4 stages.
8113
8114 2017-06-19 Martin Liska <mliska@suse.cz>
8115
8116 PR ipa/80732
8117 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
8118 to dispatcher function name.
8119 * multiple_target.c (replace_function_decl): New function.
8120 (create_dispatcher_calls): Redirect both edges and references.
8121
8122 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
8123
8124 * profile-count.c (profile_count::dump): Dump quality.
8125 (profile_count::differs_from_p): Update for unsigned val.
8126 * profile-count.h (profile_count_quality): New enum.
8127 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
8128
8129 2017-06-19 Richard Biener <rguenther@suse.de>
8130
8131 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
8132 struct function as arg.
8133 (estimate_numbers_of_iterations): Export overload with loop arg.
8134 (free_numbers_of_iterations_estimates_loop): Use an overload of
8135 free_numbers_of_iterations_estimates instead.
8136 * tree-cfg.c (remove_bb): Adjust.
8137 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
8138 * tree-parloops.c (gen_parallel_loop): Likewise.
8139 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
8140 Likewise.
8141 (tree_unroll_loops_completely): Likewise.
8142 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
8143 Use an overload instead and export.
8144 (estimated_loop_iterations): Adjust.
8145 (max_loop_iterations): Likewise.
8146 (likely_max_loop_iterations): Likewise.
8147 (estimate_numbers_of_iterations): Take struct function as arg
8148 and adjust.
8149 (loop_exits_before_overflow): Adjust.
8150 (free_numbers_of_iterations_estimates_loop): Use an overload.
8151 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
8152 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
8153
8154 2017-06-19 Richard Biener <rguenther@suse.de>
8155
8156 PR ipa/81112
8157 * ipa-prop.c (find_constructor_constant_at_offset): Handle
8158 RANGE_EXPR conservatively.
8159
8160 2017-06-16 Carl Love <cel@us.ibm.com>
8161
8162 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8163 definitions for vec_float, vec_float2, vec_floato,
8164 vec_floate built-ins.
8165 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
8166 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
8167 floate.
8168 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
8169 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
8170 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
8171 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
8172 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
8173 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
8174 vec_floato): Add builtin defines.
8175 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
8176 Update the built-in documentation file for the new built-in
8177 functions.
8178
8179 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8180
8181 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
8182 (mthumb): Mark as the negative of -marm.
8183
8184 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8185
8186 * doc/invoke.texi (ARM Options, -mcpu): Document supported
8187 extension options.
8188 (ARM Options, -mtune): Document that this accepts the same
8189 extension options as -mcpu.
8190 (ARM Options, -mfpu): Document addition of -mfpu=auto.
8191
8192 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8193
8194 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
8195 permitted extensions.
8196
8197 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8198
8199 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
8200 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
8201 (armv8-m.main): Add option +nodsp.
8202 * config/arm/arm-cpu-cdata.h: Regenerated.
8203
8204 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8205
8206 * config/arm/t-fuchsia: New file.
8207 * config.gcc (arm*-*-fuchsia*): Use it.
8208
8209 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8210
8211 * config/arm/t-symbian: Rewrite for new option infrastructure.
8212
8213 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8214
8215 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
8216 (MULTILIB_REQUIRED): Likewise.
8217
8218 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8219
8220 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
8221 (MULTILIB_RESUE): Likewise.
8222 (MULTILIB_MATCHES): Likewise.
8223 (MULTLIB_REQUIRED): Likewise.
8224
8225 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8226
8227 * config/arm/t-rtems: Rewrite for new option framework.
8228
8229 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8230
8231 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
8232 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
8233 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
8234 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
8235 * config/arm/t-multilib: ... here.
8236 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
8237 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
8238 armv7-a and armv8*-a when A-profile libraries have not been built.
8239 * config/arm/t-rmprofile: Rewrite.
8240
8241 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8242
8243 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
8244 with a backslash. Remove the backslash after substituting unescaped
8245 periods.
8246 * doc/fragments.texi (MULTILIB_REUSE): Document it.
8247
8248 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8249
8250 * config.gcc: (arm*-*-*): When building a-profile libraries, force
8251 the driver to pass through the default setting of -mfloat-abi.
8252 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
8253 rather than NULL.
8254 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
8255 (all_feat_combs): New rule.
8256 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
8257 default libraries.
8258 * config/arm/t-aprofile: Rewrite.
8259
8260 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8261
8262 * config/arm/arm.h (FPUTYPE_AUTO): Define.
8263 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
8264 fpu is not specified by the user/command-line.
8265 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
8266 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
8267 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
8268 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
8269 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
8270 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
8271
8272 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8273
8274 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
8275 * config/arm/t-arm-elf: Rewritten.
8276
8277 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8278
8279 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
8280 have some floating-point instructions.
8281 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
8282 (TARGET_MAYBE_HARD_FLOAT): New macro.
8283 * config/arm/arm-builtins.c (arm_init_builtins): Use
8284 TARGET_MAYBE_HARD_FLOAT.
8285 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
8286
8287 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8288
8289 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
8290 (configargs.h): Include it.
8291 (arm_print_hint_for_fpu_option): New function.
8292 (arm_parse_fpu_option): New function.
8293 (candidate_extension): New class.
8294 (arm_canon_for_multilib): New function.
8295 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
8296 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
8297 (ARCH_CANONICAL_SPECS): New macro.
8298 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
8299
8300 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8301
8302 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
8303 are set after handling multilib fragments. Set target_cpu_default2
8304 from with_cpu.
8305
8306 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8307
8308 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
8309 cpu name.
8310 (arm*-*-*): Set target_cpu_default2 to a quoted string.
8311 * config/arm/parsecpu.awk (check_cpu): Validate any extension
8312 options.
8313 (check_arch): Likewise.
8314 * config/arm/arm.c (arm_configure_build_target): Handle
8315 TARGET_CPU_DEFAULT being a string constant. Scan any feature
8316 options in the default.
8317
8318 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8319
8320 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
8321 when an option is an alias of another.
8322 * config/arm/parsecpu.awk (optalias): New parser token.
8323 (gen_comm_data): Mark non-alias options as such. Emit entries
8324 for extension aliases.
8325 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
8326 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
8327 (armv6kz, armv6zk, armv6t2): Likewise.
8328 (armv7): Make vfpv3-d16 an alias.
8329 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
8330 canonical order.
8331 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
8332 Sort in canonical order.
8333 (armv8-a): Sort in canonical order.
8334 (armv8.1-a, armv8.2-a): Likewise.
8335 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
8336 canonical order.
8337 (cortex-a9): Sort in canonical order.
8338 * config/arm/arm.c (selftests.h): Include it.
8339 (arm_test_cpu_arch_data): New function.
8340 (arm_run_self_tests): New function.
8341 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
8342 (targetm): Move declaration to the end of the file.
8343 * arm-cpu-cdata.h: Regenerated.
8344
8345 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8346
8347 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
8348 call to target_mode_check describing the type of option passed.
8349 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
8350 (arm_target_thumb_only): Use arm_parse_arch_option_name or
8351 arm_parse_cpu_option_name to match parameters against list of
8352 available targets.
8353 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
8354 arm_arch_core_flags data structure.
8355 * config/arm/arm-cpu_cdata.h: Regenerated.
8356
8357 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8358
8359 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
8360 config/arm/arm.c.
8361 (arm_print_hint_for_cpu_option): Likewise.
8362 (arm_print_hint_for_arch_option): Likewise.
8363 (arm_parse_cpu_option_name): Likewise.
8364 (arm_parse_arch_option_name): Likewise.
8365 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
8366 of entries in the all_fpus list.
8367 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
8368 (arm_parse_cpu_option_name): Declare.
8369 (arm_parse_arch_option_name): Declare.
8370 (arm_parse_option_features): Declare.
8371 (arm_intialize_isa): Declare.
8372 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
8373 data tables to ...
8374 (gen_comm_data): ... here. Make definitions non-static.
8375 * config/arm/arm-cpu-data.h: Regenerated.
8376 * config/arm/arm-cpu-cdata.h: Regenerated.
8377
8378 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8379
8380 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
8381 (cpu_arch_extension): New structure.
8382 (cpu_arch_option, arch_option, cpu_option): New structures.
8383 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
8384 architecture types.
8385 (gen_data): Generate new format data tables.
8386 * config/arm/arm.c (cpu_tune): New structure.
8387 (cpu_option, processors): Delete.
8388 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
8389 (arm_print_hint_for_cpu_option): ... this and ...
8390 (arm_print_hint_for_arch_option): ... this.
8391 (arm_parse_arch_cpu_name): Delete. Replace with ...
8392 (arm_parse_cpu_option_name): ... this and ...
8393 (arm_parse_arch_option_name): ... this.
8394 (arm_unrecognized_feature): Change type of target parameter to
8395 cpu_arch_option.
8396 (arm_parse_arch_cpu_features): Delete. Replace with ...
8397 (arm_parse_option_features): ... this.
8398 (arm_configure_build_target): Rework to use new configuration data
8399 tables.
8400 (arm_print_tune_info): Rework for new configuration data tables.
8401 * config/arm/arm-cpu-data.h: Regenerated.
8402 * config/arm/arm-cpu.h: Regenerated.
8403
8404 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8405
8406 * Makefile.in (OBJS): Move sbitmap.o from here ...
8407 (OBJS-libcommon): ... to here.
8408
8409 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8410
8411 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
8412 (ISA_ALL_CRYPTO): New macro.
8413 (ISA_ALL_SIMD): New macro
8414 (ISA_ALL_FP): New macro.
8415 * config/arm/arm.c (fpu_bitlist): Update initializer.
8416 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
8417 simd or fp.
8418 (arm9e): Add fpu. Add option for nofp
8419 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
8420 (arm926ej-s, arm1026ej-s): Likewise.
8421 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
8422 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
8423 neon-fp16, neon-vfpv4, nofp and nosimd.
8424 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
8425 (cortex-a8): Add fpu. Add option for nofp.
8426 (cortex-a9): Add fpu. Add options for nosimd and nofp.
8427 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
8428 (cortex-r4f): Add fpu.
8429 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
8430 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
8431 for nofp.
8432 (cortex-r8): Likewise.
8433 (cortex-m4): Add fpu. Add option for nofp.
8434 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
8435 (cortex-a17.cortex-a7): Likewise.
8436 (cortex-a32): Add fpu. Add options for crypto and nofp.
8437 (cortex-a35, cortex-a53): Likewise.
8438 (cortex-a57): Add fpu. Add option for crypto.
8439 (cortex-a72, cortex-a73): Likewise.
8440 (exynos-m1): Likewise.
8441 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
8442 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
8443 (cortex-m33): Add fpu. Add option for nofp.
8444 * config/arm/arm-cpu-cdata.h: Regenerated
8445 * config/arm/arm-cpu-data.h: Regenerated.
8446
8447 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8448
8449 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
8450 (armv5te, armv5tej): Likewise.
8451 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
8452 (armv7): Add options fp and vfpv3-d16.
8453 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
8454 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
8455 nofp and nosimd.
8456 (armv7ve): Likewise.
8457 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
8458 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
8459 (armv8-a): Add nocrypto option.
8460 (armv8.1-a, armv8.2-a): Likewise.
8461 (armv8-m.main): add options fp, fp.dp and nofp.
8462
8463 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8464
8465 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
8466 nofp.
8467 (armv8-a+crc): Delete.
8468 (armv8.1-a): Add options simd, crypto and nofp.
8469 (armv8.2-a): Add options fp16, simd, crypto and nofp.
8470 (armv8.2-a+fp16): Delete.
8471 (armv8-m.main): Add option dsp.
8472 (armv8-m.main+dsp): Delete.
8473 (cortex-a8): Add fpu. Add nofp option.
8474 (cortex-a9): Add fpu. Add nofp and nosimd options.
8475 * config/arm/parsecpu.awk (gen_data): Generate option tables and
8476 link to main cpu and architecture data structures.
8477 (gen_comm_data): Only put isa attributes from the main architecture
8478 in common tables.
8479 (option): New statement for architecture and CPU entries.
8480 * arm.c (struct cpu_option): New structure.
8481 (struct processors): Add entry for options.
8482 (arm_unrecognized_feature): New function.
8483 (arm_parse_arch_cpu_name): Ignore any characters after the first
8484 '+' character.
8485 (arm_parse_arch_cpu_feature): New function.
8486 (arm_configure_build_target): Separate out any CPU and architecture
8487 features and parse separately. Don't error out if -mfpu=auto is
8488 used with only an architecture string.
8489 (arm_print_asm_arch_directives): New function.
8490 (arm_file_start): Call it.
8491 * config/arm/arm-cpu-cdata.h: Regenerated.
8492 * config/arm/arm-cpu-data.h: Likewise.
8493 * config/arm/arm-tables.opt: Likewise.
8494
8495 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8496
8497 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
8498 assembler when it is not -mfpu=auto.
8499
8500 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8501
8502 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
8503 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
8504 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
8505 (ASM_CPU_SPEC): Rewrite.
8506 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
8507 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
8508 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
8509 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
8510 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
8511 copied string is NUL-terminated. Also strip any characters prefixed
8512 by '+'.
8513 (arm_rewrite_selected_arch): New function.
8514 (arm_rewrite_march): New function.
8515
8516 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
8517
8518 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
8519 (x_arm_cpu_string, x_arm_tune_string): Likewise.
8520 (march, mcpu, mtune): Convert to string-based options.
8521 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
8522 (arm_parse_arch_cpu_name): New function.
8523 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
8524 identify selected architecture or CPU.
8525 (arm_option_save): New function.
8526 (TARGET_OPTION_SAVE): Redefine.
8527 (arm_option_restore): Restore string options.
8528 (arm_option_print): Print string options.
8529
8530 2017-06-16 Martin Sebor <msebor@redhat.com>
8531
8532 PR tree-optimization/80933
8533 PR tree-optimization/80934
8534 * builtins.c (fold_builtin_3): Do not handle bcmp here.
8535 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
8536 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
8537 (gimple_fold_builtin): Call them.
8538
8539 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8540
8541 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
8542 as unlikely; update profile.
8543
8544 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8545
8546 * predict.c (force_edge_cold): Handle declaring edges impossible
8547 more aggresively.
8548
8549 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8550
8551 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
8552 profile.
8553 (try_unroll_loop_completely): Fix reporting.
8554
8555 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8556
8557 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
8558
8559 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
8560
8561 PR target/71778
8562 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
8563 if given a non-constant argument for an intrinsic which requires a
8564 constant.
8565
8566 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8567
8568 * profile.c (compare_freqs): New function.
8569 (branch_prob): Sort edge list.
8570 (find_spanning_tree): Assume that the list is priority sorted.
8571
8572 2017-06-16 Richard Biener <rguenther@suse.de>
8573
8574 PR tree-optimization/81090
8575 * passes.def (pass_record_bounds): Remove.
8576 * tree-pass.h (make_pass_record_bounds): Likewise.
8577 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
8578 make_pass_record_bounds): Likewise.
8579 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
8580 not free niter estimates at the beginning but at the end.
8581 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
8582
8583 2017-06-16 Richard Biener <rguenther@suse.de>
8584
8585 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
8586 initializer to workaround ICE in host GCC 4.8.
8587
8588 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
8589
8590 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
8591 counts.
8592 (clone_inlined_nodes): Update.
8593
8594 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
8595
8596 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
8597 prefetch settings, and enable prefetching by default at -O3.
8598
8599 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
8600
8601 * config/aarch64/aarch64.c (aarch64_override_options_internal):
8602 Set flag_prefetch_loop_arrays according to tuning data.
8603
8604 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
8605
8606 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
8607 New tune structure.
8608 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
8609 [Unrelated to main purpose of the patch] Place the pointer field last
8610 to enable type checking errors when tune structure are wrongly merged.
8611 * config/aarch64/aarch64.c (generic_prefetch_tune,)
8612 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
8613 (thunderx2t99_prefetch_tune): New tune constants.
8614 (tune_params *_tunings): Update all tunings (no functional change).
8615 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
8616 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
8617 from tunings structures.
8618
8619 2017-06-16 Jakub Jelinek <jakub@redhat.com>
8620
8621 PR sanitizer/81094
8622 * ubsan.c (instrument_null): Add T argument, use it instead
8623 of computing it based on IS_LHS.
8624 (instrument_object_size): Likewise.
8625 (pass_ubsan::execute): Adjust instrument_null and
8626 instrument_object_size callers to pass gimple_get_lhs or
8627 gimple_assign_rhs1 result to it. Use instrument_null instead of
8628 calling get_base_address and instrument_mem_ref. Handle
8629 aggregate call arguments for object-size sanitization.
8630
8631 2017-06-16 Yury Gribov <tetra2005@gmail.com>
8632
8633 PR tree-optimization/81089
8634 * tree-vrp.c (is_masked_range_test): Validate operands of
8635 subexpression.
8636
8637 2017-06-15 Martin Sebor <msebor@redhat.com>
8638
8639 PR c++/80560
8640 * dumpfile.c (dump_register): Avoid calling memset to initialize
8641 a class with a default ctor.
8642 * gcc.c (struct compiler): Remove const qualification.
8643 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
8644 * hash-table.h: Ditto.
8645 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
8646 assignment.
8647 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
8648 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
8649 default ctor.
8650 * params.h (struct param_info): Make struct members non-const.
8651 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
8652 with default initialization.
8653 * vec.h (vec_copy_construct, vec_default_construct): New helper
8654 functions.
8655 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
8656 with vec_copy_construct.
8657 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
8658 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
8659 * doc/invoke.texi (-Wclass-memaccess): Document.
8660
8661 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8662
8663 * emit-rtl.h (is_leaf): Update comment about local
8664 register allocator.
8665
8666 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
8667
8668 PR target/78818
8669 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
8670 for a variable to have a section before checking if the section has a
8671 name.
8672 Set section to.persistent if persistent attribute is set.
8673 Warn if .persistent attribute is used on an automatic variable.
8674
8675 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
8676
8677 PR rtl-optimization/80474
8678 * reorg.c (update_block): Do not ignore instructions in a delay slot.
8679
8680 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
8681
8682 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
8683 of REGNO.
8684
8685 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
8686
8687 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
8688 (casesi): Emit bounds checking as RTL.
8689 (casesi_internal_mips16_<mode>): Remove bounds checking.
8690
8691 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
8692
8693 * config/xtensa/xtensa.c (xtensa_option_override): Append
8694 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
8695 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
8696 xtensa_doloop_hooks): Define unconditionally.
8697 (xtensa_reorg_loops): Only call reorg_loops in the presence of
8698 TARGET_LOOPS.
8699 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
8700 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
8701 for it in xtensa_option_override.
8702 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
8703 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
8704
8705 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
8706
8707 * doc/cppopts.texi: Document '-' special value to -MF.
8708
8709 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
8710
8711 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
8712 (cortex_a53_fconst): Likewise.
8713 (cortex_a53_fpmul): Likewise.
8714 (cortex_a53_f_load_64): Likewise.
8715 (cortex_a53_f_load_many): Likewise.
8716 (cortex_a53_advsimd_alu): Likewise.
8717 (cortex_a53_advsimd_alu_q): Likewise.
8718 (cortex_a53_advsimd_mul): Likewise.
8719 (cortex_a53_advsimd_mul_q): Likewise.
8720 (fpmac bypass): Add new bypass for fpmac-fpmac case.
8721 Add missing fmul, r2f_cvt and fconst cases.
8722
8723 2017-06-14 Richard Biener <rguenther@suse.de>
8724
8725 PR middle-end/81088
8726 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
8727 literal constants.
8728 (fold_binary_loc): When associating do not treat pre-existing
8729 TREE_OVERFLOW on literal constants as a reason to allow
8730 TREE_OVERFLOW on associated literal constants.
8731
8732 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
8733
8734 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
8735 (MASK_FEATURES): New macro.
8736 * config/sparc/sparc.c (sparc_option_override): Remove the special
8737 handling of -mfpu and generalize it to all MASK_FEATURES switches.
8738
8739 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
8740
8741 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
8742 a division of 0 if non-call exceptions are enabled.
8743
8744 2017-06-14 Andrew Pinski <apinski@cavium.com>
8745 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8746
8747 PR target/71663
8748 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
8749 Improve vector initialization code gen for only variable case.
8750
8751 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
8752
8753 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
8754
8755 2017-06-14 Richard Biener <rguenther@suse.de>
8756
8757 PR tree-optimization/81083
8758 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
8759 as values.
8760
8761 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8762
8763 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
8764 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
8765 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
8766 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
8767 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
8768 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
8769
8770 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8771
8772 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
8773 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
8774
8775 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8776
8777 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
8778
8779 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8780
8781 * config/rs6000/t-rtems: Don't handle SPE.
8782
8783 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8784
8785 * config/rs6000/t-linux: Don't handle SPE.
8786
8787 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8788
8789 * config/rs6000/eabispe.h: Delete file.
8790
8791 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8792
8793 * config/rs6000/t-spe: Delete file.
8794
8795 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8796
8797 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
8798 (rs6000_legitimate_offset_address_p): Return false for anything in
8799 V2SImode or V2SFmode.
8800
8801 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
8802
8803 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
8804 except V2SF and V2SI. Rearrange the vector modes, and add comments.
8805 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
8806 and V4HImode.
8807 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
8808 (rs6000_legitimate_offset_address_p): Ditto.
8809 (rs6000_emit_move): Ditto.
8810 (rs6000_init_builtins): Remove V4HI_type_node.
8811
8812 2017-06-13 Martin Liska <mliska@suse.cz>
8813
8814 PR sanitize/78204
8815 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
8816 (gate_asan): Likewise.
8817 * asan.h (asan_no_sanitize_address_p): Remove the function.
8818 (sanitize_flags_p): New function.
8819 * builtins.def: Fix coding style.
8820 * common.opt: Use renamed enum value.
8821 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
8822 * doc/extend.texi: Document no_sanitize attribute.
8823 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
8824 to SANITIZE_UNDEFINED_NONDEFAULT.
8825 * gcc.c (sanitize_spec_function): Use the renamed enum value.
8826 * gimple-fold.c (optimize_atomic_compare_exchange_p):
8827 Use sanitize_flags_p.
8828 * gimplify.c (gimplify_function_tree): Likewise.
8829 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
8830 * opts.c (parse_no_sanitize_attribute): New function.
8831 (common_handle_option): Use renamed enum value.
8832 * opts.h (parse_no_sanitize_attribute): Declare.
8833 * tree.c (sanitize_flags_p): New function.
8834 * tree.h: Declared here.
8835 * tsan.c: Use sanitize_flags_p.
8836 * ubsan.c (ubsan_expand_null_ifn): Likewise.
8837 (instrument_mem_ref): Likewise.
8838 (instrument_bool_enum_load): Likewise.
8839 (do_ubsan_in_current_function): Remove the function.
8840 (pass_ubsan::execute): Use sanitize_flags_p.
8841 * ubsan.h: Remove do_ubsan_in_current_function
8842 * tree-cfg.c (print_no_sanitize_attr_value): New function.
8843 (dump_function_to_file): Use it here.
8844
8845 2017-06-13 Martin Jambor <mjambor@suse.cz>
8846
8847 PR tree-optimization/80803
8848 PR tree-optimization/81063
8849 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
8850 (propagate_subaccesses_across_link): Enqueue subtree whenever
8851 necessary instead of relying on the caller.
8852
8853 2017-06-13 Martin Jambor <mjambor@suse.cz>
8854
8855 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
8856 that have a first_link.
8857 (sort_and_splice_var_accesses): Do not check first_link before
8858 enquing.
8859 (subtree_mark_written_and_enqueue): Likewise.
8860 (propagate_all_subaccesses): Likewise and do not stop at first
8861 parent with a first_link.
8862
8863 2017-06-13 Martin Jambor <mjambor@suse.cz>
8864
8865 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
8866 instead of f.
8867
8868 2017-06-13 Yury Gribov <tetra2005@gmail.com>
8869
8870 * match.pd: New pattern.
8871
8872 2017-06-13 Yury Gribov <tetra2005@gmail.com>
8873
8874 * tree-vrp.c (is_masked_range_test): New function.
8875 (register_edge_assert_for): Determine ranges for
8876 some bit tests.
8877
8878 2017-06-13 Yury Gribov <tetra2005@gmail.com>
8879
8880 PR tree-optimization/67328
8881 * fold-const.c (maskable_range_p): New function.
8882 (build_range_check): Generate bittests if possible.
8883
8884 2017-06-13 Martin Liska <mliska@suse.cz>
8885
8886 * gimple-pretty-print.c (dump_probability): Add new argument.
8887 (dump_edge_probability): Dump both probability and count.
8888 (dump_gimple_label): Likewise.
8889 (dump_gimple_bb_header): Likewise.
8890
8891 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
8892
8893 PR target/81072
8894 * config/avr/avr-devices.c: Fix indentation.
8895 * config/avr/gen-avr-mmcu-specs.c: Dito.
8896
8897 2017-06-13 Richard Biener <rguenther@suse.de>
8898
8899 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
8900 instead get vector type from stmt_info.
8901 (vectorizable_reduction): Adjust. Remove dead code.
8902
8903 2017-06-13 Richard Biener <rguenther@suse.de>
8904
8905 PR middle-end/81065
8906 * fold-const.c (extract_muldiv_1): Remove bogus distribution
8907 case of C * (x * C2 + C3).
8908 (fold_addr_of_array_ref_difference): Properly fold index difference.
8909
8910 2017-06-12 David S. Miller <davem@davemloft.net>
8911
8912 PR target/80968
8913 * config/sparc/sparc.md (return expander): Emit frame blockage if
8914 function uses alloca.
8915
8916 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
8917
8918 * combine.c (make_field_assignment): Check len rather than the mode
8919 precision when calling force_to_mode.
8920
8921 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
8922
8923 Support multilibs and devices that see flash in RAM address range.
8924
8925 PR target/81072
8926 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
8927 (avr_mcu_t) <flash_pm_offset>: New field.
8928 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
8929 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
8930 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
8931 (AVR_TINY_PM_OFFSET): Remove macro.
8932 * config/avr/avr.opt (-mshort-calls): New option.
8933 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
8934 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
8935 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
8936 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
8937 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
8938 instead of avr_arch->have_jmp_call.
8939 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
8940 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
8941 avr_arch->flash_pm_offset to define.
8942 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
8943 new field flash_pm_offset. Add entry for avrxmega3.
8944 (avr_texinfo): Add entry for avrxmega3.
8945 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
8946 attiny212, attiny214,
8947 attiny412, attiny414, attiny416, attiny417,
8948 attiny814, attiny816, attiny817,
8949 attiny1614, attiny1616, attiny1617,
8950 attiny3214, attiny3216, attiny3217.
8951 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
8952 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
8953 (avr_print_operand_address) [AVR_TINY]: Same.
8954 (avr_asm_init_sections) <readonly_data_section>: Only patch
8955 callback if avr_arch->flash_pm_offset = 0.
8956 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
8957 for rodata if avr_arch->flash_pm_offset != 0.
8958 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
8959 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
8960 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
8961 (m_options): Append opt_rcall.
8962 (m_dirnames): Append dir_rcall.
8963 * config/avr/t-multilib: Regenerate.
8964
8965 * configure.ac [target=avr]: Check whether avrxmega3 default
8966 linker description file works as needed.
8967 * configure: Regenerate.
8968 * doc/avr-mmcu.texi: Regenerate.
8969 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
8970 <__AVR_ARCH__>: Document avrxmega3 and 103.
8971 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
8972 <__AVR_SHORT_CALLS__>: Document it.
8973 <__AVR_PM_BASE_ADDRESS__>: Document it.
8974 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
8975 (AVR Variable Attributes) <progmem>: Document this is
8976 not needed for avrxmega3.
8977 (AVR Named Address Spaces) <__flash>: Dito.
8978
8979 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
8980
8981 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
8982
8983 2017-06-12 Doug Rupp <rupp@adacore.com>
8984
8985 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
8986 Append vxworks-stdint.h to the tm_file list.
8987 * config/vxworks-stdint.h: New file.
8988
8989 2017-06-12 Martin Liska <mliska@suse.cz>
8990
8991 PR tree-optimization/81041
8992 * tree-profile.c (gimple_gen_ic_func_profiler):
8993 Create an extra BB in profile-generate
8994 (gimple_gen_time_profiler): Likewise.
8995
8996 2017-06-12 Jakub Jelinek <jakub@redhat.com>
8997
8998 PR tree-optimization/81003
8999 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
9000 (update_range_test): Use it instead of force_gimple_operand_gsi.
9001
9002 2017-06-12 Richard Biener <rguenther@suse.de>
9003
9004 PR tree-optimization/81053
9005 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
9006 with backedge value not defined in loop. Simplify def stmt
9007 compute.
9008
9009 2017-06-11 Tom de Vries <tom@codesourcery.com>
9010
9011 PR target/79939
9012 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
9013 Return true.
9014 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
9015 nvptx_cannot_force_const_mem.
9016
9017 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
9018
9019 * opts.c (finish_options): Move test for flag_split_stack after
9020 it has been initialized.
9021
9022 2017-06-11 Jason Merrill <jason@redhat.com>
9023
9024 * tree.h (id_equal): New.
9025 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
9026 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
9027 instead of strcmp of IDENTIFIER_POINTER.
9028
9029 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
9030
9031 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
9032 (mark_all_inlined_calls_cdtor): Fix formating.
9033 (inline_transform): Rescale profile before inlining.
9034
9035 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
9036
9037 * cgraph.h (cgraph_edge::clone): Update prototype.
9038 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
9039 (cgraph_node::create_clone): Update.
9040 (cgraph_node::create_version_clone): Update.
9041 * tree-inline.c (copy_bb): Update.
9042 (expand_call_inline): Update.
9043
9044 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
9045
9046 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
9047 factored out from ...
9048 (rs6000_emit_prologue): ... here.
9049
9050 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
9051
9052 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
9053 factored out from ...
9054 (rs6000_emit_prologue): ... here.
9055
9056 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
9057
9058 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
9059 edge counts.
9060 (handle_missing_profiles): Fix computation of tp_first_run.
9061 (counts_to_freqs): Do not touch freqs when count is 0.
9062
9063 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
9064
9065 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
9066 profile.
9067
9068 2017-06-10 Tom de Vries <tom@codesourcery.com>
9069
9070 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
9071 attributes): Document signal effective target.
9072
9073 2017-06-10 Tom de Vries <tom@codesourcery.com>
9074
9075 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
9076 Document effective target stack_size.
9077
9078 2017-06-09 David Malcolm <dmalcolm@redhat.com>
9079
9080 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
9081 to the edit_context if they can be auto-applied.
9082
9083 2017-06-9 Ian Lance Taylor <iant@golang.org>
9084
9085 * opts.c (finish_options): If -fsplit-stack, disable implicit
9086 -forder-blocks-and-partition.
9087 * doc/invoke.texi (Optimize Options): Document that when using
9088 -fsplit-stack -forder-blocks-and-partition is not implicitly
9089 enabled.
9090
9091 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
9092
9093 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
9094 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
9095 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
9096 * builtins.def (abort, trap, unreachable): Declare cold.
9097 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
9098 * tree-core.h (ECF_COLD): New.
9099 * tree.c (set_call_expr_flags): Handle ECF_COLD.
9100 (build_common_builtin_nodes): Mark unreachable and abort as cold.
9101
9102 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
9103
9104 * predict.c (unlikely_executed_stmt_p): Cleanup.
9105
9106 2017-06-09 Richard Biener <rguenther@suse.de>
9107
9108 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
9109 model if the ref is always written to.
9110
9111 2017-06-09 Tamar Christina <tamar.christina@arm.com>
9112
9113 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
9114
9115 2017-06-09 Tamar Christina <tamar.christina@arm.com>
9116
9117 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
9118 than udiv.
9119
9120 2017-06-09 Tom de Vries <tom@codesourcery.com>
9121
9122 PR target/80855
9123 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
9124 "target cannot support label values" when encountering LABEL_REF.
9125
9126 2017-06-09 Martin Liska <mliska@suse.cz>
9127
9128 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
9129 (gimple_gen_ic_func_profiler): Emit direct comparison
9130 of __gcov_indirect_call_callee with NULL.
9131 (gimple_gen_time_profiler): Change probability from
9132 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
9133
9134 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
9135
9136 * profile.c (edge_gcov_counts): Turn to pointer.
9137 (compute_branch_probabilities, compute_branch_probabilities): Update.
9138 (branch_prob): Do not clear edge_gcov_count.
9139 * profile.h (edge_gcov_counts): Turn to pointer.
9140 (edge_gcov_count): Update.
9141
9142 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
9143
9144 * gimple.h (gimple_check_failed): Mark cold.
9145
9146 2017-06-09 Richard Biener <rguenther@suse.de>
9147
9148 PR tree-optimization/66623
9149 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
9150 refactor check_reduction into two parts, properly computing
9151 whether we have to check reduction validity for outer loop
9152 vectorization.
9153
9154 2017-06-09 Richard Biener <rguenther@suse.de>
9155
9156 PR tree-optimization/79483
9157 * graphite-scop-detection.c (order): New global.
9158 (get_order): Compute bb to order mapping that satisfies code
9159 generation constraints.
9160 (cmp_pbbs): New helper.
9161 (build_scops): Start domwalk at entry block, sort generated
9162 pbbs.
9163
9164 2017-06-09 Richard Biener <rguenther@suse.de>
9165
9166 PR middle-end/81007
9167 * ipa-polymorphic-call.c
9168 (ipa_polymorphic_call_context::restrict_to_inner_class):
9169 Skip FIELD_DECLs with error_mark_node type.
9170 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
9171 last again.
9172
9173 2017-06-09 Martin Liska <mliska@suse.cz>
9174
9175 * predict.c (struct branch_predictor): New struct.
9176 (test_prediction_value_range): New test.
9177 (predict_c_tests): New function.
9178 * selftest-run-tests.c (selftest::run_tests): Run the function.
9179 * selftest.h: Declare new tests.
9180
9181 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
9182
9183 PR target/80966
9184 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
9185 gen_add3_insn did not fail.
9186 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
9187 r0, construct that number in a temporary reg and add that reg to r0.
9188 If asked to put the result in r0 as well, fail.
9189
9190 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
9191
9192 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
9193 for early expansion of vec_eqv.
9194
9195 2017-06-08 Jakub Jelinek <jakub@redhat.com>
9196
9197 PR middle-end/81005
9198 * ubsan.c (instrument_null): Avoid pointless code temporary.
9199 (pass_ubsan::execute): Instrument aggregate arguments of calls.
9200
9201 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
9202
9203 PR target/81015
9204 Revert:
9205 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
9206
9207 PR target/59874
9208 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
9209 (*clzhi2): Ditto.
9210
9211 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9212
9213 * predict.c (unlikely_executed_edge_p): Move ahead.
9214 (probably_never_executed_edge_p): Use it.
9215
9216 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
9217
9218 PR middle-end/79988
9219 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
9220 gimple_call_builtin_p call.
9221
9222 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9223
9224 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
9225 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
9226 rtl_check_failed_type2, rtl_check_failed_code1,
9227 rtl_check_failed_code2, rtl_check_failed_code_mode,
9228 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
9229 rtvec_check_failed_bounds, rtl_check_failed_flag,
9230 _fatal_insn_not_found, _fatal_insn): Likewise.
9231 * tree.h (tree_contains_struct_check_failed,
9232 tree_check_failed, tree_not_check_failed,
9233 tree_class_check_failed, tree_range_check_failed,
9234 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
9235 tree_vec_elt_check_failed, phi_node_elt_check_failed,
9236 tree_operand_check_failed, omp_clause_check_failed,
9237 omp_clause_operand_check_failed, omp_clause_range_check_failed):
9238 Likewise.
9239
9240 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9241
9242 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
9243 flag_branch_probabilities.
9244 * ipa-inline.c (edge_badness): Likewise.
9245 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
9246 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
9247 * predict.c (maybe_hot_frequency_p): Likewise.
9248 (probably_never_executed): Likewise.
9249 * sched-ebb.c (schedule_ebbs): Likewise.
9250 * sched-rgn.c (find_single_block_region): Likewise.
9251 * tracer.c (tail_duplicate): Likewise.
9252
9253 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9254
9255 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
9256 longer requires x_flag_profile_use.
9257
9258 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9259
9260 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
9261 instead of flag_reorder_blocks_and_partition.
9262 * dbxout.c (dbxout_function_end): Likewise.
9263 * dwarf2out.c (gen_subprogram_die): Likewise.
9264 * haifa-sched.c (sched_create_recovery_edges): Likewise.
9265 * hw-doloop.c (reorg_loops): Likewise.
9266 * varasm.c (assemble_start_function,
9267 assemble_end_function): Likewise.
9268 (decide_function_section): Do not check for
9269 flag_reorder_blocks_and_partition.
9270
9271 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
9272
9273 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
9274 New function.
9275 (chkp_get_hard_register_fake_addr_expr): Ditto.
9276 (chkp_build_addr_expr): Add check for hard reg case.
9277 (chkp_parse_array_and_component_ref): Ditto.
9278 (chkp_find_bounds_1): Ditto.
9279 (chkp_process_stmt): Don't generate bounds store for
9280 hard reg case.
9281
9282 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9283
9284 * predict.c (maybe_hot_bb_p): Do not check profile status.
9285 (maybe_hot_edge_p): Likewise.
9286 (probably_never_executed): Check for zero counts even if profile
9287 is not read.
9288 (unlikely_executed_edge_p): New function.
9289 (unlikely_executed_stmt_p): New function.
9290 (unlikely_executed_bb_p): New function.
9291 (set_even_probabilities): Use unlikely predicates.
9292 (combine_predictions_for_bb): Likewise.
9293 (predict_paths_for_bb): Likewise.
9294 (predict_paths_leading_to_edge): Likewise.
9295 (determine_unlikely_bbs): New function.
9296 (estimate_bb_frequencies): Use it.
9297 (compute_function_frequency): Use zero counts even if profile is
9298 not read.
9299 * profile-count.h: Fix typo.
9300
9301 2017-08-08 Julia Koval <julia.koval@intel.com>
9302
9303 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
9304 _mm512_mask_cvtsepi16_storeu_epi8,
9305 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
9306 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
9307 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
9308 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
9309 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
9310 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
9311 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
9312 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
9313 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
9314 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
9315 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
9316 __builtin_ia32_pmovuswb256mem_mask,
9317 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
9318 __builtin_ia32_pmovwb512mem_mask): New builtins.
9319
9320 2017-08-08 Julia Koval <julia.koval@intel.com>
9321
9322 PR target/73350,80862
9323 * config/i386/subst.md (round): Fix round pattern.
9324 * config/i386/i386.c (ix86_erase_embedded_rounding):
9325 Fix erasing rounding for the fixed pattern.
9326
9327 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
9328
9329 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
9330
9331 2017-06-08 Martin Liska <mliska@suse.cz>
9332
9333 PR gcov-profile/80911
9334 * gcov.c (block_info::block_info): New constructor.
9335
9336 2017-06-07 Carl Love <cel@us.ibm.com>
9337
9338 * config/rs6000/rs6000-c: The return type of the following
9339 built-in functions was implemented as int not long long. Fix sign
9340 of return value for the unsigned version of vec_mulo and vec_mule.
9341 vector unsigned long long vec_bperm (vector unsigned long long,
9342 vector unsigned char)
9343 vector signed long long vec_mule (vector signed int,
9344 vector signed int)
9345 vector unsigned long long vec_mule (vector unsigned int,
9346 vector unsigned int)
9347 vector signed long long vec_mulo (vector signed int,
9348 vector signed int)
9349 vector unsigned long long vec_mulo (vector unsigned int,
9350 vector unsigned int)
9351 * doc/extend.texi: Fix the documentation for the built-in
9352 functions.
9353
9354 2017-06-07 Carl Love <cel@us.ibm.com>
9355
9356 PR target/80982
9357 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
9358 for BE.
9359
9360 2017-06-07 Carl Love <cel@us.ibm.com>
9361
9362 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
9363 support, Generate doublehv for signed int/float for BE case only.
9364
9365 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
9366
9367 * doc/invoke.texi (mcx16): Rewrite.
9368
9369 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9370
9371 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
9372 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
9373 *mov<mode>_softfloat, and an anonymous splitter): Use
9374 nonimmediate_operand instead of rs6000_nonimmediate_operand.
9375
9376 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9377
9378 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
9379 SPEFSCR registers.
9380 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
9381 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
9382 (rs6000_debug_reg_global): Adjust.
9383 (rs6000_init_hard_regno_mode_ok): Adjust.
9384 (rs6000_dbx_register_number): Adjust.
9385 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
9386 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
9387 Remove SPE_ACC and SPEFSCR.
9388 (REG_ALLOC_ORDER): Ditto.
9389 (FRAME_POINTER_REGNUM): Change to 111.
9390 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
9391 (REG_CLASS_NAMES): Ditto.
9392 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
9393 (REGISTER_NAMES): Ditto.
9394 (ADDITIONAL_REG_NAMES): Ditto.
9395 (rs6000_reg_names): Ditto.
9396 * config/rs6000/rs6000.md: Renumber some register number
9397 define_constants.
9398
9399 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9400
9401 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
9402 registers.
9403 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
9404 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
9405 to 117.
9406 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
9407 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
9408 Delete the SPE high registers.
9409 (REG_ALLOC_ORDER): Ditto.
9410 (enum reg_class): Remove SPE_HIGH_REGS.
9411 (REG_CLASS_NAMES): Ditto.
9412 (REG_CLASS_CONTENTS): Delete the SPE high registers.
9413 (REGISTER_NAMES): Ditto.
9414 (rs6000_reg_names): Ditto.
9415 * doc/tm.texi.in: Remove SPE as example.
9416 * doc/tm.texi: Regenerate.
9417
9418 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9419
9420 * config/rs6000/8540.md (ppc8540_brinc): Delete.
9421 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
9422 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
9423 * config/rs6000/rs6000.md (type): Remove "brinc".
9424
9425 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9426
9427 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
9428 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
9429 * config/rs6000/linuxspe.h: Delete file.
9430 * config/rs6000/rs6000.md: Don't include spe.md.
9431 * config/rs6000/spe.h: Delete file.
9432 * config/rs6000/spe.md: Delete file.
9433 * config/rs6000/t-rs6000: Remove spe.md.
9434
9435 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9436
9437 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
9438 (reg_or_none500mem_operand): Delete.
9439 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
9440 instead of reg_or_none500mem_operand.
9441
9442 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9443
9444 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
9445 handling of SPE flags.
9446 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
9447
9448 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9449
9450 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
9451 SPE ABI handling.
9452 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
9453 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
9454 paired_divv2sf3): Similar.
9455 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
9456 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
9457 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
9458 RS6000_BUILTIN_S.
9459 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
9460 Rename the paired_* instruction patterns.
9461 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
9462 define __SPE__.
9463 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
9464 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
9465 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
9466 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
9467 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
9468 PAIRED_VECTOR_MODE.
9469 (struct machine_function): Delete field spe_insn_chain_scanned_p.
9470 (spe_func_has_64bit_regs_p): Delete.
9471 (spe_expand_predicate_builtin): Delete.
9472 (spe_expand_evsel_builtin): Delete.
9473 (TARGET_DWARF_REGISTER_SPAN): Do not define.
9474 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
9475 (invalid_e500_subreg): Delete.
9476 (rs6000_legitimize_address): Always force_reg op2 as well, for
9477 paired single memory accesses.
9478 (rs6000_member_type_forces_blk): Delete.
9479 (rs6000_spe_function_arg): Delete.
9480 (rs6000_expand_unop_builtin): Delete SPE handling.
9481 (rs6000_expand_binop_builtin): Ditto.
9482 (spe_expand_stv_builtin): Delete.
9483 (bdesc_2arg_spe): Delete.
9484 (spe_expand_builtin): Delete.
9485 (spe_expand_predicate_builtin): Delete.
9486 (spe_expand_evsel_builtin): Delete.
9487 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
9488 (spe_init_builtins): Delete.
9489 (spe_func_has_64bit_regs_p): Delete.
9490 (savres_routine_name): Delete "info" parameter. Adjust callers.
9491 (rs6000_emit_stack_reset): Ditto.
9492 (rs6000_dwarf_register_span): Delete.
9493 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
9494 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
9495 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
9496 Delete.
9497 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
9498 Delete.
9499 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
9500 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
9501 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
9502 mulv2sf3, divv2sf3): Delete expanders.
9503
9504 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9505
9506 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
9507
9508 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9509
9510 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
9511 * config/rs6000/rs6000.c: Ditto.
9512
9513 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9514
9515 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
9516 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
9517 comparison_operator.
9518
9519 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9520
9521 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
9522 * config/rs6000/rs6000.opt: Ditto.
9523 * config/rs6000/t-rtems: Ditto.
9524
9525 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9526
9527 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
9528 TARGET_E500_SINGLE by 0, simplify.
9529 * config/rs6000/rs6000.c: Ditto.
9530 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
9531 (spe_build_register_parallel): Delete.
9532 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
9533 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
9534 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
9535 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
9536 (E500_CONVERT): Delete.
9537 * config/rs6000/spe.md: Remove many patterns and all define_constants.
9538
9539 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
9540
9541 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
9542 * config/rs6000/dfp.md: Ditto.
9543 (negdd2, *negdd2_fpr): Merge.
9544 (absdd2, *absdd2_fpr): Merge.
9545 (negtd2, *negtd2_fpr): Merge.
9546 (abstd2, *abstd2_fpr): Merge.
9547 * config/rs6000/e500.h: Delete file.
9548 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
9549 TARGET_FPRS by 1 and simplify.
9550 * config/rs6000/rs6000-c.c: Ditto.
9551 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
9552 TARGET_DF_SPE by 0.
9553 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
9554 TARGET_DF_SPE.
9555 * config/rs6000/rs6000.md: Ditto.
9556 (floatdidf2, *floatdidf2_fpr): Merge.
9557 (move_from_CR_gt_bit): Delete.
9558 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
9559 (E500_CR_IOR_COMPARE): Delete.
9560 (All patterns that require !TARGET_FPRS): Delete.
9561 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
9562
9563 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9564
9565 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
9566
9567 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9568
9569 * graphds.c (add_edge): Intitialize edge's attached data.
9570 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
9571 pointer parameter. Call pointed function on each edge during
9572 graph traversing. Skip traversing the edge when the function
9573 returns true.
9574 (graphds_dfs, graphds_scc): Ditto.
9575 (for_each_edge): New parameter. Pass the new parameter to callback
9576 function.
9577 * graphds.h (skip_edge_callback): New function pointer type.
9578 (graphds_dfs, graphds_scc): New function pointer parameter.
9579 (graphds_edge_callback, for_each_edge): New parameter.
9580
9581 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9582
9583 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
9584 out code checking if runtime alias check is possible to below ...
9585 Call the new function.
9586 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
9587 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
9588
9589 2017-06-07 Marek Polacek <polacek@redhat.com>
9590
9591 PR sanitizer/80932
9592 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
9593 TYPE_OVERFLOW_WRAPS check.
9594
9595 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9596
9597 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
9598 if versioning is required.
9599 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
9600 peeling with the check for versioning.
9601
9602 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9603
9604 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
9605 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
9606 Set true to new parameter if new ssa variable is defined.
9607 (vect_gen_vector_loop_niters): Refactor. Set range information
9608 for the new vector loop bound variable.
9609 (vect_do_peeling): Ditto.
9610
9611 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9612
9613 * tree-affine.c (ssa.h): Include header file.
9614 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
9615 has wrapping overflow behavior.
9616
9617 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9618
9619 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
9620
9621 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9622
9623 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
9624 (tree_to_aff_combination): ... here.
9625
9626 2017-06-07 Bin Cheng <bin.cheng@arm.com>
9627
9628 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
9629 reg_pressure model function.
9630 (ivopts_global_cost_for_size): Delete.
9631 (determine_set_costs, iv_ca_recount_cost): Call new model function
9632 ivopts_estimate_reg_pressure.
9633
9634 2017-06-07 Tamar Christina <tamar.christina@arm.com>
9635
9636 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
9637 expensive than udiv. Remove floating point cases from mod.
9638
9639 2017-06-07 Tamar Christina <tamar.christina@arm.com>
9640
9641 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
9642 Increase idiv cost.
9643
9644 2017-06-07 Tamar Christina <tamar.christina@arm.com>
9645
9646 * config/aarch64/aarch64.md
9647 (copysignsf3): Fix mask generation.
9648
9649 2017-06-07 Jakub Jelinek <jakub@redhat.com>
9650
9651 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
9652 TDI_gimple.
9653 (class dump_manager): Add register_dumps method.
9654 * dumpfile.c: Include langhooks.h.
9655 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
9656 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
9657 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
9658 (dump_manager::dump_register): Start with 512 entries instead of 32.
9659 (dump_manager::register_dumps): New method.
9660 * toplev.c (general_init): Instead of invoking register_dumps
9661 langhook, invoke register_dumps method on the dump manager.
9662 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
9663 TDI_generic.
9664
9665 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
9666
9667 * doc/md.texi: Clarify the restrictions on a define_insn condition.
9668 Say that # requires an associated define_split to exist, and that
9669 the define_split must be suitable for use after register allocation.
9670
9671 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9672
9673 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
9674 (compute_outgoing_frequencies): Also initialize zero counts.
9675 (find_many_sub_basic_blocks): Do not produce uninitialized profile
9676 around loops; preserve more of profile when nothing changes.
9677
9678 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
9679
9680 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
9681 here.
9682 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
9683 * config/arm/arm-cpu-cdata.h: Regenerate.
9684 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
9685 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
9686 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
9687 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
9688 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
9689 support.
9690 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
9691 support.
9692 * config/arm/t-rmprofile: Likewise.
9693 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
9694
9695 2017-06-06 David S. Miller <davem@davemloft.net>
9696
9697 PR target/80968
9698 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
9699 blockage if function uses alloca.
9700
9701 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
9702
9703 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
9704 New "uid" fields to hold pretty-print IDs of group and ref.
9705 Memory references are now identified as <group_id>:<ref_id>
9706 instead of using [random] addresses.
9707 (dump_mem_details): Simplify, no functional change.
9708 (dump_mem_ref): Simplify and make output more concise.
9709 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
9710 (find_or_create_group): Initialize group uid.
9711 (record_ref): Initialize ref uid. Improve debug output.
9712 (prune_group_by_reuse, should_issue_prefetch_p,)
9713 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
9714 (mark_nontemporal_store, determine_loop_nest_reuse):
9715 Improve debug output.
9716
9717 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
9718
9719 * dbgcnt.def (prefetch): New debug counter.
9720 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
9721 (schedule_prefetches): Stop issueing prefetches if debug counter
9722 tripped.
9723
9724 2017-06-06 Tom de Vries <tom@codesourcery.com>
9725
9726 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
9727 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
9728
9729 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9730
9731 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
9732 Use aarch64_reg_or_zero predicate for operand 4.
9733 (aarch64_compare_and_swap<mode> define_insn_and_split):
9734 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
9735 (aarch64_store_exclusive<mode>): Likewise for operand 2.
9736
9737 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
9738
9739 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
9740 (arm_compute_save_core_reg_mask): This.
9741 (thumb1_compute_save_reg_mask): Rename into ...
9742 (thumb1_compute_save_core_reg_mask): This.
9743 (arm_compute_save_reg0_reg12_mask): Adapt comment.
9744 (arm_compute_frame_layout): Likewise.
9745
9746 2017-06-06 Richard Biener <rguenther@suse.de>
9747
9748 PR tree-optimization/80974
9749 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
9750 keep or clear leaders SSA info.
9751
9752 2017-06-06 Tom de Vries <tom@codesourcery.com>
9753
9754 * config/nvptx/nvptx.c (split_mode_p): New function.
9755 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
9756
9757 2017-06-06 Tom de Vries <tom@codesourcery.com>
9758
9759 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
9760
9761 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9762
9763 PR bootstrap/80978
9764 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
9765 profile.
9766
9767 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9768
9769 * shrink-wrap.c (handle_simple_exit): Update profile.
9770 (try_shrink_wrapping): Upate profile.
9771
9772 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9773
9774 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
9775 (tree_guess_outgoing_edge_probabilities): New.
9776 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
9777 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
9778
9779 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9780
9781 * ipa-split.c (split_function): Initialize return bb profile.
9782
9783 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
9784
9785 * profile.c (compute_branch_probabilities): Also initialize
9786 EXIT_BLOCK profile.
9787
9788 2017-06-06 Richard Biener <rguenther@suse.de>
9789
9790 PR tree-optimization/80928
9791 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
9792 (vect_analyze_loop_operations): Properly guard analysis for
9793 pure SLP case.
9794 (vect_transform_loop): Likewise.
9795 (vect_analyze_loop_2): Also reset SLP type on PHIs.
9796 (vect_model_induction_cost): Do not cost for pure SLP.
9797 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
9798 of induction in inner loop vectorization.
9799 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
9800 (vect_get_and_check_slp_defs): Handle vect_induction_def.
9801 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
9802 recursion.
9803 (vect_analyze_slp_cost_1): Cost induction.
9804 (vect_detect_hybrid_slp_stmts): Handle PHIs.
9805 (vect_get_slp_vect_defs): Likewise.
9806 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
9807 (vect_transform_stmt): Handle SLP reductions.
9808 * tree-vectorizer.h (vectorizable_induction): Adjust.
9809
9810 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9811
9812 * config/rs6000/rs6000.c (make_resolver_func): Update
9813 init_lowered_empty_function call.
9814
9815 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
9816
9817 * doc/invoke.texi: Document the -fprofile-abs-path option.
9818 * common.opt (fprofile-abs-path): New option.
9819 * gcov-io.h (gcov_write_filename): Declare.
9820 * gcov-io.c (gcov_write_filename): New function.
9821 * coverage.c (coverage_begin_function): Use gcov_write_filename.
9822 * profile.c (output_location): Likewise.
9823
9824 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
9825
9826 * shring-wrap.c: Revert accidental commit.
9827
9828 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
9829
9830 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
9831
9832 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
9833
9834 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
9835 new edge.
9836 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
9837 profile in callgraph edge.
9838 * profile-count.h (apply_probability): If THIS is 0, then result is 0
9839 (apply_scale): Likewise.
9840 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
9841 Also scale profile when inlining function with zero profile.
9842 (initialize_cfun): Update exit block profile even when it is zero.
9843 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
9844 when profile is read.
9845
9846 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9847
9848 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
9849 (CLONE_*): New constants to define the processors we can generate
9850 code for with the target_clone attribute.
9851 (rs6000_clone_map): New array to identify which clone processors
9852 the current program is running on.
9853 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
9854 target_clone attribute.
9855 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
9856 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
9857 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
9858 (cpu_expand_builtin): Add support for target_clone attribute.
9859 (rs6000_valid_attribute_p): Allow "default" attribute.
9860 (get_decl_name): New debug function to simplify printing the
9861 current function name in debugging statements.
9862 (rs6000_clone_priority): New functions to support the target_clone
9863 attribute, and be able to generate code to switch between ISA 2.05
9864 through ISA 3.0 (power6 through power9).
9865 (rs6000_compare_version_priority): Likewise.
9866 (rs6000_get_function_versions_dispatcher): Likewise.
9867 (make_resolver_func): Likewise.
9868 (add_condition_to_bb): Likewise.
9869 (dispatch_function_versions): Likewise.
9870 (rs6000_generate_version_dispatcher_body): Likewise.
9871 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
9872 (fusion_gpr_load_p): Fix a spacing issue.
9873 * doc/extend.texi (Common Function Attributes): Document that the
9874 PowerPC supports the target_clone attribute.
9875
9876 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
9877
9878 * config/arm/arm.h: explain F symbol found in description of ARM
9879 register allocation in its legend.
9880
9881 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
9882
9883 * config/mips/frame-header-opt.c: Include profile-count.h.
9884 * config/riscv/riscv.c: Include profile-count.h
9885
9886 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
9887
9888 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
9889 update profile.
9890 (sm_set_flag_if_changed): Add bbs field.
9891 (execute_sm_if_changed_flag_set): Pass BBS.
9892 (execute_sm): Update.
9893
9894 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9895
9896 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
9897 New pattern.
9898
9899 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9900
9901 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
9902 (peephole2): New peephole2 to emit the above.
9903 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
9904
9905 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9906
9907 * config/aarch64/aarch64.c (define_peephole2 above
9908 *sub_<shift>_<mode>): New peephole.
9909
9910 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
9911
9912 * config/i386/i386.c (make_resolver_func): Update.
9913 * Makefile.in: Add profile-count.h and profile-count.o
9914 * auto-profile.c (afdo_indirect_call): Update to new API.
9915 (afdo_set_bb_count): Update.
9916 (afdo_propagate_edge): Update.
9917 (afdo_propagate_circuit): Update.
9918 (afdo_calculate_branch_prob): Update.
9919 (afdo_annotate_cfg): Update.
9920 * basic-block.h: Include profile-count.h
9921 (struct edge_def): Turn count to profile_count.
9922 (struct basic_block_def): Likewie.
9923 (REG_BR_PROB_BASE): Move to profile-count.h
9924 (RDIV): Move to profile-count.h
9925 * bb-reorder.c (max_entry_count): Turn to profile_count.
9926 (find_traces): Update.
9927 (rotate_loop):Update.
9928 (connect_traces):Update.
9929 (sanitize_hot_paths):Update.
9930 * bt-load.c (migrate_btr_defs): Update.
9931 * cfg.c (RDIV): Remove.
9932 (init_flow): Use alloc_block.
9933 (alloc_block): Uninitialize count.
9934 (unchecked_make_edge): Uninitialize count.
9935 (check_bb_profile): Update.
9936 (dump_edge_info): Update.
9937 (dump_bb_info): Update.
9938 (update_bb_profile_for_threading): Update.
9939 (scale_bbs_frequencies_int): Update.
9940 (scale_bbs_frequencies_gcov_type): Update.
9941 (scale_bbs_frequencies_profile_count): New.
9942 * cfg.h (update_bb_profile_for_threading): Update.
9943 (scale_bbs_frequencies_profile_count): Declare.
9944 * cfgbuild.c (compute_outgoing_frequencies): Update.
9945 (find_many_sub_basic_blocks): Update.
9946 * cfgcleanup.c (try_forward_edges): Update.
9947 (try_crossjump_to_edge): Update.
9948 * cfgexpand.c (expand_gimple_tailcall): Update.
9949 (construct_exit_block): Update.
9950 * cfghooks.c (verify_flow_info): Update.
9951 (dump_bb_for_graph): Update.
9952 (split_edge): Update.
9953 (make_forwarder_block): Update.
9954 (duplicate_block): Update.
9955 (account_profile_record): Update.
9956 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
9957 (get_estimated_loop_iterations): Update.
9958 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
9959 (single_likely_exit): Update.
9960 * cfgloopmanip.c (scale_loop_profile): Update.
9961 (loopify): Update.
9962 (set_zero_probability): Update.
9963 (lv_adjust_loop_entry_edge): Update.
9964 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
9965 (purge_dead_edges): Update.
9966 (rtl_account_profile_record): Update.
9967 * cgraph.c (cgraph_node::create): Uninitialize count.
9968 (symbol_table::create_edge): Uninitialize count.
9969 (cgraph_update_edges_for_call_stmt_node): Update.
9970 (cgraph_edge::dump_edge_flags): Update.
9971 (cgraph_node::dump): Update.
9972 (cgraph_edge::maybe_hot_p): Update.
9973 * cgraph.h: Include profile-count.h
9974 (create_clone), create_edge, create_indirect_edge): Update.
9975 (cgraph_node): Turn count to profile_count.
9976 (cgraph_edge0: Likewise.
9977 (make_speculative, clone): Update.
9978 (create_edge): Update.
9979 (init_lowered_empty_function): Update.
9980 * cgraphclones.c (cgraph_edge::clone): Update.
9981 (duplicate_thunk_for_node): Update.
9982 (cgraph_node::create_clone): Update.
9983 * cgraphunit.c (cgraph_node::analyze): Update.
9984 (cgraph_node::expand_thunk): Update.
9985 * final.c (dump_basic_block_info): Update.
9986 * gimple-streamer-in.c (input_bb): Update.
9987 * gimple-streamer-out.c (output_bb): Update.
9988 * graphite.c (print_global_statistics): Update.
9989 (print_graphite_scop_statistics): Update.
9990 * hsa-brig.c: Include basic-block.h.
9991 * hsa-dump.c: Include basic-block.h.
9992 * hsa-gen.c (T sum_slice): Update.
9993 (convert_switch_statements):Update.
9994 * hsa-regalloc.c: Include basic-block.h.
9995 * ipa-chkp.c (chkp_produce_thunks): Update.
9996 * ipa-cp.c (struct caller_statistics): Update.
9997 (init_caller_stats): Update.
9998 (gather_caller_stats): Update.
9999 (ipcp_cloning_candidate_p): Update.
10000 (good_cloning_opportunity_p): Update.
10001 (get_info_about_necessary_edges): Update.
10002 (dump_profile_updates): Update.
10003 (update_profiling_info): Update.
10004 (update_specialized_profile): Update.
10005 (perhaps_add_new_callers): Update.
10006 (decide_about_value): Update.
10007 (ipa_cp_c_finalize): Update.
10008 * ipa-devirt.c (struct odr_type_warn_count): Update.
10009 (struct decl_warn_count): Update.
10010 (struct final_warning_record): Update.
10011 (possible_polymorphic_call_targets): Update.
10012 (ipa_devirt): Update.
10013 * ipa-fnsummary.c (redirect_to_unreachable): Update.
10014 * ipa-icf.c (sem_function::merge): Update.
10015 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
10016 * ipa-inline.c (compute_uninlined_call_time): Update.
10017 (compute_inlined_call_time): Update.
10018 (want_inline_small_function_p): Update.
10019 (want_inline_self_recursive_call_p): Update.
10020 (edge_badness): Update.
10021 (lookup_recursive_calls): Update.
10022 (recursive_inlining): Update.
10023 (inline_small_functions): Update.
10024 (dump_overall_stats): Update.
10025 (dump_inline_stats): Update.
10026 * ipa-profile.c (ipa_profile_generate_summary): Update.
10027 (ipa_propagate_frequency): Update.
10028 (ipa_profile): Update.
10029 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
10030 * ipa-utils.c (ipa_merge_profiles): Update.
10031 * loop-doloop.c (doloop_modify): Update.
10032 * loop-unroll.c (report_unroll): Update.
10033 (unroll_loop_runtime_iterations): Update.
10034 * lto-cgraph.c (lto_output_edge): Update.
10035 (lto_output_node): Update.
10036 (input_node): Update.
10037 (input_edge): Update.
10038 (merge_profile_summaries): Update.
10039 * lto-streamer-in.c (input_cfg): Update.
10040 * lto-streamer-out.c (output_cfg): Update.
10041 * mcf.c (create_fixup_graph): Update.
10042 (adjust_cfg_counts): Update.
10043 (sum_edge_counts): Update.
10044 * modulo-sched.c (sms_schedule): Update.
10045 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10046 * predict.c (maybe_hot_count_p): Update.
10047 (probably_never_executed): Update.
10048 (dump_prediction): Update.
10049 (combine_predictions_for_bb): Update.
10050 (propagate_freq): Update.
10051 (handle_missing_profiles): Update.
10052 (counts_to_freqs): Update.
10053 (rebuild_frequencies): Update.
10054 (force_edge_cold): Update.
10055 * predict.h: Include profile-count.h
10056 (maybe_hot_count_p, counts_to_freqs): UPdate.
10057 * print-rtl-function.c: Do not include cfg.h
10058 * print-rtl.c: Include basic-block.h
10059 * profile-count.c: New file.
10060 * profile-count.h: New file.
10061 * profile.c (is_edge_inconsistent): Update.
10062 (correct_negative_edge_counts): Update.
10063 (is_inconsistent): Update.
10064 (set_bb_counts): Update.
10065 (read_profile_edge_counts): Update.
10066 (compute_frequency_overlap): Update.
10067 (compute_branch_probabilities): Update; Initialize and deinitialize
10068 gcov_count tables.
10069 (branch_prob): Update.
10070 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
10071 (edge_gcov_count): New.
10072 (bb_gcov_count): New.
10073 * shrink-wrap.c (try_shrink_wrapping): Update.
10074 * tracer.c (better_p): Update.
10075 * trans-mem.c (expand_transaction): Update.
10076 (ipa_tm_insert_irr_call): Update.
10077 (ipa_tm_insert_gettmclone_call): Update.
10078 * tree-call-cdce.c: Update.
10079 * tree-cfg.c (gimple_duplicate_sese_region): Update.
10080 (gimple_duplicate_sese_tail): Update.
10081 (gimple_account_profile_record): Update.
10082 (execute_fixup_cfg): Update.
10083 * tree-inline.c (copy_bb): Update.
10084 (copy_edges_for_bb): Update.
10085 (initialize_cfun): Update.
10086 (freqs_to_counts): Update.
10087 (copy_cfg_body): Update.
10088 (expand_call_inline): Update.
10089 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
10090 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
10091 (try_unroll_loop_completely): Update.
10092 (try_peel_loop): Update.
10093 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
10094 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
10095 * tree-ssa-loop-split.c (connect_loops): Update.
10096 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
10097 * tree-ssa-reassoc.c (branch_fixup): Update.
10098 * tree-ssa-tail-merge.c (replace_block_by): Update.
10099 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
10100 (compute_path_counts): Update.
10101 (update_profile): Update.
10102 (recompute_probabilities): Update.
10103 (update_joiner_offpath_counts): Update.
10104 (estimated_freqs_path): Update.
10105 (freqs_to_counts_path): Update.
10106 (clear_counts_path): Update.
10107 (ssa_fix_duplicate_block_edges): Update.
10108 (duplicate_thread_path): Update.
10109 * tree-switch-conversion.c (case_bit_test_cmp): Update.
10110 (struct switch_conv_info): Update.
10111 * tree-tailcall.c (decrease_profile): Update.
10112 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
10113 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
10114 * value-prof.c (check_counter): Update.
10115 (gimple_divmod_fixed_value): Update.
10116 (gimple_mod_pow2): Update.
10117 (gimple_mod_subtract): Update.
10118 (gimple_ic_transform): Update.
10119 (gimple_stringop_fixed_value): Update.
10120 * value-prof.h (gimple_ic): Update.
10121
10122 2017-06-02 Carl Love <cel@us.ibm.com>
10123
10124 * config/rs6000/rs6000-c: Add support for built-in functions
10125 vector double vec_doublee (vector signed int);
10126 vector double vec_doublee (vector unsigned int);
10127 vector double vec_doublee (vector float);
10128 vector double vec_doubleh (vector signed int);
10129 vector double vec_doubleh (vector unsigned int);
10130 vector double vec_doubleh (vector float);
10131 vector double vec_doublel (vector signed int);
10132 vector double vec_doublel (vector unsigned int);
10133 vector double vec_doublel (vector float);
10134 vector double vec_doubleo (vector signed int);
10135 vector double vec_doubleo (vector unsigned int);
10136 vector double vec_doubleo (vector float);.
10137 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
10138 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
10139 UNS_DOUBLEL.
10140 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
10141 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
10142 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
10143 VS_sxwsp.
10144 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
10145 vec_doublel, vec_doubleh.
10146 * doc/extend.texi: Update the built-in documentation file for the
10147 new built-in functions.
10148
10149 2017-06-02 David Malcolm <dmalcolm@redhat.com>
10150
10151 PR jit/80954
10152 * ipa-inline-analysis.c (free_growth_caches): Set
10153 edge_removal_hook_holder to NULL after removing it.
10154
10155 2017-06-02 Sudakshina Das <sudi.das@arm.com>
10156
10157 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
10158 comparision with zero.
10159
10160 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
10161 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
10162 for early expansion of vec_min and vec_max builtins.
10163 (builtin_function_type): Add min/max unsigned variants to those
10164 identified as having unsigned arguments.
10165
10166 2017-06-02 Olivier Hainque <hainque@adacore.com>
10167
10168 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
10169
10170 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10171
10172 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
10173 Use VALL_F16 iterator rather than VALL.
10174
10175 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10176
10177 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
10178 Emit CBNZ inside loop when doing a strong exchange and comparing
10179 against zero. Generate the CC flags after the loop.
10180
10181 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
10182
10183 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
10184 (dl_section_ref): New.
10185 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
10186 On AIX, append an expression to subtract the size of the
10187 section length to dl_section_ref.
10188
10189 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
10190
10191 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
10192 for early expansion of vector absolute builtins.
10193
10194 2017-06-02 Richard Biener <rguenther@suse.de>
10195
10196 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
10197 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
10198
10199 2017-06-02 Richard Biener <rguenther@suse.de>
10200
10201 PR tree-optimization/80948
10202 * tree-tailcall.c (find_tail_calls): Track stmts to move in
10203 stmt order as well.
10204
10205 2017-06-02 Richard Biener <rguenther@suse.de>
10206
10207 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
10208 PHIs are ok.
10209 * tree-vect-stmts.c (process_use): Do not mark backedge defs
10210 for inductions as relevant.
10211
10212 2017-06-02 Richard Biener <rguenther@suse.de>
10213
10214 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
10215 (vectorizable_induction): ... this. Remove dead code.
10216
10217 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
10218
10219 * builtins. (expand_builtin_alloca): Remove second parameter and
10220 infer its value from the first parameter instead.
10221 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
10222
10223 2017-06-02 Jakub Jelinek <jakub@redhat.com>
10224
10225 PR rtl-optimization/80903
10226 * loop-doloop.c (add_test): Unshare sequence.
10227
10228 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
10229
10230 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
10231
10232 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
10233
10234 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
10235 static.
10236 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
10237 xlogue_layout::get_instance, logue_layout::xlogue_layout,
10238 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
10239 (xlogue_layout::get_stub_rtx): Make static.
10240 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
10241 (xlogue_layout::compute_stub_managed_regs): Rename to...
10242 (xlogue_layout::count_stub_managed_regs): ...this.
10243 (xlogue_layout::is_stub_managed_reg): New function.
10244 (xlogue_layout::m_stub_names): Rename to...
10245 (xlogue_layout::s_stub_names): ...this, make static.
10246 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
10247 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
10248 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
10249 xlogue_layout::s_stub_names): Instantiate statics.
10250 (stub_managed_regs): Remove.
10251 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
10252 (disable_call_ms2sysv_xlogues): Rename to...
10253 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
10254 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
10255 warning logic.
10256 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
10257 change after reload_completed.
10258 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
10259 directly.
10260 (ix86_expand_prologue): Likewise.
10261 (ix86_expand_epilogue): Likewise.
10262 (ix86_expand_split_stack_prologue): Likewise.
10263 (ix86_compute_frame_layout): Remove frame parameter ...
10264 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
10265 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
10266 only if necessary.
10267 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
10268 (ix86_frame): Move from here ...
10269 * config/i386/i386.h (ix86_frame): ... to here.
10270 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
10271 complete ix86_frame data structure instead. Remove some_ld_name.
10272
10273 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
10274
10275 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
10276 symbols that hold a DECL_VALUE_EXPR.
10277
10278 2017-06-01 Martin Jambor <mjambor@suse.cz>
10279
10280 PR tree-optimization/80898
10281 * tree-sra.c (process_subtree_disqualification): Removed.
10282 (disqualify_candidate): Do not acll
10283 process_subtree_disqualification.
10284 (subtree_mark_written_and_enqueue): New function.
10285 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
10286 RHS has been disqualified and re-queue LHS if necessary. Apart
10287 from that, ignore disqualified RHS.
10288
10289 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10290
10291 * config/s390/s390.c (s390_emit_epilogue): Disable early return
10292 address fetch for z10 or later.
10293
10294 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10295
10296 * config/arc/arc.md (tst_movb): Add guard when splitting.
10297
10298 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10299
10300 * config/arc/arc.c (arc_can_eliminate): Test against
10301 arc_frame_pointer_needed.
10302
10303 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10304
10305 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
10306 to prevent store reordering.
10307 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
10308 (type): Add block type.
10309 (stack_tie): Define special instruction to be used in
10310 expand_prologue.
10311
10312 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10313
10314 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
10315 constraint. It is not valid for the pattern.
10316 (noncommutative_binary_comparison): Likewise.
10317
10318 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10319
10320 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
10321 scaled addresses.
10322
10323 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10324
10325 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
10326 be used by the reg-alloc.
10327
10328 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10329
10330 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
10331 reg-alloc when having mul64 or mul32x16 instructions.
10332 (mulsidi3): Likewise.
10333 (umulsidi3): Likewise.
10334 (mulsi32x16): New pattern.
10335 (mulsi64): Likewise.
10336 (mulsidi64): Likewise.
10337 (umulsidi64): Likewise.
10338 (MUL32x16_REG): Define.
10339 (mul64_600): Use MUL32x16_REG.
10340 (mac64_600): Likewise.
10341 (umul64_600): Likewise.
10342 (umac64_600): Likewise.
10343
10344 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
10345
10346 * config/arc/arc.md (mulsi3_700): Make it commutative.
10347
10348 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
10349
10350 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
10351 type for movstouw.
10352 (*sign_extendsidi2_insn): Likewise for movstosw.
10353
10354 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
10355
10356 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
10357 the type of the input discriminant value. Convert the
10358 discriminant value of signedness vary.
10359
10360 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
10361
10362 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
10363 Add to -Wall section.
10364
10365 2017-06-01 Richard Biener <rguenther@suse.de>
10366
10367 PR middle-end/66313
10368 * fold-const.c (fold_plusminus_mult_expr): If the factored
10369 factor may be zero use a wrapping type for the inner operation.
10370 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
10371 and handle moved defs.
10372 (process_assignment): Properly guard the unary op case. Return a
10373 tri-state indicating that moving the stmt before the call may allow
10374 to continue. Pass through to_move.
10375 (find_tail_calls): Handle moving unrelated defs before
10376 the call.
10377
10378 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
10379
10380 PR target/80618
10381 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
10382 splitter result in the canonical way.
10383
10384 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
10385
10386 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
10387 also for 32bit target. Update insn attributes.
10388 (zero-extendsidi2 splitter): Allow all registers for operand 1.
10389
10390 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
10391
10392 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
10393 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
10394 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
10395 (_mm_maskz_min_ss): New intrinsics.
10396
10397 2017-05-31 Martin Liska <mliska@suse.cz>
10398
10399 * tree-vect-loop.c (vect_create_epilog_for_reduction):
10400 Change comment style to one we normally use.
10401 (vectorizable_reduction): Likewise.
10402 (vectorizable_induction): Likewise.
10403 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
10404 (vectorizable_call): Likewise.
10405 (vectorizable_simd_clone_call): Likewise.
10406 (vectorizable_conversion): Likewise.
10407 (vectorizable_assignment): Likewise.
10408 (vectorizable_shift): Likewise.
10409 (vectorizable_operation): Likewise.
10410 (vectorizable_store): Likewise.
10411 (vectorizable_load): Likewise.
10412 * tree-vectorizer.h: Likewise.
10413
10414 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
10415
10416 * passes.c (emergency_dump_function): New.
10417 * tree-pass.h (emergency_dump_function): Declare.
10418 * plugin.c (plugins_internal_error_function): Remove.
10419 * plugin.h (plugins_internal_error_function): Remove declaration.
10420 * toplev.c (internal_error_function): New static function. Use it...
10421 (general_init): ...here.
10422
10423 2017-05-31 Graham Markall <graham.markall@embecosm.com>
10424
10425 * config/arc/arc.c (arc_print_operand): Handle constant operands.
10426 (arc_rtx_costs): Add costs for new patterns.
10427 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
10428 * config/arc/predicates.md: Add _1_2_3_operand predicate.
10429
10430 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
10431
10432 * tree-ssa-strlen.c (get_next_strinfo): New function.
10433 (get_stridx_plus_constant): Use it.
10434 (zero_length_string): Likewise.
10435 (adjust_related_strinfos): Likewise.
10436 (adjust_last_stmt): Likewise.
10437
10438 2017-05-31 Richard Biener <rguenther@suse.de>
10439
10440 PR target/80880
10441 * config/i386/i386.c (ix86_expand_builtin): Remove assert
10442 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
10443
10444 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
10445
10446 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
10447 loop_vinfo argument and use of dependence distance vectors.
10448 Check instead whether the two references differ only in their
10449 initial value and assume that they have the same alignment if the
10450 difference is a multiple of the vector alignment.
10451 (vect_analyze_data_refs_alignment): Update call accordingly.
10452
10453 2017-05-31 Martin Liska <mliska@suse.cz>
10454
10455 PR target/79155
10456 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
10457
10458 2017-05-31 Bin Cheng <bin.cheng@arm.com>
10459
10460 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
10461 (create_intersect_range_checks): Move from ...
10462 * tree-data-ref.c (create_intersect_range_checks_index)
10463 (create_intersect_range_checks): ... to here.
10464 (create_runtime_alias_checks): New function factored from ...
10465 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
10466 here. Call above function.
10467 * tree-data-ref.h (create_runtime_alias_checks): New function.
10468
10469 2017-05-31 Bin Cheng <bin.cheng@arm.com>
10470
10471 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
10472 segment length for dr_b and compute it in wide_int.
10473
10474 2017-05-31 Richard Biener <rguenther@suse.de>
10475
10476 PR tree-optimization/80906
10477 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
10478 and pass through iv_map.
10479 (copy_bb_and_scalar_dependences): Adjust.
10480 (translate_pending_phi_nodes): Likewise.
10481 (copy_loop_close_phi_args): Handle code-generating IVs instead
10482 of ICEing.
10483
10484 2017-05-30 David Malcolm <dmalcolm@redhat.com>
10485
10486 * diagnostic-color.c (color_dict): Add "type-diff".
10487 (parse_gcc_colors): Update comment.
10488 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
10489 -fdiagnostics-show-template-tree and -fno-elide-type.
10490 (GCC_COLORS): Add type-diff to example.
10491 (type-diff=): New.
10492 (-fdiagnostics-show-template-tree): New.
10493 (-fno-elide-type): New.
10494 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
10495 the pp_format_decoder callback. Call any m_format_postprocessor's
10496 "handle" method.
10497 (pretty_printer::pretty_printer): Initialize
10498 m_format_postprocessor.
10499 (pretty_printer::~pretty_printer): Delete any
10500 m_format_postprocessor.
10501 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
10502 (class format_postprocessor): New class.
10503 (struct pretty_printer::format_decoder): Document the new parameters.
10504 (struct pretty_printer::m_format_postprocessor): New field.
10505 * tree-diagnostic.c (default_tree_printer): Update for new
10506 bool and const char ** params.
10507 * tree-diagnostic.h (default_tree_printer): Likewise.
10508
10509 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
10510
10511 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
10512 (lwa_operand): Delete rs6000_gen_cell_microcode test.
10513 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
10514 rs6000_gen_cell_microcode code.
10515 (rs6000_final_prescan_insn): Delete.
10516 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
10517 "warn-cell-microcode" entries.
10518 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
10519 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
10520 throughout. Change cc_reg_not_micro_cr0_operand to
10521 cc_reg_not_cr0_operand throughout.
10522 (*extendhi<mode>2_noload): Delete.
10523 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
10524 (mwarn-cell-microcode): Delete.
10525 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
10526 -mgen-cell-microcode and -mwarn-cell-microcode.
10527
10528 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
10529
10530 PR target/80833
10531 * config/i386/constraints.md (Yd): New constraint.
10532 (Ye): Ditto.
10533 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
10534 and (?Yd, r) alternatives. Update insn attributes.
10535 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
10536 and (?*Yd, r) alternatives. Update insn attributes.
10537 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
10538
10539 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
10540
10541 * gimplify.c (gimplify_modify_expr): Don't create a
10542 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
10543 function.
10544
10545 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
10546
10547 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
10548
10549 2017-05-30 Richard Biener <rguenther@suse.de>
10550
10551 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
10552 and reduc_def fields.
10553 (STMT_VINFO_REDUC_TYPE): New define.
10554 (STMT_VINFO_REDUC_DEF): Likewise.
10555 (vect_force_simple_reduction): Adjust prototype.
10556 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
10557 (vect_is_simple_reduction): Remove check_reduction argument.
10558 (vect_force_simple_reduction): Adjust and set
10559 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
10560 (vectorizable_reduction): Do not re-do reduction analysis
10561 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
10562 * tree-parloops.c (gather_scalar_reductions): Adjust.
10563
10564 2017-05-30 Richard Biener <rguenther@suse.de>
10565
10566 PR middle-end/80901
10567 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
10568 split_edge code.
10569
10570 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
10571
10572 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
10573 Introduce unknown_misalignment parameter and remove vf.
10574 (vect_peeling_hash_get_lowest_cost):
10575 Pass unknown_misalignment parameter.
10576 (vect_enhance_data_refs_alignment):
10577 Fix unsupportable data ref treatment.
10578
10579 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
10580
10581 * tree-vect-data-refs.c (vect_get_data_access_cost):
10582 Workaround for SLP handling.
10583 (vect_enhance_data_refs_alignment):
10584 Compute costs for doing no peeling at all, compare to the best
10585 peeling costs so far and avoid peeling if cheaper.
10586
10587 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
10588
10589 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
10590 Return peeling info and set costs to zero for unlimited cost
10591 model.
10592 (vect_enhance_data_refs_alignment): Also inspect all datarefs
10593 with unknown misalignment. Compute and costs for unknown
10594 misalignment, compare them to the costs for known misalignment
10595 and choose the cheapest for peeling.
10596
10597 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
10598
10599 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
10600 (vect_get_peeling_costs_all_drs): Create function.
10601 (vect_peeling_hash_get_lowest_cost):
10602 Use vect_get_peeling_costs_all_drs.
10603 (vect_peeling_supportable): Create function.
10604 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
10605
10606 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
10607
10608 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
10609 DR_HAS_NEGATIVE_STEP.
10610 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
10611 (vect_enhance_data_refs_alignment): Use.
10612 (vect_duplicate_ssa_name_ptr_info): Use.
10613 * tree-vectorizer.h (dr_misalignment): Use.
10614 (known_alignment_for_access_p): Use.
10615
10616 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
10617
10618 PR target/78838
10619 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
10620 .lowtext.
10621 (has_section_name): New function.
10622
10623 2017-05-30 Martin Liska <mliska@suse.cz>
10624
10625 PR other/80909
10626 * auto-profile.c (get_function_decl_from_block): Fix
10627 parenthesis.
10628
10629 2017-05-30 Richard Biener <rguenther@suse.de>
10630
10631 PR middle-end/80876
10632 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
10633
10634 2017-05-30 Martin Liska <mliska@suse.cz>
10635
10636 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
10637 * dumpfile.h (struct dump_file_info): Remove ctors.
10638
10639 2017-05-30 Martin Liska <mliska@suse.cz>
10640
10641 * predict.def: Fix GNU coding style.
10642
10643 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
10644
10645 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
10646 Mark 'to' argument with ATTRIBUTE_UNUSED.
10647
10648 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
10649
10650 * config/xtensa/xtensa.c (xtensa_emit_call): Use
10651 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
10652 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
10653 format string.
10654
10655 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
10656
10657 * doc/install.texi (Options specification): Restore entry of
10658 --enable-sjlj-exceptions.
10659
10660 2017-05-27 Michael Eager <eager@eagercon.com>
10661
10662 Revert:
10663 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
10664
10665 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
10666
10667 * config/microblaze/microblaze.h
10668 (FIXED_REGISTERS): Update in macro.
10669 (CALL_USED_REGISTERS): Update in macro.
10670
10671 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
10672
10673 * doc/install.texi: Add links to macOS binary distributions.
10674
10675 2017-05-27 Jakub Jelinek <jakub@redhat.com>
10676
10677 PR bootstrap/80887
10678 Revert:
10679 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
10680
10681 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
10682
10683 2017-05-26 Martin Liska <mliska@suse.cz>
10684
10685 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
10686
10687 2017-05-26 Martin Liska <mliska@suse.cz>
10688
10689 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
10690 always leading ';; '.
10691 (dump_bb_info): Likewise.
10692 (brief_dump_cfg): Likewise.
10693 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
10694 * dumpfile.c: Remove usage of TDF_VERBOSE.
10695 * dumpfile.h (enum dump_kind): Likewise.
10696 (dump_gimple_bb_header): Do not use TDF_COMMENT.
10697 * print-tree.c (debug_verbose): Remove.
10698 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
10699 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
10700 * tree-diagnostic.c (default_tree_printer): Replace
10701 TDF_DIAGNOSTIC with TDF_SLIM.
10702
10703 2017-05-26 Bin Cheng <bin.cheng@arm.com>
10704
10705 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
10706 in parameter loop, rather than loop_vinfo.
10707 (create_intersect_range_checks): Ditto.
10708 (vect_create_cond_for_alias_checks): Update call to above functions.
10709
10710 2017-05-26 Bin Cheng <bin.cheng@arm.com>
10711
10712 PR tree-optimization/80815
10713 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
10714 for merging runtime alias checks. Handle negative DR_STEPs.
10715
10716 2017-05-26 Bin Cheng <bin.cheng@arm.com>
10717
10718 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
10719 Move from ...
10720 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
10721 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
10722 out code pruning runtime alias checks.
10723 * tree-data-ref.c (prune_runtime_alias_test_list): New function
10724 factored out from above.
10725 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
10726 Move from ...
10727 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
10728 ... to here.
10729 (prune_runtime_alias_test_list): New decalaration.
10730
10731 2017-05-26 Bin Cheng <bin.cheng@arm.com>
10732
10733 * tree-vect-data-refs.c (compare_tree): Rename and move ...
10734 * tree-data-ref.c (data_ref_compare_tree): ... to here.
10735 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
10736 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
10737 (operator==, comp_dr_with_seg_len_pair): Ditto.
10738 (vect_prune_runtime_alias_test_list): Ditto.
10739
10740 2017-05-26 Martin Liska <mliska@suse.cz>
10741
10742 PR ipa/80663
10743 * params.def: Bound partial-inlining-entry-probability param.
10744
10745 2017-05-26 Marek Polacek <polacek@redhat.com>
10746
10747 PR sanitizer/80875
10748 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
10749 can be negated.
10750
10751 2017-05-26 Richard Biener <rguenther@suse.de>
10752
10753 PR tree-optimization/80842
10754 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
10755 value.
10756
10757 2017-05-26 Richard Biener <rguenther@suse.de>
10758
10759 PR tree-optimization/80844
10760 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
10761
10762 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
10763
10764 * doc/md.texi (Machine Constraints): Update x86 family
10765 machine constraints section to match 'config/i386/constraints.md'.
10766
10767 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
10768
10769 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
10770
10771 2017-05-25 Nathan Sidwell <nathan@acm.org>
10772
10773 * doc/invoke.texi (--enable-languages): Update documentation.
10774
10775 2017-05-25 Martin Liska <mliska@suse.cz>
10776
10777 * dumpfile.c: Add TDF_FOLDING.
10778 * dumpfile.h (enum dump_kind): Likewise.
10779 * genmatch.c (dt_simplify::gen_1): Use it.
10780
10781 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
10782
10783 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
10784
10785 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
10786
10787 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
10788 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
10789
10790 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
10791
10792 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
10793 * match.pd (X == C): Rewrite it here.
10794 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
10795 with_certain_nonzero_bits2): New predicates.
10796 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
10797
10798 2017-05-24 Nathan Sidwell <nathan@acm.org>
10799
10800 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
10801 avoid warning.
10802
10803 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
10804 warning.
10805
10806 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
10807
10808 * config/powerpcspe: New port. Files are copied from the rs6000
10809 port, with "rs6000" in filenames replaced by "powerpcspe".
10810
10811 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
10812
10813 PR rtl-optimization/80754
10814 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
10815
10816 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
10817
10818 * config/sparc/sparc.md (length): Return the correct value for -mflat
10819 sibcalls to match output_sibcall.
10820
10821 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
10822
10823 PR bootstrap/80860
10824 PR bootstrap/80843
10825 * config/rs6000/rs6000.c (struct machine_function): Add new field
10826 n_components.
10827 (rs6000_get_separate_components): Init that field, use it.
10828 (rs6000_components_for_bb): Use the field.
10829
10830 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
10831
10832 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
10833
10834 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
10835
10836 PR middle-end/80823
10837 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
10838
10839 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10840
10841 PR target/80725
10842 * config/s390/s390.c (s390_check_qrst_address): Check incoming
10843 address against address_operand predicate.
10844 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
10845
10846 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
10847
10848 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
10849 parameters passed indirectly.
10850
10851 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
10852
10853 * config/i386/i386.md (*movdi_internal): Remove SSE4
10854 alternative 18 (?r, *v). Update insn attributes.
10855 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
10856 Update insn attributes.
10857 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
10858 Update insn attributes.
10859 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
10860 alternative 1 (r, v). Remove isa attribute.
10861 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
10862 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
10863 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
10864
10865 2017-05-23 Tom de Vries <tom@codesourcery.com>
10866
10867 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
10868 dg-line directive.
10869
10870 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
10871
10872 * cgraphunit.c (symbol_table::process_new_functions): Update.
10873 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
10874 (inline_generate_summary): Rename to ...
10875 (ipa_fn_summary_generate): ... this one.
10876 (inline_read_summary): Rename to ...
10877 (ipa_fn_summary_read): ... this one.
10878 (inline_write_summary): Rename to ...
10879 (ipa_fn_summary_write): ... this one.
10880 (inline_free_summary): Rename to ...
10881 (ipa_free_fn_summary): ... this one.
10882 (pass_data_local_fn_summary, pass_local_fn_summary,
10883 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
10884 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
10885 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
10886 make_pass_ipa_fn_summary): New.
10887 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
10888 inline_write_summary, inline_free_summary): Remove.
10889 (ipa_free_fn_summary) : New.
10890 * ipa-inline.c (ipa_inline): Update.
10891 (pass_ipa_inline): Do not generate summaries.
10892 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
10893 Remove.
10894 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
10895 and add pass_ipa_fn_summary.
10896 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
10897 New.
10898 (make_pass_inline_parameters): Remove.
10899
10900 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
10901
10902 * omp-low.c (struct omp_context): Remove "default_kind" member.
10903 Adjust all users.
10904
10905 * omp-offload.c (execute_oacc_device_lower): Remove the
10906 parallelism dimensions function attributes for unparallelized
10907 OpenACC kernels constructs.
10908
10909 2017-05-23 Martin Liska <mliska@suse.cz>
10910
10911 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
10912 functions.
10913 (cgraph_edge::make_speculative): Likewise.
10914 (cgraph_edge::resolve_speculation): Likewise.
10915 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
10916 (cgraph_node::dump): Likewise.
10917 * cgraph.h: Likewise.
10918 * cgraphunit.c (analyze_functions): Likewise.
10919 (symbol_table::compile): Likewise.
10920 * ipa-cp.c (print_all_lattices): Likewise.
10921 (determine_versionability): Likewise.
10922 (initialize_node_lattices): Likewise.
10923 (ipcp_verify_propagated_values): Likewise.
10924 (estimate_local_effects): Likewise.
10925 (update_profiling_info): Likewise.
10926 (create_specialized_node): Likewise.
10927 (perhaps_add_new_callers): Likewise.
10928 (decide_about_value): Likewise.
10929 (decide_whether_version_node): Likewise.
10930 (identify_dead_nodes): Likewise.
10931 (ipcp_store_bits_results): Likewise.
10932 * ipa-devirt.c (dump_targets): Likewise.
10933 (ipa_devirt): Likewise.
10934 * ipa-icf.c (sem_item::dump): Likewise.
10935 (sem_function::equals): Likewise.
10936 (sem_variable::equals): Likewise.
10937 (sem_item_optimizer::read_section): Likewise.
10938 (sem_item_optimizer::execute): Likewise.
10939 (congruence_class::dump): Likewise.
10940 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
10941 (dump_inline_summary): Likewise.
10942 (estimate_node_size_and_time): Likewise.
10943 (inline_analyze_function): Likewise.
10944 * ipa-inline-transform.c (inline_call): Likewise.
10945 * ipa-inline.c (report_inline_failed_reason): Likewise.
10946 (want_early_inline_function_p): Likewise.
10947 (edge_badness): Likewise.
10948 (update_edge_key): Likewise.
10949 (inline_small_functions): Likewise.
10950 * ipa-profile.c (ipa_profile): Likewise.
10951 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
10952 (ipa_make_edge_direct_to_target): Likewise.
10953 (remove_described_reference): Likewise.
10954 (ipa_impossible_devirt_target): Likewise.
10955 (propagate_controlled_uses): Likewise.
10956 (ipa_print_node_params): Likewise.
10957 (ipcp_transform_function): Likewise.
10958 * ipa-pure-const.c (pure_const_read_summary): Likewise.
10959 (propagate_pure_const): Likewise.
10960 * ipa-reference.c (generate_summary): Likewise.
10961 (read_write_all_from_decl): Likewise.
10962 (propagate): Likewise.
10963 (ipa_reference_read_optimization_summary): Likewise.
10964 * ipa-utils.c (ipa_merge_profiles): Likewise.
10965 * ipa.c (walk_polymorphic_call_targets): Likewise.
10966 (symbol_table::remove_unreachable_nodes): Likewise.
10967 (ipa_single_use): Likewise.
10968 * passes.c (execute_todo): Likewise.
10969 * predict.c (drop_profile): Likewise.
10970 * symtab.c (symtab_node::get_dump_name): New function.
10971 (symtab_node::dump_name): Likewise.
10972 (symtab_node::dump_asm_name): Likewise.
10973 (symtab_node::dump_references): Likewise.
10974 (symtab_node::dump_referring): Likewise.
10975 (symtab_node::dump_base): Likewise.
10976 (symtab_node::debug_symtab): Likewise.
10977 * tree-sra.c (convert_callers_for_node): Likewise.
10978 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10979 * value-prof.c (init_node_map): Likewise.
10980
10981 2017-05-23 Martin Liska <mliska@suse.cz>
10982
10983 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
10984 and symtab_node::debug_symtab to symbol_table::debug.
10985 * cgraphunit.c (analyze_functions): Use the renamed function.
10986 (symbol_table::compile): Likewise.
10987 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
10988 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
10989 * passes.c (execute_todo): Likewise.
10990 * symtab.c (symbol_table::dump): New function.
10991 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
10992
10993 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
10994
10995 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
10996 that nonconst implies exec.
10997
10998 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
10999
11000 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
11001 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
11002 (inline_edge_summary_vec): Turn into ...
11003 (ipa_call_summaries): ... this one.
11004 (redirect_to_unreachable, edge_set_predicate,
11005 evaluate_properties_for_edge, inline_summary_alloc,
11006 reset_ipa_call_summary, reset_inline_summary,
11007 inline_summary_t::duplicate): Update.
11008 (inline_edge_duplication_hook): Turn to ...
11009 (ipa_call_summary_t::duplicate): ... this one.
11010 (inline_edge_removal_hook): Turn to ...
11011 (ipa_call_summary_t::remove): ... this one.
11012 (dump_inline_edge_summary): Turn to ...
11013 (dump_ipa_call_summary): ... this one.
11014 (estimate_function_body_sizes): Update.
11015 (inline_update_callee_summaries): Update.
11016 (remap_edge_change_prob): Update.
11017 (remap_edge_summaries): Update.
11018 (inline_merge_summary): Update.
11019 (do_estimate_edge_time): Update.
11020 (inline_generate_summary): Update.
11021 (inline_read_section): Update.
11022 (inline_read_summary): Update.
11023 (inline_free_summary): Update.
11024 * ipa-inline.c (can_inline_edge_p): Update.
11025 (compute_inlined_call_time): Update.
11026 (want_inline_small_function_p): Update.
11027 (edge_badness): Update.
11028 (early_inliner): Update.
11029 * ipa-inline.h (inline_edge_summary): Turn to ...
11030 (ipa_call_summary): ... this one.
11031 (ipa_call_summary_t): New class.
11032 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
11033 (ipa_call_summaries): New.
11034 (inline_edge_summary): Remove.
11035 (estimate_edge_growth): Update.
11036 * ipa-profile.c (ipa_propagate_frequency_1): Update.
11037 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
11038 * ipa-split.c (execute_split_functions): Update.
11039 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
11040
11041 2017-05-23 Tom de Vries <tom@codesourcery.com>
11042
11043 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
11044 attributes): Document rdrand effective target.
11045
11046 2017-05-23 Tom de Vries <tom@codesourcery.com>
11047
11048 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
11049 attributes): Sort alphabetically.
11050
11051 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
11052
11053 * config/avr/genmultilib.awk: Use gsub instead of gensub.
11054
11055 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
11056
11057 PR target/80718
11058 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
11059 V2DF/V2DI splat into two separate patterns, one that handles
11060 registers, and the other that only handles memory. Drop support
11061 for splatting from a GPR on ISA 2.07 and then splitting the
11062 splat into direct move and splat.
11063 (vsx_splat_<mode>_reg): Likewise.
11064 (vsx_splat_<mode>_mem): Likewise.
11065
11066 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
11067
11068 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
11069
11070 2017-05-22 Jakub Jelinek <jakub@redhat.com>
11071
11072 PR middle-end/80809
11073 * omp-low.c (finish_taskreg_remap): New function.
11074 (finish_taskreg_scan): If unit size of ctx->record_type
11075 is non-constant, unshare the size expression and replace
11076 decls in it with possible outer var refs.
11077
11078 PR middle-end/80809
11079 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
11080 GOVD_SHARED rather than GOVD_PRIVATE with it.
11081 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
11082 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
11083
11084 PR middle-end/80853
11085 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
11086 as last argument to build_outer_var_ref for pointer bases of array
11087 section reductions.
11088
11089 2017-05-19 Martin Sebor <msebor@redhat.com>
11090
11091 * print-tree.c (print_node): Print DECL_READ_P flag.
11092
11093 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11094
11095 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
11096 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
11097 * cgraph.c: Likewise.
11098 * cgraphunit.c: Likewise.
11099 * gengtype.c: Likewise.
11100 * ipa-cp.c: Likewise.
11101 * ipa-devirt.c: Likewise.
11102 * ipa-icf.c: Likewise.
11103 * ipa-predicate.c: Likewise.
11104 * ipa-profile.c: Likewise.
11105 * ipa-prop.c: Likewise.
11106 * ipa-split.c: Likewise.
11107 * ipa.c: Likewise.
11108 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
11109 edge_predicate_pool, dump_inline_hints,
11110 inline_summary::account_size_time, redirect_to_unreachable,
11111 edge_set_predicate, set_hint_predicate,
11112 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
11113 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
11114 inline_summary_t::remove, remap_hint_predicate_after_duplication,
11115 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
11116 ipa_call_summary_t::remove, initialize_growth_caches,
11117 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
11118 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
11119 mark_modified, unmodified_parm_1, unmodified_parm,
11120 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
11121 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
11122 compute_bb_predicates, will_be_nonconstant_expr_predicate,
11123 will_be_nonconstant_predicate, record_modified_bb_info,
11124 get_minimal_bb, record_modified, param_change_prob,
11125 phi_result_unknown_predicate, predicate_for_phi_result,
11126 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
11127 estimate_function_body_sizes, compute_inline_parameters,
11128 compute_inline_parameters_for_curren, pass_data_inline_parameters,
11129 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
11130 inline_update_callee_summaries, remap_edge_change_prob,
11131 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
11132 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
11133 inline_analyze_function, inline_summary_t::insert,
11134 inline_generate_summary, read_ipa_call_summary, inline_read_section,
11135 inline_read_summary, write_ipa_call_summary, inline_write_summary,
11136 inline_free_summary): Move to ipa-fnsummary.h
11137 (predicate_t): Remove.
11138 * ipa-fnsummary.c: New file.
11139 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
11140 (enum inline_hints_vals, inline_hints, agg_position_info,
11141 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
11142 inline_summaries, ipa_call_summary, ipa_call_summary_t,
11143 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
11144 dump_inline_summary, dump_inline_hints, inline_generate_summary,
11145 inline_read_summary, inline_write_summary, inline_free_summary,
11146 inline_analyze_function, initialize_inline_failed,
11147 inline_merge_summary, inline_update_overall_summary,
11148 compute_inline_parameters): Move to ipa-fnsummary.h
11149 * ipa-fnsummary.h: New file.
11150 * ipa-inline-transform.h: Include ipa-inline.h.
11151 * ipa-inline.c: LIkewise.
11152
11153 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11154
11155 * ipa-inline.c (edge_badness): Use inlined_time instead of
11156 inline_summaries->get.
11157
11158 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11159
11160 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
11161
11162 2017-05-22 Nathan Sidwell <nathan@acm.org>
11163
11164 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
11165 (fdump-lang): Document 'raw' option.
11166 * dumpfile.h (TDI_tu): Delete.
11167 * dumpfile.c (dump_files): Remove translation-unit.
11168 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
11169
11170 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
11171
11172 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
11173 command option from $(AWK) call.
11174 * config/avr/genmultilib.awk: Simplify and rewrite so that it
11175 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
11176 [FORMAT]: Remove handling of variable.
11177 * config/avr/t-multilib: Regenerate.
11178
11179 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11180
11181 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
11182 self_time.
11183 (dump_inline_summary): Do not print self_time.
11184 (estimate_function_body_sizes): Do not set self_time.
11185 (compute_inline_parameters): Likewise.
11186 (inline_read_section, inline_write_summary): Do not stream self_time.
11187 * ipa-inline.h (inline_summary): Drop self_time.
11188
11189 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11190
11191 * ipa-inline-analysis.c (account_size_time): Rename to ...
11192 (inline_summary::account_size_time): ... this one.
11193 (reset_ipa_call_summary): Turn to ...
11194 (ipa_call_summary::reset): ... this one.
11195 (reset_inline_summary): Turn to ...
11196 (inline_summary::reset): ... this one.
11197 (inline_summary_t::remove): Update.
11198 (inline_summary_t::duplicate): Update.
11199 (ipa_call_summary_t::remove): Update.
11200 (dump_inline_summary): Update.
11201 (estimate_function_body_sizes): Update.
11202 (compute_inline_parameters): Update.
11203 (estimate_node_size_and_time): Update.
11204 (inline_merge_summary): Update.
11205 (inline_update_overall_summary): Update.
11206 (inline_read_section): Update.
11207 (inline_write_summary): Update.
11208 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
11209 add account_size_time and reset member functions.
11210 (ipa_call_summary): Add reset function.
11211 * ipa-predicate.h (predicate::operator &): Constify.
11212
11213 2017-05-22 Richard Biener <rguenther@suse.de>
11214
11215 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
11216
11217 2017-05-19 Jason Merrill <jason@redhat.com>
11218
11219 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
11220
11221 2017-05-19 Marek Polacek <polacek@redhat.com>
11222
11223 PR sanitizer/80800
11224 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
11225 TYPE_OVERFLOW_WRAPS checks.
11226
11227 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
11228
11229 * tree-core.h (enum omp_clause_default_kind): Add
11230 "OMP_CLAUSE_DEFAULT_PRESENT".
11231 * tree-pretty-print.c (dump_omp_clause): Handle it.
11232 * gimplify.c (enum gimplify_omp_var_data): Add
11233 "GOVD_MAP_FORCE_PRESENT".
11234 (gimplify_adjust_omp_clauses_1): Map it to
11235 "GOMP_MAP_FORCE_PRESENT".
11236 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
11237
11238 * gimplify.c (oacc_default_clause): Clarify.
11239
11240 2017-05-19 Nathan Sidwell <nathan@acm.org>
11241
11242 LANG_HOOK_REGISTER_DUMPS
11243 * toplev.c (general_init): Call register dump lang hook.
11244 * doc/invoke.texi: Document -fdump-lang option family.
11245 * dumpfile.c (dump_files): Remove class dump here.
11246 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
11247 * dumpfile.h (tree_dump_index): Remove TDI_class.
11248 * langhooks-def.h (lhd_register_dumps): Declare.
11249 (LANG_HOOKS_REGISTER_DUMPS): Define.
11250 (LANG_HOOKS_INITIALIZER): Add it.
11251 * langhooks.c (lhd_register_dumps): Define.
11252 * langhooks.h (struct lang_hooks): Add register_dumps.
11253
11254 2017-05-19 Nathan Sidwell <nathan@acm.org>
11255
11256 * context.h (context::set_passes): New.
11257 * context.c (context::context): Do not create pass manager.
11258 * toplev.c (general_init): Create pass manager here.
11259
11260 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
11261
11262 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
11263 use this splitter if two add or or instructions would also work for
11264 the constant we want to generate.
11265
11266 2017-05-19 Richard Biener <rguenther@suse.de>
11267
11268 PR build/80821
11269 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
11270 predicate evaluation.
11271
11272 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
11273
11274 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
11275 add ctor.
11276 * ipa-inline.c (want_inline_small_function_p): Do not cast to
11277 unsigned.
11278
11279 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
11280
11281 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
11282 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
11283 (inline_edge_summary_vec): Turn into ...
11284 (ipa_call_summaries): ... this one.
11285 (redirect_to_unreachable, edge_set_predicate,
11286 evaluate_properties_for_edge, inline_summary_alloc,
11287 reset_ipa_call_summary, reset_inline_summary,
11288 inline_summary_t::duplicate): Update.
11289 (inline_edge_duplication_hook): Turn to ...
11290 (ipa_call_summary_t::duplicate): ... this one.
11291 (inline_edge_removal_hook): Turn to ...
11292 (ipa_call_summary_t::remove): ... this one.
11293 (dump_inline_edge_summary): Turn to ...
11294 (dump_ipa_call_summary): ... this one.
11295 (estimate_function_body_sizes): Update.
11296 (inline_update_callee_summaries): Update.
11297 (remap_edge_change_prob): Update.
11298 (remap_edge_summaries): Update.
11299 (inline_merge_summary): Update.
11300 (do_estimate_edge_time): Update.
11301 (inline_generate_summary): Update.
11302 (inline_read_section): Update.
11303 (inline_read_summary): Update.
11304 (inline_free_summary): Update.
11305 * ipa-inline.c (can_inline_edge_p): Update.
11306 (compute_inlined_call_time): Update.
11307 (want_inline_small_function_p): Update.
11308 (edge_badness): Update.
11309 (early_inliner): Update.
11310 * ipa-inline.h (inline_edge_summary): Turn to ...
11311 (ipa_call_summary): ... this one.
11312 (ipa_call_summary_t): New class.
11313 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
11314 (ipa_call_summaries): New.
11315 (inline_edge_summary): Remove.
11316 (estimate_edge_growth): Update.
11317 * ipa-profile.c (ipa_propagate_frequency_1): Update.
11318 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
11319 * ipa-split.c (execute_split_functions): Update.
11320 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
11321
11322 2017-05-19 Richard Biener <rguenther@suse.de>
11323
11324 PR middle-end/80764
11325 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
11326
11327 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
11328
11329 * config/rs6000/rs6000.c (struct machine_function): Add field
11330 fpr_is_wrapped_separately.
11331 (rs6000_get_separate_components): Use 64 components. Handle the
11332 new FPR components.
11333 (rs6000_components_for_bb): Handle the FPR components.
11334 (rs6000_emit_prologue_components): Handle the FPR components.
11335 (rs6000_emit_epilogue_components): Handle the FPR components.
11336 (rs6000_set_handled_components): Handle the FPR components.
11337 (rs6000_emit_prologue): Don't output prologue code for those FPRs
11338 that are already separately shrink-wrapped.
11339 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
11340 that are already separately shrink-wrapped.
11341
11342 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
11343
11344 PR target/80510
11345 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
11346 New predicate.
11347
11348 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
11349 (define_peephole2 for Altivec d-form load): Add peepholes to catch
11350 cases where the register allocator uses a move and an offsettable
11351 memory operation to/from a FPR register on ISA 2.06/2.07.
11352 (define_peephole2 for Altivec d-form store): Likewise.
11353
11354 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
11355
11356 PR target/80799
11357 * config/i386/mmx.md (*mov<mode>_internal): Enable
11358 alternatives 11, 12, 13 and 14 also for 32bit targets.
11359 Remove alternatives 15, 16, 17 and 18.
11360 * config/i386/sse.md (vec_concatv2di): Change
11361 alternative (!x, *y) to (x, ?!*Yn).
11362
11363 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
11364
11365 * dumpfile.h (enum dump_kind): Remove stray comma.
11366
11367 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
11368
11369 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
11370 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
11371 predicate::num_conditions
11372 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
11373 (CHANGED): turn into predicate::changed.
11374 (agg_position_info): Move to ipa-predicate.h
11375 (add_condition, predicate::add_clause, predicate::operator &=,
11376 predicate::or_with, predicate::evaluate, predicate::probability,
11377 dump_condition, dump_clause, predicate::dump,
11378 predicate::remap_after_duplication, predicate::remap_after_inlining,
11379 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
11380 (evaluate_conditions_for_known_args): Update.
11381 (set_cond_stmt_execution_predicate): Update.
11382 * ipa-inline.h: Include ipa-predicate.h
11383 (condition, inline_param_summary, conditions, agg_position_info,
11384 predicate): Move to ipa-predicate.h
11385 * ipa-predicate.c: New file.
11386 * ipa-predicate.h: New file.
11387
11388 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
11389
11390 * final.c (leaf_function_p): Check we are not in a sequence.
11391
11392 2017-05-18 Martin Liska <mliska@suse.cz>
11393
11394 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
11395 * dumpfile.c (dump_register): Use new enum dump_kind.
11396 (get_dump_file_name): Likewise.
11397 (dump_enable_all): Likewise.
11398 (dump_switch_p_1): Likewise.
11399 (enable_rtl_dump_file): Remove usage of TDF_RTL.
11400 * dumpfile.h (enum dump_kind): New enum type.
11401 (struct dump_file_info): Create constructor and
11402 format fields and comments.
11403 * passes.c (pass_manager::register_one_dump_file):
11404 Use num dump_kind.
11405 * statistics.c (statistics_early_init): Likewise.
11406 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
11407 TDF_TREE with TDF_SLIM.
11408 (gather_memory_references_ref): Likewise.
11409
11410 2017-05-18 Martin Liska <mliska@suse.cz>
11411
11412 * vec.h (struct vnull): Use it.
11413
11414 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
11415
11416 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
11417 (true_predicate, false_predicate, true_predicate_p,
11418 false_predicate_p): Remove.
11419 (single_cond_predicate, not_inlined_predicate): Turn to member function
11420 in ipa-inline.h
11421 (add_condition): Update.
11422 (add_clause): Turn to...
11423 (predicate::add_clause): ... this one; update; allow passing NULL
11424 as parameter.
11425 (and_predicates): Turn to ...
11426 (predicate::operator &=): ... this one.
11427 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
11428 (or_predicates): Turn to ...
11429 (predicate::or_with): ... this one.
11430 (evaluate_predicate): Turn to ...
11431 (predicate::evaluate): ... this one.
11432 (predicate_probability): Turn to ...
11433 (predicate::probability): ... this one.
11434 (dump_condition): Update.
11435 (dump_predicate): Turn to ...
11436 (predicate::dump): ... this one.
11437 (account_size_time): Update.
11438 (edge_set_predicate): Update.
11439 (set_hint_predicate): UPdate.
11440 (evaluate_conditions_for_known_args): Update.
11441 (evaluate_properties_for_edge): Update.
11442 (remap_predicate_after_duplication): Turn to...
11443 (predicate::remap_after_duplication): ... this one.
11444 (remap_hint_predicate_after_duplication): Update.
11445 (inline_summary_t::duplicate): UPdate.
11446 (dump_inline_edge_summary): Update.
11447 (dump_inline_summary): Update.
11448 (set_cond_stmt_execution_predicate): Update.
11449 (set_switch_stmt_execution_predicate): Update.
11450 (compute_bb_predicates): Update.
11451 (will_be_nonconstant_expr_predicate): Update.
11452 (will_be_nonconstant_predicate): Update.
11453 (phi_result_unknown_predicate): Update.
11454 (predicate_for_phi_result): Update.
11455 (array_index_predicate): Update.
11456 (estimate_function_body_sizes): Update.
11457 (estimate_node_size_and_time): Update.
11458 (estimate_ipcp_clone_size_and_time): Update.
11459 (remap_predicate): Rename to ...
11460 (predicate::remap_after_inlining): ... this one.
11461 (remap_hint_predicate): Update.
11462 (inline_merge_summary): Update.
11463 (inline_update_overall_summary): Update.
11464 (estimate_size_after_inlining): Update.
11465 (read_predicate): Rename to ...
11466 (predicate::stream_in): ... this one.
11467 (read_inline_edge_summary): Update.
11468 (write_predicate): Rename to ...
11469 (predicate::stream_out): ... this one.
11470 (write_inline_edge_summary): Update.
11471 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
11472 (clause_t): Turn to uint32_t
11473 (predicate): Turn to class; implement constructor and operators
11474 ==, !=, &
11475 (size_time_entry): Update.
11476 (inline_summary): Update.
11477 (inline_edge_summary): Update.
11478
11479 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
11480
11481 * fold-const.c (fold_binary_loc): Move transformation...
11482 * match.pd (C - X CMP X): ... here.
11483
11484 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
11485
11486 * config/sparc/sparc.c (sparc_option_override): Set function
11487 alignment for -mcpu=niagara7 to 64 to match the I$ line.
11488 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
11489 latency to 1.
11490 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
11491 latency to 2.
11492 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
11493
11494 2017-05-18 Marek Polacek <polacek@redhat.com>
11495
11496 PR sanitizer/80797
11497 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
11498 (pass_ubsan::execute): Call gimple_assign_single_p instead of
11499 gimple_assign_load_p.
11500
11501 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
11502
11503 PR middle-end/80692
11504 * real.c (do_compare): Give decimal_do_compare preference over
11505 comparing just the signs.
11506
11507 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
11508
11509 * doc/md.texi (Canonicalization of Instructions): Describe the
11510 canonical form of instructions that inherently set a condition
11511 code register.
11512
11513 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
11514
11515 PR middle-end/80775
11516 * tree-cfg.c: Move deletion of unreachable case statements to after
11517 the merging of consecutive case labels.
11518
11519 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
11520
11521 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
11522 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
11523 restoring of callee-saved registers.
11524
11525 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
11526
11527 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
11528 * config/visium/visium.c (single_set_and_flags): Likewise.
11529 * config/visium/visium.md (Substitutions): Likewise.
11530
11531 2017-05-17 Martin Liska <mliska@suse.cz>
11532
11533 * cfg.c: Introduce dump_flags_t type and
11534 use it instead of int type.
11535 * cfg.h: Likewise.
11536 * cfghooks.c: Likewise.
11537 * cfghooks.h (struct cfg_hooks): Likewise.
11538 * cfgrtl.c: Likewise.
11539 * cfgrtl.h: Likewise.
11540 * cgraph.c (cgraph_node::get_body): Likewise.
11541 * coretypes.h: Likewise.
11542 * domwalk.c: Likewise.
11543 * domwalk.h: Likewise.
11544 * dumpfile.c (struct dump_option_value_info): Likewise.
11545 (dump_enable_all): Likewise.
11546 (dump_switch_p_1): Likewise.
11547 (opt_info_switch_p): Likewise.
11548 * dumpfile.h (enum tree_dump_index): Likewise.
11549 (struct dump_file_info): Likewise.
11550 * genemit.c: Likewise.
11551 * generic-match-head.c: Likewise.
11552 * gengtype.c (open_base_files): Likewise.
11553 * gimple-pretty-print.c: Likewise.
11554 * gimple-pretty-print.h: Likewise.
11555 * graph.c (print_graph_cfg): Likewise.
11556 * graphite-scop-detection.c (dot_all_sese): Likewise.
11557 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
11558 * loop-unroll.c (report_unroll): Likewise.
11559 * passes.c (pass_manager::register_one_dump_file): Likewise.
11560 * print-tree.c: Likewise.
11561 * statistics.c: Likewise.
11562 * tree-cfg.c: Likewise.
11563 * tree-cfg.h: Likewise.
11564 * tree-dfa.c: Likewise.
11565 * tree-dfa.h: Likewise.
11566 * tree-dump.c (dump_function): Likewise.
11567 * tree-dump.h (struct dump_info): Likewise.
11568 * tree-pretty-print.c: Likewise.
11569 * tree-pretty-print.h: Likewise.
11570 * tree-ssa-live.c: Likewise.
11571 * tree-ssa-live.h: Likewise.
11572 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
11573 * tree-vect-loop.c: Likewise.
11574 * tree-vect-slp.c: Likewise.
11575
11576 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
11577 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11578
11579 PR tree-optimization/80457
11580 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
11581 of all arguments to a statement as scalar_to_vec operations.
11582 (vectorizable_call): Adjust call to vect_model_simple_cost for
11583 new parameter.
11584 (vectorizable_conversion): Likewise.
11585 (vectorizable_assignment): Likewise.
11586 (vectorizable_shift): Likewise.
11587 (vectorizable_operation): Likewise.
11588 (vectorizable_comparison): Likewise.
11589 (vect_is_simple_cond): Record the def types for operands.
11590 (vectorizable_condition): Likewise, call vect_model_simple_cost.
11591 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
11592 for statement argument count.
11593
11594 2017-05-16 Carl Love <cel@us.ibm.com>
11595
11596 * config/rs6000/rs6000-c: Add support for built-in functions
11597 vector unsigned long long vec_bperm (vector unsigned long long,
11598 vector unsigned char)
11599 vector signed long long vec_mule (vector signed int,
11600 vector signed int)
11601 vector unsigned long long vec_mule (vector unsigned int,
11602 vector unsigned int)
11603 vector signed long long vec_mulo (vector signed int,
11604 vector signed int)
11605 vector unsigned long long vec_mulo (vector unsigned int,
11606 vector unsigned int)
11607 vector signed char vec_sldw (vector signed char,
11608 vector signed char,
11609 const int)
11610 vector unsigned char vec_sldw (vector unsigned char,
11611 vector unsigned char,
11612 const int)
11613 vector signed short vec_sldw (vector signed short,
11614 vector signed short,
11615 const int)
11616 vector unsigned short vec_sldw (vector unsigned short,
11617 vector unsigned short,
11618 const int)
11619 vector signed int vec_sldw (vector signed int,
11620 vector signed int,
11621 const int)
11622 vector unsigned int vec_sldw (vector unsigned int,
11623 vector unsigned int,
11624 const int)
11625 vector signed long long vec_sldw (vector signed long long,
11626 vector signed long long,
11627 const int)
11628 vector unsigned long long vec_sldw (vector unsigned long long,
11629 vector unsigned long long,
11630 const int)
11631 * config/rs6000/rs6000-c: Add support for built-in functions
11632 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
11633 * config/rs6000/altivec.h: Add defintion for vec_sldw.
11634 * doc/extend.texi: Update the built-in documentation for the
11635 new built-in functions.
11636
11637 2017-05-16 Marek Polacek <polacek@redhat.com>
11638
11639 PR sanitizer/80536
11640 PR sanitizer/80386
11641 * tree.c (save_expr): Don't fold the expression.
11642
11643 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
11644
11645 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
11646 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
11647 and (?*y,m). Update insn attributes.
11648
11649 2017-05-16 Martin Liska <mliska@suse.cz>
11650
11651 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
11652 flags argument of print_gimple_stmt, print_gimple_expr,
11653 print_generic_stmt and print_generic_expr.
11654 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
11655 * coretypes.h: Likewise.
11656 * except.c (dump_eh_tree): Likewise.
11657 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11658 * gimple-pretty-print.h: Likewise.
11659 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
11660 (backprop::push_to_worklist): Likewise.
11661 (backprop::pop_from_worklist): Likewise.
11662 (backprop::process_use): Likewise.
11663 (backprop::intersect_uses): Likewise.
11664 (note_replacement): Likewise.
11665 * gimple-ssa-store-merging.c
11666 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
11667 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
11668 (pass_store_merging::execute): Likewise.
11669 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
11670 (ssa_base_cand_dump_callback): Likewise.
11671 (dump_incr_vec): Likewise.
11672 (replace_refs): Likewise.
11673 (replace_mult_candidate): Likewise.
11674 (create_add_on_incoming_edge): Likewise.
11675 (create_phi_basis): Likewise.
11676 (insert_initializers): Likewise.
11677 (all_phi_incrs_profitable): Likewise.
11678 (introduce_cast_before_cand): Likewise.
11679 (replace_one_candidate): Likewise.
11680 * gimplify.c (gimplify_expr): Likewise.
11681 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
11682 (set_rename): Likewise.
11683 (rename_uses): Likewise.
11684 (copy_loop_phi_nodes): Likewise.
11685 (add_close_phis_to_merge_points): Likewise.
11686 (copy_loop_close_phi_args): Likewise.
11687 (copy_cond_phi_args): Likewise.
11688 (graphite_copy_stmts_from_block): Likewise.
11689 (translate_pending_phi_nodes): Likewise.
11690 * graphite-poly.c (print_pdr): Likewise.
11691 (dump_gbb_cases): Likewise.
11692 (dump_gbb_conditions): Likewise.
11693 (print_scop_params): Likewise.
11694 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
11695 (build_cross_bb_scalars_use): Likewise.
11696 (gather_bbs::before_dom_children): Likewise.
11697 * hsa-dump.c (dump_hsa_immed): Likewise.
11698 * ipa-cp.c (print_ipcp_constant_value): Likewise.
11699 (get_replacement_map): Likewise.
11700 * ipa-inline-analysis.c (dump_condition): Likewise.
11701 (estimate_function_body_sizes): Likewise.
11702 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
11703 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
11704 * ipa-prop.c (ipa_dump_param): Likewise.
11705 (ipa_print_node_jump_functions_for_edge): Likewise.
11706 (ipa_modify_call_arguments): Likewise.
11707 (ipa_modify_expr): Likewise.
11708 (ipa_dump_param_adjustments): Likewise.
11709 (ipa_dump_agg_replacement_values): Likewise.
11710 (ipcp_modif_dom_walker::before_dom_children): Likewise.
11711 * ipa-pure-const.c (check_stmt): Likewise.
11712 (pass_nothrow::execute): Likewise.
11713 * ipa-split.c (execute_split_functions): Likewise.
11714 * omp-offload.c (dump_oacc_loop_part): Likewise.
11715 (dump_oacc_loop): Likewise.
11716 * trans-mem.c (tm_log_emit): Likewise.
11717 (tm_memopt_accumulate_memops): Likewise.
11718 (dump_tm_memopt_set): Likewise.
11719 (dump_tm_memopt_transform): Likewise.
11720 * tree-cfg.c (gimple_verify_flow_info): Likewise.
11721 (print_loop): Likewise.
11722 * tree-chkp-opt.c (chkp_print_addr): Likewise.
11723 (chkp_gather_checks_info): Likewise.
11724 (chkp_get_check_result): Likewise.
11725 (chkp_remove_check_if_pass): Likewise.
11726 (chkp_use_outer_bounds_if_possible): Likewise.
11727 (chkp_reduce_bounds_lifetime): Likewise.
11728 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
11729 (chkp_mark_completed_bounds): Likewise.
11730 (chkp_register_incomplete_bounds): Likewise.
11731 (chkp_mark_invalid_bounds): Likewise.
11732 (chkp_maybe_copy_and_register_bounds): Likewise.
11733 (chkp_build_returned_bound): Likewise.
11734 (chkp_get_bound_for_parm): Likewise.
11735 (chkp_build_bndldx): Likewise.
11736 (chkp_get_bounds_by_definition): Likewise.
11737 (chkp_generate_extern_var_bounds): Likewise.
11738 (chkp_get_bounds_for_decl_addr): Likewise.
11739 * tree-chrec.c (chrec_apply): Likewise.
11740 * tree-data-ref.c (dump_data_reference): Likewise.
11741 (dump_subscript): Likewise.
11742 (dump_data_dependence_relation): Likewise.
11743 (analyze_overlapping_iterations): Likewise.
11744 * tree-inline.c (expand_call_inline): Likewise.
11745 (tree_function_versioning): Likewise.
11746 * tree-into-ssa.c (dump_defs_stack): Likewise.
11747 (dump_currdefs): Likewise.
11748 (dump_names_replaced_by): Likewise.
11749 (dump_update_ssa): Likewise.
11750 (update_ssa): Likewise.
11751 * tree-object-size.c (pass_object_sizes::execute): Likewise.
11752 * tree-parloops.c (build_new_reduction): Likewise.
11753 (try_create_reduction_list): Likewise.
11754 (ref_conflicts_with_region): Likewise.
11755 (oacc_entry_exit_ok_1): Likewise.
11756 (oacc_entry_exit_single_gang): Likewise.
11757 * tree-pretty-print.h: Likewise.
11758 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
11759 (get_scalar_evolution): Likewise.
11760 (add_to_evolution): Likewise.
11761 (get_loop_exit_condition): Likewise.
11762 (analyze_evolution_in_loop): Likewise.
11763 (analyze_initial_condition): Likewise.
11764 (analyze_scalar_evolution): Likewise.
11765 (instantiate_scev): Likewise.
11766 (number_of_latch_executions): Likewise.
11767 (gather_chrec_stats): Likewise.
11768 (final_value_replacement_loop): Likewise.
11769 (scev_const_prop): Likewise.
11770 * tree-sra.c (dump_access): Likewise.
11771 (disqualify_candidate): Likewise.
11772 (create_access): Likewise.
11773 (reject): Likewise.
11774 (maybe_add_sra_candidate): Likewise.
11775 (create_access_replacement): Likewise.
11776 (analyze_access_subtree): Likewise.
11777 (analyze_all_variable_accesses): Likewise.
11778 (sra_modify_assign): Likewise.
11779 (initialize_constant_pool_replacements): Likewise.
11780 (find_param_candidates): Likewise.
11781 (decide_one_param_reduction): Likewise.
11782 (replace_removed_params_ssa_names): Likewise.
11783 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
11784 * tree-ssa-copy.c (dump_copy_of): Likewise.
11785 (copy_prop_visit_cond_stmt): Likewise.
11786 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
11787 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
11788 (record_equivalences_from_stmt): Likewise.
11789 * tree-ssa-dse.c (compute_trims): Likewise.
11790 (delete_dead_call): Likewise.
11791 (delete_dead_assignment): Likewise.
11792 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
11793 (forward_propagate_into_cond): Likewise.
11794 (pass_forwprop::execute): Likewise.
11795 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
11796 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
11797 Likewise.
11798 (move_computations_worker): Likewise.
11799 (execute_sm): Likewise.
11800 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
11801 (remove_exits_and_undefined_stmts): Likewise.
11802 (remove_redundant_iv_tests): Likewise.
11803 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
11804 (adjust_iv_update_pos): Likewise.
11805 * tree-ssa-math-opts.c (bswap_replace): Likewise.
11806 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
11807 (value_replacement): Likewise.
11808 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
11809 * tree-ssa-pre.c (print_pre_expr): Likewise.
11810 (get_representative_for): Likewise.
11811 (create_expression_by_pieces): Likewise.
11812 (insert_into_preds_of_block): Likewise.
11813 (eliminate_insert): Likewise.
11814 (eliminate_dom_walker::before_dom_children): Likewise.
11815 (eliminate): Likewise.
11816 (remove_dead_inserted_code): Likewise.
11817 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
11818 * tree-ssa-reassoc.c (get_rank): Likewise.
11819 (eliminate_duplicate_pair): Likewise.
11820 (eliminate_plus_minus_pair): Likewise.
11821 (eliminate_not_pairs): Likewise.
11822 (undistribute_ops_list): Likewise.
11823 (eliminate_redundant_comparison): Likewise.
11824 (update_range_test): Likewise.
11825 (optimize_range_tests_var_bound): Likewise.
11826 (optimize_vec_cond_expr): Likewise.
11827 (rewrite_expr_tree): Likewise.
11828 (rewrite_expr_tree_parallel): Likewise.
11829 (linearize_expr): Likewise.
11830 (break_up_subtract): Likewise.
11831 (linearize_expr_tree): Likewise.
11832 (attempt_builtin_powi): Likewise.
11833 (attempt_builtin_copysign): Likewise.
11834 (transform_stmt_to_copy): Likewise.
11835 (transform_stmt_to_multiply): Likewise.
11836 (dump_ops_vector): Likewise.
11837 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
11838 (print_scc): Likewise.
11839 (set_ssa_val_to): Likewise.
11840 (visit_reference_op_store): Likewise.
11841 (visit_use): Likewise.
11842 (sccvn_dom_walker::before_dom_children): Likewise.
11843 (run_scc_vn): Likewise.
11844 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
11845 Likewise.
11846 (expr_hash_elt::print): Likewise.
11847 (const_and_copies::pop_to_marker): Likewise.
11848 (const_and_copies::record_const_or_copy_raw): Likewise.
11849 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
11850 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
11851 (dump_predicates): Likewise.
11852 (find_uninit_use): Likewise.
11853 (warn_uninitialized_phi): Likewise.
11854 (pass_late_warn_uninitialized::execute): Likewise.
11855 * tree-ssa.c (verify_vssa): Likewise.
11856 (verify_ssa): Likewise.
11857 (maybe_optimize_var): Likewise.
11858 * tree-vrp.c (dump_value_range): Likewise.
11859 (dump_all_value_ranges): Likewise.
11860 (dump_asserts_for): Likewise.
11861 (register_edge_assert_for_2): Likewise.
11862 (vrp_visit_cond_stmt): Likewise.
11863 (vrp_visit_switch_stmt): Likewise.
11864 (vrp_visit_stmt): Likewise.
11865 (vrp_visit_phi_node): Likewise.
11866 (simplify_cond_using_ranges_1): Likewise.
11867 (fold_predicate_in): Likewise.
11868 (evrp_dom_walker::before_dom_children): Likewise.
11869 (evrp_dom_walker::push_value_range): Likewise.
11870 (evrp_dom_walker::pop_value_range): Likewise.
11871 (execute_early_vrp): Likewise.
11872
11873 2017-05-16 Richard Biener <rguenther@suse.de>
11874
11875 * dwarf2out.c (loc_list_from_tree_1): Do not create
11876 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
11877
11878 2017-05-16 Richard Biener <rguenther@suse.de>
11879
11880 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
11881 just generated.
11882 (note_variable_value_in_expr): If we resolved the decl ref
11883 do not push to the stack.
11884
11885 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
11886
11887 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
11888 operations in fast-math mode.
11889 (vaddq_f16): Likewise.
11890 (vmul_f16): Likewise.
11891 (vmulq_f16): Likewise.
11892 (vsub_f16): Likewise.
11893 (vsubq_f16): Likewise.
11894 * config/arm/neon.md (add<mode>3): New.
11895 (sub<mode>3): New.
11896 (fma:<VH:mode>3): New. Also remove outdated comment.
11897 (mul<mode>3): New.
11898
11899 2017-05-16 Martin Liska <mliska@suse.cz>
11900
11901 PR ipa/79849.
11902 PR ipa/79850.
11903 * ipa-devirt.c (warn_types_mismatch): Fix typo.
11904 (odr_types_equivalent_p): Likewise.
11905
11906 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
11907
11908 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
11909
11910 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
11911
11912 PR target/80425
11913 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
11914 non-interunit SSE move alternatives with '?'.
11915 (zero-extendsidi peephole2): New peephole to skip intermediate
11916 general register in SSE zero-extend sequence.
11917
11918 2017-05-15 Jeff Law <law@redhat.com>
11919
11920 * reorg.c (relax_delay_slots): Create a new variable to hold
11921 the temporary target rather than clobbering TARGET_LABEL.
11922
11923 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
11924 missing argument to extract_bit_field call.
11925 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
11926
11927 2017-05-15 Martin Liska <mliska@suse.cz>
11928
11929 PR driver/31468
11930 * gcc.c (process_command): Do not allow empty argument of -o option.
11931
11932 2017-05-15 Renlin Li <renlin.li@arm.com>
11933
11934 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
11935 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
11936 * config/aarch64/constraints.md (Usf): Add long call check.
11937 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
11938 (call_value): Likewise.
11939 (sibcall): Likewise.
11940 (sibcall_value): Likewise.
11941 (call_insn): New.
11942 (call_value_insn): New.
11943 (sibcall_insn): Update rtx pattern.
11944 (sibcall_value_insn): Likewise.
11945 (call_internal): Remove.
11946 (call_value_internal): Likewise.
11947 (sibcall_internal): Likewise.
11948 (sibcall_value_internal): Likewise.
11949 (call_reg): Likewise.
11950 (call_symbol): Likewise.
11951 (call_value_reg): Likewise.
11952 (call_value_symbol): Likewise.
11953
11954 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
11955
11956 PR target/80600
11957 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
11958
11959 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
11960
11961 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
11962 compatible with CCGOCmode and with CCZmode.
11963
11964 2017-05-14 Martin Sebor <msebor@redhat.com>
11965
11966 PR middle-end/77671
11967 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
11968 (gimple_fold_builtin_snprintf): Same.
11969 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
11970 (gimple_fold_builtin_snprintf): Same.
11971 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
11972 of character types.
11973 (is_call_safe): New function.
11974 (try_substitute_return_value): Call it.
11975 (try_simplify_call): New function.
11976 (pass_sprintf_length::handle_gimple_call): Call it.
11977
11978 2017-05-14 Martin Sebor <msebor@redhat.com>
11979
11980 PR middle-end/80669
11981 * builtins.c (expand_builtin_stpncpy): Simplify.
11982
11983 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
11984
11985 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
11986 * config/i386/i386.h
11987 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
11988 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
11989 (struct machine_function): Add new members call_ms2sysv,
11990 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
11991 (struct machine_frame_state): New fields sp_realigned and
11992 sp_realigned_offset.
11993 * config/i386/i386.c
11994 (enum xlogue_stub): New enum.
11995 (enum xlogue_stub_sets): New enum.
11996 (class xlogue_layout): New class.
11997 (struct ix86_frame): New fields stack_realign_allocate_offset,
11998 stack_realign_offset and outlined_save_offset. Modify comments to
11999 detail stack layout when using out-of-line stubs.
12000 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
12001 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
12002 -mcall-ms2sysv-xlogues.
12003 (stub_managed_regs): New static variable.
12004 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
12005 registers managed by out-of-line stub.
12006 (disable_call_ms2sysv_xlogues): New function.
12007 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
12008 m->call_ms2sysv when appropriate and compute frame layout for
12009 out-of-line stubs.
12010 (sp_valid_at, fp_valid_at): New inline functions.
12011 (choose_basereg): New function.
12012 (choose_baseaddr): Add align parameter, use choose_basereg and modify
12013 all callers.
12014 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
12015 Use align parameter of choose_baseaddr to generated aligned SSE movs
12016 when possible.
12017 (pro_epilogue_adjust_stack): Modify to track
12018 machine_frame_state::sp_realigned.
12019 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
12020 (ix86_nsaved_sseregs): Likewise.
12021 (ix86_emit_save_regs): Likewise.
12022 (ix86_emit_save_regs_using_mov): Likewise.
12023 (ix86_emit_save_sse_regs_using_mov): Likewise.
12024 (get_scratch_register_on_entry): Likewise.
12025 (gen_frame_set): New function.
12026 (gen_frame_load): Likewise.
12027 (gen_frame_store): Likewise.
12028 (emit_outlined_ms2sysv_save): Likewise.
12029 (emit_outlined_ms2sysv_restore): Likewise.
12030 (ix86_expand_prologue): Modify stack re-alignment code and call
12031 emit_outlined_ms2sysv_save when appropriate.
12032 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
12033 parameter rtx_insn *insn, which allows the function to be used to only
12034 generate the notes.
12035 (ix86_expand_epilogue): Modify validity checks of frame and stack
12036 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
12037 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
12038 * config/i386/predicates.md
12039 (save_multiple): New predicate.
12040 (restore_multiple): Likewise.
12041 * config/i386/sse.md
12042 (save_multiple<mode>): New pattern.
12043 (save_multiple_realign<mode>): Likewise.
12044 (restore_multiple<mode>): Likewise.
12045 (restore_multiple_and_return<mode>): Likewise.
12046 (restore_multiple_leave_return<mode>): Likewise.
12047 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
12048
12049 2017-05-14 Julia Koval <julia.koval@intel.com>
12050
12051 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
12052 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
12053 (__builtin_ia32_xsetbv): New builtins.
12054 * config/i386/i386.c (ix86_expand_special_args_builtin):
12055 Process new types.
12056 (ix86_expand_builtin): Special expand for new intrinsics.
12057 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
12058 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
12059 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
12060
12061 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12062
12063 * cfganal.c (inverted_post_order_compute): Change argument type
12064 to vec *.
12065 * cfganal.h (inverted_post_order_compute): Adjust prototype.
12066 * df-core.c (rest_of_handle_df_initialize): Adjust.
12067 (rest_of_handle_df_finish): Likewise.
12068 (df_analyze_1): Likewise.
12069 (df_analyze): Likewise.
12070 (loop_inverted_post_order_compute): Change argument to be a vec *.
12071 (df_analyze_loop): Adjust.
12072 (df_get_n_blocks): Likewise.
12073 (df_get_postorder): Likewise.
12074 * df.h (struct df_d): Change field to be a vec.
12075 * lcm.c (compute_laterin): Adjust.
12076 (compute_available): Likewise.
12077 * lra-lives.c (lra_create_live_ranges_1): Likewise.
12078 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
12079 * tree-ssa-pre.c (compute_antic): Likewise.
12080
12081 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12082
12083 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
12084 (depth_first_search::depth_first_search): Change structure init
12085 function to this constructor.
12086 (depth_first_search::add_bb): Rename function to this member.
12087 (depth_first_search::execute): Likewise.
12088 (flow_dfs_compute_reverse_finish): Adjust.
12089
12090 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12091
12092 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
12093 (longest_simple_path): Likewise.
12094 * shrink-wrap.c (spread_components): Likewise.
12095 (disqualify_problematic_components): Likewise.
12096 (emit_common_heads_for_components): Likewise.
12097 (emit_common_tails_for_components): Likewise.
12098 (insert_prologue_epilogue_for_components): Likewise.
12099
12100 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12101
12102 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
12103 auto_sbitmap.
12104
12105 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12106
12107 * df-core.c (df_set_blocks): Start using auto_bitmap.
12108 (df_compact_blocks): Likewise.
12109 * df-problems.c (df_rd_confluence_n): Likewise.
12110 * df-scan.c (df_insn_rescan_all): Likewise.
12111 (df_process_deferred_rescans): Likewise.
12112 (df_update_entry_block_defs): Likewise.
12113 (df_update_exit_block_uses): Likewise.
12114 (df_entry_block_bitmap_verify): Likewise.
12115 (df_exit_block_bitmap_verify): Likewise.
12116 (df_scan_verify): Likewise.
12117 * lra-constraints.c (lra_constraints): Likewise.
12118 (undo_optional_reloads): Likewise.
12119 (lra_undo_inheritance): Likewise.
12120 * lra-remat.c (calculate_gen_cands): Likewise.
12121 (do_remat): Likewise.
12122 * lra-spills.c (assign_spill_hard_regs): Likewise.
12123 (spill_pseudos): Likewise.
12124 * tree-ssa-pre.c (bitmap_set_and): Likewise.
12125 (bitmap_set_subtract_values): Likewise.
12126
12127 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12128
12129 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
12130 management with auto_bitmap.
12131 (fix_inter_tick): Likewise.
12132 (fix_recovery_deps): Likewise.
12133 * ira.c (add_store_equivs): Likewise.
12134 (find_moveable_pseudos): Likewise.
12135 (split_live_ranges_for_shrink_wrap): Likewise.
12136 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
12137 (rtx_reuse_manager::seen_def_p): Likewise.
12138 (rtx_reuse_manager::set_seen_def): Likewise.
12139 * print-rtl.h (class rtx_reuse_manager): Likewise.
12140
12141 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12142
12143 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
12144 lifetime.
12145 (migrate_btr_def): Likewise.
12146 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
12147 * df-core.c (loop_post_order_compute): Likewise.
12148 (loop_inverted_post_order_compute): Likewise.
12149 * hsa-common.h: Likewise.
12150 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
12151 * init-regs.c (initialize_uninitialized_regs): Likewise.
12152 * ipa-inline.c (resolve_noninline_speculation): Likewise.
12153 (inline_small_functions): Likewise.
12154 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
12155 * ira.c (combine_and_move_insns): Likewise.
12156 (build_insn_chain): Likewise.
12157 * loop-invariant.c (find_invariants): Likewise.
12158 * lower-subreg.c (propagate_pseudo_copies): Likewise.
12159 * predict.c (tree_predict_by_opcode): Likewise.
12160 (predict_paths_leading_to): Likewise.
12161 (predict_paths_leading_to_edge): Likewise.
12162 (estimate_loops_at_level): Likewise.
12163 (estimate_loops): Likewise.
12164 * shrink-wrap.c (try_shrink_wrapping): Likewise.
12165 (spread_components): Likewise.
12166 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
12167 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
12168 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
12169 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
12170 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
12171 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
12172 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
12173 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
12174 (mark_threaded_blocks): Likewise.
12175 (thread_through_all_blocks): Likewise.
12176 * tree-ssa.c (verify_ssa): Likewise.
12177 (execute_update_addresses_taken): Likewise.
12178 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
12179
12180 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12181
12182 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
12183 auto_vec.
12184 (post_order_compute): Likewise.
12185 (inverted_post_order_compute): Likewise.
12186 (pre_and_rev_post_order_compute_fn): Likewise.
12187
12188 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12189
12190 * genrecog.c (int_set::int_set): Explicitly construct our
12191 auto_vec base class.
12192 * vec.h (auto_vec::auto_vec): New constructor.
12193
12194 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12195
12196 * bitmap.h (class auto_bitmap): New constructor taking
12197 bitmap_obstack * argument.
12198
12199 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12200
12201 * bitmap.h (class auto_bitmap): Change type of m_bits to
12202 bitmap_head, and adjust ctor / dtor and member operators.
12203
12204 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
12205
12206 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
12207 when returned register mode doesn't match original mode.
12208
12209 2017-05-12 Jeff Law <law@redhat.com>
12210 Jakub Jelinek <jakub@redhat.com>
12211
12212 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
12213 we look for cc setter after the compare-elim changes.
12214 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
12215 within the vector to match what compare-elim now expects.
12216 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
12217 (xorsi3_flags, one_cmplsi2_flags): Likewise.
12218
12219 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
12220 after the compare-elim changes.
12221 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
12222 the vector to match what compare-elim now expects.
12223 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
12224 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
12225 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
12226 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
12227 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
12228
12229 * config/visium/visium.c (single_set_and_flags): Fix where
12230 we look for cc setter after the compare-elim changes.
12231 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
12232 with the vector to match what compare-elim now expects.
12233 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
12234 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
12235 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
12236 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
12237 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
12238 (neg<mode>2_insn_set_overflow): Likewise.
12239
12240 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
12241
12242 PR middle-end/79794
12243 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
12244 maybe_expand_insn call, set ops[0].target. If still set after call,
12245 set alt_rtl. Add extra arg to recursive calls.
12246 (extract_bit_field): Add alt_rtl argument. Pass to
12247 extract_bit_field.
12248 * expmed.h (extract_bit_field): Fix prototype.
12249 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
12250 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
12251 to extract_bit_field_calls.
12252 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
12253 Pass alt_rtl to extract_bit_field calls.
12254 * calls.c (store_unaligned_arguments_into_psuedos)
12255 load_register_parameters): Pass extra NULL to extract_bit_field calls.
12256 * optabs.c (maybe_legitimize_operand): Clear op->target when call
12257 gen_reg_rtx.
12258 * optabs.h (struct expand_operand): Add target bitfield.
12259
12260 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
12261
12262 * compare-elim.c (try_eliminate_compare): Canonicalize
12263 operation with embedded compare to
12264 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
12265 (set (reg) (operation)].
12266
12267 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
12268
12269 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
12270
12271 PR target/80723
12272 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
12273 cost of adding a carry flag for ADC instruction.
12274 [case MINUS]: Ignore the cost of subtracting a carry flag
12275 for SBB instruction.
12276
12277 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
12278
12279 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
12280 and x86intrin.h
12281 * config/rs6000/bmiintrin.h: New file.
12282 * config/rs6000/bmi2intrin.h: New file.
12283 * config/rs6000/x86intrin.h: New file.
12284
12285 2017-05-12 Jeff Law <law@redhat.com>
12286
12287 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
12288 markers.
12289
12290 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
12291
12292 PR middle-end/80707
12293 * tree-cfg.c: Remove cfg edges of unreachable case statements.
12294
12295 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
12296
12297 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
12298 early expansion of vector divide builtins.
12299 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
12300 builtins identified as having unsigned arguments.
12301
12302 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
12303
12304 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
12305 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
12306 expansion of vector logical operations (and, andc, or, xor,
12307 nor, orc, nand).
12308
12309 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
12310
12311 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
12312 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
12313
12314 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
12315
12316 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
12317 early GIMPLE expansion of vector multiplies.
12318
12319 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
12320
12321 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
12322 TARGET_HAVE_MOVT conditional.
12323 (movt splitter): Likewise.
12324
12325 2017-05-12 Richard Biener <rguenther@suse.de>
12326
12327 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
12328 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12329 Fold all stmts not inplace.
12330
12331 2017-05-12 Richard Biener <rguenther@suse.de>
12332
12333 PR tree-optimization/80713
12334 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
12335 inserted_exprs bit for not removed stmts.
12336
12337 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
12338
12339 PR middle-end/69921
12340 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
12341 parallelized" attribute for parallelized OpenACC kernels.
12342 * omp-offload.c (execute_oacc_device_lower): Use it.
12343
12344 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
12345 Set "oacc kernels" attribute.
12346 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
12347 parameter. Adjust all users.
12348 (oacc_fn_attrib_kernels_p): Remove function.
12349 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
12350 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
12351 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
12352 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
12353 assert "oacc kernels" attribute is set.
12354
12355 2017-05-11 Carl Love <cel@us.ibm.com>
12356
12357 * config/rs6000/rs6000-c: Add support for built-in functions
12358 vector unsigned char vec_popcnt (vector signed char)
12359 vector unsigned char vec_popcnt (vector unsigned char)
12360 vector unsigned short vec_popcnt (vector signed short)
12361 vector unsigned short vec_popcnt (vector unsigned short)
12362 vector unsigned int vec_popcnt (vector signed int)
12363 vector unsigned int vec_popcnt (vector unsigned int)
12364 vector unsigned long long vec_popcnt (vector signed long long)
12365 vector unsigned long long vec_popcnt (vector unsigned long long)
12366 vector signed long long vec_slo (vector signed long long,
12367 vector signed char)
12368 vector signed long long vec_slo (vector signed long long,
12369 vector unsigned char)
12370 vector unsigned long long vec_slo (vector unsigned long long,
12371 vector signed char)
12372 vector unsigned long long vec_slo (vector unsigned long long,
12373 vector unsigned char)
12374 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
12375 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
12376 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
12377 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
12378 * doc/extend.texi: Update the built-in documentation file for the
12379 new built-in functions.
12380
12381 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12382
12383 * attribs.h (sorted_attr_string): Move machine independent
12384 functions for target clone support from the i386 port to common
12385 code. Rename ix86_function_versions to common_function_versions.
12386 Rename make_name to make_unique_name.
12387 (common_function_versions): Likewise.
12388 (make_unique_name): Likewise.
12389 (make_dispatcher_decl): Likewise.
12390 (is_function_default_version): Likewise.
12391 * attribs.c (attr_strcmp): Likewise.
12392 (sorted_attr_string): Likewise.
12393 (common_function_versions): Likewise.
12394 (make_unique_name): Likewise.
12395 (make_dispatcher_decl): Likewise.
12396 (is_function_default_version): Likewise.
12397 * config/i386/i386.c (attr_strcmp): Likewise.
12398 (sorted_attr_string): Likewise.
12399 (ix86_function_versions): Likewise.
12400 (make_name): Likewise.
12401 (make_dispatcher_decl): Likewise.
12402 (is_function_default_version): Likewise.
12403 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
12404
12405 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12406
12407 PR target/80695
12408 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
12409 Account for direct move costs for vec_construct of integer
12410 vectors.
12411
12412 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
12413
12414 PR target/80706
12415 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
12416 (UNSPEC_STX_ATOMIC): Ditto.
12417 (loaddi_via_sse): New insn.
12418 (storedi_via_sse): Ditto.
12419 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
12420 Update corresponding peephole2 patterns.
12421 (atomic_storedi_fpu): Ditto.
12422
12423 2017-05-11 Julia Koval <julia.koval@intel.com>
12424
12425 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
12426 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
12427 New intrinsics.
12428 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
12429 (__builtin_ia32_rsqrt14ss_mask): New builtins.
12430 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
12431
12432 2017-05-11 Nathan Sidwell <nathan@acm.org>
12433
12434 * graphite-poly.c: Include dumpfile.h.
12435
12436 * dumpfle.h (dump_function): Declare here ...
12437 * tree-dump.h (dump_function): ... not here.
12438 * dumpfile.c: #include tree-cfg.h.
12439 (dump_function): Move here from ...
12440 * tree-dump.c (dump_function): ... here.
12441 * gimplify.c: #include splay-tree.h, not tree-dump.h.
12442 * graphite-poly.c: Don't include tree-dump.h.
12443 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
12444 * print-tree.c: Likewise.
12445 * stor-layout.c: Likewise.
12446 * tree-nested.c: Likewise.
12447
12448 * dumpfile.c (dump_start): Use TDF_FLAGS.
12449 (dump_enable_all): Fix TDF_KIND check thinko.
12450
12451 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
12452
12453 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12454 array entries to represent two legal parameterizations of the
12455 overloaded __builtin_cmpb function, as represented by the
12456 P6_OV_BUILTIN_CMPB constant.
12457 (altivec_resolve_overloaded_builtin): Add special case handling
12458 for the __builtin_cmpb function, as represented by the
12459 P6_OV_BUILTIN_CMPB constant.
12460 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
12461 (BU_P6_64BIT_2): New macro.
12462 (BU_P6_OVERLOAD_2): New macro
12463 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
12464 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
12465 (CMPB): Add overload support to represent both 32-bit and 64-bit
12466 compare-bytes function.
12467 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12468 support for TARGET_CMPB.
12469 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
12470 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
12471 documentation of the __builtin_cmpb overloaded built-in function.
12472
12473 2017-05-11 Richard Biener <rguenther@suse.de>
12474
12475 PR tree-optimization/80705
12476 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
12477 bases are not vectorizable.
12478
12479 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12480
12481 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
12482 when counting register pressure.
12483
12484 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12485
12486 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
12487 (iv_ca_more_deps): Renamed to ...
12488 (iv_ca_compare_deps): ... this.
12489 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
12490
12491 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12492
12493 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
12494 to ...
12495 (determine_group_iv_costs): ... here.
12496 (find_inv_vars_cb): Record inv var if it's not recorded before.
12497
12498 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12499
12500 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
12501 (get_shiftadd_cost): Ditto.
12502
12503 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12504
12505 * tree-ssa-address.c: Include header file.
12506 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
12507 address.
12508 (add_to_parts): Refactor.
12509 (addr_to_parts): New parameter. Update use of move_hint_to_base.
12510 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
12511 in new order.
12512
12513 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12514
12515 PR tree-optimization/53090
12516 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
12517 COMP_IV_EXPR_2.
12518 (extract_cond_operands): Detect condition with IV on both sides
12519 and return COMP_IV_EXPR_2.
12520 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
12521 (rewrite_use_compare): Simplify by removing call to function
12522 extract_cond_operands.
12523
12524 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12525
12526 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
12527 (extract_cond_operands): Detect condition comparing against non-
12528 invariant bound and return appropriate enum value.
12529 (find_interesting_uses_cond): Update use of extract_cond_operands.
12530 Handle its return value accordingly.
12531 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
12532
12533 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12534
12535 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
12536 nonlinear iv_use computation in loop invariant sensitive way.
12537
12538 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12539
12540 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
12541 (find_iv_candidates): Call relate_compare_use_with_all_cands.
12542
12543 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12544
12545 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
12546 (dump_cand): Support iv_cand.inv_exprs.
12547 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
12548 for candidates.
12549 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
12550 iv_cand.inv_exprs.
12551
12552 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12553
12554 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
12555 from ...
12556 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
12557 as local function. Include necessary header files.
12558 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
12559
12560 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12561
12562 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
12563
12564 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12565
12566 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
12567 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
12568 RSHIFT_EXPR and BIT_NOT_EXPR.
12569
12570 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12571
12572 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
12573 (adjust_setup_cost): New parameter supporting round up adjustment.
12574 (struct address_cost_data): Delete.
12575 (force_expr_to_var_cost): Don't bound cost with spill_cost.
12576 (split_address_cost, ptr_difference_cost): Delete.
12577 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
12578 (struct ainc_cost_data): New struct.
12579 (get_address_cost_ainc): New function.
12580 (get_address_cost, get_computation_cost): Reimplement.
12581 (determine_group_iv_cost_address): Record inv_expr for all uses of
12582 a group.
12583 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
12584 (iv_ca_has_deps): Reimplemented to ...
12585 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
12586 than OLD_CP.
12587 (iv_ca_extend): Call iv_ca_more_deps.
12588
12589 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12590
12591 * tree-ssa-address.c (struct mem_address): Move to header file.
12592 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
12593 * tree-ssa-address.h (struct mem_address): Move from C file.
12594 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
12595
12596 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12597
12598 * tree-affine.h (aff_combination_type): New interface.
12599 (aff_combination_zero_p): Remove static.
12600 (aff_combination_const_p): New interface.
12601 (aff_combination_singleton_var_p): New interfaces.
12602
12603 2017-05-11 Richard Biener <rguenther@suse.de>
12604
12605 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12606 Skip unreachable blocks and destinations.
12607 (eliminate): Move stmt removal and fixup ...
12608 (fini_eliminate): ... here. Skip inserted exprs.
12609 (pass_pre::execute): Move fini_pre after fini_eliminate.
12610 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
12611 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
12612 PRE to get rid of dead code that has invalid SSA form and
12613 split critical edges again.
12614
12615 2017-05-11 Bin Cheng <bin.cheng@arm.com>
12616
12617 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
12618
12619 2017-05-11 Richard Biener <rguenther@suse.de>
12620
12621 * passes.c (execute_function_todo): Verify loops if they are
12622 said to be up-to-date.
12623 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
12624 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
12625
12626 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
12627
12628 PR target/80090
12629 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
12630 handle calling assemble_external ourself.
12631
12632 PR target/79027
12633 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
12634 modes with zero size. Enhance comment.
12635
12636 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12637
12638 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
12639 built-ins for vec_xl and vec_xst with short and char pointer
12640 arguments.
12641
12642 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
12643
12644 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
12645 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
12646 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
12647 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
12648 (_mm_maskz_min_round_ss): New intrinsics.
12649 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
12650 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
12651 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
12652 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
12653 (__builtin_ia32_minss_mask_round): New builtins.
12654 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
12655 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
12656 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
12657 Rename to ...
12658 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
12659 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
12660 Change to ...
12661 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
12662 ... this.
12663
12664 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
12665
12666 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
12667 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
12668 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
12669 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
12670 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
12671 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
12672 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
12673 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
12674 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
12675 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
12676 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
12677 (__builtin_ia32_mulss_mask_round): New builtins.
12678 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
12679 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
12680 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
12681 Rename to ...
12682 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
12683 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
12684 Change to ...
12685 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
12686 ... this.
12687
12688 2017-05-10 Julia Koval <julia.koval@intel.com>
12689
12690 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
12691 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
12692 (_mm256_setr_m128i): New intrinsics.
12693
12694 2017-05-10 Julia Koval <julia.koval@intel.com>
12695
12696 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
12697 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
12698 (_mm_maskz_rcp14_ss): New intrinsics.
12699 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
12700 (__builtin_ia32_rcp14ss_mask): New builtins.
12701 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
12702
12703 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
12704
12705 PR tree-optimization/51513
12706 * tree-cfg.c (gimple_seq_unreachable_p): New function.
12707 (assert_unreachable_fallthru_edge_p): Use it.
12708 (group_case_labels_stmt): Likewise.
12709 * tree-cfg.h: Prototype it.
12710 * stmt.c: Include cfghooks.h and tree-cfg.h.
12711 (emit_case_dispatch_table) <gap_label>: New local variable.
12712 Use it to fill dispatch table gaps.
12713 Test for default_label before updating probabilities.
12714 (expand_case) <default_label>: Remove unneeded initialization.
12715 Test for unreachable default case statement and remove its edge.
12716 Set default_label accordingly.
12717 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
12718
12719 2017-05-10 Carl Love <cel@us.ibm.com>
12720
12721 * config/rs6000/rs6000-c: Add support for built-in functions
12722 vector signed char vec_neg (vector signed char)
12723 vector signed short int vec_neg (vector short int)
12724 vector signed int vec_neg (vector signed int)
12725 vector signed long long vec_neg (vector signed long long)
12726 vector float vec_neg (vector float)
12727 vector double vec_neg (vector double)
12728 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
12729 overload.
12730 * config/rs6000/altivec.h: Add define for vec_neg
12731 * doc/extend.texi: Update the built-in documentation for the
12732 new built-in functions.
12733
12734 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12735
12736 PR tree-optimization/77644
12737 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
12738
12739 2017-05-10 Nathan Sidwell <nathan@acm.org>
12740
12741 * dumpfile.h (TDI_lang_all): New.
12742 (TDF_KIND): New. Renumber others
12743 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
12744 than bits.
12745 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
12746 lang-all.
12747 (get_dump_file_name): Adjust suffix generation.
12748 (dump_enable_all): Use TDF_KIND.
12749 * doc/invoke.texi (-fdump-lang-all): Document.
12750
12751 * dumpfile.h: Tabify.
12752
12753 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
12754
12755 PR target/80671
12756 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
12757 Move member access before delete.
12758
12759 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
12760
12761 * tree-inline.c (expand_call_inline): Split block at stmt
12762 before the call.
12763
12764 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
12765
12766 PR target/68163
12767 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
12768 are now unused after splitting mov{sf,sd}_hardfloat.
12769 (f32_lr2): Likewise.
12770 (f32_lm): Likewise.
12771 (f32_lm2): Likewise.
12772 (f32_li): Likewise.
12773 (f32_li2): Likewise.
12774 (f32_lv): Likewise.
12775 (f32_sr): Likewise.
12776 (f32_sr2): Likewise.
12777 (f32_sm): Likewise.
12778 (f32_sm2): Likewise.
12779 (f32_si): Likewise.
12780 (f32_si2): Likewise.
12781 (f32_sv): Likewise.
12782 (f32_dm): Likewise.
12783 (f32_vsx): Likewise.
12784 (f32_av): Likewise.
12785 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
12786 For movsf, order stores so the VSX stores occur before the GPR
12787 store which encourages the register allocator to use a traditional
12788 FPR instead of a GPR. For movsd, order the stores so that the GPR
12789 store comes before the VSX stores to allow the power6 to work.
12790 This is due to the power6 not having a 32-bit integer store
12791 instruction from a FPR.
12792 (movsf_hardfloat): Likewise.
12793 (movsd_hardfloat): Likewise.
12794
12795 2017-05-09 Martin Sebor <msebor@redhat.com>
12796
12797 PR translation/80280
12798 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
12799 added in r247778.
12800
12801 PR translation/80280
12802 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
12803 data member added in r247778.
12804 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
12805
12806 2017-05-09 Nathan Sidwell <nathan@acm.org>
12807
12808 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
12809
12810 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
12811 typedefs.
12812
12813 2017-05-09 Marek Polacek <polacek@redhat.com>
12814
12815 * doc/invoke.texi: Fix typo.
12816
12817 2017-05-09 Richard Biener <rguenther@suse.de>
12818
12819 * tree-vrp.c (vrp_val_is_max): Adjust comment.
12820 (vrp_val_is_min): Likewise.
12821 (set_value_range_to_value): Likewise.
12822 (set_value_range_to_nonnegative): Likewise.
12823 (gimple_assign_nonzero_p): Likewise.
12824 (gimple_stmt_nonzero_p): Likewise.
12825 (vrp_int_const_binop): Likewise. Remove unreachable case.
12826 (adjust_range_with_scev): Adjust comments.
12827 (compare_range_with_value): Likewise.
12828 (extract_range_from_phi_node): Likewise.
12829 (test_for_singularity): Likewise.
12830
12831 2017-05-09 Richard Biener <rguenther@suse.de>
12832
12833 * tree-vrp.c (get_single_symbol): Add assert that we don't
12834 get overflowed constants as invariant part.
12835 (compare_values_warnv): Add comment before the TREE_NO_WARNING
12836 checks. Use wi::cmp instead of recursing for integer constants.
12837 (compare_values): Just ignore whether we assumed undefined
12838 overflow instead of failing the compare.
12839 (extract_range_for_var_from_comparison_expr): Add comment before the
12840 TREE_NO_WARNING sets.
12841 (test_for_singularity): Likewise.
12842 (extract_range_from_comparison): Do not disable optimization
12843 when we assumed undefined overflow.
12844 (extract_range_basic): Remove init of unused var.
12845
12846 2017-05-09 Richard Biener <rguenther@suse.de>
12847
12848 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
12849 (extract_range_from_multiplicative_op_1): Adjust.
12850 (extract_range_from_binary_expr_1): Use int_const_binop.
12851
12852 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
12853
12854 PR target/80101
12855 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
12856 rs6000_store_data_bypass_p in seven define_bypass directives and
12857 in several comments.
12858 * config/rs6000/rs6000-protos.h: Add prototype for
12859 rs6000_store_data_bypass_p function.
12860 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
12861 function implements slightly different (rs6000-specific) semantics
12862 than store_data_bypass_p, returning false rather than aborting
12863 with assertion error when arguments do not satisfy the
12864 requirements of store data bypass.
12865 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
12866 rs6000_store_data_bypass_p.
12867
12868 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
12869
12870 * config/xtensa/xtensa-protos.h
12871 (xtensa_initial_elimination_offset): New declaration.
12872 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
12873 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
12874 macro definition, add case for FRAME_POINTER_REGNUM when
12875 FRAME_GROWS_DOWNWARD.
12876 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
12877 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
12878 xtensa_initial_elimination_offset.
12879
12880 2017-05-08 Nathan Sidwell <nathan@acm.org>
12881
12882 * doc/invoke.texi: Alphabetize -fdump options.
12883
12884 2017-05-08 Martin Sebor <msebor@redhat.com>
12885
12886 PR translation/80280
12887 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
12888
12889 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
12890
12891 * target.def (compute_frame_layout): New optional target hook.
12892 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
12893 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
12894 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
12895 target hook.
12896 * reload1.c (verify_initial_elim_offsets): Likewise.
12897 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
12898 (use_simple_return_p): Call arm_compute_frame_layout if needed.
12899 (arm_get_frame_offsets): Split up into this ...
12900 (arm_compute_frame_layout): ... and this function.
12901
12902 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
12903
12904 * config/aarch64/constraints.md (Usa): New constraint.
12905 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
12906
12907 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
12908
12909 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
12910 with_multilib_list after it has been checked.
12911
12912 2017-05-08 Richard Biener <rguenther@suse.de>
12913
12914 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
12915 (bitmap_set_subtract_values): Likewise.
12916
12917 2017-05-08 Richard Biener <rguenther@suse.de>
12918
12919 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
12920 (gimple_assign_nonzero): ... this and remove strict_overflow_p
12921 argument.
12922 (gimple_stmt_nonzero_warnv_p): Rename to ...
12923 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
12924 argument.
12925 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
12926 (extract_range_basic): Adjust, do not disable propagation on
12927 strict overflow sensitive simplification.
12928 (vrp_visit_cond_stmt): Likewise.
12929
12930 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
12931
12932 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
12933 body size unconditionally.
12934
12935 2017-05-07 Jeff Law <law@redhat.com>
12936
12937 Revert:
12938 2017-05-06 Jeff Law <law@redhat.com>
12939 PR tree-optimization/78496
12940 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
12941 code.
12942
12943 PR tree-optimization/78496
12944 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
12945 (simplify_stmt_using_ranges): Call it.
12946 (vrp_dom_walker::before_dom_children): Extract equivalences
12947 from an ASSERT_EXPR with an equality comparison against a
12948 constant.
12949
12950 2017-05-06 Jeff Law <law@redhat.com>
12951
12952 PR tree-optimization/78496
12953 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
12954 code.
12955
12956 PR tree-optimization/78496
12957 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
12958 (simplify_stmt_using_ranges): Call it.
12959 (vrp_dom_walker::before_dom_children): Extract equivalences
12960 from an ASSERT_EXPR with an equality comparison against a
12961 constant.
12962
12963 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
12964
12965 * lra-constraints.c (lra_copy_reg_equiv): New function.
12966 (split_reg): Use it to copy equivalence information from the
12967 original register to the spill register.
12968
12969 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
12970
12971 PR rtl-optimization/75964
12972 * simplify-rtx.c (simplify_const_relational_operation): Remove
12973 invalid handling of comparisons of integer ABS.
12974
12975 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
12976
12977 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
12978 initialize to zero.
12979 (init_regs): Remove declaration.
12980 (function_arg_advance_32): Initialize error_p as boolean variable.
12981
12982 2017-05-05 Nathan Sidwell <nathan@acm.org>
12983
12984 * store-motion.c (remove_reachable_equiv_notes): Reformat long
12985 lines. Use for (;;).
12986
12987 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12988
12989 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
12990 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
12991 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
12992 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
12993 VF=2 that require versioning.
12994
12995 2017-05-05 David Malcolm <dmalcolm@redhat.com>
12996
12997 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
12998 int.
12999
13000 2017-05-05 David Malcolm <dmalcolm@redhat.com>
13001
13002 * diagnostic.h (diagnostic_override_option_index): Convert from
13003 macro to inline function.
13004
13005 2017-05-05 David Malcolm <dmalcolm@redhat.com>
13006
13007 * diagnostic.c (last_module_changed_p): New function.
13008 (set_last_module): New function.
13009 (diagnostic_report_current_module): Convert macro usage to
13010 the above functions.
13011 * diagnostic.h (diagnostic_context::last_module): Strengthen
13012 from const line_map * to const line_map_ordinary *.
13013 (diagnostic_last_module_changed): Delete macro.
13014 (diagnostic_set_last_module): Delete macro.
13015
13016 2017-05-05 David Malcolm <dmalcolm@redhat.com>
13017
13018 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
13019 with diagnostic_report_diagnostic.
13020 (diagnostic_n_impl_richloc): Likewise.
13021 * diagnostic.h (report_diagnostic): Delete macro.
13022 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
13023 with diagnostic_report_diagnostic.
13024 * substring-locations.c (format_warning_va): Likewise.
13025
13026 2017-05-05 David Malcolm <dmalcolm@redhat.com>
13027
13028 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
13029 save/restor of format_spec. Move option-printing code to...
13030 (print_option_information): ...this new function, and
13031 reimplement by simply printing to the pretty_printer,
13032 rather than appending to the format string.
13033
13034 2017-05-05 David Malcolm <dmalcolm@redhat.com>
13035
13036 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
13037 handling logic into...
13038 (update_effective_level_from_pragmas): ...this new function.
13039
13040 2017-05-04 Andrew Waterman <andrew@sifive.com>
13041
13042 * config/riscv/riscv.opt (mstrict-align): New option.
13043 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
13044 (SLOW_UNALIGNED_ACCESS): Define.
13045 (riscv_slow_unaligned_access): Declare.
13046 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
13047 field.
13048 (riscv_slow_unaligned_access): New variable.
13049 (rocket_tune_info): Set slow_unaligned_access to true.
13050 (optimize_size_tune_info): Set slow_unaligned_access to false.
13051 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
13052 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
13053 (riscv_option_override): Set riscv_slow_unaligned_access.
13054 * doc/invoke.texi: Add -mstrict-align to RISC-V.
13055
13056 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
13057
13058 * config/riscv/riscv.md: Unify indentation.
13059
13060 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
13061
13062 PR target/79038
13063 PR target/79202
13064 PR target/79203
13065 * config/rs6000/rs6000.md (u code attribute): Add FIX and
13066 UNSIGNED_FIX.
13067 (extendsi<mode>2): Add support for doing sign extension via
13068 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
13069 don't have ISA 3.0 instructions.
13070 (extendsi<mode>2 splitter): Likewise.
13071 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
13072 generate the normal insns since SImode can now go in vector
13073 registers. Disallow the special UNSPECs needed for previous
13074 machines to hide SImode being used. Add new insns
13075 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
13076 (fix_trunc<mode>si2_stfiwx): Likewise.
13077 (fix_trunc<mode>si2_internal): Likewise.
13078 (fixuns_trunc<mode>si2): Likewise.
13079 (fixuns_trunc<mode>si2_stfiwx): Likewise.
13080 (fctiw<u>z_<mode>_smallint): Likewise.
13081 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
13082 of floating point to 32-bit integer from doing a direct move to
13083 the GPR registers to do a store.
13084 (fctiwz_<mode>): Break long line.
13085
13086 2017-05-05 Bin Cheng <bin.cheng@arm.com>
13087
13088 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
13089 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
13090 (addr_list, addr_offset_valid_p): New.
13091 (split_address_groups): Check offset validity with above function.
13092 (gt-tree-ssa-loop-ivopts.h): Include header file.
13093
13094 2017-05-05 Nathan Sidwell <nathan@acm.org>
13095
13096 * config.gcc (arm*-*-*): Add missing 'fi'.
13097
13098 2017-05-05 Steve Ellcey <sellcey@cavium.com>
13099
13100 * doc/invoke.texi (-fopt-info): Explicitly say order of options
13101 included in -fopt-info does not matter.
13102 * doc/optinfo.texi (-fopt-info): Fix description of default
13103 behavour. Explicitly say order of options included in -fopt-info
13104 does not matter.
13105
13106 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
13107
13108 * config.gcc: Allow combinations of aprofile and rmprofile values for
13109 --with-multilib-list.
13110 * config/arm/t-multilib: New file.
13111 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
13112 variables. Remove setting of ISA and floating-point ABI in
13113 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
13114 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
13115 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
13116 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
13117 CPU options.
13118 * config/arm/t-rmprofile: Likewise except for the matches changes.
13119 * doc/install.texi (--with-multilib-list): Document the combination of
13120 aprofile and rmprofile values and warn about pitfalls in doing that.
13121
13122 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
13123
13124 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
13125 (movdi_aarch64): Likewise.
13126
13127 2017-05-05 Jakub Jelinek <jakub@redhat.com>
13128
13129 PR tree-optimization/80632
13130 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
13131 field.
13132 (build_arrays): Initialize it for virtual phis.
13133 (fix_phi_nodes): Use it for virtual phis.
13134
13135 PR tree-optimization/80558
13136 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
13137 [x, y] op z into [x op, y op z] for op & or | if conditions
13138 are met.
13139
13140 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
13141 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
13142
13143 PR target/71607
13144 * config/arm/arm.md (use_literal_pool): Remove.
13145 (64-bit immediate split): No longer takes cost into consideration
13146 if arm_disable_literal_pool is enabled.
13147 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
13148 used when arm_disable_literal_pool is enabled.
13149 (arm_max_const_double_inline_cost): Remove use of
13150 arm_disable_literal_pool.
13151 (push_minipool_fix): Add assert.
13152 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
13153 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
13154 (no_literal_pool_sf_immediate): New.
13155
13156 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13157
13158 PR tree-optimization/80613
13159 * tree-ssa-dce.c (propagate_necessity): Remove cases for
13160 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
13161
13162 2017-05-05 Richard Biener <rguenther@suse.de>
13163
13164 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
13165
13166 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
13167
13168 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
13169 of this flag from insn conditions due to removal from r247495.
13170
13171 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
13172
13173 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
13174 New function.
13175 (arm_early_store_addr_dep_ptr): Likewise.
13176 * config/arm/aarch-common-protos.h
13177 (arm_early_load_addr_dep_ptr): Add prototype.
13178 (arm_early_store_addr_dep_ptr): Likewise.
13179 * config/arm/cortex-a53.md: Add new bypasses.
13180
13181 2017-05-05 Jakub Jelinek <jakub@redhat.com>
13182
13183 * tree.c (next_type_uid): Change type to unsigned.
13184 (type_hash_canon): Decrement back next_type_uid if
13185 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
13186 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
13187 if possible.
13188
13189 2017-05-04 Martin Sebor <msebor@redhat.com>
13190
13191 * builtins.c: Fix a trivial typo in a comment.
13192
13193 PR middle-end/79234
13194 * builtins.c (check_sizes): Adjust to handle reading past the end.
13195 Avoid printing excessive upper bound of ranges. Use %E to print
13196 tree nodes instead of converting them to %wu.
13197 (expand_builtin_memchr): New function.
13198 (compute_dest_size): Rename...
13199 (compute_objsize): ...to this.
13200 (expand_builtin_memcpy): Adjust.
13201 (expand_builtin_mempcpy): Adjust.
13202 (expand_builtin_strcat): Adjust.
13203 (expand_builtin_strcpy): Adjust.
13204 (check_strncat_sizes): Adjust.
13205 (expand_builtin_strncat): Adjust.
13206 (expand_builtin_strncpy): Adjust and simplify.
13207 (expand_builtin_memset): Adjust.
13208 (expand_builtin_bzero): Adjust.
13209 (expand_builtin_memcmp): Adjust.
13210 (expand_builtin): Handle memcmp.
13211 (maybe_emit_chk_warning): Check strncat just once.
13212
13213 2017-05-04 Martin Sebor <msebor@redhat.com>
13214
13215 PR preprocessor/79214
13216 PR middle-end/79222
13217 PR middle-end/79223
13218 * builtins.c (check_sizes): Add inlining context and issue
13219 warnings even when -Wno-system-headers is set.
13220 (check_strncat_sizes): Same.
13221 (expand_builtin_strncat): Same.
13222 (expand_builtin_memmove): New function.
13223 (expand_builtin_stpncpy): Same.
13224 (expand_builtin): Handle memmove and stpncpy.
13225
13226 2017-05-04 Bin Cheng <bin.cheng@arm.com>
13227
13228 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
13229 which is not used any more.
13230
13231 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
13232
13233 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
13234
13235 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
13236
13237 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
13238 (cortexa53_tunings): Likewise.
13239 (cortexa57_tunings): Likewise.
13240 (cortexa72_tunings): Likewise.
13241 (cortexa73_tunings): Likewise.
13242
13243 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
13244
13245 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
13246 Set loop alignment to 8.
13247
13248 2017-05-04 Martin Sebor <msebor@redhat.com>
13249
13250 PR translation/80280
13251 * builtins.c (expand_builtin_object_size): Add missing quoting to
13252 %D and like directives.
13253 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
13254 (hsa_type_for_tree_type): Same.
13255 (verify_function_arguments): Same.
13256 * symtab.c (symbol_table::change_decl_assembler_name): Same.
13257 * varasm.c (get_section): Same.
13258 (mark_weak): Same.
13259
13260 2017-05-04 Martin Sebor <msebor@redhat.com>
13261
13262 PR translation/80280
13263 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
13264
13265 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
13266
13267 * config/aarch64/aarch64.c (generic_addrcost_table):
13268 Change HI/TI mode setting.
13269
13270 2017-05-04 Martin Jambor <mjambor@suse.cz>
13271
13272 PR tree-optimization/80622
13273 * tree-sra.c (comes_initialized_p): New function.
13274 (build_accesses_from_assign): Only set write lazily when
13275 comes_initialized_p is false.
13276 (analyze_access_subtree): Use comes_initialized_p.
13277 (propagate_subaccesses_across_link): Assert !comes_initialized_p
13278 instead of testing for PARM_DECL.
13279
13280 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13281
13282 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
13283 constraint on operand 0 to allow more general addressing modes.
13284 Adjust output template.
13285 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
13286 New function.
13287 * config/aarch64/aarch64-protos.h
13288 (aarch64_address_valid_for_prefetch_p): Declare prototype.
13289 * config/aarch64/constraints.md (Dp): New address constraint.
13290 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
13291 predicate.
13292
13293 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
13294
13295 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
13296 update use of estimate_ipcp_clone_size_and_time.
13297 (estimate_local_effects): Update use of
13298 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
13299 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
13300 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
13301 Return nonspecialized time.
13302
13303 2017-05-04 Richard Biener <rguenther@suse.de>
13304
13305 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
13306 for the last VUSE which def dominates the PHI. Directly call
13307 maybe_skip_until.
13308 (get_continuation_for_phi_1): Remove.
13309
13310 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
13311
13312 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
13313 to explain the use of truncating division. Cap the number of
13314 iterations to the maximum given by nb_iterations_upper_bound,
13315 if defined.
13316
13317 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13318
13319 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
13320 * configure: Regenerate.
13321 * config.in: Regenerate.
13322 * config/i386/driver-mingw32.c: new file.
13323 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
13324 * config.host: Link driver-mingw32.o on MinGW host.
13325 * doc/install.texi: Document new --enable-mingw-wildcard configure
13326 option.
13327
13328 2017-05-04 Marek Polacek <polacek@redhat.com>
13329
13330 PR tree-optimization/80612
13331 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
13332
13333 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
13334 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
13335
13336 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
13337 (movt splitter): Likewise.
13338 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
13339 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
13340 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
13341 block for Thumb-1 with MOVT.
13342 (thumb2_legitimate_address_p): Move code block ...
13343 (can_avoid_literal_pool_for_label_p): ... into this new function.
13344 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
13345 literal pool.
13346 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
13347 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
13348 "M-profile targets with the MOVT instruction".
13349
13350 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
13351
13352 * config/arm/arm-builtins.c (arm_init_builtins): Rename
13353 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
13354 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
13355
13356 2017-05-04 Martin Liska <mliska@suse.cz>
13357
13358 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
13359 variable cond_code.
13360
13361 2017-05-04 Richard Biener <rguenther@suse.de>
13362
13363 * tree.c (array_at_struct_end_p): Handle arrays at struct
13364 end with flexarrays more conservatively. Refactor and treat
13365 arrays of arrays or aggregates more strict. Fix
13366 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
13367 * tree.c (array_at_struct_end_p): Adjust prototype.
13368 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
13369 * gimple-fold.c (get_range_strlen): Likewise.
13370 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
13371
13372 2017-05-04 Richard Biener <rguenther@suse.de>
13373
13374 PR tree-optimization/31130
13375 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
13376 false.
13377 (supports_overflow_infinity): Likewise.
13378 (is_negative_overflow_infinity): Likewise.
13379 (is_positive_overflow_infinity): Likewise.
13380 (is_overflow_infinity): Likewise.
13381 (stmt_overflow_infinity): Likewise.
13382 (overflow_infinity_range_p): Likewise.
13383 (usable_range_p): Remove as always returning true.
13384 (make_overflow_infinity): Remove.
13385 (negative_overflow_infinity): Likewise.
13386 (positive_overflow_infinity): Likewise.
13387 (avoid_overflow_infinity): Likewise.
13388 (set_value_range): Adjust accordingly.
13389 (set_value_range_to_nonnegative): Likewise, remove now unused
13390 overflow_infinity arg.
13391 (vrp_operand_equal_p): Adjust.
13392 (update_value_range): Likewise.
13393 (range_int_cst_singleton_p): Likewise.
13394 (operand_less_p): Likewise.
13395 (compare_values_warnv): Likewise.
13396 (extract_range_for_var_from_comparison_expr): Likewise.
13397 (vrp_int_const_binop): Likewise.
13398 (zero_nonzero_bits_from_vr): Likewise.
13399 (extract_range_from_multiplicative_op_1): Likewise.
13400 (extract_range_from_binary_expr_1): Likewise.
13401 (extract_range_from_unary_expr): Likewise.
13402 (extract_range_from_comparison): Likewise.
13403 (extract_range_basic): Likewise.
13404 (adjust_range_with_scev): Likewise.
13405 (compare_ranges): Likewise.
13406 (compare_range_with_value): Likewise.
13407 (dump_value_range): Likewise.
13408 (test_for_singularity): Likewise, remove strict_overflow_p parameter
13409 never used.
13410 (simplify_cond_using_ranges): Adjust.
13411
13412 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
13413
13414 * brig-builtins.def: Added a builtin for class_f64.
13415 * builtin-types.def: Added a builtin type needed by class_f64.
13416
13417 2017-05-03 Jason Merrill <jason@redhat.com>
13418
13419 * timevar.def: Add TV_CONSTEXPR.
13420
13421 2017-05-03 David Malcolm <dmalcolm@redhat.com>
13422
13423 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
13424
13425 2017-05-03 Martin Jambor <mjambor@suse.cz>
13426
13427 * ipa-prop.c (ipa_update_after_lto_read): Removed.
13428 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
13429 * ipa-cp.c (ipcp_propagate_stage): Do not call
13430 ipa_update_after_lto_read.
13431 * ipa-inline.c (ipa_inline): Likewise.
13432
13433 2017-05-03 Martin Jambor <mjambor@suse.cz>
13434
13435 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
13436 tag. Added a default constructor and a destructor.
13437 (ipa_edge_args_sum_t): New class;
13438 (ipa_edge_args_sum): Declare.
13439 (ipa_edge_args_vector): Remove declaration.
13440 (IPA_EDGE_REF): Use ipa_edge_args_sum.
13441 (ipa_free_edge_args_substructures): Remove declaration.
13442 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
13443 (ipa_edge_args_info_available_for_edge_p): Likewise.
13444 * ipa-prop.c (ipa_edge_args_vector): Removed.
13445 (edge_removal_hook_holder): Likewise.
13446 (edge_duplication_hook_holder): Likewise.
13447 (ipa_edge_args_sum): New variable.
13448 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
13449 ipa_edge_args_vector.
13450 (ipa_free_edge_args_substructures): Likewise.
13451 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
13452 ipa_edge_args_vector.
13453 (ipa_edge_removal_hook): Turned into method
13454 ipa_edge_args_sum_t::remove.
13455 (ipa_edge_duplication_hook): Turned into method
13456 ipa_edge_args_sum_t::duplicate.
13457 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
13458 registering edge hooks.
13459 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
13460 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
13461 ipa_edge_args_sum instead of ipa_edge_args_vector.
13462 * ipa-profile.c (ipa_profile): Likewise.
13463
13464 2017-05-03 Martin Jambor <mjambor@suse.cz>
13465
13466 * symbol-summary.h (function_summary): New method exists.
13467 (function_summary::symtab_removal): Deallocate through release.
13468 (call_summary): New class.
13469 (gt_ggc_mx): New overload.
13470 (gt_pch_nx): Likewise.
13471 (gt_pch_nx): Likewise.
13472
13473 2017-05-03 Jeff Law <law@redhat.com>
13474
13475 PR tree-optimization/78496
13476 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
13477 from simplify_cond_using_ranges. Split off code to walk
13478 backwards through casts into ...
13479 (simplify_cond_using_ranges_2): New function.
13480 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
13481 (execute_vrp): After identifying jump threads, call
13482 simplify_cond_using_ranges_2.
13483
13484 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
13485
13486 PR bootstrap/80609
13487 * ipa-inline.h (inline_summary): Add ctor.
13488 (create_ggc): Do not use ggc_cleared_alloc.
13489
13490 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
13491 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13492
13493 * gcc.c (handle_braces): Support escaping in switch matching
13494 text.
13495 * doc/invoke.texi (Spec Files): Document it.
13496 Remove superfluous @code markup in items.
13497
13498 2017-05-03 David Malcolm <dmalcolm@redhat.com>
13499
13500 * diagnostic-show-locus.c (struct column_range): New struct.
13501 (get_affected_columns): New function.
13502 (get_printed_columns): New function.
13503 (struct correction): New struct.
13504 (correction::ensure_capacity): New function.
13505 (correction::ensure_terminated): New function.
13506 (struct line_corrections): New struct.
13507 (line_corrections::~line_corrections): New dtor.
13508 (line_corrections::add_hint): New function.
13509 (layout::print_trailing_fixits): Reimplement in terms of the new
13510 classes.
13511 (selftest::test_overlapped_fixit_printing): New function.
13512 (selftest::diagnostic_show_locus_c_tests): Call it.
13513
13514 2017-05-03 Nathan Sidwell <nathan@acm.org>
13515
13516 Canonicalize canonical type hashing
13517 * tree.h (type_hash_canon_hash): Declare.
13518 * tree.c (type_hash_list, attribute_hash_list): Move into
13519 type_hash_canon_hash.
13520 (build_type_attribute_qual_variant): Break out hash code calc into
13521 type_hash_canon_hash.
13522 (type_hash_canon_hash): New. Generic type hash computation.
13523 (build_range_type_1, build_array_type_1, build_function_type,
13524 build_method_type_directly, build_offset_type, build_complex_type,
13525 make_vector_type): Call it.
13526
13527 2017-05-03 Richard Biener <rguenther@suse.de>
13528
13529 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13530 When all DRs have unknown misaligned do not always peel
13531 when there is a store but apply the same costing model as if
13532 there were only loads.
13533
13534 2017-05-03 Richard Biener <rguenther@suse.de>
13535
13536 Revert
13537 PR tree-optimization/80492
13538 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
13539 compare_base_decls returning dont-know properly.
13540
13541 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
13542
13543 * config/arm/iterators.md (CCSI): New mode iterator.
13544 (arch): New mode attribute.
13545 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
13546 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
13547 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
13548 code iterator for success result mode.
13549 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
13550 the corresponding new insn generators.
13551
13552 2017-05-03 Bin Cheng <bin.cheng@arm.com>
13553
13554 Revert r247509
13555 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13556 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
13557
13558 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
13559
13560 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
13561 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
13562 (DDR_A): Wrap DDR argument in brackets.
13563 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
13564 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
13565 (DDR_REVERSED_P): Likewise.
13566
13567 2017-05-03 Jakub Jelinek <jakub@redhat.com>
13568
13569 PR tree-optimization/79472
13570 * tree-switch-conversion.c (struct switch_conv_info): Add
13571 contiguous_range and default_case_nonstandard fields.
13572 (collect_switch_conv_info): Compute contiguous_range and
13573 default_case_nonstandard fields, don't clear final_bb if
13574 contiguous_range and only the default case doesn't have the required
13575 structure.
13576 (check_all_empty_except_final): Set default_case_nonstandard instead
13577 of failing if contiguous_range and the default case doesn't have empty
13578 block.
13579 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
13580 and only the default case doesn't have the required constants. Skip
13581 virtual phis.
13582 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
13583 if default_case_nonstandard.
13584 (build_constructors): Build constant 1 just once. Assert that default
13585 values aren't inserted in between cases if contiguous_range. Skip
13586 virtual phis.
13587 (build_arrays): Skip virtual phis.
13588 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
13589 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
13590 Handle virtual phis.
13591 (gen_inbound_check): Handle default_case_nonstandard case.
13592 (process_switch): Adjust check_final_bb caller. Call
13593 gather_default_values with the first non-default case instead of
13594 default case if default_case_nonstandard.
13595
13596 2017-05-02 Nathan Sidwell <nathan@acm.org>
13597
13598 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
13599 check. Fix formatting.
13600
13601 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
13602
13603 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
13604 errors when comparing specialized and unspecialized times.
13605
13606 2017-05-02 David Malcolm <dmalcolm@redhat.com>
13607
13608 * diagnostic-show-locus.c
13609 (layout::should_print_annotation_line_p): Make private.
13610 (layout::print_annotation_line): Make private.
13611 (layout::annotation_line_showed_range_p): Make private.
13612 (layout::show_ruler): Make private.
13613 (layout::print_source_line): Make private. Pass in line and
13614 line_width, rather than calling location_get_source_line. Drop
13615 returned value.
13616 (layout::print_leading_fixits): New method.
13617 (layout::print_any_fixits): Rename to...
13618 (layout::print_trailing_fixits): ...this, and make private.
13619 Don't print newline fixits.
13620 (diagnostic_show_locus): Move logic for printing one row into...
13621 (layout::print_line): ...this new function. Move the
13622 location_get_source_line call and error-handling from
13623 print_source_line to here. Call print_leading_fixits, and rename
13624 print_any_fixits to print_trailing_fixits.
13625 (selftest::test_fixit_insert_containing_newline): Update now that
13626 newlines are partially supported.
13627 (selftest::test_fixit_insert_containing_newline_2): New test.
13628 (selftest::test_fixit_replace_containing_newline): Update comments.
13629 (selftest::diagnostic_show_locus_c_tests): Call the new test.
13630 * edit-context.c (class added_line): New class.
13631 (class edited_line): Describe newline handling in comment.
13632 (edited_line::actually_edited_p): New method.
13633 (edited_line::print_content): Delete redundant decl.
13634 (edited_line::m_predecessors): New field.
13635 (edited_file::print_content): Call edited_line::print_content.
13636 (edited_file::print_diff): Update to support newlines.
13637 (edited_file::print_diff_hunk): Likewise.
13638 (edited_file::print_run_of_changed_lines): New function.
13639 (edited_file::print_diff_line): Convert to...
13640 (print_diff_line): ...this.
13641 (edited_file::get_effective_line_count): New function.
13642 (edited_line::edited_line): Initialize new field m_predecessors.
13643 (edited_line::~edited_line): Clean up m_predecessors.
13644 (edited_line::apply_fixit): Handle newlines.
13645 (edited_line::get_effective_line_count): New function.
13646 (edited_line::print_content): New function.
13647 (edited_line::print_diff_lines): New function.
13648 (selftest::test_applying_fixits_insert_containing_newline): New
13649 test.
13650 (selftest::test_applying_fixits_replace_containing_newline): New
13651 test.
13652 (selftest::insert_line): New function.
13653 (selftest::test_applying_fixits_multiple_lines): Add example of
13654 inserting a line.
13655 (selftest::edit_context_c_tests): Call the new tests.
13656
13657 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13658
13659 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
13660 parameter cand. Update dump information.
13661 (get_computation_cost): Update uses.
13662
13663 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13664
13665 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
13666 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
13667 (get_computation_at, rewrite_use_address): Update use of
13668 get_computation_aff.
13669
13670 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13671
13672 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
13673 (get_computation): Delete.
13674 (get_computation_cost): Implement like get_computation_cost_at.
13675 Use get_computation_at.
13676 (get_computation_cost_at): Delete.
13677 (rewrite_use_nonlinear_expr): Use get_computation_at.
13678 (rewrite_use_compare, remove_unused_ivs): Ditto.
13679
13680 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13681
13682 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
13683
13684 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13685
13686 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
13687 (ivopts_global_cost_for_size): Rename parameter and update uses.
13688 (iv_ca_recount_cost): Update uses.
13689 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
13690 candidates seperately in n_invs and n_cands.
13691 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
13692
13693 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13694
13695 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
13696 (find_inv_vars_cb): New.
13697 (find_depends): Renamed to ...
13698 (find_inv_vars): ... this.
13699 (add_candidate_1, force_var_cost): Call find_inv_vars.
13700 (split_address_cost, determine_group_iv_cost_cond): Ditto.
13701
13702 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13703
13704 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
13705 inv_vars. Add inv_exprs.
13706 (struct iv_cand): Rename depends_on to inv_vars.
13707 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
13708 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
13709 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
13710 (dump_cand): Dump inv_vars.
13711 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
13712 (record_invariant, find_depends, add_candidate_1): Ditto.
13713 (set_group_iv_cost, force_var_cost): Ditto.
13714 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
13715 (get_computation_cost_at, get_computation_cost): Ditto.
13716 (determine_group_iv_cost_generic): Ditto.
13717 (determine_group_iv_cost_address): Ditto.
13718 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
13719 (determine_group_iv_costs): Ditto.
13720 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
13721 (iv_ca_set_remove_invariants): Renamed to ...
13722 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
13723 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
13724 (iv_ca_set_add_invariants): Renamed to ...
13725 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
13726 (iv_ca_set_cp): Use iv_ca_set_add_invs.
13727 (iv_ca_has_deps): Support inv_vars and inv_exprs.
13728 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
13729 (create_new_ivs): Remove useless dump.
13730
13731 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13732
13733 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
13734 iv_cand code.
13735 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
13736 (iv_ca_set_no_cp, create_new_iv): Ditto.
13737
13738 2017-05-02 Bin Cheng <bin.cheng@arm.com>
13739
13740 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
13741
13742 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
13743
13744 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
13745 function tree_check2.
13746
13747 2017-05-02 Martin Liska <mliska@suse.cz>
13748
13749 * doc/gcov.texi: Add missing preposition.
13750 * gcov.c (function_info::function_info): Properly fill up
13751 all member variables.
13752
13753 2017-05-02 Tamar Christina <tamar.christina@arm.com>
13754
13755 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
13756
13757 2017-05-02 Tamar Christina <tamar.christina@arm.com>
13758
13759 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
13760
13761 2017-05-02 Martin Liska <mliska@suse.cz>
13762
13763 PR lto/77954.
13764 * lto-streamer-in.c (lto_read_tree_1): Remove
13765 LTO_STREAMER_DEBUG.
13766 * lto-streamer.c (struct tree_hash_entry): Likewise.
13767 (struct tree_entry_hasher): Likewise.
13768 (tree_entry_hasher::hash): Likewise.
13769 (tree_entry_hasher::equal): Likewise.
13770 (lto_streamer_init): Likewise.
13771 (lto_orig_address_map): Likewise.
13772 (lto_orig_address_get): Likewise.
13773 (lto_orig_address_remove): Likewise.
13774 * lto-streamer.h: Likewise.
13775 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
13776 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
13777
13778 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
13779
13780 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
13781 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
13782 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
13783 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
13784 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
13785 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
13786 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
13787 (mm_maskz_sub_ss): New intrinsics.
13788 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
13789 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
13790 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
13791 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
13792 (__builtin_ia32_subss_mask_round): New builtins.
13793 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
13794 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
13795 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
13796 Renamed to ...
13797 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
13798 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
13799 Changed to ...
13800 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
13801 ... this.
13802
13803 2017-05-02 Martin Jambor <mjambor@suse.cz>
13804
13805 PR tree-optimization/78687
13806 * tree-sra.c (access): New field parent.
13807 (process_subtree_disqualification): New function.
13808 (disqualify_candidate): Call it.
13809 (build_accesses_from_assign): Reset write flag if creating an
13810 assighnment link.
13811 (build_access_subtree): Fill in parent field and also prpagate
13812 down grp_write flag.
13813 (create_artificial_child_access): New parameter set_grp_write, set
13814 grp_write to its value.
13815 (propagate_subaccesses_across_link): Also propagate grp_write flag
13816 values.
13817 (propagate_all_subaccesses): Push the closest parent back to work
13818 queue if add_access_to_work_queue returned true.
13819
13820 2017-05-02 Richard Biener <rguenther@suse.de>
13821
13822 * common.opt (fstrict-overflow): Alias negative to fwrapv.
13823 * doc/invoke.texi (fstrict-overflow): Remove all traces of
13824 -fstrict-overflow documentation.
13825 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
13826 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
13827 flag_strict_overflow.
13828 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
13829 * lto-opts.c (lto_write_options): Do not stream it.
13830 * lto-wrapper.c (merge_and_complain): Do not handle it.
13831 * opts.c (default_options_table): Do not set -fstrict-overflow.
13832 (finish_options): Likewise do not clear it when sanitizing.
13833 * simplify-rtx.c (simplify_const_relational_operation): Do not
13834 test flag_strict_overflow.
13835
13836 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
13837
13838 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
13839 using enabled attribute.
13840 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
13841 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
13842 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
13843 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
13844 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
13845 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
13846 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
13847 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
13848 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
13849 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
13850
13851 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
13852
13853 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
13854
13855 2017-05-02 Richard Biener <rguenther@suse.de>
13856
13857 PR tree-optimization/80591
13858 Revert
13859 2017-04-10 Richard Biener <rguenther@suse.de>
13860
13861 * tree-ssa-structalias.c (find_func_aliases): Properly handle
13862 asm inputs.
13863
13864 2017-05-02 Richard Biener <rguenther@suse.de>
13865
13866 PR tree-optimization/80549
13867 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
13868 (cleanup_tree_cfg_noloop): Create forwarders to known loop
13869 headers if they do not have a preheader.
13870
13871 2017-05-02 Martin Liska <mliska@suse.cz>
13872
13873 PR other/80589
13874 * common.opt: Fix typo.
13875 * doc/invoke.texi: Likewise.
13876
13877 2017-05-01 Jan Beulich <jbeulich@suse.com>
13878
13879 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
13880 swapping, add (x,x,m,x,n) alternative.
13881
13882 2017-05-01 Nathan Sidwell <nathan@acm.org>
13883
13884 * calls.c (combine_pending_stack_adjustment_and_call): Remove
13885 unnecessary unadjusted_alignment check.
13886
13887 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
13888
13889 PR c++/80038
13890 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
13891 operations here.
13892 * gimplify.c (gimplify_cilk_detach): New function.
13893 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
13894 * tree-core.h: Document EXPR_CILK_SPAWN.
13895 * tree.h (EXPR_CILK_SPAWN): Define.
13896
13897 2017-05-01 David Malcolm <dmalcolm@redhat.com>
13898
13899 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
13900 to use new fixit_hint representation, using the "replace" logic.
13901 (get_line_span_for_fixit_hint): Likewise.
13902 (layout::print_any_fixits): Likewise.
13903 (selftest::test_one_liner_many_fixits): Rename to...
13904 (selftest::test_one_liner_many_fixits_1): ...this, and update
13905 comment and expected output to reflect that the multiple fix-it
13906 hints are now consolidated into one insertion.
13907 (selftest::test_one_liner_many_fixits_2): New test.
13908 (selftest::test_diagnostic_show_locus_one_liner): Update for
13909 above.
13910 (selftest::test_fixit_consolidation): Update for fix-it API
13911 change.
13912 * diagnostic.c (print_parseable_fixits): Likewise.
13913 * edit-context.c (edited_line::m_line_events): Convert from
13914 auto_vec <line_event *> to auto_vec <line_event>.
13915 (class line_event): Convert from abstract base class to a concrete
13916 class, taking over the role of replace_event.
13917 (class insert_event): Delete.
13918 (class replace_event): Rename to class line_event. Convert to
13919 half-open range.
13920 (edit_context::add_fixits): Reimplement.
13921 (edit_context::apply_insert): Delete.
13922 (edit_context::apply_replace): Rename to...
13923 (edit_context::apply_fixit): ...this. Convert to half-open range.
13924 (edited_file::apply_insert): Delete.
13925 (edited_file::apply_replace): Rename to...
13926 (edited_file::apply_fixit): ...this.
13927 (edited_line::~edited_line): Drop deletion of events.
13928 (edited_line::apply_insert): Delete.
13929 (edited_line::apply_replace): Rename to...
13930 (edited_line::apply_fixit): ...this. Convert to half-open range.
13931 Update for change to type of m_line_events.
13932 * edit-context.h (edit_context::apply_insert): Delete.
13933 (edit_context::apply_replace): Rename to...
13934 (edit_context::apply_fixit): ...this.
13935
13936 2017-05-01 Martin Sebor <msebor@redhat.com>
13937
13938 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
13939 known.
13940
13941 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
13942
13943 PR target/68491
13944 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
13945 __get_cpuid_max returns 0.
13946 (__get_cpuid_count): Ditto.
13947
13948 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
13949
13950 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
13951 replacement expression is another instance of one of its arguments.
13952
13953 2017-05-01 Jakub Jelinek <jakub@redhat.com>
13954
13955 PR target/79430
13956 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
13957 check for stack push/pop autoinc.
13958 * config/i386/i386.c (ix86_agi_dependent): Return false
13959 if the only reason why modified_in_p returned true is that
13960 addr is SP based and set_insn is a push or pop.
13961
13962 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
13963
13964 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
13965 overflow check.
13966
13967 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
13968
13969 PR ipa/79224
13970 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
13971 (account_size_time): Use two predicates - exec_pred and
13972 nonconst_pred_ptr.
13973 (evaluate_conditions_for_known_args): Compute both clause and
13974 nonspec_clause.
13975 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
13976 (inline_summary_t::duplicate): Update.
13977 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
13978 separately.
13979 (compute_inline_parameters): Likewise.
13980 (estimate_edge_size_and_time): Update caluclation of time.
13981 (estimate_node_size_and_time): Compute both time and nonspecialized
13982 time.
13983 (estimate_ipcp_clone_size_and_time): Update.
13984 (inline_merge_summary): Update.
13985 (do_estimate_edge_time): Update.
13986 (do_estimate_edge_size): Update.
13987 (do_estimate_edge_hints): Update.
13988 (inline_read_section, inline_write_summary): Stream both new predicates.
13989 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
13990 as argument.
13991 (compute_inlined_call_time): Cleanup.
13992 (big_speedup_p): Update.
13993 (edge_badness): Update.
13994 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
13995 (size_time_entry): Replace predicate by exec_predicate and
13996 nonconst_predicate.
13997 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
13998 (estimate_edge_time): Return also nonspec_time.
13999 (reset_edge_growth_cache): Update.
14000
14001 2017-04-29 Jakub Jelinek <jakub@redhat.com>
14002
14003 PR rtl-optimization/80491
14004 * ifcvt.c (noce_process_if_block): When looking for x setter
14005 with missing else_bb, don't check only the insn right before
14006 cond_earliest, but look for the last insn that x is modified in
14007 within the same bb.
14008
14009 PR rtl-optimization/80491
14010 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
14011
14012 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
14013
14014 PR tree-optimization/80487
14015 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
14016
14017 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14018
14019 PR tree-optimization/79697
14020 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
14021 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
14022 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
14023 BUILT_IN_STRNDUP.
14024 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
14025 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
14026
14027 2017-04-28 Martin Sebor <msebor@redhat.com>
14028
14029 PR tree-optimization/80523
14030 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
14031 (init_target_to_host_charmap, target_to_host, target_strtol10): New
14032 functions.
14033 (maybe_warn, format_directive, parse_directive): Use new functions.
14034 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
14035
14036 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
14037
14038 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
14039
14040 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
14041
14042 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
14043 target_header_dir): Set correctly.
14044 * configure: Regenerated.
14045 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
14046 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
14047 instead of SYSTEM_HEADER_DIR.
14048
14049 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
14050
14051 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
14052 (estimate_local_effects): Likewise.
14053 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
14054 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
14055 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
14056 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
14057 do_estimate_edge_time, estimate_edge_time): Likewise.
14058 * ipa-inline-analysis.c (estimate_node_size_and_time,
14059 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
14060 (estimate_time_after_inlining): Remove.
14061
14062 2017-04-28 Martin Liska <mliska@suse.cz>
14063
14064 * doc/gcov.texi: Enhance documentation of gcov.
14065
14066 2017-04-28 Martin Liska <mliska@suse.cz>
14067
14068 * doc/gcov.texi: Sort options in alphabetic order.
14069 * doc/gcov-dump.texi: Likewise.
14070 * doc/gcov-tool.texi: Likewise.
14071 * gcov.c (print_usage): Likewise.
14072 * gcov-dump.c (print_usage): Likewise.
14073 * gcov-tool.c (print_merge_usage_message): Likewise.
14074 (print_rewrite_usage_message): Likewise.
14075 (print_overlap_usage_message): Likewise.
14076
14077 2017-04-28 Martin Liska <mliska@suse.cz>
14078
14079 PR gcov-profile/53915
14080 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
14081
14082 2017-04-28 Martin Liska <mliska@suse.cz>
14083
14084 PR gcov-profile/79891
14085 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
14086 is marked by compiler as living on a line.
14087 (get_cycles_count): Remove usage of the union.
14088 (output_intermediate_file): Likewise.
14089 (find_source): Fix GNU coding style.
14090 (accumulate_line_counts): Remove old non-all block mode.
14091 (output_lines): Remove usage of the union.
14092 * profile.c (output_location): Include all BBs, even if
14093 belonging to a same line (and file) as a previous BB.
14094
14095 2017-04-28 Martin Liska <mliska@suse.cz>
14096
14097 * gcov.c (process_args): Handle new argument 'w'.
14098 (read_graph_file): Assign ID to BBs.
14099 (output_branch_count): Display BB # if verbose flag is set.
14100 (output_lines): Likewise for arcs.
14101 (print_usage): Add '--verbose' option help.
14102 * doc/gcov.texi: Document --verbose (-w) option.
14103
14104 2017-04-28 Martin Liska <mliska@suse.cz>
14105
14106 * gcov.c (struct block_location_info): New struct.
14107 (process_file): Fill up the new structure.
14108 (read_graph_file): Replace usage of encoding by the newly added
14109 struct.
14110 (add_line_counts): Likewise.
14111 (accumulate_line_counts): Remove usage of the union.
14112 (function_info::function_info): New function.
14113 (function_info::~function_info): Likewise.
14114 (process_file): Call delete instead of release_function.
14115 (release_function): Release the function.
14116 (release_structures): Call delete instead of release_function.
14117 (solve_flow_graph): Replace usage of num_blocks.
14118 (find_exception_blocks): Likewise.
14119 (output_lines): Fix GNU coding style.
14120
14121 2017-04-28 Martin Liska <mliska@suse.cz>
14122
14123 PR driver/56469
14124 * coverage.c (coverage_remove_note_file): New function.
14125 * coverage.h: Declare the function.
14126 * toplev.c (finalize): Clean if an error has been seen.
14127
14128 2017-04-28 Martin Liska <mliska@suse.cz>
14129
14130 PR gcov-profile/80031
14131 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
14132 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
14133 * gcov.c (read_graph_file): Read just number of blocks.
14134 * profile.c (branch_prob): Do not stream 0 flags per a basic
14135 block.
14136
14137 2017-04-28 Martin Liska <mliska@suse.cz>
14138
14139 * gcov-dump.c (tag_*): Add new argument to declarations.
14140 (dump_gcov_file): Likewise.
14141 (tag_blocks): Add and use new argument depth.
14142 (tag_arcs): Likewise.
14143 (tag_lines): Likewise.
14144 (tag_counters): Likewise.
14145 (tag_summary): Likewise.
14146 (dump_working_sets): Use depth to do a proper indentation.
14147
14148 2017-04-28 Jakub Jelinek <jakub@redhat.com>
14149
14150 PR bootstrap/80531
14151 * cgraph.h (symtab_node::debug_symtab): No longer inline.
14152 * symtab.c (symtab_node::debug_symtab): Move definition here.
14153
14154 2017-04-28 Richard Biener <rguenther@suse.de>
14155
14156 * lto-streamer.h (LTO_major_version): Bump to 7.
14157
14158 2017-04-28 Richard Biener <rguenther@suse.de>
14159
14160 * tree-vrp.c (assert_info): New struct.
14161 (add_assert_info): New helper.
14162 (register_edge_assert_for_2): Refactor to add asserts to a vector
14163 of assert_info.
14164 (register_edge_assert_for_1): Likewise.
14165 (register_edge_assert_for): Likewise.
14166 (finish_register_edge_assert_for): New helper actually registering
14167 asserts where live on edge.
14168 (find_conditional_asserts): Adjust.
14169 (find_switch_asserts): Likewise.
14170 (evrp_dom_walker::try_find_new_range): Generalize.
14171 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
14172
14173 2017-04-27 Marek Polacek <polacek@redhat.com>
14174
14175 PR sanitizer/80349
14176 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
14177 arg10 and arg11 to itype.
14178
14179 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
14180
14181 * doc/extend.texi (Object Size Checking): Improve grammar.
14182
14183 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
14184
14185 PR target/80530
14186 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
14187 that the logic for permitting reciprocal estimates matches that
14188 in use_rsqrt_p.
14189
14190 2017-04-27 Jakub Jelinek <jakub@redhat.com>
14191
14192 PR c++/80534
14193 * tree.c (type_cache_hasher::equal): Only compare
14194 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
14195 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
14196 non-aggregate element types.
14197 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
14198 about the flag on ARRAY_TYPEs in the comment, formatting fix.
14199
14200 2017-04-27 Richard Biener <rguenther@suse.de>
14201
14202 PR middle-end/80533
14203 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
14204 stripping ARRAY_REFs from MEM_EXPR make sure we're not
14205 keeping a reference to a trailing array.
14206
14207 2017-04-27 Richard Biener <rguenther@suse.de>
14208
14209 PR middle-end/80539
14210 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
14211 being in loop-closed SSA form conservatively.
14212 (chrec_fold_multiply_poly_poly): Likewise.
14213
14214 2017-04-27 Tamar Christina <tamar.christina@arm.com>
14215
14216 PR middle-end/79665
14217 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
14218 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
14219
14220 2017-04-27 Jakub Jelinek <jakub@redhat.com>
14221
14222 PR target/77728
14223 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
14224 (aarch64_function_arg_alignment): Return unsigned int again, but still
14225 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
14226 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
14227 Don't emit -Wpsabi note.
14228 (aarch64_function_arg_boundary): Likewise.
14229 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
14230 caller.
14231
14232 2017-04-26 Nathan Sidwell <nathan@acm.org>
14233
14234 * tree.h (crc32_unsigned_n): Declare.
14235 (crc32_unsigned, crc32_unsigned): Make inline.
14236 * tree.c (crc32_unsigned_bits): Replace with ...
14237 (crc32_unsigned_n): ... this.
14238 (crc32_unsigned, crc32_byte): Remove.
14239 (crc32_string): Remove unnecessary braces.
14240
14241 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
14242
14243 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
14244 * ipa-inline-analysis.c (MAX_TIME): Remove.
14245 (account_size_time): Use sreal for time.
14246 (dump_inline_summary): Update.
14247 (estimate_function_body_sizes): Update.
14248 (estimate_edge_size_and_time): Update.
14249 (estimate_calls_size_and_time): Update.
14250 (estimate_node_size_and_time): Update.
14251 (inline_merge_summary): Update.
14252 (inline_update_overall_summary): Update.
14253 (estimate_time_after_inlining): Update.
14254 (inline_read_section): Update.
14255 (inline_write_summary): Update.
14256 * ipa-inline.c (compute_uninlined_call_time): Update.
14257 (compute_inlined_call_time): Update.
14258 (recursive_inlining): Update.
14259 (inline_small_functions): Update.
14260 (dump_overall_stats): Update.
14261 * ipa-inline.h: Include sreal.h.
14262 (size_time_entry): Turn time to sreal.
14263 (inline_summary): Turn self_time nad time to sreal.
14264
14265 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
14266
14267 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
14268 data-streamer.h
14269 (sreal::stream_out, sreal::stream_in): New.
14270 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
14271
14272 2017-04-25 Jakub Jelinek <jakub@redhat.com>
14273
14274 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
14275 environment.
14276
14277 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
14278
14279 PR target/70799
14280 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
14281 Handle ASHIFTRT.
14282 (dimode_scalar_chain::compute_convert_gain): Ditto.
14283 (dimode_scalar_chain::make_vector_copies): Ditto.
14284 (dimode_scalar_chain::convert_reg): Ditto.
14285 (dimode_scalar_chain::convert_insn): Ditto.
14286 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
14287 (VI248_AVX512BW_1): New mode iterator.
14288 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
14289 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
14290 mode iterator.
14291
14292 2017-04-25 Martin Sebor <msebor@redhat.com>
14293
14294 PR tree-optimization/80497
14295 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
14296 constants are representable in HOST_WIDE_INT.
14297 (parse_directive): Ditto.
14298
14299 2017-04-25 Martin Sebor <msebor@redhat.com>
14300
14301 PR bootstrap/80486
14302 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
14303 (new_zero_array): Adjust signature.
14304 (dom_info::dom_init): Used unsigned rather that size_t.
14305 (dom_info::dom_info): Same.
14306
14307 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14308 Jakub Jelinek <jakub@redhat.com>
14309
14310 PR target/77728
14311 * config/arm/arm.c: Include gimple.h.
14312 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
14313 returns negative, increment ncrn only if it returned positive.
14314 (arm_needs_doubleword_align): Return int instead of bool,
14315 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
14316 members, but if there is any such non-FIELD_DECL
14317 > PARM_BOUNDARY aligned decl, return -1 instead of false.
14318 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
14319 returns negative, increment nregs only if it returned positive.
14320 (arm_setup_incoming_varargs): Likewise.
14321 (arm_function_arg_boundary): Emit -Wpsabi note if
14322 arm_needs_doubleword_align returns negative, return
14323 DOUBLEWORD_ALIGNMENT only if it returned positive.
14324
14325 2017-04-25 Marek Polacek <polacek@redhat.com>
14326
14327 PR sanitizer/80349
14328 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
14329 first argument to type.
14330
14331 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
14332
14333 PR target/80482
14334 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
14335 type checks to test for compatibility instead of equality.
14336
14337 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14338 Jakub Jelinek <jakub@redhat.com>
14339
14340 PR target/77728
14341 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
14342 type.
14343 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
14344 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
14345 the alignment computation, but return their maximum in warn_alignment.
14346 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
14347 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
14348 is smaller.
14349 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
14350 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
14351 caller.
14352
14353 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14354
14355 * config/arc/simdext.md (dmpyh): Fix typo.
14356
14357 2017-04-25 Richard Biener <rguenther@suse.de>
14358
14359 PR tree-optimization/80492
14360 * alias.c (compare_base_decls): Handle registers with asm
14361 specification conservatively.
14362 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
14363 compare_base_decls returning dont-know properly.
14364
14365 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14366
14367 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
14368 (legitimate_offset_address_p): New function.
14369 (arc_legitimate_address_p): Use above function.
14370
14371 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14372
14373 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
14374
14375 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14376
14377 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
14378 ACCH registers whenever they are available.
14379
14380 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14381
14382 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
14383 double regs fix when not used.
14384
14385 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14386
14387 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
14388 core registers.
14389 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
14390 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
14391
14392 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14393
14394 * config/arc/arc.c (arc_output_addsi): Check for h-register class
14395 when emitting short ADD instructions.
14396
14397 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
14398
14399 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
14400 constraint.
14401 (cmpsi_cc_c_insn): Likewise.
14402 (cbranchsi4_scratch): Compute proper instruction length using
14403 compact_hreg_operand.
14404 * config/arc/predicates.md (compact_hreg_operand): New predicate.
14405
14406 2017-04-25 Richard Biener <rguenther@suse.de>
14407
14408 PR middle-end/80509
14409 * passes.c (pass_manager::pass_manager): Initialize
14410 m_name_to_pass_map.
14411
14412 2017-04-25 Richard Biener <rguenther@suse.de>
14413
14414 PR tree-optimization/79201
14415 * tree-ssa-sink.c (statement_sink_location): Handle calls.
14416
14417 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14418
14419 PR target/80464
14420 * config/s390/vector.md: Split MEM->GPR vector moves for
14421 non-s_operand addresses.
14422
14423 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14424
14425 PR target/79895
14426 * config/s390/predicates.md (reload_const_wide_int_operand): New
14427 predicate.
14428 * config/s390/s390.md ("movti"): Remove d/P alternative.
14429 ("movti_bigconst"): New pattern definition.
14430
14431 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
14432
14433 PR target/80080
14434 * s390-protos.h (s390_expand_cs_hqi): Removed.
14435 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
14436 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
14437 modes as well as CCZ1mode and CCZmode.
14438 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
14439 signature of s390_emit_compare_and_swap.
14440 (s390_expand_cs_hqi): Likewise, make static.
14441 (s390_expand_cs_tdsi): Generate an explicit compare before trying
14442 compare-and-swap, in some cases.
14443 (s390_expand_cs): Wrapper function.
14444 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
14445 atomic_exchange.
14446 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
14447 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
14448 patterns for small and large integers. Forbid symref memory operands.
14449 Move expander to s390.c. Require cc register.
14450 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
14451 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
14452 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
14453 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
14454 symref memory operands. Remove CC mode and call s390_match_ccmode
14455 instead.
14456 ("atomic_exchange<mode>"): Allow and implement all integer modes.
14457
14458 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
14459
14460 * config/s390/s390.md (define_peephole2): New peephole to help
14461 combining the load-and-test pattern with volatile memory.
14462
14463 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
14464
14465 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
14466 with CCZmode for TARGET_Z196.
14467
14468 2017-04-25 Jakub Jelinek <jakub@redhat.com>
14469
14470 PR rtl-optimization/80501
14471 * combine.c (make_compound_operation_int): Set subreg_code to SET
14472 even for AND with mask of the sign bit of mode.
14473
14474 PR rtl-optimization/80500
14475 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
14476 sum's initial value.
14477
14478 2017-04-25 Julian Brown <julian@codesourcery.com>
14479 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14480
14481 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
14482
14483 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
14484
14485 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
14486
14487 2017-04-25 Julian Brown <julian@codesourcery.com>
14488 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14489
14490 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
14491 (thunderx2t99_sha): New Reservation.
14492
14493 2017-04-25 Julian Brown <julian@codesourcery.com>
14494 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
14495
14496 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
14497 type for 1-element load.
14498
14499 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
14500
14501 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
14502
14503 2017-04-24 Martin Jambor <mjambor@suse.cz>
14504
14505 PR tree-optimization/80293
14506 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
14507 char arrays not totally scalarizable if it is false.
14508 (analyze_all_variable_accesses): Pass correct value in the new
14509 parameter. Add a statistics counter.
14510
14511 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
14512
14513 PR middle-end/79931
14514 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
14515
14516 2017-04-24 Richard Biener <rguenther@suse.de>
14517
14518 PR tree-optimization/80494
14519 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
14520 out for complex types.
14521
14522 2017-04-24 Richard Biener <rguenther@suse.de>
14523
14524 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
14525 * tree-ssa-sccvn.c (print_scc): Print SCC size.
14526 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
14527 (DFS): Adjust and never fail.
14528 (sccvn_dom_walker::fail): Remove.
14529 (sccvn_dom_walker::before_dom_children): Adjust.
14530 (run_scc_vn): Likewise and never fail.
14531 * tree-ssa-pre.c (pass_pre::execute): Adjust.
14532 (pass_fre::execute): Likewise.
14533
14534 2017-04-24 Richard Biener <rguenther@suse.de>
14535
14536 PR tree-optimization/79725
14537 * tree-ssa-sink.c (statement_sink_location): Return whether
14538 failure reason was zero uses. Move that check later.
14539 (sink_code_in_bb): Deal with zero uses by removing the stmt
14540 if possible.
14541
14542 2017-04-24 Richard Biener <rguenther@suse.de>
14543
14544 PR c++/2972
14545 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
14546 pointer-based references.
14547
14548 2017-04-24 Richard Biener <rguenther@suse.de>
14549
14550 PR bootstrap/79814
14551 * pass_manager.h (pass_manager::operator new): Remove.
14552 (pass_manager::operator delete): Likewise.
14553 * passes.c (pass_manager::operator new): Remove.
14554 (pass_manager::operator delete): Likewise.
14555 (pass_manager::pass_manager): Zero individual pass members.
14556
14557 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
14558
14559 PR target/70799
14560 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
14561 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
14562 Check "XEXP (src, 1)" operand here.
14563 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
14564 Check "XEXP (src, 1)" operand here.
14565 (dimode_scalar_chain::make_vector_copies): Detect count register
14566 of a shift instruction. Zero extend count register from QImode
14567 to DImode to satisfy vector shift pattern count operand predicate.
14568 Substitute vector shift count operand with a DImode copy.
14569 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
14570 vector register.
14571
14572 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
14573
14574 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
14575 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
14576 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
14577 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
14578 (UNSPEC_NOREX_MEM): Remove definition.
14579
14580 2017-04-21 Richard Biener <rguenther@suse.de>
14581
14582 PR tree-optimization/79547
14583 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14584 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
14585 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
14586 without any constraints.
14587
14588 2017-04-21 Richard Biener <rguenther@suse.de>
14589
14590 PR tree-optimization/78847
14591 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
14592
14593 2017-04-21 Richard Biener <rguenther@suse.de>
14594
14595 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
14596 (build_distinct_type_copy): Likewise.
14597 (build_variant_type_copy): Likewise.
14598 * tree.c (build_qualified_type): Pass down mem-stat info.
14599 (build_distinct_type_copy): Likewise.
14600 (build_variant_type_copy): Likewise.
14601
14602 2017-04-21 Richard Biener <rguenther@suse.de>
14603
14604 PR tree-optimization/80237
14605 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
14606 defaulted to NULL.
14607 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
14608 for a simplified result.
14609
14610 2016-04-21 Richard Biener <rguenther@suse.de>
14611
14612 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
14613 sth as strict as a simple_iv but a chrec without symbols and an
14614 operand defined in the loop we are peeling (and not some subloop).
14615 (propagate_constants_for_unrolling): Propagate all constants.
14616
14617 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
14618
14619 PR target/79804
14620 * config/i386/i386.c (print_reg): Remove assert for disalowed
14621 regno values, call output_operand_lossage instead.
14622
14623 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
14624
14625 PR target/78090
14626 * config/i386/constraints.md (Yc): New register constraint.
14627 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
14628 Use Yc constraint for alternative 2 of operand 0. Remove
14629 preferred_for_speed attribute.
14630
14631 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
14632
14633 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
14634 lastprivate clauses in SIMT case.
14635
14636 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
14637
14638 * doc/invoke.texi (-Wextra-semi): Document new warning option.
14639
14640 2017-04-20 Richard Biener <rguenther@suse.de>
14641
14642 PR tree-optimization/57796
14643 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
14644 as N scalar stores.
14645 (vect_model_load_cost): Cost gathers as N scalar loads.
14646
14647 2017-04-20 Richard Biener <rguenther@suse.de>
14648
14649 * ggc-page.c (ggc_allocated_p): Rename to ...
14650 (safe_lookup_page_table_entry): ... this and return the lookup
14651 result.
14652 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
14653
14654 2017-04-20 Richard Biener <rguenther@suse.de>
14655
14656 PR tree-optimization/80453
14657 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
14658 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
14659 from the conditions.
14660 (vn_phi_eq): Pass them down.
14661 (vn_phi_lookup): Record them.
14662 (vn_phi_insert): Likewise.
14663
14664 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
14665
14666 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
14667 uninitialized variable warning to avoid buffer overrun.
14668
14669 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
14670
14671 PR other/71250
14672 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
14673 is suppressed for '{ 0 }' in C.
14674
14675 2017-04-20 Jakub Jelinek <jakub@redhat.com>
14676
14677 * BASE-VER: Set to 8.0.0.
14678
14679 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
14680
14681 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
14682 priority .init_array and .fini_array section with SECTION_NOTYPE
14683 flag.
14684
14685 2017-04-20 Jakub Jelinek <jakub@redhat.com>
14686
14687 PR middle-end/80423
14688 * tree.h (build_array_type): Add typeless_storage default argument.
14689 * tree.c (type_cache_hasher::equal): Also compare
14690 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
14691 (build_array_type): Add typeless_storage argument, set
14692 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
14693 recursive call.
14694 (build_nonshared_array_type): Adjust build_array_type_1 caller.
14695 (build_array_type): Likewise. Add typeless_storage argument.
14696
14697 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
14698 Jakub Jelinek <jakub@redhat.com>
14699
14700 PR tree-optimization/80426
14701 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
14702 operation on symbolic operands, also compute the overflow for the
14703 invariant part when the operation degenerates into a negation.
14704
14705 2017-04-19 Jakub Jelinek <jakub@redhat.com>
14706
14707 PR debug/80461
14708 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
14709 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
14710
14711 PR debug/80436
14712 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
14713
14714 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
14715
14716 PR target/80462
14717 * config/avr/avr.c (tree.h): Include it.
14718 (cgraph.h): Include it.
14719 (avr_encode_section_info): Don't warn for uninitialized progmem
14720 variable if it's just an alias.
14721
14722 2017-04-19 Richard Biener <rguenther@suse.de>
14723
14724 PR ipa/65972
14725 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
14726 when needed by AutoPGO.
14727
14728 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
14729
14730 PR lto/50345
14731 * doc/lto.texi: Remove an extra 'that'.
14732
14733 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
14734
14735 PR rtl-optimization/80429
14736 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
14737 are only used in debug insns.
14738
14739 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
14740 Vladimir Makarov <vmakarov@redhat.com>
14741
14742 * config/sparc/predicates.md (input_operand): Add comment. Return
14743 true for any memory operand when LRA is in progress.
14744 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
14745
14746 2017-04-18 Jeff Law <law@redhat.com>
14747
14748 PR target/74563
14749 * mips.md ({return,simple_return}_internal): Do not overwrite
14750 operands[0].
14751
14752 2017-04-18 Jakub Jelinek <jakub@redhat.com>
14753
14754 PR tree-optimization/80443
14755 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
14756 instead of adding 1, subtract -1 and similarly instead of subtracting
14757 1 add -1.
14758
14759 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
14760
14761 PR rtl-optimization/80357
14762 * haifa-sched.c (tmp_bitmap): New variable.
14763 (model_recompute): Handle duplicate use records.
14764 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
14765 (free_global_sched_pressure_data): Free it.
14766
14767 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
14768
14769 Revert:
14770 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
14771 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
14772 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
14773 instead of SYSTEM_HEADER_DIR.
14774
14775 2017-04-18 Jeff Law <law@redhat.com>
14776
14777 PR middle-end/80422
14778 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
14779 predecessors after walking up the insn chain.
14780
14781 2017-04-18 Jakub Jelinek <jakub@redhat.com>
14782
14783 PR debug/80263
14784 * dwarf2out.c (modified_type_die): Try harder not to emit internal
14785 sizetype type into debug info.
14786
14787 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14788
14789 PR target/80099
14790 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
14791 unneeded test for TARGET_UPPER_REGS_SF.
14792 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
14793
14794 2017-04-18 Jakub Jelinek <jakub@redhat.com>
14795
14796 PR sanitizer/80444
14797 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
14798 instead of gsi_after_labels.
14799
14800 2017-04-18 Jeff Law <law@redhat.com>
14801
14802 * regcprop.c (maybe_mode_change): Avoid creating copies of the
14803 stack pointer.
14804
14805 Revert:
14806 2017-04-13 Jeff Law <law@redhat.com>
14807 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
14808 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
14809
14810 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
14811
14812 PR target/79453
14813 * config/avr/avr.c (intl.h): Include it.
14814 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
14815
14816 2017-04-18 Martin Liska <mliska@suse.cz>
14817
14818 PR gcov-profile/78783
14819 * gcov-tool.c (gcov_output_files): Validate that destination
14820 file is either removed by the tool or by a user.
14821
14822 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
14823 Guy Benyei <guybe@mellanox.com>
14824
14825 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
14826 block, and do not negate it, the stored id is already negative.
14827
14828 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
14829
14830 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
14831
14832 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14833
14834 PR target/80098
14835 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
14836 masks of options that should be turned off if the VSX vector
14837 options are turned off.
14838 (OTHER_P8_VECTOR_MASKS): Likewise.
14839 (OTHER_VSX_VECTOR_MASKS): Likewise.
14840 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
14841 rs6000_disable_incompatible_switches to validate no type switches
14842 like -mvsx.
14843 (rs6000_incompatible_switch): New function to disallow turning on
14844 other vector options if -mno-vsx, -mno-power8-vector, or
14845 -mno-power9-vector are specified.
14846
14847 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
14848
14849 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
14850
14851 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
14852
14853 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
14854 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
14855 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
14856 (ARG_POINTER_CFA_OFFSET): Likewise.
14857
14858 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
14859
14860 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
14861 conditions to take advantage of various optimizations.
14862
14863 2017-04-13 Jeff Law <law@redhat.com>
14864
14865 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
14866 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
14867 (zero_extendsidi2_dext): Likewise.
14868
14869 2017-04-13 Jakub Jelinek <jakub@redhat.com>
14870
14871 PR sanitizer/80403
14872 * fold-const.c (fold_ternary_loc): Revert
14873 use op0 instead of fold_convert_loc (loc, type, arg0) part of
14874 2017-04-12 change.
14875
14876 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
14877
14878 PR rtl-optimization/80343
14879 * lra-remat.c (update_scratch_ops): Assign original hard reg to
14880 new scratch pseudo.
14881
14882 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
14883
14884 PR sanitizer/80414
14885 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
14886 to ubsan_encode_value.
14887
14888 2017-04-13 Jeff Law <law@redhat.com>
14889
14890 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
14891 appearing in DEBUG_INSNs.
14892
14893 2017-04-13 Martin Liska <mliska@suse.cz>
14894
14895 PR gcov-profile/80413
14896 * gcov-io.c (gcov_write_string): Copy to buffer just when
14897 allocated size is greater than zero.
14898
14899 2017-04-13 Jakub Jelinek <jakub@redhat.com>
14900
14901 PR debug/80321
14902 * dwarf2out.c (decls_for_scope): Ignore declarations of
14903 current_function_decl in BLOCK_NONLOCALIZED_VARS.
14904
14905 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
14906
14907 PR lto/69953
14908 * ipa-visibility.c (non_local_p): Fix typos.
14909 (localize_node): When localizing symbol in same comdat group,
14910 dissolve the group only when we know external symbols are going
14911 to be privatized.
14912 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
14913
14914 2017-04-12 Jakub Jelinek <jakub@redhat.com>
14915
14916 PR tree-optimization/79390
14917 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
14918 order does not result in usable sequence, retry with reversed operand
14919 order.
14920
14921 PR sanitizer/80403
14922 PR sanitizer/80404
14923 PR sanitizer/80405
14924 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
14925 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
14926 op0 instead of fold_convert_loc (loc, type, arg0).
14927
14928 2017-04-12 Jeff Law <law@redhat.com>
14929
14930 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
14931 has a delay slot in the generated code.
14932
14933 * config/cris/cris.md (cris_preferred_reload_class): Return
14934 GENNONACR_REGS rather than GENERAL_REGS.
14935
14936 2017-04-12 Jakub Jelinek <jakub@redhat.com>
14937
14938 PR c/80163
14939 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
14940 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
14941 signedness of the result type.
14942
14943 2017-04-12 Richard Biener <rguenther@suse.de>
14944 Jeff Law <law@redhat.com>
14945
14946 PR tree-optimization/80359
14947 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
14948 trim stores to TARGET_MEM_REFs.
14949
14950 2017-04-12 Richard Biener <rguenther@suse.de>
14951
14952 PR tree-optimization/79390
14953 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
14954 threading case even more.
14955
14956 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
14957
14958 PR target/80382
14959 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
14960 for quad_address_p for TImode, instead of just not indexed_address.
14961
14962 2017-04-12 Richard Biener <rguenther@suse.de>
14963 Bernd Edlinger <bernd.edlinger@hotmail.de>
14964
14965 PR middle-end/79671
14966 * alias.c (component_uses_parent_alias_set_from): Handle
14967 TYPE_TYPELESS_STORAGE.
14968 (get_alias_set): Likewise.
14969 * tree-core.h (tree_type_common): Add typeless_storage flag.
14970 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
14971 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
14972 for types containing members with TYPE_TYPELESS_STORAGE.
14973 (place_field): Likewise.
14974 (layout_type): Likewise for ARRAY_TYPE.
14975 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
14976 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
14977 TYPE_TYPELESS_STORAGE.
14978 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
14979
14980 2017-04-12 Jakub Jelinek <jakub@redhat.com>
14981
14982 PR sanitizer/80349
14983 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
14984 first argument to type.
14985
14986 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14987
14988 PR target/80376
14989 PR target/80315
14990 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
14991 CONST0_RTX (mode) rather than const0_rtx where appropriate.
14992 (rs6000_expand_binop_builtin): Likewise.
14993 (rs6000_expand_ternop_builtin): Likewise; also add missing
14994 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
14995 vshasigma built-ins.
14996 * doc/extend.texi: Document that vec_xxpermdi's third argument
14997 must be a constant.
14998
14999 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
15000
15001 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
15002 Use shift_const cost parameter when calculating gain of STV shifts.
15003
15004 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
15005
15006 PR rtl-optimization/70478
15007 * lra-constraints.c (process_alt_operands): Check memory for
15008 disfavoring memory insn operand.
15009
15010 2017-04-11 Jakub Jelinek <jakub@redhat.com>
15011
15012 PR middle-end/80100
15013 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
15014 left shift in unsigned HOST_WIDE_INT type.
15015
15016 PR rtl-optimization/80385
15017 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
15018 (not (neg X)) into (plus X -1) for complex or non-integral modes.
15019
15020 PR libgomp/80394
15021 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
15022 if they have any depend clauses.
15023
15024 2017-04-11 Martin Liska <mliska@suse.cz>
15025
15026 PR ipa/80212
15027 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
15028 * ipa-split.c (split_function): Create a local comdat symbol
15029 if caller is in a comdat group.
15030
15031 2017-04-11 Martin Liska <mliska@suse.cz>
15032
15033 PR ipa/80212
15034 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
15035 flags.
15036
15037 2017-04-11 Martin Sebor <msebor@redhat.com>
15038
15039 PR middle-end/80364
15040 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
15041 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
15042 for INTEGER_TYPE.
15043 (directive::set_width, directive::set_precision, format_character):
15044 Adjust.
15045 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
15046 INTEGER_TYPE.
15047
15048 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
15049
15050 PR target/80389
15051 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
15052 conflict, set target->arch_name instead of target->cpu_name.
15053
15054 2017-04-11 Richard Biener <rguenther@suse.de>
15055
15056 PR tree-optimization/80374
15057 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
15058 build_zero_cst, remove fold_convertible_p check again.
15059
15060 2017-04-11 Martin Liska <mliska@suse.cz>
15061
15062 PR sanitizer/70878
15063 * ubsan.c (instrument_object_size): Do not instrument register
15064 variables.
15065
15066 2017-04-11 Jakub Jelinek <jakub@redhat.com>
15067
15068 PR target/80381
15069 * config/i386/i386-builtin-types.def
15070 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
15071 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
15072 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
15073 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
15074 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
15075 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
15076 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
15077 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
15078 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
15079 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
15080 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
15081 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
15082 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
15083 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
15084 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
15085 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
15086 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
15087 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
15088 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
15089 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
15090 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
15091 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
15092 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
15093 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
15094 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
15095 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
15096 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
15097 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
15098 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
15099 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
15100 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
15101 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
15102 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
15103 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
15104 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
15105 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
15106 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
15107 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
15108 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
15109 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
15110 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
15111 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
15112 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
15113 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
15114 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
15115 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
15116 aliases.
15117 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
15118 flag to second_arg_count, handle 4 argument function type _COUNT
15119 aliases, handle second_arg_count on second argument rather than last.
15120
15121 2017-04-10 Jeff Law <law@redhat.com>
15122
15123 PR tree-optimization/80374
15124 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
15125 record anything if we can not convert integer_zero_node to the
15126 desired type.
15127
15128 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
15129
15130 PR target/80108
15131 * config/rs6000/rs6000.c (rs6000_option_override_internal):
15132 Enhance special handling given to the TARGET_P9_MINMAX option in
15133 relation to certain other options.
15134
15135 2017-04-10 Bin Cheng <bin.cheng@arm.com>
15136
15137 PR tree-optimization/80153
15138 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
15139 remove POINTER_PLUS_EXPR's base part directly, rather than through
15140 aff_tree.
15141
15142 2017-04-10 Richard Biener <rguenther@suse.de>
15143 Bin Cheng <bin.cheng@arm.com>
15144
15145 PR tree-optimization/80153
15146 * tree-affine.c (aff_combination_to_tree): Get base pointer from
15147 the first element of pointer type aff_tree. Build result expr in
15148 aff_tree's type.
15149 (add_elt_to_tree): Convert to type unconditionally. Remove other
15150 fold_convert calls.
15151 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
15152 (rewrite_use_nonlinear_expr): Check invariant using iv information.
15153
15154 2017-04-10 Richard Biener <rguenther@suse.de>
15155
15156 * tree-ssa-structalias.c (find_func_aliases): Properly handle
15157 asm inputs.
15158
15159 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
15160
15161 PR rtl-optimization/70478
15162 * lra-constraints.c (curr_small_class_check): New.
15163 (update_and_check_small_class_inputs): New.
15164 (process_alt_operands): Update curr_small_class_check. Disfavor
15165 alternative insn memory operands. Check available regs for small
15166 class operands.
15167
15168 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
15169
15170 PR target/80057
15171 * config/mips/mips.opt (-mvirt): Update description.
15172 * doc/invoke.texi (-mvirt): Likewise.
15173
15174 2017-04-10 Richard Biener <rguenther@suse.de>
15175
15176 PR middle-end/80362
15177 * fold-const.c (fold_binary_loc): Look at unstripped ops when
15178 looking for NEGATE_EXPR in -A / -B to A / B folding.
15179
15180 2017-04-10 Martin Liska <mliska@suse.cz>
15181
15182 PR gcov-profile/80224
15183 * gcov.c (print_usage): Fix usage string.
15184 (get_gcov_intermediate_filename): Remove.
15185 (output_gcov_file): Use both for normal and intermediate format.
15186 (generate_results): Do not initialize special file for
15187 intermediate format.
15188
15189 2017-04-10 Richard Biener <rguenther@suse.de>
15190
15191 PR tree-optimization/80304
15192 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
15193 for safelen.
15194
15195 2017-04-10 Nathan Sidwell <nathan@acm.org>
15196
15197 PR target/79905
15198 * config/rs6000/rs6000.c (rs6000_vector_type): New.
15199 (rs6000_init_builtins): Use it.
15200
15201 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15202
15203 * config/arm/arm.md (<mrc>): Add mode to SET source.
15204 (<mrrc>): Likewise.
15205
15206 2017-04-10 Richard Biener <rguenther@suse.de>
15207
15208 PR middle-end/80344
15209 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
15210
15211 2017-04-10 Jakub Jelinek <jakub@redhat.com>
15212
15213 PR target/80324
15214 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
15215 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
15216 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
15217 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
15218 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
15219 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
15220 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
15221 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
15222 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
15223 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
15224 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
15225 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
15226 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
15227 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
15228 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
15229 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
15230 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
15231 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
15232 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
15233 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
15234 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
15235 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
15236 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
15237
15238 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
15239
15240 PR rtl-optimization/70478
15241 * lra-constraints.c: Reverse the last patch.
15242
15243 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
15244
15245 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
15246 Add comment for WCHAR_T.
15247
15248 2017-04-08 Martin Liska <mliska@suse.cz>
15249
15250 Revert:
15251 2017-04-07 Martin Liska <mliska@suse.cz>
15252
15253 PR ipa/80212
15254 * ipa-split.c (split_function): Add function part to a same comdat
15255 group.
15256
15257 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15258
15259 PR target/80358
15260 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
15261
15262 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
15263
15264 * rs6000/rs6000.c (vec_load_pendulum): Rename...
15265 (vec_pairing): ...to this.
15266 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
15267 (rs6000_sched_init): Adjust for name change.
15268 (struct rs6000_sched_context): Likewise.
15269 (rs6000_init_sched_context): Likewise.
15270 (rs6000_set_sched_context): Likewise.
15271
15272 2017-04-07 Jakub Jelinek <jakub@redhat.com>
15273
15274 PR target/80322
15275 PR target/80323
15276 PR target/80325
15277 PR target/80326
15278 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
15279 intrinsics.
15280 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
15281 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
15282 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
15283
15284 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
15285
15286 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
15287
15288 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
15289
15290 PR rtl-optimization/70703
15291 * ira-color.c (update_conflict_hard_regno_costs): Use
15292 int64_t instead of HOST_WIDE_INT.
15293
15294 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
15295
15296 PR rtl-optimization/70478
15297 * lra-constraints.c (process_alt_operands): Disfavor alternative
15298 insn memory operands.
15299
15300 2017-04-07 Jeff Law <law@redhat.com>
15301
15302 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
15303 CALL and NOTE_INSN_CALL_ARG_LOCATION.
15304
15305 2017-04-07 Martin Liska <mliska@suse.cz>
15306
15307 PR target/79889
15308 * config/aarch64/aarch64.c (aarch64_process_target_attr):
15309 Show error message instead of an ICE.
15310
15311 2017-04-07 Martin Liska <mliska@suse.cz>
15312
15313 PR ipa/80212
15314 * ipa-split.c (split_function): Add function part to a same comdat
15315 group.
15316
15317 2017-04-07 Richard Biener <rguenther@suse.de>
15318
15319 PR middle-end/80341
15320 * tree.c (get_unwidened): Also handle ! for_type case for
15321 INTEGER_CSTs.
15322 * convert.c (do_narrow): Split out from ...
15323 (convert_to_integer_1): ... here. Do not pass final truncation
15324 type to get_unwidened for TRUNC_DIV_EXPR.
15325
15326 2017-04-07 Richard Biener <rguenther@suse.de>
15327
15328 * tree-affine.c (wide_int_ext_for_comb): Take type rather
15329 than aff_tree.
15330 (aff_combination_const): Adjust.
15331 (aff_combination_scale): Likewise.
15332 (aff_combination_add_elt): Likewise.
15333 (aff_combination_add_cst): Likewise.
15334 (aff_combination_convert): Likewise.
15335 (add_elt_to_tree): Likewise. Remove unused argument.
15336 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
15337
15338 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
15339
15340 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
15341 definition.
15342 * config/arm/arm.c (arm_default_short_enums): Use
15343 ARM_DEFAULT_SHORT_ENUMS.
15344 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
15345
15346 2017-04-06 Jakub Jelinek <jakub@redhat.com>
15347
15348 PR debug/80234
15349 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
15350 members with redundant out-of-class redeclaration.
15351
15352 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
15353
15354 PR target/80286
15355 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
15356 * config/i386/i386.md (*zero_extendsidi2):
15357 Add (?*x,*x) and (?*v,*v) alternatives.
15358
15359 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
15360
15361 PR target/79733
15362 * config/i386/i386.c (ix86_expand_builtin)
15363 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
15364 mode from insn data. Convert operands to insn operand mode.
15365 Copy operands that don't satisfy insn predicate to a register.
15366
15367 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
15368
15369 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
15370 Update comments.
15371
15372 2017-04-06 Richard Biener <rguenther@suse.de>
15373
15374 PR tree-optimization/80334
15375 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
15376 preserve alignment of accesses.
15377
15378 2017-04-06 Richard Biener <rguenther@suse.de>
15379
15380 PR tree-optimization/80262
15381 * tree-sra.c (build_ref_for_offset): Preserve address-space
15382 information.
15383 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
15384 Drop useless address-space information on MEM_REF offsets.
15385
15386 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
15387
15388 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
15389
15390 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
15391
15392 PR rtl-optimization/70703
15393 * ira-color.c (update_conflict_hard_regno_costs): Use
15394 HOST_WIDE_INT instead of long.
15395
15396 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
15397
15398 PR target/80298
15399 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
15400 not defined for x86_64 target. Add -mmmx target option when __SSE2__
15401 is not defined.
15402 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
15403 for x86_64 target. Handle -m3dnowa option.
15404
15405 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
15406
15407 PR rtl-optimization/70703
15408 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
15409 (update_conflict_hard_regno_costs): Use long instead of unsigned
15410 arithmetic for cost calculation.
15411
15412 2017-04-05 Jakub Jelinek <jakub@redhat.com>
15413 Bernd Edlinger <bernd.edlinger@hotmail.de>
15414
15415 PR sanitizer/80308
15416 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
15417 for big endian.
15418
15419 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
15420
15421 PR target/78002
15422 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
15423 ptr_mode with Pmode throughout.
15424 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
15425 into probe_stack_range and use DImode.
15426
15427 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
15428
15429 PR target/79890
15430 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
15431 call_eh_return is true.
15432
15433 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15434
15435 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
15436 Initialize last_match_fntype_index.
15437
15438 2017-04-05 Jakub Jelinek <jakub@redhat.com>
15439
15440 PR target/80310
15441 * tree-nvr.c: Include internal-fn.h.
15442 (pass_return_slot::execute): Ignore internal calls without
15443 direct optab.
15444
15445 2017-04-04 Jakub Jelinek <jakub@redhat.com>
15446 Richard Biener <rguenther@suse.de>
15447
15448 PR c++/80297
15449 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
15450 captures used multiple times, except for the last use.
15451 * generic-match-head.c: Include gimplify.h.
15452
15453 2017-04-04 Jakub Jelinek <jakub@redhat.com>
15454
15455 PR tree-optimization/79390
15456 * target.h (struct noce_if_info): Declare.
15457 * targhooks.h (default_noce_conversion_profitable_p): Declare.
15458 * target.def (noce_conversion_profitable_p): New target hook.
15459 * ifcvt.h (struct noce_if_info): New type, moved from ...
15460 * ifcvt.c (struct noce_if_info): ... here.
15461 (noce_conversion_profitable_p): Renamed to ...
15462 (default_noce_conversion_profitable_p): ... this. No longer
15463 static nor inline.
15464 (noce_try_store_flag_constants, noce_try_addcc,
15465 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
15466 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
15467 instead of noce_conversion_profitable_p.
15468 * config/i386/i386.c: Include ifcvt.h.
15469 (ix86_option_override_internal): Don't override
15470 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
15471 (ix86_noce_conversion_profitable_p): New function.
15472 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
15473 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
15474 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
15475 * doc/tm.texi: Regenerated.
15476
15477 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15478
15479 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
15480 correction.
15481
15482 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15483
15484 PR target/80307
15485 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
15486 instructions for small multiply cores.
15487
15488 2017-04-04 Jeff Law <law@redhat.com>
15489
15490 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
15491 added member.
15492 (mips_expand_vec_perm_const): Initialize elements in orig_perm
15493 that are not set by the loop over the elements.
15494
15495 2017-04-04 Jakub Jelinek <jakub@redhat.com>
15496
15497 PR target/80286
15498 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
15499 int mode, convert_modes it to mode as unsigned, otherwise use
15500 lowpart_subreg to mode rather than SImode.
15501 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
15502 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
15503 Use DImode instead of SImode for the shift count operand.
15504 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
15505 Likewise.
15506
15507 2017-04-04 Richard Biener <rguenther@suse.de>
15508
15509 PR middle-end/80281
15510 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
15511 arithmetic done for the negate or the plus. Simplify.
15512 (A - (-B) -> A + B): Likewise.
15513 * fold-const.c (split_tree): Make sure to not negate pointers.
15514
15515 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
15516
15517 PR rtl-optimization/60818
15518 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
15519 a compare of comparisons with the thing compared if this results
15520 in a different machine mode.
15521
15522 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
15523
15524 * alias.c (base_alias_check): Fix typo in comment.
15525 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
15526 * cgraphunit.c (symbol_table::compile): Likewise.
15527 * collect2.c (maybe_run_lto_and_relink): Likewise.
15528 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
15529 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
15530 * config/avr/avr.c (avr_map_op_t): Likewise.
15531 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
15532 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
15533 * config/epiphany/epiphany.md (movcc): Likewise.
15534 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
15535 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
15536 Likewise.
15537 * config/mips/mips.c (mips_save_restore_reg): Likewise.
15538 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
15539 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
15540 * config/sh/sh.c (sh_rtx_costs): Likewise.
15541 * fold-const.c (fold_truth_andor): Likewise.
15542 * genautomata.c (collapse_flag): Likewise.
15543 * gengtype.h (struct type::u::s): Likewise.
15544 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
15545 * input.c (FORMAT_AMOUNT): Likewise.
15546 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
15547 (known_aggs_to_agg_replacement_list): Likewise.
15548 * ipa-inline-analysis.c: Likewise.
15549 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
15550 * ipa-polymorphic-call.c
15551 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
15552 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
15553 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
15554 Likewise.
15555 * modulo-sched.c (apply_reg_moves): Likewise.
15556 * omp-expand.c (build_omp_regions_1): Likewise.
15557 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
15558 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
15559 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
15560 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
15561 * value-prof.c: Likewise.
15562 * var-tracking.c (val_reset): Likewise.
15563
15564 2017-04-03 Richard Biener <rguenther@suse.de>
15565
15566 PR tree-optimization/80275
15567 * fold-const.c (split_address_to_core_and_offset): Handle
15568 POINTER_PLUS_EXPR.
15569
15570 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
15571
15572 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
15573 descriptors is at least equal to that of functions.
15574
15575 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
15576
15577 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
15578
15579 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
15580
15581 PR target/80250
15582 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
15583 (mov<IMOD4:mode>): New expander.
15584 (*mov<IMOD4:mode>_internal): New insn and split pattern.
15585
15586 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
15587
15588 PR rtl-optimization/79405
15589 * fwprop.c (propagations_left): New variable.
15590 (forward_propagate_into): Decrement it.
15591 (fwprop_init): Initialize it.
15592 (fw_prop): If the variable has reached zero, stop propagating.
15593 (fwprop_addr): Ditto.
15594
15595 2017-03-31 Jakub Jelinek <jakub@redhat.com>
15596
15597 PR debug/79255
15598 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
15599 a FUNCTION_DECL, pass it as decl instead of origin to
15600 process_scope_var.
15601
15602 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
15603
15604 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
15605 string.
15606
15607 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
15608
15609 PR target/80107
15610 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
15611 TARGET_VSX_SMALL_INTEGER.
15612
15613 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15614
15615 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
15616 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
15617
15618 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
15619
15620 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
15621 extraction from odd-numbered MSA register.
15622
15623 2017-03-31 Jakub Jelinek <jakub@redhat.com>
15624
15625 PR middle-end/80173
15626 * expmed.c (store_bit_field_1): Don't attempt to create
15627 a word subreg out of hard registers wider than word if they
15628 have HARD_REGNO_NREGS of 1 for their mode.
15629
15630 PR middle-end/80163
15631 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
15632 conversions to integer types wider than word and pointer.
15633
15634 PR debug/80025
15635 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
15636 (rtx_equal_for_cselib_p): Pass 0 to it.
15637 * cselib.c (cselib_hasher::equal): Likewise.
15638 (rtx_equal_for_cselib_1): Add depth argument. If depth
15639 is 128, don't look up VALUE locs and punt. Increment
15640 depth in recursive calls when walking VALUE locs.
15641
15642 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
15643
15644 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
15645 (make_gcov_file_name): Use the canonical path name for generating
15646 the MD5 value.
15647 (read_line): Fix handling of files with ascii null bytes.
15648
15649 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
15650
15651 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
15652 to initialise a vector register instead
15653 of using a const_int.
15654
15655 2017-03-30 Jakub Jelinek <jakub@redhat.com>
15656
15657 PR translation/80189
15658 * gimplify.c (omp_default_clause): Use %qs instead of %s in
15659 diagnostic messages.
15660
15661 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
15662
15663 PR target/80246
15664 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
15665 (dfp_diex_<mode>): Update mode of operand 1.
15666 * doc/extend.texi (dxex, dxexq): Document change to return type.
15667 (diex, diexq): Document change to argument type.
15668
15669 2017-03-30 Martin Jambor <mjambor@suse.cz>
15670
15671 PR ipa/77333
15672 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
15673 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
15674 it reflects the signature changes performed at the callee side.
15675 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
15676 to cgraph_build_function_type_skip_args.
15677 (build_function_decl_skip_args): Adjust call to the above function.
15678
15679 2017-03-30 Jakub Jelinek <jakub@redhat.com>
15680
15681 PR target/80206
15682 * config/i386/sse.md
15683 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
15684 register as dest whenever it is a MEM not rtx_equal_p to the
15685 corresponding dup operand, and when forcing into reg move the
15686 reg into the memory afterwards.
15687 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
15688 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
15689 for the force_reg mode.
15690 (avx512vl_vextractf128<mode>): Use register as dest either
15691 always when a MEM, or when it is a MEM not rtx_equal_p to the
15692 corresponding dup operand, or even not when it is a CONST_VECTOR
15693 depending on the mode and lo vs. hi.
15694 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
15695 parens.
15696 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
15697 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
15698 Likewise. Require that operands[2] is even.
15699 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
15700 Remove extraneous parens. Require that operands[2] is a multiple
15701 of 4.
15702 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
15703 operands[0] is a MEM if <mask_applied>, the predicates/constraints
15704 disallow memory then.
15705
15706 2017-03-30 Richard Biener <rguenther@suse.de>
15707
15708 PR tree-optimization/77498
15709 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
15710 to non-constants over backedges.
15711
15712 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
15713
15714 PR rtl-optimization/80233
15715 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
15716 as last_combined_insn. Do not test for BARRIER_P separately.
15717
15718 2017-03-29 Andreas Schwab <schwab@suse.de>
15719
15720 PR ada/80146
15721 * calls.c (prepare_call_address): Convert funexp to Pmode before
15722 copying to temp reg.
15723
15724 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15725
15726 PR tree-optimization/80158
15727 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
15728 Handle possible future case of more than one alternate
15729 interpretation.
15730 (replace_rhs_if_not_dup): Likewise.
15731 (replace_one_candidate): Likewise.
15732
15733 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
15734
15735 PR rtl-optimization/80193
15736 * ira.c (ira): Do not check allocation for LRA.
15737
15738 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
15739
15740 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
15741 (nvptx_output_simt_exit): Declare.
15742 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
15743 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
15744 (init_softstack_frame): Move initialization of crtl->is_leaf to...
15745 (nvptx_declare_function_name): ...here. Emit declaration of local
15746 memory space buffer for omp_simt_enter insn.
15747 (nvptx_output_unisimt_switch): New.
15748 (nvptx_output_softstack_switch): New.
15749 (nvptx_output_simt_enter): New.
15750 (nvptx_output_simt_exit): New.
15751 * config/nvptx/nvptx.h (struct machine_function): New fields
15752 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
15753 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
15754 (UNSPECV_SIMT_EXIT): Ditto.
15755 (omp_simt_enter_insn): New insn.
15756 (omp_simt_enter): New expansion.
15757 (omp_simt_exit): New insn.
15758 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
15759
15760 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
15761 (expand_GOMP_SIMT_ENTER_ALLOC): New.
15762 (expand_GOMP_SIMT_EXIT): New.
15763 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
15764 (GOMP_SIMT_ENTER_ALLOC): Ditto.
15765 (GOMP_SIMT_EXIT): Ditto.
15766 * target-insns.def (omp_simt_enter): New insn.
15767 (omp_simt_exit): Ditto.
15768 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
15769 simt_dlist.
15770 (lower_rec_simd_input_clauses): Implement SIMT privatization.
15771 (lower_rec_input_clauses): Likewise.
15772 (lower_lastprivate_clauses): Handle SIMT privatization.
15773
15774 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
15775 (ompdevlow_adjust_simt_enter): New.
15776 (find_simtpriv_var_op): New.
15777 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
15778 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
15779
15780 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
15781 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
15782 (copy_decl_for_dup_finish): Ditto.
15783
15784 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
15785
15786 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
15787
15788 PR target/53383
15789 * config/i386/i386.c (ix86_option_override_internal): Always
15790 allow -mpreferred-stack-boundary=3 for 64-bit targets.
15791
15792 2017-03-28 Bin Cheng <bin.cheng@arm.com>
15793
15794 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
15795
15796 2017-03-28 Bin Cheng <bin.cheng@arm.com>
15797
15798 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
15799 mark new edge's irreducible flag accordign to it.
15800 (vect_do_peeling): Check loop preheader edge's irreducible flag
15801 and pass it to function slpeel_add_loop_guard.
15802
15803 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
15804
15805 PR tree-optimization/80218
15806 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
15807 Update block frequencies and counts.
15808
15809 2017-03-28 Richard Biener <rguenther@suse.de>
15810
15811 PR tree-optimization/78644
15812 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
15813 of a simplification result we may not use it at all.
15814
15815 2017-03-28 Richard Biener <rguenther@suse.de>
15816
15817 PR ipa/80205
15818 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
15819 without arguments, generate default definition of a SSA name.
15820
15821 2017-03-28 Richard Biener <rguenther@suse.de>
15822
15823 PR middle-end/80222
15824 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
15825 TYPE_REF_CAN_ALIAS_ALL references.
15826 * fold-const.c (fold_indirect_ref_1): Likewise.
15827
15828 2017-03-28 Martin Liska <mliska@suse.cz>
15829
15830 PR ipa/80104
15831 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
15832 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
15833
15834 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
15835 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
15836
15837 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
15838 (EXTRA_SPECS): Define.
15839 (SUBTARGET_EXTRA_SPECS): Likewise.
15840 (SUBTARGET_CPP_SPEC): Likewise.
15841 * config/arc/elf.h (EXTRA_SPECS): Renamed to
15842 SUBTARGET_EXTRA_SPECS.
15843 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
15844
15845 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
15846
15847 * config/arc/simdext.md (vst64_insn): Update pattern.
15848 (vld32wh_insn): Likewise.
15849 (vld32wl_insn): Likewise.
15850 (vld64_insn): Likewise.
15851 (vld32_insn): Likewise.
15852
15853 2017-03-28 Marek Polacek <polacek@redhat.com>
15854
15855 PR sanitizer/80067
15856 * fold-const.c (fold_comparison): Use protected_set_expr_location
15857 instead of SET_EXPR_LOCATION.
15858
15859 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
15860
15861 * tree.c (add_expr): Avoid name lookup warning.
15862
15863 2017-03-27 Jeff Law <law@redhat.com>
15864
15865 PR tree-optimization/80216
15866 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
15867 function name. Limit recursion depth.
15868 (record_temporary_equivalences): Corresponding changes.
15869
15870 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
15871
15872 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
15873 covered first.
15874
15875 2017-03-27 Jakub Jelinek <jakub@redhat.com>
15876
15877 PR target/80102
15878 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
15879 notes.
15880 * cfgcleanup.c (reg_note_cfa_p): New array.
15881 (insns_have_identical_cfa_notes): New function.
15882 (old_insns_match_p): Don't cross-jump in between /f
15883 and non-/f instructions. If both i1 and i2 are frame related,
15884 verify all CFA notes, their order and content.
15885
15886 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
15887
15888 PR target/78543
15889 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
15890 HImode and SImode with zero extend to DImode to one insn.
15891 (bswap<mode>2_extenddi): Likewise.
15892 (bswapsi2_extenddi): Likewise.
15893 (bswaphi2_extendsi): Likewise.
15894 (bswaphi2): Combine bswap HImode and SImode into one insn.
15895 Separate memory insns from swapping register.
15896 (bswapsi2): Likewise.
15897 (bswap<mode>2): Likewise.
15898 (bswaphi2_internal): Delete, no longer used.
15899 (bswapsi2_internal): Likewise.
15900 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
15901 store, and gpr<-gpr swap insns.
15902 (bswap<mode>2_store): Likewise.
15903 (bswaphi2_reg): Register only splitter, combine with the splitter.
15904 (bswaphi2 splitter): Likewise.
15905 (bswapsi2_reg): Likewise.
15906 (bswapsi2 splitter): Likewise.
15907 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
15908 the insns into load, store, and register/register insns.
15909 (bswapdi2_ldbrx): Likewise.
15910 (bswapdi2_load): Likewise.
15911 (bswapdi2_store): Likewise.
15912 (bswapdi2_reg): Likewise.
15913
15914 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
15915
15916 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
15917 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
15918
15919 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
15920
15921 PR target/80103
15922 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
15923 add comments.
15924 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
15925 special handling for target option conflicts between dform
15926 options (-mpower9-dform, -mpower9-dform-vector,
15927 -mpower9-dform-scalar) and -mno-direct-move.
15928
15929 2017-03-27 Richard Biener <rguenther@suse.de>
15930
15931 PR tree-optimization/80181
15932 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
15933
15934 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
15935
15936 * config/arc/predicates.md (move_double_src_operand): Replace the
15937 call to move_double_src_operand with a call to address_operand.
15938
15939 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
15940
15941 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
15942 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
15943 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
15944
15945 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
15946
15947 * config/arc/predicates.md (long_immediate_loadstore_operand):
15948 Consider scaled addresses cases.
15949
15950 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
15951
15952 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
15953 restored when in interrupt.
15954 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
15955 doesn't have delay slot.
15956
15957 2017-03-27 Richard Biener <rguenther@suse.de>
15958
15959 PR ipa/79776
15960 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
15961 inlined thunk clones.
15962
15963 2017-03-27 Jakub Jelinek <jakub@redhat.com>
15964
15965 PR sanitizer/80168
15966 * asan.c (instrument_derefs): Copy over last operand from
15967 original COMPONENT_REF to the new COMPONENT_REF with
15968 DECL_BIT_FIELD_REPRESENTATIVE.
15969 * ubsan.c (instrument_object_size): Likewise.
15970
15971 2017-03-27 Richard Biener <rguenther@suse.de>
15972
15973 PR tree-optimization/80170
15974 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
15975 sure DR/SCEV didnt fold in constants we do not see when looking
15976 at the reference base alignment.
15977
15978 2017-03-27 Richard Biener <rguenther@suse.de>
15979
15980 PR middle-end/80171
15981 * gimple-fold.c (fold_ctor_reference): Properly guard against
15982 NULL return value from canonicalize_constructor_val.
15983
15984 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
15985
15986 PR target/80180
15987 * config/i386/i386.c (ix86_expand_builtin)
15988 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
15989 flags reg setting and flags reg using instructions.
15990 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
15991 clobbering instructions to zero extend op2.
15992
15993 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
15994
15995 * doc/install.texi (Configuration) <--with-aix-soname>:
15996 Update link to AIX ld.
15997
15998 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
15999
16000 PR rtl-optimization/80160
16001 PR rtl-optimization/80159
16002 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
16003 reg_alternate_class into account.
16004
16005 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
16006
16007 PR target/80148
16008 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
16009 to consider in curr_insn_transform.
16010
16011 2017-03-24 Jakub Jelinek <jakub@redhat.com>
16012
16013 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
16014 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
16015 and emit_mode_inner.
16016
16017 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16018
16019 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
16020 argument to the overloaded builtin variants. Use the new flag to
16021 deprecate certain builtin variants.
16022 * config/s390/s390-builtin-types.def: Add new builtin types.
16023 * config/s390/s390-builtins.h: Support new flags field for
16024 overloaded builtins.
16025 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
16026 (s390_macro_to_expand): Enable vector float data type.
16027 (s390_cpu_cpp_builtins_internal): Indicate support of the new
16028 builtins by incrementing the __VEC__ version number.
16029 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
16030 vec_xst.
16031 (s390_resolve_overloaded_builtin): Emit error messages depending
16032 on the builtin flags.
16033 * config/s390/s390.c (s390_expand_builtin): Support additional
16034 flags argument. Change error message to match the messages
16035 emitted in s390-c.c.
16036 * config/s390/s390.md: New UNSPEC_* constants.
16037 (op_type): Add new instruction types.
16038 * config/s390/vecintrin.h: Add new builtins and test data class
16039 constants.
16040 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
16041 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
16042 (VEC_INEXACT, VEC_NOINEXACT): New constants.
16043 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
16044 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
16045 ("vec_mergel<mode>"): V_HW -> VEC_HW.
16046
16047 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
16048 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
16049 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
16050 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
16051
16052 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
16053 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
16054 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
16055 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
16056
16057 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
16058 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
16059 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
16060 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
16061 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
16062 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
16063 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
16064
16065 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
16066 ("vec_scatter_element<V_HW_4:mode>_DI")
16067 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
16068 ("vec_fpint<mode>", "vflls")
16069 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
16070 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
16071 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
16072 ("*vec_cmphe<mode>_cc"): ... these.
16073
16074 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
16075 mode constant instead of magic value.
16076
16077 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16078
16079 * config/s390/s390.c (s390_expand_vec_compare): Support other
16080 vector floating point modes than just V2DF.
16081 (s390_expand_vcond): Likewise.
16082 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
16083 (s390_cannot_change_mode_class): Prevent mode changes between TF
16084 and V1TF in vector registers.
16085 * config/s390/s390.md (DF, SF): New mode attributes.
16086 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
16087 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
16088 SFmode support for VRs.
16089 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
16090 vector fp modes.
16091 (VFT, VF_HW): New mode iterators.
16092 (vw, sdx): New mode attributes.
16093 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
16094 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
16095 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
16096 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
16097 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
16098 also the new vector floating point modes. Renaming to ...
16099
16100 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
16101 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
16102 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
16103 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
16104 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
16105 ("vec_unordered<mode>"): ... these.
16106
16107 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
16108 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
16109 ("*vec_extendv2df"): New insn definitions.
16110
16111 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16112
16113 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
16114 ("mulditi3_2", "*muldi3_sign"): New patterns.
16115 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
16116 rename the pattern definition.
16117
16118 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16119
16120 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
16121 expander.
16122 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
16123
16124 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16125
16126 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
16127 instruction if possible.
16128 * config/s390/vector.md (vec_halfnumelts): New mode
16129 attribute.
16130 ("*vec_vllezlf<mode>"): New pattern.
16131
16132 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16133
16134 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
16135 ("popcountv4si2", "popcountv2di2"): Rename to ...
16136 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
16137 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
16138 condition.
16139 ("popcount<mode>2_vxe"): New pattern.
16140
16141 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16142
16143 * common/config/s390/s390-common.c (processor_flags_table): Add
16144 arch12.
16145 * config.gcc: Add arch12.
16146 * config/s390/driver-native.c (s390_host_detect_local_cpu):
16147 Default to arch12 for unknown CPU model numbers.
16148 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
16149 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
16150 PROCESSOR_max sanity check.
16151 * config/s390/s390-opts.h (enum processor_type): Add
16152 PROCESSOR_ARCH12.
16153 * config/s390/s390.c (processor_table): Add arch12.
16154 (s390_expand_builtin): Add check for B_VXE flag.
16155 (s390_issue_rate): Add PROCESSOR_ARCH12.
16156 (s390_get_sched_attrmask): Likewise.
16157 (s390_get_unit_mask): Likewise.
16158 (s390_sched_score): Enable z13 scheduling for arch12.
16159 (s390_sched_reorder): Likewise.
16160 (s390_sched_variable_issue): Likewise.
16161 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
16162 PF_VXE.
16163 (s390_tune_attr): Use z13 scheduling also for arch12.
16164 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
16165 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
16166 (TARGET_VXE_P): New macros.
16167 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
16168 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
16169 * config/s390/s390.opt: Add arch12 as processor_type.
16170
16171 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16172
16173 * config/s390/s390.md
16174 ("fixuns_truncdddi2", "fixuns_trunctddi2")
16175 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
16176 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
16177
16178 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
16179 Rename expanders to ...
16180
16181 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
16182 ("fixuns_truncdddi2_emu"): ... these.
16183
16184 ("fixuns_trunc<mode>si2_emu"): New expander.
16185
16186 ("*fixuns_truncdfdi2_z13"): Rename to ...
16187 ("*fixuns_truncdfdi2_vx"): ... this.
16188
16189 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16190
16191 * config/s390/2964.md: Remove the single element vector compare
16192 instructions which are no longer used.
16193 * config/s390/s390.c (s390_select_ccmode): Remove handling of
16194 vector CCmodes.
16195 (s390_canonicalize_comparison): Remove handling of DFmode
16196 compares.
16197 (s390_expand_vec_compare_scalar): Remove function.
16198 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
16199 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
16200 pattern.
16201 ("*cmp<mode>_ccs"): Add wfcdb instruction.
16202
16203 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16204
16205 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
16206 FP zero.
16207 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
16208 will anyway by matched by mov<mode>_64dfp.
16209
16210 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16211
16212 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
16213 vlef/vstef. Add missing operand to vleif.
16214
16215 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16216
16217 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
16218 pair for all vector types with 64 bit elements.
16219 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
16220 * config/s390/vector.md (V_HW_64): ... here.
16221 (V_128_NOSINGLE): New mode iterator.
16222 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
16223 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
16224 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
16225 ("*vec_load_pairv2di"): Change to ...
16226 ("*vec_load_pair<mode>"): ... this one.
16227
16228 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16229
16230 * config/s390/constraints.md: Add comments.
16231 (jKK): Reject element sizes > 8 bytes.
16232 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
16233 s_operands.
16234 * config/s390/s390.md: Add the s_operand checks formerly in
16235 s390_split_ok_p to various splitters where they are still
16236 required.
16237 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
16238 for 128 bit vectors. Plus two splitters.
16239
16240 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16241
16242 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
16243 the file.
16244
16245 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16246
16247 PR target/79893
16248 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
16249 error if the boundary argument is not constant.
16250
16251 2017-03-24 Jakub Jelinek <jakub@redhat.com>
16252
16253 PR rtl-optimization/80112
16254 * loop-doloop.c (doloop_condition_get): Don't check condition
16255 if cmp isn't SET with IF_THEN_ELSE src.
16256
16257 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16258
16259 PR tree-optimization/80158
16260 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
16261 replacing a candidate statement, also replace it for the
16262 candidate's alternate interpretation.
16263 (replace_rhs_if_not_dup): Likewise.
16264 (replace_one_candidate): Likewise.
16265
16266 2017-03-24 Richard Biener <rguenther@suse.de>
16267
16268 PR tree-optimization/80167
16269 * graphite-isl-ast-to-gimple.c
16270 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
16271 properly.
16272 (translate_isl_ast_to_gimple::get_rename): Likewise.
16273
16274 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
16275
16276 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
16277 handling of certain combinations of target options, including the
16278 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
16279 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
16280
16281 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16282
16283 PR target/71436
16284 * config/arm/arm.md (*load_multiple): Add reload_completed to
16285 matching condition.
16286
16287 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16288 Richard Biener <rguenth@suse.de>
16289
16290 PR tree-optimization/79908
16291 PR tree-optimization/80136
16292 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
16293 been cast away, gimplify_and_add suffices.
16294
16295 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
16296
16297 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
16298
16299 2017-03-23 Richard Biener <rguenther@suse.de>
16300
16301 PR tree-optimization/80032
16302 * gimplify.c (gimple_push_cleanup): Forced unconditional
16303 cleanups still have to go to the conditional_cleanups
16304 sequence.
16305
16306 2017-03-22 Jakub Jelinek <jakub@redhat.com>
16307
16308 PR tree-optimization/80072
16309 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
16310 to unsigned int.
16311 (next_operand_entry_id): Change type to unsigned int.
16312 (sort_by_operand_rank): Make sure to return the right return value
16313 even if unsigned fields are bigger than INT_MAX.
16314 (struct oecount): Change cnt and id type to unsigned int.
16315 (oecount_hasher::equal): Formatting fix.
16316 (oecount_cmp): Make sure to return the right return value
16317 even if unsigned fields are bigger than INT_MAX.
16318 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
16319
16320 PR c++/80129
16321 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
16322 TREE_READONLY on result if writing it more than once.
16323
16324 PR sanitizer/80110
16325 * doc/invoke.texi (-fsanitize=thread): Document that with
16326 -fnon-call-exceptions atomics are not able to throw
16327 exceptions.
16328
16329 PR sanitizer/80110
16330 * tsan.c: Include tree-eh.h.
16331 (instrument_builtin_call): Call maybe_clean_eh_stmt or
16332 maybe_clean_or_replace_eh_stmt where needed.
16333 (instrument_memory_accesses): Add cfg_changed argument.
16334 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
16335 if it returned true.
16336 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
16337
16338 PR rtl-optimization/63191
16339 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
16340 wrapper function, moved the whole old content into ...
16341 (ix86_delegitimize_address_1): ... this. New inline function.
16342 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
16343 true as last argument instead of ix86_delegitimize_address.
16344
16345 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
16346
16347 * config/aarch64/aarch64.c (generic_branch_cost): Copy
16348 cortexa57_branch_cost.
16349
16350 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
16351
16352 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
16353
16354 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16355
16356 PR target/80123
16357 * doc/md.texi (Constraints): Document wA constraint.
16358 * config/rs6000/constraints.md (wA): New.
16359 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
16360 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
16361 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
16362 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
16363
16364 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
16365
16366 PR c++/80029
16367 * gimplify.c (is_oacc_declared): New function.
16368 (oacc_default_clause): Use it to set default flags for acc declared
16369 variables inside parallel regions.
16370 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
16371 declared variables.
16372 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
16373 declare attribute to any decl as necessary.
16374
16375 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
16376
16377 PR target/80082
16378 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
16379 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
16380 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
16381 (arm_arch_lpae): This.
16382 * config/arm/arm.c (arm_arch7ve): Rename into ...
16383 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
16384 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
16385 arm_arch_lpae.
16386
16387 2017-03-22 Martin Liska <mliska@suse.cz>
16388
16389 PR target/79906
16390 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
16391 error message instead of an ICE.
16392
16393 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16394
16395 * doc/extend.texi (6.11 Additional Floating Types): Revise.
16396
16397 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
16398
16399 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
16400 comments.
16401 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16402 comments.
16403
16404 2017-03-21 Martin Sebor <msebor@redhat.com>
16405
16406 * doc/extend.texi: Use "cannot" instead of "can't."
16407 * doc/hostconfig.texi: Same.
16408 * doc/install.texi: Same.
16409 * doc/invoke.texi: Same.
16410 * doc/loop.texi: Same.
16411 * doc/md.texi: Same.
16412 * doc/objc.texi: Same.
16413 * doc/rtl.texi: Same.
16414 * doc/tm.texi: Same.
16415 * doc/tm.texi.in: Same.
16416 * doc/trouble.texi: Same.
16417
16418 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
16419
16420 PR debug/63238
16421 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
16422 (collect_checksum_attributes): Set it.
16423 (die_checksum_ordered): Use it.
16424
16425 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16426
16427 PR tree-optimization/79908
16428 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
16429 change: For a VA_ARG whose LHS has been cast away, use
16430 force_gimple_operand to construct the side effects.
16431
16432 2017-03-21 David Malcolm <dmalcolm@redhat.com>
16433
16434 PR translation/80001
16435 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
16436 more amenable to translation.
16437 (oacc_loop_auto_partitions): Likewise.
16438
16439 2017-03-21 Marek Polacek <polacek@redhat.com>
16440 Martin Sebor <msebor@redhat.com>
16441
16442 PR tree-optimization/80109
16443 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
16444 on INTEGRAL_TYPE_P.
16445
16446 2017-03-21 Jakub Jelinek <jakub@redhat.com>
16447 Segher Boessenkool <segher@kernel.crashing.org>
16448
16449 PR target/80125
16450 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
16451 check reg_used_between_p between insn and one of succ or succ2
16452 depending on if succ is artificial insn not inserted into insn
16453 stream.
16454
16455 2017-03-21 Martin Liska <mliska@suse.cz>
16456
16457 PR gcov-profile/80081
16458 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
16459 * doc/gcc.texi: Include gcov-dump stuff.
16460 * doc/gcov-dump.texi: New file.
16461
16462 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
16463
16464 PR rtl-optimization/79150
16465 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
16466 conditional jump, if the jump is the last insn of the loop.
16467
16468 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16469 Richard Biener <rguenth@suse.de>
16470
16471 PR tree-optimization/79908
16472 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
16473 been cast away, use force_gimple_operand to construct the side
16474 effects.
16475
16476 2017-03-21 Martin Liska <mliska@suse.cz>
16477
16478 PR libfortran/79956
16479 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
16480 to NULL.
16481
16482 2017-03-21 Brad Spengler <spender@grsecurity.net>
16483
16484 PR plugins/80094
16485 * plugin.c (htab_hash_plugin): New function.
16486 (add_new_plugin): Use it and adjust.
16487 (parse_plugin_arg_opt): Adjust.
16488 (init_one_plugin): Likewise.
16489
16490 2017-03-21 Richard Biener <rguenther@suse.de>
16491
16492 PR tree-optimization/80032
16493 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
16494 if set force the cleanup to happen unconditionally.
16495 (gimplify_target_expr): Push inserted clobbers with force_uncond
16496 to avoid them being removed by control-dependent DCE.
16497
16498 2017-03-21 Richard Biener <rguenther@suse.de>
16499
16500 PR tree-optimization/80122
16501 * tree-inline.c (copy_bb): Do not expans va-arg packs or
16502 va_arg_pack_len when the inlined call stmt requires pack
16503 expansion itself.
16504 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
16505
16506 2017-03-21 Jakub Jelinek <jakub@redhat.com>
16507
16508 PR sanitizer/78158
16509 * tsan.c (instrument_builtin_call): If the memory model argument
16510 is not a constant, assume it is valid.
16511
16512 PR c/67338
16513 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
16514 avoid UB.
16515
16516 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
16517
16518 PR rtl-optimization/79910
16519 * combine.c (can_combine_p): Do not allow combining an I0 or I1
16520 if its dest is used by an insn before I2 (other than the combined
16521 insns themselves, which are properly handled already).
16522
16523 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
16524
16525 Revert:
16526 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
16527
16528 * combine.c (record_used_regs): New static function.
16529 (try_combine): Handle situations where there is an additional
16530 instruction between I2 and I3 which needs to have a LOG_LINK
16531 updated.
16532
16533 Revert:
16534 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
16535
16536 * combine.c (try_combine): Delete redundant i1 test. Call
16537 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
16538
16539 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16540
16541 PR target/80083
16542 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
16543 alternatives 13/14.
16544
16545 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16546
16547 PR tree-optimization/80054
16548 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
16549 the optimization if a PHI or any of its arguments is not dominated
16550 by the candidate's basis. Use gphi* rather than gimple* as
16551 appropriate.
16552 (replace_profitable_candidates): Clean up a gimple* variable that
16553 should be a gphi* variable.
16554
16555 2017-03-20 Martin Sebor <msebor@redhat.com>
16556
16557 PR c++/52477
16558 * doc/extend.texi (attribute constructor): Document present limitation.
16559
16560 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
16561
16562 PR target/79963
16563 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
16564 __POWER9_VECTOR__ #ifdef control, change template definition to
16565 use Power9-specific built-in function.
16566 (vec_any_eq): Likewise.
16567 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
16568 to control outcomes from this test.
16569 (vector_ae_<mode>p): For VEC_F modes, likewise.
16570
16571 2017-03-20 Ian Lance Taylor <iant@google.com>
16572
16573 * config/i386/i386.c (ix86_function_regparm): Save an extra
16574 register for -fsplit-stack with DECL_STATIC_CHAIN.
16575
16576 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
16577
16578 PR target/79912
16579 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
16580 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
16581
16582 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
16583
16584 * config/riscv/riscv.c (riscv_print_operand): Use "fence
16585 iorw,ow".
16586 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
16587 iorw,iorw".
16588
16589 2017-03-20 Marek Polacek <polacek@redhat.com>
16590
16591 PR sanitizer/80063
16592 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
16593
16594 2017-03-20 Richard Biener <rguenther@suse.de>
16595
16596 PR tree-optimization/80113
16597 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
16598 allocate extra SSA name for PHI def.
16599 (add_close_phis_to_outer_loops): Likewise.
16600 (add_close_phis_to_merge_points): Likewise.
16601 (copy_loop_close_phi_args): Likewise.
16602 (copy_cond_phi_nodes): Likewise.
16603
16604 2017-03-20 Martin Liska <mliska@suse.cz>
16605
16606 PR middle-end/79753
16607 * tree-chkp.c (chkp_build_returned_bound): Do not build
16608 returned bounds for a LHS that's not a BOUNDED_P type.
16609
16610 2017-03-20 Martin Liska <mliska@suse.cz>
16611
16612 PR target/79769
16613 PR target/79770
16614 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
16615 COMPLEX_CST and VECTOR_CST.
16616
16617 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16618
16619 PR target/78857
16620 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
16621 target operand. A new splitter adds the clobber statement in case
16622 the target operand is dead anyway.
16623
16624 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
16625
16626 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
16627 to age-old versions of binutils and glibc.
16628
16629 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
16630
16631 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
16632
16633 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
16634
16635 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
16636
16637 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
16638
16639 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
16640 requirement for binutils 2.13.
16641
16642 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
16643
16644 * combine.c (try_combine): Delete redundant i1 test. Call
16645 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
16646
16647 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
16648
16649 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
16650 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
16651 contents.
16652 <riscv64-*-elf>: Re-arrange section
16653 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
16654 <riscv32-*-linux>: Likewise.
16655 <riscv64-*-elf>: Likewise
16656 <riscv64-*-linux>: Likewise.
16657
16658 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
16659
16660 PR target/80052
16661 * aarch64.opt(verbose-cost-dump): Fix typo.
16662
16663 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
16664
16665 PR target/79951
16666 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
16667 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
16668
16669 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
16670
16671 * reload.c (find_reloads): When reloading a nonoffsettable address,
16672 use RELOAD_OTHER for it and its address reloads.
16673
16674 PR rtl-optimization/79910
16675 * combine.c (record_used_regs): New static function.
16676 (try_combine): Handle situations where there is an additional
16677 instruction between I2 and I3 which needs to have a LOG_LINK
16678 updated.
16679
16680 2017-03-17 Jeff Law <law@redhat.com>
16681
16682 PR tree-optimization/71437
16683 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
16684 conditional in the hash table first.
16685 (vrp_dom_walker::before_dom_children): Extract condition from
16686 ASSERT_EXPR. Record condition, its inverion and any implied
16687 conditions as well.
16688
16689 2017-03-17 Marek Polacek <polacek@redhat.com>
16690 Markus Trippelsdorf <markus@trippelsdorf.de>
16691
16692 PR tree-optimization/80079
16693 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
16694 m_stores_head.
16695
16696 2017-03-17 Richard Biener <rguenther@suse.de>
16697
16698 PR middle-end/80075
16699 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
16700 Properly verify the LHS before the RHS possibly claims to be
16701 handled.
16702 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
16703 do not throw.
16704
16705 2017-03-17 Martin Jambor <mjambor@suse.cz>
16706
16707 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
16708 (List of -O2 options): Likewise.
16709 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
16710 (-fipa-vrp) New.
16711
16712 2017-03-17 Tom de Vries <tom@codesourcery.com>
16713
16714 * gcov-dump.c (print_usage): Print bug_report_url.
16715
16716 2017-03-17 Richard Biener <rguenther@suse.de>
16717
16718 PR middle-end/80050
16719 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
16720 (parser::peek): Likewise.
16721
16722 2017-03-17 Richard Biener <rguenther@suse.de>
16723
16724 PR tree-optimization/80048
16725 * sese.c (free_sese_info): Properly release rename_map and
16726 copied_bb_map elements.
16727
16728 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
16729
16730 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
16731 Add linked-list forward and backlinks. Insert on
16732 construction, remove on destruction.
16733 (class pass_store_merging): Add m_stores_head field.
16734 (pass_store_merging::terminate_and_process_all_chains):
16735 Iterate over m_stores_head list.
16736 (pass_store_merging::terminate_all_aliasing_chains):
16737 Likewise.
16738 (pass_store_merging::execute): Check for debug stmts first.
16739 Push new chains onto the m_stores_head stack.
16740
16741 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
16742
16743 PR target/71294
16744 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
16745 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
16746 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
16747
16748 2017-03-16 Jeff Law <law@redhat.com>
16749
16750 PR tree-optimization/71437
16751 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
16752 member function. Implementation moved into after_dom_children
16753 member function and into the threader's thread_outgoing_edges
16754 function.
16755 (dom_opt_dom_walker::after_dom_children): Simplify by moving
16756 some code into new thread_outgoing_edges.
16757 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
16758 definition. Simplify marker handling (do it here). Assume we always
16759 have the available expression and the const/copies tables.
16760 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
16761 and tree-vrp.c
16762 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
16763 * tree-vrp.c (equiv_stack): No longer file scoped.
16764 (vrp_dom_walker): New class.
16765 (vrp_dom_walker::before_dom_children): New member function.
16766 (vrp_dom_walker::after_dom_children): Likewise.
16767 (identify_jump_threads): Setup domwalker. Use it rather than
16768 walking edges in a random order by hand. Simplify setup/finalization.
16769 (finalize_jump_threads): Remove.
16770 (vrp_finalize): Do not call identify_jump_threads here.
16771 (execute_vrp): Do it here instead and call thread_through_all_blocks
16772 here too.
16773
16774 PR tree-optimization/71437
16775 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
16776 callers changed.
16777 (simplify_stmt_for_jump_threading): Add basic_block argument. All
16778 callers changed.
16779 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
16780 (dom_opt_dom_walker::thread_across_edge): Remove
16781 handle_dominating_asserts argument. All callers changed.
16782 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
16783 changes. Remove calls to lhs_of_dominating_assert. Other
16784 uses of handle_dominating_asserts turn into unconditional code
16785 (simplify_control_stmt_condition_1): Likewise.
16786 (simplify_control_stmt_condition): Likewise.
16787 (thread_through_normal_block, thread_across_edge): Likewise.
16788 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
16789 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
16790 object if it is not an SSA_NAME.
16791 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
16792 before calling into the VRP specific simplifiers.
16793 (identify_jump_threads): Remove handle_dominating_asserts
16794 argument.
16795
16796 2017-03-16 Jakub Jelinek <jakub@redhat.com>
16797
16798 PR fortran/79886
16799 * tree-diagnostic.c (default_tree_printer): No longer static.
16800 * tree-diagnostic.h (default_tree_printer): New prototype.
16801
16802 2017-03-16 Tamar Christina <tamar.christina@arm.com>
16803
16804 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
16805 Change ins into fmov.
16806
16807 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16808
16809 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
16810 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
16811 Use h_con constraint for operand 1.
16812 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
16813 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
16814
16815 2017-03-15 Jeff Law <law@redhat.com>
16816
16817 PR tree-optimization/71437
16818 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
16819 (record_temporary_equivalences): Use it.
16820
16821 PR tree-optimization/71437
16822 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
16823 tree-ssa-scopedtables.
16824 (lookup_avail_expr, build_and_record_new_cond): Likewise.
16825 (record_conditions, record_cond, vuse_eq): Likewise.
16826 (record_edge_info): Adjust to API tweak of record_conditions.
16827 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
16828 (record_temporary_equivalences, optimize_stmt): Likewise.
16829 (eliminate_redundant_computations): Likewise.
16830 (record_equivalences_from_stmt): Likewise.
16831 * tree-ssa-scopedtables.c: Include options.h and params.h.
16832 (vuse_eq): New function, moved from tree-ssa-dom.c
16833 (build_and_record_new_cond): Likewise.
16834 (record_conditions): Likewise. Accept vector of conditions rather
16835 than edge_equivalence structure for first argument.
16836 for the first argument.
16837 (avail_exprs_stack::lookup_avail_expr): New member function, moved
16838 from tree-ssa-dom.c.
16839 (avail_exprs_stack::record_cond): Likewise.
16840 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
16841 from tree-ssa-dom.c.
16842 (avail_exprs_stack): Add new member functions lookup_avail_expr
16843 and record_cond.
16844 (record_conditions): Declare.
16845
16846 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
16847
16848 PR target/80017
16849 * lra-constraints.c (process_alt_operands): Increase reject for
16850 reloading an input/output operand.
16851
16852 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
16853
16854 PR target/79038
16855 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
16856 insns to convert from signed/unsigned char/short to IEEE 128-bit
16857 floating point.
16858 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
16859
16860 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
16861
16862 PR target/80019
16863 * config/i386/i386.c (ix86_vector_duplicate_value): Create
16864 subreg of inner mode for values already in registers.
16865
16866 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
16867
16868 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
16869 iteration reg is used after the loop.
16870
16871 2017-03-14 Martin Sebor <msebor@redhat.com>
16872
16873 PR tree-optimization/79800
16874 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
16875 precision in negative-positive range.
16876 (format_floating): Call non-const overload with adjusted precision.
16877
16878 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
16879
16880 PR target/79947
16881 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
16882 -mpowerpc-gfxopt.
16883
16884 2017-03-14 Martin Sebor <msebor@redhat.com>
16885
16886 PR middle-end/80020
16887 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
16888 * builtins.def (aligned_alloc): Use it.
16889
16890 PR c/79936
16891 * Makefile.in (GTFILES): Add calls.c.
16892 * calls.c: Include "gt-calls.h".
16893
16894 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
16895
16896 PR rtl-optimization/79728
16897 * regs.h (struct target_regs): New field
16898 x_contains_allocatable_regs_of_mode.
16899 (contains_allocatable_regs_of_mode): New macro.
16900 * reginfo.c (init_reg_sets_1): Initialize it, and change
16901 contains_reg_of_mode so it includes global regs as well.
16902 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
16903 rather than contains_regs_of_mode.
16904
16905 2017-03-14 Martin Liska <mliska@suse.cz>
16906
16907 * doc/invoke.texi: Document options that can't be combined with
16908 -fcheck-pointer-bounds.
16909
16910 2017-03-14 Martin Liska <mliska@suse.cz>
16911
16912 PR middle-end/79831
16913 * doc/invoke.texi (-Wchkp): Document the option.
16914
16915 2017-03-14 Martin Liska <mliska@suse.cz>
16916
16917 * Makefile.in: Install gcov-dump.
16918
16919 2017-03-14 Martin Liska <mliska@suse.cz>
16920
16921 * multiple_target.c (expand_target_clones): Bail out for
16922 an invalid attribute.
16923
16924 2017-03-14 Richard Biener <rguenther@suse.de>
16925
16926 * alias.c (struct alias_set_entry): Pack properly.
16927 * cfgloop.h (struct loop): Likewise.
16928 * cse.c (struct set): Likewise.
16929 * ipa-utils.c (struct searchc_env): Likewise.
16930 * loop-invariant.c (struct invariant): Likewise.
16931 * lra-remat.c (struct cand): Likewise.
16932 * recog.c (struct change_t): Likewise.
16933 * rtl.h (struct address_info): Likewise.
16934 * symbol-summary.h (function_summary): Likewise.
16935 * tree-loop-distribution.c (struct partition): Likewise.
16936 * tree-object-size.c (struct object_size_info): Likewise.
16937 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
16938 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
16939 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
16940 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
16941 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
16942 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
16943 (struct _stmt_vec_info): Likewise.
16944
16945 2017-03-14 Martin Liska <mliska@suse.cz>
16946
16947 PR target/79892
16948 * multiple_target.c (create_dispatcher_calls): Check that
16949 a target can create a function dispatcher.
16950
16951 2017-03-14 Martin Liska <mliska@suse.cz>
16952
16953 PR lto/66295
16954 * multiple_target.c (expand_target_clones): Drop local.local
16955 flag for default implementation.
16956
16957 2017-03-14 Richard Biener <rguenther@suse.de>
16958
16959 PR tree-optimization/80030
16960 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
16961
16962 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
16963
16964 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
16965 gcc_fallthrough() instead of __attribute__((fallthrough));
16966
16967 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
16968
16969 * doc/gcc.texi: Remove "up" link to (DIR).
16970 * doc/gccint.texi: Ditto.
16971
16972 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
16973
16974 * doc/install.texi (Specific) <avr>: Remove reference to
16975 binutils 2.13.
16976
16977 2017-03-13 Jeff Law <law@redhat.com>
16978
16979 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
16980 attribute rather than comments.
16981
16982 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
16983 match_scratch operand is highest.
16984
16985 2017-03-13 Martin Liska <mliska@suse.cz>
16986
16987 PR middle-end/78339
16988 * ipa-pure-const.c (warn_function_noreturn): If the declarations
16989 is a CHKP clone, use original declaration.
16990
16991 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
16992
16993 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
16994 (arc_conditional_register_usage): Use a different allocation order
16995 when optimizing for size.
16996 * common/config/arc/arc-common.c (arc_option_optimization_table):
16997 Section anchors default on when optimizing for size.
16998
16999 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
17000
17001 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
17002
17003 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
17004
17005 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
17006 * config/arc/arc.md (cpu_facility): Add cd variant.
17007 (*movqi_insn): Add code density variant.
17008 (*movhi_insn): Likewise.
17009 (*movqi_insn): Likewise.
17010 (*addsi3_mixed): Likewise.
17011 (subsi3_insn): Likewise.
17012
17013 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
17014
17015 * config/arc/arc.md (movsi_cond_exec): Update constraint.
17016
17017 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
17018
17019 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
17020 expressions with MINUS and UNARY ops.
17021
17022 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17023
17024 PR target/79911
17025 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
17026 Rename to...
17027 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
17028 between vec_select and vector argument.
17029 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
17030 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
17031 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
17032 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
17033 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
17034 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
17035
17036 2017-03-13 Richard Biener <rguenther@suse.de>
17037
17038 PR other/79991
17039 * params.def (vect-max-peeling-for-alignment): Fix typo.
17040
17041 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
17042
17043 * doc/install.texi (Specific) <mips-*-*>: Remove description of
17044 issue that only occurred with binutils below 2.18.
17045
17046 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
17047
17048 * doc/install.texi (Specific) <cris-axis-elf>: No longer
17049 refer to binutils 2.11/2.12 minimum.
17050
17051 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
17052
17053 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
17054 ftp.kernel.org and simplify binutils requirement.
17055
17056 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
17057
17058 * doc/invoke.texi (Warning Options): Fix spelling of link-time
17059 optimization.
17060 (Optimize Options): Ditto. Also remove redundancy.
17061
17062 2017-03-10 David Malcolm <dmalcolm@redhat.com>
17063
17064 PR translation/79848
17065 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
17066 "%qs".
17067 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
17068 to G_ to avoid double translation.
17069
17070 2017-03-10 David Malcolm <dmalcolm@redhat.com>
17071
17072 PR translation/79923
17073 * auto-profile.c (get_combined_location): Convert leading
17074 character of diagnostics to lower case and remove trailing period.
17075 (read_profile): Likewise for various diagnostics.
17076 * config/arm/arm.c (arm_option_override): Remove trailing period
17077 from various diagnostics.
17078 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
17079 (msp430_expand_delay_cycles): Likewise.
17080
17081 2017-03-10 David Malcolm <dmalcolm@redhat.com>
17082
17083 PR target/79925
17084 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
17085 full command-line argument, rather than just "str".
17086 (aarch64_validate_march): Likewise.
17087 (aarch64_validate_mtune): Likewise.
17088
17089 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
17090
17091 PR rtl-optimization/78911
17092 * lra-assigns.c (must_not_spill_p): New function.
17093 (spill_for): Use it.
17094
17095 2017-03-10 Jakub Jelinek <jakub@redhat.com>
17096
17097 PR tree-optimization/79981
17098 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
17099 ATOMIC_COMPARE_EXCHANGE ifn result.
17100 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
17101 IFN_ATOMIC_COMPARE_EXCHANGE.
17102
17103 2017-03-10 David Malcolm <dmalcolm@redhat.com>
17104
17105 PR driver/79875
17106 * opts.c (parse_sanitizer_options): Add missing question mark to
17107 "did you mean" message.
17108
17109 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17110
17111 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
17112 built-in.
17113 (VMULEUH_UNS): Likewise.
17114 (VMULOUB_UNS): Likewise.
17115 (VMULOUH_UNS): Likewise.
17116 * config/rs6000/rs6000.c (builtin_function_type): Remove
17117 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
17118
17119 2017-03-10 David Malcolm <dmalcolm@redhat.com>
17120
17121 PR bootstrap/79952
17122 * read-rtl-function.c (function_reader::read_rtx_operand): Update
17123 x with result of extra_parsing_for_operand_code_0.
17124 (function_reader::extra_parsing_for_operand_code_0): Convert
17125 return type from void to rtx, returning x. When reading
17126 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
17127 larger size containing struct block_symbol.
17128
17129 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
17130
17131 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
17132 -mfloat128-hardware without -m64.
17133
17134 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
17135
17136 PR target/79941
17137 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
17138 entries to the case statement that marks unsigned arguments to
17139 overloaded functions.
17140
17141 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
17142
17143 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
17144 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
17145
17146 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
17147
17148 PR target/79907
17149 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
17150 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
17151
17152 2017-03-10 Martin Liska <mliska@suse.cz>
17153
17154 PR target/65705
17155 PR target/69804
17156 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
17157 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
17158 FIELD != NULL.
17159
17160 2017-03-10 Olivier Hainque <hainque@adacore.com>
17161
17162 * tree-switch-conversion (array_value_type): Start by resetting
17163 candidate type to it's main variant.
17164
17165 2017-03-10 Jakub Jelinek <jakub@redhat.com>
17166
17167 PR rtl-optimization/79909
17168 * combine.c (try_combine): Use simplify_replace_rtx on individual
17169 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
17170 of the whole CALL_INSN_FUNCTION_USAGE.
17171
17172 PR tree-optimization/79972
17173 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
17174 get_range_info on SSA_NAMEs. Formatting fixes.
17175
17176 2017-03-10 Richard Biener <rguenther@suse.de>
17177 Jakub Jelinek <jakub@redhat.com>
17178
17179 PR tree-optimization/77975
17180 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
17181 edge to be constant.
17182 (get_val_for): For constant x return it. Formatting fix.
17183 (loop_niter_by_eval): Avoid pointless looping if the next iteration
17184 would use the same bases as the current one.
17185
17186 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17187
17188 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
17189 instead of vec_select for V1TImode.
17190 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
17191 longer needed.
17192 (VSX_LE_128): Add V1TI to this mode iterator.
17193 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
17194 (*vsx_le_perm_store_<mode>): Likewise.
17195 (pre-reload splitter for VSX stores): Likewise.
17196 (post-reload splitter for VSX stores): Likewise.
17197 (*vsx_xxpermdi2_le_<mode>): Likewise.
17198 (*vsx_lxvd2x2_le_<mode>): Likewise.
17199 (*vsx_stxvd2x2_le_<mode>): Likewise.
17200
17201 2017-03-09 Michael Eager <eager@eagercon.com>
17202
17203 Correct failures with --enable-checking=yes,rtl.
17204
17205 * config/microblaze/microblaze.c (microblaze_expand_shift):
17206 Replace GET_CODE test with CONST_INT_P and INTVAL test with
17207 test for const0_rtx.
17208 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
17209 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
17210
17211 2017-03-09 Richard Biener <rguenther@suse.de>
17212
17213 PR tree-optimization/79977
17214 * graphite-scop-detection.c (scop_detection::merge_sese):
17215 Handle the case of extra exits to blocks dominating the entry.
17216
17217 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
17218
17219 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
17220 Document rdynamic.
17221
17222 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
17223
17224 PR rtl-optimization/79949
17225 * lra-constraints.c (process_alt_operands): Check memory when
17226 trying to predict a cycle. Print about the overall increase.
17227
17228 2017-03-09 Richard Biener <rguenther@suse.de>
17229
17230 PR middle-end/79971
17231 * gimple-expr.c (useless_type_conversion_p): Preserve
17232 TYPE_SATURATING for fixed-point types.
17233
17234 2017-03-09 Richard Biener <rguenther@suse.de>
17235
17236 PR ipa/79970
17237 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
17238 alignment of BLKmode params.
17239
17240 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17241
17242 PR target/79913
17243 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
17244 (VALL_NO_V2Q): Likewise.
17245 (VDQF_DF): Delete.
17246 * config/aarch64/aarch64-simd.md
17247 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
17248 iterator.
17249 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
17250 VALL_NO_V2Q mode iterator.
17251 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
17252
17253 2017-03-09 Martin Liska <mliska@suse.cz>
17254
17255 PR tree-optimization/79631
17256 * tree-chkp-opt.c (chkp_is_constant_addr): Call
17257 tree_int_cst_sign_bit just for INTEGER constants.
17258
17259 2017-03-09 Martin Liska <mliska@suse.cz>
17260
17261 PR target/65705
17262 PR target/69804
17263 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
17264 sanitizers.
17265
17266 2017-03-09 Marek Polacek <polacek@redhat.com>
17267
17268 PR c++/79672
17269 * tree.c (inchash::add_expr): Handle TREE_VEC.
17270
17271 2017-03-09 Martin Liska <mliska@suse.cz>
17272
17273 PR ipa/79764
17274 (chkp_narrow_size_and_offset): New function.
17275 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
17276 (void chkp_parse_bit_field_ref): New function.
17277 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
17278 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
17279
17280 2017-03-09 Martin Liska <mliska@suse.cz>
17281
17282 PR ipa/79761
17283 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
17284 (chkp_find_bounds_1): Remove gcc_unreachable.
17285
17286 2017-03-09 Jakub Jelinek <jakub@redhat.com>
17287
17288 PR sanitizer/79944
17289 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
17290 BUILT_IN_SYNC*, determine the access type from the size suffix and
17291 always build a MEM_REF with that type. Handle forgotten
17292 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
17293
17294 PR target/79932
17295 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
17296 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
17297 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
17298 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
17299 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
17300 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
17301 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
17302 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
17303 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
17304 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
17305 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
17306 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
17307 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
17308 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
17309 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
17310 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
17311 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
17312 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
17313 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
17314 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
17315 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
17316 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
17317 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
17318 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
17319 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
17320 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
17321 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
17322 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
17323 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
17324 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
17325 definitions outside of __OPTIMIZE__ guarded section.
17326
17327 PR target/79932
17328 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
17329 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
17330 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
17331 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
17332 guarded section.
17333
17334 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17335
17336 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
17337 ("vfenez<mode>"): Add missing constraints.
17338
17339 2017-03-08 Martin Sebor <msebor@redhat.com>
17340
17341 PR target/79928
17342 * config/nds32/nds32.c (nds32_option_override):
17343 Fix misspelled diagnostic.
17344
17345 2017-03-08 Jakub Jelinek <jakub@redhat.com>
17346
17347 PR c/79940
17348 * gimplify.c (gimplify_omp_for): Replace index var in outer
17349 taskloop statement with an artificial variable and add
17350 OMP_CLAUSE_PRIVATE clause for it.
17351
17352 2017-03-08 Richard Biener <rguenther@suse.de>
17353
17354 PR tree-optimization/79955
17355 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
17356 for accesses that are completely outside of the variable.
17357
17358 2017-03-08 Andrew Haley <aph@redhat.com>
17359
17360 PR tree-optimization/79943
17361 * tree-ssa-loop-split.c (compute_new_first_bound): When
17362 calculating the new upper bound, (END-BEG) should be added, not
17363 subtracted.
17364
17365 2017-03-08 Jakub Jelinek <jakub@redhat.com>
17366
17367 * config/avr/avr.md (setmemhi): Make sure match_dup
17368 operand number comes before match_scratch.
17369
17370 2017-03-08 Richard Biener <rguenther@suse.de>
17371
17372 PR tree-optimization/79920
17373 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
17374 with ncopies == 1 to ...
17375 (vect_transform_slp_perm_load): ... here. Properly compute
17376 all element loads by iterating VF times over the group. Do
17377 not handle ncopies (computed in a broken way) in
17378 vect_create_mask_and_perm.
17379
17380 2017-03-08 Jakub Jelinek <jakub@redhat.com>
17381
17382 PR sanitizer/79904
17383 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
17384 is a uniform vector, use uniform_vector_p return value instead of
17385 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
17386
17387 2017-03-07 Marek Polacek <polacek@redhat.com>
17388
17389 PR middle-end/79809
17390 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
17391 (alloca_call_type): Likewise.
17392
17393 2017-03-07 Martin Liska <mliska@suse.cz>
17394
17395 * gcov.c (process_args): Put comment to correct location.
17396
17397 2017-03-07 Martin Liska <mliska@suse.cz>
17398
17399 PR middle-end/68270
17400 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
17401 Use array_at_struct_end_p instead of DECL_CHAIN (field).
17402 (chkp_narrow_bounds_for_field): Likewise.
17403 (chkp_parse_array_and_component_ref): Pass one more argument to
17404 call.
17405
17406 2017-03-07 Richard Biener <rguenther@suse.de>
17407
17408 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
17409 preheaders.
17410
17411 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
17412
17413 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
17414 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
17415
17416 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17417
17418 PR c/79855
17419 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
17420 to end of description.
17421 (PARAM_MAX_STORES_TO_MERGE): Likewise.
17422
17423 2017-03-07 Jakub Jelinek <jakub@redhat.com>
17424
17425 PR rtl-optimization/79901
17426 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
17427 ...
17428 (*avx512f_<code><mode>3<mask_name>): ... this.
17429 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
17430 iterator instead of VI8_AVX2_AVX512BW.
17431
17432 PR rtl-optimization/79901
17433 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
17434 min/max expander, expand it using expand_vec_cond_expr.
17435
17436 PR sanitizer/79897
17437 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
17438 temporary.
17439
17440 2017-03-06 Jakub Jelinek <jakub@redhat.com>
17441
17442 PR c++/79821
17443 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
17444 to void * for PCH reasons.
17445 * dwarf2out.c (output_loc_operands, output_die): Cast
17446 v.val_vec.array to unsigned char *.
17447
17448 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
17449
17450 PR target/77850
17451 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
17452 vector types.
17453
17454 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
17455
17456 PR rtl-optimization/79571
17457 * lra-constraints.c (process_alt_operands): Calculate static
17458 reject and subtract it from overall when only addresses will be
17459 reloaded.
17460
17461 2017-03-06 Julia Koval <julia.koval@intel.com>
17462
17463 PR target/79793
17464 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
17465 incoming stack boundary to 128 for 64-bit targets.
17466
17467 2017-03-06 Richard Biener <rguenther@suse.de>
17468
17469 PR tree-optimization/79894
17470 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
17471 to NULL after folding it.
17472
17473 2017-03-06 Richard Biener <rguenther@suse.de>
17474
17475 PR tree-optimization/79824
17476 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
17477 check disabling peeling for gaps.
17478
17479 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
17480
17481 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
17482 attributes): Document gettimeofday.
17483
17484 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
17485
17486 * config/s390/s390.c (s390_option_override_internal): Set
17487 PARAM_MIN_VECT_LOOP_BOUND
17488
17489 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
17490
17491 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
17492 * config/s390/s390.md: Likewise.
17493
17494 2017-03-06 Jakub Jelinek <jakub@redhat.com>
17495
17496 PR target/79812
17497 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
17498 (<avx2_avx512>_perm<mode>): Rename to ...
17499 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
17500 of VI8F_256_512.
17501 (<avx512>_perm<mode>_mask): Rename to ...
17502 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
17503 of VI8F_256_512.
17504 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
17505 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
17506 instead of VI8F_256_512.
17507 (avx512f_perm<mode>): New define_expand.
17508 (avx512f_perm<mode>_mask): Likewise.
17509 (avx512f_perm<mode>_1<mask_name>): New define_insn.
17510 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
17511
17512 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
17513
17514 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
17515 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
17516 if_then_else.
17517 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
17518
17519 2017-03-06 Martin Liska <mliska@suse.cz>
17520
17521 PR sanitize/79783
17522 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
17523 when having a SSA NAME w/o VAR_DECL assigned to it.
17524
17525 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
17526
17527 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
17528 msa_dpsub_<su>_d): Fix MODE for vec_select.
17529
17530 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
17531
17532 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
17533 argument.
17534 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
17535
17536 2017-03-06 Richard Biener <rguenther@suse.de>
17537
17538 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
17539 * plugin.c (register_plugin_info): Likewise.
17540 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
17541
17542 2017-03-05 Jakub Jelinek <jakub@redhat.com>
17543
17544 * config/i386/sse.md (sse_storehps, sse_storelps,
17545 avx_<castmode><avxsizesuffix>_<castmode>,
17546 avx512f_<castmode><avxsizesuffix>_<castmode>,
17547 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
17548 in condition that at least one operand is not a MEM.
17549
17550 2017-03-03 Jakub Jelinek <jakub@redhat.com>
17551
17552 PR middle-end/79805
17553 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
17554 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
17555 ECF_NOTHROW.
17556 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
17557 gimple_call_nothrow_p flag based on whether original builtin can throw.
17558 If it can, emit following stmts on the fallthrough edge.
17559 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
17560 don't create new bb if inserting just debug stmts on the edge, try to
17561 insert them on the fallthru bb or just reset debug stmts.
17562
17563 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
17564
17565 PR target/43763
17566 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
17567 restore recog_data (including the operand rtxes inside it) around
17568 the call to get_insn_template.
17569
17570 2017-03-03 Martin Sebor <msebor@redhat.com>
17571
17572 PR tree-optimization/79699
17573 * context.c (context::~context): Free MPFR caches to avoid
17574 a memory leak on program exit.
17575
17576 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17577
17578 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
17579 Use wide_int::ulow () instead of .elt (0).
17580
17581 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
17582
17583 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
17584 (*pushxf): Limit oF constraint to 32bit targets and add oC
17585 constraint for 64bit targets.
17586 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
17587 (*pushdf): Change rmF constraint to rmC.
17588
17589 2017-03-03 Martin Liska <mliska@suse.cz>
17590
17591 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
17592 Remove unused variable.
17593
17594 2017-03-03 Jakub Jelinek <jakub@redhat.com>
17595
17596 PR target/79807
17597 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
17598 is a memory operand, increase num_memory.
17599 (ix86_expand_args_builtin): Likewise.
17600
17601 2017-03-03 Jan Hubicka <jh@suse.cz>
17602
17603 PR lto/79760
17604 * ipa-devirt.c (maybe_record_node): Properly handle
17605 __cxa_pure_virtual visibility.
17606
17607 2017-03-03 Martin Liska <mliska@suse.cz>
17608
17609 PR tree-optimization/79803
17610 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
17611 assert.
17612 (pass_loop_prefetch::execute): Disabled optimization if an
17613 assumption about L1 cache size is not met.
17614
17615 2017-03-03 Martin Liska <mliska@suse.cz>
17616
17617 PR rtl-optimization/79574
17618 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
17619 (hash_scan_set): Likewise.
17620 (dump_hash_table): Likewise.
17621 (hoist_code): Likewise.
17622
17623 2017-03-03 Richard Biener <rguenther@suse.de>
17624
17625 * fixed-value.c (fixed_from_string): Restore use of elt (1)
17626 in place of uhigh ().
17627 (fixed_convert_from_real): Likewise.
17628
17629 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
17630
17631 PR target/79514
17632 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
17633
17634 2017-03-03 Richard Biener <rguenther@suse.de>
17635
17636 PR middle-end/79818
17637 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
17638 TYPE_OVERFLOW_UNDEFINED check.
17639
17640 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17641
17642 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
17643 numbers.
17644 (vector_ae_<mode>_p): Likewise.
17645 (vector_nez_<mode>_p): Likewise.
17646 (vector_ne_v2di_p): Likewise.
17647 (vector_ae_v2di_p): Likewise.
17648 (vector_ne_<mode>_p): Likewise.
17649 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
17650 numbers.
17651 (vsx_tsqrt<mode>2_fe): Likewise.
17652
17653 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
17654
17655 PR target/79514
17656 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
17657
17658 2017-03-02 Jakub Jelinek <jakub@redhat.com>
17659
17660 PR rtl-optimization/79780
17661 * cprop.c (one_cprop_pass): When second and further conditional trap
17662 in a single basic block is turned into an unconditional trap, turn it
17663 into a deleted note to avoid RTL verification failures.
17664
17665 2017-03-02 Richard Biener <rguenther@suse.de>
17666
17667 * fold-const.c (const_binop): Use ulow () instead of elt (0).
17668
17669 2017-03-02 Richard Biener <rguenther@suse.de>
17670
17671 PR tree-optimization/79345
17672 PR c++/42000
17673 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
17674 param and abort the walk, returning -1 if it is hit.
17675 (walk_aliased_vdefs): Take a limit param and pass it on.
17676 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
17677 defaulting to 0 and return a signed int.
17678 * tree-ssa-uninit.c (struct check_defs_data): New struct.
17679 (check_defs): New helper.
17680 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
17681 about uninitialized memory.
17682 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
17683 bogus uninitialized warning.
17684 (fixed_convert_from_real): Likewise.
17685
17686 2017-03-02 Bin Cheng <bin.cheng@arm.com>
17687
17688 PR tree-optimization/66768
17689 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
17690 iv_use if base object can't be determined.
17691
17692 2017-03-02 Jakub Jelinek <jakub@redhat.com>
17693
17694 PR tree-optimization/79345
17695 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
17696 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
17697 (get_pattern_stats): Initialize it.
17698 * genemit.c (gen_expand): Verify match_scratch numbers come after
17699 match_operand/match_dup numbers.
17700 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
17701 match_scratch numbers.
17702 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
17703 Likewise.
17704 * config/s390/s390.md (trunctdsd2): Likewise.
17705
17706 2017-03-02 Richard Biener <rguenther@suse.de>
17707
17708 * wide-int.h (wide_int_storage::operator=): Implement in terms
17709 of wi::copy.
17710
17711 2017-03-02 Richard Biener <rguenther@suse.de>
17712
17713 PR tree-optimization/79777
17714 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
17715 the to insert expression to sth existing.
17716
17717 2017-03-01 Martin Sebor <msebor@redhat.com>
17718
17719 PR middle-end/79692
17720 * gimple-ssa-sprintf.c
17721 (directive::known_width_and_precision): New function.
17722 (format_integer): Use it.
17723 (get_mpfr_format_length): Consider the full range of precision
17724 when computing %g output with the # flag. Set the likely byte
17725 count to 3 rather than 1 when precision is indeterminate.
17726 (format_floating): Correct the lower bound of precision.
17727
17728 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17729
17730 * doc/invoke.texi: Document default code model for 64-bit Linux.
17731
17732 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
17733
17734 PR target/79752
17735 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
17736 udiv rather than div since input pattern is unsigned.
17737
17738 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
17739
17740 * config/i386/i386.c (print_reg): Warn for values of
17741 unsupported size in integer register.
17742
17743 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
17744
17745 PR target/79439
17746 * config/rs6000/predicates.md (current_file_function_operand): Do
17747 not allow self calls to be local if the function is replaceable.
17748
17749 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
17750
17751 PR target/79395
17752 * config/rs6000/altivec.h (vec_ctz and others): Change the
17753 preprocessor macro that controls conditional compilation from
17754 _ARCH_PWR9 to __POWER9_VECTOR__.
17755 (vec_all_ne): Change parameterization of __altivec_scalar_pred
17756 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
17757 control (instead of _ARCH_PWR9 control) so that template
17758 definition uses power9-specific function.
17759 (vec_any_eq): Likewise.
17760 (vec_all_ne): Change macro definition to use a power9-specific
17761 expansion under #ifdef __POWER9_VECTOR__ control (instead of
17762 _ARCH_PWR9 control).
17763 (vec_any_eq) Likewise.
17764 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
17765 expansion for CMPNEF to remove support for xvcmpnesp instruction.
17766 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
17767 support for xvcmpnedp instruction.
17768 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
17769 macro expansion so that Power9 implementation of vec_all_ne does
17770 not use the AltiVec predicate framework.
17771 (VCMPNEH_P): Likewise.
17772 (VCMPNEW_P): Likewise.
17773 (VCMPNED_P): Likewise.
17774 (VCMPNEFP_P): Likewise.
17775 (VCMPNEDP_P): Likewise.
17776 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
17777 implementation of vec_any_eq to not use AltiVec predicate
17778 framework.
17779 (VCMPAEH_P): Likewise.
17780 (VCMPAEW_P): Likewise.
17781 (VCMPAED_P): Likewise.
17782 (VCMPAEFP_P): Likewise.
17783 (VCMPAEDP_P): Likewise.
17784 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
17785 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
17786 not use the AltiVec predicate framework.
17787 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
17788 of vec_any_eq to not use AltiVec predicate framework.
17789 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
17790 support for predefined __POWER9_VECTOR__ macro to indicate that
17791 Power9 instruction selection is enabled.
17792 (altivec_overloaded_builtins): Remove extraneous
17793 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
17794 function argument types RS6000_BTI_bool_V16QI and
17795 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
17796 entry for overloaded function argument types RS6000_BTI_bool_V4SI
17797 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
17798 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
17799 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
17800 Power9 for implementations of vec_cmpne. Change the signature for
17801 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
17802 (representing vec_all_ne) to remove the previously described first
17803 argument of type RS6000_BTI_INTSI, as this was an artifact of
17804 reliance on the AltiVec predicate framework, which is no longer
17805 used in the implementation of these functions. Add
17806 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
17807 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
17808 since, unlike the AltiVec predicate framework implementation, we
17809 do not share function descriptors between vec_alle and vec_anyeq.
17810 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
17811 set of modes that receive special treatment even when
17812 TARGET_P9_VECTOR is true. The special treatment emits code that
17813 does not depend on Power9 instructions.
17814 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
17815 define_expand to not rely on AltiVec predicate framework.
17816 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
17817 function.
17818 (vector_ne_v2di_p): Change this define_expand to not rely on
17819 AltiVec predicate framework.
17820 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
17821 function.
17822 (vector_ne_<mode>_p): Change this define_expand to not rely on
17823 AltiVec predicate framework.
17824 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
17825 function.
17826 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
17827 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
17828 define_insn pattern.
17829 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
17830 define_insn pattern because the xvcmpne<VSs>. instruction is not
17831 supported.
17832 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
17833 instruction is not supported.
17834
17835 2017-03-01 Jakub Jelinek <jakub@redhat.com>
17836
17837 * config/nvptx/nvptx.c: Include intl.h.
17838
17839 2017-03-01 Martin Jambor <mjambor@suse.cz>
17840
17841 PR lto/78140
17842 * ipa-prop.h (ipa_bits): Removed field known.
17843 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
17844 to pointers. Adjusted their comments to warn about their sharing.
17845 (ipcp_transformation_summary): Change bits to a vector of pointers.
17846 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
17847 (ipa_get_ipa_bits_for_value): Declare.
17848 * tree-vrp.h (value_range): Mark as GTY((for_user)).
17849 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
17850 (ipa_bits_hash_table): Likewise.
17851 (ipa_vr_ggc_hash_traits): Likewise.
17852 (ipa_vr_hash_table): Likewise.
17853 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
17854 being pointers and vr_known being removed.
17855 (ipa_set_jf_unknown): Likewise.
17856 (ipa_get_ipa_bits_for_value): New function.
17857 (ipa_set_jfunc_bits): Likewise.
17858 (ipa_get_value_range): New overloaded functions.
17859 (ipa_set_jfunc_vr): Likewise.
17860 (ipa_compute_jump_functions_for_edge): Use the above functions to
17861 construct bits and vr parts of jump functions.
17862 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
17863 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
17864 exist.
17865 (ipcp_grow_transformations_if_necessary): Also allocate
17866 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
17867 exist.
17868 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
17869 them. Fix too long lines.
17870 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
17871 vr_known being removed.
17872 (ipa_read_jump_function): Use new setter functions to construct bits
17873 and vr parts of jump functions or set them to NULL.
17874 (write_ipcp_transformation_info): Adjust for bits being pointers.
17875 (read_ipcp_transformation_info): Likewise.
17876 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
17877 space.
17878 Include gt-ipa-prop.h.
17879 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
17880 being pointers.
17881 (ipcp_store_bits_results): Likewise.
17882 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
17883 Do not write to existing jump functions but use a temporary instead.
17884
17885 2017-03-01 Jakub Jelinek <jakub@redhat.com>
17886
17887 PR c++/79681
17888 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
17889 attempt to use its first operand as BIT_FIELD_REF base.
17890
17891 2017-03-01 Richard Biener <rguenther@suse.de>
17892
17893 PR middle-end/79721
17894 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
17895 interpolating formula in wrapping arithmetic.
17896 (chrec_apply): Convert chrec_evaluate return value to wanted type.
17897
17898 2017-03-01 Jakub Jelinek <jakub@redhat.com>
17899
17900 PR tree-optimization/79734
17901 * tree-vect-generic.c (expand_vector_condition): Optimize
17902 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
17903 Handle VEC_COND_EXPR where comparison has different inner width from
17904 type's inner width.
17905
17906 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
17907
17908 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
17909 markup, and similar issues. Remove @opindex entries for things
17910 that aren't options. Add missing -mmpy-option entries.
17911
17912 2017-02-28 Jakub Jelinek <jakub@redhat.com>
17913
17914 PR tree-optimization/79737
17915 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
17916 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
17917 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
17918 instead of byte_size. Formatting fix.
17919 (shift_bytes_in_array_right): Formatting fix.
17920
17921 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
17922
17923 PR target/79749
17924 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
17925 condition on optimize for the leaf function test.
17926
17927 2017-02-28 Martin Liska <mliska@suse.cz>
17928
17929 PR lto/79625
17930 * read-rtl-function.c (function_reader::handle_unknown_directive):
17931 Bail out when one uses -flto.
17932
17933 2017-02-28 Martin Liska <mliska@suse.cz>
17934
17935 * common.opt: Replace space with tabular for options of <number>
17936 type.
17937 * config/i386/i386.opt: Show <number> value for
17938 -mlarge-data-threshold.
17939 * opts.c (print_filtered_help): Do not display number in hexadecimal
17940 format.
17941
17942 2017-02-28 Martin Liska <mliska@suse.cz>
17943
17944 * common.opt: Fix --help=option -Q for options which are of
17945 an enum type.
17946
17947 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
17948
17949 * config/i386/i386.c (print_reg): Error out for values
17950 of 8-bit size in invalid integer register.
17951
17952 2017-02-28 Martin Sebor <msebor@redhat.com>
17953
17954 PR tree-optimization/79691
17955 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
17956
17957 2017-02-28 Jakub Jelinek <jakub@redhat.com>
17958
17959 PR target/79729
17960 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
17961 gcc_unreachable with output_operand_lossage.
17962
17963 2017-02-28 Richard Biener <rguenther@suse.de>
17964
17965 PR tree-optimization/79740
17966 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
17967 inserts.
17968 (visit_nary_op): Insert the nary into the hashtable if we
17969 pattern-matched sth.
17970 * tree-ssa-pre.c (eliminate_insert): Robustify.
17971
17972 2017-02-28 Richard Biener <rguenther@suse.de>
17973
17974 PR middle-end/79731
17975 * fold-const.c (decode_field_reference): Reject out-of-bound
17976 accesses.
17977
17978 2017-02-28 Jakub Jelinek <jakub@redhat.com>
17979
17980 * config/i386/i386.c: Include intl.h.
17981 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
17982 instead of just cond ? "..." : "...".
17983 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
17984 * coverage.c (read_counts_file): Likewise.
17985 * omp-offload.c: Include intl.h.
17986 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
17987 of just cond ? "..." : "...".
17988 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
17989 of just cond ? "..." : "...".
17990
17991 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
17992
17993 PR target/79742
17994 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
17995 entry, if present.
17996 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
17997 'tune for' CPU name.
17998 * config/arm/arm-cpu-data.h: Regenerated.
17999
18000 2017-02-28 Richard Biener <rguenther@suse.de>
18001
18002 PR tree-optimization/79732
18003 * tree-inline.c (expand_call_inline): Do not shadow var.
18004
18005 2017-02-28 Richard Biener <rguenther@suse.de>
18006
18007 PR tree-optimization/79723
18008 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
18009 address-space properly.
18010
18011 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
18012
18013 * doc/optinfo.texi (Optimization groups): Fix option used for
18014 OPTGROUP_ALL.
18015 * doc/invoke.texi (-fopt-info): Document "omp".
18016 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
18017 (OPTGROUP_ALL): Add OPTGROUP_OMP.
18018 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
18019 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
18020 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
18021
18022 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
18023 all users.
18024 * dumpfile.c (optgroup_options): Instead of "openmp", associate
18025 OPTGROUP_OMP with "omp".
18026
18027 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
18028
18029 PR target/79544
18030 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
18031 for arithmetic shift of unsigned V2DI.
18032
18033 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
18034
18035 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
18036 arc/linux.h headers.
18037 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
18038 (LINK_SPEC): Likewise.
18039 (ARC_TLS_EXTRA_START_SPEC): Likewise.
18040 (EXTRA_SPECS): Likewise.
18041 (STARTFILE_SPEC): Likewise.
18042 (ENDFILE_SPEC): Likewise.
18043 (LIB_SPEC): Likewise.
18044 (TARGET_SDATA_DEFAULT): Likewise.
18045 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
18046 (MULTILIB_DEFAULTS): Likewise.
18047 (DWARF2_UNWIND_INFO): Likewise.
18048 * config/arc/big.h: New file.
18049 * config/arc/elf.h: Likewise.
18050 * config/arc/linux.h: Likewise.
18051 * config/arc/t-uClibc: Remove.
18052
18053 2017-02-27 Bin Cheng <bin.cheng@arm.com>
18054
18055 PR tree-optimization/77536
18056 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
18057 (tree_transform_and_unroll_loop): Use above function to compute the
18058 estimated niter of unrolled loop and use it when scaling profile.
18059 Also use count info rather than frequency if it's non-zero.
18060 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
18061 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
18062 (vect_transform_loop): Call above function.
18063
18064 2017-02-27 Richard Biener <rguenther@suse.de>
18065
18066 PR tree-optimization/45397
18067 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
18068 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
18069 (visit_nary_op): Add pattern matching for CSEing sign-changed
18070 or truncated operations with wider ones.
18071
18072 2017-02-27 Richard Biener <rguenther@suse.de>
18073
18074 PR tree-optimization/79690
18075 * tree-vect-stmts.c (vectorizable_store): Use vector type
18076 built from the DR with address-space.
18077
18078 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
18079
18080 * doc/invoke.texi (Optimize Options): Refine the description
18081 of asan-use-after-return.
18082
18083 2017-02-25 Alan Modra <amodra@gmail.com>
18084
18085 PR rtl-optimization/79584
18086 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
18087 base, not ad->base_term, the reg within base. Remove assertion
18088 that ad->base == ad->base_term. Replace gen_int_mode using
18089 bogus mode with const0_rtx.
18090
18091 2017-02-25 Jakub Jelinek <jakub@redhat.com>
18092
18093 PR middle-end/79396
18094 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
18095 FMA_EXPR like tcc_binary or tcc_unary.
18096
18097 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
18098
18099 PR debug/77589
18100 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
18101 bitfield.
18102 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
18103 (output_loc_operands): Handle DW_OP_call_ref and
18104 DW_OP_GNU_variable_value.
18105 (struct variable_value_struct): New type.
18106 (struct variable_value_hasher): Likewise.
18107 (variable_value_hash): New variable.
18108 (string_types): Remove.
18109 (copy_loc_descr): New function.
18110 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
18111 (prepend_loc_descr_to_each): New function.
18112 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
18113 instead of add_loc_descr_to_each if the first argument is single
18114 location list and the second has multiple.
18115 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
18116 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
18117 when looking for variable value which doesn't have other location info.
18118 (loc_list_from_tree): Formatting fix.
18119 (gen_array_type_die): Simplify DW_AT_string_length handling.
18120 (adjust_string_types): Remove.
18121 (gen_subprogram_die): Don't call adjust_string_types nor test/set
18122 string_types. Call resolve_variable_values.
18123 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
18124 (resolve_addr_in_expr): Likewise. Add A argument.
18125 (copy_deref_exprloc): Remove deref argument. Adjust for the
18126 original expression being DW_OP_GNU_variable_value with optionally
18127 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
18128 optionally after it.
18129 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
18130 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
18131 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
18132 (variable_value_hasher::hash, variable_value_hasher::equal): New
18133 methods.
18134 (resolve_variable_value_in_expr, resolve_variable_value,
18135 resolve_variable_values, note_variable_value_in_expr,
18136 note_variable_value): New functions.
18137 (dwarf2out_early_finish): Call note_variable_value on all toplevel
18138 DIEs.
18139
18140 2017-02-24 Jakub Jelinek <jakub@redhat.com>
18141
18142 PR c/79677
18143 * opts.h (handle_generated_option): Add GENERATED_P argument.
18144 * opts-common.c (handle_option): Adjust function comment.
18145 (handle_generated_option): Add GENERATED_P argument, pass it to
18146 handle_option.
18147 (control_warning_option): Pass false to handle_generated_option
18148 GENERATED_P.
18149 * opts.c (maybe_default_option): Pass true to handle_generated_option
18150 GENERATED_P.
18151 * optc-gen.awk: Likewise.
18152
18153 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18154
18155 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
18156 a REG, look at the REG it is a SUBREG of.
18157 (splitter for cmpeqsi_t): Ditto.
18158
18159 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18160
18161 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
18162 the special USEs with the pattern of the insn, not the insn itself.
18163
18164 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
18165
18166 PR target/79473
18167 * doc/invoke.texi: Document -mload-store-pairs.
18168
18169 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18170 Sandra Loosemore <sandra@codesourcery.com>
18171
18172 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
18173 argument isn't a CONST_INT.
18174 (nios2_alternate_compare_const): Assert op is a CONST_INT.
18175 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
18176 (nios2_validate_compare): Bypass alternate compare logic if *op2
18177 is not a CONST_INT.
18178 (ldstwm_operation_p): Return false if first_base is not a REG or
18179 if first_offset is not a CONST_INT.
18180
18181 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18182
18183 * config/cris/cris.md: Use correct operand in a define_peephole2.
18184
18185 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18186
18187 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
18188
18189 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
18190
18191 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
18192 this_insn if it is an INSN or JUMP_INSN.
18193 (force_offsettable): Look at base, not at addr.
18194 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
18195 on things that aren't necessarily CONST_INTs.
18196
18197 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
18198
18199 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
18200 -mfpmath=sse is the default also for x86-32 targets with SSE2
18201 instruction set when @option{-ffast-math} is enabled
18202
18203 2017-02-24 Jeff Law <law@redhat.com>
18204
18205 PR rtl-optimizatoin/79286
18206 * ira.c (update_equiv_regs): Drop may_trap_p exception to
18207 dominance test.
18208
18209 2017-02-24 Richard Biener <rguenther@suse.de>
18210
18211 PR tree-optimization/79389
18212 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
18213 debug insns.
18214
18215 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
18216
18217 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
18218 function comment to reflect reality.
18219 (loop_exits_before_overflow): Fix typo in function description.
18220
18221 2017-02-24 Richard Biener <rguenther@suse.de>
18222
18223 PR tree-optimization/79389
18224 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
18225 properly that a threading opportunity exists. Detect conditional
18226 copy/constant propagation opportunities.
18227
18228 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
18229
18230 * config/visium/visium.md (type): Add trap.
18231 (b): New mode attribute.
18232 (*btst): Rename into...
18233 (*btst<mode>): ...this and adjust.
18234 (*cbranchsi4_btst_insn): Rename into...
18235 (*cbranch<mode>4_btst_insn): ...this and adjust.
18236 (trap): New define_insn.
18237
18238 2017-02-23 Jakub Jelinek <jakub@redhat.com>
18239
18240 PR tree-optimization/79389
18241 * ifcvt.c (struct noce_if_info): Add rev_cond field.
18242 (noce_reversed_cond_code): New function.
18243 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
18244 reversed_comparison_code. Formatting fix.
18245 (noce_try_store_flag): Test rev_cond != NULL in addition to
18246 reversed_comparison_code.
18247 (noce_try_store_flag_constants): Likewise.
18248 (noce_try_store_flag_mask): Likewise.
18249 (noce_try_addcc): Use rev_cond if non-NULL instead of
18250 reversed_comparison_code.
18251 (noce_try_cmove_arith): Likewise. Formatting fixes.
18252 (noce_try_minmax, noce_try_abs): Clear rev_cond.
18253 (noce_find_if_block): Initialize rev_cond.
18254 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
18255 instead of false as last argument never attempt to reverse it
18256 afterwards.
18257
18258 2017-02-23 Bin Cheng <bin.cheng@arm.com>
18259
18260 PR tree-optimization/79663
18261 * tree-predcom.c (combine_chains): Process refs in reverse order
18262 only for ZERO length chains, and add explaining comment.
18263
18264 2017-02-23 Jeff Law <law@redhat.com>
18265
18266 PR tree-optimization/79578
18267 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
18268 in call to operand_equal_p.
18269
18270 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
18271
18272 PR target/71017
18273 * config/i386/cpuid.h: Fix another undefined behavior.
18274
18275 2017-02-23 Richard Biener <rguenther@suse.de>
18276
18277 PR tree-optimization/79683
18278 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
18279 vector types for data-refs.
18280
18281 2017-02-23 Martin Liska <mliska@suse.cz>
18282
18283 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
18284
18285 2017-02-23 Jakub Jelinek <jakub@redhat.com>
18286
18287 PR middle-end/79665
18288 * internal-fn.c (get_range_pos_neg): Moved to ...
18289 * tree.c (get_range_pos_neg): ... here. No longer static.
18290 * tree.h (get_range_pos_neg): New prototype.
18291 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
18292 are known to be in between 0 and signed maximum inclusive, try to
18293 expand both unsigned and signed divmod and use the cheaper one from
18294 those.
18295
18296 2017-02-22 Jeff Law <law@redhat.com>
18297
18298 PR tree-optimization/79578
18299 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
18300 to compare base operands.
18301
18302 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
18303
18304 PR target/79211
18305 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
18306 gpc_reg_operand instead of fpr_reg_operand.
18307
18308 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
18309
18310 * config/mips/mips.c (mips_return_in_memory): Force FP
18311 vector types to be returned in memory for o32 ABI.
18312
18313 2017-02-22 Jakub Jelinek <jakub@redhat.com>
18314
18315 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
18316 instead of DW_TAG_member for static data member declarations and don't
18317 set no_linkage_name for static inline data members.
18318 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
18319 to DW_TAG_member.
18320
18321 2017-02-22 Martin Liska <mliska@suse.cz>
18322
18323 * doc/invoke.texi: Replace inequality signs with square brackets
18324 for -Wnormalized.
18325
18326 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18327
18328 PR tree-optimization/68644
18329 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
18330
18331 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
18332
18333 PR target/78660
18334 * lra-constraints.c (simplify_operand_subreg): Handle
18335 WORD_REGISTER_OPERATIONS targets.
18336
18337 2017-02-22 Jakub Jelinek <jakub@redhat.com>
18338
18339 PR target/70465
18340 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
18341 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
18342 elimination by swapping fld*.
18343
18344 2017-02-22 Richard Biener <rguenther@suse.de>
18345
18346 PR tree-optimization/79673
18347 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
18348 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
18349 irrelevant address-space qualifiers and avoiding a
18350 ADDR_SPACE_CONVERT_EXPR from fold_convert.
18351
18352 2017-02-22 Richard Biener <rguenther@suse.de>
18353
18354 PR tree-optimization/79666
18355 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
18356 to not symbolically negate if that may introduce undefined
18357 overflow.
18358
18359 2017-02-22 Martin Liska <mliska@suse.cz>
18360
18361 PR lto/79587
18362 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
18363 * data-streamer-out.c (streamer_write_gcov_count_stream):
18364 Likewise.
18365 * value-prof.c (stream_out_histogram_value): Make assert more
18366 precise based on type of counter.
18367
18368 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
18369
18370 PR target/79593
18371 * config/i386/i386.md (standard_x87sse_constant_load splitter):
18372 Use nonimmediate_operand instead of memory_operand for operand 1.
18373 (float-extend standard_x87sse_constant_load splitter): Ditto.
18374
18375 2017-02-21 Jeff Law <law@redhat.com>
18376
18377 PR tree-optimization/79621
18378 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
18379 blocks with edges to themselves.
18380
18381 2017-02-21 Jakub Jelinek <jakub@redhat.com>
18382
18383 PR target/79633
18384 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
18385 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
18386 Use gimple_call_builtin_p.
18387
18388 PR target/79570
18389 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
18390 on temporarily removed DEBUG_INSNs.
18391
18392 PR tree-optimization/79649
18393 * tree-loop-distribution.c (classify_partition): Give up on
18394 non-generic address space loads/stores.
18395
18396 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
18397
18398 * doc/loop.texi (Loop manipulation): Remove nonexistent
18399 tree_ssa_loop_version from the documentation.
18400 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
18401
18402 2017-02-21 Jakub Jelinek <jakub@redhat.com>
18403
18404 PR target/79494
18405 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
18406 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
18407 * config/rs6000/rs6000.c: Include except.h.
18408 (rs6000_expand_split_stack_prologue): Call
18409 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
18410
18411 2017-02-21 Martin Jambor <mjambor@suse.cz>
18412
18413 PR lto/79579
18414 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
18415 have been analyzed.
18416
18417 2017-02-21 Martin Jambor <mjambor@suse.cz>
18418
18419 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
18420 for backward compatibility only.
18421 * doc/invoke.texi (Option Summary): Remove all references to
18422 -fipa-cp-alignment.
18423
18424 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
18425
18426 PR target/78660
18427 Revert:
18428 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
18429
18430 * lra-constraints.c (curr_insn_transform): Handle
18431 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
18432
18433 2017-02-21 Martin Liska <mliska@suse.cz>
18434
18435 * config/i386/i386.opt: Replace -masm-dialect with -masm.
18436
18437 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
18438
18439 PR translation/79638
18440 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
18441
18442 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
18443
18444 PR ada/67205
18445 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
18446 (arm_function_ok_for_sibcall): Return false for an indirect call by
18447 descriptor if all the argument registers are used.
18448 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
18449 alignment of the function.
18450
18451 2017-02-21 Jakub Jelinek <jakub@redhat.com>
18452
18453 PR tree-optimization/61441
18454 * simplify-rtx.c (simplify_const_unary_operation): For
18455 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
18456 the sNaN unmodified.
18457
18458 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
18459
18460 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
18461 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
18462 instead of SYSTEM_HEADER_DIR.
18463
18464 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
18465 Martin Liška <mliska@suse.cz>
18466
18467 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
18468 Fix typos and grammar, use active voice, and clarify.
18469
18470 2017-02-20 Marek Polacek <polacek@redhat.com>
18471
18472 PR middle-end/79537
18473 * gimplify.c (gimplify_expr): Handle unused *&&L;.
18474
18475 PR sanitizer/79558
18476 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
18477
18478 2017-02-20 Jakub Jelinek <jakub@redhat.com>
18479
18480 PR target/79568
18481 * config/i386/i386.c (ix86_expand_builtin): Handle
18482 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
18483 ix86_builtins_isa[fcode].isa as a requirement of those
18484 flags and any other flag in the bitmask.
18485 (ix86_init_mmx_sse_builtins): Use 0 instead of
18486 ~OPTION_MASK_ISA_64BIT as mask.
18487 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
18488 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
18489 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
18490 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
18491
18492 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
18493
18494 PR target/78012
18495 * lra-constraints.c (split_reg): Check requested split mode
18496 is supported by the register.
18497
18498 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
18499
18500 * lra-constraints.c (simplify_operand_subreg): Remove early
18501 return false.
18502
18503 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
18504
18505 PR target/78660
18506 * lra-constraints.c (curr_insn_transform): Tighten condition
18507 for converting SUBREG reloads from OP_OUT to OP_INOUT.
18508
18509 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
18510
18511 PR target/78660
18512 * lra-constraints.c (curr_insn_transform): Handle
18513 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
18514
18515 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
18516
18517 Revert:
18518 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
18519
18520 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
18521
18522 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
18523
18524 PR c++/69523
18525 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
18526 description.
18527
18528 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18529
18530 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
18531 for FMA_EXPR.
18532
18533 2017-02-18 Jakub Jelinek <jakub@redhat.com>
18534
18535 * final.c (last_columnnum, override_columnnum): New variables.
18536 (final_start_function): Set last_columnnum, pass it to begin_prologue
18537 hook and pass 0 to dwarf2out_begin_prologue.
18538 (final_scan_insn): Update override_columnnum. Pass last_columnnum
18539 to source_line debug hook.
18540 (notice_source_line): Compute last_columnnum and for debug_column_info
18541 return true on column changes.
18542 * debug.h (struct gcc_debug_hooks): Add column argument to
18543 source_line and begin_prologue hooks.
18544 (debug_nothing_int_charstar_int_bool): Remove prototype.
18545 (debug_nothing_int_int_charstar,
18546 debug_nothing_int_int_charstar_int_bool): New prototypes.
18547 (dwarf2out_begin_prologue): Add column argument.
18548 * debug.c (do_nothing_debug_hooks): Adjust source_line and
18549 begin_prologue hooks.
18550 (debug_nothing_int_charstar_int_bool): Remove.
18551 (debug_nothing_int_int_charstar,
18552 debug_nothing_int_int_charstar_int_bool): New functions.
18553 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
18554 through to dwarf2out_source_line.
18555 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
18556 (dwarf2out_source_line): Add column argument, emit it if requested.
18557 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
18558 arguments.
18559 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
18560 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
18561 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
18562 through to dwarf2out_begin_prologue.
18563 (vmsdbgout_source_line): Add column argument, pass it through to
18564 dwarf2out_source_line.
18565 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
18566 dbxout_source_line caller.
18567 (dbxout_source_line): Add column argument.
18568
18569 * common.opt (gno-column-info, gcolumn-info): New options.
18570 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
18571 (check_die): Also test for multiple DW_AT_decl_column attributes.
18572 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
18573 DW_AT_decl_column if requested.
18574 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
18575 if requested.
18576 (gen_variable_die): Likewise.
18577 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
18578 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
18579
18580 PR target/79569
18581 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
18582 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
18583 (ix86_handle_option): Handle OPT_m3dnowa.
18584 * doc/invoke.texi (-m3dnowa): Document.
18585 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
18586 -m3dnowa instead of -m3dnow -march=athlon.
18587
18588 PR target/79559
18589 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
18590 instead of gcc_assert for K, r and R code checks. Formatting fixes.
18591
18592 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18593
18594 PR target/79261
18595 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
18596 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
18597 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
18598 generator for vsx_xxpermdi_<mode>_be.
18599 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
18600 force big-endian semantics.
18601 (vsx_xxpermdi_<mode>_be): New define_expand with same
18602 implementation as previous version of vsx_xxpermdi_<mode>.
18603
18604 2017-02-17 Jakub Jelinek <jakub@redhat.com>
18605
18606 PR tree-optimization/79327
18607 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
18608 variable, its initialization and use.
18609
18610 2017-02-17 Julia Koval <julia.koval@intel.com>
18611
18612 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
18613 (OPTION_MASK_ISA_PKU_UNSET): New.
18614 (ix86_handle_option): Handle -mrdpid.
18615 * config/i386/cpuid.h (bit_RDPID): New.
18616 * config/i386/driver-i386.c (host_detect_local_cpu):
18617 Detect RDPID feature.
18618 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
18619 * config/i386/i386-c.c (ix86_target_macros_internal):
18620 Handle RDPID flag.
18621 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
18622 (ix86_valid_target_attribute_inner_p): Add "rdpid".
18623 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
18624 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
18625 * config/i386/i386.md (define_insn "rdpid"): New.
18626 * config/i386/i386.opt Add -mrdpid.
18627 * config/i386/immintrin.h (_rdpid_u32): New.
18628
18629 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
18630
18631 PR rtl-optimization/79541
18632 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
18633 instead of transforming it into USE.
18634
18635 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
18636
18637 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
18638 If HONOR_SNANS (SFmode) force the input to a register.
18639 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
18640 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
18641 an frsp or similar insn.
18642
18643 2017-02-17 Martin Liska <mliska@suse.cz>
18644
18645 PR rtl-optimization/79577
18646 * params.def (selsched-max-sched-times): Increase minimum to 1.
18647
18648 2017-02-17 Martin Liska <mliska@suse.cz>
18649
18650 PR rtl-optimization/79574
18651 * gcse.c (want_to_gcse_p): Prevent integer overflow.
18652
18653 2017-02-17 Martin Liska <mliska@suse.cz>
18654
18655 PR tree-optimization/79529
18656 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
18657 ssa_defined_default_def_p to handle cases which are implicitly
18658 defined.
18659 * tree-ssa.c (ssa_defined_default_def_p): New function.
18660 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
18661 which are implicitly defined.
18662 * tree-ssa.h (ssa_defined_default_def_p): Declare.
18663
18664 2017-02-17 Richard Biener <rguenther@suse.de>
18665
18666 PR middle-end/79576
18667 * params.def (max-ssa-name-query-depth): Limit to 10.
18668
18669 2017-02-17 Richard Biener <rguenther@suse.de>
18670
18671 PR tree-optimization/79552
18672 * tree-ssa-structalias.c (visit_loadstore): Properly verify
18673 default defs.
18674
18675 2017-02-17 Richard Biener <rguenther@suse.de>
18676
18677 PR bootstrap/79567
18678 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
18679
18680 2017-02-17 Marek Polacek <polacek@redhat.com>
18681
18682 PR middle-end/79536
18683 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
18684 (fold_negate_expr): New wrapper.
18685
18686 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
18687
18688 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
18689 Correct terminology and de-emphasize pre-standard behavior.
18690
18691 2017-02-16 Alan Modra <amodra@gmail.com>
18692
18693 PR rtl-optimization/79286
18694 * ira.c (def_dominates_uses): New function.
18695 (update_equiv_regs): Don't create an equivalence for insns that
18696 may trap where the register def does not dominate the use.
18697
18698 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
18699
18700 PR rtl-optimization/78127
18701 * lra.c (lra): Call lra_eliminate before finish the loop after
18702 lra_constraint.
18703
18704 2017-02-16 Richard Biener <rguenther@suse.de>
18705
18706 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
18707 isl/isl_val.h.
18708 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
18709 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
18710 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
18711 (isl_val_int_from_wi): New function.
18712 (extract_affine_gmp): Rename to ...
18713 (extract_affine_wi): ... this, take a widest_int.
18714 (extract_affine_int): Just wrap extract_affine_wi.
18715 (add_param_constraints): Use isl_val_int_from_wi.
18716 (add_loop_constraints): Likewise, and extract_affine_wi.
18717
18718 2017-02-15 Jeff Law <law@redhat.com>
18719
18720 PR middle-end/79521
18721 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
18722 ira_init_register_move_cost_if_necessary.
18723
18724 2017-02-15 Martin Sebor <msebor@redhat.com>
18725
18726 PR middle-end/32003
18727 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
18728 removed in a prior commit.
18729
18730 2017-02-15 Bin Cheng <bin.cheng@arm.com>
18731
18732 PR tree-optimization/79347
18733 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
18734 counters during peeling.
18735
18736 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
18737
18738 * Makefile.in (site.exp): Remove "set ISLVER".
18739
18740 2017-02-15 Jakub Jelinek <jakub@redhat.com>
18741
18742 PR target/79487
18743 * real.c (real_from_integer): Call real_convert even for decimal.
18744
18745 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
18746
18747 PR target/79421
18748 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
18749
18750 2017-02-14 Andrew Pinski <apinski@cavium.com>
18751
18752 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
18753 cores and change the partno/implementer to be correct.
18754 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
18755 the 'B" as the implementer.
18756 * config/aarch64/aarch64-tune.md: Regenerate.
18757
18758 2017-02-14 Carl Love <cel@us.ibm.com>
18759
18760 * config/rs6000/rs6000.c: Add case statement entry to make the
18761 xvcvuxdsp built-in argument unsigned.
18762 * config/rs6000/vsx.md: Fix the source and return operand types so they
18763 match the instruction definitions from the ISA document. Fix typo
18764 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
18765 statement.
18766
18767 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
18768
18769 PR target/79282
18770 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
18771 member early_clobber_alts.
18772 * lra-lives.c (reg_early_clobber_p): New.
18773 (process_bb_lives): Use it.
18774 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
18775 (debug_operand_data): Initialize early_clobber_alts.
18776 (setup_operand_alternative): Set up early_clobber_alts.
18777 (collect_non_operand_hard_regs): Ditto. Pass early clobber
18778 alternatives to new_insn_reg.
18779 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
18780 it.
18781 (lra_update_insn_regno_info): Pass the new arg.
18782
18783 2017-02-14 Jakub Jelinek <jakub@redhat.com>
18784
18785 PR middle-end/79505
18786 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
18787 (new_oacc_loop_raw): Don't clear already cleared fields.
18788
18789 PR target/79481
18790 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
18791 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
18792 _mm512_prefetch_i64gather_ps): New inline functions and macros.
18793
18794 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
18795
18796 PR target/79495
18797 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
18798
18799 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
18800
18801 PR target/79498
18802 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
18803 the extra instruction to the right place to store 128-bit constant
18804 when needed.
18805
18806 2017-02-14 Martin Sebor <msebor@redhat.com>
18807
18808 PR middle-end/79448
18809 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
18810 warning for strings of unknown length.
18811
18812 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
18813
18814 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
18815
18816 2017-02-14 Jeff Law <law@redhat.com>
18817
18818 PR target/79404
18819 * ira-costs.c (scan_one_insn): Initialize register move costs
18820 for pseudos seen in USE/CLOBBER insns.
18821
18822 PR tree-optimization/79095
18823 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
18824 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
18825 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
18826 if the operands are known to be not equal, then the resulting range
18827 is ~[0,0].
18828 (intersect_ranges): If the new range is ~[0,0] and the old range is
18829 wide, then prefer ~[0,0].
18830 * tree-vrp.c (overflow_comparison_p_1): New function.
18831 (overflow_comparison_p): New function.
18832 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
18833 if NAME is used in an overflow test.
18834 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
18835 overflow check that can be expressed as an equality test, then adjust
18836 ops to be that equality test.
18837
18838 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18839
18840 * config/s390/s390-builtin-types.def: Remove flags argument.
18841 * config/s390/s390.c (s390_init_builtins): Likewise.
18842
18843 2017-02-14 Martin Liska <mliska@suse.cz>
18844
18845 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
18846 vector. Fix trailing white spaces.
18847
18848 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
18849
18850 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
18851 HFmode.
18852
18853 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18854
18855 PR rtl-optimization/68664
18856 * config/arm/arm.c (arm_sched_can_speculate_insn):
18857 New function. Declare prototype.
18858 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
18859
18860 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18861
18862 PR rtl-optimization/68664
18863 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
18864 New function.
18865 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
18866
18867 2017-02-14 Amit Pawar <amit.pawar@amd.com>
18868
18869 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
18870 max skip bytes for function, loop and jump.
18871
18872 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18873
18874 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
18875 ABS_EXPR for gimple dump.
18876
18877 2017-02-14 Jakub Jelinek <jakub@redhat.com>
18878
18879 PR target/79462
18880 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
18881
18882 PR tree-optimization/79408
18883 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
18884 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
18885 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
18886 also if rhs1 is INTEGER_CST.
18887
18888 2017-02-14 Richard Biener <rguenther@suse.de>
18889
18890 PR middle-end/79432
18891 * tree-into-ssa.c (insert_phi_nodes): When the function can
18892 have abnormal edges rewrite SSA names with broken use-def
18893 dominance out of SSA and register them for PHI insertion.
18894
18895 2017-02-13 Martin Sebor <msebor@redhat.com>
18896
18897 PR middle-end/79496
18898 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
18899 clearing info.nowrite flag when snprintf size argument is a range.
18900
18901 2017-02-13 Jakub Jelinek <jakub@redhat.com>
18902
18903 * cprop.c (cprop_jump): Add missing space in string literal.
18904 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
18905 (get_constraint_for_component_ref): Likewise.
18906 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
18907 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
18908 * lra-constraints.c (process_alt_operands): Likewise.
18909 * ipa-inline.c (inline_small_functions): Likewise.
18910 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
18911 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
18912 * trans-mem.c (diagnose_tm_1_op): Likewise.
18913 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
18914 (grid_parallel_clauses_gridifiable): Likewise.
18915
18916 * config/nvptx/mkoffload.c (process): Add space in between
18917 , and %d.
18918
18919 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
18920 "MOD4_SSE_REGS" and "ALL_REGS".
18921
18922 * spellcheck.c (test_data): Add , in between "foo" and "food".
18923
18924 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
18925
18926 PR target/79449
18927 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
18928 boundary crossing check and subsequent code generation agree.
18929
18930 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18931
18932 * config/aarch64/aarch64.c (has_memory_op): Delete.
18933 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
18934 has_memory_op.
18935
18936 2017-02-13 Jakub Jelinek <jakub@redhat.com>
18937
18938 PR rtl-optimization/79388
18939 PR rtl-optimization/79450
18940 * combine.c (distribute_notes): When removing TEM_INSN for which
18941 corresponding dest has last value recorded, invalidate that last
18942 value.
18943
18944 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18945
18946 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
18947 of explicit '@'. Add missing assembly comment marker on branch costs
18948 printout.
18949
18950 2017-02-13 Nathan Sidwell <nathan@acm.org>
18951
18952 * gengtype-lex.l (<in_struct>): Add '/'.
18953
18954 2017-02-13 Martin Liska <mliska@suse.cz>
18955
18956 PR c/79471
18957 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
18958
18959 2017-02-13 Richard Biener <rguenther@suse.de>
18960
18961 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
18962 Remove.
18963 * configure: Re-generate.
18964 * config.in: Likewise.
18965 * graphite-dependences.c: Simplify as if
18966 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
18967 * graphite-isl-ast-to-gimple.c: Likewise.
18968 * graphite-optimize-isl.c: Likewise.
18969 * graphite-poly.c: Likewise.
18970 * graphite-sese-to-poly.c: Likewise.
18971 * graphite.h: Likewise.
18972 * toplev.c: Include isl/version.h and use isl_version () for
18973 printing the ISL version.
18974 * doc/install.texi: Update ISL requirement.
18975
18976 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
18977
18978 * doc/standards.texi (Standards): Update reference to
18979 Objective-C 2.0.
18980
18981 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
18982
18983 * doc/extend.texi (Named Address Spaces): sourceware.org now
18984 defaults to https.
18985 * doc/install.texi (Binaries): Ditto.
18986 (Specific): Ditto.
18987
18988 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
18989
18990 * doc/cpp.texi: Replace "stringify"/"stringification" with C
18991 standard terminology "stringize"/"stringizing" throughout.
18992 * doc/cppinternals.texi: Likewise.
18993
18994 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
18995
18996 * doc/extend.texi: Fix some spelling mistakes and typos.
18997 * doc/invoke.texi: Likewise.
18998
18999 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
19000
19001 PR ipa/79224
19002 * params.def (inline-min-speedup) Change from 10 to 8.
19003
19004 2017-02-11 Jakub Jelinek <jakub@redhat.com>
19005
19006 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
19007 4.5.
19008
19009 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
19010
19011 PR ipa/79224
19012 * ipa-inline-analysis.c (get_minimal_bb): New function.
19013 (record_modified): Use it.
19014 (remap_edge_change_prob): Handle also ancestor functions.
19015
19016 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
19017
19018 * doc/contrib.texi (Contributors): Remove broken link into
19019 the Mauve CVS repository.
19020
19021 2017-02-11 Jakub Jelinek <jakub@redhat.com>
19022
19023 PR middle-end/79454
19024 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
19025 result computation whenever lhs doesn't have vector mode, not
19026 just when it has BLKmode.
19027
19028 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
19029
19030 * doc/makefile.texi (profiledbootstrap): Refer to the
19031 installation instructions only in textual form.
19032
19033 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
19034
19035 PR target/79295
19036 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
19037
19038 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
19039
19040 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
19041 (Specific): Update mingw-w64 reference.
19042 (Binaries): Ditto.
19043 (Specific): Remove broken link to Renesas RX processor.
19044
19045 2017-02-10 Richard Biener <rguenther@suse.de>
19046
19047 * toplev.c (process_options): Do not mention obsolete graphite
19048 options when printing sorry message about missing graphite support.
19049 Mention -floop-nest-optimize.
19050
19051 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
19052
19053 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
19054 (vtst_p16): Likewise.
19055 (vtstq_p8): Likewise.
19056 (vtstq_p16): Likewise.
19057 (vtst_p64): New.
19058 (vtstq_p64): Likewise.
19059 * config/arm/arm_neon.h (vgetq_lane_p64): New.
19060 (vset_lane_p64): New.
19061 (vsetq_lane_p64): New.
19062
19063 2017-02-10 Jakub Jelinek <jakub@redhat.com>
19064
19065 PR tree-optimization/79411
19066 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
19067 stmt operands are SSA_NAMEs used in abnormal phis.
19068 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
19069 phis.
19070
19071 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
19072
19073 PR ipa/70795
19074 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
19075 flag if needed.
19076
19077 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
19078
19079 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
19080
19081 2017-02-09 Jakub Jelinek <jakub@redhat.com>
19082
19083 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
19084 to avoid warning.
19085
19086 PR c/79413
19087 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
19088 not arbitrary TREE_CONSTANT.
19089
19090 PR c/79431
19091 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
19092 "omp declare target link" attribute unless is_global_var.
19093 * omp-offload.c (find_link_var_op): Likewise.
19094
19095 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
19096 Chung-Lin Tang <cltang@codesourcery.com>
19097
19098 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
19099 OMP_CLAUSE_TILE.
19100 (gimplify_adjust_omp_clauses): Don't delete TILE.
19101 (gimplify_omp_for): Deal with TILE.
19102 * internal-fn.c (expand_GOACC_TILE): New function.
19103 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
19104 (GOACC_TILE): New.
19105 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
19106 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
19107 element fields.
19108 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
19109 avoid DIV for outermost collapse var.
19110 (expand_oacc_for): Insert tile element loop as needed. Adjust.
19111 Remove out of date comments, fix whitespace.
19112 * omp-general.c (omp_extract_for_data): Deal with tiling.
19113 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
19114 adjust OLF_DIM_BASE value.
19115 (struct omp_for_data): Add tiling field.
19116 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
19117 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
19118 for auto loops. Remove default auto determining, moved to
19119 oacc_loop_fixed_partitions.
19120 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
19121 stmts, add e_mask field.
19122 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
19123 (oacc_thread_numbers): Use oacc_dim_call.
19124 (oacc_xform_tile): New.
19125 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
19126 (finish_oacc_loop): Adjust for ifns vector.
19127 (oacc_loop_discover_walk): Append loop abstraction sites to list,
19128 add case for GOACC_TILE fns.
19129 (oacc_loop_xform_loop): Delete.
19130 (oacc_loop_process): Iterate over call list directly, and add
19131 handling for GOACC_TILE fns.
19132 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
19133 dump partitioning.
19134 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
19135 vector partitioning to outer loops. Assign 2 partitions to loops
19136 when available. Add TILE handling.
19137 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
19138 (execite_oacc_device_lower): Process GOACC_TILE fns,
19139 ignore unknown specs.
19140 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
19141 * tree.c (omp_clause_num_ops): Adjust TILE ops.
19142 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
19143
19144 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
19145
19146 * configure.ac (ACX_BUGURL): Update.
19147 * configure: Regenerate.
19148
19149 2017-02-09 Richard Biener <rguenther@suse.de>
19150
19151 PR tree-optimization/69823
19152 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
19153 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
19154
19155 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
19156
19157 * config/arc/arc-c.def: Add __NPS400__ definition.
19158 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
19159 (TARGET_NPS400): Define.
19160
19161 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
19162
19163 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
19164 file.
19165 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
19166 pointer, arch_info.
19167 (arc_cpu_types): Fill the arch_info field with a pointer into the
19168 arc_arch_types table.
19169 (arc_selected_cpu): Declare.
19170 * config/arc/arc.c (arc_selected_cpu): Make global.
19171 (arc_selected_arch): Delete.
19172 (arc_base_cpu): Delete.
19173 (arc_override_options): Remove references to deleted variables,
19174 update access to arch information.
19175 (ARC_OPT): Update access to arch information.
19176 (ARC_OPTX): Likewise.
19177 * config/arc/arc.h (arc_base_cpu): Remove declaration.
19178 (TARGET_ARC600): Update access to arch information.
19179 (TARGET_ARC601): Likewise.
19180 (TARGET_ARC700): Likewise.
19181 (TARGET_EM): Likewise.
19182 (TARGET_HS): Likewise.
19183 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
19184 information.
19185
19186 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
19187
19188 PR target/78604
19189 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
19190 condition/operands for integer GE/LE/GEU/LEU operations.
19191
19192 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
19193
19194 PR translation/79397
19195 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
19196 of AltiVec.
19197
19198 2017-02-08 Martin Jambor <mjambor@suse.cz>
19199
19200 PR ipa/79375
19201 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
19202 whether allocation happened.
19203 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
19204 nothing was allocated.
19205
19206 2017-02-08 Jakub Jelinek <jakub@redhat.com>
19207
19208 PR tree-optimization/79408
19209 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
19210 constant, but SSA_NAME with a known integer range, use the minimum
19211 of that range instead of op1 to determine if modulo can be replaced
19212 with its first operand.
19213
19214 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19215
19216 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
19217
19218 2017-02-08 Richard Biener <rguenther@suse.de>
19219
19220 PR tree-optimization/71824
19221 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
19222 Check all loops contained in the merged region.
19223
19224 2017-02-07 Andrew Pinski <apinski@cavium.com>
19225
19226 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
19227
19228 2017-02-07 Andrew Pinski <apinski@cavium.com>
19229
19230 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
19231 (thunderxt88): Likewise.
19232 (thunderxt81): Disable LSE and change v8.1 to v8.
19233 (thunderxt83): Likewise.
19234
19235 2017-02-07 Jakub Jelinek <jakub@redhat.com>
19236 Richard Biener <rguenther@suse.de>
19237
19238 PR middle-end/79399
19239 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
19240 type from int to size_t.
19241 * ira-costs.c (struct_costs_size): Change type from int to size_t.
19242
19243 2017-02-07 Jakub Jelinek <jakub@redhat.com>
19244
19245 PR rtl-optimization/79386
19246 * cprop.c (bypass_conditional_jumps): Initialize
19247 bypass_last_basic_block already before splitting bbs after
19248 unconditional traps...
19249 (bypass_conditional_jumps): ... rather than here.
19250
19251 PR target/79299
19252 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
19253 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
19254 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
19255 fix -masm=intel patterns.
19256
19257 2017-02-07 Richard Biener <rguenther@suse.de>
19258
19259 PR tree-optimization/79256
19260 PR middle-end/79278
19261 * builtins.c (get_object_alignment_2): Use min_align_of_type
19262 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
19263 and ADJUST_FIELD_ALIGN.
19264
19265 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
19266 type parameter.
19267 * doc/tm.texi: Regenerate.
19268 * stor-layout.c (layout_decl): Adjust.
19269 (update_alignment_for_field): Likewise.
19270 (place_field): Likewise.
19271 (min_align_of_type): Likewise.
19272 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
19273 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
19274 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
19275 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
19276 * config/frv/frv.c (frv_adjust_field_align): Likewise.
19277 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
19278 * config/i386/i386.c (x86_field_alignment): Likewise.
19279 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
19280 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
19281 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
19282 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
19283 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
19284 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
19285 Likewise.
19286
19287 Revert
19288 2017-01-30 Richard Biener <rguenther@suse.de>
19289
19290 PR tree-optimization/79256
19291 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
19292 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
19293 alignment on TYPE.
19294
19295 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
19296
19297 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
19298 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
19299 builtins to SImode and emit a zero-extend, if necessary.
19300
19301 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
19302
19303 * docs/invoke.texi (RISC-V Options): Alphabetize.
19304
19305 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
19306
19307 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
19308 options.
19309
19310 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
19311
19312 * config/riscv/riscv.c: New file.
19313 * common/config/riscv/riscv-common.c: Likewise.
19314 * config.gcc: Likewise.
19315 * config/riscv/constraints.md: Likewise.
19316 * config/riscv/elf.h: Likewise.
19317 * config/riscv/generic.md: Likewise.
19318 * config/riscv/linux.h: Likewise.
19319 * config/riscv/multilib-generator: Likewise.
19320 * config/riscv/peephole.md: Likewise.
19321 * config/riscv/pic.md: Likewise.
19322 * config/riscv/predicates.md: Likewise.
19323 * config/riscv/riscv-builtins.c: Likewise.
19324 * config/riscv/riscv-c.c: Likewise.
19325 * config/riscv/riscv-ftypes.def: Likewise.
19326 * config/riscv/riscv-modes.def: Likewise.
19327 * config/riscv/riscv-opts.h: Likewise.
19328 * config/riscv/riscv-protos.h: Likewise.
19329 * config/riscv/riscv.h: Likewise.
19330 * config/riscv/riscv.md: Likewise.
19331 * config/riscv/riscv.opt: Likewise.
19332 * config/riscv/sync.md: Likewise.
19333 * config/riscv/t-elf-multilib: Likewise.
19334 * config/riscv/t-linux: Likewise.
19335 * config/riscv/t-linux-multilib: Likewise.
19336 * config/riscv/t-riscv: Likewise.
19337 * configure.ac: Likewise.
19338 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
19339 Waterman as RISC-V maintainers.
19340 * doc/install.texi: Add RISC-V entries.
19341 * doc/invoke.texi: Add RISC-V options section.
19342 * doc/md.texi: Add RISC-V constraints section.
19343 * configure: Regenerated.
19344
19345 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
19346
19347 PR target/66144
19348 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
19349 false values to be constant vectors with all 0 or all 1 bits set.
19350 (vcondu<mode><mode>): Likewise.
19351 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
19352 predicate.
19353 (fpmask_comparison_operator): Update comment.
19354 (vecint_comparison_operator): New predicate.
19355 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
19356 vector conditionals when the true and false values are constant
19357 vectors with all 0 bits or all 1 bits set.
19358
19359 2017-02-06 Martin Sebor <msebor@redhat.com>
19360
19361 PR tree-optimization/79376
19362 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
19363
19364 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
19365
19366 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
19367 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
19368 to simplify split condition.
19369
19370 2017-02-06 Jakub Jelinek <jakub@redhat.com>
19371
19372 * omp-expand.c (oxpand_omp_atomic_fetch_op,
19373 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
19374 false.
19375
19376 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
19377
19378 PR rtl-optimization/68664
19379 * target.def (can_speculate_insn): New hook.
19380 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
19381 * doc/tm.texi: Regenerate.
19382 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
19383 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
19384 (rs6000_sched_can_speculate_insn): New function.
19385
19386 2017-02-06 Jakub Jelinek <jakub@redhat.com>
19387
19388 PR tree-optimization/79284
19389 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
19390 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
19391 vectorizable_mask_load_store, vectorizable_operation,
19392 vect_is_simple_cond, get_same_sized_vectype): Use it instead
19393 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
19394 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
19395 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
19396 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
19397 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
19398 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
19399 is_gimple_assign (stmt). Replace another such test with
19400 is_gimple_assign (stmt).
19401
19402 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
19403
19404 PR target/78883
19405 * config/avr/avr.c (rtl-iter.h): Include it.
19406 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
19407 (avr_legitimate_combined_insn): ...and implementation.
19408
19409 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
19410
19411 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
19412 * config/s390/s390.c (s390_const_operand_ok)
19413 (s390_canonicalize_comparison, s390_extract_part)
19414 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
19415 (s390_contiguous_bitmask_p, s390_rtx_costs)
19416 (legitimize_pic_address): Likewise.
19417 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
19418 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
19419 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
19420 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
19421 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
19422
19423 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
19424
19425 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
19426 REGNO($0) == REGNO($1).
19427
19428 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19429
19430 * config/s390/linux.h(SIZE_TYPE): Add comment.
19431
19432 2017-02-06 Julian Brown <julian@codesourcery.com>
19433 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
19434 Virendra Pathak <virendra.pathak@broadcom.com>
19435
19436 * config/aarch64/aarch64-cores.def: Change the scheduler
19437 to Thunderx2t99.
19438 * config/aarch64/aarch64.md: Include thunderx2t99.md.
19439 * config/aarch64/thunderx2t99.md: New file.
19440
19441 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
19442
19443 * doc/standards.texi (Go Language): Update link to language
19444 standard.
19445
19446 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
19447
19448 * tree-eh.c (lower_resx): Sanitize profile.
19449 (cleanup_empty_eh_move_lp): Likewise.
19450
19451 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
19452
19453 PR tree-ssa/79347
19454 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
19455 ELSE_PROB.
19456 * cfgloopmanip.h (loop_version): Update prototype.
19457 * modulo-sched.c (sms_schedule): Update call of loop_version.
19458 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
19459 * tree-parloops.c (gen_parallel_loop): Likewise.
19460 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
19461 * tree-ssa-loop-split.c (split_loop): Likewise.
19462 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
19463 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
19464
19465 2017-02-05 Martin Liska <mliska@suse.cz>
19466
19467 PR bootstrap/78985
19468 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
19469 variable to NULL.
19470 (print_operand_address): Initialize a struct to zero.
19471
19472 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
19473
19474 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
19475 garbage collector only in textual form.
19476
19477 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
19478
19479 * doc/extend.texi (x86 specific memory model extensions for
19480 transactional memory): Simplify a phrase.
19481
19482 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
19483
19484 PR target/79353
19485 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
19486 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
19487 (atomic_storedi_1): Likewise.
19488
19489 2017-02-04 Jakub Jelinek <jakub@redhat.com>
19490
19491 PR tree-optimization/79338
19492 * tree-parloops.c (gather_scalar_reductions): Don't call
19493 vect_analyze_loop_form for loop->inner before destroying loop's
19494 loop_vinfo.
19495
19496 2017-02-03 Martin Sebor <msebor@redhat.com>
19497
19498 PR tree-optimization/79327
19499 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
19500 when precision has resulted in leading zeros.
19501 (format_integer): Adjust the likely counter to assume an unknown
19502 argument that may be zero is non-zero.
19503
19504 2017-02-03 Jason Merrill <jason@redhat.com>
19505
19506 PR c++/78689
19507 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
19508 avoid copying non-taken branch.
19509
19510 2017-02-03 Jakub Jelinek <jakub@redhat.com>
19511
19512 PR tree-optimization/79340
19513 * tree-vect-loop.c (vectorizable_reduction): Release
19514 vec_defs elements after safe_splicing them into other vectors.
19515 Formatting fixes.
19516
19517 PR tree-optimization/79327
19518 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
19519 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
19520 dirtype.
19521 (format_integer): Use wide_int_to_tree instead of build_int_cst
19522 + to_?hwi. If argmin is NULL, just set argmin and argmax to
19523 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
19524 of shortest and longest sequence.
19525
19526 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
19527
19528 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
19529 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
19530
19531 2017-02-03 Walter Lee <walt@tilera.com>
19532
19533 PR target/78862
19534 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
19535 after initial stackframe link reg save.
19536 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
19537
19538 2017-02-03 Jakub Jelinek <jakub@redhat.com>
19539
19540 PR target/79354
19541 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
19542 wu for stxssp alternative.
19543
19544 2017-02-03 Martin Sebor <msebor@redhat.com>
19545
19546 PR tree-optimization/79352
19547 * gimple-fold.c (get_range_strlen): Add argument.
19548 (get_range_strlen): Change return type to bool.
19549 (get_maxval_strlen): Pass in a dummy argument.
19550 * gimple-fold.h (get_range_strlen): Change return type to bool.
19551 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
19552 * tree.h (array_at_struct_end_p): Add argument.
19553 * tree.c (array_at_struct_end_p): Handle it.
19554
19555 2017-02-03 Martin Liska <mliska@suse.cz>
19556
19557 PR lto/66295
19558 * multiple_target.c (create_dispatcher_calls): Redirect edge
19559 from a caller of a dispatcher.
19560 (expand_target_clones): Make the clones local.
19561 (ipa_target_clone): Do both target clones and resolvers.
19562 (ipa_dispatcher_calls): Remove the pass.
19563 (pass_dispatcher_calls::gate): Likewise.
19564 (make_pass_dispatcher_calls): Likewise.
19565 * passes.def (pass_target_clone): Put as very first IPA early
19566 pass.
19567
19568 2017-02-03 Martin Liska <mliska@suse.cz>
19569
19570 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
19571 in case of a function with ifunc attribute.
19572
19573 2017-02-03 Martin Liska <mliska@suse.cz>
19574
19575 * cgraph.c (cgraph_node::dump): Dump function version info.
19576 * symtab.c (symtab_node::dump_base): Add missing new line.
19577
19578 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
19579
19580 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
19581 (ifcombine_ifandif): Use it.
19582
19583 2017-02-03 Martin Liska <mliska@suse.cz>
19584
19585 * doc/invoke.texi: Document default value for
19586 use-after-scope-direct-emission-threshold.
19587
19588 2017-02-03 Martin Liska <mliska@suse.cz>
19589
19590 PR tree-optimization/79339
19591 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
19592 (format_floating): Likewise.
19593
19594 2017-02-03 Martin Liska <mliska@suse.cz>
19595
19596 PR ipa/79337
19597 * ipa-prop.c (ipa_node_params_t::insert): Remove current
19598 implementation.
19599 (ipa_node_params_t::remove): Likewise.
19600 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
19601 initialization from removed ipa_node_params_t::insert.
19602 (ipa_node_params::~ipa_node_params): Move from removed
19603 ipa_node_params_t::release.
19604 * symbol-summary.h (symbol_summary::m_released): New member.
19605 Do not release a summary twice. Do not allow to call finalizer
19606 for types of a summary that live in GGC memory.
19607
19608 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
19609
19610 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
19611 cmp_branch fusion.
19612
19613 2017-02-02 Martin Sebor <msebor@redhat.com>
19614
19615 PR middle-end/79275
19616 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
19617 (format_string): Tighten up the range of output for non-constant
19618 strings and correct the expected range for wide non-constant strings.
19619
19620 2017-02-02 Martin Sebor <msebor@redhat.com>
19621
19622 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
19623
19624 PR middle-end/32003
19625 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
19626 index.
19627 (-fdump-tree-@var): Add to index and document how to come up
19628 with pass-specific option and dump file names.
19629 (-fdump-passes): Clarify where to look for output.
19630
19631 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
19632
19633 PR middle-end/77445
19634 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
19635 statistics of the analyzed path; allow threading for speed when
19636 any of BBs along the path are optimized for speed.
19637
19638 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
19639
19640 PR middle-end/78468
19641 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
19642 settings of the virtual registers.
19643
19644 Revert again
19645 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
19646
19647 * explow.c (get_dynamic_stack_size): Take known alignment of stack
19648 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
19649 needed.
19650
19651 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19652
19653 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
19654 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
19655
19656 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19657
19658 * config/s390/s390.md: Add missing comments with the expanded
19659 mnemonics.
19660 * config/s390/vector.md: Likewise.
19661 * config/s390/vx-builtins.md: Likewise.
19662
19663 2017-02-02 Jakub Jelinek <jakub@redhat.com>
19664
19665 PR target/79197
19666 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
19667 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
19668 conditions on a single line.
19669
19670 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19671
19672 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
19673 __S390_VX__ to __VX__.
19674
19675 2017-02-01 Andrew Pinski <apinski@cavium.com>
19676
19677 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
19678 stmt_info to record_stmt_cost.
19679 (vect_get_known_peeling_cost): Pass stmt_info if known to
19680 record_stmt_cost.
19681 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
19682 cpu_vector_cost field into
19683 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
19684 field into vec_int_stmt_cost and vec_fp_stmt_cost.
19685 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
19686 splitting of scalar_stmt_cost and vec_stmt_cost.
19687 (thunderx_vector_cost): Likewise.
19688 (cortexa57_vector_cost): LIkewise.
19689 (exynosm1_vector_cost): Likewise.
19690 (xgene1_vector_cost): Likewise.
19691 (thunderx2t99_vector_cost): Improve after the splitting of the two
19692 fields.
19693 (aarch64_builtin_vectorization_cost): Update for the splitting of
19694 scalar_stmt_cost and vec_stmt_cost.
19695
19696 2017-02-01 Torvald Riegel <triegel@redhat.com>
19697 Richard Henderson <rth@redhat.com>
19698
19699 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
19700 conditional on existance of a fast atomic load.
19701 * optabs-query.c (can_atomic_load_p): New function.
19702 * optabs-query.h (can_atomic_load_p): Declare it.
19703 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
19704 no fast atomic load is available for the particular size of access.
19705 (expand_atomic_compare_and_swap): Likewise.
19706 (expand_atomic_load): Likewise.
19707 (expand_atomic_store): Likewise.
19708 (expand_atomic_fetch_op): Likewise.
19709 * testsuite/lib/target-supports.exp
19710 (check_effective_target_sync_int_128): Remove x86 because it provides
19711 no fast atomic load.
19712 (check_effective_target_sync_int_128_runtime): Likewise.
19713
19714 2017-02-01 Richard Biener <rguenther@suse.de>
19715
19716 * graphite.c: Include tree-vectorizer.h for find_loop_location.
19717 (graphite_transform_loops): Provide opt-info for optimized nests.
19718 * tree-parloop.c (parallelize_loops): Provide opt-info for
19719 parallelized loops.
19720
19721 2017-02-01 Richard Biener <rguenther@suse.de>
19722
19723 PR middle-end/79315
19724 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
19725 was not set before.
19726
19727 2017-02-01 Richard Biener <rguenther@suse.de>
19728
19729 PR tree-optimization/71824
19730 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
19731 Verify the loops are valid in the merged SESE region.
19732 (scop_detection::can_represent_loop_1): Check analyzing the
19733 evolution of the number of iterations in the region succeeds.
19734
19735 2017-01-31 Ian Lance Taylor <iant@golang.org>
19736
19737 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
19738 REG_ARGS_SIZE note to 32-bit push insns and call insn.
19739
19740 2017-01-31 David Malcolm <dmalcolm@redhat.com>
19741
19742 PR preprocessor/79210
19743 * input.c (get_substring_ranges_for_loc): Replace line_width
19744 assertion with error-handling.
19745
19746 2017-01-31 Richard Biener <rguenther@suse.de>
19747
19748 PR tree-optimization/77318
19749 * graphite-sese-to-poly.c (extract_affine): Fix assert.
19750 (create_pw_aff_from_tree): Take loop parameter.
19751 (add_condition_to_pbb): Pass loop of the condition to
19752 create_pw_aff_from_tree.
19753
19754 2017-01-31 Jakub Jelinek <jakub@redhat.com>
19755
19756 * config/s390/s390.c (s390_asan_shadow_offset): New function.
19757 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
19758
19759 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
19760
19761 PR target/78597
19762 PR target/79038
19763 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
19764 no longer used.
19765 (convert_int_to_float128): Likewise.
19766 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
19767 (convert_int_to_float128): Likewise.
19768 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
19769 (UNSPEC_IEEE128_CONVERT): Likewise.
19770 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
19771 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
19772 Use local variables for IBM extended format.
19773 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
19774 (fix_trunc<mode>si2_fprs): Likewise.
19775 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
19776 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
19777 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
19778 to know that we can now have integers of all sizes in vector
19779 registers.
19780 (fix<uns>_<mode>di2_hw): Likewise.
19781 (float<uns>_<mode>si2_hw): Likewise.
19782 (fix_<mode>si2_hw): Likewise.
19783 (fixuns_<mode>si2_hw): Likewise.
19784 (float<uns>_<mode>di2_hw): Likewise.
19785 (float_<mode>di2_hw): Likewise.
19786 (float_<mode>si2_hw): Likewise.
19787 (floatuns_<mode>di2_hw): Likewise.
19788 (floatuns_<mode>si2_hw): Likewise.
19789 (xscvqp<su>wz_<mode>): Delete, no longer used.
19790 (xscvqp<su>dz_<mode>): Likewise.
19791 (xscv<su>dqp_<mode>): Likewise.
19792 (ieee128_mfvsrd_64bit): Likewise.
19793 (ieee128_mfvsrd_32bit): Likewise.
19794 (ieee128_mfvsrwz): Likewise.
19795 (ieee128_mtvsrw): Likewise.
19796 (ieee128_mtvsrd_64bit): Likewise.
19797 (ieee128_mtvsrd_32bit): Likewise.
19798
19799 2017-01-31 Martin Liska <mliska@suse.cz>
19800
19801 PR ipa/79285
19802 * ipa-prop.c (ipa_free_all_node_params): Call release method
19803 instead of ~sumbol_summary to not to trigger double times
19804 dtor of hash_map.
19805
19806 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
19807
19808 PR tree-optimization/71691
19809 * bitmap.h (class auto_bitmap): New.
19810 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
19811 is_maybe_undefined instead of ssa_undefined_value_p.
19812
19813 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19814
19815 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
19816 __S390_ARCH_LEVEL__ to __ARCH__.
19817
19818 2017-01-31 Jakub Jelinek <jakub@redhat.com>
19819
19820 PR tree-optimization/79267
19821 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
19822 if should_remove_lhs_p is true.
19823
19824 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
19825
19826 PR debug/63238
19827 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
19828 (add_alignment_attribute): New.
19829 (base_type_die): Add alignment attribute.
19830 (subrange_type_die): Likewise.
19831 (modified_type_die): Likewise.
19832 (gen_array_type_die): Likewise.
19833 (gen_descr_array_type_die: Likewise.
19834 (gen_enumeration_type_die): Likewise.
19835 (gen_subprogram_die): Likewise.
19836 (gen_variable_die): Likewise.
19837 (gen_field_die): Likewise.
19838 (gen_ptr_to_mbr_type_die): Likewise.
19839 (gen_struct_or_union_type_die): Likewise.
19840 (gen_subroutine_type_die): Likewise.
19841 (gen_typedef_die): Likewise.
19842 (base_type_cmp): Compare alignment attribute.
19843
19844 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
19845
19846 PR target/79170
19847 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
19848 (setb_unsigned) New pattern for setb with CCUNS.
19849 * config/rs6000/rs6000.c (expand_block_compare): Use a different
19850 subfc./subfe sequence to avoid overflow problems. Generate a
19851 shorter sequence with cmpld/setb for power9.
19852 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
19853 for generating subfc. instruction.
19854 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
19855 now uses this instruction.
19856
19857 2017-01-30 Ian Lance Taylor <iant@google.com>
19858
19859 PR debug/79289
19860 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
19861 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
19862
19863 2017-01-30 Martin Sebor <msebor@redhat.com>
19864
19865 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
19866 Move constant to the right of a relational operator.
19867 (get_mpfr_format_length, format_character, format_string): Ditto.
19868 (should_warn_p, maybe_warn): Same.
19869
19870 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
19871
19872 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
19873
19874 PR lto/79061
19875 * asan.c (get_translation_unit_decl): Remove function.
19876 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
19877
19878 2017-01-30 Martin Liska <mliska@suse.cz>
19879
19880 PR gcov-profile/79259
19881 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
19882 -fprofile-generate.
19883
19884 2017-01-30 Martin Liska <mliska@suse.cz>
19885
19886 PR bootstrap/78985
19887 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
19888 Initialize variables with NULL value.
19889
19890 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
19891
19892 PR target/79260
19893 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
19894 tm_p_file.
19895 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
19896
19897 2017-01-30 Richard Biener <rguenther@suse.de>
19898
19899 PR tree-optimization/79276
19900 * tree-vrp.c (process_assert_insertions): Properly adjust common
19901 when removing a duplicate.
19902
19903 * gcc.dg/torture/pr79276.c: New testcase.
19904
19905 2017-01-30 Richard Biener <rguenther@suse.de>
19906
19907 PR tree-optimization/79256
19908 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
19909 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
19910 alignment on TYPE.
19911 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
19912
19913 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
19914
19915 PR target/79240
19916 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
19917 ("*r<noxa>sbg_<mode>_sll_bitmask")
19918 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
19919 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
19920 Use contiguous_bitmask_nowrap_operand.
19921
19922 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19923
19924 PR target/79268
19925 * config/rs6000/altivec.h (vec_xl): Revise #define.
19926 (vec_xst): Likewise.
19927
19928 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
19929
19930 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
19931
19932 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
19933
19934 PR rtl-optimization/79194
19935 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
19936 traps before call to bypass_conditional_jumps.
19937
19938 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
19939
19940 PR tree-optimization/71374
19941 * lra-constraints.c (check_conflict_input_operands): New.
19942 (match_reload): Use it.
19943
19944 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
19945
19946 PR target/79131
19947 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
19948 account to calculate conflict_set.
19949
19950 2017-01-27 Bin Cheng <bin.cheng@arm.com>
19951
19952 PR rtl-optimization/78559
19953 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
19954 other_insn in combine.
19955
19956 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
19957
19958 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
19959 uint16_type_node for BT_UINT16.
19960
19961 2017-01-27 David Malcolm <dmalcolm@redhat.com>
19962
19963 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
19964 "RTL Tests" to menu.
19965 (GIMPLE Tests): New node.
19966 (RTL Tests): New node.
19967
19968 2017-01-27 Richard Biener <rguenther@suse.de>
19969
19970 PR tree-optimization/79245
19971 * tree-loop-distribution.c (distribute_loop): Apply cost
19972 modeling also to detected patterns.
19973
19974 2017-01-27 Richard Biener <rguenther@suse.de>
19975
19976 PR tree-optimization/71433
19977 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
19978 (compare_assert_loc): New function.
19979 (process_assert_insertions): Sort and optimize assert locations
19980 to remove duplicates and push down identical assertions on
19981 edges to their destination block.
19982
19983 2017-01-27 Richard Biener <rguenther@suse.de>
19984
19985 PR tree-optimization/79244
19986 * tree-vrp.c (remove_range_assertions): Forcefully propagate
19987 out SSA names even if abnormal.
19988
19989 2017-01-27 Jakub Jelinek <jakub@redhat.com>
19990
19991 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
19992 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
19993 instead of MPFR_RNDN.
19994
19995 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
19996
19997 PR target/79239
19998 * arm.c (arm_option_override): Don't call build_target_option_node
19999 until after doing all option overrides.
20000 (arm_valid_target_attribute_tree): Likewise.
20001
20002 2017-01-27 Martin Liska <mliska@suse.cz>
20003
20004 * doc/invoke.texi (-fprofile-arcs): Document profiling support
20005 for {cd}tors and C++ {cd}tors.
20006
20007 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
20008
20009 * config/s390/s390.md ("*setmem_long_and")
20010 ("*setmem_long_and_31z"): Use zero_extend instead of and.
20011
20012 2017-01-26 Martin Sebor <msebor@redhat.com>
20013
20014 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
20015 of precision.
20016
20017 2017-01-26 Martin Sebor <msebor@redhat.com>
20018
20019 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
20020 HAVE_DFmode before using XFmode or DFmode.
20021 (parse_directive): Avoid using the z length modifier to avoid
20022 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
20023
20024 PR middle-end/78703
20025 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
20026 to accept adjustment as an array.
20027 (get_int_range): New function.
20028 (struct directive): Make width and prec arrays.
20029 (directive::set_width, directive::set_precision): Call get_int_range.
20030 (format_integer, format_floating): Handle width and precision ranges.
20031 (format_string, parse_directive): Same.
20032
20033 2017-01-26 Jakub Jelinek <jakub@redhat.com>
20034
20035 PR debug/79129
20036 * dwarf2out.c (generate_skeleton_bottom_up): For children with
20037 comdat_type_p set, just clone them, but keep the children in the
20038 original DIE.
20039
20040 PR debug/78835
20041 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
20042 which have direct callers with -fvar-tracking-assignments enabled
20043 in the current TU.
20044 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
20045 inside of type units.
20046
20047 2017-01-26 Martin Sebor <msebor@redhat.com>
20048
20049 PR middle-end/78703
20050 * gimple-ssa-sprintf.c (struct result_range): Add likely and
20051 unlikely counters.
20052 (struct format_result): Replace number_chars, number_chars_min,
20053 and number_chars_max with a single member of struct result_range.
20054 Remove bounded.
20055 (format_result::operator+=): Adjust.
20056 (struct fmtresult): Remove bounded. Handle likely and unlikely
20057 counters.
20058 (fmtresult::adjust_for_width_or_precision): New function.
20059 (fmtresult:type_max_digits): New function.
20060 (bytes_remaining): Handle likely and unlikely counters.
20061 (min_bytes_remaining): Remove.
20062 (format_percent): Simplify.
20063 (format_integer, format_floating): Set likely and unlikely counters.
20064 (get_string_length, format_character, format_string): Same.
20065 (format_plain, should_warn_p): New function.
20066 (maybe_warn): Call should_warn_p. Update diagnostic messages
20067 and handle those for all directives, including plain strings.
20068 (format_directive): Handle likely and unlikely counters.
20069 Remove unnecessary quoting from diagnostics. Add an informational
20070 note.
20071 (add_bytes): Remove.
20072 (pass_sprintf_length::compute_format_length): Simplify.
20073 (try_substitute_return_value): Handle likely and unlikely counters.
20074
20075 2017-01-26 Carl Love <cel@us.ibm.com>
20076
20077 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
20078 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
20079
20080 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
20081
20082 PR target/79131
20083 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
20084 endianess for subregs into account.
20085 * lra-constraints.c (lra_constraints): Do risky transformations
20086 always on the first iteration.
20087 * lra-lives.c (check_pseudos_live_through_calls): Add arg
20088 last_call_used_reg_set.
20089 (process_bb_lives): Define and use last_call_used_reg_set.
20090 * lra.c (lra): Always continue after lra_constraints on the first
20091 iteration.
20092
20093 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
20094
20095 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
20096 constant.
20097 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
20098
20099 2017-01-26 Jakub Jelinek <jakub@redhat.com>
20100
20101 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
20102 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
20103 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
20104 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
20105 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
20106 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
20107 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
20108 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
20109 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
20110
20111 2017-01-26 Marek Polacek <polacek@redhat.com>
20112
20113 PR c/79199
20114 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
20115 for the third operand.
20116
20117 2017-01-26 Jakub Jelinek <jakub@redhat.com>
20118
20119 PR middle-end/79236
20120 * omp-low.c (struct omp_context): Add simt_stmt field.
20121 (scan_omp_for): Return omp_context *.
20122 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
20123 context to the _simt_ SIMD stmt.
20124 (lower_omp_for): For combined SIMD with sibling _simt_
20125 SIMD, make sure to use the same decls in _looptemp_
20126 clauses as in the sibling.
20127
20128 2017-01-26 David Sherwood <david.sherwood@arm.com>
20129
20130 PR middle-end/79212
20131 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
20132 all contexts.
20133
20134 2017-01-26 Jakub Jelinek <jakub@redhat.com>
20135
20136 PR target/70465
20137 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
20138 emit fld b; fld a; if possible.
20139
20140 * brig-builtins.def: Update copyright years.
20141 * config/arm/arm_acle_builtins.def: Update copyright years.
20142
20143 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
20144
20145 PR target/79179
20146 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
20147 constraint instead of o for the stxsd instruction.
20148
20149 2017-01-25 Carl Love <cel@us.ibm.com>
20150
20151 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
20152 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
20153
20154 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
20155
20156 * doc/invoke.texi (C++ Dialect Options): Fix typo.
20157
20158 2017-01-25 Richard Biener <rguenther@suse.de>
20159
20160 PR tree-optimization/69264
20161 * target.def (vector_alignment_reachable): Improve documentation.
20162 * doc/tm.texi: Regenerate.
20163 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
20164 and add a comment.
20165 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
20166 earlier changes with respect to TYPE_USER_ALIGN.
20167 (vector_alignment_reachable_p): Likewise. Improve dumping.
20168
20169 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20170
20171 PR target/79145
20172 * config/arm/arm.md (xordi3): Force constant operand into a register
20173 for TARGET_IWMMXT.
20174
20175 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20176
20177 * doc/invoke.texi (-fstore-merging): Correct default optimization
20178 levels at which it is enabled.
20179 (-O): Move -fstore-merging from list to...
20180 (-O2): ... Here.
20181
20182 2017-01-25 Richard Biener <rguenther@suse.de>
20183
20184 PR debug/78363
20185 * omp-expand.c: Include debug.h.
20186 (expand_omp_taskreg): Make sure to generate early debug before
20187 outlining anything from a function.
20188 (expand_omp_target): Likewise.
20189 (grid_expand_target_grid_body): Likewise.
20190
20191 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
20192
20193 PR lto/79061
20194 * asan.c (get_translation_unit_decl): New function.
20195 (asan_add_global): Extract modules file name from globals
20196 TRANSLATION_UNIT_DECL name.
20197
20198 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
20199
20200 PR target/77439
20201 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
20202 for long calls with APCS frame and VFP.
20203
20204 2017-01-24 David Malcolm <dmalcolm@redhat.com>
20205
20206 * cfg.c (original_copy_tables_initialized_p): New function.
20207 * cfg.h (original_copy_tables_initialized_p): New decl.
20208 * cfgrtl.c (relink_block_chain): Guard the call to
20209 free_original_copy_tables with a call to
20210 original_copy_tables_initialized_p.
20211 * cgraph.h (symtab_node::native_rtl_p): New decl.
20212 * cgraphunit.c (symtab_node::native_rtl_p): New function.
20213 (symtab_node::needed_p): Don't assert for early assembly output
20214 for __RTL functions.
20215 (cgraph_node::finalize_function): Set "force_output" for __RTL
20216 functions.
20217 (cgraph_node::analyze): Bail out early for __RTL functions.
20218 (analyze_functions): Update assertion to support __RTL functions.
20219 (cgraph_node::expand): Bail out early for __RTL functions.
20220 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
20221 __RTL functions.
20222 * function.h (struct function): Update comment for field
20223 "pass_startwith".
20224 * gimple-expr.c: Include "tree-pass.h".
20225 (gimple_has_body_p): Return false for __RTL functions.
20226 * Makefile.in (OBJS): Add run-rtl-passes.o.
20227 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
20228 accessor.
20229 (gcc::pass_manager::get_clean_slate): New accessor.
20230 * passes.c: Include "insn-addr.h".
20231 (should_skip_pass_p): Add logging. Update logic for running
20232 "expand" to be compatible with both __GIMPLE and __RTL. Guard
20233 property-provider override so it is only done for gimple passes.
20234 Don't skip dfinit.
20235 (skip_pass): New function.
20236 (execute_one_pass): Call skip_pass when skipping passes.
20237 * read-md.c (md_reader::read_char): Support filtering
20238 the input to a subset of line numbers.
20239 (md_reader::md_reader): Initialize fields
20240 m_first_line and m_last_line.
20241 (md_reader::read_file_fragment): New function.
20242 * read-md.h (md_reader::read_file_fragment): New decl.
20243 (md_reader::m_first_line): New field.
20244 (md_reader::m_last_line): New field.
20245 * read-rtl-function.c (function_reader::create_function): Only
20246 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
20247 curr_properties. Set DECL_INITIAL to a dummy block.
20248 (read_rtl_function_body_from_file_range): New function.
20249 * read-rtl-function.h (read_rtl_function_body_from_file_range):
20250 New decl.
20251 * run-rtl-passes.c: New file.
20252 * run-rtl-passes.h: New file.
20253
20254 2017-01-24 Jeff Law <law@redhat.com>
20255
20256 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
20257 buffer size.
20258
20259 2017-01-24 Bin Cheng <bin.cheng@arm.com>
20260
20261 PR tree-optimization/79159
20262 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
20263 (record_nonwrapping_iv): Improve boundary using above function if no
20264 value range information.
20265
20266 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
20267 Martin Jambor <mjambor@suse.cz>
20268
20269 * brig-builtins.def: New file.
20270 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
20271 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
20272 (DEF_HSAIL_SAT_BUILTIN): Likewise.
20273 (DEF_HSAIL_INTR_BUILTIN): Likewise.
20274 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
20275 * builtin-types.def (BT_INT8): New.
20276 (BT_INT16): Likewise.
20277 (BT_UINT8): Likewise.
20278 (BT_UINT16): Likewise.
20279 (BT_FN_ULONG): Likewise.
20280 (BT_FN_UINT_INT): Likewise.
20281 (BT_FN_UINT_ULONG): Likewise.
20282 (BT_FN_UINT_LONG): Likewise.
20283 (BT_FN_UINT_PTR): Likewise.
20284 (BT_FN_ULONG_PTR): Likewise.
20285 (BT_FN_INT8_FLOAT): Likewise.
20286 (BT_FN_INT16_FLOAT): Likewise.
20287 (BT_FN_UINT32_FLOAT): Likewise.
20288 (BT_FN_UINT16_FLOAT): Likewise.
20289 (BT_FN_UINT8_FLOAT): Likewise.
20290 (BT_FN_UINT64_FLOAT): Likewise.
20291 (BT_FN_UINT16_UINT32): Likewise.
20292 (BT_FN_UINT32_UINT16): Likewise.
20293 (BT_FN_UINT16_UINT16_UINT16): Likewise.
20294 (BT_FN_INT_PTR_INT): Likewise.
20295 (BT_FN_UINT_PTR_UINT): Likewise.
20296 (BT_FN_LONG_PTR_LONG): Likewise.
20297 (BT_FN_ULONG_PTR_ULONG): Likewise.
20298 (BT_FN_VOID_UINT64_UINT64): Likewise.
20299 (BT_FN_UINT8_UINT8_UINT8): Likewise.
20300 (BT_FN_INT8_INT8_INT8): Likewise.
20301 (BT_FN_INT16_INT16_INT16): Likewise.
20302 (BT_FN_INT_INT_INT): Likewise.
20303 (BT_FN_UINT_FLOAT_UINT): Likewise.
20304 (BT_FN_FLOAT_UINT_UINT): Likewise.
20305 (BT_FN_ULONG_UINT_UINT): Likewise.
20306 (BT_FN_ULONG_UINT_PTR): Likewise.
20307 (BT_FN_ULONG_ULONG_ULONG): Likewise.
20308 (BT_FN_UINT_UINT_UINT): Likewise.
20309 (BT_FN_VOID_UINT_PTR): Likewise.
20310 (BT_FN_UINT_UINT_PTR: Likewise.
20311 (BT_FN_UINT32_UINT64_PTR): Likewise.
20312 (BT_FN_INT_INT_UINT_UINT): Likewise.
20313 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
20314 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
20315 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
20316 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
20317 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
20318 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
20319 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
20320 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
20321 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
20322 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
20323 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
20324 * doc/frontends.texi: List BRIG FE.
20325 * doc/install.texi (Testing): Add BRIG tesring requirements.
20326 * doc/invoke.texi (Overall Options): Mention BRIG.
20327 * doc/standards.texi (Standards): Doucment BRIG HSA version.
20328
20329 2017-01-24 Richard Biener <rguenther@suse.de>
20330
20331 PR translation/79208
20332 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
20333
20334 2017-01-24 Martin Jambor <mjambor@suse.cz>
20335
20336 PR bootstrap/79198
20337 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
20338 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
20339 and known_contexts.
20340
20341 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
20342
20343 PR middle-end/79123
20344 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
20345 casts from signed to unsigned really don't have a range.
20346
20347 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
20348
20349 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
20350 GMP_RNDx for compatiblity.
20351
20352 2017-01-24 Martin Liska <mliska@suse.cz>
20353
20354 PR bootstrap/79132
20355 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
20356 that would prevent us to call alloca with -1 as argument.
20357
20358 2017-01-24 Jakub Jelinek <jakub@redhat.com>
20359
20360 * dwarf2out.c (output_compilation_unit_header, output_file_names):
20361 Avoid -Wformat-security warning.
20362
20363 2017-01-23 Andrew Pinski <apinski@cavium.com>
20364
20365 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
20366 cost table.
20367
20368 2017-01-23 Martin Sebor <msebor@redhat.com>
20369
20370 PR middle-end/78703
20371 * gimple-ssa-sprintf.c (warn_level): New global.
20372 (format_integer): Use it here and throughout the rest of the file.
20373 Use the same switch to compute sign as base.
20374 (maybe_warn): New function.
20375 (format_directive): Factor out warnings into maybe_warn.
20376 Add debugging output. Use warn_level.
20377 (add_bytes): Use warn_level.
20378 (pass_sprintf_length::compute_format_length): Add debugging output.
20379 (try_substitute_return_value): Same.
20380 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
20381
20382 PR middle-end/78703
20383 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
20384 (struct fmtresult, format_integer, format_floating): Adjust.
20385 (fmtresult::fmtresult): Set max correctly in two argument ctor.
20386 (get_string_length, format_string,format_directive): Same.
20387 (pass_sprintf_length::compute_format_length): Same.
20388 (try_substitute_return_value): Simplify slightly.
20389
20390 PR middle-end/78703
20391 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
20392 (fmtresult::operator+=): Outlined.
20393 (struct fmtresult): Add ctors.
20394 (struct conversion_spec): Rename...
20395 (struct directive): ...to this. Add and remove data members.
20396 (directive::set_width, directive::set_precision): New functions.
20397 (format_percent): Use fmtresult ctor.
20398 (get_width_and_precision): Remove.
20399 (format_integer): Make naming changes. Avoid computing width and
20400 precision.
20401 (format_floating): Same. Adjust indentation.
20402 (format_character, format_none): New functions.
20403 (format_string): Moved character handling to format_character.
20404 (format_directive): Remove arguments, change return type.
20405 (parse_directive): New function.
20406 (pass_sprintf_length::compute_format_length): Move directive
20407 parsing to parse_directive.
20408
20409 2017-01-23 Jakub Jelinek <jakub@redhat.com>
20410
20411 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
20412 (assign_assembler_name_if_needed): ... this.
20413 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
20414 (assign_assembler_name_if_needed): ... this.
20415 (free_lang_data_in_cgraph): Adjust callers.
20416 * cgraphunit.c (cgraph_node::analyze): Likewise.
20417 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
20418 Likewise.
20419
20420 2017-01-23 Richard Biener <rguenther@suse.de>
20421
20422 PR tree-optimization/79088
20423 PR tree-optimization/79188
20424 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
20425 resetting loop bounds after last path deletion. Reset loop
20426 bounds of the target loop, make code match the comments.
20427 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
20428 Make sure loops need no fixups.
20429
20430 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
20431
20432 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
20433 exponent support with double type for first argument.
20434 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
20435 type returned by __builtin_vec_extract_sig,
20436 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
20437 functions from "vector int" to "vector unsigned int" or from
20438 "vector long long int" to "vector unsigned long long int".
20439 Changed type returned by __builtin_vec_extract_exp,
20440 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
20441 functions from "vector int" to "vector unsigned int" or from
20442 "vector long long int" to "vector unsigned long long int".
20443 Changed return type of __builtin_vec_test_data_class,
20444 __builtin_vec_test_data_class_sp, and
20445 __builtin_vec_test_data_class_dp from "vector int" to
20446 "vector bool int" or from "vector long long int" to "vector bool
20447 long long int" and changed second argument type from "unsigned
20448 int" to "int". Added new overloaded function forms "vector float
20449 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
20450 "vector float __builtin_vec_insert_exp_sp (vector float, vector
20451 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
20452 double, vector unsigned long long int)" and "vector double
20453 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
20454 long int)". Changed return type of
20455 __builtin_scalar_test_data_class and
20456 __builtin_scalar_test_data_class_sp and
20457 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
20458 int" and changed second argument from "unsigned int" to "int".
20459 Changed type returned by __builtin_scalar_test_neg,
20460 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
20461 from "int" to "bool int". Added new overloaded function form
20462 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
20463 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
20464 exponent double-precision with floating point first argument.
20465 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
20466 documentation of scalar_test_data_class, scalar_test_neg,
20467 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
20468 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
20469 vec_test_data_class built-in functions to reflect refinements in
20470 their type signatures.
20471
20472 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
20473
20474 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
20475 size of buf.
20476 (aarch64_elf_asm_destructor): Likewise.
20477
20478 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
20479
20480 PR rtl-optimization/78634
20481 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
20482 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
20483 * ifcvt.c (noce_try_cmove): Add missing cost check.
20484
20485 PR rtl-optimization/71724
20486 * combine.c (if_then_else_cond): Look for situations where it is
20487 beneficial to undo the work of one of the recursive calls.
20488
20489 2017-01-23 Bin Cheng <bin.cheng@arm.com>
20490
20491 PR tree-optimization/70754
20492 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
20493 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
20494 combined stmt before it if not NULL.
20495 (combine_chains): Process refs reversely and compute dominance point
20496 for root ref.
20497
20498 2017-01-23 Martin Liska <mliska@suse.cz>
20499
20500 PR tree-optimization/79196
20501 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
20502 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
20503 instead of memcmp.
20504 (strlen_optimize_stmt): Call the renamed function.
20505
20506 2017-01-23 Michael Matz <matz@suse.de>
20507
20508 PR tree-optimization/78384
20509 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
20510
20511 2017-01-23 Richard Biener <rguenther@suse.de>
20512
20513 PR tree-optimization/79186
20514 * tree-vrp.c (register_new_assert_for): Make sure we've seen
20515 both incoming edges before moving an assert.
20516
20517 2017-01-23 Martin Jambor <mjambor@suse.cz>
20518
20519 * ipa-prop.c (load_from_param_1): Removed.
20520 (load_from_unmodified_param): Bits from load_from_param_1 put back
20521 here.
20522 (load_from_param): Removed.
20523 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
20524 with stmt. Reverted back to use of load_from_unmodified_param.
20525
20526 2017-01-23 Martin Jambor <mjambor@suse.cz>
20527
20528 PR ipa/79108
20529 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
20530 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
20531 field a pointer to garbage collected vector, mark lattices and
20532 ipcp_orig_node with GTY((skip)).
20533 (ipa_get_param_count): Adjust to descriptors being a pointer.
20534 (ipa_get_param): Likewise.
20535 (ipa_get_type): Likewise.
20536 (ipa_get_param_move_cost): Likewise.
20537 (ipa_set_param_used): Likewise.
20538 (ipa_get_controlled_uses): Likewise.
20539 (ipa_set_controlled_uses): Likewise.
20540 (ipa_is_param_used): Likewise.
20541 (ipa_node_params_t): Move into garbage collector. New methods insert
20542 and remove.
20543 (ipa_node_params_sum): Annotate wth GTY(()).
20544 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
20545 garbage collected.
20546 (ipa_load_from_parm_agg): Adjust declaration.
20547 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
20548 * ipa-profile.c (ipa_profile): Likewise.
20549 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
20550 (ipa_populate_param_decls): Make descriptors parameter garbage
20551 collected.
20552 (ipa_dump_param): Adjust to descriptors being a pointer.
20553 (ipa_alloc_node_params): Likewise.
20554 (ipa_initialize_node_params): Likewise.
20555 (load_from_param_1): Make descriptors parameter garbage collected.
20556 (load_from_unmodified_param): Likewise.
20557 (load_from_param): Likewise.
20558 (ipa_load_from_parm_agg): Likewise.
20559 (ipa_node_params::~ipa_node_params): Removed.
20560 (ipa_free_all_node_params): Remove call to delete operator.
20561 (ipa_node_params_t::insert): New.
20562 (ipa_node_params_t::remove): Likewise.
20563 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
20564 copy known_csts and known_contexts vectors.
20565 (ipa_read_node_info): Adjust to descriptors being a pointer.
20566 (ipcp_modif_dom_walker): Make m_descriptors field garbage
20567 collected.
20568 (ipcp_transform_function): Make descriptors variable garbage
20569 collected.
20570
20571 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
20572
20573 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
20574 * config/i386/avx512dqintrin.h: Ditto.
20575 * config/i386/avx512fintrin.h: Ditto.
20576 * config/i386/i386.c: Handle new builtins.
20577 * config/i386/i386-builtin.def: Add new builtins.
20578 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
20579 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
20580
20581 2017-01-23 Jakub Jelinek <jakub@redhat.com>
20582 Martin Liska <mliska@suse.cz>
20583
20584 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
20585 * asan.c (asan_expand_poison_ifn): Support stores and use
20586 appropriate ASAN report function.
20587 * internal-fn.c (expand_ASAN_POISON_USE): New function.
20588 * internal-fn.def (ASAN_POISON_USE): Declare.
20589 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
20590 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
20591 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
20592 ASAN_POISON calls w/o LHS.
20593 * tree-ssa.c (execute_update_addresses_taken): Create clobber
20594 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
20595 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
20596 * gimplify.c (asan_poison_variables): Add attribute
20597 use_after_scope_memory to variables that really needs to live
20598 in memory.
20599 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
20600 having the attribute.
20601
20602 2017-01-23 Martin Liska <mliska@suse.cz>
20603
20604 * asan.c (create_asan_shadow_var): New function.
20605 (asan_expand_poison_ifn): Likewise.
20606 * asan.h (asan_expand_poison_ifn): New declaration.
20607 * internal-fn.c (expand_ASAN_POISON): Likewise.
20608 * internal-fn.def (ASAN_POISON): New builtin.
20609 * sanopt.c (pass_sanopt::execute): Expand
20610 asan_expand_poison_ifn.
20611 * tree-inline.c (copy_decl_for_dup_finish): Make function
20612 external.
20613 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
20614 * tree-ssa.c (is_asan_mark_p): New function.
20615 (execute_update_addresses_taken): Rewrite local variables
20616 (identified just by use-after-scope as addressable) into SSA.
20617
20618 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
20619
20620 * doc/install.texi (Specific): opensource.apple.com uses https
20621 now. Remove trailing slash.
20622
20623 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
20624
20625 * README.Portability: Remove note on an Irix compatibility issue.
20626
20627 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
20628
20629 * gcov.c (INCLUDE_ALGORITHM): Define.
20630 (INCLUDE_VECTOR): Define.
20631 No longer include <vector> and <algorithm> directly.
20632
20633 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
20634
20635 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
20636 to https.
20637 * doc/invoke.texi (Code Gen Options): Ditto.
20638
20639 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
20640
20641 PR lto/78407
20642 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
20643
20644 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
20645
20646 rtl-optimization/79125
20647 * cprop.c (local_cprop_pass): Handle cases where we make an
20648 unconditional trap.
20649
20650 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
20651
20652 PR target/61729
20653 PR target/77850
20654 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
20655 read from, for big endian.
20656
20657 2017-01-20 Jiong Wang <jiong.wang@arm.com>
20658
20659 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
20660 register pauth builtins for LP64 only.
20661
20662 2017-01-20 Marek Polacek <polacek@redhat.com>
20663
20664 PR c/79152
20665 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
20666 non-case labels.
20667
20668 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
20669
20670 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
20671 of safelen status.
20672 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
20673 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
20674 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
20675
20676 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20677
20678 PR target/71270
20679 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
20680 in big-endian mode when they are not a single duplicated value.
20681
20682 2017-01-20 Richard Biener <rguenther@suse.de>
20683
20684 * BASE-VER: Bump to 7.0.1.
20685
20686 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
20687
20688 * omp-low.c (omplow_simd_context): New struct. Use it...
20689 (lower_rec_simd_input_clauses): ...here and...
20690 (lower_rec_input_clauses): ...here to hold common data. Adjust all
20691 references to idx, lane, max_vf, is_simt.
20692
20693 2017-01-20 Graham Markall <graham.markall@embecosm.com>
20694
20695 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
20696 mcpu=nps400.
20697
20698 2017-01-20 Martin Jambor <mjambor@suse.cz>
20699
20700 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
20701 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
20702 gt-hsa-common.h.
20703 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
20704 (GTFILES): Rename hsa.c to hsa-common.c.
20705 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
20706 * hsa-dump.c: Likewise.
20707 * hsa-gen.c: Likewise.
20708 * hsa-regalloc.c: Likewise.
20709 * ipa-hsa.c: Likewise.
20710 * omp-expand.c: Likewise.
20711 * omp-low.c: Likewise.
20712 * toplev.c: Likewise.
20713
20714 2017-01-20 Marek Polacek <polacek@redhat.com>
20715
20716 PR c/64279
20717 * doc/invoke.texi: Document -Wduplicated-branches.
20718 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
20719 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
20720 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
20721 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
20722 return 0 only when not OEP_LEXICOGRAPHIC.
20723 (fold_build_cleanup_point_expr): Use the expression
20724 location when building CLEANUP_POINT_EXPR.
20725 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
20726 * tree.c (add_expr): Handle error_mark_node.
20727
20728 2017-01-20 Martin Liska <mliska@suse.cz>
20729
20730 PR lto/69188
20731 * tree-profile.c (init_ic_make_global_vars): Do not call
20732 finalize_decl.
20733 (gimple_init_gcov_profiler): Likewise.
20734
20735 2017-01-20 Martin Liska <mliska@suse.cz>
20736
20737 PR ipa/71190
20738 * cgraph.h (maybe_create_reference): Remove argument and
20739 update comment.
20740 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
20741 argument.
20742 * ipa-cp.c (create_specialized_node): Likewise.
20743 * symtab.c (symtab_node::maybe_create_reference): Handle
20744 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
20745
20746 2017-01-20 Martin Liska <mliska@suse.cz>
20747
20748 * read-rtl-function.c (function_reader::create_function): Use
20749 build_decl instread of build_decl_stat.
20750
20751 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
20752
20753 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
20754 * config/i386/avx512dqintrin.h: Ditto.
20755 * config/i386/avx512fintrin.h: Ditto.
20756 * config/i386/i386-builtin-types.def: Add new types.
20757 * config/i386/i386.c: Handle new types.
20758 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
20759 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
20760 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
20761 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
20762 (__builtin_ia32_kshiftridi): New.
20763 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
20764
20765 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
20766
20767 PR target/78875
20768 PR target/79140
20769 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
20770 define to rs6000_init_stack_protect_guard.
20771 (rs6000_init_stack_protect_guard): New function.
20772
20773 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
20774 Yunqiang Su <yunqiang.su@imgtec.com>
20775
20776 * config.gcc (supported_defaults): Add madd4.
20777 (with_madd4): Add validation.
20778 (all_defaults): Add madd4.
20779 * config/mips/mips.opt (mmadd4): New option.
20780 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
20781 mmadd4.
20782 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
20783 __mips_no_madd4.
20784 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
20785 (ISA_HAS_FUSED_MADD4): Likewise.
20786 * doc/invoke.texi (-mmadd4): Document the new option.
20787 * doc/install.texi (--with-madd4): Document the new option.
20788
20789 2017-01-19 Jiong Wang <jiong.wang@arm.com>
20790
20791 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
20792 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
20793 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
20794 (aarch64_init_pauth_hint_builtins): New.
20795 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
20796 (aarch64_expand_builtin): Expand new builtins.
20797
20798 2017-01-19 Jiong Wang <jiong.wang@arm.com>
20799
20800 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
20801 * combine-stack-adj.c (no_unhandled_cfa): Handle
20802 REG_CFA_TOGGLE_RA_MANGLE.
20803 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
20804 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
20805 info for return address signing.
20806 (aarch64_expand_epilogue): Likewise.
20807
20808 2017-01-19 Jiong Wang <jiong.wang@arm.com>
20809
20810 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
20811 * config/aarch64/aarch64-protos.h
20812 (aarch64_return_address_signing_enabled): New declaration.
20813 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
20814 New function.
20815 (aarch64_expand_prologue): Sign return address before it's pushed onto
20816 stack.
20817 (aarch64_expand_epilogue): Authenticate return address fetched from
20818 stack.
20819 (aarch64_override_options): Sanity check for ILP32 and ISA level.
20820 (aarch64_attributes): New function attributes for "sign-return-address".
20821 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
20822 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
20823 ("*do_return"): Generate combined instructions according to key index.
20824 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
20825 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
20826 iterators.
20827 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
20828 * config/aarch64/aarch64.opt (msign-return-address=): New.
20829 * doc/extend.texi (AArch64 Function Attributes): Documents
20830 "sign-return-address=".
20831 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
20832
20833 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
20834
20835 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
20836 overall option summary.
20837
20838 2017-01-19 Jiong Wang <jiong.wang@arm.com>
20839
20840 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
20841 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
20842 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
20843 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
20844
20845 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
20846
20847 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
20848 -mpower9-minmax by default for -mcpu=power9.
20849 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
20850 128-bit floating point.
20851
20852 2017-01-20 Alan Modra <amodra@gmail.com>
20853
20854 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
20855 optimizing for size.
20856
20857 2017-01-20 Alan Modra <amodra@gmail.com>
20858
20859 PR target/79144
20860 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
20861 for strcmp and strncmp from corresponding builtin decl.
20862
20863 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
20864
20865 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
20866 instead of i386/rtems-64.h.
20867 * config/i386/rtems-64.h: Remove.
20868
20869 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
20870
20871 PR target/78478
20872 Revert:
20873 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
20874
20875 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
20876
20877 2017-01-19 Tamar Christina <tamar.christina@arm.com>
20878
20879 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
20880 Change int to HOST_WIDE_INT.
20881 * config/aarch64/aarch64-protos.h
20882 (aarch64_simd_gen_const_vector_dup): Likewise.
20883 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
20884
20885 2017-01-19 David Malcolm <dmalcolm@redhat.com>
20886
20887 * langhooks-def.h (lhd_type_for_size): New decl.
20888 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
20889 * langhooks.c (lhd_type_for_size): New function, taken from
20890 lto_type_for_size.
20891
20892 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
20893
20894 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
20895 define_bypass for CR latency.
20896 (power9-cracked-alu): Update bypass latency and remove power9-branch.
20897 (power9-alu2): Add define_bypass for CR latency.
20898 (power9-cmp): New.
20899 (power9-mul): Update insn latency.
20900 (power9-mul-compare): Update insn latency, bypass latency and remove
20901 power9-branch.
20902
20903 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20904
20905 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
20906 Delete.
20907 * config/aarch64/aarch64.md
20908 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
20909 aarch64_nopcrelative_literal_loads.
20910 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
20911
20912 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
20913
20914 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
20915 TARGET_LOONGSON_3A.
20916 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
20917
20918 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
20919
20920 PR target/78176
20921 * config.gcc (supported_defaults): Add lxc1-sxc1.
20922 (with_lxc1_sxc1): Add validation.
20923 (all_defaults): Add lxc1-sxc1.
20924 * config/mips/mips.opt (mlxc1-sxc1): New option.
20925 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
20926 mlxc1-sxc1.
20927 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
20928 __mips_no_lxc1_sxc1.
20929 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
20930 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
20931 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
20932
20933 2017-01-19 Richard Biener <rguenther@suse.de>
20934
20935 PR tree-optimization/72488
20936 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
20937 sure to restore SSA info.
20938 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
20939
20940 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
20941
20942 PR rtl-optimization/79121
20943 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
20944 of the inner type when shifting an extended value.
20945
20946 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
20947
20948 PR lto/78407
20949 * symtab.c (symtab_node::equal_address_to): Fix comparing of
20950 interposable aliases.
20951
20952 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
20953
20954 PR target/78516
20955 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
20956 Use the evmergelohi instruction.
20957 (mov_si<mode>_e500_subreg4_2_le): Likewise.
20958 (mov_sitf_e500_subreg8_2_be): Likewise.
20959 (mov_sitf_e500_subreg12_2_le): Likewise.
20960 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
20961 (mov_si<mode>_e500_subreg4_2_be): Likewise.
20962 (mov_sitf_e500_subreg8_2_le): Likewise.
20963 (mov_sitf_e500_subreg12_2_be): Likewise.
20964
20965 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20966
20967 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
20968 attribute from vecsimple to vecperm.
20969 (altivec_vbpermq2): Likewise.
20970
20971 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20972
20973 PR target/79040
20974 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
20975
20976 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
20977 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
20978 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
20979 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
20980 case where N arg is SIZE_MAX.
20981 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
20982 (cmpstrsi): Add pattern.
20983
20984 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20985
20986 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20987 __builtin_vec_revb builtins.
20988 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
20989 built-in functions to support generation of the ISA 3.0 XXBR<x>
20990 vector byte reverse instructions.
20991 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
20992 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
20993 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
20994 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
20995 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
20996 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
20997 (P9V_BUILTIN_VEC_REVB): Likewise.
20998 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
20999 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
21000 (p9_xxbrq_v16qi): Likewise.
21001 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
21002 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
21003 (p9_xxbrh_v8hi): Likewise.
21004 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
21005 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
21006 vec_revb built-in functions.
21007
21008 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
21009
21010 PR rtl-optimization/78952
21011 * config/i386/i386.md (any_extract): New code iterator.
21012 (*insvqi_2): Use any_extract for source operand.
21013 (*insvqi_3): Use any_shiftrt for source operand.
21014
21015 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
21016
21017 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
21018 New function.
21019 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
21020
21021 2017-01-18 Matthias Klose <doko@ubuntu.com>
21022
21023 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
21024
21025 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21026
21027 * config/rs6000/altivec.h (vec_bperm): Change #define.
21028 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
21029 (altivec_vbpermq2): New define_insn.
21030 (altivec_vbpermd): Likewise.
21031 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
21032 function interface.
21033 (VBPERMD): Likewise.
21034 (VBPERM): New polymorphic function interface.
21035 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
21036 Add entries for P9V_BUILTIN_VEC_VBPERM.
21037 * doc/extend.texi: Add interfaces for vec_bperm.
21038
21039 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21040
21041 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
21042 first letter of error messages.
21043 (s390_resolve_overloaded_builtin): Likewise.
21044 * config/s390/s390.c (s390_expand_builtin): Likewise.
21045 (s390_invalid_arg_for_unprototyped_fn): Likewise.
21046 (s390_valid_target_attribute_inner_p): Likewise.
21047 * config/s390/s390.md ("tabort"): Likewise.
21048
21049 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
21050
21051 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
21052 (ISA_AVOID_DIV_HILO): New macro.
21053 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
21054 (ISA_HAS_DDIV): Likewise.
21055
21056 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
21057
21058 * doc/invoke.texi (fabi-version): Correct number of occurrences.
21059
21060 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
21061
21062 * doc/invoke.texi (fabi-version): Spelling fix.
21063
21064 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
21065
21066 PR c++/70182
21067 * doc/invoke.texi (fabi-version): Mention mangling fix for
21068 operator names.
21069
21070 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
21071
21072 PR c++/77489
21073 * doc/invoke.texi (fabi-version): Document discriminator mangling.
21074
21075 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
21076
21077 PR target/78875
21078 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
21079 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
21080 the new options.
21081 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
21082 flexible settings.
21083 (stack_protect_test): Ditto.
21084 * config/rs6000/rs6000.opt (mstack-protector-guard=,
21085 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
21086 options.
21087 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
21088 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
21089 -mstack-protector-guard-offset=.
21090 (RS/6000 and PowerPC Options): Ditto.
21091
21092 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
21093
21094 * config/i386/i386.h (MASK_CLASS_P): New define.
21095 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
21096 there are no registers from different register sets also when
21097 mask registers are used. Update function comment.
21098 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
21099 to (*k/*r) and (*k/*km) alternatives.
21100
21101 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
21102
21103 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
21104 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
21105 (EH_RETURN_HANDLER_RTX): New define.
21106 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
21107 Force frame pointer in EH return functions.
21108 (aarch64_expand_epilogue): Add barrier for eh_return.
21109 (aarch64_final_eh_return_addr): Remove.
21110 (aarch64_eh_return_handler_rtx): New function.
21111 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
21112 Remove.
21113 (aarch64_eh_return_handler_rtx): New prototype.
21114
21115 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21116
21117 * config/rs6000/altivec.h (vec_rlmi): New #define.
21118 (vec_vrlnm): Likewise.
21119 (vec_rlnm): Likewise.
21120 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
21121 (UNSPEC_VRLNM): Likewise.
21122 (VIlong): New mode iterator.
21123 (altivec_vrl<VI_char>mi): New define_insn.
21124 (altivec_vrl<VI_char>nm): Likewise.
21125 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
21126 function entry.
21127 (VRLDNM): Likewise.
21128 (RLNM): New polymorphic function entry.
21129 (VRLWMI): New monomorphic function entry.
21130 (VRLDMI): Likewise.
21131 (RLMI): New polymorphic function entry.
21132 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
21133 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
21134 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
21135 vec_vrlnm.
21136
21137 2017-01-17 Jakub Jelinek <jakub@redhat.com>
21138
21139 PR debug/78839
21140 * dwarf2out.c (field_byte_offset): Restore the
21141 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
21142 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
21143 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
21144 of build2 + fold.
21145
21146 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
21147
21148 PR ada/67205
21149 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
21150
21151 2017-01-17 Jakub Jelinek <jakub@redhat.com>
21152
21153 PR debug/71669
21154 * dwarf2out.c (add_data_member_location_attribute): For constant
21155 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
21156 instead of DW_AT_data_member_location, DW_AT_bit_offset and
21157 DW_AT_byte_size attributes.
21158
21159 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
21160
21161 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
21162 after forcing to constant memory when the code model is medium.
21163
21164 2017-01-17 Julia Koval <julia.koval@intel.com>
21165
21166 PR target/76731
21167 * config/i386/avx512fintrin.h
21168 (_mm512_i32gather_ps): Change __addr type to void const*.
21169 (_mm512_mask_i32gather_ps): Ditto.
21170 (_mm512_i32gather_pd): Ditto.
21171 (_mm512_mask_i32gather_pd): Ditto.
21172 (_mm512_i64gather_ps): Ditto.
21173 (_mm512_mask_i64gather_ps): Ditto.
21174 (_mm512_i64gather_pd): Ditto.
21175 (_mm512_mask_i64gather_pd): Ditto.
21176 (_mm512_i32gather_epi32): Ditto.
21177 (_mm512_mask_i32gather_epi32): Ditto.
21178 (_mm512_i32gather_epi64): Ditto.
21179 (_mm512_mask_i32gather_epi64): Ditto.
21180 (_mm512_i64gather_epi32): Ditto.
21181 (_mm512_mask_i64gather_epi32): Ditto.
21182 (_mm512_i64gather_epi64): Ditto.
21183 (_mm512_mask_i64gather_epi64): Ditto.
21184 (_mm512_i32scatter_ps): Change __addr type to void*.
21185 (_mm512_mask_i32scatter_ps): Ditto.
21186 (_mm512_i32scatter_pd): Ditto.
21187 (_mm512_mask_i32scatter_pd): Ditto.
21188 (_mm512_i64scatter_ps): Ditto.
21189 (_mm512_mask_i64scatter_ps): Ditto.
21190 (_mm512_i64scatter_pd): Ditto.
21191 (_mm512_mask_i64scatter_pd): Ditto.
21192 (_mm512_i32scatter_epi32): Ditto.
21193 (_mm512_mask_i32scatter_epi32): Ditto.
21194 (_mm512_i32scatter_epi64): Ditto.
21195 (_mm512_mask_i32scatter_epi64): Ditto.
21196 (_mm512_i64scatter_epi32): Ditto.
21197 (_mm512_mask_i64scatter_epi32): Ditto.
21198 (_mm512_i64scatter_epi64): Ditto.
21199 (_mm512_mask_i64scatter_epi64): Ditto.
21200 * config/i386/avx512pfintrin.h
21201 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
21202 (_mm512_mask_prefetch_i32gather_ps): Ditto.
21203 (_mm512_mask_prefetch_i64gather_pd): Ditto.
21204 (_mm512_mask_prefetch_i64gather_ps): Ditto.
21205 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
21206 (_mm512_prefetch_i32scatter_ps): Ditto.
21207 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
21208 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
21209 (_mm512_prefetch_i64scatter_pd): Ditto.
21210 (_mm512_prefetch_i64scatter_ps): Ditto.
21211 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
21212 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
21213 * config/i386/avx512vlintrin.h
21214 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
21215 (_mm_mmask_i32gather_ps): Ditto.
21216 (_mm256_mmask_i32gather_pd): Ditto.
21217 (_mm_mmask_i32gather_pd): Ditto.
21218 (_mm256_mmask_i64gather_ps): Ditto.
21219 (_mm_mmask_i64gather_ps): Ditto.
21220 (_mm256_mmask_i64gather_pd): Ditto.
21221 (_mm_mmask_i64gather_pd): Ditto.
21222 (_mm256_mmask_i32gather_epi32): Ditto.
21223 (_mm_mmask_i32gather_epi32): Ditto.
21224 (_mm256_mmask_i32gather_epi64): Ditto.
21225 (_mm_mmask_i32gather_epi64): Ditto.
21226 (_mm256_mmask_i64gather_epi32): Ditto.
21227 (_mm_mmask_i64gather_epi32): Ditto.
21228 (_mm256_mmask_i64gather_epi64): Ditto.
21229 (_mm_mmask_i64gather_epi64): Ditto.
21230 (_mm256_i32scatter_ps): Change __addr type to void*.
21231 (_mm256_mask_i32scatter_ps): Ditto.
21232 (_mm_i32scatter_ps): Ditto.
21233 (_mm_mask_i32scatter_ps): Ditto.
21234 (_mm256_i32scatter_pd): Ditto.
21235 (_mm256_mask_i32scatter_pd): Ditto.
21236 (_mm_i32scatter_pd): Ditto.
21237 (_mm_mask_i32scatter_pd): Ditto.
21238 (_mm256_i64scatter_ps): Ditto.
21239 (_mm256_mask_i64scatter_ps): Ditto.
21240 (_mm_i64scatter_ps): Ditto.
21241 (_mm_mask_i64scatter_ps): Ditto.
21242 (_mm256_i64scatter_pd): Ditto.
21243 (_mm256_mask_i64scatter_pd): Ditto.
21244 (_mm_i64scatter_pd): Ditto.
21245 (_mm_mask_i64scatter_pd): Ditto.
21246 (_mm256_i32scatter_epi32): Ditto.
21247 (_mm256_mask_i32scatter_epi32): Ditto.
21248 (_mm_i32scatter_epi32): Ditto.
21249 (_mm_mask_i32scatter_epi32): Ditto.
21250 (_mm256_i32scatter_epi64): Ditto.
21251 (_mm256_mask_i32scatter_epi64): Ditto.
21252 (_mm_i32scatter_epi64): Ditto.
21253 (_mm_mask_i32scatter_epi64): Ditto.
21254 (_mm256_i64scatter_epi32): Ditto.
21255 (_mm256_mask_i64scatter_epi32): Ditto.
21256 (_mm_i64scatter_epi32): Ditto.
21257 (_mm_mask_i64scatter_epi32): Ditto.
21258 (_mm256_i64scatter_epi64): Ditto.
21259 (_mm256_mask_i64scatter_epi64): Ditto.
21260 (_mm_i64scatter_epi64): Ditto.
21261 (_mm_mask_i64scatter_epi64): Ditto.
21262 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
21263 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
21264 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
21265 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
21266 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
21267 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
21268 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
21269 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
21270 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
21271 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
21272 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
21273 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
21274 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
21275 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
21276 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
21277 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
21278 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
21279 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
21280 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
21281 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
21282 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
21283 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
21284 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
21285 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
21286 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
21287 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
21288 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
21289 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
21290 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
21291 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
21292 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
21293 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
21294 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
21295 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
21296 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
21297 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
21298 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
21299 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
21300 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
21301 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
21302 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
21303 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
21304 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
21305 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
21306 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
21307 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
21308 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
21309 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
21310 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
21311 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
21312 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
21313 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
21314 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
21315 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
21316 definitions accordingly.
21317
21318 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
21319 Kuan-Lin Chen <kuanlinchentw@gmail.com>
21320
21321 PR target/79079
21322 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
21323 gen_lowpart.
21324
21325 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
21326
21327 PR target/79058
21328 * ira-conflicts.c (ira_build_conflicts): Update total conflict
21329 hard regs for inner regno.
21330
21331 2017-01-17 Martin Liska <mliska@suse.cz>
21332
21333 PR ipa/71207
21334 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
21335 assumption and add comment.
21336
21337 2017-01-17 Nathan Sidwell <nathan@acm.org>
21338
21339 * ipa-visibility.c (localize_node): New function, broken out of ...
21340 (function_and_variable_visibility): ... here. Call it.
21341
21342 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
21343
21344 PR middle-end/77445
21345 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
21346 correctly set frequency of oudgoing edge.
21347 (duplicate_thread_path): Fix profile updating.
21348
21349 2017-01-17 Jakub Jelinek <jakub@redhat.com>
21350
21351 PR other/79046
21352 * configure.ac: Add GCC_BASE_VER.
21353 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
21354 version from BASE-VER file.
21355 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
21356 (gcc.o): Depend on $(BASEVER).
21357 * common.opt (dumpfullversion): New option.
21358 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
21359 * doc/invoke.texi: Document -dumpfullversion.
21360 * doc/install.texi: Document --with-gcc-major-version-only.
21361 * configure: Regenerated.
21362
21363 2017-01-17 Richard Biener <rguenther@suse.de>
21364
21365 PR tree-optimization/71433
21366 * tree-vrp.c (register_new_assert_for): Merge same asserts
21367 on all incoming edges.
21368 (process_assert_insertions_for): Handle insertions at the
21369 beginning of BBs.
21370
21371 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
21372
21373 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
21374 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
21375
21376 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
21377
21378 PR target/78633
21379 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
21380 RTL sharing.
21381
21382 2017-01-17 Alan Modra <amodra@gmail.com>
21383
21384 PR target/79066
21385 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
21386 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
21387 symbolic stack limit when pic.
21388
21389 2017-01-16 Martin Sebor <msebor@redhat.com>
21390
21391 PR tree-optimization/78608
21392 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
21393
21394 2017-01-16 Jeff Law <law@redhat.com>
21395
21396 Revert:
21397 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
21398 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
21399 for several include directories that may be relative to sysroot.
21400 * config/i386/x-mingw32 (gplus_includedir): Define.
21401 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
21402 (native_system_includedir): Likewise.
21403 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
21404 override if TARGET_SYSTEM_ROOT is defined.
21405 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
21406
21407 PR tree-optimization/79090
21408 PR tree-optimization/33562
21409 PR tree-optimization/61912
21410 PR tree-optimization/77485
21411 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
21412 and computed trims into the dump file.
21413
21414 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
21415
21416 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
21417
21418 2017-01-16 Jakub Jelinek <jakub@redhat.com>
21419
21420 PR c/79089
21421 * gimplify.c (gimplify_init_constructor): If want_value and
21422 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
21423 fix.
21424
21425 PR target/79080
21426 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
21427 sequence. Formatting fixes.
21428 (doloop_optimize): Formatting fixes.
21429
21430 PR driver/49726
21431 * gcc.c (debug_level_greater_than_spec_func): New function.
21432 (static_spec_functions): Add debug-level-gt spec function.
21433 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
21434 !g0.
21435 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
21436 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
21437 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
21438 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
21439 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
21440 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
21441
21442 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
21443
21444 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
21445 QImode fixups to general and mask registers only.
21446
21447 2017-01-16 Carl Love <cel@us.ibm.com>
21448
21449 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
21450 for built-in functions
21451 vector signed char vec_nabs (vector signed char)
21452 vector signed short vec_nabs (vector signed short)
21453 vector signed int vec_nabs (vector signed int)
21454 vector signed long long vec_nabs (vector signed long long)
21455 vector float vec_nabs (vector float)
21456 vector double vec_nabs (vector double)
21457 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
21458 and NABS overload.
21459 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
21460 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
21461 * doc/extend.texi: Update the documentation file for the new built-in
21462 functions.
21463
21464 2017-01-16 Martin Sebor <msebor@redhat.com>
21465
21466 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
21467 message.
21468
21469 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21470
21471 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
21472 UNSPEC_VSX__XXSPLTD to require special splat handling.
21473
21474 2017-01-16 David Malcolm <dmalcolm@redhat.com>
21475
21476 PR bootstrap/78616
21477 * system.h: Poison strndup.
21478
21479 2017-01-16 Alan Modra <amodra@gmail.com>
21480
21481 PR target/79098
21482 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
21483 use a switch.
21484
21485 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
21486
21487 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
21488
21489 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
21490
21491 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
21492 call recog here. Assert that INSN_CODE (insn) is non-negative.
21493
21494 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
21495
21496 PR target/72749
21497 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
21498 fallthrough.
21499 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
21500 in the currently scheduled RTL fragment.
21501
21502 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
21503
21504 PR rtl-optimization/78751
21505 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
21506 give up.
21507
21508 2017-01-14 Jeff Law <law@redhat.com>
21509
21510 PR tree-optimization/79090
21511 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
21512 variable length stores.
21513 (compute_trims): Delete dead assignment to *trim_tail.
21514 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
21515 zero length.
21516
21517 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
21518
21519 PR rtl-optimization/78626
21520 PR rtl-optimization/78727
21521 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
21522 of a block, and split such blocks after everything else is finished.
21523
21524 2017-01-14 Alan Modra <amodra@gmail.com>
21525
21526 PR target/72749
21527 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
21528 target legitimate_combined_insn.
21529 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
21530 (rs6000_legitimate_combined_insn): New function.
21531 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
21532 all uses.
21533 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
21534 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
21535 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
21536
21537 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
21538
21539 * doc/frontends.texi (G++ and GCC): Remove references to Java.
21540
21541 2017-01-13 Jeff Law <law@redhat.com>
21542
21543 PR tree-optimization/33562
21544 PR tree-optimization/61912
21545 PR tree-optimization/77485
21546 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
21547 a statement.
21548 (delete_dead_assignment): Likewise.
21549 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
21550 statement to delete_dead_call and delete_dead_assignment.
21551
21552 2017-01-13 David Malcolm <dmalcolm@redhat.com>
21553
21554 PR c/78304
21555 * substring-locations.c (format_warning_va): Strengthen case 1 so
21556 that both endpoints of the substring must be within the format
21557 range for just the substring to be printed.
21558
21559 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
21560
21561 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
21562 * config/i386/i386.c (ix86_target_string): Add missing options
21563 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
21564 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
21565 flags_other and ix86_target_other to flags2_other. Display unknown
21566 isa2 options.
21567 (ix86_valid_target_attribute_inner_p): Add missing options and
21568 reorder options by implied ISAs, as in ix86_target_string.
21569
21570 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
21571
21572 * hash-table.h (hash_table::too_empty_p): New function.
21573 (hash_table::expand): Use it.
21574 (hash_table::traverse): Likewise.
21575 (hash_table::empty_slot): Use sizeof (value_type) instead of
21576 sizeof (PTR) to convert bytes to elements. Shrink the table
21577 if the current size is excessive for the current number of
21578 elements.
21579
21580 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
21581
21582 * ira-costs.c (record_reg_classes): Break from the inner loop
21583 early once alt_fail is known to be true. Update outer loop
21584 handling accordingly.
21585
21586 2017-01-13 Jeff Law <law@redhat.com>
21587
21588 * tree-ssa-dse.c (decrement_count): New function.
21589 (increment_start_addr, maybe_trim_memstar_call): Likewise.
21590 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
21591 when we know the partially dead statement is a mem* function.
21592
21593 PR tree-optimization/61912
21594 PR tree-optimization/77485
21595 * tree-ssa-dse.c: Include expr.h.
21596 (maybe_trim_constructor_store): New function.
21597 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
21598
21599 PR tree-optimization/33562
21600 PR tree-optimization/61912
21601 PR tree-optimization/77485
21602 * doc/invoke.texi: Document new dse-max-object-size param.
21603 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
21604 * tree-ssa-dse.c: Include params.h.
21605 (dse_store_status): New enum.
21606 (initialize_ao_ref_for_dse): New, partially extracted from
21607 dse_optimize_stmt.
21608 (valid_ao_ref_for_dse, normalize_ref): New.
21609 (setup_live_bytes_from_ref, compute_trims): Likewise.
21610 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
21611 (maybe_trim_partially_dead_store): Likewise.
21612 (maybe_trim_complex_store): Likewise.
21613 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
21614 Track what bytes live from the original store. Return tri-state
21615 for dead, partially dead or live.
21616 (dse_dom_walker): Add constructor, destructor and new private members.
21617 (delete_dead_call, delete_dead_assignment): New extracted from
21618 dse_optimize_stmt.
21619 (dse_optimize_stmt): Make a member of dse_dom_walker.
21620 Use initialize_ao_ref_for_dse.
21621
21622 PR tree-optimization/33562
21623 PR tree-optimization/61912
21624 PR tree-optimization/77485
21625 * sbitmap.h (bitmap_count_bits): Prototype.
21626 (bitmap_clear_range, bitmap_set_range): Likewise.
21627 * sbitmap.c (bitmap_clear_range): New function.
21628 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
21629
21630 2017-01-13 Martin Liska <mliska@suse.cz>
21631
21632 PR ipa/79043
21633 * function.c (set_cfun): Add new argument force.
21634 * function.h (set_cfun): Likewise.
21635 * ipa-inline-transform.c (inline_call): Use the function when
21636 strict alising from is dropped for function we inline to.
21637
21638 2017-01-13 Richard Biener <rguenther@suse.de>
21639
21640 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
21641 for dumping GIMPLE INTEGER_CSTs.
21642
21643 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21644
21645 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
21646 to 201112L since C++17.
21647
21648 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
21649
21650 PR sanitizer/78887
21651 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
21652 if -fsanitize=kernel-address is present.
21653
21654 2017-01-13 Richard Biener <rguenther@suse.de>
21655
21656 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
21657 as _Literal ( type ) number in case usual suffixes do not
21658 preserve all information.
21659
21660 2017-01-13 Richard Biener <rguenther@suse.de>
21661
21662 PR tree-optimization/77283
21663 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
21664 and ssa-iterators.h.
21665 (is_feasible_trace): Implement a cost model based on joiner
21666 PHI node uses.
21667
21668 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
21669
21670 PR target/79004
21671 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
21672 char or short to __float128/_Float128 directly.
21673
21674 2017-01-12 Martin Sebor <msebor@redhat.com>
21675
21676 to -Wformat-overflow.
21677 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
21678 (min_bytes_remaining): Same.
21679 (get_string_length): Same.
21680 (format_string): Same.
21681 (format_directive): Same.
21682 (add_bytes): Same.
21683 (pass_sprintf_length::handle_gimple_call): Same.
21684
21685 2017-01-12 Jakub Jelinek <jakub@redhat.com>
21686
21687 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
21688 info.nowrite calls with no lhs that can't throw. Return bool
21689 whether gsi_remove has been called or not.
21690 (pass_sprintf_length::handle_gimple_call): Return bool whether
21691 try_substitute_return_value called gsi_remove. Formatting fix.
21692 (pass_sprintf_length::execute): Don't use gsi_remove if
21693 handle_gimple_call returned true.
21694
21695 PR bootstrap/79069
21696 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
21697 be removed due to side-effects, don't remove following barrier nor
21698 turn the successor edge into fallthru edge.
21699
21700 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21701
21702 PR target/79044
21703 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
21704 element-reversing loads and stores as not swappable.
21705
21706 2017-01-12 Nathan Sidwell <nathan@acm.org>
21707 Nicolai Stange <nicstange@gmail.com>
21708
21709 * combine.c (try_combine): Don't ignore result of overlap checking
21710 loop. Combine overlap & asm check into single loop.
21711
21712 2017-01-12 Richard Biener <rguenther@suse.de>
21713
21714 * tree-pretty-print.c (dump_generic_node): Provide -gimple
21715 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
21716
21717 2017-01-12 Richard Biener <rguenther@suse.de>
21718
21719 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
21720 and TS_TARGET_OPTION directly derive from TS_BASE.
21721 * tree-core.h (tree_optimization_option): Derive from tree_base.
21722 (tree_target_option): Likewise.
21723
21724 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
21725
21726 * config/i386/i386.c (memory_address_length): Increase len
21727 only when rip_relative_addr_p returns false.
21728
21729 2017-01-11 Julia Koval <julia.koval@intel.com>
21730
21731 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
21732 (OPTION_MASK_ISA_SGX_SET): New.
21733 (ix86_handle_option): Handle OPT_msgx.
21734 * config.gcc: Added sgxintrin.h.
21735 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
21736 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
21737 * config/i386/i386.c (ix86_target_string): Add -msgx.
21738 (PTA_SGX): New.
21739 (ix86_option_override_internal): Handle new options.
21740 (ix86_valid_target_attribute_inner_p): Add sgx.
21741 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
21742 * config/i386/i386.opt: Add msgx.
21743 * config/i386/sgxintrin.h: New file.
21744 * config/i386/x86intrin.h: Add sgxintrin.h.
21745
21746 2017-01-11 Jakub Jelinek <jakub@redhat.com>
21747
21748 PR c++/71537
21749 * fold-const.c (maybe_nonzero_address): Return 1 for function
21750 local objects.
21751 (tree_single_nonzero_warnv_p): Don't handle function local objects
21752 here.
21753
21754 PR c++/72813
21755 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
21756 of c-header.
21757
21758 2017-01-11 David Malcolm <dmalcolm@redhat.com>
21759
21760 PR driver/78877
21761 * opts.c: Include "spellcheck.h"
21762 (struct string_fragment): New struct.
21763 (struct edit_distance_traits<const string_fragment &>): New
21764 struct.
21765 (get_closest_sanitizer_option): New function.
21766 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
21767
21768 2017-01-11 Jakub Jelinek <jakub@redhat.com>
21769
21770 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
21771 by 12.
21772 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
21773 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
21774 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
21775 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
21776 for initial die_offset if dwarf_split_debug_info.
21777 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
21778 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
21779 fields.
21780 (output_skeleton_debug_sections): Formatting fix. Use
21781 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
21782 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
21783
21784 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
21785
21786 * config/arm/cortex-a53.md: Add bypasses for
21787 cortex_a53_r2f_cvt.
21788 (cortex_a53_r2f): Only use for transfers.
21789 (cortex_a53_f2r): Likewise.
21790 (cortex_a53_r2f_cvt): Add reservation for conversions.
21791 (cortex_a53_f2r_cvt): Likewise.
21792
21793 2017-01-11 Tamar Christina <tamar.christina@arm.com>
21794
21795 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
21796 to all inlined functions, change static to extern.
21797
21798 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
21799
21800 PR target/78253
21801 * config/arm/arm.c (legitimize_pic_address): Handle reference to
21802 weak symbol.
21803 (arm_assemble_integer): Likewise.
21804
21805 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
21806
21807 * config.gcc: Use new awk script to check CPU, FPU and architecture
21808 parameters for --with-... options.
21809 * config/arm/parsecpu.awk: New file
21810 * config/arm/arm-cpus.in: New file.
21811 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
21812 files.
21813 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
21814 files.
21815 * config/arm/t-arm: Update dependency rules.
21816 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
21817 of processing .def files.
21818 * config/arm/genopt.sh: Deleted.
21819 * config/arm/gentune.sh: Deleted.
21820 * config/arm/arm-cores.def: Deleted.
21821 * config/arm/arm-arches.def: Deleted.
21822 * config/arm/arm-fpus.def: Deleted.
21823 * config/arm/arm-tune.md: Regenerated.
21824 * config/arm/arm-tables.opt: Regenerated.
21825 * config/arm/arm-cpu.h: New generated file.
21826 * config/arm/arm-cpu-data.h: New generated file.
21827 * config/arm/arm-cpu-cdata.h: New generated file.
21828
21829 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
21830
21831 PR lto/79042
21832 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
21833 bit.
21834 (input_varpool_node): Unpack dynamically_initialized bit.
21835
21836 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
21837
21838 PR rtl-optimization/79032
21839 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
21840 the alignment of the adjusted memory reference against that of MODE,
21841 instead of the alignment of the original memory reference.
21842
21843 2017-01-11 Martin Jambor <mjambor@suse.cz>
21844
21845 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
21846 test.
21847 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
21848 decorated functions.
21849
21850 2017-01-11 Richard Biener <rguenther@suse.de>
21851
21852 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
21853 set range/nonnull info for PHI results. Do not set it on
21854 stmts marked for removal.
21855
21856 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
21857
21858 * expr.c (store_field): In the bitfield case, fetch the return value
21859 from the registers before applying a single big-endian adjustment.
21860 Always do a final load for a BLKmode value not larger than a word.
21861
21862 2017-01-10 David Malcolm <dmalcolm@redhat.com>
21863
21864 PR c++/77949
21865 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
21866 that we correctly handle column numbers greater than
21867 LINE_MAP_MAX_COLUMN_NUMBER.
21868
21869 2017-01-10 Martin Sebor <msebor@redhat.com>
21870
21871 PR middle-end/78245
21872 * gimple-ssa-sprintf.c (get_destination_size): Call
21873 {init,fini}object_sizes.
21874 * tree-object-size.c (addr_object_size): Adjust.
21875 (pass_through_call): Adjust.
21876 (pass_object_sizes::execute): Adjust.
21877 * tree-object-size.h (fini_object_sizes): Declare.
21878
21879 2017-01-10 Martin Sebor <msebor@redhat.com>
21880
21881 PR tree-optimization/78775
21882 * builtins.c (get_size_range): Move...
21883 * calls.c: ...to here.
21884 (alloc_max_size): Accept zero argument.
21885 (operand_signed_p): Remove.
21886 (maybe_warn_alloc_args_overflow): Call get_size_range.
21887 * calls.h (get_size_range): Declare.
21888
21889 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
21890
21891 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
21892 from TI's devices.csv file as of September 2016.
21893 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
21894
21895 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
21896
21897 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
21898 * doc/invoke.texi: Likewise.
21899 * doc/md.texi: Likewise.
21900 * doc/objc.texi: Likewise.
21901
21902 2017-01-10 Joshua Conner <joshconner@google.com>
21903
21904 * config/arm/fuchsia-elf.h: New file.
21905 * config/fuchsia.h: New file.
21906 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
21907 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
21908 targets.
21909 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
21910
21911 2016-01-10 Richard Biener <rguenther@suse.de>
21912
21913 PR tree-optimization/79034
21914 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
21915 Propagate out degenerate PHIs in the joiner.
21916
21917 2017-01-10 Martin Liska <mliska@suse.cz>
21918
21919 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
21920 (sort_congruence_classes_by_decl_uid): Likewise.
21921 (sort_congruence_class_groups_by_decl_uid): Likewise.
21922 (sem_item_optimizer::merge_classes): Sort class, groups in these
21923 classes and members in the groups by DECL_UID of declarations.
21924 This would make merge operations stable.
21925
21926 2017-01-10 Martin Liska <mliska@suse.cz>
21927
21928 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
21929 usage of m_classes_vec.
21930 (sem_item_optimizer::~sem_item_optimizer): Likewise.
21931 (sem_item_optimizer::get_group_by_hash): Likewise.
21932 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
21933 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
21934 (sem_item_optimizer::verify_classes): Likewise.
21935 (sem_item_optimizer::process_cong_reduction): Likewise.
21936 (sem_item_optimizer::dump_cong_classes): Likewise.
21937 (sem_item_optimizer::merge_classes): Likewise.
21938 * ipa-icf.h (congruence_class_hash): Rename from
21939 congruence_class_group_hash. Remove declaration of m_classes_vec.
21940
21941 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
21942
21943 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
21944 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
21945 * config.gcc: Add avx512vpopcntdqintrin.h.
21946 * config/i386/avx512vpopcntdqintrin.h: New.
21947 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
21948 * config/i386/i386-builtin-types.def: Add new types.
21949 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
21950 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
21951 __builtin_ia32_vpopcountq_v8di_mask): New.
21952 * config/i386/i386-c.c (ix86_target_macros_internal): Define
21953 __AVX512VPOPCNTDQ__.
21954 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
21955 (PTA_AVX512VPOPCNTDQ): Define.
21956 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
21957 TARGET_AVX512VPOPCNTDQ_P): Define.
21958 * config/i386/i386.opt: Add mavx512vpopcntdq.
21959 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
21960 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
21961
21962 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
21963
21964 PR middle-end/77484
21965 * predict.def (PRED_CALL): Set to 67.
21966
21967 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
21968
21969 * expr.c (store_field): In the bitfield case, if the value comes from
21970 a function call and is of an aggregate type returned in registers, do
21971 not modify the field mode; extract the value in all cases if the mode
21972 is BLKmode and the size is not larger than a word.
21973
21974 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
21975
21976 PR target/71017
21977 * config/i386/cpuid.h: Fix undefined behavior.
21978
21979 2017-01-04 Jeff Law <law@redhat.com>
21980
21981 PR tree-optimization/79007
21982 PR tree-optimization/67955
21983 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
21984 conservative for pt.null when flag_non_call_exceptions is on.
21985
21986 2017-01-09 Jakub Jelinek <jakub@redhat.com>
21987
21988 PR translation/79019
21989 PR translation/79020
21990 * params.def (PARAM_INLINE_MIN_SPEEDUP,
21991 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
21992 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
21993 in descriptions.
21994 * config/avr/avr.opt (maccumulate-args): Likewise.
21995 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
21996 * common.opt (freport-bug): Likewise.
21997 * cif-code.def (CIF_FINAL_ERROR): Likewise.
21998 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
21999 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
22000 translatable string.
22001 * config/i386/i386.c (function_value_32): Likewise.
22002 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
22003 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
22004 Likewise.
22005 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
22006 * common/config/msp430/msp430-common.c (msp430_handle_option):
22007 Likewise.
22008 * symtab.c (symtab_node::verify_base): Likewise.
22009 * opts.c (set_debug_level): Likewise.
22010 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
22011 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
22012 missing whitespace to translatable strings.
22013 * config/avr/avr.md (bswapsi2): Fix typo in comment.
22014 * config/sh/superh.h: Likewise.
22015 * config/i386/xopintrin.h: Likewise.
22016 * config/i386/znver1.md: Likewise.
22017 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
22018 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
22019 * double-int.h (struct double_int): Likewise.
22020 * double-int.c (div_and_round_double): Likewise.
22021 * wide-int.cc: Likewise.
22022 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
22023 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
22024 * cfgcleanup.c (crossjumps_occured): Renamed to ...
22025 (crossjumps_occurred): ... this.
22026 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
22027 Adjust all uses.
22028
22029 PR tree-optimization/78899
22030 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
22031 returning bool return struct loop *, NULL for failure and the new
22032 loop on success.
22033 (versionable_outer_loop_p): Don't version outer loop if it has
22034 dont_vectorized bit set.
22035 (tree_if_conversion): When versioning outer loop, ensure
22036 tree_if_conversion is performed also on the inner loop of the
22037 non-vectorizable outer loop copy.
22038 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
22039 LOOP_VECTORIZED in inner loop of the scalar outer loop and
22040 prevent vectorization of it.
22041 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
22042 the outer loop vectorization of the non-scalar version is attempted
22043 before vectorization of the inner loop in scalar version. If
22044 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
22045 vectorization of its inner loop.
22046 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
22047 has 2 inner loops, rename also on edges from bb whose single pred
22048 is outer_loop->header. Fix typo in function comment.
22049
22050 2017-01-09 Martin Sebor <msebor@redhat.com>
22051
22052 PR bootstrap/79033
22053 * asan.c (asan_emit_stack_protection): Increase local buffer size
22054 to avoid snprintf truncation warning.
22055
22056 2017-01-09 Andrew Pinski <apinski@cavium.com>
22057
22058 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
22059 to reference thunderx2t99 for the tuning structure
22060 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
22061 Rename to ...
22062 (thunderx2t99_extra_costs): This.
22063 * config/aarch64/aarch64-tune.md: Regenerate.
22064 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
22065 (vulcan_addrcost_table): This.
22066 (vulcan_regmove_cost): Rename to ...
22067 (thunderx2t99_regmove_cost): This.
22068 (vulcan_vector_cost): Rename to ...
22069 (thunderx2t99_vector_cost): this.
22070 (vulcan_branch_cost): Rename to ...
22071 (thunderx2t99_branch_cost): This.
22072 (vulcan_tunings): Rename to ...
22073 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
22074 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
22075
22076 2017-01-09 Martin Jambor <mjambor@suse.cz>
22077
22078 PR ipa/78365
22079 PR ipa/78599
22080 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
22081 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
22082 (propagate_vr_accross_jump_function): Use the above function for all
22083 value range computations for pass-through jump functions and type
22084 converasion from explicit value range values.
22085 (ipcp_propagate_stage): Do not attempt to deduce types of formal
22086 parameters from TYPE_ARG_TYPES.
22087 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
22088 (ipa_write_node_info): Stream type of the actual argument.
22089 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
22090
22091 2017-01-09 Martin Liska <mliska@suse.cz>
22092
22093 PR pch/78970
22094 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
22095 (lookup_compiler): Do not show error message with have_E.
22096
22097 2017-01-09 Jakub Jelinek <jakub@redhat.com>
22098
22099 PR tree-optimization/78938
22100 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
22101 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
22102 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
22103 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
22104 fixes.
22105
22106 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22107
22108 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
22109 is const0_rtx.
22110
22111 2017-01-09 Richard Biener <rguenther@suse.de>
22112
22113 PR tree-optimization/78997
22114 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
22115 name condition properly.
22116
22117 2017-01-09 Richard Biener <rguenther@suse.de>
22118
22119 PR debug/79000
22120 * dwarf2out.c (is_cxx): New overload with context.
22121 (is_naming_typedef_decl): Use it.
22122
22123 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
22124
22125 * invoke.texi (Option Summary): Correct spacing in option lists
22126 and add line breaks to fix over-long lines.
22127
22128 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
22129
22130 PR middle-end/17660
22131
22132 * extend.texi (Common Variable Attributes): Add xref to GCC
22133 Internals manual to explain mode attribute keywords.
22134
22135 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
22136
22137 PR other/16519
22138 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
22139 and Preprocessor Options.
22140 (Options for Linking): Document -pthread here....
22141 (RS/6000 and PowerPC Options): ...not here.
22142 (Solaris 2 Options): ...or here.
22143 * doc/cppopts.texi: Document -pthread.
22144
22145 2017-01-08 Martin Sebor <msebor@redhat.com>
22146
22147 PR middle-end/77708
22148 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
22149 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
22150 New member functions.
22151 (format_directive): Used them.
22152 (add_bytes): Same.
22153 (pass_sprintf_length::handle_gimple_call): Same.
22154 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
22155 to avoid truncation for any argument.
22156 (extract_affine_mul): Same.
22157 * tree.c (get_file_function_name): Same.
22158
22159 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
22160
22161 PR middle-end/77484
22162 * predict.def (PRED_INDIR_CALL): Set to 86.
22163
22164 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
22165
22166 PR preprocessor/54124
22167 * doc/cppopts.texi: Reformat -d subtable to list the full name
22168 of the options. Add cross-reference to the docs for the general
22169 compiler -d options.
22170 * doc/invoke.texi (Developer Options): Add cross-reference to the
22171 preprocessor-specific -d option documentation.
22172
22173 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
22174
22175 PR preprocessor/13498
22176 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
22177 redudant material, and reflect new command-line options.
22178 (System Headers): Likewise.
22179
22180 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
22181
22182 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
22183 -isystem, and -idirafter. Copy-edit.
22184 * doc/cppopts.texi: Copy-edit. Remove contradiction about
22185 default for -ftrack-macro-expansion. Delete obsolete and
22186 badly-formatted implementation details about -fdebug-cpp output.
22187 * doc/cppwarnopts.texi: Copy-edit.
22188
22189 2017-01-07 David Malcolm <dmalcolm@redhat.com>
22190
22191 PR c++/72803
22192 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
22193 that the transition from a max line width >= 1<<10 to narrower
22194 lines works correctly.
22195
22196 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
22197
22198 * doc/options.texi (PerFunction): New.
22199 * opt-functions.awk (switch_flags): Map both Optimization and
22200 PerFunction to CL_OPTIMIZATION.
22201 * opth-gen.awk: Test for PerFunction flag along with
22202 Optimization.
22203 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
22204 it only when the latter is present. Skip those that don't in
22205 the hash function generator.
22206 * common.opt (fvar-tracking): Mark as PerFunction instead of
22207 Optimization.
22208 (fvar-tracking-assignments): Likewise.
22209 (fvar-tracking-assignments-toggle): Likewise.
22210 (fvar-tracking-uninit): Likewise.
22211
22212 2017-01-07 Jakub Jelinek <jakub@redhat.com>
22213
22214 PR translation/79018
22215 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
22216 the and store.
22217
22218 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
22219
22220 PR target/57583
22221 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
22222 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
22223 TARGET_LONG_JUMP_TABLE_OFFSETS.
22224 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
22225 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
22226 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
22227 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
22228 * config/m68k/m68k.md (tablejump expander): Likewise.
22229 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
22230 TARGET_LONG_JUMP_TABLE_OFFSETS.
22231 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
22232 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
22233
22234 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
22235 David Holsgrove <david.holsgrove@xilinx.com>
22236
22237 * common/config/microblaze/microblaze-common.c
22238 (TARGET_EXCEPT_UNWIND_INFO): Remove.
22239 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
22240 New prototype.
22241 * config/microblaze/microblaze.c (microblaze_must_save_register)
22242 (microblaze_expand_epilogue, microblaze_return_addr): Handle
22243 calls_eh_return.
22244 (microblaze_eh_return): New function.
22245 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
22246 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
22247 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
22248 * config/microblaze/microblaze.md (eh_return): New pattern.
22249
22250 2017-01-06 Jakub Jelinek <jakub@redhat.com>
22251
22252 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
22253 GCC_DIAGNOSTIC_STRINGIFY): Define.
22254
22255 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
22256
22257 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22258
22259 * config/arm/arm.md (<mcrr>): New.
22260 (<mrrc>): New.
22261 * config/arm/arm.c (arm_arch5te): New.
22262 (arm_option_override): Set arm_arch5te.
22263 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
22264 and mrrc2.
22265 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
22266 (arm_mcrr_qualifiers): ... this. New.
22267 (MRRC_QUALIFIERS): Define to...
22268 (arm_mrrc_qualifiers): ... this. New.
22269 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
22270 __arm_mrrc2): New.
22271 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
22272 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
22273 (MRRCI, mrrc, MRRC): New.
22274 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
22275 VUNSPEC_MRRC2): New.
22276
22277 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22278
22279 * config/arm/arm.md (<mcr>): New.
22280 (<mrc>): New.
22281 * config/arm/arm.c (arm_coproc_builtin_available): Add
22282 support for mcr, mrc, mcr2 and mrc2.
22283 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
22284 (arm_mcr_qualifiers): ... this. New.
22285 (MRC_QUALIFIERS): Define to ...
22286 (arm_mrc_qualifiers): ... this. New.
22287 (MCR_QUALIFIERS): Define to ...
22288 (arm_mcr_qualifiers): ... this. New.
22289 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
22290 __arm_mrc2): New.
22291 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
22292 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
22293 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
22294 VUNSPEC_MRC2): New.
22295
22296 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22297
22298 * config/arm/arm.md (*ldc): New.
22299 (*stc): New.
22300 (<ldc>): New.
22301 (<stc>): New.
22302 * config/arm/arm.c (arm_coproc_builtin_available): Add
22303 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
22304 (arm_coproc_ldc_stc_legitimate_address): New.
22305 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
22306 'qualifier_const_pointer'.
22307 (LDC_QUALIFIERS): Define to...
22308 (arm_ldc_qualifiers): ... this. New.
22309 (STC_QUALIFIERS): Define to...
22310 (arm_stc_qualifiers): ... this. New.
22311 * config/arm/arm-protos.h
22312 (arm_coproc_ldc_stc_legitimate_address): New.
22313 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
22314 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
22315 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
22316 stc2, stcl, stc2l): New.
22317 * config/arm/constraints.md (Uz): New.
22318 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
22319 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
22320 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
22321 VUNSPEC_STC2L): New.
22322
22323 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22324
22325 * config/arm/arm.md (<cdp>): New.
22326 * config/arm/arm.c (neon_const_bounds): Rename this ...
22327 (arm_const_bounds): ... this.
22328 (arm_coproc_builtin_available): New.
22329 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
22330 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
22331 (CDP_QUALIFIERS): Define to...
22332 (arm_cdp_qualifiers): ... this. New.
22333 (void_UP): Define.
22334 (arm_expand_builtin_args): Add case for 6 arguments.
22335 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
22336 (arm_const_bounds): ... this.
22337 (arm_coproc_builtin_available): New.
22338 * config/arm/arm_acle.h (__arm_cdp): New.
22339 (__arm_cdp2): New.
22340 * config/arm/arm_acle_builtins.def (cdp): New.
22341 (cdp2): New.
22342 * config/arm/iterators.md (CDPI,CDP,cdp): New.
22343 * config/arm/neon.md: Rename all 'neon_const_bounds' to
22344 'arm_const_bounds'.
22345 * config/arm/types.md (coproc): New.
22346 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
22347 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
22348 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
22349 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
22350
22351 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22352
22353 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
22354 (UBINOP_QUALIFIERS): New.
22355 (si_UP): Define.
22356 (acle_builtin_data): New. Change comment.
22357 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
22358 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
22359 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
22360 arm_acle_builtins.def.
22361 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
22362 (arm_init_acle_builtins): New.
22363 (CRC32_BUILTIN): Remove.
22364 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
22365 crc32cb, crc32ch and crc32cw.
22366 (arm_init_crc32_builtins): Remove.
22367 (arm_init_builtins): Use arm_init_acle_builtins rather
22368 than arm_init_crc32_builtins.
22369 (arm_expand_acle_builtin): New.
22370 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
22371 * config/arm/arm_acle_builtins.def: New.
22372
22373 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
22374
22375 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
22376 (arm_builtin_datum): ... this.
22377 (arm_init_neon_builtin): Rename to ...
22378 (arm_init_builtin): ... this. Add a new parameters PREFIX
22379 and USE_SIG_IN_NAME.
22380 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
22381 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
22382 'arm_builtin_datum'.
22383 (arm_init_vfp_builtins): Likewise.
22384 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
22385 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
22386 (arm_expand_neon_args): Rename to ...
22387 (arm_expand_builtin_args): ... this. Rename builtin_arg
22388 enum values and differentiate between ARG_BUILTIN_MEMORY
22389 and ARG_BUILTIN_NEON_MEMORY.
22390 (arm_expand_neon_builtin_1): Rename to ...
22391 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
22392 values, arm_expand_builtin_args and add bool parameter NEON.
22393 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
22394 (arm_expand_vfp_builtin): Likewise.
22395 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
22396
22397 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
22398
22399 PR middle-end/77484
22400 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
22401 * predict.c (tree_estimate_probability_bb): Reverse direction of
22402 polymorphic call predictor.
22403
22404 2017-01-06 David Malcolm <dmalcolm@redhat.com>
22405
22406 * passes.c (execute_one_pass): Split out pass-skipping logic into...
22407 (determine_pass_name_match): ...this new function and...
22408 (should_skip_pass_p): ...this new function.
22409
22410 2017-01-06 Nathan Sidwell <nathan@acm.org>
22411
22412 * ipa-visibility.c (function_and_variable_visibility): Reformat
22413 comments and long lines. Remove extrneous if.
22414 * symtab.c (symtab_node::make_decl_local): Fix code format.
22415 (symtab_node::set_section_for_node): Fix comment typo.
22416
22417 2017-01-06 Martin Liska <mliska@suse.cz>
22418
22419 PR bootstrap/79003
22420 * lra-constraints.c: Rename invariant to lra_invariant.
22421 * predict.c (set_even_probabilities): Initialize e to NULL.
22422
22423 2017-01-05 Martin Sebor <msebor@redhat.com>
22424
22425 PR tree-optimization/78910
22426 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
22427 (format_integer): Correct off-by-one error in the handling
22428 of precision with negative numbers in signed conversions..
22429
22430 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
22431
22432 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
22433
22434 2017-01-05 Jakub Jelinek <jakub@redhat.com>
22435
22436 PR tree-optimization/71016
22437 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
22438 factor_out_conditional_conversion. Formatting fix.
22439 (factor_out_conditional_conversion): Add cond_stmt argument.
22440 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
22441 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
22442 Formatting fix.
22443
22444 2017-01-05 David Malcolm <dmalcolm@redhat.com>
22445
22446 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
22447 read-rtl-function.o, and selftest-rtl.o.
22448 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
22449 (selftest::aarch64_test_loading_full_dump): New function.
22450 (selftest::aarch64_run_selftests): New function.
22451 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
22452 selftest::aarch64_run_selftests.
22453 * config/i386/i386.c
22454 (selftest::ix86_test_loading_dump_fragment_1): New function.
22455 (selftest::ix86_test_loading_call_insn): New function.
22456 (selftest::ix86_test_loading_full_dump): New function.
22457 (selftest::ix86_test_loading_unspec): New function.
22458 (selftest::ix86_run_selftests): Call the new functions.
22459 * emit-rtl.c (maybe_set_max_label_num): New function.
22460 * emit-rtl.h (maybe_set_max_label_num): New decl.
22461 * function.c (instantiate_decls): Guard call to
22462 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
22463 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
22464 "static".
22465 * gensupport.c (gen_reader::gen_reader): Pass "false"
22466 for new "compact" param of rtx_reader.
22467 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
22468 rather than an empty string for NULL strings.
22469 * read-md.c: Potentially include config.h rather than bconfig.h.
22470 Wrap include of errors.h with #ifdef GENERATOR_FILE.
22471 (have_error): New global, copied from errors.c.
22472 (md_reader::read_name): Rename to...
22473 (md_reader::read_name_1): ...this, adding "out_loc" param,
22474 and converting "missing name or number" to returning false, rather
22475 than failing.
22476 (md_reader::read_name): Reimplement in terms of read_name_1.
22477 (md_reader::read_name_or_nil): New function.
22478 (md_reader::read_string): Handle "(nil)" by returning NULL.
22479 (md_reader::md_reader): Add new param "compact".
22480 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
22481 (md_reader::read_file): New method.
22482 * read-md.h (md_reader::md_reader): Add new param "compact".
22483 (md_reader::read_file): New method.
22484 (md_reader::is_compact): New accessor.
22485 (md_reader::read_name): Convert return type from void to file_location.
22486 (md_reader::read_name_or_nil): New decl.
22487 (md_reader::read_name_1): New decl.
22488 (md_reader::m_compact): New field.
22489 (noop_reader::noop_reader): Pass "false" for new "compact" param
22490 of rtx_reader.
22491 (rtx_reader::rtx_reader): Add new "compact" param.
22492 (rtx_reader::read_rtx_operand): Make virtual and convert return
22493 type from void to rtx.
22494 (rtx_reader::read_until): New decl.
22495 (rtx_reader::handle_any_trailing_information): New virtual function.
22496 (rtx_reader::postprocess): New virtual function.
22497 (rtx_reader::finalize_string): New virtual function.
22498 (rtx_reader::m_in_call_function_usage): New field.
22499 (rtx_reader::m_reuse_rtx_by_id): New field.
22500 * read-rtl-function.c: New file.
22501 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
22502 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
22503 (selftest::verify_three_block_rtl_cfg): New decl.
22504 * read-rtl-function.h: New file.
22505 * read-rtl.c: Potentially include config.h rather than bconfig.h.
22506 For host, include function.h, memmodel.h, and emit-rtl.h.
22507 (one_time_initialization): New function.
22508 (struct compact_insn_name): New struct.
22509 (compact_insn_names): New array.
22510 (find_code): Handle insn codes in compact dumps.
22511 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
22512 (bind_subst_iter_and_attr): Likewise.
22513 (add_condition_to_string): Likewise.
22514 (add_condition_to_rtx): Likewise.
22515 (apply_attribute_uses): Likewise.
22516 (add_current_iterators): Likewise.
22517 (apply_iterators): Likewise.
22518 (initialize_iterators): Guard usage of apply_subst_iterator with
22519 #ifdef GENERATOR_FILE.
22520 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
22521 (md_reader::read_mapping): Likewise.
22522 (add_define_attr_for_define_subst): Likewise.
22523 (add_define_subst_attr): Likewise.
22524 (read_subst_mapping): Likewise.
22525 (check_code_iterator): Likewise.
22526 (rtx_reader::read_rtx): Likewise. Move one-time initialization
22527 logic to...
22528 (one_time_initialization): New function.
22529 (rtx_reader::read_until): New method.
22530 (read_flags): New function.
22531 (parse_reg_note_name): New function.
22532 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
22533 Handle reuse_rtx ids.
22534 Wrap iterator lookup within #ifdef GENERATOR_FILE.
22535 Add parsing support for RTL dumps, mirroring the special-cases in
22536 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
22537 values, and calling handle_any_trailing_information.
22538 (rtx_reader::read_rtx_operand): Convert return type from void
22539 to rtx, returning return_rtx. Handle case 'e'. Call
22540 finalize_string on XSTR and XTMPL fields.
22541 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
22542 "(nil)" values were omitted. Call the postprocess vfunc on the
22543 return_rtx.
22544 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
22545 class ctor. Initialize m_in_call_function_usage. Call
22546 one_time_initialization.
22547 * rtl-tests.c (selftest::test_uncond_jump): Call
22548 set_new_first_and_last_insn.
22549 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
22550 * selftest-rtl.c: New file.
22551 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
22552 (selftest::get_insn_by_uid): New decl.
22553 * selftest-run-tests.c (selftest::run_tests): Call
22554 read_rtl_function_c_tests.
22555 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
22556 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
22557 dumps.
22558
22559 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
22560
22561 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
22562 operands in a special way. Assert that pos+len <= mode precision.
22563
22564 2017-01-05 Jakub Jelinek <jakub@redhat.com>
22565
22566 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
22567 3 argument Alias with unlimited for the negative form.
22568 (fno-vect-cost-model): Removed.
22569
22570 2017-01-05 Martin Liska <mliska@suse.cz>
22571
22572 * hsa-gen.c (gen_hsa_divmod): New function.
22573 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
22574
22575 2017-01-05 Martin Liska <mliska@suse.cz>
22576
22577 PR pch/78970
22578 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
22579 header.
22580
22581 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22582
22583 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
22584 small constant length operands.
22585
22586 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22587
22588 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
22589 between loop iterations.
22590
22591 2017-01-05 Martin Liska <mliska@suse.cz>
22592
22593 PR sanitizer/78815
22594 * gimplify.c (gimplify_decl_expr): Compare to
22595 asan_poisoned_variables instread of checking flags.
22596 (gimplify_target_expr): Likewise.
22597 (gimplify_expr): Likewise.
22598 (gimplify_function_tree): Conditionally initialize
22599 asan_poisoned_variables.
22600
22601 2017-01-04 Jeff Law <law@redhat.com>
22602
22603 PR tree-optimizatin/78812
22604 * rtl.h (contains_mem_rtx_p): Prototype.
22605 * ifcvt.c (containts_mem_rtx_p): Move from here to...
22606 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
22607 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
22608 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
22609 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
22610
22611 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
22612
22613 * input.c (assert_char_at_range): Default-initialize actual_range.
22614
22615 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
22616
22617 * df-scan.c (df_ref_create_structure): Make regno unsigned,
22618 to match the caller.
22619
22620 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
22621
22622 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
22623 insns after final jump in test to emit dummy move.
22624
22625 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
22626
22627 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
22628 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
22629
22630 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
22631
22632 * multiple_target.c (create_dispatcher_calls): Init e_next.
22633 * tree-ssa-loop-split.c (split_loop): Init border.
22634 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
22635 scalar_type.
22636
22637 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22638
22639 PR target/71977
22640 PR target/70568
22641 PR target/78823
22642 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
22643 (altivec_register_operand): Do not return true if the operand
22644 contains a SUBREG mixing SImode and SFmode.
22645 (vsx_register_operand): Likewise.
22646 (vsx_reg_sfsubreg_ok): New predicate.
22647 (vfloat_operand): Do not return true if the operand contains a
22648 SUBREG mixing SImode and SFmode.
22649 (vint_operand): Likewise.
22650 (vlogical_operand): Likewise.
22651 (gpc_reg_operand): Likewise.
22652 (int_reg_operand): Likewise.
22653 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
22654 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
22655 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
22656 SImode and SFmode.
22657 (rs6000_emit_move_si_sf_subreg): New helper function.
22658 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
22659 fixup SUBREGs involving SImode and SFmode.
22660 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
22661 numbers for the new peephole2 optimization.
22662 (peephole2 for SFmode unions): New peephole2 to optimize cases in
22663 the GLIBC math library that do AND/IOR/XOR operations on single
22664 precision floating point.
22665 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
22666 target macros to say whether we need to avoid SUBREGs mixing
22667 SImode and SFmode.
22668 (TARGET_ALLOW_SF_SUBREG): Likewise.
22669 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
22670 (UNSPEC_SI_FROM_SF): Likewise.
22671 (iorxor): Change spacing.
22672 (and_ior_xor): New iterator for AND, IOR, and XOR.
22673 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
22674 (movdi_from_sf_zero_ext): Likewise.
22675 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
22676 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
22677 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
22678 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
22679 (fms<mode>4): Likewise.
22680 (fnma<mode>4): Likewise.
22681 (fnms<mode>4): Likewise.
22682 (nfma<mode>4): Likewise.
22683 (nfms<mode>4): Likewise.
22684
22685 2017-01-04 Marek Polacek <polacek@redhat.com>
22686
22687 PR c++/64767
22688 * doc/invoke.texi: Document -Wpointer-compare.
22689
22690 2017-01-04 Jakub Jelinek <jakub@redhat.com>
22691
22692 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
22693 RejectNegative.
22694
22695 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
22696 descriptions for -gdwarf-5 and emit them as uleb128 instead of
22697 2-byte data.
22698
22699 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
22700
22701 PR target/78056
22702 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
22703 documentation of the powerpc_popcntb_ok attribute.
22704 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
22705 code to issue warning messages if a requested CPU configuration is
22706 not supported by the binary (assembler and loader) toolchain.
22707 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
22708 made to define a built-in function that has been disabled.
22709 (paired_init_builtins): Add assertion to prevent ICE if attempt is
22710 made to define a built-in function that has been disabled.
22711 (altivec_init_builtins): Add comment explaining why definition
22712 of the DST built-in functions is not preceded by an assertion
22713 check. Add assertions to prevent ICE if attempts are made to
22714 define an altivec predicate or an abs* built-in function that has
22715 been disabled.
22716 (htm_init_builtins): Add comment explaining why definition of the
22717 htm built-in functions is not preceded by an assertion check.
22718
22719 2017-01-04 Jeff Law <law@redhat.com>
22720
22721 PR tree-optimizatin/67955
22722 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
22723 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
22724 the points-to solution does not include pt_null. Use DECL_PT_UID
22725 unconditionally.
22726
22727 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
22728
22729 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
22730 Use gen_int_mode instead of gen_lopwart for const_int operands.
22731
22732 2017-01-04 Jakub Jelinek <jakub@redhat.com>
22733
22734 PR tree-optimization/71563
22735 * match.pd: Simplify X << Y into X if Y is known to be 0 or
22736 out of range value - has low bits known to be zero.
22737
22738 2017-01-04 Alan Modra <amodra@gmail.com>
22739
22740 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
22741 * configure: Regenerate.
22742 * config.in: Regenerate.
22743
22744 2017-01-04 Jakub Jelinek <jakub@redhat.com>
22745
22746 PR bootstrap/77569
22747 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
22748 a substring of the message, but strcmp with the whole message. Ifdef
22749 ENABLE_NLS, translate the message first using dgettext.
22750
22751 2017-01-03 Jeff Law <law@redhat.com>
22752
22753 PR tree-optimizatin/78856
22754 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
22755 (mark_threaded_blocks): Remove code to truncate thread paths that
22756 cross multiple loop headers. Instead invalidate the cached loop
22757 iteration information and handle case of a thread path walking
22758 into an irreducible region.
22759
22760 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
22761
22762 PR target/78900
22763 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
22764 assertions. Add support for doing the signbit if the IEEE 128-bit
22765 floating point value is in a GPR.
22766 * config/rs6000/rs6000.md (Fsignbit): Delete.
22767 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
22768 Update the length attribute if the value is in a GPR.
22769 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
22770 the sign or zero extension instruction, since the value is always 0/1.
22771 (signbit<mode>2_dm2): Delete using <Fsignbit>.
22772
22773 PR target/78953
22774 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
22775 extracting SImode to a GPR register so that we can generate a
22776 store, limit the vector to be in a traditional Altivec register
22777 for the vextuwrx instruction.
22778
22779 2017-01-03 Ian Lance Taylor <iant@google.com>
22780
22781 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
22782
22783 2017-01-03 Martin Sebor <msebor@redhat.com>
22784
22785 PR tree-optimization/78696
22786 * gimple-ssa-sprintf.c (format_floating): Correct handling of
22787 precision. Use MPFR for %f for greater fidelity. Correct handling
22788 of %g.
22789 (pass_sprintf_length::compute_format_length): Set width and precision
22790 specified by asrerisk to void_node for vararg functions.
22791 (try_substitute_return_value): Adjust dump output.
22792
22793 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
22794
22795 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
22796
22797 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
22798
22799 * doc/invoke.texi (SPARC options): Document -mlra as the default.
22800 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
22801 -mlra/-mno-lra was passed to the compiler.
22802
22803 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
22804
22805 PR rtl-optimization/65618
22806 * emit-rtl.c (try_split): Move initialization of "before" and
22807 "after" to just before the call to emit_insn_after_setloc.
22808
22809 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
22810
22811 * doc/md.texi (Standard Names): Remove reference to Java frontend.
22812
22813 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
22814
22815 * dwarf2out.c (gen_enumeration_type_die): When
22816 -gno-strict-dwarf, add a DW_AT_encoding attribute.
22817
22818 2017-01-03 Jakub Jelinek <jakub@redhat.com>
22819
22820 PR tree-optimization/78965
22821 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
22822 Change first argument from const call_info & to call_info &. For %n
22823 set info.nowrite to false.
22824
22825 PR middle-end/78901
22826 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
22827 possibly throwing calls.
22828
22829 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
22830 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
22831 and fns handling, rather than in a separate case SSA_NAME.
22832
22833 2017-01-02 Jeff Law <law@redhat.com>
22834
22835 * config/darwin-driver.c (darwin_driver_init): Const-correctness
22836 fixes for first_period and second_period variables.
22837
22838 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
22839
22840 PR target/78967
22841 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
22842 (*insvqi_1): New insn pattern.
22843 (*insvqi_1_mem_rex64): Ditto.
22844 (*insvqi_2): Ditto.
22845 (*insvqi_3): Rename from *insvqi.
22846
22847 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
22848
22849 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22850
22851 * doc/cfg.texi (Edges): Remove reference to Java.
22852 (Maintaining the CFG): Ditto.
22853
22854 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
22855
22856 PR middle-end/77674
22857 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
22858 transparent aliases.
22859
22860 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
22861
22862 PR middle-end/77484
22863 * predict.def (PRED_CALL): Update hitrate.
22864 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
22865 * predict.c (tree_estimate_probability_bb): Split CALL predictor
22866 into direct/indirect/polymorphic variants.
22867
22868 2017-01-01 Jakub Jelinek <jakub@redhat.com>
22869
22870 Update copyright years.
22871
22872 * gcc.c (process_command): Update copyright notice dates.
22873 * gcov-dump.c (print_version): Ditto.
22874 * gcov.c (print_version): Ditto.
22875 * gcov-tool.c (print_version): Ditto.
22876 * gengtype.c (create_file): Ditto.
22877 * doc/cpp.texi: Bump @copying's copyright year.
22878 * doc/cppinternals.texi: Ditto.
22879 * doc/gcc.texi: Ditto.
22880 * doc/gccint.texi: Ditto.
22881 * doc/gcov.texi: Ditto.
22882 * doc/install.texi: Ditto.
22883 * doc/invoke.texi: Ditto.
22884 \f
22885 Copyright (C) 2017 Free Software Foundation, Inc.
22886
22887 Copying and distribution of this file, with or without modification,
22888 are permitted in any medium without royalty provided the copyright
22889 notice and this notice are preserved.