ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; update use of...
[gcc.git] / gcc / ChangeLog
1 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
2
3 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
4 update use of estimate_ipcp_clone_size_and_time.
5 (estimate_local_effects): Update use of
6 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
7 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
8 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
9 Return nonspecialized time.
10
11 2017-05-04 Richard Biener <rguenther@suse.de>
12
13 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
14 for the last VUSE which def dominates the PHI. Directly call
15 maybe_skip_until.
16 (get_continuation_for_phi_1): Remove.
17
18 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
19
20 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
21 to explain the use of truncating division. Cap the number of
22 iterations to the maximum given by nb_iterations_upper_bound,
23 if defined.
24
25 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
26
27 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
28 * configure: Regenerate.
29 * config.in: Regenerate.
30 * config/i386/driver-mingw32.c: new file.
31 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
32 * config.host: Link driver-mingw32.o on MinGW host.
33 * doc/install.texi: Document new --enable-mingw-wildcard configure
34 option.
35
36 2017-05-04 Marek Polacek <polacek@redhat.com>
37
38 PR tree-optimization/80612
39 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
40
41 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
42 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
43
44 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
45 (movt splitter): Likewise.
46 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
47 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
48 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
49 block for Thumb-1 with MOVT.
50 (thumb2_legitimate_address_p): Move code block ...
51 (can_avoid_literal_pool_for_label_p): ... into this new function.
52 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
53 literal pool.
54 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
55 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
56 "M-profile targets with the MOVT instruction".
57
58 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
59
60 * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
61 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
62 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
63
64 2017-05-04 Martin Liska <mliska@suse.cz>
65
66 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
67 variable cond_code.
68
69 2017-05-04 Richard Biener <rguenther@suse.de>
70
71 * tree.c (array_at_struct_end_p): Handle arrays at struct
72 end with flexarrays more conservatively. Refactor and treat
73 arrays of arrays or aggregates more strict. Fix
74 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
75 * tree.c (array_at_struct_end_p): Adjust prototype.
76 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
77 * gimple-fold.c (get_range_strlen): Likewise.
78 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
79
80 2017-05-04 Richard Biener <rguenther@suse.de>
81
82 PR tree-optimization/31130
83 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
84 false.
85 (supports_overflow_infinity): Likewise.
86 (is_negative_overflow_infinity): Likewise.
87 (is_positive_overflow_infinity): Likewise.
88 (is_overflow_infinity): Likewise.
89 (stmt_overflow_infinity): Likewise.
90 (overflow_infinity_range_p): Likewise.
91 (usable_range_p): Remove as always returning true.
92 (make_overflow_infinity): Remove.
93 (negative_overflow_infinity): Likewise.
94 (positive_overflow_infinity): Likewise.
95 (avoid_overflow_infinity): Likewise.
96 (set_value_range): Adjust accordingly.
97 (set_value_range_to_nonnegative): Likewise, remove now unused
98 overflow_infinity arg.
99 (vrp_operand_equal_p): Adjust.
100 (update_value_range): Likewise.
101 (range_int_cst_singleton_p): Likewise.
102 (operand_less_p): Likewise.
103 (compare_values_warnv): Likewise.
104 (extract_range_for_var_from_comparison_expr): Likewise.
105 (vrp_int_const_binop): Likewise.
106 (zero_nonzero_bits_from_vr): Likewise.
107 (extract_range_from_multiplicative_op_1): Likewise.
108 (extract_range_from_binary_expr_1): Likewise.
109 (extract_range_from_unary_expr): Likewise.
110 (extract_range_from_comparison): Likewise.
111 (extract_range_basic): Likewise.
112 (adjust_range_with_scev): Likewise.
113 (compare_ranges): Likewise.
114 (compare_range_with_value): Likewise.
115 (dump_value_range): Likewise.
116 (test_for_singularity): Likewise, remove strict_overflow_p parameter
117 never used.
118 (simplify_cond_using_ranges): Adjust.
119
120 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
121
122 * brig-builtins.def: Added a builtin for class_f64.
123 * builtin-types.def: Added a builtin type needed by class_f64.
124
125 2017-05-03 Jason Merrill <jason@redhat.com>
126
127 * timevar.def: Add TV_CONSTEXPR.
128
129 2017-05-03 David Malcolm <dmalcolm@redhat.com>
130
131 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
132
133 2017-05-03 Martin Jambor <mjambor@suse.cz>
134
135 * ipa-prop.c (ipa_update_after_lto_read): Removed.
136 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
137 * ipa-cp.c (ipcp_propagate_stage): Do not call
138 ipa_update_after_lto_read.
139 * ipa-inline.c (ipa_inline): Likewise.
140
141 2017-05-03 Martin Jambor <mjambor@suse.cz>
142
143 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
144 tag. Added a default constructor and a destructor.
145 (ipa_edge_args_sum_t): New class;
146 (ipa_edge_args_sum): Declare.
147 (ipa_edge_args_vector): Remove declaration.
148 (IPA_EDGE_REF): Use ipa_edge_args_sum.
149 (ipa_free_edge_args_substructures): Remove declaration.
150 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
151 (ipa_edge_args_info_available_for_edge_p): Likewise.
152 * ipa-prop.c (ipa_edge_args_vector): Removed.
153 (edge_removal_hook_holder): Likewise.
154 (edge_duplication_hook_holder): Likewise.
155 (ipa_edge_args_sum): New variable.
156 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
157 ipa_edge_args_vector.
158 (ipa_free_edge_args_substructures): Likewise.
159 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
160 ipa_edge_args_vector.
161 (ipa_edge_removal_hook): Turned into method
162 ipa_edge_args_sum_t::remove.
163 (ipa_edge_duplication_hook): Turned into method
164 ipa_edge_args_sum_t::duplicate.
165 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
166 registering edge hooks.
167 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
168 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
169 ipa_edge_args_sum instead of ipa_edge_args_vector.
170 * ipa-profile.c (ipa_profile): Likewise.
171
172 2017-05-03 Martin Jambor <mjambor@suse.cz>
173
174 * symbol-summary.h (function_summary): New method exists.
175 (function_summary::symtab_removal): Deallocate through release.
176 (call_summary): New class.
177 (gt_ggc_mx): New overload.
178 (gt_pch_nx): Likewise.
179 (gt_pch_nx): Likewise.
180
181 2017-05-03 Jeff Law <law@redhat.com>
182
183 PR tree-optimization/78496
184 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
185 from simplify_cond_using_ranges. Split off code to walk
186 backwards through casts into ...
187 (simplify_cond_using_ranges_2): New function.
188 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
189 (execute_vrp): After identifying jump threads, call
190 simplify_cond_using_ranges_2.
191
192 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
193
194 PR bootstrap/80609
195 * ipa-inline.h (inline_summary): Add ctor.
196 (create_ggc): Do not use ggc_cleared_alloc.
197
198 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
199 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
200
201 * gcc.c (handle_braces): Support escaping in switch matching
202 text.
203 * doc/invoke.texi (Spec Files): Document it.
204 Remove superfluous @code markup in items.
205
206 2017-05-03 David Malcolm <dmalcolm@redhat.com>
207
208 * diagnostic-show-locus.c (struct column_range): New struct.
209 (get_affected_columns): New function.
210 (get_printed_columns): New function.
211 (struct correction): New struct.
212 (correction::ensure_capacity): New function.
213 (correction::ensure_terminated): New function.
214 (struct line_corrections): New struct.
215 (line_corrections::~line_corrections): New dtor.
216 (line_corrections::add_hint): New function.
217 (layout::print_trailing_fixits): Reimplement in terms of the new
218 classes.
219 (selftest::test_overlapped_fixit_printing): New function.
220 (selftest::diagnostic_show_locus_c_tests): Call it.
221
222 2017-05-03 Nathan Sidwell <nathan@acm.org>
223
224 Canonicalize canonical type hashing
225 * tree.h (type_hash_canon_hash): Declare.
226 * tree.c (type_hash_list, attribute_hash_list): Move into
227 type_hash_canon_hash.
228 (build_type_attribute_qual_variant): Break out hash code calc into
229 type_hash_canon_hash.
230 (type_hash_canon_hash): New. Generic type hash computation.
231 (build_range_type_1, build_array_type_1, build_function_type,
232 build_method_type_directly, build_offset_type, build_complex_type,
233 make_vector_type): Call it.
234
235 2017-05-03 Richard Biener <rguenther@suse.de>
236
237 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
238 When all DRs have unknown misaligned do not always peel
239 when there is a store but apply the same costing model as if
240 there were only loads.
241
242 2017-05-03 Richard Biener <rguenther@suse.de>
243
244 Revert
245 PR tree-optimization/80492
246 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
247 compare_base_decls returning dont-know properly.
248
249 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
250
251 * config/arm/iterators.md (CCSI): New mode iterator.
252 (arch): New mode attribute.
253 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
254 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
255 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
256 code iterator for success result mode.
257 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
258 the corresponding new insn generators.
259
260 2017-05-03 Bin Cheng <bin.cheng@arm.com>
261
262 Revert r247509
263 2017-05-02 Bin Cheng <bin.cheng@arm.com>
264 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
265
266 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
267
268 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
269 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
270 (DDR_A): Wrap DDR argument in brackets.
271 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
272 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
273 (DDR_REVERSED_P): Likewise.
274
275 2017-05-03 Jakub Jelinek <jakub@redhat.com>
276
277 PR tree-optimization/79472
278 * tree-switch-conversion.c (struct switch_conv_info): Add
279 contiguous_range and default_case_nonstandard fields.
280 (collect_switch_conv_info): Compute contiguous_range and
281 default_case_nonstandard fields, don't clear final_bb if
282 contiguous_range and only the default case doesn't have the required
283 structure.
284 (check_all_empty_except_final): Set default_case_nonstandard instead
285 of failing if contiguous_range and the default case doesn't have empty
286 block.
287 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
288 and only the default case doesn't have the required constants. Skip
289 virtual phis.
290 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
291 if default_case_nonstandard.
292 (build_constructors): Build constant 1 just once. Assert that default
293 values aren't inserted in between cases if contiguous_range. Skip
294 virtual phis.
295 (build_arrays): Skip virtual phis.
296 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
297 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
298 Handle virtual phis.
299 (gen_inbound_check): Handle default_case_nonstandard case.
300 (process_switch): Adjust check_final_bb caller. Call
301 gather_default_values with the first non-default case instead of
302 default case if default_case_nonstandard.
303
304 2017-05-02 Nathan Sidwell <nathan@acm.org>
305
306 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
307 check. Fix formatting.
308
309 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
310
311 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
312 errors when comparing specialized and unspecialized times.
313
314 2017-05-02 David Malcolm <dmalcolm@redhat.com>
315
316 * diagnostic-show-locus.c
317 (layout::should_print_annotation_line_p): Make private.
318 (layout::print_annotation_line): Make private.
319 (layout::annotation_line_showed_range_p): Make private.
320 (layout::show_ruler): Make private.
321 (layout::print_source_line): Make private. Pass in line and
322 line_width, rather than calling location_get_source_line. Drop
323 returned value.
324 (layout::print_leading_fixits): New method.
325 (layout::print_any_fixits): Rename to...
326 (layout::print_trailing_fixits): ...this, and make private.
327 Don't print newline fixits.
328 (diagnostic_show_locus): Move logic for printing one row into...
329 (layout::print_line): ...this new function. Move the
330 location_get_source_line call and error-handling from
331 print_source_line to here. Call print_leading_fixits, and rename
332 print_any_fixits to print_trailing_fixits.
333 (selftest::test_fixit_insert_containing_newline): Update now that
334 newlines are partially supported.
335 (selftest::test_fixit_insert_containing_newline_2): New test.
336 (selftest::test_fixit_replace_containing_newline): Update comments.
337 (selftest::diagnostic_show_locus_c_tests): Call the new test.
338 * edit-context.c (class added_line): New class.
339 (class edited_line): Describe newline handling in comment.
340 (edited_line::actually_edited_p): New method.
341 (edited_line::print_content): Delete redundant decl.
342 (edited_line::m_predecessors): New field.
343 (edited_file::print_content): Call edited_line::print_content.
344 (edited_file::print_diff): Update to support newlines.
345 (edited_file::print_diff_hunk): Likewise.
346 (edited_file::print_run_of_changed_lines): New function.
347 (edited_file::print_diff_line): Convert to...
348 (print_diff_line): ...this.
349 (edited_file::get_effective_line_count): New function.
350 (edited_line::edited_line): Initialize new field m_predecessors.
351 (edited_line::~edited_line): Clean up m_predecessors.
352 (edited_line::apply_fixit): Handle newlines.
353 (edited_line::get_effective_line_count): New function.
354 (edited_line::print_content): New function.
355 (edited_line::print_diff_lines): New function.
356 (selftest::test_applying_fixits_insert_containing_newline): New
357 test.
358 (selftest::test_applying_fixits_replace_containing_newline): New
359 test.
360 (selftest::insert_line): New function.
361 (selftest::test_applying_fixits_multiple_lines): Add example of
362 inserting a line.
363 (selftest::edit_context_c_tests): Call the new tests.
364
365 2017-05-02 Bin Cheng <bin.cheng@arm.com>
366
367 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
368 parameter cand. Update dump information.
369 (get_computation_cost): Update uses.
370
371 2017-05-02 Bin Cheng <bin.cheng@arm.com>
372
373 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
374 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
375 (get_computation_at, rewrite_use_address): Update use of
376 get_computation_aff.
377
378 2017-05-02 Bin Cheng <bin.cheng@arm.com>
379
380 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
381 (get_computation): Delete.
382 (get_computation_cost): Implement like get_computation_cost_at.
383 Use get_computation_at.
384 (get_computation_cost_at): Delete.
385 (rewrite_use_nonlinear_expr): Use get_computation_at.
386 (rewrite_use_compare, remove_unused_ivs): Ditto.
387
388 2017-05-02 Bin Cheng <bin.cheng@arm.com>
389
390 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
391
392 2017-05-02 Bin Cheng <bin.cheng@arm.com>
393
394 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
395 (ivopts_global_cost_for_size): Rename parameter and update uses.
396 (iv_ca_recount_cost): Update uses.
397 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
398 candidates seperately in n_invs and n_cands.
399 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
400
401 2017-05-02 Bin Cheng <bin.cheng@arm.com>
402
403 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
404 (find_inv_vars_cb): New.
405 (find_depends): Renamed to ...
406 (find_inv_vars): ... this.
407 (add_candidate_1, force_var_cost): Call find_inv_vars.
408 (split_address_cost, determine_group_iv_cost_cond): Ditto.
409
410 2017-05-02 Bin Cheng <bin.cheng@arm.com>
411
412 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
413 inv_vars. Add inv_exprs.
414 (struct iv_cand): Rename depends_on to inv_vars.
415 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
416 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
417 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
418 (dump_cand): Dump inv_vars.
419 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
420 (record_invariant, find_depends, add_candidate_1): Ditto.
421 (set_group_iv_cost, force_var_cost): Ditto.
422 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
423 (get_computation_cost_at, get_computation_cost): Ditto.
424 (determine_group_iv_cost_generic): Ditto.
425 (determine_group_iv_cost_address): Ditto.
426 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
427 (determine_group_iv_costs): Ditto.
428 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
429 (iv_ca_set_remove_invariants): Renamed to ...
430 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
431 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
432 (iv_ca_set_add_invariants): Renamed to ...
433 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
434 (iv_ca_set_cp): Use iv_ca_set_add_invs.
435 (iv_ca_has_deps): Support inv_vars and inv_exprs.
436 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
437 (create_new_ivs): Remove useless dump.
438
439 2017-05-02 Bin Cheng <bin.cheng@arm.com>
440
441 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
442 iv_cand code.
443 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
444 (iv_ca_set_no_cp, create_new_iv): Ditto.
445
446 2017-05-02 Bin Cheng <bin.cheng@arm.com>
447
448 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
449
450 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
451
452 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
453 function tree_check2.
454
455 2017-05-02 Martin Liska <mliska@suse.cz>
456
457 * doc/gcov.texi: Add missing preposition.
458 * gcov.c (function_info::function_info): Properly fill up
459 all member variables.
460
461 2017-05-02 Tamar Christina <tamar.christina@arm.com>
462
463 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
464
465 2017-05-02 Tamar Christina <tamar.christina@arm.com>
466
467 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
468
469 2017-05-02 Martin Liska <mliska@suse.cz>
470
471 PR lto/77954.
472 * lto-streamer-in.c (lto_read_tree_1): Remove
473 LTO_STREAMER_DEBUG.
474 * lto-streamer.c (struct tree_hash_entry): Likewise.
475 (struct tree_entry_hasher): Likewise.
476 (tree_entry_hasher::hash): Likewise.
477 (tree_entry_hasher::equal): Likewise.
478 (lto_streamer_init): Likewise.
479 (lto_orig_address_map): Likewise.
480 (lto_orig_address_get): Likewise.
481 (lto_orig_address_remove): Likewise.
482 * lto-streamer.h: Likewise.
483 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
484 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
485
486 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
487
488 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
489 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
490 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
491 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
492 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
493 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
494 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
495 (mm_maskz_sub_ss): New intrinsics.
496 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
497 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
498 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
499 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
500 (__builtin_ia32_subss_mask_round): New builtins.
501 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
502 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
503 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
504 Renamed to ...
505 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
506 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
507 Changed to ...
508 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
509 ... this.
510
511 2017-05-02 Martin Jambor <mjambor@suse.cz>
512
513 PR tree-optimization/78687
514 * tree-sra.c (access): New field parent.
515 (process_subtree_disqualification): New function.
516 (disqualify_candidate): Call it.
517 (build_accesses_from_assign): Reset write flag if creating an
518 assighnment link.
519 (build_access_subtree): Fill in parent field and also prpagate
520 down grp_write flag.
521 (create_artificial_child_access): New parameter set_grp_write, set
522 grp_write to its value.
523 (propagate_subaccesses_across_link): Also propagate grp_write flag
524 values.
525 (propagate_all_subaccesses): Push the closest parent back to work
526 queue if add_access_to_work_queue returned true.
527
528 2017-05-02 Richard Biener <rguenther@suse.de>
529
530 * common.opt (fstrict-overflow): Alias negative to fwrapv.
531 * doc/invoke.texi (fstrict-overflow): Remove all traces of
532 -fstrict-overflow documentation.
533 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
534 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
535 flag_strict_overflow.
536 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
537 * lto-opts.c (lto_write_options): Do not stream it.
538 * lto-wrapper.c (merge_and_complain): Do not handle it.
539 * opts.c (default_options_table): Do not set -fstrict-overflow.
540 (finish_options): Likewise do not clear it when sanitizing.
541 * simplify-rtx.c (simplify_const_relational_operation): Do not
542 test flag_strict_overflow.
543
544 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
545
546 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
547 using enabled attribute.
548 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
549 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
550 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
551 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
552 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
553 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
554 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
555 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
556 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
557 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
558
559 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
560
561 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
562
563 2017-05-02 Richard Biener <rguenther@suse.de>
564
565 PR tree-optimization/80591
566 Revert
567 2017-04-10 Richard Biener <rguenther@suse.de>
568
569 * tree-ssa-structalias.c (find_func_aliases): Properly handle
570 asm inputs.
571
572 2017-05-02 Richard Biener <rguenther@suse.de>
573
574 PR tree-optimization/80549
575 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
576 (cleanup_tree_cfg_noloop): Create forwarders to known loop
577 headers if they do not have a preheader.
578
579 2017-05-02 Martin Liska <mliska@suse.cz>
580
581 PR other/80589
582 * common.opt: Fix typo.
583 * doc/invoke.texi: Likewise.
584
585 2017-05-01 Jan Beulich <jbeulich@suse.com>
586
587 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
588 swapping, add (x,x,m,x,n) alternative.
589
590 2017-05-01 Nathan Sidwell <nathan@acm.org>
591
592 * calls.c (combine_pending_stack_adjustment_and_call): Remove
593 unnecessary unadjusted_alignment check.
594
595 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
596
597 PR c++/80038
598 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
599 operations here.
600 * gimplify.c (gimplify_cilk_detach): New function.
601 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
602 * tree-core.h: Document EXPR_CILK_SPAWN.
603 * tree.h (EXPR_CILK_SPAWN): Define.
604
605 2017-05-01 David Malcolm <dmalcolm@redhat.com>
606
607 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
608 to use new fixit_hint representation, using the "replace" logic.
609 (get_line_span_for_fixit_hint): Likewise.
610 (layout::print_any_fixits): Likewise.
611 (selftest::test_one_liner_many_fixits): Rename to...
612 (selftest::test_one_liner_many_fixits_1): ...this, and update
613 comment and expected output to reflect that the multiple fix-it
614 hints are now consolidated into one insertion.
615 (selftest::test_one_liner_many_fixits_2): New test.
616 (selftest::test_diagnostic_show_locus_one_liner): Update for
617 above.
618 (selftest::test_fixit_consolidation): Update for fix-it API
619 change.
620 * diagnostic.c (print_parseable_fixits): Likewise.
621 * edit-context.c (edited_line::m_line_events): Convert from
622 auto_vec <line_event *> to auto_vec <line_event>.
623 (class line_event): Convert from abstract base class to a concrete
624 class, taking over the role of replace_event.
625 (class insert_event): Delete.
626 (class replace_event): Rename to class line_event. Convert to
627 half-open range.
628 (edit_context::add_fixits): Reimplement.
629 (edit_context::apply_insert): Delete.
630 (edit_context::apply_replace): Rename to...
631 (edit_context::apply_fixit): ...this. Convert to half-open range.
632 (edited_file::apply_insert): Delete.
633 (edited_file::apply_replace): Rename to...
634 (edited_file::apply_fixit): ...this.
635 (edited_line::~edited_line): Drop deletion of events.
636 (edited_line::apply_insert): Delete.
637 (edited_line::apply_replace): Rename to...
638 (edited_line::apply_fixit): ...this. Convert to half-open range.
639 Update for change to type of m_line_events.
640 * edit-context.h (edit_context::apply_insert): Delete.
641 (edit_context::apply_replace): Rename to...
642 (edit_context::apply_fixit): ...this.
643
644 2017-05-01 Martin Sebor <msebor@redhat.com>
645
646 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
647 known.
648
649 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
650
651 PR target/68491
652 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
653 __get_cpuid_max returns 0.
654 (__get_cpuid_count): Ditto.
655
656 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
657
658 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
659 replacement expression is another instance of one of its arguments.
660
661 2017-05-01 Jakub Jelinek <jakub@redhat.com>
662
663 PR target/79430
664 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
665 check for stack push/pop autoinc.
666 * config/i386/i386.c (ix86_agi_dependent): Return false
667 if the only reason why modified_in_p returned true is that
668 addr is SP based and set_insn is a push or pop.
669
670 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
671
672 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
673 overflow check.
674
675 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
676
677 PR ipa/79224
678 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
679 (account_size_time): Use two predicates - exec_pred and
680 nonconst_pred_ptr.
681 (evaluate_conditions_for_known_args): Compute both clause and
682 nonspec_clause.
683 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
684 (inline_summary_t::duplicate): Update.
685 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
686 separately.
687 (compute_inline_parameters): Likewise.
688 (estimate_edge_size_and_time): Update caluclation of time.
689 (estimate_node_size_and_time): Compute both time and nonspecialized
690 time.
691 (estimate_ipcp_clone_size_and_time): Update.
692 (inline_merge_summary): Update.
693 (do_estimate_edge_time): Update.
694 (do_estimate_edge_size): Update.
695 (do_estimate_edge_hints): Update.
696 (inline_read_section, inline_write_summary): Stream both new predicates.
697 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
698 as argument.
699 (compute_inlined_call_time): Cleanup.
700 (big_speedup_p): Update.
701 (edge_badness): Update.
702 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
703 (size_time_entry): Replace predicate by exec_predicate and
704 nonconst_predicate.
705 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
706 (estimate_edge_time): Return also nonspec_time.
707 (reset_edge_growth_cache): Update.
708
709 2017-04-29 Jakub Jelinek <jakub@redhat.com>
710
711 PR rtl-optimization/80491
712 * ifcvt.c (noce_process_if_block): When looking for x setter
713 with missing else_bb, don't check only the insn right before
714 cond_earliest, but look for the last insn that x is modified in
715 within the same bb.
716
717 PR rtl-optimization/80491
718 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
719
720 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
721
722 PR tree-optimization/80487
723 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
724
725 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
726
727 PR tree-optimization/79697
728 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
729 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
730 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
731 BUILT_IN_STRNDUP.
732 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
733 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
734
735 2017-04-28 Martin Sebor <msebor@redhat.com>
736
737 PR tree-optimization/80523
738 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
739 (init_target_to_host_charmap, target_to_host, target_strtol10): New
740 functions.
741 (maybe_warn, format_directive, parse_directive): Use new functions.
742 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
743
744 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
745
746 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
747
748 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
749
750 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
751 target_header_dir): Set correctly.
752 * configure: Regenerated.
753 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
754 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
755 instead of SYSTEM_HEADER_DIR.
756
757 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
758
759 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
760 (estimate_local_effects): Likewise.
761 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
762 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
763 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
764 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
765 do_estimate_edge_time, estimate_edge_time): Likewise.
766 * ipa-inline-analysis.c (estimate_node_size_and_time,
767 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
768 (estimate_time_after_inlining): Remove.
769
770 2017-04-28 Martin Liska <mliska@suse.cz>
771
772 * doc/gcov.texi: Enhance documentation of gcov.
773
774 2017-04-28 Martin Liska <mliska@suse.cz>
775
776 * doc/gcov.texi: Sort options in alphabetic order.
777 * doc/gcov-dump.texi: Likewise.
778 * doc/gcov-tool.texi: Likewise.
779 * gcov.c (print_usage): Likewise.
780 * gcov-dump.c (print_usage): Likewise.
781 * gcov-tool.c (print_merge_usage_message): Likewise.
782 (print_rewrite_usage_message): Likewise.
783 (print_overlap_usage_message): Likewise.
784
785 2017-04-28 Martin Liska <mliska@suse.cz>
786
787 PR gcov-profile/53915
788 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
789
790 2017-04-28 Martin Liska <mliska@suse.cz>
791
792 PR gcov-profile/79891
793 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
794 is marked by compiler as living on a line.
795 (get_cycles_count): Remove usage of the union.
796 (output_intermediate_file): Likewise.
797 (find_source): Fix GNU coding style.
798 (accumulate_line_counts): Remove old non-all block mode.
799 (output_lines): Remove usage of the union.
800 * profile.c (output_location): Include all BBs, even if
801 belonging to a same line (and file) as a previous BB.
802
803 2017-04-28 Martin Liska <mliska@suse.cz>
804
805 * gcov.c (process_args): Handle new argument 'w'.
806 (read_graph_file): Assign ID to BBs.
807 (output_branch_count): Display BB # if verbose flag is set.
808 (output_lines): Likewise for arcs.
809 (print_usage): Add '--verbose' option help.
810 * doc/gcov.texi: Document --verbose (-w) option.
811
812 2017-04-28 Martin Liska <mliska@suse.cz>
813
814 * gcov.c (struct block_location_info): New struct.
815 (process_file): Fill up the new structure.
816 (read_graph_file): Replace usage of encoding by the newly added
817 struct.
818 (add_line_counts): Likewise.
819 (accumulate_line_counts): Remove usage of the union.
820 (function_info::function_info): New function.
821 (function_info::~function_info): Likewise.
822 (process_file): Call delete instead of release_function.
823 (release_function): Release the function.
824 (release_structures): Call delete instead of release_function.
825 (solve_flow_graph): Replace usage of num_blocks.
826 (find_exception_blocks): Likewise.
827 (output_lines): Fix GNU coding style.
828
829 2017-04-28 Martin Liska <mliska@suse.cz>
830
831 PR driver/56469
832 * coverage.c (coverage_remove_note_file): New function.
833 * coverage.h: Declare the function.
834 * toplev.c (finalize): Clean if an error has been seen.
835
836 2017-04-28 Martin Liska <mliska@suse.cz>
837
838 PR gcov-profile/80031
839 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
840 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
841 * gcov.c (read_graph_file): Read just number of blocks.
842 * profile.c (branch_prob): Do not stream 0 flags per a basic
843 block.
844
845 2017-04-28 Martin Liska <mliska@suse.cz>
846
847 * gcov-dump.c (tag_*): Add new argument to declarations.
848 (dump_gcov_file): Likewise.
849 (tag_blocks): Add and use new argument depth.
850 (tag_arcs): Likewise.
851 (tag_lines): Likewise.
852 (tag_counters): Likewise.
853 (tag_summary): Likewise.
854 (dump_working_sets): Use depth to do a proper indentation.
855
856 2017-04-28 Jakub Jelinek <jakub@redhat.com>
857
858 PR bootstrap/80531
859 * cgraph.h (symtab_node::debug_symtab): No longer inline.
860 * symtab.c (symtab_node::debug_symtab): Move definition here.
861
862 2017-04-28 Richard Biener <rguenther@suse.de>
863
864 * lto-streamer.h (LTO_major_version): Bump to 7.
865
866 2017-04-28 Richard Biener <rguenther@suse.de>
867
868 * tree-vrp.c (assert_info): New struct.
869 (add_assert_info): New helper.
870 (register_edge_assert_for_2): Refactor to add asserts to a vector
871 of assert_info.
872 (register_edge_assert_for_1): Likewise.
873 (register_edge_assert_for): Likewise.
874 (finish_register_edge_assert_for): New helper actually registering
875 asserts where live on edge.
876 (find_conditional_asserts): Adjust.
877 (find_switch_asserts): Likewise.
878 (evrp_dom_walker::try_find_new_range): Generalize.
879 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
880
881 2017-04-27 Marek Polacek <polacek@redhat.com>
882
883 PR sanitizer/80349
884 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
885 arg10 and arg11 to itype.
886
887 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
888
889 * doc/extend.texi (Object Size Checking): Improve grammar.
890
891 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
892
893 PR target/80530
894 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
895 that the logic for permitting reciprocal estimates matches that
896 in use_rsqrt_p.
897
898 2017-04-27 Jakub Jelinek <jakub@redhat.com>
899
900 PR c++/80534
901 * tree.c (type_cache_hasher::equal): Only compare
902 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
903 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
904 non-aggregate element types.
905 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
906 about the flag on ARRAY_TYPEs in the comment, formatting fix.
907
908 2017-04-27 Richard Biener <rguenther@suse.de>
909
910 PR middle-end/80533
911 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
912 stripping ARRAY_REFs from MEM_EXPR make sure we're not
913 keeping a reference to a trailing array.
914
915 2017-04-27 Richard Biener <rguenther@suse.de>
916
917 PR middle-end/80539
918 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
919 being in loop-closed SSA form conservatively.
920 (chrec_fold_multiply_poly_poly): Likewise.
921
922 2017-04-27 Tamar Christina <tamar.christina@arm.com>
923
924 PR middle-end/79665
925 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
926 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
927
928 2017-04-27 Jakub Jelinek <jakub@redhat.com>
929
930 PR target/77728
931 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
932 (aarch64_function_arg_alignment): Return unsigned int again, but still
933 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
934 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
935 Don't emit -Wpsabi note.
936 (aarch64_function_arg_boundary): Likewise.
937 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
938 caller.
939
940 2017-04-26 Nathan Sidwell <nathan@acm.org>
941
942 * tree.h (crc32_unsigned_n): Declare.
943 (crc32_unsigned, crc32_unsigned): Make inline.
944 * tree.c (crc32_unsigned_bits): Replace with ...
945 (crc32_unsigned_n): ... this.
946 (crc32_unsigned, crc32_byte): Remove.
947 (crc32_string): Remove unnecessary braces.
948
949 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
950
951 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
952 * ipa-inline-analysis.c (MAX_TIME): Remove.
953 (account_size_time): Use sreal for time.
954 (dump_inline_summary): Update.
955 (estimate_function_body_sizes): Update.
956 (estimate_edge_size_and_time): Update.
957 (estimate_calls_size_and_time): Update.
958 (estimate_node_size_and_time): Update.
959 (inline_merge_summary): Update.
960 (inline_update_overall_summary): Update.
961 (estimate_time_after_inlining): Update.
962 (inline_read_section): Update.
963 (inline_write_summary): Update.
964 * ipa-inline.c (compute_uninlined_call_time): Update.
965 (compute_inlined_call_time): Update.
966 (recursive_inlining): Update.
967 (inline_small_functions): Update.
968 (dump_overall_stats): Update.
969 * ipa-inline.h: Include sreal.h.
970 (size_time_entry): Turn time to sreal.
971 (inline_summary): Turn self_time nad time to sreal.
972
973 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
974
975 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
976 data-streamer.h
977 (sreal::stream_out, sreal::stream_in): New.
978 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
979
980 2017-04-25 Jakub Jelinek <jakub@redhat.com>
981
982 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
983 environment.
984
985 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
986
987 PR target/70799
988 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
989 Handle ASHIFTRT.
990 (dimode_scalar_chain::compute_convert_gain): Ditto.
991 (dimode_scalar_chain::make_vector_copies): Ditto.
992 (dimode_scalar_chain::convert_reg): Ditto.
993 (dimode_scalar_chain::convert_insn): Ditto.
994 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
995 (VI248_AVX512BW_1): New mode iterator.
996 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
997 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
998 mode iterator.
999
1000 2017-04-25 Martin Sebor <msebor@redhat.com>
1001
1002 PR tree-optimization/80497
1003 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
1004 constants are representable in HOST_WIDE_INT.
1005 (parse_directive): Ditto.
1006
1007 2017-04-25 Martin Sebor <msebor@redhat.com>
1008
1009 PR bootstrap/80486
1010 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
1011 (new_zero_array): Adjust signature.
1012 (dom_info::dom_init): Used unsigned rather that size_t.
1013 (dom_info::dom_info): Same.
1014
1015 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1016 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR target/77728
1019 * config/arm/arm.c: Include gimple.h.
1020 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
1021 returns negative, increment ncrn only if it returned positive.
1022 (arm_needs_doubleword_align): Return int instead of bool,
1023 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
1024 members, but if there is any such non-FIELD_DECL
1025 > PARM_BOUNDARY aligned decl, return -1 instead of false.
1026 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
1027 returns negative, increment nregs only if it returned positive.
1028 (arm_setup_incoming_varargs): Likewise.
1029 (arm_function_arg_boundary): Emit -Wpsabi note if
1030 arm_needs_doubleword_align returns negative, return
1031 DOUBLEWORD_ALIGNMENT only if it returned positive.
1032
1033 2017-04-25 Marek Polacek <polacek@redhat.com>
1034
1035 PR sanitizer/80349
1036 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
1037 first argument to type.
1038
1039 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
1040
1041 PR target/80482
1042 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
1043 type checks to test for compatibility instead of equality.
1044
1045 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1046 Jakub Jelinek <jakub@redhat.com>
1047
1048 PR target/77728
1049 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
1050 type.
1051 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
1052 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
1053 the alignment computation, but return their maximum in warn_alignment.
1054 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
1055 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
1056 is smaller.
1057 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
1058 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
1059 caller.
1060
1061 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1062
1063 * config/arc/simdext.md (dmpyh): Fix typo.
1064
1065 2017-04-25 Richard Biener <rguenther@suse.de>
1066
1067 PR tree-optimization/80492
1068 * alias.c (compare_base_decls): Handle registers with asm
1069 specification conservatively.
1070 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
1071 compare_base_decls returning dont-know properly.
1072
1073 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1074
1075 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
1076 (legitimate_offset_address_p): New function.
1077 (arc_legitimate_address_p): Use above function.
1078
1079 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1080
1081 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
1082
1083 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1084
1085 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
1086 ACCH registers whenever they are available.
1087
1088 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1089
1090 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
1091 double regs fix when not used.
1092
1093 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1094
1095 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
1096 core registers.
1097 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
1098 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
1099
1100 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1101
1102 * config/arc/arc.c (arc_output_addsi): Check for h-register class
1103 when emitting short ADD instructions.
1104
1105 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
1106
1107 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
1108 constraint.
1109 (cmpsi_cc_c_insn): Likewise.
1110 (cbranchsi4_scratch): Compute proper instruction length using
1111 compact_hreg_operand.
1112 * config/arc/predicates.md (compact_hreg_operand): New predicate.
1113
1114 2017-04-25 Richard Biener <rguenther@suse.de>
1115
1116 PR middle-end/80509
1117 * passes.c (pass_manager::pass_manager): Initialize
1118 m_name_to_pass_map.
1119
1120 2017-04-25 Richard Biener <rguenther@suse.de>
1121
1122 PR tree-optimization/79201
1123 * tree-ssa-sink.c (statement_sink_location): Handle calls.
1124
1125 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1126
1127 PR target/80464
1128 * config/s390/vector.md: Split MEM->GPR vector moves for
1129 non-s_operand addresses.
1130
1131 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1132
1133 PR target/79895
1134 * config/s390/predicates.md (reload_const_wide_int_operand): New
1135 predicate.
1136 * config/s390/s390.md ("movti"): Remove d/P alternative.
1137 ("movti_bigconst"): New pattern definition.
1138
1139 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
1140
1141 PR target/80080
1142 * s390-protos.h (s390_expand_cs_hqi): Removed.
1143 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
1144 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
1145 modes as well as CCZ1mode and CCZmode.
1146 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
1147 signature of s390_emit_compare_and_swap.
1148 (s390_expand_cs_hqi): Likewise, make static.
1149 (s390_expand_cs_tdsi): Generate an explicit compare before trying
1150 compare-and-swap, in some cases.
1151 (s390_expand_cs): Wrapper function.
1152 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
1153 atomic_exchange.
1154 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
1155 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
1156 patterns for small and large integers. Forbid symref memory operands.
1157 Move expander to s390.c. Require cc register.
1158 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
1159 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
1160 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
1161 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
1162 symref memory operands. Remove CC mode and call s390_match_ccmode
1163 instead.
1164 ("atomic_exchange<mode>"): Allow and implement all integer modes.
1165
1166 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
1167
1168 * config/s390/s390.md (define_peephole2): New peephole to help
1169 combining the load-and-test pattern with volatile memory.
1170
1171 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
1172
1173 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
1174 with CCZmode for TARGET_Z196.
1175
1176 2017-04-25 Jakub Jelinek <jakub@redhat.com>
1177
1178 PR rtl-optimization/80501
1179 * combine.c (make_compound_operation_int): Set subreg_code to SET
1180 even for AND with mask of the sign bit of mode.
1181
1182 PR rtl-optimization/80500
1183 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
1184 sum's initial value.
1185
1186 2017-04-25 Julian Brown <julian@codesourcery.com>
1187 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1188
1189 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
1190
1191 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
1192
1193 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
1194
1195 2017-04-25 Julian Brown <julian@codesourcery.com>
1196 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1197
1198 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
1199 (thunderx2t99_sha): New Reservation.
1200
1201 2017-04-25 Julian Brown <julian@codesourcery.com>
1202 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1203
1204 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
1205 type for 1-element load.
1206
1207 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
1208
1209 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
1210
1211 2017-04-24 Martin Jambor <mjambor@suse.cz>
1212
1213 PR tree-optimization/80293
1214 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
1215 char arrays not totally scalarizable if it is false.
1216 (analyze_all_variable_accesses): Pass correct value in the new
1217 parameter. Add a statistics counter.
1218
1219 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
1220
1221 PR middle-end/79931
1222 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
1223
1224 2017-04-24 Richard Biener <rguenther@suse.de>
1225
1226 PR tree-optimization/80494
1227 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
1228 out for complex types.
1229
1230 2017-04-24 Richard Biener <rguenther@suse.de>
1231
1232 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
1233 * tree-ssa-sccvn.c (print_scc): Print SCC size.
1234 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
1235 (DFS): Adjust and never fail.
1236 (sccvn_dom_walker::fail): Remove.
1237 (sccvn_dom_walker::before_dom_children): Adjust.
1238 (run_scc_vn): Likewise and never fail.
1239 * tree-ssa-pre.c (pass_pre::execute): Adjust.
1240 (pass_fre::execute): Likewise.
1241
1242 2017-04-24 Richard Biener <rguenther@suse.de>
1243
1244 PR tree-optimization/79725
1245 * tree-ssa-sink.c (statement_sink_location): Return whether
1246 failure reason was zero uses. Move that check later.
1247 (sink_code_in_bb): Deal with zero uses by removing the stmt
1248 if possible.
1249
1250 2017-04-24 Richard Biener <rguenther@suse.de>
1251
1252 PR c++/2972
1253 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
1254 pointer-based references.
1255
1256 2017-04-24 Richard Biener <rguenther@suse.de>
1257
1258 PR bootstrap/79814
1259 * pass_manager.h (pass_manager::operator new): Remove.
1260 (pass_manager::operator delete): Likewise.
1261 * passes.c (pass_manager::operator new): Remove.
1262 (pass_manager::operator delete): Likewise.
1263 (pass_manager::pass_manager): Zero individual pass members.
1264
1265 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
1266
1267 PR target/70799
1268 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
1269 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
1270 Check "XEXP (src, 1)" operand here.
1271 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
1272 Check "XEXP (src, 1)" operand here.
1273 (dimode_scalar_chain::make_vector_copies): Detect count register
1274 of a shift instruction. Zero extend count register from QImode
1275 to DImode to satisfy vector shift pattern count operand predicate.
1276 Substitute vector shift count operand with a DImode copy.
1277 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
1278 vector register.
1279
1280 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
1281
1282 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
1283 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
1284 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
1285 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
1286 (UNSPEC_NOREX_MEM): Remove definition.
1287
1288 2017-04-21 Richard Biener <rguenther@suse.de>
1289
1290 PR tree-optimization/79547
1291 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1292 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
1293 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
1294 without any constraints.
1295
1296 2017-04-21 Richard Biener <rguenther@suse.de>
1297
1298 PR tree-optimization/78847
1299 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
1300
1301 2017-04-21 Richard Biener <rguenther@suse.de>
1302
1303 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
1304 (build_distinct_type_copy): Likewise.
1305 (build_variant_type_copy): Likewise.
1306 * tree.c (build_qualified_type): Pass down mem-stat info.
1307 (build_distinct_type_copy): Likewise.
1308 (build_variant_type_copy): Likewise.
1309
1310 2017-04-21 Richard Biener <rguenther@suse.de>
1311
1312 PR tree-optimization/80237
1313 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
1314 defaulted to NULL.
1315 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
1316 for a simplified result.
1317
1318 2016-04-21 Richard Biener <rguenther@suse.de>
1319
1320 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
1321 sth as strict as a simple_iv but a chrec without symbols and an
1322 operand defined in the loop we are peeling (and not some subloop).
1323 (propagate_constants_for_unrolling): Propagate all constants.
1324
1325 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
1326
1327 PR target/79804
1328 * config/i386/i386.c (print_reg): Remove assert for disalowed
1329 regno values, call output_operand_lossage instead.
1330
1331 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
1332
1333 PR target/78090
1334 * config/i386/constraints.md (Yc): New register constraint.
1335 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
1336 Use Yc constraint for alternative 2 of operand 0. Remove
1337 preferred_for_speed attribute.
1338
1339 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
1340
1341 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
1342 lastprivate clauses in SIMT case.
1343
1344 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
1345
1346 * doc/invoke.texi (-Wextra-semi): Document new warning option.
1347
1348 2017-04-20 Richard Biener <rguenther@suse.de>
1349
1350 PR tree-optimization/57796
1351 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
1352 as N scalar stores.
1353 (vect_model_load_cost): Cost gathers as N scalar loads.
1354
1355 2017-04-20 Richard Biener <rguenther@suse.de>
1356
1357 * ggc-page.c (ggc_allocated_p): Rename to ...
1358 (safe_lookup_page_table_entry): ... this and return the lookup
1359 result.
1360 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
1361
1362 2017-04-20 Richard Biener <rguenther@suse.de>
1363
1364 PR tree-optimization/80453
1365 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
1366 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
1367 from the conditions.
1368 (vn_phi_eq): Pass them down.
1369 (vn_phi_lookup): Record them.
1370 (vn_phi_insert): Likewise.
1371
1372 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
1373
1374 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
1375 uninitialized variable warning to avoid buffer overrun.
1376
1377 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
1378
1379 PR other/71250
1380 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
1381 is suppressed for '{ 0 }' in C.
1382
1383 2017-04-20 Jakub Jelinek <jakub@redhat.com>
1384
1385 * BASE-VER: Set to 8.0.0.
1386
1387 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
1388
1389 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
1390 priority .init_array and .fini_array section with SECTION_NOTYPE
1391 flag.
1392
1393 2017-04-20 Jakub Jelinek <jakub@redhat.com>
1394
1395 PR middle-end/80423
1396 * tree.h (build_array_type): Add typeless_storage default argument.
1397 * tree.c (type_cache_hasher::equal): Also compare
1398 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
1399 (build_array_type): Add typeless_storage argument, set
1400 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
1401 recursive call.
1402 (build_nonshared_array_type): Adjust build_array_type_1 caller.
1403 (build_array_type): Likewise. Add typeless_storage argument.
1404
1405 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
1406 Jakub Jelinek <jakub@redhat.com>
1407
1408 PR tree-optimization/80426
1409 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
1410 operation on symbolic operands, also compute the overflow for the
1411 invariant part when the operation degenerates into a negation.
1412
1413 2017-04-19 Jakub Jelinek <jakub@redhat.com>
1414
1415 PR debug/80461
1416 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
1417 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
1418
1419 PR debug/80436
1420 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
1421
1422 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
1423
1424 PR target/80462
1425 * config/avr/avr.c (tree.h): Include it.
1426 (cgraph.h): Include it.
1427 (avr_encode_section_info): Don't warn for uninitialized progmem
1428 variable if it's just an alias.
1429
1430 2017-04-19 Richard Biener <rguenther@suse.de>
1431
1432 PR ipa/65972
1433 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
1434 when needed by AutoPGO.
1435
1436 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
1437
1438 PR lto/50345
1439 * doc/lto.texi: Remove an extra 'that'.
1440
1441 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
1442
1443 PR rtl-optimization/80429
1444 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
1445 are only used in debug insns.
1446
1447 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
1448 Vladimir Makarov <vmakarov@redhat.com>
1449
1450 * config/sparc/predicates.md (input_operand): Add comment. Return
1451 true for any memory operand when LRA is in progress.
1452 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
1453
1454 2017-04-18 Jeff Law <law@redhat.com>
1455
1456 PR target/74563
1457 * mips.md ({return,simple_return}_internal): Do not overwrite
1458 operands[0].
1459
1460 2017-04-18 Jakub Jelinek <jakub@redhat.com>
1461
1462 PR tree-optimization/80443
1463 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
1464 instead of adding 1, subtract -1 and similarly instead of subtracting
1465 1 add -1.
1466
1467 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
1468
1469 PR rtl-optimization/80357
1470 * haifa-sched.c (tmp_bitmap): New variable.
1471 (model_recompute): Handle duplicate use records.
1472 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
1473 (free_global_sched_pressure_data): Free it.
1474
1475 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
1476
1477 Revert:
1478 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
1479 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
1480 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
1481 instead of SYSTEM_HEADER_DIR.
1482
1483 2017-04-18 Jeff Law <law@redhat.com>
1484
1485 PR middle-end/80422
1486 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
1487 predecessors after walking up the insn chain.
1488
1489 2017-04-18 Jakub Jelinek <jakub@redhat.com>
1490
1491 PR debug/80263
1492 * dwarf2out.c (modified_type_die): Try harder not to emit internal
1493 sizetype type into debug info.
1494
1495 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1496
1497 PR target/80099
1498 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
1499 unneeded test for TARGET_UPPER_REGS_SF.
1500 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
1501
1502 2017-04-18 Jakub Jelinek <jakub@redhat.com>
1503
1504 PR sanitizer/80444
1505 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
1506 instead of gsi_after_labels.
1507
1508 2017-04-18 Jeff Law <law@redhat.com>
1509
1510 * regcprop.c (maybe_mode_change): Avoid creating copies of the
1511 stack pointer.
1512
1513 Revert:
1514 2017-04-13 Jeff Law <law@redhat.com>
1515 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
1516 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
1517
1518 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
1519
1520 PR target/79453
1521 * config/avr/avr.c (intl.h): Include it.
1522 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
1523
1524 2017-04-18 Martin Liska <mliska@suse.cz>
1525
1526 PR gcov-profile/78783
1527 * gcov-tool.c (gcov_output_files): Validate that destination
1528 file is either removed by the tool or by a user.
1529
1530 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
1531 Guy Benyei <guybe@mellanox.com>
1532
1533 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
1534 block, and do not negate it, the stored id is already negative.
1535
1536 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
1537
1538 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
1539
1540 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1541
1542 PR target/80098
1543 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
1544 masks of options that should be turned off if the VSX vector
1545 options are turned off.
1546 (OTHER_P8_VECTOR_MASKS): Likewise.
1547 (OTHER_VSX_VECTOR_MASKS): Likewise.
1548 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
1549 rs6000_disable_incompatible_switches to validate no type switches
1550 like -mvsx.
1551 (rs6000_incompatible_switch): New function to disallow turning on
1552 other vector options if -mno-vsx, -mno-power8-vector, or
1553 -mno-power9-vector are specified.
1554
1555 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
1556
1557 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
1558
1559 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
1560
1561 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
1562 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
1563 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
1564 (ARG_POINTER_CFA_OFFSET): Likewise.
1565
1566 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
1567
1568 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
1569 conditions to take advantage of various optimizations.
1570
1571 2017-04-13 Jeff Law <law@redhat.com>
1572
1573 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
1574 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
1575 (zero_extendsidi2_dext): Likewise.
1576
1577 2017-04-13 Jakub Jelinek <jakub@redhat.com>
1578
1579 PR sanitizer/80403
1580 * fold-const.c (fold_ternary_loc): Revert
1581 use op0 instead of fold_convert_loc (loc, type, arg0) part of
1582 2017-04-12 change.
1583
1584 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
1585
1586 PR rtl-optimization/80343
1587 * lra-remat.c (update_scratch_ops): Assign original hard reg to
1588 new scratch pseudo.
1589
1590 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
1591
1592 PR sanitizer/80414
1593 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
1594 to ubsan_encode_value.
1595
1596 2017-04-13 Jeff Law <law@redhat.com>
1597
1598 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
1599 appearing in DEBUG_INSNs.
1600
1601 2017-04-13 Martin Liska <mliska@suse.cz>
1602
1603 PR gcov-profile/80413
1604 * gcov-io.c (gcov_write_string): Copy to buffer just when
1605 allocated size is greater than zero.
1606
1607 2017-04-13 Jakub Jelinek <jakub@redhat.com>
1608
1609 PR debug/80321
1610 * dwarf2out.c (decls_for_scope): Ignore declarations of
1611 current_function_decl in BLOCK_NONLOCALIZED_VARS.
1612
1613 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
1614
1615 PR lto/69953
1616 * ipa-visibility.c (non_local_p): Fix typos.
1617 (localize_node): When localizing symbol in same comdat group,
1618 dissolve the group only when we know external symbols are going
1619 to be privatized.
1620 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
1621
1622 2017-04-12 Jakub Jelinek <jakub@redhat.com>
1623
1624 PR tree-optimization/79390
1625 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
1626 order does not result in usable sequence, retry with reversed operand
1627 order.
1628
1629 PR sanitizer/80403
1630 PR sanitizer/80404
1631 PR sanitizer/80405
1632 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
1633 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
1634 op0 instead of fold_convert_loc (loc, type, arg0).
1635
1636 2017-04-12 Jeff Law <law@redhat.com>
1637
1638 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
1639 has a delay slot in the generated code.
1640
1641 * config/cris/cris.md (cris_preferred_reload_class): Return
1642 GENNONACR_REGS rather than GENERAL_REGS.
1643
1644 2017-04-12 Jakub Jelinek <jakub@redhat.com>
1645
1646 PR c/80163
1647 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
1648 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
1649 signedness of the result type.
1650
1651 2017-04-12 Richard Biener <rguenther@suse.de>
1652 Jeff Law <law@redhat.com>
1653
1654 PR tree-optimization/80359
1655 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
1656 trim stores to TARGET_MEM_REFs.
1657
1658 2017-04-12 Richard Biener <rguenther@suse.de>
1659
1660 PR tree-optimization/79390
1661 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
1662 threading case even more.
1663
1664 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
1665
1666 PR target/80382
1667 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
1668 for quad_address_p for TImode, instead of just not indexed_address.
1669
1670 2017-04-12 Richard Biener <rguenther@suse.de>
1671 Bernd Edlinger <bernd.edlinger@hotmail.de>
1672
1673 PR middle-end/79671
1674 * alias.c (component_uses_parent_alias_set_from): Handle
1675 TYPE_TYPELESS_STORAGE.
1676 (get_alias_set): Likewise.
1677 * tree-core.h (tree_type_common): Add typeless_storage flag.
1678 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
1679 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
1680 for types containing members with TYPE_TYPELESS_STORAGE.
1681 (place_field): Likewise.
1682 (layout_type): Likewise for ARRAY_TYPE.
1683 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
1684 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
1685 TYPE_TYPELESS_STORAGE.
1686 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
1687
1688 2017-04-12 Jakub Jelinek <jakub@redhat.com>
1689
1690 PR sanitizer/80349
1691 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
1692 first argument to type.
1693
1694 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1695
1696 PR target/80376
1697 PR target/80315
1698 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
1699 CONST0_RTX (mode) rather than const0_rtx where appropriate.
1700 (rs6000_expand_binop_builtin): Likewise.
1701 (rs6000_expand_ternop_builtin): Likewise; also add missing
1702 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
1703 vshasigma built-ins.
1704 * doc/extend.texi: Document that vec_xxpermdi's third argument
1705 must be a constant.
1706
1707 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
1708
1709 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
1710 Use shift_const cost parameter when calculating gain of STV shifts.
1711
1712 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
1713
1714 PR rtl-optimization/70478
1715 * lra-constraints.c (process_alt_operands): Check memory for
1716 disfavoring memory insn operand.
1717
1718 2017-04-11 Jakub Jelinek <jakub@redhat.com>
1719
1720 PR middle-end/80100
1721 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
1722 left shift in unsigned HOST_WIDE_INT type.
1723
1724 PR rtl-optimization/80385
1725 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
1726 (not (neg X)) into (plus X -1) for complex or non-integral modes.
1727
1728 PR libgomp/80394
1729 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
1730 if they have any depend clauses.
1731
1732 2017-04-11 Martin Liska <mliska@suse.cz>
1733
1734 PR ipa/80212
1735 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
1736 * ipa-split.c (split_function): Create a local comdat symbol
1737 if caller is in a comdat group.
1738
1739 2017-04-11 Martin Liska <mliska@suse.cz>
1740
1741 PR ipa/80212
1742 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
1743 flags.
1744
1745 2017-04-11 Martin Sebor <msebor@redhat.com>
1746
1747 PR middle-end/80364
1748 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
1749 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
1750 for INTEGER_TYPE.
1751 (directive::set_width, directive::set_precision, format_character):
1752 Adjust.
1753 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
1754 INTEGER_TYPE.
1755
1756 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
1757
1758 PR target/80389
1759 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
1760 conflict, set target->arch_name instead of target->cpu_name.
1761
1762 2017-04-11 Richard Biener <rguenther@suse.de>
1763
1764 PR tree-optimization/80374
1765 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
1766 build_zero_cst, remove fold_convertible_p check again.
1767
1768 2017-04-11 Martin Liska <mliska@suse.cz>
1769
1770 PR sanitizer/70878
1771 * ubsan.c (instrument_object_size): Do not instrument register
1772 variables.
1773
1774 2017-04-11 Jakub Jelinek <jakub@redhat.com>
1775
1776 PR target/80381
1777 * config/i386/i386-builtin-types.def
1778 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
1779 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
1780 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
1781 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
1782 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
1783 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
1784 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
1785 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
1786 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
1787 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
1788 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
1789 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
1790 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
1791 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
1792 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
1793 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
1794 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
1795 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
1796 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
1797 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
1798 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
1799 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
1800 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
1801 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
1802 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
1803 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
1804 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
1805 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
1806 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
1807 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
1808 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
1809 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
1810 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
1811 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
1812 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
1813 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
1814 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
1815 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
1816 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
1817 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
1818 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
1819 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
1820 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
1821 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
1822 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
1823 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
1824 aliases.
1825 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
1826 flag to second_arg_count, handle 4 argument function type _COUNT
1827 aliases, handle second_arg_count on second argument rather than last.
1828
1829 2017-04-10 Jeff Law <law@redhat.com>
1830
1831 PR tree-optimization/80374
1832 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
1833 record anything if we can not convert integer_zero_node to the
1834 desired type.
1835
1836 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
1837
1838 PR target/80108
1839 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1840 Enhance special handling given to the TARGET_P9_MINMAX option in
1841 relation to certain other options.
1842
1843 2017-04-10 Bin Cheng <bin.cheng@arm.com>
1844
1845 PR tree-optimization/80153
1846 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
1847 remove POINTER_PLUS_EXPR's base part directly, rather than through
1848 aff_tree.
1849
1850 2017-04-10 Richard Biener <rguenther@suse.de>
1851 Bin Cheng <bin.cheng@arm.com>
1852
1853 PR tree-optimization/80153
1854 * tree-affine.c (aff_combination_to_tree): Get base pointer from
1855 the first element of pointer type aff_tree. Build result expr in
1856 aff_tree's type.
1857 (add_elt_to_tree): Convert to type unconditionally. Remove other
1858 fold_convert calls.
1859 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
1860 (rewrite_use_nonlinear_expr): Check invariant using iv information.
1861
1862 2017-04-10 Richard Biener <rguenther@suse.de>
1863
1864 * tree-ssa-structalias.c (find_func_aliases): Properly handle
1865 asm inputs.
1866
1867 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
1868
1869 PR rtl-optimization/70478
1870 * lra-constraints.c (curr_small_class_check): New.
1871 (update_and_check_small_class_inputs): New.
1872 (process_alt_operands): Update curr_small_class_check. Disfavor
1873 alternative insn memory operands. Check available regs for small
1874 class operands.
1875
1876 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
1877
1878 PR target/80057
1879 * config/mips/mips.opt (-mvirt): Update description.
1880 * doc/invoke.texi (-mvirt): Likewise.
1881
1882 2017-04-10 Richard Biener <rguenther@suse.de>
1883
1884 PR middle-end/80362
1885 * fold-const.c (fold_binary_loc): Look at unstripped ops when
1886 looking for NEGATE_EXPR in -A / -B to A / B folding.
1887
1888 2017-04-10 Martin Liska <mliska@suse.cz>
1889
1890 PR gcov-profile/80224
1891 * gcov.c (print_usage): Fix usage string.
1892 (get_gcov_intermediate_filename): Remove.
1893 (output_gcov_file): Use both for normal and intermediate format.
1894 (generate_results): Do not initialize special file for
1895 intermediate format.
1896
1897 2017-04-10 Richard Biener <rguenther@suse.de>
1898
1899 PR tree-optimization/80304
1900 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
1901 for safelen.
1902
1903 2017-04-10 Nathan Sidwell <nathan@acm.org>
1904
1905 PR target/79905
1906 * config/rs6000/rs6000.c (rs6000_vector_type): New.
1907 (rs6000_init_builtins): Use it.
1908
1909 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1910
1911 * config/arm/arm.md (<mrc>): Add mode to SET source.
1912 (<mrrc>): Likewise.
1913
1914 2017-04-10 Richard Biener <rguenther@suse.de>
1915
1916 PR middle-end/80344
1917 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
1918
1919 2017-04-10 Jakub Jelinek <jakub@redhat.com>
1920
1921 PR target/80324
1922 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
1923 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
1924 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
1925 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
1926 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
1927 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
1928 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
1929 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
1930 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
1931 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
1932 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
1933 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
1934 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
1935 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
1936 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
1937 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
1938 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
1939 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
1940 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
1941 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
1942 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
1943 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
1944 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
1945
1946 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
1947
1948 PR rtl-optimization/70478
1949 * lra-constraints.c: Reverse the last patch.
1950
1951 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
1952
1953 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
1954 Add comment for WCHAR_T.
1955
1956 2017-04-08 Martin Liska <mliska@suse.cz>
1957
1958 Revert:
1959 2017-04-07 Martin Liska <mliska@suse.cz>
1960
1961 PR ipa/80212
1962 * ipa-split.c (split_function): Add function part to a same comdat
1963 group.
1964
1965 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1966
1967 PR target/80358
1968 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
1969
1970 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
1971
1972 * rs6000/rs6000.c (vec_load_pendulum): Rename...
1973 (vec_pairing): ...to this.
1974 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
1975 (rs6000_sched_init): Adjust for name change.
1976 (struct rs6000_sched_context): Likewise.
1977 (rs6000_init_sched_context): Likewise.
1978 (rs6000_set_sched_context): Likewise.
1979
1980 2017-04-07 Jakub Jelinek <jakub@redhat.com>
1981
1982 PR target/80322
1983 PR target/80323
1984 PR target/80325
1985 PR target/80326
1986 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
1987 intrinsics.
1988 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
1989 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
1990 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
1991
1992 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
1993
1994 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
1995
1996 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
1997
1998 PR rtl-optimization/70703
1999 * ira-color.c (update_conflict_hard_regno_costs): Use
2000 int64_t instead of HOST_WIDE_INT.
2001
2002 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
2003
2004 PR rtl-optimization/70478
2005 * lra-constraints.c (process_alt_operands): Disfavor alternative
2006 insn memory operands.
2007
2008 2017-04-07 Jeff Law <law@redhat.com>
2009
2010 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
2011 CALL and NOTE_INSN_CALL_ARG_LOCATION.
2012
2013 2017-04-07 Martin Liska <mliska@suse.cz>
2014
2015 PR target/79889
2016 * config/aarch64/aarch64.c (aarch64_process_target_attr):
2017 Show error message instead of an ICE.
2018
2019 2017-04-07 Martin Liska <mliska@suse.cz>
2020
2021 PR ipa/80212
2022 * ipa-split.c (split_function): Add function part to a same comdat
2023 group.
2024
2025 2017-04-07 Richard Biener <rguenther@suse.de>
2026
2027 PR middle-end/80341
2028 * tree.c (get_unwidened): Also handle ! for_type case for
2029 INTEGER_CSTs.
2030 * convert.c (do_narrow): Split out from ...
2031 (convert_to_integer_1): ... here. Do not pass final truncation
2032 type to get_unwidened for TRUNC_DIV_EXPR.
2033
2034 2017-04-07 Richard Biener <rguenther@suse.de>
2035
2036 * tree-affine.c (wide_int_ext_for_comb): Take type rather
2037 than aff_tree.
2038 (aff_combination_const): Adjust.
2039 (aff_combination_scale): Likewise.
2040 (aff_combination_add_elt): Likewise.
2041 (aff_combination_add_cst): Likewise.
2042 (aff_combination_convert): Likewise.
2043 (add_elt_to_tree): Likewise. Remove unused argument.
2044 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
2045
2046 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
2047
2048 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
2049 definition.
2050 * config/arm/arm.c (arm_default_short_enums): Use
2051 ARM_DEFAULT_SHORT_ENUMS.
2052 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
2053
2054 2017-04-06 Jakub Jelinek <jakub@redhat.com>
2055
2056 PR debug/80234
2057 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
2058 members with redundant out-of-class redeclaration.
2059
2060 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
2061
2062 PR target/80286
2063 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
2064 * config/i386/i386.md (*zero_extendsidi2):
2065 Add (?*x,*x) and (?*v,*v) alternatives.
2066
2067 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
2068
2069 PR target/79733
2070 * config/i386/i386.c (ix86_expand_builtin)
2071 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
2072 mode from insn data. Convert operands to insn operand mode.
2073 Copy operands that don't satisfy insn predicate to a register.
2074
2075 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
2076
2077 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
2078 Update comments.
2079
2080 2017-04-06 Richard Biener <rguenther@suse.de>
2081
2082 PR tree-optimization/80334
2083 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
2084 preserve alignment of accesses.
2085
2086 2017-04-06 Richard Biener <rguenther@suse.de>
2087
2088 PR tree-optimization/80262
2089 * tree-sra.c (build_ref_for_offset): Preserve address-space
2090 information.
2091 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
2092 Drop useless address-space information on MEM_REF offsets.
2093
2094 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
2095
2096 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
2097
2098 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
2099
2100 PR rtl-optimization/70703
2101 * ira-color.c (update_conflict_hard_regno_costs): Use
2102 HOST_WIDE_INT instead of long.
2103
2104 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
2105
2106 PR target/80298
2107 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
2108 not defined for x86_64 target. Add -mmmx target option when __SSE2__
2109 is not defined.
2110 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
2111 for x86_64 target. Handle -m3dnowa option.
2112
2113 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
2114
2115 PR rtl-optimization/70703
2116 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
2117 (update_conflict_hard_regno_costs): Use long instead of unsigned
2118 arithmetic for cost calculation.
2119
2120 2017-04-05 Jakub Jelinek <jakub@redhat.com>
2121 Bernd Edlinger <bernd.edlinger@hotmail.de>
2122
2123 PR sanitizer/80308
2124 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
2125 for big endian.
2126
2127 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
2128
2129 PR target/78002
2130 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
2131 ptr_mode with Pmode throughout.
2132 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
2133 into probe_stack_range and use DImode.
2134
2135 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
2136
2137 PR target/79890
2138 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
2139 call_eh_return is true.
2140
2141 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2142
2143 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
2144 Initialize last_match_fntype_index.
2145
2146 2017-04-05 Jakub Jelinek <jakub@redhat.com>
2147
2148 PR target/80310
2149 * tree-nvr.c: Include internal-fn.h.
2150 (pass_return_slot::execute): Ignore internal calls without
2151 direct optab.
2152
2153 2017-04-04 Jakub Jelinek <jakub@redhat.com>
2154 Richard Biener <rguenther@suse.de>
2155
2156 PR c++/80297
2157 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
2158 captures used multiple times, except for the last use.
2159 * generic-match-head.c: Include gimplify.h.
2160
2161 2017-04-04 Jakub Jelinek <jakub@redhat.com>
2162
2163 PR tree-optimization/79390
2164 * target.h (struct noce_if_info): Declare.
2165 * targhooks.h (default_noce_conversion_profitable_p): Declare.
2166 * target.def (noce_conversion_profitable_p): New target hook.
2167 * ifcvt.h (struct noce_if_info): New type, moved from ...
2168 * ifcvt.c (struct noce_if_info): ... here.
2169 (noce_conversion_profitable_p): Renamed to ...
2170 (default_noce_conversion_profitable_p): ... this. No longer
2171 static nor inline.
2172 (noce_try_store_flag_constants, noce_try_addcc,
2173 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
2174 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
2175 instead of noce_conversion_profitable_p.
2176 * config/i386/i386.c: Include ifcvt.h.
2177 (ix86_option_override_internal): Don't override
2178 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
2179 (ix86_noce_conversion_profitable_p): New function.
2180 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
2181 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
2182 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
2183 * doc/tm.texi: Regenerated.
2184
2185 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2186
2187 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
2188 correction.
2189
2190 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
2191
2192 PR target/80307
2193 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
2194 instructions for small multiply cores.
2195
2196 2017-04-04 Jeff Law <law@redhat.com>
2197
2198 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
2199 added member.
2200 (mips_expand_vec_perm_const): Initialize elements in orig_perm
2201 that are not set by the loop over the elements.
2202
2203 2017-04-04 Jakub Jelinek <jakub@redhat.com>
2204
2205 PR target/80286
2206 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
2207 int mode, convert_modes it to mode as unsigned, otherwise use
2208 lowpart_subreg to mode rather than SImode.
2209 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
2210 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
2211 Use DImode instead of SImode for the shift count operand.
2212 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
2213 Likewise.
2214
2215 2017-04-04 Richard Biener <rguenther@suse.de>
2216
2217 PR middle-end/80281
2218 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
2219 arithmetic done for the negate or the plus. Simplify.
2220 (A - (-B) -> A + B): Likewise.
2221 * fold-const.c (split_tree): Make sure to not negate pointers.
2222
2223 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
2224
2225 PR rtl-optimization/60818
2226 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
2227 a compare of comparisons with the thing compared if this results
2228 in a different machine mode.
2229
2230 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
2231
2232 * alias.c (base_alias_check): Fix typo in comment.
2233 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
2234 * cgraphunit.c (symbol_table::compile): Likewise.
2235 * collect2.c (maybe_run_lto_and_relink): Likewise.
2236 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
2237 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
2238 * config/avr/avr.c (avr_map_op_t): Likewise.
2239 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
2240 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
2241 * config/epiphany/epiphany.md (movcc): Likewise.
2242 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
2243 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
2244 Likewise.
2245 * config/mips/mips.c (mips_save_restore_reg): Likewise.
2246 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
2247 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
2248 * config/sh/sh.c (sh_rtx_costs): Likewise.
2249 * fold-const.c (fold_truth_andor): Likewise.
2250 * genautomata.c (collapse_flag): Likewise.
2251 * gengtype.h (struct type::u::s): Likewise.
2252 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
2253 * input.c (FORMAT_AMOUNT): Likewise.
2254 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
2255 (known_aggs_to_agg_replacement_list): Likewise.
2256 * ipa-inline-analysis.c: Likewise.
2257 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
2258 * ipa-polymorphic-call.c
2259 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
2260 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
2261 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
2262 Likewise.
2263 * modulo-sched.c (apply_reg_moves): Likewise.
2264 * omp-expand.c (build_omp_regions_1): Likewise.
2265 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
2266 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
2267 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
2268 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2269 * value-prof.c: Likewise.
2270 * var-tracking.c (val_reset): Likewise.
2271
2272 2017-04-03 Richard Biener <rguenther@suse.de>
2273
2274 PR tree-optimization/80275
2275 * fold-const.c (split_address_to_core_and_offset): Handle
2276 POINTER_PLUS_EXPR.
2277
2278 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
2279
2280 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
2281 descriptors is at least equal to that of functions.
2282
2283 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
2284
2285 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
2286
2287 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
2288
2289 PR target/80250
2290 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
2291 (mov<IMOD4:mode>): New expander.
2292 (*mov<IMOD4:mode>_internal): New insn and split pattern.
2293
2294 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
2295
2296 PR rtl-optimization/79405
2297 * fwprop.c (propagations_left): New variable.
2298 (forward_propagate_into): Decrement it.
2299 (fwprop_init): Initialize it.
2300 (fw_prop): If the variable has reached zero, stop propagating.
2301 (fwprop_addr): Ditto.
2302
2303 2017-03-31 Jakub Jelinek <jakub@redhat.com>
2304
2305 PR debug/79255
2306 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
2307 a FUNCTION_DECL, pass it as decl instead of origin to
2308 process_scope_var.
2309
2310 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
2311
2312 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
2313 string.
2314
2315 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
2316
2317 PR target/80107
2318 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
2319 TARGET_VSX_SMALL_INTEGER.
2320
2321 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2322
2323 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
2324 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
2325
2326 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
2327
2328 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
2329 extraction from odd-numbered MSA register.
2330
2331 2017-03-31 Jakub Jelinek <jakub@redhat.com>
2332
2333 PR middle-end/80173
2334 * expmed.c (store_bit_field_1): Don't attempt to create
2335 a word subreg out of hard registers wider than word if they
2336 have HARD_REGNO_NREGS of 1 for their mode.
2337
2338 PR middle-end/80163
2339 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
2340 conversions to integer types wider than word and pointer.
2341
2342 PR debug/80025
2343 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
2344 (rtx_equal_for_cselib_p): Pass 0 to it.
2345 * cselib.c (cselib_hasher::equal): Likewise.
2346 (rtx_equal_for_cselib_1): Add depth argument. If depth
2347 is 128, don't look up VALUE locs and punt. Increment
2348 depth in recursive calls when walking VALUE locs.
2349
2350 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
2351
2352 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
2353 (make_gcov_file_name): Use the canonical path name for generating
2354 the MD5 value.
2355 (read_line): Fix handling of files with ascii null bytes.
2356
2357 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
2358
2359 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
2360 to initialise a vector register instead
2361 of using a const_int.
2362
2363 2017-03-30 Jakub Jelinek <jakub@redhat.com>
2364
2365 PR translation/80189
2366 * gimplify.c (omp_default_clause): Use %qs instead of %s in
2367 diagnostic messages.
2368
2369 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
2370
2371 PR target/80246
2372 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
2373 (dfp_diex_<mode>): Update mode of operand 1.
2374 * doc/extend.texi (dxex, dxexq): Document change to return type.
2375 (diex, diexq): Document change to argument type.
2376
2377 2017-03-30 Martin Jambor <mjambor@suse.cz>
2378
2379 PR ipa/77333
2380 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
2381 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
2382 it reflects the signature changes performed at the callee side.
2383 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
2384 to cgraph_build_function_type_skip_args.
2385 (build_function_decl_skip_args): Adjust call to the above function.
2386
2387 2017-03-30 Jakub Jelinek <jakub@redhat.com>
2388
2389 PR target/80206
2390 * config/i386/sse.md
2391 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
2392 register as dest whenever it is a MEM not rtx_equal_p to the
2393 corresponding dup operand, and when forcing into reg move the
2394 reg into the memory afterwards.
2395 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
2396 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
2397 for the force_reg mode.
2398 (avx512vl_vextractf128<mode>): Use register as dest either
2399 always when a MEM, or when it is a MEM not rtx_equal_p to the
2400 corresponding dup operand, or even not when it is a CONST_VECTOR
2401 depending on the mode and lo vs. hi.
2402 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
2403 parens.
2404 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
2405 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
2406 Likewise. Require that operands[2] is even.
2407 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
2408 Remove extraneous parens. Require that operands[2] is a multiple
2409 of 4.
2410 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
2411 operands[0] is a MEM if <mask_applied>, the predicates/constraints
2412 disallow memory then.
2413
2414 2017-03-30 Richard Biener <rguenther@suse.de>
2415
2416 PR tree-optimization/77498
2417 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
2418 to non-constants over backedges.
2419
2420 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
2421
2422 PR rtl-optimization/80233
2423 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
2424 as last_combined_insn. Do not test for BARRIER_P separately.
2425
2426 2017-03-29 Andreas Schwab <schwab@suse.de>
2427
2428 PR ada/80146
2429 * calls.c (prepare_call_address): Convert funexp to Pmode before
2430 copying to temp reg.
2431
2432 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2433
2434 PR tree-optimization/80158
2435 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
2436 Handle possible future case of more than one alternate
2437 interpretation.
2438 (replace_rhs_if_not_dup): Likewise.
2439 (replace_one_candidate): Likewise.
2440
2441 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
2442
2443 PR rtl-optimization/80193
2444 * ira.c (ira): Do not check allocation for LRA.
2445
2446 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
2447
2448 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
2449 (nvptx_output_simt_exit): Declare.
2450 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
2451 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
2452 (init_softstack_frame): Move initialization of crtl->is_leaf to...
2453 (nvptx_declare_function_name): ...here. Emit declaration of local
2454 memory space buffer for omp_simt_enter insn.
2455 (nvptx_output_unisimt_switch): New.
2456 (nvptx_output_softstack_switch): New.
2457 (nvptx_output_simt_enter): New.
2458 (nvptx_output_simt_exit): New.
2459 * config/nvptx/nvptx.h (struct machine_function): New fields
2460 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
2461 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
2462 (UNSPECV_SIMT_EXIT): Ditto.
2463 (omp_simt_enter_insn): New insn.
2464 (omp_simt_enter): New expansion.
2465 (omp_simt_exit): New insn.
2466 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
2467
2468 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
2469 (expand_GOMP_SIMT_ENTER_ALLOC): New.
2470 (expand_GOMP_SIMT_EXIT): New.
2471 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
2472 (GOMP_SIMT_ENTER_ALLOC): Ditto.
2473 (GOMP_SIMT_EXIT): Ditto.
2474 * target-insns.def (omp_simt_enter): New insn.
2475 (omp_simt_exit): Ditto.
2476 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
2477 simt_dlist.
2478 (lower_rec_simd_input_clauses): Implement SIMT privatization.
2479 (lower_rec_input_clauses): Likewise.
2480 (lower_lastprivate_clauses): Handle SIMT privatization.
2481
2482 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
2483 (ompdevlow_adjust_simt_enter): New.
2484 (find_simtpriv_var_op): New.
2485 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
2486 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
2487
2488 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
2489 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
2490 (copy_decl_for_dup_finish): Ditto.
2491
2492 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
2493
2494 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
2495
2496 PR target/53383
2497 * config/i386/i386.c (ix86_option_override_internal): Always
2498 allow -mpreferred-stack-boundary=3 for 64-bit targets.
2499
2500 2017-03-28 Bin Cheng <bin.cheng@arm.com>
2501
2502 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
2503
2504 2017-03-28 Bin Cheng <bin.cheng@arm.com>
2505
2506 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
2507 mark new edge's irreducible flag accordign to it.
2508 (vect_do_peeling): Check loop preheader edge's irreducible flag
2509 and pass it to function slpeel_add_loop_guard.
2510
2511 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
2512
2513 PR tree-optimization/80218
2514 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
2515 Update block frequencies and counts.
2516
2517 2017-03-28 Richard Biener <rguenther@suse.de>
2518
2519 PR tree-optimization/78644
2520 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
2521 of a simplification result we may not use it at all.
2522
2523 2017-03-28 Richard Biener <rguenther@suse.de>
2524
2525 PR ipa/80205
2526 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
2527 without arguments, generate default definition of a SSA name.
2528
2529 2017-03-28 Richard Biener <rguenther@suse.de>
2530
2531 PR middle-end/80222
2532 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
2533 TYPE_REF_CAN_ALIAS_ALL references.
2534 * fold-const.c (fold_indirect_ref_1): Likewise.
2535
2536 2017-03-28 Martin Liska <mliska@suse.cz>
2537
2538 PR ipa/80104
2539 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
2540 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
2541
2542 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
2543 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2544
2545 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
2546 (EXTRA_SPECS): Define.
2547 (SUBTARGET_EXTRA_SPECS): Likewise.
2548 (SUBTARGET_CPP_SPEC): Likewise.
2549 * config/arc/elf.h (EXTRA_SPECS): Renamed to
2550 SUBTARGET_EXTRA_SPECS.
2551 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
2552
2553 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
2554
2555 * config/arc/simdext.md (vst64_insn): Update pattern.
2556 (vld32wh_insn): Likewise.
2557 (vld32wl_insn): Likewise.
2558 (vld64_insn): Likewise.
2559 (vld32_insn): Likewise.
2560
2561 2017-03-28 Marek Polacek <polacek@redhat.com>
2562
2563 PR sanitizer/80067
2564 * fold-const.c (fold_comparison): Use protected_set_expr_location
2565 instead of SET_EXPR_LOCATION.
2566
2567 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
2568
2569 * tree.c (add_expr): Avoid name lookup warning.
2570
2571 2017-03-27 Jeff Law <law@redhat.com>
2572
2573 PR tree-optimization/80216
2574 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
2575 function name. Limit recursion depth.
2576 (record_temporary_equivalences): Corresponding changes.
2577
2578 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
2579
2580 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
2581 covered first.
2582
2583 2017-03-27 Jakub Jelinek <jakub@redhat.com>
2584
2585 PR target/80102
2586 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
2587 notes.
2588 * cfgcleanup.c (reg_note_cfa_p): New array.
2589 (insns_have_identical_cfa_notes): New function.
2590 (old_insns_match_p): Don't cross-jump in between /f
2591 and non-/f instructions. If both i1 and i2 are frame related,
2592 verify all CFA notes, their order and content.
2593
2594 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2595
2596 PR target/78543
2597 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
2598 HImode and SImode with zero extend to DImode to one insn.
2599 (bswap<mode>2_extenddi): Likewise.
2600 (bswapsi2_extenddi): Likewise.
2601 (bswaphi2_extendsi): Likewise.
2602 (bswaphi2): Combine bswap HImode and SImode into one insn.
2603 Separate memory insns from swapping register.
2604 (bswapsi2): Likewise.
2605 (bswap<mode>2): Likewise.
2606 (bswaphi2_internal): Delete, no longer used.
2607 (bswapsi2_internal): Likewise.
2608 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
2609 store, and gpr<-gpr swap insns.
2610 (bswap<mode>2_store): Likewise.
2611 (bswaphi2_reg): Register only splitter, combine with the splitter.
2612 (bswaphi2 splitter): Likewise.
2613 (bswapsi2_reg): Likewise.
2614 (bswapsi2 splitter): Likewise.
2615 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
2616 the insns into load, store, and register/register insns.
2617 (bswapdi2_ldbrx): Likewise.
2618 (bswapdi2_load): Likewise.
2619 (bswapdi2_store): Likewise.
2620 (bswapdi2_reg): Likewise.
2621
2622 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
2623
2624 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
2625 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
2626
2627 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
2628
2629 PR target/80103
2630 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
2631 add comments.
2632 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2633 special handling for target option conflicts between dform
2634 options (-mpower9-dform, -mpower9-dform-vector,
2635 -mpower9-dform-scalar) and -mno-direct-move.
2636
2637 2017-03-27 Richard Biener <rguenther@suse.de>
2638
2639 PR tree-optimization/80181
2640 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
2641
2642 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
2643
2644 * config/arc/predicates.md (move_double_src_operand): Replace the
2645 call to move_double_src_operand with a call to address_operand.
2646
2647 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
2648
2649 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
2650 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
2651 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
2652
2653 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
2654
2655 * config/arc/predicates.md (long_immediate_loadstore_operand):
2656 Consider scaled addresses cases.
2657
2658 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
2659
2660 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
2661 restored when in interrupt.
2662 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
2663 doesn't have delay slot.
2664
2665 2017-03-27 Richard Biener <rguenther@suse.de>
2666
2667 PR ipa/79776
2668 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
2669 inlined thunk clones.
2670
2671 2017-03-27 Jakub Jelinek <jakub@redhat.com>
2672
2673 PR sanitizer/80168
2674 * asan.c (instrument_derefs): Copy over last operand from
2675 original COMPONENT_REF to the new COMPONENT_REF with
2676 DECL_BIT_FIELD_REPRESENTATIVE.
2677 * ubsan.c (instrument_object_size): Likewise.
2678
2679 2017-03-27 Richard Biener <rguenther@suse.de>
2680
2681 PR tree-optimization/80170
2682 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
2683 sure DR/SCEV didnt fold in constants we do not see when looking
2684 at the reference base alignment.
2685
2686 2017-03-27 Richard Biener <rguenther@suse.de>
2687
2688 PR middle-end/80171
2689 * gimple-fold.c (fold_ctor_reference): Properly guard against
2690 NULL return value from canonicalize_constructor_val.
2691
2692 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
2693
2694 PR target/80180
2695 * config/i386/i386.c (ix86_expand_builtin)
2696 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
2697 flags reg setting and flags reg using instructions.
2698 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
2699 clobbering instructions to zero extend op2.
2700
2701 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
2702
2703 * doc/install.texi (Configuration) <--with-aix-soname>:
2704 Update link to AIX ld.
2705
2706 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
2707
2708 PR rtl-optimization/80160
2709 PR rtl-optimization/80159
2710 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
2711 reg_alternate_class into account.
2712
2713 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
2714
2715 PR target/80148
2716 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
2717 to consider in curr_insn_transform.
2718
2719 2017-03-24 Jakub Jelinek <jakub@redhat.com>
2720
2721 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
2722 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
2723 and emit_mode_inner.
2724
2725 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2726
2727 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
2728 argument to the overloaded builtin variants. Use the new flag to
2729 deprecate certain builtin variants.
2730 * config/s390/s390-builtin-types.def: Add new builtin types.
2731 * config/s390/s390-builtins.h: Support new flags field for
2732 overloaded builtins.
2733 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
2734 (s390_macro_to_expand): Enable vector float data type.
2735 (s390_cpu_cpp_builtins_internal): Indicate support of the new
2736 builtins by incrementing the __VEC__ version number.
2737 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
2738 vec_xst.
2739 (s390_resolve_overloaded_builtin): Emit error messages depending
2740 on the builtin flags.
2741 * config/s390/s390.c (s390_expand_builtin): Support additional
2742 flags argument. Change error message to match the messages
2743 emitted in s390-c.c.
2744 * config/s390/s390.md: New UNSPEC_* constants.
2745 (op_type): Add new instruction types.
2746 * config/s390/vecintrin.h: Add new builtins and test data class
2747 constants.
2748 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
2749 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
2750 (VEC_INEXACT, VEC_NOINEXACT): New constants.
2751 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
2752 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
2753 ("vec_mergel<mode>"): V_HW -> VEC_HW.
2754
2755 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
2756 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
2757 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
2758 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
2759
2760 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
2761 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
2762 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
2763 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
2764
2765 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
2766 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
2767 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
2768 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
2769 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
2770 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
2771 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
2772
2773 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
2774 ("vec_scatter_element<V_HW_4:mode>_DI")
2775 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
2776 ("vec_fpint<mode>", "vflls")
2777 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
2778 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
2779 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
2780 ("*vec_cmphe<mode>_cc"): ... these.
2781
2782 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
2783 mode constant instead of magic value.
2784
2785 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2786
2787 * config/s390/s390.c (s390_expand_vec_compare): Support other
2788 vector floating point modes than just V2DF.
2789 (s390_expand_vcond): Likewise.
2790 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
2791 (s390_cannot_change_mode_class): Prevent mode changes between TF
2792 and V1TF in vector registers.
2793 * config/s390/s390.md (DF, SF): New mode attributes.
2794 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
2795 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
2796 SFmode support for VRs.
2797 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
2798 vector fp modes.
2799 (VFT, VF_HW): New mode iterators.
2800 (vw, sdx): New mode attributes.
2801 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
2802 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
2803 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
2804 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
2805 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
2806 also the new vector floating point modes. Renaming to ...
2807
2808 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
2809 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
2810 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
2811 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
2812 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
2813 ("vec_unordered<mode>"): ... these.
2814
2815 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
2816 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
2817 ("*vec_extendv2df"): New insn definitions.
2818
2819 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2820
2821 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
2822 ("mulditi3_2", "*muldi3_sign"): New patterns.
2823 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
2824 rename the pattern definition.
2825
2826 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2827
2828 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
2829 expander.
2830 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
2831
2832 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2833
2834 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
2835 instruction if possible.
2836 * config/s390/vector.md (vec_halfnumelts): New mode
2837 attribute.
2838 ("*vec_vllezlf<mode>"): New pattern.
2839
2840 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2841
2842 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
2843 ("popcountv4si2", "popcountv2di2"): Rename to ...
2844 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
2845 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
2846 condition.
2847 ("popcount<mode>2_vxe"): New pattern.
2848
2849 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2850
2851 * common/config/s390/s390-common.c (processor_flags_table): Add
2852 arch12.
2853 * config.gcc: Add arch12.
2854 * config/s390/driver-native.c (s390_host_detect_local_cpu):
2855 Default to arch12 for unknown CPU model numbers.
2856 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
2857 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
2858 PROCESSOR_max sanity check.
2859 * config/s390/s390-opts.h (enum processor_type): Add
2860 PROCESSOR_ARCH12.
2861 * config/s390/s390.c (processor_table): Add arch12.
2862 (s390_expand_builtin): Add check for B_VXE flag.
2863 (s390_issue_rate): Add PROCESSOR_ARCH12.
2864 (s390_get_sched_attrmask): Likewise.
2865 (s390_get_unit_mask): Likewise.
2866 (s390_sched_score): Enable z13 scheduling for arch12.
2867 (s390_sched_reorder): Likewise.
2868 (s390_sched_variable_issue): Likewise.
2869 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
2870 PF_VXE.
2871 (s390_tune_attr): Use z13 scheduling also for arch12.
2872 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
2873 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
2874 (TARGET_VXE_P): New macros.
2875 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
2876 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
2877 * config/s390/s390.opt: Add arch12 as processor_type.
2878
2879 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2880
2881 * config/s390/s390.md
2882 ("fixuns_truncdddi2", "fixuns_trunctddi2")
2883 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
2884 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
2885
2886 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
2887 Rename expanders to ...
2888
2889 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
2890 ("fixuns_truncdddi2_emu"): ... these.
2891
2892 ("fixuns_trunc<mode>si2_emu"): New expander.
2893
2894 ("*fixuns_truncdfdi2_z13"): Rename to ...
2895 ("*fixuns_truncdfdi2_vx"): ... this.
2896
2897 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2898
2899 * config/s390/2964.md: Remove the single element vector compare
2900 instructions which are no longer used.
2901 * config/s390/s390.c (s390_select_ccmode): Remove handling of
2902 vector CCmodes.
2903 (s390_canonicalize_comparison): Remove handling of DFmode
2904 compares.
2905 (s390_expand_vec_compare_scalar): Remove function.
2906 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
2907 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
2908 pattern.
2909 ("*cmp<mode>_ccs"): Add wfcdb instruction.
2910
2911 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2912
2913 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
2914 FP zero.
2915 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
2916 will anyway by matched by mov<mode>_64dfp.
2917
2918 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2919
2920 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
2921 vlef/vstef. Add missing operand to vleif.
2922
2923 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2924
2925 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
2926 pair for all vector types with 64 bit elements.
2927 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
2928 * config/s390/vector.md (V_HW_64): ... here.
2929 (V_128_NOSINGLE): New mode iterator.
2930 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
2931 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
2932 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
2933 ("*vec_load_pairv2di"): Change to ...
2934 ("*vec_load_pair<mode>"): ... this one.
2935
2936 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2937
2938 * config/s390/constraints.md: Add comments.
2939 (jKK): Reject element sizes > 8 bytes.
2940 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
2941 s_operands.
2942 * config/s390/s390.md: Add the s_operand checks formerly in
2943 s390_split_ok_p to various splitters where they are still
2944 required.
2945 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
2946 for 128 bit vectors. Plus two splitters.
2947
2948 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2949
2950 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
2951 the file.
2952
2953 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2954
2955 PR target/79893
2956 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
2957 error if the boundary argument is not constant.
2958
2959 2017-03-24 Jakub Jelinek <jakub@redhat.com>
2960
2961 PR rtl-optimization/80112
2962 * loop-doloop.c (doloop_condition_get): Don't check condition
2963 if cmp isn't SET with IF_THEN_ELSE src.
2964
2965 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2966
2967 PR tree-optimization/80158
2968 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
2969 replacing a candidate statement, also replace it for the
2970 candidate's alternate interpretation.
2971 (replace_rhs_if_not_dup): Likewise.
2972 (replace_one_candidate): Likewise.
2973
2974 2017-03-24 Richard Biener <rguenther@suse.de>
2975
2976 PR tree-optimization/80167
2977 * graphite-isl-ast-to-gimple.c
2978 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
2979 properly.
2980 (translate_isl_ast_to_gimple::get_rename): Likewise.
2981
2982 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
2983
2984 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
2985 handling of certain combinations of target options, including the
2986 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
2987 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
2988
2989 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2990
2991 PR target/71436
2992 * config/arm/arm.md (*load_multiple): Add reload_completed to
2993 matching condition.
2994
2995 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2996 Richard Biener <rguenth@suse.de>
2997
2998 PR tree-optimization/79908
2999 PR tree-optimization/80136
3000 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
3001 been cast away, gimplify_and_add suffices.
3002
3003 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
3004
3005 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
3006
3007 2017-03-23 Richard Biener <rguenther@suse.de>
3008
3009 PR tree-optimization/80032
3010 * gimplify.c (gimple_push_cleanup): Forced unconditional
3011 cleanups still have to go to the conditional_cleanups
3012 sequence.
3013
3014 2017-03-22 Jakub Jelinek <jakub@redhat.com>
3015
3016 PR tree-optimization/80072
3017 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
3018 to unsigned int.
3019 (next_operand_entry_id): Change type to unsigned int.
3020 (sort_by_operand_rank): Make sure to return the right return value
3021 even if unsigned fields are bigger than INT_MAX.
3022 (struct oecount): Change cnt and id type to unsigned int.
3023 (oecount_hasher::equal): Formatting fix.
3024 (oecount_cmp): Make sure to return the right return value
3025 even if unsigned fields are bigger than INT_MAX.
3026 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
3027
3028 PR c++/80129
3029 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
3030 TREE_READONLY on result if writing it more than once.
3031
3032 PR sanitizer/80110
3033 * doc/invoke.texi (-fsanitize=thread): Document that with
3034 -fnon-call-exceptions atomics are not able to throw
3035 exceptions.
3036
3037 PR sanitizer/80110
3038 * tsan.c: Include tree-eh.h.
3039 (instrument_builtin_call): Call maybe_clean_eh_stmt or
3040 maybe_clean_or_replace_eh_stmt where needed.
3041 (instrument_memory_accesses): Add cfg_changed argument.
3042 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
3043 if it returned true.
3044 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
3045
3046 PR rtl-optimization/63191
3047 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
3048 wrapper function, moved the whole old content into ...
3049 (ix86_delegitimize_address_1): ... this. New inline function.
3050 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
3051 true as last argument instead of ix86_delegitimize_address.
3052
3053 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
3054
3055 * config/aarch64/aarch64.c (generic_branch_cost): Copy
3056 cortexa57_branch_cost.
3057
3058 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
3059
3060 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
3061
3062 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3063
3064 PR target/80123
3065 * doc/md.texi (Constraints): Document wA constraint.
3066 * config/rs6000/constraints.md (wA): New.
3067 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
3068 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
3069 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
3070 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
3071
3072 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
3073
3074 PR c++/80029
3075 * gimplify.c (is_oacc_declared): New function.
3076 (oacc_default_clause): Use it to set default flags for acc declared
3077 variables inside parallel regions.
3078 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
3079 declared variables.
3080 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
3081 declare attribute to any decl as necessary.
3082
3083 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
3084
3085 PR target/80082
3086 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
3087 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
3088 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
3089 (arm_arch_lpae): This.
3090 * config/arm/arm.c (arm_arch7ve): Rename into ...
3091 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
3092 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
3093 arm_arch_lpae.
3094
3095 2017-03-22 Martin Liska <mliska@suse.cz>
3096
3097 PR target/79906
3098 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
3099 error message instead of an ICE.
3100
3101 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3102
3103 * doc/extend.texi (6.11 Additional Floating Types): Revise.
3104
3105 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
3106
3107 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
3108 comments.
3109 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3110 comments.
3111
3112 2017-03-21 Martin Sebor <msebor@redhat.com>
3113
3114 * doc/extend.texi: Use "cannot" instead of "can't."
3115 * doc/hostconfig.texi: Same.
3116 * doc/install.texi: Same.
3117 * doc/invoke.texi: Same.
3118 * doc/loop.texi: Same.
3119 * doc/md.texi: Same.
3120 * doc/objc.texi: Same.
3121 * doc/rtl.texi: Same.
3122 * doc/tm.texi: Same.
3123 * doc/tm.texi.in: Same.
3124 * doc/trouble.texi: Same.
3125
3126 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
3127
3128 PR debug/63238
3129 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
3130 (collect_checksum_attributes): Set it.
3131 (die_checksum_ordered): Use it.
3132
3133 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3134
3135 PR tree-optimization/79908
3136 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
3137 change: For a VA_ARG whose LHS has been cast away, use
3138 force_gimple_operand to construct the side effects.
3139
3140 2017-03-21 David Malcolm <dmalcolm@redhat.com>
3141
3142 PR translation/80001
3143 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
3144 more amenable to translation.
3145 (oacc_loop_auto_partitions): Likewise.
3146
3147 2017-03-21 Marek Polacek <polacek@redhat.com>
3148 Martin Sebor <msebor@redhat.com>
3149
3150 PR tree-optimization/80109
3151 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
3152 on INTEGRAL_TYPE_P.
3153
3154 2017-03-21 Jakub Jelinek <jakub@redhat.com>
3155 Segher Boessenkool <segher@kernel.crashing.org>
3156
3157 PR target/80125
3158 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
3159 check reg_used_between_p between insn and one of succ or succ2
3160 depending on if succ is artificial insn not inserted into insn
3161 stream.
3162
3163 2017-03-21 Martin Liska <mliska@suse.cz>
3164
3165 PR gcov-profile/80081
3166 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
3167 * doc/gcc.texi: Include gcov-dump stuff.
3168 * doc/gcov-dump.texi: New file.
3169
3170 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
3171
3172 PR rtl-optimization/79150
3173 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
3174 conditional jump, if the jump is the last insn of the loop.
3175
3176 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3177 Richard Biener <rguenth@suse.de>
3178
3179 PR tree-optimization/79908
3180 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
3181 been cast away, use force_gimple_operand to construct the side
3182 effects.
3183
3184 2017-03-21 Martin Liska <mliska@suse.cz>
3185
3186 PR libfortran/79956
3187 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
3188 to NULL.
3189
3190 2017-03-21 Brad Spengler <spender@grsecurity.net>
3191
3192 PR plugins/80094
3193 * plugin.c (htab_hash_plugin): New function.
3194 (add_new_plugin): Use it and adjust.
3195 (parse_plugin_arg_opt): Adjust.
3196 (init_one_plugin): Likewise.
3197
3198 2017-03-21 Richard Biener <rguenther@suse.de>
3199
3200 PR tree-optimization/80032
3201 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
3202 if set force the cleanup to happen unconditionally.
3203 (gimplify_target_expr): Push inserted clobbers with force_uncond
3204 to avoid them being removed by control-dependent DCE.
3205
3206 2017-03-21 Richard Biener <rguenther@suse.de>
3207
3208 PR tree-optimization/80122
3209 * tree-inline.c (copy_bb): Do not expans va-arg packs or
3210 va_arg_pack_len when the inlined call stmt requires pack
3211 expansion itself.
3212 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
3213
3214 2017-03-21 Jakub Jelinek <jakub@redhat.com>
3215
3216 PR sanitizer/78158
3217 * tsan.c (instrument_builtin_call): If the memory model argument
3218 is not a constant, assume it is valid.
3219
3220 PR c/67338
3221 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
3222 avoid UB.
3223
3224 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
3225
3226 PR rtl-optimization/79910
3227 * combine.c (can_combine_p): Do not allow combining an I0 or I1
3228 if its dest is used by an insn before I2 (other than the combined
3229 insns themselves, which are properly handled already).
3230
3231 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
3232
3233 Revert:
3234 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
3235
3236 * combine.c (record_used_regs): New static function.
3237 (try_combine): Handle situations where there is an additional
3238 instruction between I2 and I3 which needs to have a LOG_LINK
3239 updated.
3240
3241 Revert:
3242 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
3243
3244 * combine.c (try_combine): Delete redundant i1 test. Call
3245 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
3246
3247 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3248
3249 PR target/80083
3250 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
3251 alternatives 13/14.
3252
3253 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3254
3255 PR tree-optimization/80054
3256 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
3257 the optimization if a PHI or any of its arguments is not dominated
3258 by the candidate's basis. Use gphi* rather than gimple* as
3259 appropriate.
3260 (replace_profitable_candidates): Clean up a gimple* variable that
3261 should be a gphi* variable.
3262
3263 2017-03-20 Martin Sebor <msebor@redhat.com>
3264
3265 PR c++/52477
3266 * doc/extend.texi (attribute constructor): Document present limitation.
3267
3268 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
3269
3270 PR target/79963
3271 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
3272 __POWER9_VECTOR__ #ifdef control, change template definition to
3273 use Power9-specific built-in function.
3274 (vec_any_eq): Likewise.
3275 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
3276 to control outcomes from this test.
3277 (vector_ae_<mode>p): For VEC_F modes, likewise.
3278
3279 2017-03-20 Ian Lance Taylor <iant@google.com>
3280
3281 * config/i386/i386.c (ix86_function_regparm): Save an extra
3282 register for -fsplit-stack with DECL_STATIC_CHAIN.
3283
3284 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
3285
3286 PR target/79912
3287 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
3288 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
3289
3290 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
3291
3292 * config/riscv/riscv.c (riscv_print_operand): Use "fence
3293 iorw,ow".
3294 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
3295 iorw,iorw".
3296
3297 2017-03-20 Marek Polacek <polacek@redhat.com>
3298
3299 PR sanitizer/80063
3300 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
3301
3302 2017-03-20 Richard Biener <rguenther@suse.de>
3303
3304 PR tree-optimization/80113
3305 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
3306 allocate extra SSA name for PHI def.
3307 (add_close_phis_to_outer_loops): Likewise.
3308 (add_close_phis_to_merge_points): Likewise.
3309 (copy_loop_close_phi_args): Likewise.
3310 (copy_cond_phi_nodes): Likewise.
3311
3312 2017-03-20 Martin Liska <mliska@suse.cz>
3313
3314 PR middle-end/79753
3315 * tree-chkp.c (chkp_build_returned_bound): Do not build
3316 returned bounds for a LHS that's not a BOUNDED_P type.
3317
3318 2017-03-20 Martin Liska <mliska@suse.cz>
3319
3320 PR target/79769
3321 PR target/79770
3322 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
3323 COMPLEX_CST and VECTOR_CST.
3324
3325 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3326
3327 PR target/78857
3328 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
3329 target operand. A new splitter adds the clobber statement in case
3330 the target operand is dead anyway.
3331
3332 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
3333
3334 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
3335 to age-old versions of binutils and glibc.
3336
3337 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
3338
3339 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
3340
3341 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
3342
3343 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
3344
3345 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
3346
3347 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
3348 requirement for binutils 2.13.
3349
3350 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
3351
3352 * combine.c (try_combine): Delete redundant i1 test. Call
3353 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
3354
3355 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
3356
3357 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
3358 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
3359 contents.
3360 <riscv64-*-elf>: Re-arrange section
3361 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
3362 <riscv32-*-linux>: Likewise.
3363 <riscv64-*-elf>: Likewise
3364 <riscv64-*-linux>: Likewise.
3365
3366 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
3367
3368 PR target/80052
3369 * aarch64.opt(verbose-cost-dump): Fix typo.
3370
3371 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
3372
3373 PR target/79951
3374 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
3375 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
3376
3377 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
3378
3379 * reload.c (find_reloads): When reloading a nonoffsettable address,
3380 use RELOAD_OTHER for it and its address reloads.
3381
3382 PR rtl-optimization/79910
3383 * combine.c (record_used_regs): New static function.
3384 (try_combine): Handle situations where there is an additional
3385 instruction between I2 and I3 which needs to have a LOG_LINK
3386 updated.
3387
3388 2017-03-17 Jeff Law <law@redhat.com>
3389
3390 PR tree-optimization/71437
3391 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
3392 conditional in the hash table first.
3393 (vrp_dom_walker::before_dom_children): Extract condition from
3394 ASSERT_EXPR. Record condition, its inverion and any implied
3395 conditions as well.
3396
3397 2017-03-17 Marek Polacek <polacek@redhat.com>
3398 Markus Trippelsdorf <markus@trippelsdorf.de>
3399
3400 PR tree-optimization/80079
3401 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
3402 m_stores_head.
3403
3404 2017-03-17 Richard Biener <rguenther@suse.de>
3405
3406 PR middle-end/80075
3407 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
3408 Properly verify the LHS before the RHS possibly claims to be
3409 handled.
3410 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
3411 do not throw.
3412
3413 2017-03-17 Martin Jambor <mjambor@suse.cz>
3414
3415 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
3416 (List of -O2 options): Likewise.
3417 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
3418 (-fipa-vrp) New.
3419
3420 2017-03-17 Tom de Vries <tom@codesourcery.com>
3421
3422 * gcov-dump.c (print_usage): Print bug_report_url.
3423
3424 2017-03-17 Richard Biener <rguenther@suse.de>
3425
3426 PR middle-end/80050
3427 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
3428 (parser::peek): Likewise.
3429
3430 2017-03-17 Richard Biener <rguenther@suse.de>
3431
3432 PR tree-optimization/80048
3433 * sese.c (free_sese_info): Properly release rename_map and
3434 copied_bb_map elements.
3435
3436 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
3437
3438 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
3439 Add linked-list forward and backlinks. Insert on
3440 construction, remove on destruction.
3441 (class pass_store_merging): Add m_stores_head field.
3442 (pass_store_merging::terminate_and_process_all_chains):
3443 Iterate over m_stores_head list.
3444 (pass_store_merging::terminate_all_aliasing_chains):
3445 Likewise.
3446 (pass_store_merging::execute): Check for debug stmts first.
3447 Push new chains onto the m_stores_head stack.
3448
3449 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
3450
3451 PR target/71294
3452 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
3453 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
3454 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
3455
3456 2017-03-16 Jeff Law <law@redhat.com>
3457
3458 PR tree-optimization/71437
3459 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
3460 member function. Implementation moved into after_dom_children
3461 member function and into the threader's thread_outgoing_edges
3462 function.
3463 (dom_opt_dom_walker::after_dom_children): Simplify by moving
3464 some code into new thread_outgoing_edges.
3465 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
3466 definition. Simplify marker handling (do it here). Assume we always
3467 have the available expression and the const/copies tables.
3468 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
3469 and tree-vrp.c
3470 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
3471 * tree-vrp.c (equiv_stack): No longer file scoped.
3472 (vrp_dom_walker): New class.
3473 (vrp_dom_walker::before_dom_children): New member function.
3474 (vrp_dom_walker::after_dom_children): Likewise.
3475 (identify_jump_threads): Setup domwalker. Use it rather than
3476 walking edges in a random order by hand. Simplify setup/finalization.
3477 (finalize_jump_threads): Remove.
3478 (vrp_finalize): Do not call identify_jump_threads here.
3479 (execute_vrp): Do it here instead and call thread_through_all_blocks
3480 here too.
3481
3482 PR tree-optimization/71437
3483 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
3484 callers changed.
3485 (simplify_stmt_for_jump_threading): Add basic_block argument. All
3486 callers changed.
3487 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
3488 (dom_opt_dom_walker::thread_across_edge): Remove
3489 handle_dominating_asserts argument. All callers changed.
3490 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
3491 changes. Remove calls to lhs_of_dominating_assert. Other
3492 uses of handle_dominating_asserts turn into unconditional code
3493 (simplify_control_stmt_condition_1): Likewise.
3494 (simplify_control_stmt_condition): Likewise.
3495 (thread_through_normal_block, thread_across_edge): Likewise.
3496 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
3497 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
3498 object if it is not an SSA_NAME.
3499 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
3500 before calling into the VRP specific simplifiers.
3501 (identify_jump_threads): Remove handle_dominating_asserts
3502 argument.
3503
3504 2017-03-16 Jakub Jelinek <jakub@redhat.com>
3505
3506 PR fortran/79886
3507 * tree-diagnostic.c (default_tree_printer): No longer static.
3508 * tree-diagnostic.h (default_tree_printer): New prototype.
3509
3510 2017-03-16 Tamar Christina <tamar.christina@arm.com>
3511
3512 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
3513 Change ins into fmov.
3514
3515 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3516
3517 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
3518 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
3519 Use h_con constraint for operand 1.
3520 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
3521 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
3522
3523 2017-03-15 Jeff Law <law@redhat.com>
3524
3525 PR tree-optimization/71437
3526 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
3527 (record_temporary_equivalences): Use it.
3528
3529 PR tree-optimization/71437
3530 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
3531 tree-ssa-scopedtables.
3532 (lookup_avail_expr, build_and_record_new_cond): Likewise.
3533 (record_conditions, record_cond, vuse_eq): Likewise.
3534 (record_edge_info): Adjust to API tweak of record_conditions.
3535 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
3536 (record_temporary_equivalences, optimize_stmt): Likewise.
3537 (eliminate_redundant_computations): Likewise.
3538 (record_equivalences_from_stmt): Likewise.
3539 * tree-ssa-scopedtables.c: Include options.h and params.h.
3540 (vuse_eq): New function, moved from tree-ssa-dom.c
3541 (build_and_record_new_cond): Likewise.
3542 (record_conditions): Likewise. Accept vector of conditions rather
3543 than edge_equivalence structure for first argument.
3544 for the first argument.
3545 (avail_exprs_stack::lookup_avail_expr): New member function, moved
3546 from tree-ssa-dom.c.
3547 (avail_exprs_stack::record_cond): Likewise.
3548 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
3549 from tree-ssa-dom.c.
3550 (avail_exprs_stack): Add new member functions lookup_avail_expr
3551 and record_cond.
3552 (record_conditions): Declare.
3553
3554 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
3555
3556 PR target/80017
3557 * lra-constraints.c (process_alt_operands): Increase reject for
3558 reloading an input/output operand.
3559
3560 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
3561
3562 PR target/79038
3563 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
3564 insns to convert from signed/unsigned char/short to IEEE 128-bit
3565 floating point.
3566 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
3567
3568 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
3569
3570 PR target/80019
3571 * config/i386/i386.c (ix86_vector_duplicate_value): Create
3572 subreg of inner mode for values already in registers.
3573
3574 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
3575
3576 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
3577 iteration reg is used after the loop.
3578
3579 2017-03-14 Martin Sebor <msebor@redhat.com>
3580
3581 PR tree-optimization/79800
3582 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
3583 precision in negative-positive range.
3584 (format_floating): Call non-const overload with adjusted precision.
3585
3586 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3587
3588 PR target/79947
3589 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
3590 -mpowerpc-gfxopt.
3591
3592 2017-03-14 Martin Sebor <msebor@redhat.com>
3593
3594 PR middle-end/80020
3595 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
3596 * builtins.def (aligned_alloc): Use it.
3597
3598 PR c/79936
3599 * Makefile.in (GTFILES): Add calls.c.
3600 * calls.c: Include "gt-calls.h".
3601
3602 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
3603
3604 PR rtl-optimization/79728
3605 * regs.h (struct target_regs): New field
3606 x_contains_allocatable_regs_of_mode.
3607 (contains_allocatable_regs_of_mode): New macro.
3608 * reginfo.c (init_reg_sets_1): Initialize it, and change
3609 contains_reg_of_mode so it includes global regs as well.
3610 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
3611 rather than contains_regs_of_mode.
3612
3613 2017-03-14 Martin Liska <mliska@suse.cz>
3614
3615 * doc/invoke.texi: Document options that can't be combined with
3616 -fcheck-pointer-bounds.
3617
3618 2017-03-14 Martin Liska <mliska@suse.cz>
3619
3620 PR middle-end/79831
3621 * doc/invoke.texi (-Wchkp): Document the option.
3622
3623 2017-03-14 Martin Liska <mliska@suse.cz>
3624
3625 * Makefile.in: Install gcov-dump.
3626
3627 2017-03-14 Martin Liska <mliska@suse.cz>
3628
3629 * multiple_target.c (expand_target_clones): Bail out for
3630 an invalid attribute.
3631
3632 2017-03-14 Richard Biener <rguenther@suse.de>
3633
3634 * alias.c (struct alias_set_entry): Pack properly.
3635 * cfgloop.h (struct loop): Likewise.
3636 * cse.c (struct set): Likewise.
3637 * ipa-utils.c (struct searchc_env): Likewise.
3638 * loop-invariant.c (struct invariant): Likewise.
3639 * lra-remat.c (struct cand): Likewise.
3640 * recog.c (struct change_t): Likewise.
3641 * rtl.h (struct address_info): Likewise.
3642 * symbol-summary.h (function_summary): Likewise.
3643 * tree-loop-distribution.c (struct partition): Likewise.
3644 * tree-object-size.c (struct object_size_info): Likewise.
3645 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
3646 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
3647 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
3648 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
3649 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
3650 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
3651 (struct _stmt_vec_info): Likewise.
3652
3653 2017-03-14 Martin Liska <mliska@suse.cz>
3654
3655 PR target/79892
3656 * multiple_target.c (create_dispatcher_calls): Check that
3657 a target can create a function dispatcher.
3658
3659 2017-03-14 Martin Liska <mliska@suse.cz>
3660
3661 PR lto/66295
3662 * multiple_target.c (expand_target_clones): Drop local.local
3663 flag for default implementation.
3664
3665 2017-03-14 Richard Biener <rguenther@suse.de>
3666
3667 PR tree-optimization/80030
3668 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
3669
3670 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
3671
3672 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
3673 gcc_fallthrough() instead of __attribute__((fallthrough));
3674
3675 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
3676
3677 * doc/gcc.texi: Remove "up" link to (DIR).
3678 * doc/gccint.texi: Ditto.
3679
3680 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
3681
3682 * doc/install.texi (Specific) <avr>: Remove reference to
3683 binutils 2.13.
3684
3685 2017-03-13 Jeff Law <law@redhat.com>
3686
3687 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
3688 attribute rather than comments.
3689
3690 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
3691 match_scratch operand is highest.
3692
3693 2017-03-13 Martin Liska <mliska@suse.cz>
3694
3695 PR middle-end/78339
3696 * ipa-pure-const.c (warn_function_noreturn): If the declarations
3697 is a CHKP clone, use original declaration.
3698
3699 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
3700
3701 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
3702 (arc_conditional_register_usage): Use a different allocation order
3703 when optimizing for size.
3704 * common/config/arc/arc-common.c (arc_option_optimization_table):
3705 Section anchors default on when optimizing for size.
3706
3707 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
3708
3709 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
3710
3711 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
3712
3713 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
3714 * config/arc/arc.md (cpu_facility): Add cd variant.
3715 (*movqi_insn): Add code density variant.
3716 (*movhi_insn): Likewise.
3717 (*movqi_insn): Likewise.
3718 (*addsi3_mixed): Likewise.
3719 (subsi3_insn): Likewise.
3720
3721 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
3722
3723 * config/arc/arc.md (movsi_cond_exec): Update constraint.
3724
3725 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
3726
3727 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
3728 expressions with MINUS and UNARY ops.
3729
3730 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3731
3732 PR target/79911
3733 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
3734 Rename to...
3735 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
3736 between vec_select and vector argument.
3737 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
3738 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
3739 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
3740 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
3741 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
3742 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
3743
3744 2017-03-13 Richard Biener <rguenther@suse.de>
3745
3746 PR other/79991
3747 * params.def (vect-max-peeling-for-alignment): Fix typo.
3748
3749 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3750
3751 * doc/install.texi (Specific) <mips-*-*>: Remove description of
3752 issue that only occurred with binutils below 2.18.
3753
3754 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3755
3756 * doc/install.texi (Specific) <cris-axis-elf>: No longer
3757 refer to binutils 2.11/2.12 minimum.
3758
3759 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3760
3761 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
3762 ftp.kernel.org and simplify binutils requirement.
3763
3764 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
3765
3766 * doc/invoke.texi (Warning Options): Fix spelling of link-time
3767 optimization.
3768 (Optimize Options): Ditto. Also remove redundancy.
3769
3770 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3771
3772 PR translation/79848
3773 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
3774 "%qs".
3775 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
3776 to G_ to avoid double translation.
3777
3778 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3779
3780 PR translation/79923
3781 * auto-profile.c (get_combined_location): Convert leading
3782 character of diagnostics to lower case and remove trailing period.
3783 (read_profile): Likewise for various diagnostics.
3784 * config/arm/arm.c (arm_option_override): Remove trailing period
3785 from various diagnostics.
3786 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
3787 (msp430_expand_delay_cycles): Likewise.
3788
3789 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3790
3791 PR target/79925
3792 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
3793 full command-line argument, rather than just "str".
3794 (aarch64_validate_march): Likewise.
3795 (aarch64_validate_mtune): Likewise.
3796
3797 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
3798
3799 PR rtl-optimization/78911
3800 * lra-assigns.c (must_not_spill_p): New function.
3801 (spill_for): Use it.
3802
3803 2017-03-10 Jakub Jelinek <jakub@redhat.com>
3804
3805 PR tree-optimization/79981
3806 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
3807 ATOMIC_COMPARE_EXCHANGE ifn result.
3808 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
3809 IFN_ATOMIC_COMPARE_EXCHANGE.
3810
3811 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3812
3813 PR driver/79875
3814 * opts.c (parse_sanitizer_options): Add missing question mark to
3815 "did you mean" message.
3816
3817 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3818
3819 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
3820 built-in.
3821 (VMULEUH_UNS): Likewise.
3822 (VMULOUB_UNS): Likewise.
3823 (VMULOUH_UNS): Likewise.
3824 * config/rs6000/rs6000.c (builtin_function_type): Remove
3825 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
3826
3827 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3828
3829 PR bootstrap/79952
3830 * read-rtl-function.c (function_reader::read_rtx_operand): Update
3831 x with result of extra_parsing_for_operand_code_0.
3832 (function_reader::extra_parsing_for_operand_code_0): Convert
3833 return type from void to rtx, returning x. When reading
3834 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
3835 larger size containing struct block_symbol.
3836
3837 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
3838
3839 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
3840 -mfloat128-hardware without -m64.
3841
3842 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
3843
3844 PR target/79941
3845 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
3846 entries to the case statement that marks unsigned arguments to
3847 overloaded functions.
3848
3849 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
3850
3851 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
3852 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
3853
3854 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
3855
3856 PR target/79907
3857 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
3858 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
3859
3860 2017-03-10 Martin Liska <mliska@suse.cz>
3861
3862 PR target/65705
3863 PR target/69804
3864 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
3865 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
3866 FIELD != NULL.
3867
3868 2017-03-10 Olivier Hainque <hainque@adacore.com>
3869
3870 * tree-switch-conversion (array_value_type): Start by resetting
3871 candidate type to it's main variant.
3872
3873 2017-03-10 Jakub Jelinek <jakub@redhat.com>
3874
3875 PR rtl-optimization/79909
3876 * combine.c (try_combine): Use simplify_replace_rtx on individual
3877 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
3878 of the whole CALL_INSN_FUNCTION_USAGE.
3879
3880 PR tree-optimization/79972
3881 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
3882 get_range_info on SSA_NAMEs. Formatting fixes.
3883
3884 2017-03-10 Richard Biener <rguenther@suse.de>
3885 Jakub Jelinek <jakub@redhat.com>
3886
3887 PR tree-optimization/77975
3888 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
3889 edge to be constant.
3890 (get_val_for): For constant x return it. Formatting fix.
3891 (loop_niter_by_eval): Avoid pointless looping if the next iteration
3892 would use the same bases as the current one.
3893
3894 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3895
3896 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
3897 instead of vec_select for V1TImode.
3898 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
3899 longer needed.
3900 (VSX_LE_128): Add V1TI to this mode iterator.
3901 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
3902 (*vsx_le_perm_store_<mode>): Likewise.
3903 (pre-reload splitter for VSX stores): Likewise.
3904 (post-reload splitter for VSX stores): Likewise.
3905 (*vsx_xxpermdi2_le_<mode>): Likewise.
3906 (*vsx_lxvd2x2_le_<mode>): Likewise.
3907 (*vsx_stxvd2x2_le_<mode>): Likewise.
3908
3909 2017-03-09 Michael Eager <eager@eagercon.com>
3910
3911 Correct failures with --enable-checking=yes,rtl.
3912
3913 * config/microblaze/microblaze.c (microblaze_expand_shift):
3914 Replace GET_CODE test with CONST_INT_P and INTVAL test with
3915 test for const0_rtx.
3916 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
3917 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
3918
3919 2017-03-09 Richard Biener <rguenther@suse.de>
3920
3921 PR tree-optimization/79977
3922 * graphite-scop-detection.c (scop_detection::merge_sese):
3923 Handle the case of extra exits to blocks dominating the entry.
3924
3925 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
3926
3927 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
3928 Document rdynamic.
3929
3930 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
3931
3932 PR rtl-optimization/79949
3933 * lra-constraints.c (process_alt_operands): Check memory when
3934 trying to predict a cycle. Print about the overall increase.
3935
3936 2017-03-09 Richard Biener <rguenther@suse.de>
3937
3938 PR middle-end/79971
3939 * gimple-expr.c (useless_type_conversion_p): Preserve
3940 TYPE_SATURATING for fixed-point types.
3941
3942 2017-03-09 Richard Biener <rguenther@suse.de>
3943
3944 PR ipa/79970
3945 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
3946 alignment of BLKmode params.
3947
3948 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3949
3950 PR target/79913
3951 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
3952 (VALL_NO_V2Q): Likewise.
3953 (VDQF_DF): Delete.
3954 * config/aarch64/aarch64-simd.md
3955 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
3956 iterator.
3957 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
3958 VALL_NO_V2Q mode iterator.
3959 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
3960
3961 2017-03-09 Martin Liska <mliska@suse.cz>
3962
3963 PR tree-optimization/79631
3964 * tree-chkp-opt.c (chkp_is_constant_addr): Call
3965 tree_int_cst_sign_bit just for INTEGER constants.
3966
3967 2017-03-09 Martin Liska <mliska@suse.cz>
3968
3969 PR target/65705
3970 PR target/69804
3971 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
3972 sanitizers.
3973
3974 2017-03-09 Marek Polacek <polacek@redhat.com>
3975
3976 PR c++/79672
3977 * tree.c (inchash::add_expr): Handle TREE_VEC.
3978
3979 2017-03-09 Martin Liska <mliska@suse.cz>
3980
3981 PR ipa/79764
3982 (chkp_narrow_size_and_offset): New function.
3983 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
3984 (void chkp_parse_bit_field_ref): New function.
3985 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
3986 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
3987
3988 2017-03-09 Martin Liska <mliska@suse.cz>
3989
3990 PR ipa/79761
3991 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
3992 (chkp_find_bounds_1): Remove gcc_unreachable.
3993
3994 2017-03-09 Jakub Jelinek <jakub@redhat.com>
3995
3996 PR sanitizer/79944
3997 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
3998 BUILT_IN_SYNC*, determine the access type from the size suffix and
3999 always build a MEM_REF with that type. Handle forgotten
4000 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
4001
4002 PR target/79932
4003 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
4004 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
4005 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
4006 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
4007 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
4008 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
4009 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
4010 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
4011 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
4012 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
4013 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
4014 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
4015 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
4016 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
4017 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
4018 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
4019 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
4020 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
4021 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
4022 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
4023 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
4024 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
4025 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
4026 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
4027 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
4028 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
4029 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
4030 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
4031 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
4032 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
4033 definitions outside of __OPTIMIZE__ guarded section.
4034
4035 PR target/79932
4036 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
4037 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
4038 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
4039 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
4040 guarded section.
4041
4042 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4043
4044 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
4045 ("vfenez<mode>"): Add missing constraints.
4046
4047 2017-03-08 Martin Sebor <msebor@redhat.com>
4048
4049 PR target/79928
4050 * config/nds32/nds32.c (nds32_option_override):
4051 Fix misspelled diagnostic.
4052
4053 2017-03-08 Jakub Jelinek <jakub@redhat.com>
4054
4055 PR c/79940
4056 * gimplify.c (gimplify_omp_for): Replace index var in outer
4057 taskloop statement with an artificial variable and add
4058 OMP_CLAUSE_PRIVATE clause for it.
4059
4060 2017-03-08 Richard Biener <rguenther@suse.de>
4061
4062 PR tree-optimization/79955
4063 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
4064 for accesses that are completely outside of the variable.
4065
4066 2017-03-08 Andrew Haley <aph@redhat.com>
4067
4068 PR tree-optimization/79943
4069 * tree-ssa-loop-split.c (compute_new_first_bound): When
4070 calculating the new upper bound, (END-BEG) should be added, not
4071 subtracted.
4072
4073 2017-03-08 Jakub Jelinek <jakub@redhat.com>
4074
4075 * config/avr/avr.md (setmemhi): Make sure match_dup
4076 operand number comes before match_scratch.
4077
4078 2017-03-08 Richard Biener <rguenther@suse.de>
4079
4080 PR tree-optimization/79920
4081 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
4082 with ncopies == 1 to ...
4083 (vect_transform_slp_perm_load): ... here. Properly compute
4084 all element loads by iterating VF times over the group. Do
4085 not handle ncopies (computed in a broken way) in
4086 vect_create_mask_and_perm.
4087
4088 2017-03-08 Jakub Jelinek <jakub@redhat.com>
4089
4090 PR sanitizer/79904
4091 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
4092 is a uniform vector, use uniform_vector_p return value instead of
4093 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
4094
4095 2017-03-07 Marek Polacek <polacek@redhat.com>
4096
4097 PR middle-end/79809
4098 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
4099 (alloca_call_type): Likewise.
4100
4101 2017-03-07 Martin Liska <mliska@suse.cz>
4102
4103 * gcov.c (process_args): Put comment to correct location.
4104
4105 2017-03-07 Martin Liska <mliska@suse.cz>
4106
4107 PR middle-end/68270
4108 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
4109 Use array_at_struct_end_p instead of DECL_CHAIN (field).
4110 (chkp_narrow_bounds_for_field): Likewise.
4111 (chkp_parse_array_and_component_ref): Pass one more argument to
4112 call.
4113
4114 2017-03-07 Richard Biener <rguenther@suse.de>
4115
4116 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
4117 preheaders.
4118
4119 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
4120
4121 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
4122 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
4123
4124 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4125
4126 PR c/79855
4127 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
4128 to end of description.
4129 (PARAM_MAX_STORES_TO_MERGE): Likewise.
4130
4131 2017-03-07 Jakub Jelinek <jakub@redhat.com>
4132
4133 PR rtl-optimization/79901
4134 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
4135 ...
4136 (*avx512f_<code><mode>3<mask_name>): ... this.
4137 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
4138 iterator instead of VI8_AVX2_AVX512BW.
4139
4140 PR rtl-optimization/79901
4141 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
4142 min/max expander, expand it using expand_vec_cond_expr.
4143
4144 PR sanitizer/79897
4145 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
4146 temporary.
4147
4148 2017-03-06 Jakub Jelinek <jakub@redhat.com>
4149
4150 PR c++/79821
4151 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
4152 to void * for PCH reasons.
4153 * dwarf2out.c (output_loc_operands, output_die): Cast
4154 v.val_vec.array to unsigned char *.
4155
4156 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
4157
4158 PR target/77850
4159 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
4160 vector types.
4161
4162 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
4163
4164 PR rtl-optimization/79571
4165 * lra-constraints.c (process_alt_operands): Calculate static
4166 reject and subtract it from overall when only addresses will be
4167 reloaded.
4168
4169 2017-03-06 Julia Koval <julia.koval@intel.com>
4170
4171 PR target/79793
4172 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
4173 incoming stack boundary to 128 for 64-bit targets.
4174
4175 2017-03-06 Richard Biener <rguenther@suse.de>
4176
4177 PR tree-optimization/79894
4178 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
4179 to NULL after folding it.
4180
4181 2017-03-06 Richard Biener <rguenther@suse.de>
4182
4183 PR tree-optimization/79824
4184 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
4185 check disabling peeling for gaps.
4186
4187 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
4188
4189 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
4190 attributes): Document gettimeofday.
4191
4192 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
4193
4194 * config/s390/s390.c (s390_option_override_internal): Set
4195 PARAM_MIN_VECT_LOOP_BOUND
4196
4197 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
4198
4199 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
4200 * config/s390/s390.md: Likewise.
4201
4202 2017-03-06 Jakub Jelinek <jakub@redhat.com>
4203
4204 PR target/79812
4205 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
4206 (<avx2_avx512>_perm<mode>): Rename to ...
4207 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
4208 of VI8F_256_512.
4209 (<avx512>_perm<mode>_mask): Rename to ...
4210 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
4211 of VI8F_256_512.
4212 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
4213 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
4214 instead of VI8F_256_512.
4215 (avx512f_perm<mode>): New define_expand.
4216 (avx512f_perm<mode>_mask): Likewise.
4217 (avx512f_perm<mode>_1<mask_name>): New define_insn.
4218 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
4219
4220 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
4221
4222 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
4223 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
4224 if_then_else.
4225 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
4226
4227 2017-03-06 Martin Liska <mliska@suse.cz>
4228
4229 PR sanitize/79783
4230 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
4231 when having a SSA NAME w/o VAR_DECL assigned to it.
4232
4233 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
4234
4235 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
4236 msa_dpsub_<su>_d): Fix MODE for vec_select.
4237
4238 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
4239
4240 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
4241 argument.
4242 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
4243
4244 2017-03-06 Richard Biener <rguenther@suse.de>
4245
4246 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
4247 * plugin.c (register_plugin_info): Likewise.
4248 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
4249
4250 2017-03-05 Jakub Jelinek <jakub@redhat.com>
4251
4252 * config/i386/sse.md (sse_storehps, sse_storelps,
4253 avx_<castmode><avxsizesuffix>_<castmode>,
4254 avx512f_<castmode><avxsizesuffix>_<castmode>,
4255 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
4256 in condition that at least one operand is not a MEM.
4257
4258 2017-03-03 Jakub Jelinek <jakub@redhat.com>
4259
4260 PR middle-end/79805
4261 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
4262 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
4263 ECF_NOTHROW.
4264 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
4265 gimple_call_nothrow_p flag based on whether original builtin can throw.
4266 If it can, emit following stmts on the fallthrough edge.
4267 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
4268 don't create new bb if inserting just debug stmts on the edge, try to
4269 insert them on the fallthru bb or just reset debug stmts.
4270
4271 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
4272
4273 PR target/43763
4274 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
4275 restore recog_data (including the operand rtxes inside it) around
4276 the call to get_insn_template.
4277
4278 2017-03-03 Martin Sebor <msebor@redhat.com>
4279
4280 PR tree-optimization/79699
4281 * context.c (context::~context): Free MPFR caches to avoid
4282 a memory leak on program exit.
4283
4284 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4285
4286 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
4287 Use wide_int::ulow () instead of .elt (0).
4288
4289 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
4290
4291 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
4292 (*pushxf): Limit oF constraint to 32bit targets and add oC
4293 constraint for 64bit targets.
4294 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
4295 (*pushdf): Change rmF constraint to rmC.
4296
4297 2017-03-03 Martin Liska <mliska@suse.cz>
4298
4299 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
4300 Remove unused variable.
4301
4302 2017-03-03 Jakub Jelinek <jakub@redhat.com>
4303
4304 PR target/79807
4305 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
4306 is a memory operand, increase num_memory.
4307 (ix86_expand_args_builtin): Likewise.
4308
4309 2017-03-03 Jan Hubicka <jh@suse.cz>
4310
4311 PR lto/79760
4312 * ipa-devirt.c (maybe_record_node): Properly handle
4313 __cxa_pure_virtual visibility.
4314
4315 2017-03-03 Martin Liska <mliska@suse.cz>
4316
4317 PR tree-optimization/79803
4318 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
4319 assert.
4320 (pass_loop_prefetch::execute): Disabled optimization if an
4321 assumption about L1 cache size is not met.
4322
4323 2017-03-03 Martin Liska <mliska@suse.cz>
4324
4325 PR rtl-optimization/79574
4326 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
4327 (hash_scan_set): Likewise.
4328 (dump_hash_table): Likewise.
4329 (hoist_code): Likewise.
4330
4331 2017-03-03 Richard Biener <rguenther@suse.de>
4332
4333 * fixed-value.c (fixed_from_string): Restore use of elt (1)
4334 in place of uhigh ().
4335 (fixed_convert_from_real): Likewise.
4336
4337 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
4338
4339 PR target/79514
4340 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
4341
4342 2017-03-03 Richard Biener <rguenther@suse.de>
4343
4344 PR middle-end/79818
4345 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
4346 TYPE_OVERFLOW_UNDEFINED check.
4347
4348 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4349
4350 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
4351 numbers.
4352 (vector_ae_<mode>_p): Likewise.
4353 (vector_nez_<mode>_p): Likewise.
4354 (vector_ne_v2di_p): Likewise.
4355 (vector_ae_v2di_p): Likewise.
4356 (vector_ne_<mode>_p): Likewise.
4357 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
4358 numbers.
4359 (vsx_tsqrt<mode>2_fe): Likewise.
4360
4361 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
4362
4363 PR target/79514
4364 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
4365
4366 2017-03-02 Jakub Jelinek <jakub@redhat.com>
4367
4368 PR rtl-optimization/79780
4369 * cprop.c (one_cprop_pass): When second and further conditional trap
4370 in a single basic block is turned into an unconditional trap, turn it
4371 into a deleted note to avoid RTL verification failures.
4372
4373 2017-03-02 Richard Biener <rguenther@suse.de>
4374
4375 * fold-const.c (const_binop): Use ulow () instead of elt (0).
4376
4377 2017-03-02 Richard Biener <rguenther@suse.de>
4378
4379 PR tree-optimization/79345
4380 PR c++/42000
4381 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
4382 param and abort the walk, returning -1 if it is hit.
4383 (walk_aliased_vdefs): Take a limit param and pass it on.
4384 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
4385 defaulting to 0 and return a signed int.
4386 * tree-ssa-uninit.c (struct check_defs_data): New struct.
4387 (check_defs): New helper.
4388 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
4389 about uninitialized memory.
4390 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
4391 bogus uninitialized warning.
4392 (fixed_convert_from_real): Likewise.
4393
4394 2017-03-02 Bin Cheng <bin.cheng@arm.com>
4395
4396 PR tree-optimization/66768
4397 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
4398 iv_use if base object can't be determined.
4399
4400 2017-03-02 Jakub Jelinek <jakub@redhat.com>
4401
4402 PR tree-optimization/79345
4403 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
4404 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
4405 (get_pattern_stats): Initialize it.
4406 * genemit.c (gen_expand): Verify match_scratch numbers come after
4407 match_operand/match_dup numbers.
4408 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
4409 match_scratch numbers.
4410 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
4411 Likewise.
4412 * config/s390/s390.md (trunctdsd2): Likewise.
4413
4414 2017-03-02 Richard Biener <rguenther@suse.de>
4415
4416 * wide-int.h (wide_int_storage::operator=): Implement in terms
4417 of wi::copy.
4418
4419 2017-03-02 Richard Biener <rguenther@suse.de>
4420
4421 PR tree-optimization/79777
4422 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
4423 the to insert expression to sth existing.
4424
4425 2017-03-01 Martin Sebor <msebor@redhat.com>
4426
4427 PR middle-end/79692
4428 * gimple-ssa-sprintf.c
4429 (directive::known_width_and_precision): New function.
4430 (format_integer): Use it.
4431 (get_mpfr_format_length): Consider the full range of precision
4432 when computing %g output with the # flag. Set the likely byte
4433 count to 3 rather than 1 when precision is indeterminate.
4434 (format_floating): Correct the lower bound of precision.
4435
4436 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4437
4438 * doc/invoke.texi: Document default code model for 64-bit Linux.
4439
4440 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4441
4442 PR target/79752
4443 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
4444 udiv rather than div since input pattern is unsigned.
4445
4446 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
4447
4448 * config/i386/i386.c (print_reg): Warn for values of
4449 unsupported size in integer register.
4450
4451 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
4452
4453 PR target/79439
4454 * config/rs6000/predicates.md (current_file_function_operand): Do
4455 not allow self calls to be local if the function is replaceable.
4456
4457 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
4458
4459 PR target/79395
4460 * config/rs6000/altivec.h (vec_ctz and others): Change the
4461 preprocessor macro that controls conditional compilation from
4462 _ARCH_PWR9 to __POWER9_VECTOR__.
4463 (vec_all_ne): Change parameterization of __altivec_scalar_pred
4464 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
4465 control (instead of _ARCH_PWR9 control) so that template
4466 definition uses power9-specific function.
4467 (vec_any_eq): Likewise.
4468 (vec_all_ne): Change macro definition to use a power9-specific
4469 expansion under #ifdef __POWER9_VECTOR__ control (instead of
4470 _ARCH_PWR9 control).
4471 (vec_any_eq) Likewise.
4472 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
4473 expansion for CMPNEF to remove support for xvcmpnesp instruction.
4474 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
4475 support for xvcmpnedp instruction.
4476 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
4477 macro expansion so that Power9 implementation of vec_all_ne does
4478 not use the AltiVec predicate framework.
4479 (VCMPNEH_P): Likewise.
4480 (VCMPNEW_P): Likewise.
4481 (VCMPNED_P): Likewise.
4482 (VCMPNEFP_P): Likewise.
4483 (VCMPNEDP_P): Likewise.
4484 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
4485 implementation of vec_any_eq to not use AltiVec predicate
4486 framework.
4487 (VCMPAEH_P): Likewise.
4488 (VCMPAEW_P): Likewise.
4489 (VCMPAED_P): Likewise.
4490 (VCMPAEFP_P): Likewise.
4491 (VCMPAEDP_P): Likewise.
4492 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
4493 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
4494 not use the AltiVec predicate framework.
4495 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
4496 of vec_any_eq to not use AltiVec predicate framework.
4497 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
4498 support for predefined __POWER9_VECTOR__ macro to indicate that
4499 Power9 instruction selection is enabled.
4500 (altivec_overloaded_builtins): Remove extraneous
4501 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
4502 function argument types RS6000_BTI_bool_V16QI and
4503 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
4504 entry for overloaded function argument types RS6000_BTI_bool_V4SI
4505 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
4506 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
4507 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
4508 Power9 for implementations of vec_cmpne. Change the signature for
4509 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
4510 (representing vec_all_ne) to remove the previously described first
4511 argument of type RS6000_BTI_INTSI, as this was an artifact of
4512 reliance on the AltiVec predicate framework, which is no longer
4513 used in the implementation of these functions. Add
4514 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
4515 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
4516 since, unlike the AltiVec predicate framework implementation, we
4517 do not share function descriptors between vec_alle and vec_anyeq.
4518 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
4519 set of modes that receive special treatment even when
4520 TARGET_P9_VECTOR is true. The special treatment emits code that
4521 does not depend on Power9 instructions.
4522 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
4523 define_expand to not rely on AltiVec predicate framework.
4524 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
4525 function.
4526 (vector_ne_v2di_p): Change this define_expand to not rely on
4527 AltiVec predicate framework.
4528 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
4529 function.
4530 (vector_ne_<mode>_p): Change this define_expand to not rely on
4531 AltiVec predicate framework.
4532 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
4533 function.
4534 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
4535 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
4536 define_insn pattern.
4537 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
4538 define_insn pattern because the xvcmpne<VSs>. instruction is not
4539 supported.
4540 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
4541 instruction is not supported.
4542
4543 2017-03-01 Jakub Jelinek <jakub@redhat.com>
4544
4545 * config/nvptx/nvptx.c: Include intl.h.
4546
4547 2017-03-01 Martin Jambor <mjambor@suse.cz>
4548
4549 PR lto/78140
4550 * ipa-prop.h (ipa_bits): Removed field known.
4551 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
4552 to pointers. Adjusted their comments to warn about their sharing.
4553 (ipcp_transformation_summary): Change bits to a vector of pointers.
4554 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
4555 (ipa_get_ipa_bits_for_value): Declare.
4556 * tree-vrp.h (value_range): Mark as GTY((for_user)).
4557 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
4558 (ipa_bits_hash_table): Likewise.
4559 (ipa_vr_ggc_hash_traits): Likewise.
4560 (ipa_vr_hash_table): Likewise.
4561 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
4562 being pointers and vr_known being removed.
4563 (ipa_set_jf_unknown): Likewise.
4564 (ipa_get_ipa_bits_for_value): New function.
4565 (ipa_set_jfunc_bits): Likewise.
4566 (ipa_get_value_range): New overloaded functions.
4567 (ipa_set_jfunc_vr): Likewise.
4568 (ipa_compute_jump_functions_for_edge): Use the above functions to
4569 construct bits and vr parts of jump functions.
4570 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
4571 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
4572 exist.
4573 (ipcp_grow_transformations_if_necessary): Also allocate
4574 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
4575 exist.
4576 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
4577 them. Fix too long lines.
4578 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
4579 vr_known being removed.
4580 (ipa_read_jump_function): Use new setter functions to construct bits
4581 and vr parts of jump functions or set them to NULL.
4582 (write_ipcp_transformation_info): Adjust for bits being pointers.
4583 (read_ipcp_transformation_info): Likewise.
4584 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
4585 space.
4586 Include gt-ipa-prop.h.
4587 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
4588 being pointers.
4589 (ipcp_store_bits_results): Likewise.
4590 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
4591 Do not write to existing jump functions but use a temporary instead.
4592
4593 2017-03-01 Jakub Jelinek <jakub@redhat.com>
4594
4595 PR c++/79681
4596 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
4597 attempt to use its first operand as BIT_FIELD_REF base.
4598
4599 2017-03-01 Richard Biener <rguenther@suse.de>
4600
4601 PR middle-end/79721
4602 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
4603 interpolating formula in wrapping arithmetic.
4604 (chrec_apply): Convert chrec_evaluate return value to wanted type.
4605
4606 2017-03-01 Jakub Jelinek <jakub@redhat.com>
4607
4608 PR tree-optimization/79734
4609 * tree-vect-generic.c (expand_vector_condition): Optimize
4610 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
4611 Handle VEC_COND_EXPR where comparison has different inner width from
4612 type's inner width.
4613
4614 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
4615
4616 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
4617 markup, and similar issues. Remove @opindex entries for things
4618 that aren't options. Add missing -mmpy-option entries.
4619
4620 2017-02-28 Jakub Jelinek <jakub@redhat.com>
4621
4622 PR tree-optimization/79737
4623 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
4624 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
4625 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
4626 instead of byte_size. Formatting fix.
4627 (shift_bytes_in_array_right): Formatting fix.
4628
4629 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
4630
4631 PR target/79749
4632 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
4633 condition on optimize for the leaf function test.
4634
4635 2017-02-28 Martin Liska <mliska@suse.cz>
4636
4637 PR lto/79625
4638 * read-rtl-function.c (function_reader::handle_unknown_directive):
4639 Bail out when one uses -flto.
4640
4641 2017-02-28 Martin Liska <mliska@suse.cz>
4642
4643 * common.opt: Replace space with tabular for options of <number>
4644 type.
4645 * config/i386/i386.opt: Show <number> value for
4646 -mlarge-data-threshold.
4647 * opts.c (print_filtered_help): Do not display number in hexadecimal
4648 format.
4649
4650 2017-02-28 Martin Liska <mliska@suse.cz>
4651
4652 * common.opt: Fix --help=option -Q for options which are of
4653 an enum type.
4654
4655 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
4656
4657 * config/i386/i386.c (print_reg): Error out for values
4658 of 8-bit size in invalid integer register.
4659
4660 2017-02-28 Martin Sebor <msebor@redhat.com>
4661
4662 PR tree-optimization/79691
4663 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
4664
4665 2017-02-28 Jakub Jelinek <jakub@redhat.com>
4666
4667 PR target/79729
4668 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
4669 gcc_unreachable with output_operand_lossage.
4670
4671 2017-02-28 Richard Biener <rguenther@suse.de>
4672
4673 PR tree-optimization/79740
4674 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
4675 inserts.
4676 (visit_nary_op): Insert the nary into the hashtable if we
4677 pattern-matched sth.
4678 * tree-ssa-pre.c (eliminate_insert): Robustify.
4679
4680 2017-02-28 Richard Biener <rguenther@suse.de>
4681
4682 PR middle-end/79731
4683 * fold-const.c (decode_field_reference): Reject out-of-bound
4684 accesses.
4685
4686 2017-02-28 Jakub Jelinek <jakub@redhat.com>
4687
4688 * config/i386/i386.c: Include intl.h.
4689 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
4690 instead of just cond ? "..." : "...".
4691 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
4692 * coverage.c (read_counts_file): Likewise.
4693 * omp-offload.c: Include intl.h.
4694 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
4695 of just cond ? "..." : "...".
4696 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
4697 of just cond ? "..." : "...".
4698
4699 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
4700
4701 PR target/79742
4702 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
4703 entry, if present.
4704 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
4705 'tune for' CPU name.
4706 * config/arm/arm-cpu-data.h: Regenerated.
4707
4708 2017-02-28 Richard Biener <rguenther@suse.de>
4709
4710 PR tree-optimization/79732
4711 * tree-inline.c (expand_call_inline): Do not shadow var.
4712
4713 2017-02-28 Richard Biener <rguenther@suse.de>
4714
4715 PR tree-optimization/79723
4716 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
4717 address-space properly.
4718
4719 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
4720
4721 * doc/optinfo.texi (Optimization groups): Fix option used for
4722 OPTGROUP_ALL.
4723 * doc/invoke.texi (-fopt-info): Document "omp".
4724 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
4725 (OPTGROUP_ALL): Add OPTGROUP_OMP.
4726 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
4727 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
4728 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
4729
4730 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
4731 all users.
4732 * dumpfile.c (optgroup_options): Instead of "openmp", associate
4733 OPTGROUP_OMP with "omp".
4734
4735 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
4736
4737 PR target/79544
4738 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
4739 for arithmetic shift of unsigned V2DI.
4740
4741 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
4742
4743 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
4744 arc/linux.h headers.
4745 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
4746 (LINK_SPEC): Likewise.
4747 (ARC_TLS_EXTRA_START_SPEC): Likewise.
4748 (EXTRA_SPECS): Likewise.
4749 (STARTFILE_SPEC): Likewise.
4750 (ENDFILE_SPEC): Likewise.
4751 (LIB_SPEC): Likewise.
4752 (TARGET_SDATA_DEFAULT): Likewise.
4753 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
4754 (MULTILIB_DEFAULTS): Likewise.
4755 (DWARF2_UNWIND_INFO): Likewise.
4756 * config/arc/big.h: New file.
4757 * config/arc/elf.h: Likewise.
4758 * config/arc/linux.h: Likewise.
4759 * config/arc/t-uClibc: Remove.
4760
4761 2017-02-27 Bin Cheng <bin.cheng@arm.com>
4762
4763 PR tree-optimization/77536
4764 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
4765 (tree_transform_and_unroll_loop): Use above function to compute the
4766 estimated niter of unrolled loop and use it when scaling profile.
4767 Also use count info rather than frequency if it's non-zero.
4768 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
4769 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
4770 (vect_transform_loop): Call above function.
4771
4772 2017-02-27 Richard Biener <rguenther@suse.de>
4773
4774 PR tree-optimization/45397
4775 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
4776 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
4777 (visit_nary_op): Add pattern matching for CSEing sign-changed
4778 or truncated operations with wider ones.
4779
4780 2017-02-27 Richard Biener <rguenther@suse.de>
4781
4782 PR tree-optimization/79690
4783 * tree-vect-stmts.c (vectorizable_store): Use vector type
4784 built from the DR with address-space.
4785
4786 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
4787
4788 * doc/invoke.texi (Optimize Options): Refine the description
4789 of asan-use-after-return.
4790
4791 2017-02-25 Alan Modra <amodra@gmail.com>
4792
4793 PR rtl-optimization/79584
4794 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
4795 base, not ad->base_term, the reg within base. Remove assertion
4796 that ad->base == ad->base_term. Replace gen_int_mode using
4797 bogus mode with const0_rtx.
4798
4799 2017-02-25 Jakub Jelinek <jakub@redhat.com>
4800
4801 PR middle-end/79396
4802 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
4803 FMA_EXPR like tcc_binary or tcc_unary.
4804
4805 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
4806
4807 PR debug/77589
4808 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
4809 bitfield.
4810 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
4811 (output_loc_operands): Handle DW_OP_call_ref and
4812 DW_OP_GNU_variable_value.
4813 (struct variable_value_struct): New type.
4814 (struct variable_value_hasher): Likewise.
4815 (variable_value_hash): New variable.
4816 (string_types): Remove.
4817 (copy_loc_descr): New function.
4818 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
4819 (prepend_loc_descr_to_each): New function.
4820 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
4821 instead of add_loc_descr_to_each if the first argument is single
4822 location list and the second has multiple.
4823 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
4824 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
4825 when looking for variable value which doesn't have other location info.
4826 (loc_list_from_tree): Formatting fix.
4827 (gen_array_type_die): Simplify DW_AT_string_length handling.
4828 (adjust_string_types): Remove.
4829 (gen_subprogram_die): Don't call adjust_string_types nor test/set
4830 string_types. Call resolve_variable_values.
4831 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
4832 (resolve_addr_in_expr): Likewise. Add A argument.
4833 (copy_deref_exprloc): Remove deref argument. Adjust for the
4834 original expression being DW_OP_GNU_variable_value with optionally
4835 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
4836 optionally after it.
4837 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
4838 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
4839 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
4840 (variable_value_hasher::hash, variable_value_hasher::equal): New
4841 methods.
4842 (resolve_variable_value_in_expr, resolve_variable_value,
4843 resolve_variable_values, note_variable_value_in_expr,
4844 note_variable_value): New functions.
4845 (dwarf2out_early_finish): Call note_variable_value on all toplevel
4846 DIEs.
4847
4848 2017-02-24 Jakub Jelinek <jakub@redhat.com>
4849
4850 PR c/79677
4851 * opts.h (handle_generated_option): Add GENERATED_P argument.
4852 * opts-common.c (handle_option): Adjust function comment.
4853 (handle_generated_option): Add GENERATED_P argument, pass it to
4854 handle_option.
4855 (control_warning_option): Pass false to handle_generated_option
4856 GENERATED_P.
4857 * opts.c (maybe_default_option): Pass true to handle_generated_option
4858 GENERATED_P.
4859 * optc-gen.awk: Likewise.
4860
4861 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4862
4863 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
4864 a REG, look at the REG it is a SUBREG of.
4865 (splitter for cmpeqsi_t): Ditto.
4866
4867 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4868
4869 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
4870 the special USEs with the pattern of the insn, not the insn itself.
4871
4872 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
4873
4874 PR target/79473
4875 * doc/invoke.texi: Document -mload-store-pairs.
4876
4877 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4878 Sandra Loosemore <sandra@codesourcery.com>
4879
4880 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
4881 argument isn't a CONST_INT.
4882 (nios2_alternate_compare_const): Assert op is a CONST_INT.
4883 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
4884 (nios2_validate_compare): Bypass alternate compare logic if *op2
4885 is not a CONST_INT.
4886 (ldstwm_operation_p): Return false if first_base is not a REG or
4887 if first_offset is not a CONST_INT.
4888
4889 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4890
4891 * config/cris/cris.md: Use correct operand in a define_peephole2.
4892
4893 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4894
4895 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
4896
4897 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4898
4899 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
4900 this_insn if it is an INSN or JUMP_INSN.
4901 (force_offsettable): Look at base, not at addr.
4902 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
4903 on things that aren't necessarily CONST_INTs.
4904
4905 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
4906
4907 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
4908 -mfpmath=sse is the default also for x86-32 targets with SSE2
4909 instruction set when @option{-ffast-math} is enabled
4910
4911 2017-02-24 Jeff Law <law@redhat.com>
4912
4913 PR rtl-optimizatoin/79286
4914 * ira.c (update_equiv_regs): Drop may_trap_p exception to
4915 dominance test.
4916
4917 2017-02-24 Richard Biener <rguenther@suse.de>
4918
4919 PR tree-optimization/79389
4920 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
4921 debug insns.
4922
4923 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
4924
4925 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
4926 function comment to reflect reality.
4927 (loop_exits_before_overflow): Fix typo in function description.
4928
4929 2017-02-24 Richard Biener <rguenther@suse.de>
4930
4931 PR tree-optimization/79389
4932 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
4933 properly that a threading opportunity exists. Detect conditional
4934 copy/constant propagation opportunities.
4935
4936 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
4937
4938 * config/visium/visium.md (type): Add trap.
4939 (b): New mode attribute.
4940 (*btst): Rename into...
4941 (*btst<mode>): ...this and adjust.
4942 (*cbranchsi4_btst_insn): Rename into...
4943 (*cbranch<mode>4_btst_insn): ...this and adjust.
4944 (trap): New define_insn.
4945
4946 2017-02-23 Jakub Jelinek <jakub@redhat.com>
4947
4948 PR tree-optimization/79389
4949 * ifcvt.c (struct noce_if_info): Add rev_cond field.
4950 (noce_reversed_cond_code): New function.
4951 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
4952 reversed_comparison_code. Formatting fix.
4953 (noce_try_store_flag): Test rev_cond != NULL in addition to
4954 reversed_comparison_code.
4955 (noce_try_store_flag_constants): Likewise.
4956 (noce_try_store_flag_mask): Likewise.
4957 (noce_try_addcc): Use rev_cond if non-NULL instead of
4958 reversed_comparison_code.
4959 (noce_try_cmove_arith): Likewise. Formatting fixes.
4960 (noce_try_minmax, noce_try_abs): Clear rev_cond.
4961 (noce_find_if_block): Initialize rev_cond.
4962 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
4963 instead of false as last argument never attempt to reverse it
4964 afterwards.
4965
4966 2017-02-23 Bin Cheng <bin.cheng@arm.com>
4967
4968 PR tree-optimization/79663
4969 * tree-predcom.c (combine_chains): Process refs in reverse order
4970 only for ZERO length chains, and add explaining comment.
4971
4972 2017-02-23 Jeff Law <law@redhat.com>
4973
4974 PR tree-optimization/79578
4975 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
4976 in call to operand_equal_p.
4977
4978 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
4979
4980 PR target/71017
4981 * config/i386/cpuid.h: Fix another undefined behavior.
4982
4983 2017-02-23 Richard Biener <rguenther@suse.de>
4984
4985 PR tree-optimization/79683
4986 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
4987 vector types for data-refs.
4988
4989 2017-02-23 Martin Liska <mliska@suse.cz>
4990
4991 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
4992
4993 2017-02-23 Jakub Jelinek <jakub@redhat.com>
4994
4995 PR middle-end/79665
4996 * internal-fn.c (get_range_pos_neg): Moved to ...
4997 * tree.c (get_range_pos_neg): ... here. No longer static.
4998 * tree.h (get_range_pos_neg): New prototype.
4999 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
5000 are known to be in between 0 and signed maximum inclusive, try to
5001 expand both unsigned and signed divmod and use the cheaper one from
5002 those.
5003
5004 2017-02-22 Jeff Law <law@redhat.com>
5005
5006 PR tree-optimization/79578
5007 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
5008 to compare base operands.
5009
5010 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
5011
5012 PR target/79211
5013 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
5014 gpc_reg_operand instead of fpr_reg_operand.
5015
5016 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
5017
5018 * config/mips/mips.c (mips_return_in_memory): Force FP
5019 vector types to be returned in memory for o32 ABI.
5020
5021 2017-02-22 Jakub Jelinek <jakub@redhat.com>
5022
5023 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
5024 instead of DW_TAG_member for static data member declarations and don't
5025 set no_linkage_name for static inline data members.
5026 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
5027 to DW_TAG_member.
5028
5029 2017-02-22 Martin Liska <mliska@suse.cz>
5030
5031 * doc/invoke.texi: Replace inequality signs with square brackets
5032 for -Wnormalized.
5033
5034 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5035
5036 PR tree-optimization/68644
5037 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
5038
5039 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
5040
5041 PR target/78660
5042 * lra-constraints.c (simplify_operand_subreg): Handle
5043 WORD_REGISTER_OPERATIONS targets.
5044
5045 2017-02-22 Jakub Jelinek <jakub@redhat.com>
5046
5047 PR target/70465
5048 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
5049 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
5050 elimination by swapping fld*.
5051
5052 2017-02-22 Richard Biener <rguenther@suse.de>
5053
5054 PR tree-optimization/79673
5055 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
5056 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
5057 irrelevant address-space qualifiers and avoiding a
5058 ADDR_SPACE_CONVERT_EXPR from fold_convert.
5059
5060 2017-02-22 Richard Biener <rguenther@suse.de>
5061
5062 PR tree-optimization/79666
5063 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
5064 to not symbolically negate if that may introduce undefined
5065 overflow.
5066
5067 2017-02-22 Martin Liska <mliska@suse.cz>
5068
5069 PR lto/79587
5070 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
5071 * data-streamer-out.c (streamer_write_gcov_count_stream):
5072 Likewise.
5073 * value-prof.c (stream_out_histogram_value): Make assert more
5074 precise based on type of counter.
5075
5076 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
5077
5078 PR target/79593
5079 * config/i386/i386.md (standard_x87sse_constant_load splitter):
5080 Use nonimmediate_operand instead of memory_operand for operand 1.
5081 (float-extend standard_x87sse_constant_load splitter): Ditto.
5082
5083 2017-02-21 Jeff Law <law@redhat.com>
5084
5085 PR tree-optimization/79621
5086 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
5087 blocks with edges to themselves.
5088
5089 2017-02-21 Jakub Jelinek <jakub@redhat.com>
5090
5091 PR target/79633
5092 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
5093 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
5094 Use gimple_call_builtin_p.
5095
5096 PR target/79570
5097 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
5098 on temporarily removed DEBUG_INSNs.
5099
5100 PR tree-optimization/79649
5101 * tree-loop-distribution.c (classify_partition): Give up on
5102 non-generic address space loads/stores.
5103
5104 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
5105
5106 * doc/loop.texi (Loop manipulation): Remove nonexistent
5107 tree_ssa_loop_version from the documentation.
5108 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
5109
5110 2017-02-21 Jakub Jelinek <jakub@redhat.com>
5111
5112 PR target/79494
5113 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
5114 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
5115 * config/rs6000/rs6000.c: Include except.h.
5116 (rs6000_expand_split_stack_prologue): Call
5117 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
5118
5119 2017-02-21 Martin Jambor <mjambor@suse.cz>
5120
5121 PR lto/79579
5122 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
5123 have been analyzed.
5124
5125 2017-02-21 Martin Jambor <mjambor@suse.cz>
5126
5127 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
5128 for backward compatibility only.
5129 * doc/invoke.texi (Option Summary): Remove all references to
5130 -fipa-cp-alignment.
5131
5132 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
5133
5134 PR target/78660
5135 Revert:
5136 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
5137
5138 * lra-constraints.c (curr_insn_transform): Handle
5139 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
5140
5141 2017-02-21 Martin Liska <mliska@suse.cz>
5142
5143 * config/i386/i386.opt: Replace -masm-dialect with -masm.
5144
5145 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
5146
5147 PR translation/79638
5148 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
5149
5150 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
5151
5152 PR ada/67205
5153 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
5154 (arm_function_ok_for_sibcall): Return false for an indirect call by
5155 descriptor if all the argument registers are used.
5156 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
5157 alignment of the function.
5158
5159 2017-02-21 Jakub Jelinek <jakub@redhat.com>
5160
5161 PR tree-optimization/61441
5162 * simplify-rtx.c (simplify_const_unary_operation): For
5163 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
5164 the sNaN unmodified.
5165
5166 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
5167
5168 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
5169 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
5170 instead of SYSTEM_HEADER_DIR.
5171
5172 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
5173 Martin Liška <mliska@suse.cz>
5174
5175 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
5176 Fix typos and grammar, use active voice, and clarify.
5177
5178 2017-02-20 Marek Polacek <polacek@redhat.com>
5179
5180 PR middle-end/79537
5181 * gimplify.c (gimplify_expr): Handle unused *&&L;.
5182
5183 PR sanitizer/79558
5184 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
5185
5186 2017-02-20 Jakub Jelinek <jakub@redhat.com>
5187
5188 PR target/79568
5189 * config/i386/i386.c (ix86_expand_builtin): Handle
5190 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
5191 ix86_builtins_isa[fcode].isa as a requirement of those
5192 flags and any other flag in the bitmask.
5193 (ix86_init_mmx_sse_builtins): Use 0 instead of
5194 ~OPTION_MASK_ISA_64BIT as mask.
5195 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
5196 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
5197 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
5198 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
5199
5200 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
5201
5202 PR target/78012
5203 * lra-constraints.c (split_reg): Check requested split mode
5204 is supported by the register.
5205
5206 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
5207
5208 * lra-constraints.c (simplify_operand_subreg): Remove early
5209 return false.
5210
5211 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
5212
5213 PR target/78660
5214 * lra-constraints.c (curr_insn_transform): Tighten condition
5215 for converting SUBREG reloads from OP_OUT to OP_INOUT.
5216
5217 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
5218
5219 PR target/78660
5220 * lra-constraints.c (curr_insn_transform): Handle
5221 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
5222
5223 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
5224
5225 Revert:
5226 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
5227
5228 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
5229
5230 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
5231
5232 PR c++/69523
5233 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
5234 description.
5235
5236 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5237
5238 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
5239 for FMA_EXPR.
5240
5241 2017-02-18 Jakub Jelinek <jakub@redhat.com>
5242
5243 * final.c (last_columnnum, override_columnnum): New variables.
5244 (final_start_function): Set last_columnnum, pass it to begin_prologue
5245 hook and pass 0 to dwarf2out_begin_prologue.
5246 (final_scan_insn): Update override_columnnum. Pass last_columnnum
5247 to source_line debug hook.
5248 (notice_source_line): Compute last_columnnum and for debug_column_info
5249 return true on column changes.
5250 * debug.h (struct gcc_debug_hooks): Add column argument to
5251 source_line and begin_prologue hooks.
5252 (debug_nothing_int_charstar_int_bool): Remove prototype.
5253 (debug_nothing_int_int_charstar,
5254 debug_nothing_int_int_charstar_int_bool): New prototypes.
5255 (dwarf2out_begin_prologue): Add column argument.
5256 * debug.c (do_nothing_debug_hooks): Adjust source_line and
5257 begin_prologue hooks.
5258 (debug_nothing_int_charstar_int_bool): Remove.
5259 (debug_nothing_int_int_charstar,
5260 debug_nothing_int_int_charstar_int_bool): New functions.
5261 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
5262 through to dwarf2out_source_line.
5263 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
5264 (dwarf2out_source_line): Add column argument, emit it if requested.
5265 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
5266 arguments.
5267 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
5268 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
5269 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
5270 through to dwarf2out_begin_prologue.
5271 (vmsdbgout_source_line): Add column argument, pass it through to
5272 dwarf2out_source_line.
5273 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
5274 dbxout_source_line caller.
5275 (dbxout_source_line): Add column argument.
5276
5277 * common.opt (gno-column-info, gcolumn-info): New options.
5278 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
5279 (check_die): Also test for multiple DW_AT_decl_column attributes.
5280 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
5281 DW_AT_decl_column if requested.
5282 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
5283 if requested.
5284 (gen_variable_die): Likewise.
5285 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
5286 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
5287
5288 PR target/79569
5289 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
5290 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
5291 (ix86_handle_option): Handle OPT_m3dnowa.
5292 * doc/invoke.texi (-m3dnowa): Document.
5293 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
5294 -m3dnowa instead of -m3dnow -march=athlon.
5295
5296 PR target/79559
5297 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
5298 instead of gcc_assert for K, r and R code checks. Formatting fixes.
5299
5300 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5301
5302 PR target/79261
5303 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
5304 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
5305 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
5306 generator for vsx_xxpermdi_<mode>_be.
5307 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
5308 force big-endian semantics.
5309 (vsx_xxpermdi_<mode>_be): New define_expand with same
5310 implementation as previous version of vsx_xxpermdi_<mode>.
5311
5312 2017-02-17 Jakub Jelinek <jakub@redhat.com>
5313
5314 PR tree-optimization/79327
5315 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
5316 variable, its initialization and use.
5317
5318 2017-02-17 Julia Koval <julia.koval@intel.com>
5319
5320 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
5321 (OPTION_MASK_ISA_PKU_UNSET): New.
5322 (ix86_handle_option): Handle -mrdpid.
5323 * config/i386/cpuid.h (bit_RDPID): New.
5324 * config/i386/driver-i386.c (host_detect_local_cpu):
5325 Detect RDPID feature.
5326 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
5327 * config/i386/i386-c.c (ix86_target_macros_internal):
5328 Handle RDPID flag.
5329 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
5330 (ix86_valid_target_attribute_inner_p): Add "rdpid".
5331 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
5332 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
5333 * config/i386/i386.md (define_insn "rdpid"): New.
5334 * config/i386/i386.opt Add -mrdpid.
5335 * config/i386/immintrin.h (_rdpid_u32): New.
5336
5337 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
5338
5339 PR rtl-optimization/79541
5340 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
5341 instead of transforming it into USE.
5342
5343 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
5344
5345 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
5346 If HONOR_SNANS (SFmode) force the input to a register.
5347 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
5348 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
5349 an frsp or similar insn.
5350
5351 2017-02-17 Martin Liska <mliska@suse.cz>
5352
5353 PR rtl-optimization/79577
5354 * params.def (selsched-max-sched-times): Increase minimum to 1.
5355
5356 2017-02-17 Martin Liska <mliska@suse.cz>
5357
5358 PR rtl-optimization/79574
5359 * gcse.c (want_to_gcse_p): Prevent integer overflow.
5360
5361 2017-02-17 Martin Liska <mliska@suse.cz>
5362
5363 PR tree-optimization/79529
5364 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
5365 ssa_defined_default_def_p to handle cases which are implicitly
5366 defined.
5367 * tree-ssa.c (ssa_defined_default_def_p): New function.
5368 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
5369 which are implicitly defined.
5370 * tree-ssa.h (ssa_defined_default_def_p): Declare.
5371
5372 2017-02-17 Richard Biener <rguenther@suse.de>
5373
5374 PR middle-end/79576
5375 * params.def (max-ssa-name-query-depth): Limit to 10.
5376
5377 2017-02-17 Richard Biener <rguenther@suse.de>
5378
5379 PR tree-optimization/79552
5380 * tree-ssa-structalias.c (visit_loadstore): Properly verify
5381 default defs.
5382
5383 2017-02-17 Richard Biener <rguenther@suse.de>
5384
5385 PR bootstrap/79567
5386 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
5387
5388 2017-02-17 Marek Polacek <polacek@redhat.com>
5389
5390 PR middle-end/79536
5391 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
5392 (fold_negate_expr): New wrapper.
5393
5394 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
5395
5396 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
5397 Correct terminology and de-emphasize pre-standard behavior.
5398
5399 2017-02-16 Alan Modra <amodra@gmail.com>
5400
5401 PR rtl-optimization/79286
5402 * ira.c (def_dominates_uses): New function.
5403 (update_equiv_regs): Don't create an equivalence for insns that
5404 may trap where the register def does not dominate the use.
5405
5406 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
5407
5408 PR rtl-optimization/78127
5409 * lra.c (lra): Call lra_eliminate before finish the loop after
5410 lra_constraint.
5411
5412 2017-02-16 Richard Biener <rguenther@suse.de>
5413
5414 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
5415 isl/isl_val.h.
5416 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
5417 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
5418 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
5419 (isl_val_int_from_wi): New function.
5420 (extract_affine_gmp): Rename to ...
5421 (extract_affine_wi): ... this, take a widest_int.
5422 (extract_affine_int): Just wrap extract_affine_wi.
5423 (add_param_constraints): Use isl_val_int_from_wi.
5424 (add_loop_constraints): Likewise, and extract_affine_wi.
5425
5426 2017-02-15 Jeff Law <law@redhat.com>
5427
5428 PR middle-end/79521
5429 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
5430 ira_init_register_move_cost_if_necessary.
5431
5432 2017-02-15 Martin Sebor <msebor@redhat.com>
5433
5434 PR middle-end/32003
5435 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
5436 removed in a prior commit.
5437
5438 2017-02-15 Bin Cheng <bin.cheng@arm.com>
5439
5440 PR tree-optimization/79347
5441 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
5442 counters during peeling.
5443
5444 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
5445
5446 * Makefile.in (site.exp): Remove "set ISLVER".
5447
5448 2017-02-15 Jakub Jelinek <jakub@redhat.com>
5449
5450 PR target/79487
5451 * real.c (real_from_integer): Call real_convert even for decimal.
5452
5453 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
5454
5455 PR target/79421
5456 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
5457
5458 2017-02-14 Andrew Pinski <apinski@cavium.com>
5459
5460 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
5461 cores and change the partno/implementer to be correct.
5462 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
5463 the 'B" as the implementer.
5464 * config/aarch64/aarch64-tune.md: Regenerate.
5465
5466 2017-02-14 Carl Love <cel@us.ibm.com>
5467
5468 * config/rs6000/rs6000.c: Add case statement entry to make the
5469 xvcvuxdsp built-in argument unsigned.
5470 * config/rs6000/vsx.md: Fix the source and return operand types so they
5471 match the instruction definitions from the ISA document. Fix typo
5472 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
5473 statement.
5474
5475 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
5476
5477 PR target/79282
5478 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
5479 member early_clobber_alts.
5480 * lra-lives.c (reg_early_clobber_p): New.
5481 (process_bb_lives): Use it.
5482 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
5483 (debug_operand_data): Initialize early_clobber_alts.
5484 (setup_operand_alternative): Set up early_clobber_alts.
5485 (collect_non_operand_hard_regs): Ditto. Pass early clobber
5486 alternatives to new_insn_reg.
5487 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
5488 it.
5489 (lra_update_insn_regno_info): Pass the new arg.
5490
5491 2017-02-14 Jakub Jelinek <jakub@redhat.com>
5492
5493 PR middle-end/79505
5494 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
5495 (new_oacc_loop_raw): Don't clear already cleared fields.
5496
5497 PR target/79481
5498 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
5499 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
5500 _mm512_prefetch_i64gather_ps): New inline functions and macros.
5501
5502 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
5503
5504 PR target/79495
5505 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
5506
5507 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
5508
5509 PR target/79498
5510 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
5511 the extra instruction to the right place to store 128-bit constant
5512 when needed.
5513
5514 2017-02-14 Martin Sebor <msebor@redhat.com>
5515
5516 PR middle-end/79448
5517 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
5518 warning for strings of unknown length.
5519
5520 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
5521
5522 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
5523
5524 2017-02-14 Jeff Law <law@redhat.com>
5525
5526 PR target/79404
5527 * ira-costs.c (scan_one_insn): Initialize register move costs
5528 for pseudos seen in USE/CLOBBER insns.
5529
5530 PR tree-optimization/79095
5531 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
5532 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
5533 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
5534 if the operands are known to be not equal, then the resulting range
5535 is ~[0,0].
5536 (intersect_ranges): If the new range is ~[0,0] and the old range is
5537 wide, then prefer ~[0,0].
5538 * tree-vrp.c (overflow_comparison_p_1): New function.
5539 (overflow_comparison_p): New function.
5540 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
5541 if NAME is used in an overflow test.
5542 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
5543 overflow check that can be expressed as an equality test, then adjust
5544 ops to be that equality test.
5545
5546 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5547
5548 * config/s390/s390-builtin-types.def: Remove flags argument.
5549 * config/s390/s390.c (s390_init_builtins): Likewise.
5550
5551 2017-02-14 Martin Liska <mliska@suse.cz>
5552
5553 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
5554 vector. Fix trailing white spaces.
5555
5556 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
5557
5558 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
5559 HFmode.
5560
5561 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5562
5563 PR rtl-optimization/68664
5564 * config/arm/arm.c (arm_sched_can_speculate_insn):
5565 New function. Declare prototype.
5566 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
5567
5568 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5569
5570 PR rtl-optimization/68664
5571 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
5572 New function.
5573 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
5574
5575 2017-02-14 Amit Pawar <amit.pawar@amd.com>
5576
5577 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
5578 max skip bytes for function, loop and jump.
5579
5580 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5581
5582 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
5583 ABS_EXPR for gimple dump.
5584
5585 2017-02-14 Jakub Jelinek <jakub@redhat.com>
5586
5587 PR target/79462
5588 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
5589
5590 PR tree-optimization/79408
5591 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
5592 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
5593 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
5594 also if rhs1 is INTEGER_CST.
5595
5596 2017-02-14 Richard Biener <rguenther@suse.de>
5597
5598 PR middle-end/79432
5599 * tree-into-ssa.c (insert_phi_nodes): When the function can
5600 have abnormal edges rewrite SSA names with broken use-def
5601 dominance out of SSA and register them for PHI insertion.
5602
5603 2017-02-13 Martin Sebor <msebor@redhat.com>
5604
5605 PR middle-end/79496
5606 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
5607 clearing info.nowrite flag when snprintf size argument is a range.
5608
5609 2017-02-13 Jakub Jelinek <jakub@redhat.com>
5610
5611 * cprop.c (cprop_jump): Add missing space in string literal.
5612 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
5613 (get_constraint_for_component_ref): Likewise.
5614 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5615 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
5616 * lra-constraints.c (process_alt_operands): Likewise.
5617 * ipa-inline.c (inline_small_functions): Likewise.
5618 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
5619 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
5620 * trans-mem.c (diagnose_tm_1_op): Likewise.
5621 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
5622 (grid_parallel_clauses_gridifiable): Likewise.
5623
5624 * config/nvptx/mkoffload.c (process): Add space in between
5625 , and %d.
5626
5627 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
5628 "MOD4_SSE_REGS" and "ALL_REGS".
5629
5630 * spellcheck.c (test_data): Add , in between "foo" and "food".
5631
5632 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5633
5634 PR target/79449
5635 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
5636 boundary crossing check and subsequent code generation agree.
5637
5638 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5639
5640 * config/aarch64/aarch64.c (has_memory_op): Delete.
5641 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
5642 has_memory_op.
5643
5644 2017-02-13 Jakub Jelinek <jakub@redhat.com>
5645
5646 PR rtl-optimization/79388
5647 PR rtl-optimization/79450
5648 * combine.c (distribute_notes): When removing TEM_INSN for which
5649 corresponding dest has last value recorded, invalidate that last
5650 value.
5651
5652 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5653
5654 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
5655 of explicit '@'. Add missing assembly comment marker on branch costs
5656 printout.
5657
5658 2017-02-13 Nathan Sidwell <nathan@acm.org>
5659
5660 * gengtype-lex.l (<in_struct>): Add '/'.
5661
5662 2017-02-13 Martin Liska <mliska@suse.cz>
5663
5664 PR c/79471
5665 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
5666
5667 2017-02-13 Richard Biener <rguenther@suse.de>
5668
5669 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
5670 Remove.
5671 * configure: Re-generate.
5672 * config.in: Likewise.
5673 * graphite-dependences.c: Simplify as if
5674 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
5675 * graphite-isl-ast-to-gimple.c: Likewise.
5676 * graphite-optimize-isl.c: Likewise.
5677 * graphite-poly.c: Likewise.
5678 * graphite-sese-to-poly.c: Likewise.
5679 * graphite.h: Likewise.
5680 * toplev.c: Include isl/version.h and use isl_version () for
5681 printing the ISL version.
5682 * doc/install.texi: Update ISL requirement.
5683
5684 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
5685
5686 * doc/standards.texi (Standards): Update reference to
5687 Objective-C 2.0.
5688
5689 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
5690
5691 * doc/extend.texi (Named Address Spaces): sourceware.org now
5692 defaults to https.
5693 * doc/install.texi (Binaries): Ditto.
5694 (Specific): Ditto.
5695
5696 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
5697
5698 * doc/cpp.texi: Replace "stringify"/"stringification" with C
5699 standard terminology "stringize"/"stringizing" throughout.
5700 * doc/cppinternals.texi: Likewise.
5701
5702 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
5703
5704 * doc/extend.texi: Fix some spelling mistakes and typos.
5705 * doc/invoke.texi: Likewise.
5706
5707 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
5708
5709 PR ipa/79224
5710 * params.def (inline-min-speedup) Change from 10 to 8.
5711
5712 2017-02-11 Jakub Jelinek <jakub@redhat.com>
5713
5714 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
5715 4.5.
5716
5717 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
5718
5719 PR ipa/79224
5720 * ipa-inline-analysis.c (get_minimal_bb): New function.
5721 (record_modified): Use it.
5722 (remap_edge_change_prob): Handle also ancestor functions.
5723
5724 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
5725
5726 * doc/contrib.texi (Contributors): Remove broken link into
5727 the Mauve CVS repository.
5728
5729 2017-02-11 Jakub Jelinek <jakub@redhat.com>
5730
5731 PR middle-end/79454
5732 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
5733 result computation whenever lhs doesn't have vector mode, not
5734 just when it has BLKmode.
5735
5736 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
5737
5738 * doc/makefile.texi (profiledbootstrap): Refer to the
5739 installation instructions only in textual form.
5740
5741 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5742
5743 PR target/79295
5744 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
5745
5746 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
5747
5748 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
5749 (Specific): Update mingw-w64 reference.
5750 (Binaries): Ditto.
5751 (Specific): Remove broken link to Renesas RX processor.
5752
5753 2017-02-10 Richard Biener <rguenther@suse.de>
5754
5755 * toplev.c (process_options): Do not mention obsolete graphite
5756 options when printing sorry message about missing graphite support.
5757 Mention -floop-nest-optimize.
5758
5759 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
5760
5761 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
5762 (vtst_p16): Likewise.
5763 (vtstq_p8): Likewise.
5764 (vtstq_p16): Likewise.
5765 (vtst_p64): New.
5766 (vtstq_p64): Likewise.
5767 * config/arm/arm_neon.h (vgetq_lane_p64): New.
5768 (vset_lane_p64): New.
5769 (vsetq_lane_p64): New.
5770
5771 2017-02-10 Jakub Jelinek <jakub@redhat.com>
5772
5773 PR tree-optimization/79411
5774 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
5775 stmt operands are SSA_NAMEs used in abnormal phis.
5776 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
5777 phis.
5778
5779 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
5780
5781 PR ipa/70795
5782 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
5783 flag if needed.
5784
5785 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
5786
5787 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
5788
5789 2017-02-09 Jakub Jelinek <jakub@redhat.com>
5790
5791 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
5792 to avoid warning.
5793
5794 PR c/79413
5795 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
5796 not arbitrary TREE_CONSTANT.
5797
5798 PR c/79431
5799 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
5800 "omp declare target link" attribute unless is_global_var.
5801 * omp-offload.c (find_link_var_op): Likewise.
5802
5803 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
5804 Chung-Lin Tang <cltang@codesourcery.com>
5805
5806 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
5807 OMP_CLAUSE_TILE.
5808 (gimplify_adjust_omp_clauses): Don't delete TILE.
5809 (gimplify_omp_for): Deal with TILE.
5810 * internal-fn.c (expand_GOACC_TILE): New function.
5811 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
5812 (GOACC_TILE): New.
5813 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
5814 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
5815 element fields.
5816 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
5817 avoid DIV for outermost collapse var.
5818 (expand_oacc_for): Insert tile element loop as needed. Adjust.
5819 Remove out of date comments, fix whitespace.
5820 * omp-general.c (omp_extract_for_data): Deal with tiling.
5821 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
5822 adjust OLF_DIM_BASE value.
5823 (struct omp_for_data): Add tiling field.
5824 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
5825 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
5826 for auto loops. Remove default auto determining, moved to
5827 oacc_loop_fixed_partitions.
5828 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
5829 stmts, add e_mask field.
5830 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
5831 (oacc_thread_numbers): Use oacc_dim_call.
5832 (oacc_xform_tile): New.
5833 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
5834 (finish_oacc_loop): Adjust for ifns vector.
5835 (oacc_loop_discover_walk): Append loop abstraction sites to list,
5836 add case for GOACC_TILE fns.
5837 (oacc_loop_xform_loop): Delete.
5838 (oacc_loop_process): Iterate over call list directly, and add
5839 handling for GOACC_TILE fns.
5840 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
5841 dump partitioning.
5842 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
5843 vector partitioning to outer loops. Assign 2 partitions to loops
5844 when available. Add TILE handling.
5845 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
5846 (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
5847 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
5848 * tree.c (omp_clause_num_ops): Adjust TILE ops.
5849 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
5850
5851 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
5852
5853 * configure.ac (ACX_BUGURL): Update.
5854 * configure: Regenerate.
5855
5856 2017-02-09 Richard Biener <rguenther@suse.de>
5857
5858 PR tree-optimization/69823
5859 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
5860 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
5861
5862 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
5863
5864 * config/arc/arc-c.def: Add __NPS400__ definition.
5865 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
5866 (TARGET_NPS400): Define.
5867
5868 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
5869
5870 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
5871 file.
5872 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
5873 pointer, arch_info.
5874 (arc_cpu_types): Fill the arch_info field with a pointer into the
5875 arc_arch_types table.
5876 (arc_selected_cpu): Declare.
5877 * config/arc/arc.c (arc_selected_cpu): Make global.
5878 (arc_selected_arch): Delete.
5879 (arc_base_cpu): Delete.
5880 (arc_override_options): Remove references to deleted variables,
5881 update access to arch information.
5882 (ARC_OPT): Update access to arch information.
5883 (ARC_OPTX): Likewise.
5884 * config/arc/arc.h (arc_base_cpu): Remove declaration.
5885 (TARGET_ARC600): Update access to arch information.
5886 (TARGET_ARC601): Likewise.
5887 (TARGET_ARC700): Likewise.
5888 (TARGET_EM): Likewise.
5889 (TARGET_HS): Likewise.
5890 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
5891 information.
5892
5893 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
5894
5895 PR target/78604
5896 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
5897 condition/operands for integer GE/LE/GEU/LEU operations.
5898
5899 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
5900
5901 PR translation/79397
5902 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
5903 of AltiVec.
5904
5905 2017-02-08 Martin Jambor <mjambor@suse.cz>
5906
5907 PR ipa/79375
5908 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
5909 whether allocation happened.
5910 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
5911 nothing was allocated.
5912
5913 2017-02-08 Jakub Jelinek <jakub@redhat.com>
5914
5915 PR tree-optimization/79408
5916 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
5917 constant, but SSA_NAME with a known integer range, use the minimum
5918 of that range instead of op1 to determine if modulo can be replaced
5919 with its first operand.
5920
5921 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5922
5923 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
5924
5925 2017-02-08 Richard Biener <rguenther@suse.de>
5926
5927 PR tree-optimization/71824
5928 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
5929 Check all loops contained in the merged region.
5930
5931 2017-02-07 Andrew Pinski <apinski@cavium.com>
5932
5933 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
5934
5935 2017-02-07 Andrew Pinski <apinski@cavium.com>
5936
5937 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
5938 (thunderxt88): Likewise.
5939 (thunderxt81): Disable LSE and change v8.1 to v8.
5940 (thunderxt83): Likewise.
5941
5942 2017-02-07 Jakub Jelinek <jakub@redhat.com>
5943 Richard Biener <rguenther@suse.de>
5944
5945 PR middle-end/79399
5946 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
5947 type from int to size_t.
5948 * ira-costs.c (struct_costs_size): Change type from int to size_t.
5949
5950 2017-02-07 Jakub Jelinek <jakub@redhat.com>
5951
5952 PR rtl-optimization/79386
5953 * cprop.c (bypass_conditional_jumps): Initialize
5954 bypass_last_basic_block already before splitting bbs after
5955 unconditional traps...
5956 (bypass_conditional_jumps): ... rather than here.
5957
5958 PR target/79299
5959 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
5960 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
5961 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
5962 fix -masm=intel patterns.
5963
5964 2017-02-07 Richard Biener <rguenther@suse.de>
5965
5966 PR tree-optimization/79256
5967 PR middle-end/79278
5968 * builtins.c (get_object_alignment_2): Use min_align_of_type
5969 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
5970 and ADJUST_FIELD_ALIGN.
5971
5972 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
5973 type parameter.
5974 * doc/tm.texi: Regenerate.
5975 * stor-layout.c (layout_decl): Adjust.
5976 (update_alignment_for_field): Likewise.
5977 (place_field): Likewise.
5978 (min_align_of_type): Likewise.
5979 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
5980 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
5981 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
5982 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
5983 * config/frv/frv.c (frv_adjust_field_align): Likewise.
5984 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
5985 * config/i386/i386.c (x86_field_alignment): Likewise.
5986 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5987 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
5988 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
5989 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5990 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
5991 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
5992 Likewise.
5993
5994 Revert
5995 2017-01-30 Richard Biener <rguenther@suse.de>
5996
5997 PR tree-optimization/79256
5998 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
5999 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
6000 alignment on TYPE.
6001
6002 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
6003
6004 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
6005 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
6006 builtins to SImode and emit a zero-extend, if necessary.
6007
6008 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
6009
6010 * docs/invoke.texi (RISC-V Options): Alphabetize.
6011
6012 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
6013
6014 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
6015 options.
6016
6017 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
6018
6019 * config/riscv/riscv.c: New file.
6020 * gcc/common/config/riscv/riscv-common.c: Likewise.
6021 * config.gcc: Likewise.
6022 * config/riscv/constraints.md: Likewise.
6023 * config/riscv/elf.h: Likewise.
6024 * config/riscv/generic.md: Likewise.
6025 * config/riscv/linux.h: Likewise.
6026 * config/riscv/multilib-generator: Likewise.
6027 * config/riscv/peephole.md: Likewise.
6028 * config/riscv/pic.md: Likewise.
6029 * config/riscv/predicates.md: Likewise.
6030 * config/riscv/riscv-builtins.c: Likewise.
6031 * config/riscv/riscv-c.c: Likewise.
6032 * config/riscv/riscv-ftypes.def: Likewise.
6033 * config/riscv/riscv-modes.def: Likewise.
6034 * config/riscv/riscv-opts.h: Likewise.
6035 * config/riscv/riscv-protos.h: Likewise.
6036 * config/riscv/riscv.h: Likewise.
6037 * config/riscv/riscv.md: Likewise.
6038 * config/riscv/riscv.opt: Likewise.
6039 * config/riscv/sync.md: Likewise.
6040 * config/riscv/t-elf-multilib: Likewise.
6041 * config/riscv/t-linux: Likewise.
6042 * config/riscv/t-linux-multilib: Likewise.
6043 * config/riscv/t-riscv: Likewise.
6044 * configure.ac: Likewise.
6045 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
6046 Waterman as RISC-V maintainers.
6047 * doc/install.texi: Add RISC-V entries.
6048 * doc/invoke.texi: Add RISC-V options section.
6049 * doc/md.texi: Add RISC-V constraints section.
6050 * configure: Regenerated.
6051
6052 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6053
6054 PR target/66144
6055 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
6056 false values to be constant vectors with all 0 or all 1 bits set.
6057 (vcondu<mode><mode>): Likewise.
6058 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
6059 predicate.
6060 (fpmask_comparison_operator): Update comment.
6061 (vecint_comparison_operator): New predicate.
6062 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
6063 vector conditionals when the true and false values are constant
6064 vectors with all 0 bits or all 1 bits set.
6065
6066 2017-02-06 Martin Sebor <msebor@redhat.com>
6067
6068 PR tree-optimization/79376
6069 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
6070
6071 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
6072
6073 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
6074 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
6075 to simplify split condition.
6076
6077 2017-02-06 Jakub Jelinek <jakub@redhat.com>
6078
6079 * omp-expand.c (oxpand_omp_atomic_fetch_op,
6080 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
6081 false.
6082
6083 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
6084
6085 PR rtl-optimization/68664
6086 * target.def (can_speculate_insn): New hook.
6087 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
6088 * doc/tm.texi: Regenerate.
6089 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
6090 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
6091 (rs6000_sched_can_speculate_insn): New function.
6092
6093 2017-02-06 Jakub Jelinek <jakub@redhat.com>
6094
6095 PR tree-optimization/79284
6096 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
6097 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
6098 vectorizable_mask_load_store, vectorizable_operation,
6099 vect_is_simple_cond, get_same_sized_vectype): Use it instead
6100 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
6101 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
6102 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
6103 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6104 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
6105 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
6106 is_gimple_assign (stmt). Replace another such test with
6107 is_gimple_assign (stmt).
6108
6109 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
6110
6111 PR target/78883
6112 * config/avr/avr.c (rtl-iter.h): Include it.
6113 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
6114 (avr_legitimate_combined_insn): ...and implementation.
6115
6116 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
6117
6118 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
6119 * config/s390/s390.c (s390_const_operand_ok)
6120 (s390_canonicalize_comparison, s390_extract_part)
6121 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
6122 (s390_contiguous_bitmask_p, s390_rtx_costs)
6123 (legitimize_pic_address): Likewise.
6124 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
6125 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
6126 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
6127 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
6128 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
6129
6130 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
6131
6132 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
6133 REGNO($0) == REGNO($1).
6134
6135 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6136
6137 * config/s390/linux.h(SIZE_TYPE): Add comment.
6138
6139 2017-02-06 Julian Brown <julian@codesourcery.com>
6140 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
6141 Virendra Pathak <virendra.pathak@broadcom.com>
6142
6143 * config/aarch64/aarch64-cores.def: Change the scheduler
6144 to Thunderx2t99.
6145 * config/aarch64/aarch64.md: Include thunderx2t99.md.
6146 * config/aarch64/thunderx2t99.md: New file.
6147
6148 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
6149
6150 * doc/standards.texi (Go Language): Update link to language
6151 standard.
6152
6153 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
6154
6155 * tree-eh.c (lower_resx): Sanitize profile.
6156 (cleanup_empty_eh_move_lp): Likewise.
6157
6158 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
6159
6160 PR tree-ssa/79347
6161 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
6162 ELSE_PROB.
6163 * cfgloopmanip.h (loop_version): Update prototype.
6164 * modulo-sched.c (sms_schedule): Update call of loop_version.
6165 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
6166 * tree-parloops.c (gen_parallel_loop): Likewise.
6167 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
6168 * tree-ssa-loop-split.c (split_loop): Likewise.
6169 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
6170 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
6171
6172 2017-02-05 Martin Liska <mliska@suse.cz>
6173
6174 PR bootstrap/78985
6175 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
6176 variable to NULL.
6177 (print_operand_address): Initialize a struct to zero.
6178
6179 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
6180
6181 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
6182 garbage collector only in textual form.
6183
6184 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
6185
6186 * doc/extend.texi (x86 specific memory model extensions for
6187 transactional memory): Simplify a phrase.
6188
6189 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
6190
6191 PR target/79353
6192 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
6193 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
6194 (atomic_storedi_1): Likewise.
6195
6196 2017-02-04 Jakub Jelinek <jakub@redhat.com>
6197
6198 PR tree-optimization/79338
6199 * tree-parloops.c (gather_scalar_reductions): Don't call
6200 vect_analyze_loop_form for loop->inner before destroying loop's
6201 loop_vinfo.
6202
6203 2017-02-03 Martin Sebor <msebor@redhat.com>
6204
6205 PR tree-optimization/79327
6206 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
6207 when precision has resulted in leading zeros.
6208 (format_integer): Adjust the likely counter to assume an unknown
6209 argument that may be zero is non-zero.
6210
6211 2017-02-03 Jason Merrill <jason@redhat.com>
6212
6213 PR c++/78689
6214 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
6215 avoid copying non-taken branch.
6216
6217 2017-02-03 Jakub Jelinek <jakub@redhat.com>
6218
6219 PR tree-optimization/79340
6220 * tree-vect-loop.c (vectorizable_reduction): Release
6221 vec_defs elements after safe_splicing them into other vectors.
6222 Formatting fixes.
6223
6224 PR tree-optimization/79327
6225 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
6226 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
6227 dirtype.
6228 (format_integer): Use wide_int_to_tree instead of build_int_cst
6229 + to_?hwi. If argmin is NULL, just set argmin and argmax to
6230 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
6231 of shortest and longest sequence.
6232
6233 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
6234
6235 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
6236 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
6237
6238 2017-02-03 Walter Lee <walt@tilera.com>
6239
6240 PR target/78862
6241 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
6242 after initial stackframe link reg save.
6243 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
6244
6245 2017-02-03 Jakub Jelinek <jakub@redhat.com>
6246
6247 PR target/79354
6248 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
6249 wu for stxssp alternative.
6250
6251 2017-02-03 Martin Sebor <msebor@redhat.com>
6252
6253 PR tree-optimization/79352
6254 * gimple-fold.c (get_range_strlen): Add argument.
6255 (get_range_strlen): Change return type to bool.
6256 (get_maxval_strlen): Pass in a dummy argument.
6257 * gimple-fold.h (get_range_strlen): Change return type to bool.
6258 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
6259 * tree.h (array_at_struct_end_p): Add argument.
6260 * tree.c (array_at_struct_end_p): Handle it.
6261
6262 2017-02-03 Martin Liska <mliska@suse.cz>
6263
6264 PR lto/66295
6265 * multiple_target.c (create_dispatcher_calls): Redirect edge
6266 from a caller of a dispatcher.
6267 (expand_target_clones): Make the clones local.
6268 (ipa_target_clone): Do both target clones and resolvers.
6269 (ipa_dispatcher_calls): Remove the pass.
6270 (pass_dispatcher_calls::gate): Likewise.
6271 (make_pass_dispatcher_calls): Likewise.
6272 * passes.def (pass_target_clone): Put as very first IPA early
6273 pass.
6274
6275 2017-02-03 Martin Liska <mliska@suse.cz>
6276
6277 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
6278 in case of a function with ifunc attribute.
6279
6280 2017-02-03 Martin Liska <mliska@suse.cz>
6281
6282 * cgraph.c (cgraph_node::dump): Dump function version info.
6283 * symtab.c (symtab_node::dump_base): Add missing new line.
6284
6285 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
6286
6287 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
6288 (ifcombine_ifandif): Use it.
6289
6290 2017-02-03 Martin Liska <mliska@suse.cz>
6291
6292 * doc/invoke.texi: Document default value for
6293 use-after-scope-direct-emission-threshold.
6294
6295 2017-02-03 Martin Liska <mliska@suse.cz>
6296
6297 PR tree-optimization/79339
6298 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
6299 (format_floating): Likewise.
6300
6301 2017-02-03 Martin Liska <mliska@suse.cz>
6302
6303 PR ipa/79337
6304 * ipa-prop.c (ipa_node_params_t::insert): Remove current
6305 implementation.
6306 (ipa_node_params_t::remove): Likewise.
6307 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
6308 initialization from removed ipa_node_params_t::insert.
6309 (ipa_node_params::~ipa_node_params): Move from removed
6310 ipa_node_params_t::release.
6311 * symbol-summary.h (symbol_summary::m_released): New member.
6312 Do not release a summary twice. Do not allow to call finalizer
6313 for types of a summary that live in GGC memory.
6314
6315 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
6316
6317 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
6318 cmp_branch fusion.
6319
6320 2017-02-02 Martin Sebor <msebor@redhat.com>
6321
6322 PR middle-end/79275
6323 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
6324 (format_string): Tighten up the range of output for non-constant
6325 strings and correct the expected range for wide non-constant strings.
6326
6327 2017-02-02 Martin Sebor <msebor@redhat.com>
6328
6329 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
6330
6331 PR middle-end/32003
6332 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
6333 index.
6334 (-fdump-tree-@var): Add to index and document how to come up
6335 with pass-specific option and dump file names.
6336 (-fdump-passes): Clarify where to look for output.
6337
6338 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
6339
6340 PR middle-end/77445
6341 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
6342 statistics of the analyzed path; allow threading for speed when
6343 any of BBs along the path are optimized for speed.
6344
6345 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
6346
6347 PR middle-end/78468
6348 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
6349 settings of the virtual registers.
6350
6351 Revert again
6352 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
6353
6354 * explow.c (get_dynamic_stack_size): Take known alignment of stack
6355 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
6356 needed.
6357
6358 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6359
6360 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
6361 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
6362
6363 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6364
6365 * config/s390/s390.md: Add missing comments with the expanded
6366 mnemonics.
6367 * config/s390/vector.md: Likewise.
6368 * config/s390/vx-builtins.md: Likewise.
6369
6370 2017-02-02 Jakub Jelinek <jakub@redhat.com>
6371
6372 PR target/79197
6373 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
6374 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
6375 conditions on a single line.
6376
6377 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6378
6379 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
6380 __S390_VX__ to __VX__.
6381
6382 2017-02-01 Andrew Pinski <apinski@cavium.com>
6383
6384 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
6385 stmt_info to record_stmt_cost.
6386 (vect_get_known_peeling_cost): Pass stmt_info if known to
6387 record_stmt_cost.
6388 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
6389 cpu_vector_cost field into
6390 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
6391 field into vec_int_stmt_cost and vec_fp_stmt_cost.
6392 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
6393 splitting of scalar_stmt_cost and vec_stmt_cost.
6394 (thunderx_vector_cost): Likewise.
6395 (cortexa57_vector_cost): LIkewise.
6396 (exynosm1_vector_cost): Likewise.
6397 (xgene1_vector_cost): Likewise.
6398 (thunderx2t99_vector_cost): Improve after the splitting of the two
6399 fields.
6400 (aarch64_builtin_vectorization_cost): Update for the splitting of
6401 scalar_stmt_cost and vec_stmt_cost.
6402
6403 2017-02-01 Torvald Riegel <triegel@redhat.com>
6404 Richard Henderson <rth@redhat.com>
6405
6406 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
6407 conditional on existance of a fast atomic load.
6408 * optabs-query.c (can_atomic_load_p): New function.
6409 * optabs-query.h (can_atomic_load_p): Declare it.
6410 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
6411 no fast atomic load is available for the particular size of access.
6412 (expand_atomic_compare_and_swap): Likewise.
6413 (expand_atomic_load): Likewise.
6414 (expand_atomic_store): Likewise.
6415 (expand_atomic_fetch_op): Likewise.
6416 * testsuite/lib/target-supports.exp
6417 (check_effective_target_sync_int_128): Remove x86 because it provides
6418 no fast atomic load.
6419 (check_effective_target_sync_int_128_runtime): Likewise.
6420
6421 2017-02-01 Richard Biener <rguenther@suse.de>
6422
6423 * graphite.c: Include tree-vectorizer.h for find_loop_location.
6424 (graphite_transform_loops): Provide opt-info for optimized nests.
6425 * tree-parloop.c (parallelize_loops): Provide opt-info for
6426 parallelized loops.
6427
6428 2017-02-01 Richard Biener <rguenther@suse.de>
6429
6430 PR middle-end/79315
6431 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
6432 was not set before.
6433
6434 2017-02-01 Richard Biener <rguenther@suse.de>
6435
6436 PR tree-optimization/71824
6437 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
6438 Verify the loops are valid in the merged SESE region.
6439 (scop_detection::can_represent_loop_1): Check analyzing the
6440 evolution of the number of iterations in the region succeeds.
6441
6442 2017-01-31 Ian Lance Taylor <iant@golang.org>
6443
6444 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
6445 REG_ARGS_SIZE note to 32-bit push insns and call insn.
6446
6447 2017-01-31 David Malcolm <dmalcolm@redhat.com>
6448
6449 PR preprocessor/79210
6450 * input.c (get_substring_ranges_for_loc): Replace line_width
6451 assertion with error-handling.
6452
6453 2017-01-31 Richard Biener <rguenther@suse.de>
6454
6455 PR tree-optimization/77318
6456 * graphite-sese-to-poly.c (extract_affine): Fix assert.
6457 (create_pw_aff_from_tree): Take loop parameter.
6458 (add_condition_to_pbb): Pass loop of the condition to
6459 create_pw_aff_from_tree.
6460
6461 2017-01-31 Jakub Jelinek <jakub@redhat.com>
6462
6463 * config/s390/s390.c (s390_asan_shadow_offset): New function.
6464 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
6465
6466 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6467
6468 PR target/78597
6469 PR target/79038
6470 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
6471 no longer used.
6472 (convert_int_to_float128): Likewise.
6473 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
6474 (convert_int_to_float128): Likewise.
6475 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
6476 (UNSPEC_IEEE128_CONVERT): Likewise.
6477 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
6478 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
6479 Use local variables for IBM extended format.
6480 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
6481 (fix_trunc<mode>si2_fprs): Likewise.
6482 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
6483 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
6484 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
6485 to know that we can now have integers of all sizes in vector
6486 registers.
6487 (fix<uns>_<mode>di2_hw): Likewise.
6488 (float<uns>_<mode>si2_hw): Likewise.
6489 (fix_<mode>si2_hw): Likewise.
6490 (fixuns_<mode>si2_hw): Likewise.
6491 (float<uns>_<mode>di2_hw): Likewise.
6492 (float_<mode>di2_hw): Likewise.
6493 (float_<mode>si2_hw): Likewise.
6494 (floatuns_<mode>di2_hw): Likewise.
6495 (floatuns_<mode>si2_hw): Likewise.
6496 (xscvqp<su>wz_<mode>): Delete, no longer used.
6497 (xscvqp<su>dz_<mode>): Likewise.
6498 (xscv<su>dqp_<mode>): Likewise.
6499 (ieee128_mfvsrd_64bit): Likewise.
6500 (ieee128_mfvsrd_32bit): Likewise.
6501 (ieee128_mfvsrwz): Likewise.
6502 (ieee128_mtvsrw): Likewise.
6503 (ieee128_mtvsrd_64bit): Likewise.
6504 (ieee128_mtvsrd_32bit): Likewise.
6505
6506 2017-01-31 Martin Liska <mliska@suse.cz>
6507
6508 PR ipa/79285
6509 * ipa-prop.c (ipa_free_all_node_params): Call release method
6510 instead of ~sumbol_summary to not to trigger double times
6511 dtor of hash_map.
6512
6513 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
6514
6515 PR tree-optimization/71691
6516 * bitmap.h (class auto_bitmap): New.
6517 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
6518 is_maybe_undefined instead of ssa_undefined_value_p.
6519
6520 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6521
6522 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
6523 __S390_ARCH_LEVEL__ to __ARCH__.
6524
6525 2017-01-31 Jakub Jelinek <jakub@redhat.com>
6526
6527 PR tree-optimization/79267
6528 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
6529 if should_remove_lhs_p is true.
6530
6531 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
6532
6533 PR debug/63238
6534 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
6535 (add_alignment_attribute): New.
6536 (base_type_die): Add alignment attribute.
6537 (subrange_type_die): Likewise.
6538 (modified_type_die): Likewise.
6539 (gen_array_type_die): Likewise.
6540 (gen_descr_array_type_die: Likewise.
6541 (gen_enumeration_type_die): Likewise.
6542 (gen_subprogram_die): Likewise.
6543 (gen_variable_die): Likewise.
6544 (gen_field_die): Likewise.
6545 (gen_ptr_to_mbr_type_die): Likewise.
6546 (gen_struct_or_union_type_die): Likewise.
6547 (gen_subroutine_type_die): Likewise.
6548 (gen_typedef_die): Likewise.
6549 (base_type_cmp): Compare alignment attribute.
6550
6551 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
6552
6553 PR target/79170
6554 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
6555 (setb_unsigned) New pattern for setb with CCUNS.
6556 * config/rs6000/rs6000.c (expand_block_compare): Use a different
6557 subfc./subfe sequence to avoid overflow problems. Generate a
6558 shorter sequence with cmpld/setb for power9.
6559 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
6560 for generating subfc. instruction.
6561 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
6562 now uses this instruction.
6563
6564 2017-01-30 Ian Lance Taylor <iant@google.com>
6565
6566 PR debug/79289
6567 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
6568 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
6569
6570 2017-01-30 Martin Sebor <msebor@redhat.com>
6571
6572 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
6573 Move constant to the right of a relational operator.
6574 (get_mpfr_format_length, format_character, format_string): Ditto.
6575 (should_warn_p, maybe_warn): Same.
6576
6577 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
6578
6579 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
6580
6581 PR lto/79061
6582 * asan.c (get_translation_unit_decl): Remove function.
6583 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
6584
6585 2017-01-30 Martin Liska <mliska@suse.cz>
6586
6587 PR gcov-profile/79259
6588 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
6589 -fprofile-generate.
6590
6591 2017-01-30 Martin Liska <mliska@suse.cz>
6592
6593 PR bootstrap/78985
6594 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
6595 Initialize variables with NULL value.
6596
6597 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
6598
6599 PR target/79260
6600 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
6601 tm_p_file.
6602 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
6603
6604 2017-01-30 Richard Biener <rguenther@suse.de>
6605
6606 PR tree-optimization/79276
6607 * tree-vrp.c (process_assert_insertions): Properly adjust common
6608 when removing a duplicate.
6609
6610 * gcc.dg/torture/pr79276.c: New testcase.
6611
6612 2017-01-30 Richard Biener <rguenther@suse.de>
6613
6614 PR tree-optimization/79256
6615 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
6616 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
6617 alignment on TYPE.
6618 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
6619
6620 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
6621
6622 PR target/79240
6623 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
6624 ("*r<noxa>sbg_<mode>_sll_bitmask")
6625 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
6626 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
6627 Use contiguous_bitmask_nowrap_operand.
6628
6629 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6630
6631 PR target/79268
6632 * config/rs6000/altivec.h (vec_xl): Revise #define.
6633 (vec_xst): Likewise.
6634
6635 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
6636
6637 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
6638
6639 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
6640
6641 PR rtl-optimization/79194
6642 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
6643 traps before call to bypass_conditional_jumps.
6644
6645 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
6646
6647 PR tree-optimization/71374
6648 * lra-constraints.c (check_conflict_input_operands): New.
6649 (match_reload): Use it.
6650
6651 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
6652
6653 PR target/79131
6654 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
6655 account to calculate conflict_set.
6656
6657 2017-01-27 Bin Cheng <bin.cheng@arm.com>
6658
6659 PR rtl-optimization/78559
6660 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
6661 other_insn in combine.
6662
6663 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
6664
6665 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
6666 uint16_type_node for BT_UINT16.
6667
6668 2017-01-27 David Malcolm <dmalcolm@redhat.com>
6669
6670 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
6671 "RTL Tests" to menu.
6672 (GIMPLE Tests): New node.
6673 (RTL Tests): New node.
6674
6675 2017-01-27 Richard Biener <rguenther@suse.de>
6676
6677 PR tree-optimization/79245
6678 * tree-loop-distribution.c (distribute_loop): Apply cost
6679 modeling also to detected patterns.
6680
6681 2017-01-27 Richard Biener <rguenther@suse.de>
6682
6683 PR tree-optimization/71433
6684 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
6685 (compare_assert_loc): New function.
6686 (process_assert_insertions): Sort and optimize assert locations
6687 to remove duplicates and push down identical assertions on
6688 edges to their destination block.
6689
6690 2017-01-27 Richard Biener <rguenther@suse.de>
6691
6692 PR tree-optimization/79244
6693 * tree-vrp.c (remove_range_assertions): Forcefully propagate
6694 out SSA names even if abnormal.
6695
6696 2017-01-27 Jakub Jelinek <jakub@redhat.com>
6697
6698 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
6699 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
6700 instead of MPFR_RNDN.
6701
6702 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
6703
6704 PR target/79239
6705 * arm.c (arm_option_override): Don't call build_target_option_node
6706 until after doing all option overrides.
6707 (arm_valid_target_attribute_tree): Likewise.
6708
6709 2017-01-27 Martin Liska <mliska@suse.cz>
6710
6711 * doc/invoke.texi (-fprofile-arcs): Document profiling support
6712 for {cd}tors and C++ {cd}tors.
6713
6714 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
6715
6716 * config/s390/s390.md ("*setmem_long_and")
6717 ("*setmem_long_and_31z"): Use zero_extend instead of and.
6718
6719 2017-01-26 Martin Sebor <msebor@redhat.com>
6720
6721 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
6722 of precision.
6723
6724 2017-01-26 Martin Sebor <msebor@redhat.com>
6725
6726 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
6727 HAVE_DFmode before using XFmode or DFmode.
6728 (parse_directive): Avoid using the z length modifier to avoid
6729 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
6730
6731 PR middle-end/78703
6732 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
6733 to accept adjustment as an array.
6734 (get_int_range): New function.
6735 (struct directive): Make width and prec arrays.
6736 (directive::set_width, directive::set_precision): Call get_int_range.
6737 (format_integer, format_floating): Handle width and precision ranges.
6738 (format_string, parse_directive): Same.
6739
6740 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6741
6742 PR debug/79129
6743 * dwarf2out.c (generate_skeleton_bottom_up): For children with
6744 comdat_type_p set, just clone them, but keep the children in the
6745 original DIE.
6746
6747 PR debug/78835
6748 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
6749 which have direct callers with -fvar-tracking-assignments enabled
6750 in the current TU.
6751 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
6752 inside of type units.
6753
6754 2017-01-26 Martin Sebor <msebor@redhat.com>
6755
6756 PR middle-end/78703
6757 * gimple-ssa-sprintf.c (struct result_range): Add likely and
6758 unlikely counters.
6759 (struct format_result): Replace number_chars, number_chars_min,
6760 and number_chars_max with a single member of struct result_range.
6761 Remove bounded.
6762 (format_result::operator+=): Adjust.
6763 (struct fmtresult): Remove bounded. Handle likely and unlikely
6764 counters.
6765 (fmtresult::adjust_for_width_or_precision): New function.
6766 (fmtresult:type_max_digits): New function.
6767 (bytes_remaining): Handle likely and unlikely counters.
6768 (min_bytes_remaining): Remove.
6769 (format_percent): Simplify.
6770 (format_integer, format_floating): Set likely and unlikely counters.
6771 (get_string_length, format_character, format_string): Same.
6772 (format_plain, should_warn_p): New function.
6773 (maybe_warn): Call should_warn_p. Update diagnostic messages
6774 and handle those for all directives, including plain strings.
6775 (format_directive): Handle likely and unlikely counters.
6776 Remove unnecessary quoting from diagnostics. Add an informational
6777 note.
6778 (add_bytes): Remove.
6779 (pass_sprintf_length::compute_format_length): Simplify.
6780 (try_substitute_return_value): Handle likely and unlikely counters.
6781
6782 2017-01-26 Carl Love <cel@us.ibm.com>
6783
6784 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
6785 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
6786
6787 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
6788
6789 PR target/79131
6790 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
6791 endianess for subregs into account.
6792 * lra-constraints.c (lra_constraints): Do risky transformations
6793 always on the first iteration.
6794 * lra-lives.c (check_pseudos_live_through_calls): Add arg
6795 last_call_used_reg_set.
6796 (process_bb_lives): Define and use last_call_used_reg_set.
6797 * lra.c (lra): Always continue after lra_constraints on the first
6798 iteration.
6799
6800 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
6801
6802 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
6803 constant.
6804 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
6805
6806 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6807
6808 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
6809 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
6810 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
6811 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
6812 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
6813 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
6814 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
6815 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
6816 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
6817
6818 2017-01-26 Marek Polacek <polacek@redhat.com>
6819
6820 PR c/79199
6821 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
6822 for the third operand.
6823
6824 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6825
6826 PR middle-end/79236
6827 * omp-low.c (struct omp_context): Add simt_stmt field.
6828 (scan_omp_for): Return omp_context *.
6829 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
6830 context to the _simt_ SIMD stmt.
6831 (lower_omp_for): For combined SIMD with sibling _simt_
6832 SIMD, make sure to use the same decls in _looptemp_
6833 clauses as in the sibling.
6834
6835 2017-01-26 David Sherwood <david.sherwood@arm.com>
6836
6837 PR middle-end/79212
6838 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
6839 all contexts.
6840
6841 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6842
6843 PR target/70465
6844 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
6845 emit fld b; fld a; if possible.
6846
6847 * brig-builtins.def: Update copyright years.
6848 * config/arm/arm_acle_builtins.def: Update copyright years.
6849
6850 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
6851
6852 PR target/79179
6853 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
6854 constraint instead of o for the stxsd instruction.
6855
6856 2017-01-25 Carl Love <cel@us.ibm.com>
6857
6858 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
6859 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
6860
6861 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
6862
6863 * doc/invoke.texi (C++ Dialect Options): Fix typo.
6864
6865 2017-01-25 Richard Biener <rguenther@suse.de>
6866
6867 PR tree-optimization/69264
6868 * target.def (vector_alignment_reachable): Improve documentation.
6869 * doc/tm.texi: Regenerate.
6870 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
6871 and add a comment.
6872 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
6873 earlier changes with respect to TYPE_USER_ALIGN.
6874 (vector_alignment_reachable_p): Likewise. Improve dumping.
6875
6876 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6877
6878 PR target/79145
6879 * config/arm/arm.md (xordi3): Force constant operand into a register
6880 for TARGET_IWMMXT.
6881
6882 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6883
6884 * doc/invoke.texi (-fstore-merging): Correct default optimization
6885 levels at which it is enabled.
6886 (-O): Move -fstore-merging from list to...
6887 (-O2): ... Here.
6888
6889 2017-01-25 Richard Biener <rguenther@suse.de>
6890
6891 PR debug/78363
6892 * omp-expand.c: Include debug.h.
6893 (expand_omp_taskreg): Make sure to generate early debug before
6894 outlining anything from a function.
6895 (expand_omp_target): Likewise.
6896 (grid_expand_target_grid_body): Likewise.
6897
6898 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
6899
6900 PR lto/79061
6901 * asan.c (get_translation_unit_decl): New function.
6902 (asan_add_global): Extract modules file name from globals
6903 TRANSLATION_UNIT_DECL name.
6904
6905 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
6906
6907 PR target/77439
6908 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
6909 for long calls with APCS frame and VFP.
6910
6911 2017-01-24 David Malcolm <dmalcolm@redhat.com>
6912
6913 * cfg.c (original_copy_tables_initialized_p): New function.
6914 * cfg.h (original_copy_tables_initialized_p): New decl.
6915 * cfgrtl.c (relink_block_chain): Guard the call to
6916 free_original_copy_tables with a call to
6917 original_copy_tables_initialized_p.
6918 * cgraph.h (symtab_node::native_rtl_p): New decl.
6919 * cgraphunit.c (symtab_node::native_rtl_p): New function.
6920 (symtab_node::needed_p): Don't assert for early assembly output
6921 for __RTL functions.
6922 (cgraph_node::finalize_function): Set "force_output" for __RTL
6923 functions.
6924 (cgraph_node::analyze): Bail out early for __RTL functions.
6925 (analyze_functions): Update assertion to support __RTL functions.
6926 (cgraph_node::expand): Bail out early for __RTL functions.
6927 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
6928 __RTL functions.
6929 * function.h (struct function): Update comment for field
6930 "pass_startwith".
6931 * gimple-expr.c: Include "tree-pass.h".
6932 (gimple_has_body_p): Return false for __RTL functions.
6933 * Makefile.in (OBJS): Add run-rtl-passes.o.
6934 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
6935 accessor.
6936 (gcc::pass_manager::get_clean_slate): New accessor.
6937 * passes.c: Include "insn-addr.h".
6938 (should_skip_pass_p): Add logging. Update logic for running
6939 "expand" to be compatible with both __GIMPLE and __RTL. Guard
6940 property-provider override so it is only done for gimple passes.
6941 Don't skip dfinit.
6942 (skip_pass): New function.
6943 (execute_one_pass): Call skip_pass when skipping passes.
6944 * read-md.c (md_reader::read_char): Support filtering
6945 the input to a subset of line numbers.
6946 (md_reader::md_reader): Initialize fields
6947 m_first_line and m_last_line.
6948 (md_reader::read_file_fragment): New function.
6949 * read-md.h (md_reader::read_file_fragment): New decl.
6950 (md_reader::m_first_line): New field.
6951 (md_reader::m_last_line): New field.
6952 * read-rtl-function.c (function_reader::create_function): Only
6953 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
6954 curr_properties. Set DECL_INITIAL to a dummy block.
6955 (read_rtl_function_body_from_file_range): New function.
6956 * read-rtl-function.h (read_rtl_function_body_from_file_range):
6957 New decl.
6958 * run-rtl-passes.c: New file.
6959 * run-rtl-passes.h: New file.
6960
6961 2017-01-24 Jeff Law <law@redhat.com>
6962
6963 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
6964 buffer size.
6965
6966 2017-01-24 Bin Cheng <bin.cheng@arm.com>
6967
6968 PR tree-optimization/79159
6969 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
6970 (record_nonwrapping_iv): Improve boundary using above function if no
6971 value range information.
6972
6973 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
6974 Martin Jambor <mjambor@suse.cz>
6975
6976 * brig-builtins.def: New file.
6977 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
6978 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
6979 (DEF_HSAIL_SAT_BUILTIN): Likewise.
6980 (DEF_HSAIL_INTR_BUILTIN): Likewise.
6981 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
6982 * builtin-types.def (BT_INT8): New.
6983 (BT_INT16): Likewise.
6984 (BT_UINT8): Likewise.
6985 (BT_UINT16): Likewise.
6986 (BT_FN_ULONG): Likewise.
6987 (BT_FN_UINT_INT): Likewise.
6988 (BT_FN_UINT_ULONG): Likewise.
6989 (BT_FN_UINT_LONG): Likewise.
6990 (BT_FN_UINT_PTR): Likewise.
6991 (BT_FN_ULONG_PTR): Likewise.
6992 (BT_FN_INT8_FLOAT): Likewise.
6993 (BT_FN_INT16_FLOAT): Likewise.
6994 (BT_FN_UINT32_FLOAT): Likewise.
6995 (BT_FN_UINT16_FLOAT): Likewise.
6996 (BT_FN_UINT8_FLOAT): Likewise.
6997 (BT_FN_UINT64_FLOAT): Likewise.
6998 (BT_FN_UINT16_UINT32): Likewise.
6999 (BT_FN_UINT32_UINT16): Likewise.
7000 (BT_FN_UINT16_UINT16_UINT16): Likewise.
7001 (BT_FN_INT_PTR_INT): Likewise.
7002 (BT_FN_UINT_PTR_UINT): Likewise.
7003 (BT_FN_LONG_PTR_LONG): Likewise.
7004 (BT_FN_ULONG_PTR_ULONG): Likewise.
7005 (BT_FN_VOID_UINT64_UINT64): Likewise.
7006 (BT_FN_UINT8_UINT8_UINT8): Likewise.
7007 (BT_FN_INT8_INT8_INT8): Likewise.
7008 (BT_FN_INT16_INT16_INT16): Likewise.
7009 (BT_FN_INT_INT_INT): Likewise.
7010 (BT_FN_UINT_FLOAT_UINT): Likewise.
7011 (BT_FN_FLOAT_UINT_UINT): Likewise.
7012 (BT_FN_ULONG_UINT_UINT): Likewise.
7013 (BT_FN_ULONG_UINT_PTR): Likewise.
7014 (BT_FN_ULONG_ULONG_ULONG): Likewise.
7015 (BT_FN_UINT_UINT_UINT): Likewise.
7016 (BT_FN_VOID_UINT_PTR): Likewise.
7017 (BT_FN_UINT_UINT_PTR: Likewise.
7018 (BT_FN_UINT32_UINT64_PTR): Likewise.
7019 (BT_FN_INT_INT_UINT_UINT): Likewise.
7020 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
7021 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
7022 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
7023 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
7024 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
7025 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
7026 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
7027 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
7028 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
7029 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
7030 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
7031 * doc/frontends.texi: List BRIG FE.
7032 * doc/install.texi (Testing): Add BRIG tesring requirements.
7033 * doc/invoke.texi (Overall Options): Mention BRIG.
7034 * doc/standards.texi (Standards): Doucment BRIG HSA version.
7035
7036 2017-01-24 Richard Biener <rguenther@suse.de>
7037
7038 PR translation/79208
7039 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
7040
7041 2017-01-24 Martin Jambor <mjambor@suse.cz>
7042
7043 PR bootstrap/79198
7044 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
7045 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
7046 and known_contexts.
7047
7048 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
7049
7050 PR middle-end/79123
7051 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
7052 casts from signed to unsigned really don't have a range.
7053
7054 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
7055
7056 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
7057 GMP_RNDx for compatiblity.
7058
7059 2017-01-24 Martin Liska <mliska@suse.cz>
7060
7061 PR bootstrap/79132
7062 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
7063 that would prevent us to call alloca with -1 as argument.
7064
7065 2017-01-24 Jakub Jelinek <jakub@redhat.com>
7066
7067 * dwarf2out.c (output_compilation_unit_header, output_file_names):
7068 Avoid -Wformat-security warning.
7069
7070 2017-01-23 Andrew Pinski <apinski@cavium.com>
7071
7072 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
7073 cost table.
7074
7075 2017-01-23 Martin Sebor <msebor@redhat.com>
7076
7077 PR middle-end/78703
7078 * gimple-ssa-sprintf.c (warn_level): New global.
7079 (format_integer): Use it here and throughout the rest of the file.
7080 Use the same switch to compute sign as base.
7081 (maybe_warn): New function.
7082 (format_directive): Factor out warnings into maybe_warn.
7083 Add debugging output. Use warn_level.
7084 (add_bytes): Use warn_level.
7085 (pass_sprintf_length::compute_format_length): Add debugging output.
7086 (try_substitute_return_value): Same.
7087 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
7088
7089 PR middle-end/78703
7090 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
7091 (struct fmtresult, format_integer, format_floating): Adjust.
7092 (fmtresult::fmtresult): Set max correctly in two argument ctor.
7093 (get_string_length, format_string,format_directive): Same.
7094 (pass_sprintf_length::compute_format_length): Same.
7095 (try_substitute_return_value): Simplify slightly.
7096
7097 PR middle-end/78703
7098 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
7099 (fmtresult::operator+=): Outlined.
7100 (struct fmtresult): Add ctors.
7101 (struct conversion_spec): Rename...
7102 (struct directive): ...to this. Add and remove data members.
7103 (directive::set_width, directive::set_precision): New functions.
7104 (format_percent): Use fmtresult ctor.
7105 (get_width_and_precision): Remove.
7106 (format_integer): Make naming changes. Avoid computing width and
7107 precision.
7108 (format_floating): Same. Adjust indentation.
7109 (format_character, format_none): New functions.
7110 (format_string): Moved character handling to format_character.
7111 (format_directive): Remove arguments, change return type.
7112 (parse_directive): New function.
7113 (pass_sprintf_length::compute_format_length): Move directive
7114 parsing to parse_directive.
7115
7116 2017-01-23 Jakub Jelinek <jakub@redhat.com>
7117
7118 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
7119 (assign_assembler_name_if_needed): ... this.
7120 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
7121 (assign_assembler_name_if_needed): ... this.
7122 (free_lang_data_in_cgraph): Adjust callers.
7123 * cgraphunit.c (cgraph_node::analyze): Likewise.
7124 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
7125 Likewise.
7126
7127 2017-01-23 Richard Biener <rguenther@suse.de>
7128
7129 PR tree-optimization/79088
7130 PR tree-optimization/79188
7131 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
7132 resetting loop bounds after last path deletion. Reset loop
7133 bounds of the target loop, make code match the comments.
7134 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
7135 Make sure loops need no fixups.
7136
7137 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
7138
7139 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
7140 exponent support with double type for first argument.
7141 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
7142 type returned by __builtin_vec_extract_sig,
7143 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
7144 functions from "vector int" to "vector unsigned int" or from
7145 "vector long long int" to "vector unsigned long long int".
7146 Changed type returned by __builtin_vec_extract_exp,
7147 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
7148 functions from "vector int" to "vector unsigned int" or from
7149 "vector long long int" to "vector unsigned long long int".
7150 Changed return type of __builtin_vec_test_data_class,
7151 __builtin_vec_test_data_class_sp, and
7152 __builtin_vec_test_data_class_dp from "vector int" to
7153 "vector bool int" or from "vector long long int" to "vector bool
7154 long long int" and changed second argument type from "unsigned
7155 int" to "int". Added new overloaded function forms "vector float
7156 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
7157 "vector float __builtin_vec_insert_exp_sp (vector float, vector
7158 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
7159 double, vector unsigned long long int)" and "vector double
7160 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
7161 long int)". Changed return type of
7162 __builtin_scalar_test_data_class and
7163 __builtin_scalar_test_data_class_sp and
7164 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
7165 int" and changed second argument from "unsigned int" to "int".
7166 Changed type returned by __builtin_scalar_test_neg,
7167 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
7168 from "int" to "bool int". Added new overloaded function form
7169 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
7170 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
7171 exponent double-precision with floating point first argument.
7172 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
7173 documentation of scalar_test_data_class, scalar_test_neg,
7174 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
7175 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
7176 vec_test_data_class built-in functions to reflect refinements in
7177 their type signatures.
7178
7179 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
7180
7181 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
7182 size of buf.
7183 (aarch64_elf_asm_destructor): Likewise.
7184
7185 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
7186
7187 PR rtl-optimization/78634
7188 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
7189 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
7190 * ifcvt.c (noce_try_cmove): Add missing cost check.
7191
7192 PR rtl-optimization/71724
7193 * combine.c (if_then_else_cond): Look for situations where it is
7194 beneficial to undo the work of one of the recursive calls.
7195
7196 2017-01-23 Bin Cheng <bin.cheng@arm.com>
7197
7198 PR tree-optimization/70754
7199 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
7200 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
7201 combined stmt before it if not NULL.
7202 (combine_chains): Process refs reversely and compute dominance point
7203 for root ref.
7204
7205 2017-01-23 Martin Liska <mliska@suse.cz>
7206
7207 PR tree-optimization/79196
7208 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
7209 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
7210 instead of memcmp.
7211 (strlen_optimize_stmt): Call the renamed function.
7212
7213 2017-01-23 Michael Matz <matz@suse.de>
7214
7215 PR tree-optimization/78384
7216 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
7217
7218 2017-01-23 Richard Biener <rguenther@suse.de>
7219
7220 PR tree-optimization/79186
7221 * tree-vrp.c (register_new_assert_for): Make sure we've seen
7222 both incoming edges before moving an assert.
7223
7224 2017-01-23 Martin Jambor <mjambor@suse.cz>
7225
7226 * ipa-prop.c (load_from_param_1): Removed.
7227 (load_from_unmodified_param): Bits from load_from_param_1 put back
7228 here.
7229 (load_from_param): Removed.
7230 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
7231 with stmt. Reverted back to use of load_from_unmodified_param.
7232
7233 2017-01-23 Martin Jambor <mjambor@suse.cz>
7234
7235 PR ipa/79108
7236 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
7237 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
7238 field a pointer to garbage collected vector, mark lattices and
7239 ipcp_orig_node with GTY((skip)).
7240 (ipa_get_param_count): Adjust to descriptors being a pointer.
7241 (ipa_get_param): Likewise.
7242 (ipa_get_type): Likewise.
7243 (ipa_get_param_move_cost): Likewise.
7244 (ipa_set_param_used): Likewise.
7245 (ipa_get_controlled_uses): Likewise.
7246 (ipa_set_controlled_uses): Likewise.
7247 (ipa_is_param_used): Likewise.
7248 (ipa_node_params_t): Move into garbage collector. New methods insert
7249 and remove.
7250 (ipa_node_params_sum): Annotate wth GTY(()).
7251 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
7252 garbage collected.
7253 (ipa_load_from_parm_agg): Adjust declaration.
7254 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
7255 * ipa-profile.c (ipa_profile): Likewise.
7256 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
7257 (ipa_populate_param_decls): Make descriptors parameter garbage
7258 collected.
7259 (ipa_dump_param): Adjust to descriptors being a pointer.
7260 (ipa_alloc_node_params): Likewise.
7261 (ipa_initialize_node_params): Likewise.
7262 (load_from_param_1): Make descriptors parameter garbage collected.
7263 (load_from_unmodified_param): Likewise.
7264 (load_from_param): Likewise.
7265 (ipa_load_from_parm_agg): Likewise.
7266 (ipa_node_params::~ipa_node_params): Removed.
7267 (ipa_free_all_node_params): Remove call to delete operator.
7268 (ipa_node_params_t::insert): New.
7269 (ipa_node_params_t::remove): Likewise.
7270 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
7271 copy known_csts and known_contexts vectors.
7272 (ipa_read_node_info): Adjust to descriptors being a pointer.
7273 (ipcp_modif_dom_walker): Make m_descriptors field garbage
7274 collected.
7275 (ipcp_transform_function): Make descriptors variable garbage
7276 collected.
7277
7278 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
7279
7280 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
7281 * config/i386/avx512dqintrin.h: Ditto.
7282 * config/i386/avx512fintrin.h: Ditto.
7283 * gcc/config/i386/i386.c: Handle new builtins.
7284 * config/i386/i386-builtin.def: Add new builtins.
7285 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
7286 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
7287
7288 2017-01-23 Jakub Jelinek <jakub@redhat.com>
7289 Martin Liska <mliska@suse.cz>
7290
7291 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
7292 * asan.c (asan_expand_poison_ifn): Support stores and use
7293 appropriate ASAN report function.
7294 * internal-fn.c (expand_ASAN_POISON_USE): New function.
7295 * internal-fn.def (ASAN_POISON_USE): Declare.
7296 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
7297 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
7298 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
7299 ASAN_POISON calls w/o LHS.
7300 * tree-ssa.c (execute_update_addresses_taken): Create clobber
7301 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
7302 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
7303 * gimplify.c (asan_poison_variables): Add attribute
7304 use_after_scope_memory to variables that really needs to live
7305 in memory.
7306 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
7307 having the attribute.
7308
7309 2017-01-23 Martin Liska <mliska@suse.cz>
7310
7311 * asan.c (create_asan_shadow_var): New function.
7312 (asan_expand_poison_ifn): Likewise.
7313 * asan.h (asan_expand_poison_ifn): New declaration.
7314 * internal-fn.c (expand_ASAN_POISON): Likewise.
7315 * internal-fn.def (ASAN_POISON): New builtin.
7316 * sanopt.c (pass_sanopt::execute): Expand
7317 asan_expand_poison_ifn.
7318 * tree-inline.c (copy_decl_for_dup_finish): Make function
7319 external.
7320 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
7321 * tree-ssa.c (is_asan_mark_p): New function.
7322 (execute_update_addresses_taken): Rewrite local variables
7323 (identified just by use-after-scope as addressable) into SSA.
7324
7325 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
7326
7327 * doc/install.texi (Specific): opensource.apple.com uses https
7328 now. Remove trailing slash.
7329
7330 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
7331
7332 * README.Portability: Remove note on an Irix compatibility issue.
7333
7334 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
7335
7336 * gcov.c (INCLUDE_ALGORITHM): Define.
7337 (INCLUDE_VECTOR): Define.
7338 No longer include <vector> and <algorithm> directly.
7339
7340 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
7341
7342 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
7343 to https.
7344 * doc/invoke.texi (Code Gen Options): Ditto.
7345
7346 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
7347
7348 PR lto/78407
7349 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
7350
7351 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
7352
7353 rtl-optimization/79125
7354 * cprop.c (local_cprop_pass): Handle cases where we make an
7355 unconditional trap.
7356
7357 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
7358
7359 PR target/61729
7360 PR target/77850
7361 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
7362 read from, for big endian.
7363
7364 2017-01-20 Jiong Wang <jiong.wang@arm.com>
7365
7366 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
7367 register pauth builtins for LP64 only.
7368
7369 2017-01-20 Marek Polacek <polacek@redhat.com>
7370
7371 PR c/79152
7372 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
7373 non-case labels.
7374
7375 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
7376
7377 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
7378 of safelen status.
7379 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
7380 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
7381 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
7382
7383 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7384
7385 PR target/71270
7386 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
7387 in big-endian mode when they are not a single duplicated value.
7388
7389 2017-01-20 Richard Biener <rguenther@suse.de>
7390
7391 * BASE-VER: Bump to 7.0.1.
7392
7393 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
7394
7395 * omp-low.c (omplow_simd_context): New struct. Use it...
7396 (lower_rec_simd_input_clauses): ...here and...
7397 (lower_rec_input_clauses): ...here to hold common data. Adjust all
7398 references to idx, lane, max_vf, is_simt.
7399
7400 2017-01-20 Graham Markall <graham.markall@embecosm.com>
7401
7402 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
7403 mcpu=nps400.
7404
7405 2017-01-20 Martin Jambor <mjambor@suse.cz>
7406
7407 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
7408 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
7409 gt-hsa-common.h.
7410 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
7411 (GTFILES): Rename hsa.c to hsa-common.c.
7412 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
7413 * hsa-dump.c: Likewise.
7414 * hsa-gen.c: Likewise.
7415 * hsa-regalloc.c: Likewise.
7416 * ipa-hsa.c: Likewise.
7417 * omp-expand.c: Likewise.
7418 * omp-low.c: Likewise.
7419 * toplev.c: Likewise.
7420
7421 2017-01-20 Marek Polacek <polacek@redhat.com>
7422
7423 PR c/64279
7424 * doc/invoke.texi: Document -Wduplicated-branches.
7425 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
7426 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
7427 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
7428 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
7429 return 0 only when not OEP_LEXICOGRAPHIC.
7430 (fold_build_cleanup_point_expr): Use the expression
7431 location when building CLEANUP_POINT_EXPR.
7432 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
7433 * tree.c (add_expr): Handle error_mark_node.
7434
7435 2017-01-20 Martin Liska <mliska@suse.cz>
7436
7437 PR lto/69188
7438 * tree-profile.c (init_ic_make_global_vars): Do not call
7439 finalize_decl.
7440 (gimple_init_gcov_profiler): Likewise.
7441
7442 2017-01-20 Martin Liska <mliska@suse.cz>
7443
7444 PR ipa/71190
7445 * cgraph.h (maybe_create_reference): Remove argument and
7446 update comment.
7447 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
7448 argument.
7449 * ipa-cp.c (create_specialized_node): Likewise.
7450 * symtab.c (symtab_node::maybe_create_reference): Handle
7451 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
7452
7453 2017-01-20 Martin Liska <mliska@suse.cz>
7454
7455 * read-rtl-function.c (function_reader::create_function): Use
7456 build_decl instread of build_decl_stat.
7457
7458 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
7459
7460 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
7461 * config/i386/avx512dqintrin.h: Ditto.
7462 * config/i386/avx512fintrin.h: Ditto.
7463 * config/i386/i386-builtin-types.def: Add new types.
7464 * gcc/config/i386/i386.c: Handle new types.
7465 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
7466 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
7467 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
7468 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
7469 (__builtin_ia32_kshiftridi): New.
7470 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
7471
7472 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
7473
7474 PR target/78875
7475 PR target/79140
7476 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
7477 define to rs6000_init_stack_protect_guard.
7478 (rs6000_init_stack_protect_guard): New function.
7479
7480 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
7481 Yunqiang Su <yunqiang.su@imgtec.com>
7482
7483 * config.gcc (supported_defaults): Add madd4.
7484 (with_madd4): Add validation.
7485 (all_defaults): Add madd4.
7486 * config/mips/mips.opt (mmadd4): New option.
7487 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
7488 mmadd4.
7489 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
7490 __mips_no_madd4.
7491 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
7492 (ISA_HAS_FUSED_MADD4): Likewise.
7493 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
7494 * gcc/doc/install.texi (--with-madd4): Document the new option.
7495
7496 2017-01-19 Jiong Wang <jiong.wang@arm.com>
7497
7498 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
7499 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
7500 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
7501 (aarch64_init_pauth_hint_builtins): New.
7502 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
7503 (aarch64_expand_builtin): Expand new builtins.
7504
7505 2017-01-19 Jiong Wang <jiong.wang@arm.com>
7506
7507 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
7508 * combine-stack-adj.c (no_unhandled_cfa): Handle
7509 REG_CFA_TOGGLE_RA_MANGLE.
7510 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
7511 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
7512 info for return address signing.
7513 (aarch64_expand_epilogue): Likewise.
7514
7515 2017-01-19 Jiong Wang <jiong.wang@arm.com>
7516
7517 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
7518 * config/aarch64/aarch64-protos.h
7519 (aarch64_return_address_signing_enabled): New declaration.
7520 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
7521 New function.
7522 (aarch64_expand_prologue): Sign return address before it's pushed onto
7523 stack.
7524 (aarch64_expand_epilogue): Authenticate return address fetched from
7525 stack.
7526 (aarch64_override_options): Sanity check for ILP32 and ISA level.
7527 (aarch64_attributes): New function attributes for "sign-return-address".
7528 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
7529 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
7530 ("*do_return"): Generate combined instructions according to key index.
7531 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
7532 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
7533 iterators.
7534 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
7535 * config/aarch64/aarch64.opt (msign-return-address=): New.
7536 * doc/extend.texi (AArch64 Function Attributes): Documents
7537 "sign-return-address=".
7538 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
7539
7540 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
7541
7542 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
7543 overall option summary.
7544
7545 2017-01-19 Jiong Wang <jiong.wang@arm.com>
7546
7547 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
7548 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
7549 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
7550 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
7551
7552 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
7553
7554 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
7555 -mpower9-minmax by default for -mcpu=power9.
7556 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
7557 128-bit floating point.
7558
7559 2017-01-20 Alan Modra <amodra@gmail.com>
7560
7561 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
7562 optimizing for size.
7563
7564 2017-01-20 Alan Modra <amodra@gmail.com>
7565
7566 PR target/79144
7567 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
7568 for strcmp and strncmp from corresponding builtin decl.
7569
7570 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
7571
7572 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
7573 instead of i386/rtems-64.h.
7574 * config/i386/rtems-64.h: Remove.
7575
7576 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
7577
7578 PR target/78478
7579 Revert:
7580 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
7581
7582 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
7583
7584 2017-01-19 Tamar Christina <tamar.christina@arm.com>
7585
7586 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
7587 Change int to HOST_WIDE_INT.
7588 * config/aarch64/aarch64-protos.h
7589 (aarch64_simd_gen_const_vector_dup): Likewise.
7590 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
7591
7592 2017-01-19 David Malcolm <dmalcolm@redhat.com>
7593
7594 * langhooks-def.h (lhd_type_for_size): New decl.
7595 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
7596 * langhooks.c (lhd_type_for_size): New function, taken from
7597 lto_type_for_size.
7598
7599 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
7600
7601 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
7602 define_bypass for CR latency.
7603 (power9-cracked-alu): Update bypass latency and remove power9-branch.
7604 (power9-alu2): Add define_bypass for CR latency.
7605 (power9-cmp): New.
7606 (power9-mul): Update insn latency.
7607 (power9-mul-compare): Update insn latency, bypass latency and remove
7608 power9-branch.
7609
7610 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7611
7612 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
7613 Delete.
7614 * config/aarch64/aarch64.md
7615 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
7616 aarch64_nopcrelative_literal_loads.
7617 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
7618
7619 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
7620
7621 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
7622 TARGET_LOONGSON_3A.
7623 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
7624
7625 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
7626
7627 PR target/78176
7628 * config.gcc (supported_defaults): Add lxc1-sxc1.
7629 (with_lxc1_sxc1): Add validation.
7630 (all_defaults): Add lxc1-sxc1.
7631 * config/mips/mips.opt (mlxc1-sxc1): New option.
7632 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
7633 mlxc1-sxc1.
7634 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
7635 __mips_no_lxc1_sxc1.
7636 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
7637 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
7638 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
7639
7640 2017-01-19 Richard Biener <rguenther@suse.de>
7641
7642 PR tree-optimization/72488
7643 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
7644 sure to restore SSA info.
7645 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
7646
7647 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
7648
7649 PR rtl-optimization/79121
7650 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
7651 of the inner type when shifting an extended value.
7652
7653 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
7654
7655 PR lto/78407
7656 * symtab.c (symtab_node::equal_address_to): Fix comparing of
7657 interposable aliases.
7658
7659 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
7660
7661 PR target/78516
7662 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
7663 Use the evmergelohi instruction.
7664 (mov_si<mode>_e500_subreg4_2_le): Likewise.
7665 (mov_sitf_e500_subreg8_2_be): Likewise.
7666 (mov_sitf_e500_subreg12_2_le): Likewise.
7667 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
7668 (mov_si<mode>_e500_subreg4_2_be): Likewise.
7669 (mov_sitf_e500_subreg8_2_le): Likewise.
7670 (mov_sitf_e500_subreg12_2_be): Likewise.
7671
7672 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7673
7674 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
7675 attribute from vecsimple to vecperm.
7676 (altivec_vbpermq2): Likewise.
7677
7678 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7679
7680 PR target/79040
7681 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
7682
7683 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7684 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
7685 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
7686 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
7687 case where N arg is SIZE_MAX.
7688 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
7689 (cmpstrsi): Add pattern.
7690
7691 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7692
7693 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7694 __builtin_vec_revb builtins.
7695 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
7696 built-in functions to support generation of the ISA 3.0 XXBR<x>
7697 vector byte reverse instructions.
7698 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
7699 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
7700 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
7701 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
7702 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
7703 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
7704 (P9V_BUILTIN_VEC_REVB): Likewise.
7705 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
7706 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
7707 (p9_xxbrq_v16qi): Likewise.
7708 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
7709 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
7710 (p9_xxbrh_v8hi): Likewise.
7711 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
7712 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
7713 vec_revb built-in functions.
7714
7715 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
7716
7717 PR rtl-optimization/78952
7718 * config/i386/i386.md (any_extract): New code iterator.
7719 (*insvqi_2): Use any_extract for source operand.
7720 (*insvqi_3): Use any_shiftrt for source operand.
7721
7722 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
7723
7724 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
7725 New function.
7726 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
7727
7728 2017-01-18 Matthias Klose <doko@ubuntu.com>
7729
7730 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
7731
7732 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7733
7734 * config/rs6000/altivec.h (vec_bperm): Change #define.
7735 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
7736 (altivec_vbpermq2): New define_insn.
7737 (altivec_vbpermd): Likewise.
7738 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
7739 function interface.
7740 (VBPERMD): Likewise.
7741 (VBPERM): New polymorphic function interface.
7742 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
7743 Add entries for P9V_BUILTIN_VEC_VBPERM.
7744 * doc/extend.texi: Add interfaces for vec_bperm.
7745
7746 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7747
7748 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
7749 first letter of error messages.
7750 (s390_resolve_overloaded_builtin): Likewise.
7751 * config/s390/s390.c (s390_expand_builtin): Likewise.
7752 (s390_invalid_arg_for_unprototyped_fn): Likewise.
7753 (s390_valid_target_attribute_inner_p): Likewise.
7754 * config/s390/s390.md ("tabort"): Likewise.
7755
7756 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
7757
7758 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
7759 (ISA_AVOID_DIV_HILO): New macro.
7760 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
7761 (ISA_HAS_DDIV): Likewise.
7762
7763 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7764
7765 * doc/invoke.texi (fabi-version): Correct number of occurrences.
7766
7767 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7768
7769 * doc/invoke.texi (fabi-version): Spelling fix.
7770
7771 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7772
7773 PR c++/70182
7774 * doc/invoke.texi (fabi-version): Mention mangling fix for
7775 operator names.
7776
7777 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7778
7779 PR c++/77489
7780 * doc/invoke.texi (fabi-version): Document discriminator mangling.
7781
7782 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
7783
7784 PR target/78875
7785 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
7786 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
7787 the new options.
7788 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
7789 flexible settings.
7790 (stack_protect_test): Ditto.
7791 * config/rs6000/rs6000.opt (mstack-protector-guard=,
7792 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
7793 options.
7794 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
7795 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
7796 -mstack-protector-guard-offset=.
7797 (RS/6000 and PowerPC Options): Ditto.
7798
7799 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
7800
7801 * config/i386/i386.h (MASK_CLASS_P): New define.
7802 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
7803 there are no registers from different register sets also when
7804 mask registers are used. Update function comment.
7805 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
7806 to (*k/*r) and (*k/*km) alternatives.
7807
7808 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
7809
7810 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
7811 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
7812 (EH_RETURN_HANDLER_RTX): New define.
7813 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
7814 Force frame pointer in EH return functions.
7815 (aarch64_expand_epilogue): Add barrier for eh_return.
7816 (aarch64_final_eh_return_addr): Remove.
7817 (aarch64_eh_return_handler_rtx): New function.
7818 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
7819 Remove.
7820 (aarch64_eh_return_handler_rtx): New prototype.
7821
7822 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7823
7824 * config/rs6000/altivec.h (vec_rlmi): New #define.
7825 (vec_vrlnm): Likewise.
7826 (vec_rlnm): Likewise.
7827 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
7828 (UNSPEC_VRLNM): Likewise.
7829 (VIlong): New mode iterator.
7830 (altivec_vrl<VI_char>mi): New define_insn.
7831 (altivec_vrl<VI_char>nm): Likewise.
7832 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
7833 function entry.
7834 (VRLDNM): Likewise.
7835 (RLNM): New polymorphic function entry.
7836 (VRLWMI): New monomorphic function entry.
7837 (VRLDMI): Likewise.
7838 (RLMI): New polymorphic function entry.
7839 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
7840 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
7841 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
7842 vec_vrlnm.
7843
7844 2017-01-17 Jakub Jelinek <jakub@redhat.com>
7845
7846 PR debug/78839
7847 * dwarf2out.c (field_byte_offset): Restore the
7848 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
7849 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
7850 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
7851 of build2 + fold.
7852
7853 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
7854
7855 PR ada/67205
7856 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
7857
7858 2017-01-17 Jakub Jelinek <jakub@redhat.com>
7859
7860 PR debug/71669
7861 * dwarf2out.c (add_data_member_location_attribute): For constant
7862 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
7863 instead of DW_AT_data_member_location, DW_AT_bit_offset and
7864 DW_AT_byte_size attributes.
7865
7866 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
7867
7868 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
7869 after forcing to constant memory when the code model is medium.
7870
7871 2017-01-17 Julia Koval <julia.koval@intel.com>
7872
7873 PR target/76731
7874 * config/i386/avx512fintrin.h
7875 (_mm512_i32gather_ps): Change __addr type to void const*.
7876 (_mm512_mask_i32gather_ps): Ditto.
7877 (_mm512_i32gather_pd): Ditto.
7878 (_mm512_mask_i32gather_pd): Ditto.
7879 (_mm512_i64gather_ps): Ditto.
7880 (_mm512_mask_i64gather_ps): Ditto.
7881 (_mm512_i64gather_pd): Ditto.
7882 (_mm512_mask_i64gather_pd): Ditto.
7883 (_mm512_i32gather_epi32): Ditto.
7884 (_mm512_mask_i32gather_epi32): Ditto.
7885 (_mm512_i32gather_epi64): Ditto.
7886 (_mm512_mask_i32gather_epi64): Ditto.
7887 (_mm512_i64gather_epi32): Ditto.
7888 (_mm512_mask_i64gather_epi32): Ditto.
7889 (_mm512_i64gather_epi64): Ditto.
7890 (_mm512_mask_i64gather_epi64): Ditto.
7891 (_mm512_i32scatter_ps): Change __addr type to void*.
7892 (_mm512_mask_i32scatter_ps): Ditto.
7893 (_mm512_i32scatter_pd): Ditto.
7894 (_mm512_mask_i32scatter_pd): Ditto.
7895 (_mm512_i64scatter_ps): Ditto.
7896 (_mm512_mask_i64scatter_ps): Ditto.
7897 (_mm512_i64scatter_pd): Ditto.
7898 (_mm512_mask_i64scatter_pd): Ditto.
7899 (_mm512_i32scatter_epi32): Ditto.
7900 (_mm512_mask_i32scatter_epi32): Ditto.
7901 (_mm512_i32scatter_epi64): Ditto.
7902 (_mm512_mask_i32scatter_epi64): Ditto.
7903 (_mm512_i64scatter_epi32): Ditto.
7904 (_mm512_mask_i64scatter_epi32): Ditto.
7905 (_mm512_i64scatter_epi64): Ditto.
7906 (_mm512_mask_i64scatter_epi64): Ditto.
7907 * config/i386/avx512pfintrin.h
7908 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
7909 (_mm512_mask_prefetch_i32gather_ps): Ditto.
7910 (_mm512_mask_prefetch_i64gather_pd): Ditto.
7911 (_mm512_mask_prefetch_i64gather_ps): Ditto.
7912 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
7913 (_mm512_prefetch_i32scatter_ps): Ditto.
7914 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
7915 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
7916 (_mm512_prefetch_i64scatter_pd): Ditto.
7917 (_mm512_prefetch_i64scatter_ps): Ditto.
7918 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
7919 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
7920 * config/i386/avx512vlintrin.h
7921 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
7922 (_mm_mmask_i32gather_ps): Ditto.
7923 (_mm256_mmask_i32gather_pd): Ditto.
7924 (_mm_mmask_i32gather_pd): Ditto.
7925 (_mm256_mmask_i64gather_ps): Ditto.
7926 (_mm_mmask_i64gather_ps): Ditto.
7927 (_mm256_mmask_i64gather_pd): Ditto.
7928 (_mm_mmask_i64gather_pd): Ditto.
7929 (_mm256_mmask_i32gather_epi32): Ditto.
7930 (_mm_mmask_i32gather_epi32): Ditto.
7931 (_mm256_mmask_i32gather_epi64): Ditto.
7932 (_mm_mmask_i32gather_epi64): Ditto.
7933 (_mm256_mmask_i64gather_epi32): Ditto.
7934 (_mm_mmask_i64gather_epi32): Ditto.
7935 (_mm256_mmask_i64gather_epi64): Ditto.
7936 (_mm_mmask_i64gather_epi64): Ditto.
7937 (_mm256_i32scatter_ps): Change __addr type to void*.
7938 (_mm256_mask_i32scatter_ps): Ditto.
7939 (_mm_i32scatter_ps): Ditto.
7940 (_mm_mask_i32scatter_ps): Ditto.
7941 (_mm256_i32scatter_pd): Ditto.
7942 (_mm256_mask_i32scatter_pd): Ditto.
7943 (_mm_i32scatter_pd): Ditto.
7944 (_mm_mask_i32scatter_pd): Ditto.
7945 (_mm256_i64scatter_ps): Ditto.
7946 (_mm256_mask_i64scatter_ps): Ditto.
7947 (_mm_i64scatter_ps): Ditto.
7948 (_mm_mask_i64scatter_ps): Ditto.
7949 (_mm256_i64scatter_pd): Ditto.
7950 (_mm256_mask_i64scatter_pd): Ditto.
7951 (_mm_i64scatter_pd): Ditto.
7952 (_mm_mask_i64scatter_pd): Ditto.
7953 (_mm256_i32scatter_epi32): Ditto.
7954 (_mm256_mask_i32scatter_epi32): Ditto.
7955 (_mm_i32scatter_epi32): Ditto.
7956 (_mm_mask_i32scatter_epi32): Ditto.
7957 (_mm256_i32scatter_epi64): Ditto.
7958 (_mm256_mask_i32scatter_epi64): Ditto.
7959 (_mm_i32scatter_epi64): Ditto.
7960 (_mm_mask_i32scatter_epi64): Ditto.
7961 (_mm256_i64scatter_epi32): Ditto.
7962 (_mm256_mask_i64scatter_epi32): Ditto.
7963 (_mm_i64scatter_epi32): Ditto.
7964 (_mm_mask_i64scatter_epi32): Ditto.
7965 (_mm256_i64scatter_epi64): Ditto.
7966 (_mm256_mask_i64scatter_epi64): Ditto.
7967 (_mm_i64scatter_epi64): Ditto.
7968 (_mm_mask_i64scatter_epi64): Ditto.
7969 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
7970 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
7971 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
7972 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
7973 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
7974 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
7975 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
7976 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
7977 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
7978 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
7979 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
7980 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
7981 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
7982 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
7983 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
7984 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
7985 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
7986 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
7987 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
7988 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
7989 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
7990 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
7991 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
7992 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
7993 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
7994 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
7995 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
7996 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
7997 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
7998 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
7999 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
8000 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
8001 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
8002 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
8003 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
8004 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
8005 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
8006 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
8007 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
8008 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
8009 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
8010 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
8011 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
8012 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
8013 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
8014 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
8015 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
8016 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
8017 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
8018 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
8019 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
8020 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
8021 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
8022 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
8023 definitions accordingly.
8024
8025 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
8026 Kuan-Lin Chen <kuanlinchentw@gmail.com>
8027
8028 PR target/79079
8029 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
8030 gen_lowpart.
8031
8032 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
8033
8034 PR target/79058
8035 * ira-conflicts.c (ira_build_conflicts): Update total conflict
8036 hard regs for inner regno.
8037
8038 2017-01-17 Martin Liska <mliska@suse.cz>
8039
8040 PR ipa/71207
8041 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
8042 assumption and add comment.
8043
8044 2017-01-17 Nathan Sidwell <nathan@acm.org>
8045
8046 * ipa-visibility.c (localize_node): New function, broken out of ...
8047 (function_and_variable_visibility): ... here. Call it.
8048
8049 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
8050
8051 PR middle-end/77445
8052 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
8053 correctly set frequency of oudgoing edge.
8054 (duplicate_thread_path): Fix profile updating.
8055
8056 2017-01-17 Jakub Jelinek <jakub@redhat.com>
8057
8058 PR other/79046
8059 * configure.ac: Add GCC_BASE_VER.
8060 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
8061 version from BASE-VER file.
8062 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
8063 (gcc.o): Depend on $(BASEVER).
8064 * common.opt (dumpfullversion): New option.
8065 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
8066 * doc/invoke.texi: Document -dumpfullversion.
8067 * doc/install.texi: Document --with-gcc-major-version-only.
8068 * configure: Regenerated.
8069
8070 2017-01-17 Richard Biener <rguenther@suse.de>
8071
8072 PR tree-optimization/71433
8073 * tree-vrp.c (register_new_assert_for): Merge same asserts
8074 on all incoming edges.
8075 (process_assert_insertions_for): Handle insertions at the
8076 beginning of BBs.
8077
8078 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
8079
8080 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
8081 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
8082
8083 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
8084
8085 PR target/78633
8086 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
8087 RTL sharing.
8088
8089 2017-01-17 Alan Modra <amodra@gmail.com>
8090
8091 PR target/79066
8092 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
8093 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
8094 symbolic stack limit when pic.
8095
8096 2017-01-16 Martin Sebor <msebor@redhat.com>
8097
8098 PR tree-optimization/78608
8099 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
8100
8101 2017-01-16 Jeff Law <law@redhat.com>
8102
8103 Revert:
8104 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
8105 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
8106 for several include directories that may be relative to sysroot.
8107 * config/i386/x-mingw32 (gplus_includedir): Define.
8108 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
8109 (native_system_includedir): Likewise.
8110 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
8111 override if TARGET_SYSTEM_ROOT is defined.
8112 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
8113
8114 PR tree-optimization/79090
8115 PR tree-optimization/33562
8116 PR tree-optimization/61912
8117 PR tree-optimization/77485
8118 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
8119 and computed trims into the dump file.
8120
8121 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
8122
8123 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
8124
8125 2017-01-16 Jakub Jelinek <jakub@redhat.com>
8126
8127 PR c/79089
8128 * gimplify.c (gimplify_init_constructor): If want_value and
8129 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
8130 fix.
8131
8132 PR target/79080
8133 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
8134 sequence. Formatting fixes.
8135 (doloop_optimize): Formatting fixes.
8136
8137 PR driver/49726
8138 * gcc.c (debug_level_greater_than_spec_func): New function.
8139 (static_spec_functions): Add debug-level-gt spec function.
8140 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
8141 !g0.
8142 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
8143 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
8144 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
8145 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
8146 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
8147 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
8148
8149 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
8150
8151 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
8152 QImode fixups to general and mask registers only.
8153
8154 2017-01-16 Carl Love <cel@us.ibm.com>
8155
8156 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
8157 for built-in functions
8158 vector signed char vec_nabs (vector signed char)
8159 vector signed short vec_nabs (vector signed short)
8160 vector signed int vec_nabs (vector signed int)
8161 vector signed long long vec_nabs (vector signed long long)
8162 vector float vec_nabs (vector float)
8163 vector double vec_nabs (vector double)
8164 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
8165 and NABS overload.
8166 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
8167 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
8168 * doc/extend.texi: Update the documentation file for the new built-in
8169 functions.
8170
8171 2017-01-16 Martin Sebor <msebor@redhat.com>
8172
8173 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
8174 message.
8175
8176 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8177
8178 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
8179 UNSPEC_VSX__XXSPLTD to require special splat handling.
8180
8181 2017-01-16 David Malcolm <dmalcolm@redhat.com>
8182
8183 PR bootstrap/78616
8184 * system.h: Poison strndup.
8185
8186 2017-01-16 Alan Modra <amodra@gmail.com>
8187
8188 PR target/79098
8189 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
8190 use a switch.
8191
8192 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
8193
8194 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
8195
8196 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
8197
8198 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
8199 call recog here. Assert that INSN_CODE (insn) is non-negative.
8200
8201 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
8202
8203 PR target/72749
8204 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
8205 fallthrough.
8206 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
8207 in the currently scheduled RTL fragment.
8208
8209 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
8210
8211 PR rtl-optimization/78751
8212 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
8213 give up.
8214
8215 2017-01-14 Jeff Law <law@redhat.com>
8216
8217 PR tree-optimization/79090
8218 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
8219 variable length stores.
8220 (compute_trims): Delete dead assignment to *trim_tail.
8221 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
8222 zero length.
8223
8224 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
8225
8226 PR rtl-optimization/78626
8227 PR rtl-optimization/78727
8228 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
8229 of a block, and split such blocks after everything else is finished.
8230
8231 2017-01-14 Alan Modra <amodra@gmail.com>
8232
8233 PR target/72749
8234 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
8235 target legitimate_combined_insn.
8236 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
8237 (rs6000_legitimate_combined_insn): New function.
8238 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
8239 all uses.
8240 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
8241 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
8242 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
8243
8244 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
8245
8246 * doc/frontends.texi (G++ and GCC): Remove references to Java.
8247
8248 2017-01-13 Jeff Law <law@redhat.com>
8249
8250 PR tree-optimization/33562
8251 PR tree-optimization/61912
8252 PR tree-optimization/77485
8253 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
8254 a statement.
8255 (delete_dead_assignment): Likewise.
8256 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
8257 statement to delete_dead_call and delete_dead_assignment.
8258
8259 2017-01-13 David Malcolm <dmalcolm@redhat.com>
8260
8261 PR c/78304
8262 * substring-locations.c (format_warning_va): Strengthen case 1 so
8263 that both endpoints of the substring must be within the format
8264 range for just the substring to be printed.
8265
8266 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
8267
8268 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
8269 * config/i386/i386.c (ix86_target_string): Add missing options
8270 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
8271 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
8272 flags_other and ix86_target_other to flags2_other. Display unknown
8273 isa2 options.
8274 (ix86_valid_target_attribute_inner_p): Add missing options and
8275 reorder options by implied ISAs, as in ix86_target_string.
8276
8277 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
8278
8279 * hash-table.h (hash_table::too_empty_p): New function.
8280 (hash_table::expand): Use it.
8281 (hash_table::traverse): Likewise.
8282 (hash_table::empty_slot): Use sizeof (value_type) instead of
8283 sizeof (PTR) to convert bytes to elements. Shrink the table
8284 if the current size is excessive for the current number of
8285 elements.
8286
8287 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
8288
8289 * ira-costs.c (record_reg_classes): Break from the inner loop
8290 early once alt_fail is known to be true. Update outer loop
8291 handling accordingly.
8292
8293 2017-01-13 Jeff Law <law@redhat.com>
8294
8295 * tree-ssa-dse.c (decrement_count): New function.
8296 (increment_start_addr, maybe_trim_memstar_call): Likewise.
8297 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
8298 when we know the partially dead statement is a mem* function.
8299
8300 PR tree-optimization/61912
8301 PR tree-optimization/77485
8302 * tree-ssa-dse.c: Include expr.h.
8303 (maybe_trim_constructor_store): New function.
8304 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
8305
8306 PR tree-optimization/33562
8307 PR tree-optimization/61912
8308 PR tree-optimization/77485
8309 * doc/invoke.texi: Document new dse-max-object-size param.
8310 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
8311 * tree-ssa-dse.c: Include params.h.
8312 (dse_store_status): New enum.
8313 (initialize_ao_ref_for_dse): New, partially extracted from
8314 dse_optimize_stmt.
8315 (valid_ao_ref_for_dse, normalize_ref): New.
8316 (setup_live_bytes_from_ref, compute_trims): Likewise.
8317 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
8318 (maybe_trim_partially_dead_store): Likewise.
8319 (maybe_trim_complex_store): Likewise.
8320 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
8321 Track what bytes live from the original store. Return tri-state
8322 for dead, partially dead or live.
8323 (dse_dom_walker): Add constructor, destructor and new private members.
8324 (delete_dead_call, delete_dead_assignment): New extracted from
8325 dse_optimize_stmt.
8326 (dse_optimize_stmt): Make a member of dse_dom_walker.
8327 Use initialize_ao_ref_for_dse.
8328
8329 PR tree-optimization/33562
8330 PR tree-optimization/61912
8331 PR tree-optimization/77485
8332 * sbitmap.h (bitmap_count_bits): Prototype.
8333 (bitmap_clear_range, bitmap_set_range): Likewise.
8334 * sbitmap.c (bitmap_clear_range): New function.
8335 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
8336
8337 2017-01-13 Martin Liska <mliska@suse.cz>
8338
8339 PR ipa/79043
8340 * function.c (set_cfun): Add new argument force.
8341 * function.h (set_cfun): Likewise.
8342 * ipa-inline-transform.c (inline_call): Use the function when
8343 strict alising from is dropped for function we inline to.
8344
8345 2017-01-13 Richard Biener <rguenther@suse.de>
8346
8347 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
8348 for dumping GIMPLE INTEGER_CSTs.
8349
8350 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8351
8352 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
8353 to 201112L since C++17.
8354
8355 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
8356
8357 PR sanitizer/78887
8358 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
8359 if -fsanitize=kernel-address is present.
8360
8361 2017-01-13 Richard Biener <rguenther@suse.de>
8362
8363 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
8364 as _Literal ( type ) number in case usual suffixes do not
8365 preserve all information.
8366
8367 2017-01-13 Richard Biener <rguenther@suse.de>
8368
8369 PR tree-optimization/77283
8370 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
8371 and ssa-iterators.h.
8372 (is_feasible_trace): Implement a cost model based on joiner
8373 PHI node uses.
8374
8375 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8376
8377 PR target/79004
8378 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
8379 char or short to __float128/_Float128 directly.
8380
8381 2017-01-12 Martin Sebor <msebor@redhat.com>
8382
8383 to -Wformat-overflow.
8384 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
8385 (min_bytes_remaining): Same.
8386 (get_string_length): Same.
8387 (format_string): Same.
8388 (format_directive): Same.
8389 (add_bytes): Same.
8390 (pass_sprintf_length::handle_gimple_call): Same.
8391
8392 2017-01-12 Jakub Jelinek <jakub@redhat.com>
8393
8394 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
8395 info.nowrite calls with no lhs that can't throw. Return bool
8396 whether gsi_remove has been called or not.
8397 (pass_sprintf_length::handle_gimple_call): Return bool whether
8398 try_substitute_return_value called gsi_remove. Formatting fix.
8399 (pass_sprintf_length::execute): Don't use gsi_remove if
8400 handle_gimple_call returned true.
8401
8402 PR bootstrap/79069
8403 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
8404 be removed due to side-effects, don't remove following barrier nor
8405 turn the successor edge into fallthru edge.
8406
8407 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8408
8409 PR target/79044
8410 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
8411 element-reversing loads and stores as not swappable.
8412
8413 2017-01-12 Nathan Sidwell <nathan@acm.org>
8414 Nicolai Stange <nicstange@gmail.com>
8415
8416 * combine.c (try_combine): Don't ignore result of overlap checking
8417 loop. Combine overlap & asm check into single loop.
8418
8419 2017-01-12 Richard Biener <rguenther@suse.de>
8420
8421 * tree-pretty-print.c (dump_generic_node): Provide -gimple
8422 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
8423
8424 2017-01-12 Richard Biener <rguenther@suse.de>
8425
8426 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
8427 and TS_TARGET_OPTION directly derive from TS_BASE.
8428 * tree-core.h (tree_optimization_option): Derive from tree_base.
8429 (tree_target_option): Likewise.
8430
8431 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
8432
8433 * config/i386/i386.c (memory_address_length): Increase len
8434 only when rip_relative_addr_p returns false.
8435
8436 2017-01-11 Julia Koval <julia.koval@intel.com>
8437
8438 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
8439 (OPTION_MASK_ISA_SGX_SET): New.
8440 (ix86_handle_option): Handle OPT_msgx.
8441 * config.gcc: Added sgxintrin.h.
8442 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
8443 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
8444 * config/i386/i386.c (ix86_target_string): Add -msgx.
8445 (PTA_SGX): New.
8446 (ix86_option_override_internal): Handle new options.
8447 (ix86_valid_target_attribute_inner_p): Add sgx.
8448 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
8449 * config/i386/i386.opt: Add msgx.
8450 * config/i386/sgxintrin.h: New file.
8451 * config/i386/x86intrin.h: Add sgxintrin.h.
8452
8453 2017-01-11 Jakub Jelinek <jakub@redhat.com>
8454
8455 PR c++/71537
8456 * fold-const.c (maybe_nonzero_address): Return 1 for function
8457 local objects.
8458 (tree_single_nonzero_warnv_p): Don't handle function local objects
8459 here.
8460
8461 PR c++/72813
8462 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
8463 of c-header.
8464
8465 2017-01-11 David Malcolm <dmalcolm@redhat.com>
8466
8467 PR driver/78877
8468 * opts.c: Include "spellcheck.h"
8469 (struct string_fragment): New struct.
8470 (struct edit_distance_traits<const string_fragment &>): New
8471 struct.
8472 (get_closest_sanitizer_option): New function.
8473 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
8474
8475 2017-01-11 Jakub Jelinek <jakub@redhat.com>
8476
8477 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
8478 by 12.
8479 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
8480 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
8481 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
8482 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
8483 for initial die_offset if dwarf_split_debug_info.
8484 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
8485 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
8486 fields.
8487 (output_skeleton_debug_sections): Formatting fix. Use
8488 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
8489 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
8490
8491 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
8492
8493 * config/arm/cortex-a53.md: Add bypasses for
8494 cortex_a53_r2f_cvt.
8495 (cortex_a53_r2f): Only use for transfers.
8496 (cortex_a53_f2r): Likewise.
8497 (cortex_a53_r2f_cvt): Add reservation for conversions.
8498 (cortex_a53_f2r_cvt): Likewise.
8499
8500 2017-01-11 Tamar Christina <tamar.christina@arm.com>
8501
8502 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
8503 to all inlined functions, change static to extern.
8504
8505 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
8506
8507 PR target/78253
8508 * config/arm/arm.c (legitimize_pic_address): Handle reference to
8509 weak symbol.
8510 (arm_assemble_integer): Likewise.
8511
8512 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
8513
8514 * config.gcc: Use new awk script to check CPU, FPU and architecture
8515 parameters for --with-... options.
8516 * config/arm/parsecpu.awk: New file
8517 * config/arm/arm-cpus.in: New file.
8518 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
8519 files.
8520 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
8521 files.
8522 * config/arm/t-arm: Update dependency rules.
8523 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
8524 of processing .def files.
8525 * config/arm/genopt.sh: Deleted.
8526 * config/arm/gentune.sh: Deleted.
8527 * config/arm/arm-cores.def: Deleted.
8528 * config/arm/arm-arches.def: Deleted.
8529 * config/arm/arm-fpus.def: Deleted.
8530 * config/arm/arm-tune.md: Regenerated.
8531 * config/arm/arm-tables.opt: Regenerated.
8532 * config/arm/arm-cpu.h: New generated file.
8533 * config/arm/arm-cpu-data.h: New generated file.
8534 * config/arm/arm-cpu-cdata.h: New generated file.
8535
8536 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
8537
8538 PR lto/79042
8539 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
8540 bit.
8541 (input_varpool_node): Unpack dynamically_initialized bit.
8542
8543 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
8544
8545 PR rtl-optimization/79032
8546 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
8547 the alignment of the adjusted memory reference against that of MODE,
8548 instead of the alignment of the original memory reference.
8549
8550 2017-01-11 Martin Jambor <mjambor@suse.cz>
8551
8552 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
8553 test.
8554 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
8555 decorated functions.
8556
8557 2017-01-11 Richard Biener <rguenther@suse.de>
8558
8559 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
8560 set range/nonnull info for PHI results. Do not set it on
8561 stmts marked for removal.
8562
8563 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
8564
8565 * expr.c (store_field): In the bitfield case, fetch the return value
8566 from the registers before applying a single big-endian adjustment.
8567 Always do a final load for a BLKmode value not larger than a word.
8568
8569 2017-01-10 David Malcolm <dmalcolm@redhat.com>
8570
8571 PR c++/77949
8572 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
8573 that we correctly handle column numbers greater than
8574 LINE_MAP_MAX_COLUMN_NUMBER.
8575
8576 2017-01-10 Martin Sebor <msebor@redhat.com>
8577
8578 PR middle-end/78245
8579 * gimple-ssa-sprintf.c (get_destination_size): Call
8580 {init,fini}object_sizes.
8581 * tree-object-size.c (addr_object_size): Adjust.
8582 (pass_through_call): Adjust.
8583 (pass_object_sizes::execute): Adjust.
8584 * tree-object-size.h (fini_object_sizes): Declare.
8585
8586 2017-01-10 Martin Sebor <msebor@redhat.com>
8587
8588 PR tree-optimization/78775
8589 * builtins.c (get_size_range): Move...
8590 * calls.c: ...to here.
8591 (alloc_max_size): Accept zero argument.
8592 (operand_signed_p): Remove.
8593 (maybe_warn_alloc_args_overflow): Call get_size_range.
8594 * calls.h (get_size_range): Declare.
8595
8596 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
8597
8598 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
8599 from TI's devices.csv file as of September 2016.
8600 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
8601
8602 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
8603
8604 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
8605 * doc/invoke.texi: Likewise.
8606 * doc/md.texi: Likewise.
8607 * doc/objc.texi: Likewise.
8608
8609 2017-01-10 Joshua Conner <joshconner@google.com>
8610
8611 * config/arm/fuchsia-elf.h: New file.
8612 * config/fuchsia.h: New file.
8613 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
8614 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
8615 targets.
8616 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
8617
8618 2016-01-10 Richard Biener <rguenther@suse.de>
8619
8620 PR tree-optimization/79034
8621 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
8622 Propagate out degenerate PHIs in the joiner.
8623
8624 2017-01-10 Martin Liska <mliska@suse.cz>
8625
8626 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
8627 (sort_congruence_classes_by_decl_uid): Likewise.
8628 (sort_congruence_class_groups_by_decl_uid): Likewise.
8629 (sem_item_optimizer::merge_classes): Sort class, groups in these
8630 classes and members in the groups by DECL_UID of declarations.
8631 This would make merge operations stable.
8632
8633 2017-01-10 Martin Liska <mliska@suse.cz>
8634
8635 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
8636 usage of m_classes_vec.
8637 (sem_item_optimizer::~sem_item_optimizer): Likewise.
8638 (sem_item_optimizer::get_group_by_hash): Likewise.
8639 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
8640 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
8641 (sem_item_optimizer::verify_classes): Likewise.
8642 (sem_item_optimizer::process_cong_reduction): Likewise.
8643 (sem_item_optimizer::dump_cong_classes): Likewise.
8644 (sem_item_optimizer::merge_classes): Likewise.
8645 * ipa-icf.h (congruence_class_hash): Rename from
8646 congruence_class_group_hash. Remove declaration of m_classes_vec.
8647
8648 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
8649
8650 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
8651 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
8652 * config.gcc: Add avx512vpopcntdqintrin.h.
8653 * config/i386/avx512vpopcntdqintrin.h: New.
8654 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
8655 * config/i386/i386-builtin-types.def: Add new types.
8656 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
8657 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
8658 __builtin_ia32_vpopcountq_v8di_mask): New.
8659 * config/i386/i386-c.c (ix86_target_macros_internal): Define
8660 __AVX512VPOPCNTDQ__.
8661 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
8662 (PTA_AVX512VPOPCNTDQ): Define.
8663 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
8664 TARGET_AVX512VPOPCNTDQ_P): Define.
8665 * config/i386/i386.opt: Add mavx512vpopcntdq.
8666 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
8667 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
8668
8669 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8670
8671 PR middle-end/77484
8672 * predict.def (PRED_CALL): Set to 67.
8673
8674 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
8675
8676 * expr.c (store_field): In the bitfield case, if the value comes from
8677 a function call and is of an aggregate type returned in registers, do
8678 not modify the field mode; extract the value in all cases if the mode
8679 is BLKmode and the size is not larger than a word.
8680
8681 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
8682
8683 PR target/71017
8684 * config/i386/cpuid.h: Fix undefined behavior.
8685
8686 2017-01-04 Jeff Law <law@redhat.com>
8687
8688 PR tree-optimization/79007
8689 PR tree-optimization/67955
8690 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
8691 conservative for pt.null when flag_non_call_exceptions is on.
8692
8693 2017-01-09 Jakub Jelinek <jakub@redhat.com>
8694
8695 PR translation/79019
8696 PR translation/79020
8697 * params.def (PARAM_INLINE_MIN_SPEEDUP,
8698 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
8699 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
8700 in descriptions.
8701 * config/avr/avr.opt (maccumulate-args): Likewise.
8702 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
8703 * common.opt (freport-bug): Likewise.
8704 * cif-code.def (CIF_FINAL_ERROR): Likewise.
8705 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
8706 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
8707 translatable string.
8708 * config/i386/i386.c (function_value_32): Likewise.
8709 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
8710 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
8711 Likewise.
8712 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
8713 * common/config/msp430/msp430-common.c (msp430_handle_option):
8714 Likewise.
8715 * symtab.c (symtab_node::verify_base): Likewise.
8716 * opts.c (set_debug_level): Likewise.
8717 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
8718 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8719 missing whitespace to translatable strings.
8720 * config/avr/avr.md (bswapsi2): Fix typo in comment.
8721 * config/sh/superh.h: Likewise.
8722 * config/i386/xopintrin.h: Likewise.
8723 * config/i386/znver1.md: Likewise.
8724 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
8725 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
8726 * double-int.h (struct double_int): Likewise.
8727 * double-int.c (div_and_round_double): Likewise.
8728 * wide-int.cc: Likewise.
8729 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
8730 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
8731 * cfgcleanup.c (crossjumps_occured): Renamed to ...
8732 (crossjumps_occurred): ... this.
8733 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
8734 Adjust all uses.
8735
8736 PR tree-optimization/78899
8737 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
8738 returning bool return struct loop *, NULL for failure and the new
8739 loop on success.
8740 (versionable_outer_loop_p): Don't version outer loop if it has
8741 dont_vectorized bit set.
8742 (tree_if_conversion): When versioning outer loop, ensure
8743 tree_if_conversion is performed also on the inner loop of the
8744 non-vectorizable outer loop copy.
8745 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
8746 LOOP_VECTORIZED in inner loop of the scalar outer loop and
8747 prevent vectorization of it.
8748 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
8749 the outer loop vectorization of the non-scalar version is attempted
8750 before vectorization of the inner loop in scalar version. If
8751 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
8752 vectorization of its inner loop.
8753 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
8754 has 2 inner loops, rename also on edges from bb whose single pred
8755 is outer_loop->header. Fix typo in function comment.
8756
8757 2017-01-09 Martin Sebor <msebor@redhat.com>
8758
8759 PR bootstrap/79033
8760 * asan.c (asan_emit_stack_protection): Increase local buffer size
8761 to avoid snprintf truncation warning.
8762
8763 2017-01-09 Andrew Pinski <apinski@cavium.com>
8764
8765 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
8766 to reference thunderx2t99 for the tuning structure
8767 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
8768 Rename to ...
8769 (thunderx2t99_extra_costs): This.
8770 * config/aarch64/aarch64-tune.md: Regenerate.
8771 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
8772 (vulcan_addrcost_table): This.
8773 (vulcan_regmove_cost): Rename to ...
8774 (thunderx2t99_regmove_cost): This.
8775 (vulcan_vector_cost): Rename to ...
8776 (thunderx2t99_vector_cost): this.
8777 (vulcan_branch_cost): Rename to ...
8778 (thunderx2t99_branch_cost): This.
8779 (vulcan_tunings): Rename to ...
8780 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
8781 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
8782
8783 2017-01-09 Martin Jambor <mjambor@suse.cz>
8784
8785 PR ipa/78365
8786 PR ipa/78599
8787 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
8788 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
8789 (propagate_vr_accross_jump_function): Use the above function for all
8790 value range computations for pass-through jump functions and type
8791 converasion from explicit value range values.
8792 (ipcp_propagate_stage): Do not attempt to deduce types of formal
8793 parameters from TYPE_ARG_TYPES.
8794 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
8795 (ipa_write_node_info): Stream type of the actual argument.
8796 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
8797
8798 2017-01-09 Martin Liska <mliska@suse.cz>
8799
8800 PR pch/78970
8801 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
8802 (lookup_compiler): Do not show error message with have_E.
8803
8804 2017-01-09 Jakub Jelinek <jakub@redhat.com>
8805
8806 PR tree-optimization/78938
8807 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
8808 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
8809 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
8810 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
8811 fixes.
8812
8813 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8814
8815 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
8816 is const0_rtx.
8817
8818 2017-01-09 Richard Biener <rguenther@suse.de>
8819
8820 PR tree-optimization/78997
8821 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
8822 name condition properly.
8823
8824 2017-01-09 Richard Biener <rguenther@suse.de>
8825
8826 PR debug/79000
8827 * dwarf2out.c (is_cxx): New overload with context.
8828 (is_naming_typedef_decl): Use it.
8829
8830 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8831
8832 * invoke.texi (Option Summary): Correct spacing in option lists
8833 and add line breaks to fix over-long lines.
8834
8835 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8836
8837 PR middle-end/17660
8838
8839 * extend.texi (Common Variable Attributes): Add xref to GCC
8840 Internals manual to explain mode attribute keywords.
8841
8842 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8843
8844 PR other/16519
8845 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
8846 and Preprocessor Options.
8847 (Options for Linking): Document -pthread here....
8848 (RS/6000 and PowerPC Options): ...not here.
8849 (Solaris 2 Options): ...or here.
8850 * doc/cppopts.texi: Document -pthread.
8851
8852 2017-01-08 Martin Sebor <msebor@redhat.com>
8853
8854 PR middle-end/77708
8855 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
8856 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
8857 New member functions.
8858 (format_directive): Used them.
8859 (add_bytes): Same.
8860 (pass_sprintf_length::handle_gimple_call): Same.
8861 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
8862 to avoid truncation for any argument.
8863 (extract_affine_mul): Same.
8864 * tree.c (get_file_function_name): Same.
8865
8866 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8867
8868 PR middle-end/77484
8869 * predict.def (PRED_INDIR_CALL): Set to 86.
8870
8871 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8872
8873 PR preprocessor/54124
8874 * doc/cppopts.texi: Reformat -d subtable to list the full name
8875 of the options. Add cross-reference to the docs for the general
8876 compiler -d options.
8877 * doc/invoke.texi (Developer Options): Add cross-reference to the
8878 preprocessor-specific -d option documentation.
8879
8880 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8881
8882 PR preprocessor/13498
8883 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
8884 redudant material, and reflect new command-line options.
8885 (System Headers): Likewise.
8886
8887 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8888
8889 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
8890 -isystem, and -idirafter. Copy-edit.
8891 * doc/cppopts.texi: Copy-edit. Remove contradiction about
8892 default for -ftrack-macro-expansion. Delete obsolete and
8893 badly-formatted implementation details about -fdebug-cpp output.
8894 * doc/cppwarnopts.texi: Copy-edit.
8895
8896 2017-01-07 David Malcolm <dmalcolm@redhat.com>
8897
8898 PR c++/72803
8899 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
8900 that the transition from a max line width >= 1<<10 to narrower
8901 lines works correctly.
8902
8903 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
8904
8905 * doc/options.texi (PerFunction): New.
8906 * opt-functions.awk (switch_flags): Map both Optimization and
8907 PerFunction to CL_OPTIMIZATION.
8908 * opth-gen.awk: Test for PerFunction flag along with
8909 Optimization.
8910 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
8911 it only when the latter is present. Skip those that don't in
8912 the hash function generator.
8913 * common.opt (fvar-tracking): Mark as PerFunction instead of
8914 Optimization.
8915 (fvar-tracking-assignments): Likewise.
8916 (fvar-tracking-assignments-toggle): Likewise.
8917 (fvar-tracking-uninit): Likewise.
8918
8919 2017-01-07 Jakub Jelinek <jakub@redhat.com>
8920
8921 PR translation/79018
8922 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
8923 the and store.
8924
8925 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
8926
8927 PR target/57583
8928 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
8929 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
8930 TARGET_LONG_JUMP_TABLE_OFFSETS.
8931 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
8932 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
8933 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
8934 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
8935 * config/m68k/m68k.md (tablejump expander): Likewise.
8936 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
8937 TARGET_LONG_JUMP_TABLE_OFFSETS.
8938 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
8939 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
8940
8941 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8942 David Holsgrove <david.holsgrove@xilinx.com>
8943
8944 * common/config/microblaze/microblaze-common.c
8945 (TARGET_EXCEPT_UNWIND_INFO): Remove.
8946 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
8947 New prototype.
8948 * config/microblaze/microblaze.c (microblaze_must_save_register)
8949 (microblaze_expand_epilogue, microblaze_return_addr): Handle
8950 calls_eh_return.
8951 (microblaze_eh_return): New function.
8952 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
8953 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
8954 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
8955 * config/microblaze/microblaze.md (eh_return): New pattern.
8956
8957 2017-01-06 Jakub Jelinek <jakub@redhat.com>
8958
8959 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
8960 GCC_DIAGNOSTIC_STRINGIFY): Define.
8961
8962 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
8963
8964 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8965
8966 * config/arm/arm.md (<mcrr>): New.
8967 (<mrrc>): New.
8968 * config/arm/arm.c (arm_arch5te): New.
8969 (arm_option_override): Set arm_arch5te.
8970 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
8971 and mrrc2.
8972 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
8973 (arm_mcrr_qualifiers): ... this. New.
8974 (MRRC_QUALIFIERS): Define to...
8975 (arm_mrrc_qualifiers): ... this. New.
8976 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
8977 __arm_mrrc2): New.
8978 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
8979 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
8980 (MRRCI, mrrc, MRRC): New.
8981 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
8982 VUNSPEC_MRRC2): New.
8983
8984 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8985
8986 * config/arm/arm.md (<mcr>): New.
8987 (<mrc>): New.
8988 * config/arm/arm.c (arm_coproc_builtin_available): Add
8989 support for mcr, mrc, mcr2 and mrc2.
8990 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
8991 (arm_mcr_qualifiers): ... this. New.
8992 (MRC_QUALIFIERS): Define to ...
8993 (arm_mrc_qualifiers): ... this. New.
8994 (MCR_QUALIFIERS): Define to ...
8995 (arm_mcr_qualifiers): ... this. New.
8996 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
8997 __arm_mrc2): New.
8998 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
8999 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
9000 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
9001 VUNSPEC_MRC2): New.
9002
9003 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
9004
9005 * config/arm/arm.md (*ldc): New.
9006 (*stc): New.
9007 (<ldc>): New.
9008 (<stc>): New.
9009 * config/arm/arm.c (arm_coproc_builtin_available): Add
9010 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
9011 (arm_coproc_ldc_stc_legitimate_address): New.
9012 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
9013 'qualifier_const_pointer'.
9014 (LDC_QUALIFIERS): Define to...
9015 (arm_ldc_qualifiers): ... this. New.
9016 (STC_QUALIFIERS): Define to...
9017 (arm_stc_qualifiers): ... this. New.
9018 * config/arm/arm-protos.h
9019 (arm_coproc_ldc_stc_legitimate_address): New.
9020 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
9021 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
9022 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
9023 stc2, stcl, stc2l): New.
9024 * config/arm/constraints.md (Uz): New.
9025 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
9026 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
9027 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
9028 VUNSPEC_STC2L): New.
9029
9030 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
9031
9032 * config/arm/arm.md (<cdp>): New.
9033 * config/arm/arm.c (neon_const_bounds): Rename this ...
9034 (arm_const_bounds): ... this.
9035 (arm_coproc_builtin_available): New.
9036 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
9037 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
9038 (CDP_QUALIFIERS): Define to...
9039 (arm_cdp_qualifiers): ... this. New.
9040 (void_UP): Define.
9041 (arm_expand_builtin_args): Add case for 6 arguments.
9042 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
9043 (arm_const_bounds): ... this.
9044 (arm_coproc_builtin_available): New.
9045 * config/arm/arm_acle.h (__arm_cdp): New.
9046 (__arm_cdp2): New.
9047 * config/arm/arm_acle_builtins.def (cdp): New.
9048 (cdp2): New.
9049 * config/arm/iterators.md (CDPI,CDP,cdp): New.
9050 * config/arm/neon.md: Rename all 'neon_const_bounds' to
9051 'arm_const_bounds'.
9052 * config/arm/types.md (coproc): New.
9053 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
9054 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
9055 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
9056 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
9057
9058 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
9059
9060 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
9061 (UBINOP_QUALIFIERS): New.
9062 (si_UP): Define.
9063 (acle_builtin_data): New. Change comment.
9064 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
9065 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
9066 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
9067 arm_acle_builtins.def.
9068 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
9069 (arm_init_acle_builtins): New.
9070 (CRC32_BUILTIN): Remove.
9071 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
9072 crc32cb, crc32ch and crc32cw.
9073 (arm_init_crc32_builtins): Remove.
9074 (arm_init_builtins): Use arm_init_acle_builtins rather
9075 than arm_init_crc32_builtins.
9076 (arm_expand_acle_builtin): New.
9077 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
9078 * config/arm/arm_acle_builtins.def: New.
9079
9080 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
9081
9082 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
9083 (arm_builtin_datum): ... this.
9084 (arm_init_neon_builtin): Rename to ...
9085 (arm_init_builtin): ... this. Add a new parameters PREFIX
9086 and USE_SIG_IN_NAME.
9087 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
9088 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
9089 'arm_builtin_datum'.
9090 (arm_init_vfp_builtins): Likewise.
9091 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
9092 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
9093 (arm_expand_neon_args): Rename to ...
9094 (arm_expand_builtin_args): ... this. Rename builtin_arg
9095 enum values and differentiate between ARG_BUILTIN_MEMORY
9096 and ARG_BUILTIN_NEON_MEMORY.
9097 (arm_expand_neon_builtin_1): Rename to ...
9098 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
9099 values, arm_expand_builtin_args and add bool parameter NEON.
9100 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
9101 (arm_expand_vfp_builtin): Likewise.
9102 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
9103
9104 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
9105
9106 PR middle-end/77484
9107 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
9108 * predict.c (tree_estimate_probability_bb): Reverse direction of
9109 polymorphic call predictor.
9110
9111 2017-01-06 David Malcolm <dmalcolm@redhat.com>
9112
9113 * passes.c (execute_one_pass): Split out pass-skipping logic into...
9114 (determine_pass_name_match): ...this new function and...
9115 (should_skip_pass_p): ...this new function.
9116
9117 2017-01-06 Nathan Sidwell <nathan@acm.org>
9118
9119 * ipa-visibility.c (function_and_variable_visibility): Reformat
9120 comments and long lines. Remove extrneous if.
9121 * symtab.c (symtab_node::make_decl_local): Fix code format.
9122 (symtab_node::set_section_for_node): Fix comment typo.
9123
9124 2017-01-06 Martin Liska <mliska@suse.cz>
9125
9126 PR bootstrap/79003
9127 * lra-constraints.c: Rename invariant to lra_invariant.
9128 * predict.c (set_even_probabilities): Initialize e to NULL.
9129
9130 2017-01-05 Martin Sebor <msebor@redhat.com>
9131
9132 PR tree-optimization/78910
9133 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
9134 (format_integer): Correct off-by-one error in the handling
9135 of precision with negative numbers in signed conversions..
9136
9137 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
9138
9139 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
9140
9141 2017-01-05 Jakub Jelinek <jakub@redhat.com>
9142
9143 PR tree-optimization/71016
9144 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
9145 factor_out_conditional_conversion. Formatting fix.
9146 (factor_out_conditional_conversion): Add cond_stmt argument.
9147 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
9148 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
9149 Formatting fix.
9150
9151 2017-01-05 David Malcolm <dmalcolm@redhat.com>
9152
9153 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
9154 read-rtl-function.o, and selftest-rtl.o.
9155 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
9156 (selftest::aarch64_test_loading_full_dump): New function.
9157 (selftest::aarch64_run_selftests): New function.
9158 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
9159 selftest::aarch64_run_selftests.
9160 * config/i386/i386.c
9161 (selftest::ix86_test_loading_dump_fragment_1): New function.
9162 (selftest::ix86_test_loading_call_insn): New function.
9163 (selftest::ix86_test_loading_full_dump): New function.
9164 (selftest::ix86_test_loading_unspec): New function.
9165 (selftest::ix86_run_selftests): Call the new functions.
9166 * emit-rtl.c (maybe_set_max_label_num): New function.
9167 * emit-rtl.h (maybe_set_max_label_num): New decl.
9168 * function.c (instantiate_decls): Guard call to
9169 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
9170 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
9171 "static".
9172 * gensupport.c (gen_reader::gen_reader): Pass "false"
9173 for new "compact" param of rtx_reader.
9174 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
9175 rather than an empty string for NULL strings.
9176 * read-md.c: Potentially include config.h rather than bconfig.h.
9177 Wrap include of errors.h with #ifdef GENERATOR_FILE.
9178 (have_error): New global, copied from errors.c.
9179 (md_reader::read_name): Rename to...
9180 (md_reader::read_name_1): ...this, adding "out_loc" param,
9181 and converting "missing name or number" to returning false, rather
9182 than failing.
9183 (md_reader::read_name): Reimplement in terms of read_name_1.
9184 (md_reader::read_name_or_nil): New function.
9185 (md_reader::read_string): Handle "(nil)" by returning NULL.
9186 (md_reader::md_reader): Add new param "compact".
9187 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
9188 (md_reader::read_file): New method.
9189 * read-md.h (md_reader::md_reader): Add new param "compact".
9190 (md_reader::read_file): New method.
9191 (md_reader::is_compact): New accessor.
9192 (md_reader::read_name): Convert return type from void to file_location.
9193 (md_reader::read_name_or_nil): New decl.
9194 (md_reader::read_name_1): New decl.
9195 (md_reader::m_compact): New field.
9196 (noop_reader::noop_reader): Pass "false" for new "compact" param
9197 of rtx_reader.
9198 (rtx_reader::rtx_reader): Add new "compact" param.
9199 (rtx_reader::read_rtx_operand): Make virtual and convert return
9200 type from void to rtx.
9201 (rtx_reader::read_until): New decl.
9202 (rtx_reader::handle_any_trailing_information): New virtual function.
9203 (rtx_reader::postprocess): New virtual function.
9204 (rtx_reader::finalize_string): New virtual function.
9205 (rtx_reader::m_in_call_function_usage): New field.
9206 (rtx_reader::m_reuse_rtx_by_id): New field.
9207 * read-rtl-function.c: New file.
9208 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
9209 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
9210 (selftest::verify_three_block_rtl_cfg): New decl.
9211 * read-rtl-function.h: New file.
9212 * read-rtl.c: Potentially include config.h rather than bconfig.h.
9213 For host, include function.h, memmodel.h, and emit-rtl.h.
9214 (one_time_initialization): New function.
9215 (struct compact_insn_name): New struct.
9216 (compact_insn_names): New array.
9217 (find_code): Handle insn codes in compact dumps.
9218 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
9219 (bind_subst_iter_and_attr): Likewise.
9220 (add_condition_to_string): Likewise.
9221 (add_condition_to_rtx): Likewise.
9222 (apply_attribute_uses): Likewise.
9223 (add_current_iterators): Likewise.
9224 (apply_iterators): Likewise.
9225 (initialize_iterators): Guard usage of apply_subst_iterator with
9226 #ifdef GENERATOR_FILE.
9227 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
9228 (md_reader::read_mapping): Likewise.
9229 (add_define_attr_for_define_subst): Likewise.
9230 (add_define_subst_attr): Likewise.
9231 (read_subst_mapping): Likewise.
9232 (check_code_iterator): Likewise.
9233 (rtx_reader::read_rtx): Likewise. Move one-time initialization
9234 logic to...
9235 (one_time_initialization): New function.
9236 (rtx_reader::read_until): New method.
9237 (read_flags): New function.
9238 (parse_reg_note_name): New function.
9239 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
9240 Handle reuse_rtx ids.
9241 Wrap iterator lookup within #ifdef GENERATOR_FILE.
9242 Add parsing support for RTL dumps, mirroring the special-cases in
9243 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
9244 values, and calling handle_any_trailing_information.
9245 (rtx_reader::read_rtx_operand): Convert return type from void
9246 to rtx, returning return_rtx. Handle case 'e'. Call
9247 finalize_string on XSTR and XTMPL fields.
9248 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
9249 "(nil)" values were omitted. Call the postprocess vfunc on the
9250 return_rtx.
9251 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
9252 class ctor. Initialize m_in_call_function_usage. Call
9253 one_time_initialization.
9254 * rtl-tests.c (selftest::test_uncond_jump): Call
9255 set_new_first_and_last_insn.
9256 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
9257 * selftest-rtl.c: New file.
9258 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
9259 (selftest::get_insn_by_uid): New decl.
9260 * selftest-run-tests.c (selftest::run_tests): Call
9261 read_rtl_function_c_tests.
9262 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
9263 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
9264 dumps.
9265
9266 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
9267
9268 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
9269 operands in a special way. Assert that pos+len <= mode precision.
9270
9271 2017-01-05 Jakub Jelinek <jakub@redhat.com>
9272
9273 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
9274 3 argument Alias with unlimited for the negative form.
9275 (fno-vect-cost-model): Removed.
9276
9277 2017-01-05 Martin Liska <mliska@suse.cz>
9278
9279 * hsa-gen.c (gen_hsa_divmod): New function.
9280 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
9281
9282 2017-01-05 Martin Liska <mliska@suse.cz>
9283
9284 PR pch/78970
9285 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
9286 header.
9287
9288 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9289
9290 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
9291 small constant length operands.
9292
9293 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9294
9295 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
9296 between loop iterations.
9297
9298 2017-01-05 Martin Liska <mliska@suse.cz>
9299
9300 PR sanitizer/78815
9301 * gimplify.c (gimplify_decl_expr): Compare to
9302 asan_poisoned_variables instread of checking flags.
9303 (gimplify_target_expr): Likewise.
9304 (gimplify_expr): Likewise.
9305 (gimplify_function_tree): Conditionally initialize
9306 asan_poisoned_variables.
9307
9308 2017-01-04 Jeff Law <law@redhat.com>
9309
9310 PR tree-optimizatin/78812
9311 * rtl.h (contains_mem_rtx_p): Prototype.
9312 * ifcvt.c (containts_mem_rtx_p): Move from here to...
9313 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
9314 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
9315 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
9316 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
9317
9318 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
9319
9320 * input.c (assert_char_at_range): Default-initialize actual_range.
9321
9322 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
9323
9324 * df-scan.c (df_ref_create_structure): Make regno unsigned,
9325 to match the caller.
9326
9327 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
9328
9329 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
9330 insns after final jump in test to emit dummy move.
9331
9332 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
9333
9334 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
9335 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
9336
9337 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
9338
9339 * multiple_target.c (create_dispatcher_calls): Init e_next.
9340 * tree-ssa-loop-split.c (split_loop): Init border.
9341 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
9342 scalar_type.
9343
9344 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9345
9346 PR target/71977
9347 PR target/70568
9348 PR target/78823
9349 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
9350 (altivec_register_operand): Do not return true if the operand
9351 contains a SUBREG mixing SImode and SFmode.
9352 (vsx_register_operand): Likewise.
9353 (vsx_reg_sfsubreg_ok): New predicate.
9354 (vfloat_operand): Do not return true if the operand contains a
9355 SUBREG mixing SImode and SFmode.
9356 (vint_operand): Likewise.
9357 (vlogical_operand): Likewise.
9358 (gpc_reg_operand): Likewise.
9359 (int_reg_operand): Likewise.
9360 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
9361 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
9362 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
9363 SImode and SFmode.
9364 (rs6000_emit_move_si_sf_subreg): New helper function.
9365 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
9366 fixup SUBREGs involving SImode and SFmode.
9367 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
9368 numbers for the new peephole2 optimization.
9369 (peephole2 for SFmode unions): New peephole2 to optimize cases in
9370 the GLIBC math library that do AND/IOR/XOR operations on single
9371 precision floating point.
9372 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
9373 target macros to say whether we need to avoid SUBREGs mixing
9374 SImode and SFmode.
9375 (TARGET_ALLOW_SF_SUBREG): Likewise.
9376 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
9377 (UNSPEC_SI_FROM_SF): Likewise.
9378 (iorxor): Change spacing.
9379 (and_ior_xor): New iterator for AND, IOR, and XOR.
9380 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
9381 (movdi_from_sf_zero_ext): Likewise.
9382 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
9383 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
9384 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
9385 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
9386 (fms<mode>4): Likewise.
9387 (fnma<mode>4): Likewise.
9388 (fnms<mode>4): Likewise.
9389 (nfma<mode>4): Likewise.
9390 (nfms<mode>4): Likewise.
9391
9392 2017-01-04 Marek Polacek <polacek@redhat.com>
9393
9394 PR c++/64767
9395 * doc/invoke.texi: Document -Wpointer-compare.
9396
9397 2017-01-04 Jakub Jelinek <jakub@redhat.com>
9398
9399 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
9400 RejectNegative.
9401
9402 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
9403 descriptions for -gdwarf-5 and emit them as uleb128 instead of
9404 2-byte data.
9405
9406 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
9407
9408 PR target/78056
9409 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
9410 documentation of the powerpc_popcntb_ok attribute.
9411 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9412 code to issue warning messages if a requested CPU configuration is
9413 not supported by the binary (assembler and loader) toolchain.
9414 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
9415 made to define a built-in function that has been disabled.
9416 (paired_init_builtins): Add assertion to prevent ICE if attempt is
9417 made to define a built-in function that has been disabled.
9418 (altivec_init_builtins): Add comment explaining why definition
9419 of the DST built-in functions is not preceded by an assertion
9420 check. Add assertions to prevent ICE if attempts are made to
9421 define an altivec predicate or an abs* built-in function that has
9422 been disabled.
9423 (htm_init_builtins): Add comment explaining why definition of the
9424 htm built-in functions is not preceded by an assertion check.
9425
9426 2017-01-04 Jeff Law <law@redhat.com>
9427
9428 PR tree-optimizatin/67955
9429 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
9430 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
9431 the points-to solution does not include pt_null. Use DECL_PT_UID
9432 unconditionally.
9433
9434 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
9435
9436 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
9437 Use gen_int_mode instead of gen_lopwart for const_int operands.
9438
9439 2017-01-04 Jakub Jelinek <jakub@redhat.com>
9440
9441 PR tree-optimization/71563
9442 * match.pd: Simplify X << Y into X if Y is known to be 0 or
9443 out of range value - has low bits known to be zero.
9444
9445 2017-01-04 Alan Modra <amodra@gmail.com>
9446
9447 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
9448 * configure: Regenerate.
9449 * config.in: Regenerate.
9450
9451 2017-01-04 Jakub Jelinek <jakub@redhat.com>
9452
9453 PR bootstrap/77569
9454 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
9455 a substring of the message, but strcmp with the whole message. Ifdef
9456 ENABLE_NLS, translate the message first using dgettext.
9457
9458 2017-01-03 Jeff Law <law@redhat.com>
9459
9460 PR tree-optimizatin/78856
9461 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
9462 (mark_threaded_blocks): Remove code to truncate thread paths that
9463 cross multiple loop headers. Instead invalidate the cached loop
9464 iteration information and handle case of a thread path walking
9465 into an irreducible region.
9466
9467 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9468
9469 PR target/78900
9470 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
9471 assertions. Add support for doing the signbit if the IEEE 128-bit
9472 floating point value is in a GPR.
9473 * config/rs6000/rs6000.md (Fsignbit): Delete.
9474 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
9475 Update the length attribute if the value is in a GPR.
9476 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
9477 the sign or zero extension instruction, since the value is always 0/1.
9478 (signbit<mode>2_dm2): Delete using <Fsignbit>.
9479
9480 PR target/78953
9481 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
9482 extracting SImode to a GPR register so that we can generate a
9483 store, limit the vector to be in a traditional Altivec register
9484 for the vextuwrx instruction.
9485
9486 2017-01-03 Ian Lance Taylor <iant@google.com>
9487
9488 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
9489
9490 2017-01-03 Martin Sebor <msebor@redhat.com>
9491
9492 PR tree-optimization/78696
9493 * gimple-ssa-sprintf.c (format_floating): Correct handling of
9494 precision. Use MPFR for %f for greater fidelity. Correct handling
9495 of %g.
9496 (pass_sprintf_length::compute_format_length): Set width and precision
9497 specified by asrerisk to void_node for vararg functions.
9498 (try_substitute_return_value): Adjust dump output.
9499
9500 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
9501
9502 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
9503
9504 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
9505
9506 * doc/invoke.texi (SPARC options): Document -mlra as the default.
9507 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
9508 -mlra/-mno-lra was passed to the compiler.
9509
9510 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
9511
9512 PR rtl-optimization/65618
9513 * emit-rtl.c (try_split): Move initialization of "before" and
9514 "after" to just before the call to emit_insn_after_setloc.
9515
9516 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
9517
9518 * doc/md.texi (Standard Names): Remove reference to Java frontend.
9519
9520 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
9521
9522 * dwarf2out.c (gen_enumeration_type_die): When
9523 -gno-strict-dwarf, add a DW_AT_encoding attribute.
9524
9525 2017-01-03 Jakub Jelinek <jakub@redhat.com>
9526
9527 PR tree-optimization/78965
9528 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
9529 Change first argument from const call_info & to call_info &. For %n
9530 set info.nowrite to false.
9531
9532 PR middle-end/78901
9533 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
9534 possibly throwing calls.
9535
9536 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
9537 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
9538 and fns handling, rather than in a separate case SSA_NAME.
9539
9540 2017-01-02 Jeff Law <law@redhat.com>
9541
9542 * config/darwin-driver.c (darwin_driver_init): Const-correctness
9543 fixes for first_period and second_period variables.
9544
9545 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
9546
9547 PR target/78967
9548 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
9549 (*insvqi_1): New insn pattern.
9550 (*insvqi_1_mem_rex64): Ditto.
9551 (*insvqi_2): Ditto.
9552 (*insvqi_3): Rename from *insvqi.
9553
9554 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
9555
9556 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
9557
9558 * doc/cfg.texi (Edges): Remove reference to Java.
9559 (Maintaining the CFG): Ditto.
9560
9561 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
9562
9563 PR middle-end/77674
9564 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
9565 transparent aliases.
9566
9567 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
9568
9569 PR middle-end/77484
9570 * predict.def (PRED_CALL): Update hitrate.
9571 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
9572 * predict.c (tree_estimate_probability_bb): Split CALL predictor
9573 into direct/indirect/polymorphic variants.
9574
9575 2017-01-01 Jakub Jelinek <jakub@redhat.com>
9576
9577 Update copyright years.
9578
9579 * gcc.c (process_command): Update copyright notice dates.
9580 * gcov-dump.c (print_version): Ditto.
9581 * gcov.c (print_version): Ditto.
9582 * gcov-tool.c (print_version): Ditto.
9583 * gengtype.c (create_file): Ditto.
9584 * doc/cpp.texi: Bump @copying's copyright year.
9585 * doc/cppinternals.texi: Ditto.
9586 * doc/gcc.texi: Ditto.
9587 * doc/gccint.texi: Ditto.
9588 * doc/gcov.texi: Ditto.
9589 * doc/install.texi: Ditto.
9590 * doc/invoke.texi: Ditto.
9591 \f
9592 Copyright (C) 2017 Free Software Foundation, Inc.
9593
9594 Copying and distribution of this file, with or without modification,
9595 are permitted in any medium without royalty provided the copyright
9596 notice and this notice are preserved.