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