* haifa-sched.c (sched_create_recovery_edges): Update profile.
[gcc.git] / gcc / ChangeLog
1 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
2
3 * haifa-sched.c (sched_create_recovery_edges): Update profile.
4
5 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
6
7 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
8 probability.
9
10 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
11
12 PR tree-optimization/81292
13 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
14 full_string_p, also call adjust_related_strinfos if the adjustment
15 is simple, otherwise invalidate related strinfos.
16
17 2017-07-04 Martin Liska <mliska@suse.cz>
18
19 PR sanitizer/81040
20 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
21 newly created variable as DECL_IGNORED_P.
22
23 2017-07-04 Martin Liska <mliska@suse.cz>
24
25 PR ipa/81293
26 * ipa-inline.c (inline_small_functions):
27 Use xstrdup_for_dump.
28
29 2017-07-04 Tom de Vries <tom@codesourcery.com>
30
31 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
32
33 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
34
35 PR target/81033
36 * config/darwin.c (darwin_function_switched_text_sections):
37 Fix spaces.
38
39 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
40
41 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
42
43 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
44
45 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
46
47 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
48
49 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
50 min_profitable_iters, and th as inclusive lower bounds.
51 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
52 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
53 for min_profitable_iters and min_profitable_estimate.
54 (vect_transform_loop): Treat th as an inclusive lower bound.
55 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
56
57 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
58
59 PR target/81033
60 * config/darwin.c (darwin_function_switched_text_sections):
61 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
62 in two pieces, and suppress the use of buf.
63
64 2017-07-03 Nathan Sidwell <nathan@acm.org>
65
66 * hash-table.h (hash_table_mod1): Fix indentation.
67
68 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
69
70 PR middle-end/81290
71 * predict.c (force_edge_cold): Be more careful about propagation
72 backward.
73 * profile-count.h (profile_probability::guessed,
74 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
75 New.
76 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
77
78 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
79
80 * doc/invoke.texi (rcpc architecture extension): Document it.
81
82 2017-07-03 Richard Biener <rguenther@suse.de>
83
84 PR tree-optimization/60510
85 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
86 the scalar reduction PHI and use it.
87 (vectorizable_reduction): Properly guard the single_defuse_cycle
88 path for non-SLP reduction chains where we cannot use it.
89 Rework reduc_def/index and vector type deduction. Rework
90 vector operand gathering during reduction op code-gen.
91 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
92 chains dissolve the chain and leave it to non-SLP reduction
93 handling.
94
95 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
96
97 * tree-data-ref.h (dr_alignment): Declare.
98 * tree-data-ref.c (dr_alignment): New function.
99 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
100 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
101 set it.
102 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
103
104 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
105
106 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
107 and base_misalignment fields.
108 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
109 * tree-data-ref.c: Include builtins.h.
110 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
111 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
112 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
113 * tree-vect-data-refs.c: Include tree-cfg.h.
114 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
115 fields instead of calculating an alignment here.
116 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
117 innermost_loop_behavior fields.
118
119 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
120
121 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
122 field.
123 (DR_STEP_ALIGNMENT): New macro.
124 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
125 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
126 (create_data_ref): Print it.
127 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
128 to tell whether the step preserves vector (mis)alignment.
129 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
130 Move the check for an integer step and generalise to all INTEGER_CST.
131 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
132 Print the outer step alignment.
133
134 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
135
136 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
137 with offset_alignment.
138 (DR_ALIGNED_TO): Delete.
139 (DR_OFFSET_ALIGNMENT): New macro.
140 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
141 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
142 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
143 (create_data_ref): Likewise.
144 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
145 (vect_analyze_data_refs): Likewise.
146 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
147 creating dummy innermost behavior.
148
149 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
150
151 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
152 with a "innermost_loop_behavior *" and refeence tree.
153 * tree-data-ref.c (dr_analyze_innermost): Likewise.
154 (create_data_ref): Update call accordingly.
155 * tree-predcom.c (find_looparound_phi): Likewise.
156
157 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
158
159 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
160 fields with dr_wrt_vec_loop.
161 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
162 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
163 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
164 (vect_dr_behavior): New function.
165 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
166 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
167 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
168 track whether the step preserves the misalignment.
169 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
170 Use vect_dr_behavior.
171 (vect_setup_realignment): Update call accordingly.
172 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
173 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
174 call to vect_create_addr_base_for_vector_ref.
175 (vect_create_cond_for_align_checks): Likewise.
176 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
177 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
178 (vect_recog_mask_conversion_pattern): Likewise.
179 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
180 (new_stmt_vec_info): Remove redundant zeroing.
181
182 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
183
184 * common/config/arm/arm-common.c (arm_be8_option): New function.
185 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
186 (ISA_ARMv6): Add isa_bit_be8.
187 * config/arm/arm.h (arm_be8_option): Add prototype.
188 (BE8_SPEC_FUNCTION): New define.
189 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
190 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
191 (mlittle-endian): Similarly.
192 (mbe8, mbe32): New options.
193 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
194 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
195
196 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
197
198 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
199
200 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
201
202 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
203 (cleanup_tree_cfg_bb): Use it.
204 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
205 New functions.
206 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
207
208 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
209
210 PR bootstrap/81285
211 * loop-doloop.c (add_test): Update profile.
212
213 2017-07-03 Martin Liska <mliska@suse.cz>
214
215 PR sanitize/81040
216 * sanopt.c (rewrite_usage_of_param): New function.
217 (sanitize_rewrite_addressable_params): Likewise.
218 (pass_sanopt::execute): Call rewrite_usage_of_param.
219
220 2017-07-03 Richard Biener <rguenther@suse.de>
221
222 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
223 back to using VIEW_CONVERT_EXPR.
224
225 2017-07-03 Martin Liska <mliska@suse.cz>
226
227 PR other/78366
228 * doc/extend.texi: Document when a resolver function is
229 generated for target_clones.
230
231 2017-07-03 Martin Liska <mliska@suse.cz>
232
233 * asan.c (asan_emit_stack_protection): Unpoison just red zones
234 and shadow memory of auto variables which are subject of
235 use-after-scope sanitization.
236 (asan_expand_mark_ifn): Add do set only when is_poison.
237
238 2016-07-03 Richard Biener <rguenther@suse.de>
239
240 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
241 reduction PHIs.
242 (vect_force_simple_reduction): Record reduction def -> phi mapping.
243 (vectorizable_reduction): Perform reduction PHI creation when
244 visiting a reduction PHI and adjust and simplify code generation
245 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
246 (vect_transform_loop): Visit reduction PHIs.
247 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
248 defs into the SLP tree.
249 (vect_build_slp_tree): Reduction defs terminate the recursion.
250 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
251 of reduction defs.
252 (vect_get_vec_defs_for_stmt_copy): Export.
253 (vect_get_vec_defs): Likewise.
254 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
255 purpose.
256 (vect_get_vec_defs_for_stmt_copy): Declare.
257 (vect_get_vec_defs): Likewise.
258
259 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
260
261 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
262 parameter with a "loop" parameter and use it instead of the
263 loop containing DR_STMT. Don't check simple_iv when doing
264 BB analysis. Describe the two analysis modes in the comment.
265
266 2017-07-03 Tom de Vries <tom@codesourcery.com>
267
268 PR tree-optimization/69468
269 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
270 (find_same_succ_bb): Handle ignore_edge_flags.
271
272 2017-07-03 Tom de Vries <tom@codesourcery.com>
273
274 PR tree-optimization/81192
275 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
276 hash.
277 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
278 differs.
279 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
280
281 2017-07-03 Tom de Vries <tom@codesourcery.com>
282
283 PR tree-optimization/81192
284 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
285 BB_SAME_SUCC (bb) == NULL.
286
287 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
288
289 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
290 consistency.
291
292 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
293
294 * dumpfile.c: Include profile-count.h
295 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes; update
296 profile.
297 (insert_cond_bb): Update profile.
298 * tree-cfg.h (insert_cond_bb): Update prototype.
299 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
300 * tree-dump.c: Do not include tree-cfg.
301
302 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
303
304 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
305
306 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
307
308 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
309 bb.
310
311 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
312
313 * tree-complex.c (expand_complex_div_wide): update profile.
314
315 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
316 Alan Hayward <alan.hayward@arm.com>
317 David Sherwood <david.sherwood@arm.com>
318
319 * Makefile.in (MACHMODE_H): Remove insn-modes.h
320 (CORETYPES_H): New define.
321 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
322 (insn-modes-inline.h, s-modes-inline-h): New rules.
323 (generated_files): Add insn-modes-inline.h.
324 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
325 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
326 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
327 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
328 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
329 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
330 (build/gencodes.o, build/genconditions.o): Likewise.
331 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
332 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
333 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
334 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
335 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
336 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
337 * coretypes.h: Include everything up to real.h for generators.
338 Include insn-modes.h first. Include wide-int-print.h after
339 wide-int.h. Include insn-modes-inline.h and then machmode.h.
340 * machmode.h: Don't include insn-modes.h here.
341 * function-tests.c: Remove includes of signop.h, machmode.h,
342 double-int.h and wide-int.h.
343 * rtl.h: Likewise.
344 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
345 and wide-int.h.
346 * optc-save-gen.awk: Likewise.
347 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
348 * godump.c: Remove include of wide-int-print.h.
349 * pretty-print.h: Likewise.
350 * wide-int-print.cc: Likewise.
351 * wide-int.cc: Likewise.
352 * hash-map-tests.c: Remove include of signop.h.
353 * hash-set-tests.c: Likewise.
354 * rtl-tests.c: Likewise.
355 * mkconfig.sh: Remove include of machmode.h.
356 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
357 into...
358 (emit_insn_modes_inline_h): ...this new function. Emit the code
359 into an insn-modes-inline.h header file, adding appropriate
360 include guards and end comments.
361 (emit_insn_modes_c_header): Remove include of machmode.h.
362 (emit_min_insn_modes_c_header): Include coretypes.h rather than
363 machmode.h.
364 (main): Handle -i flag and call emit_insn_modes_inline_h when
365 it is passed.
366
367 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
368
369 * tree-ssa-strlen.c (strinfo): Rename the length field to
370 nonzero_chars. Add a full_string_p field.
371 (compare_nonzero_chars, zero_length_string_p): New functions.
372 (get_addr_stridx): Add an offset_out parameter.
373 Use compare_nonzero_chars.
374 (get_stridx): Update accordingly. Use compare_nonzero_chars.
375 (new_strinfo): Update after above changes to strinfo.
376 (set_endptr_and_length): Set full_string_p.
377 (get_string_length): Update after above changes to strinfo.
378 (unshare_strinfo): Update call to new_strinfo.
379 (maybe_invalidate): Likewise.
380 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
381 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
382 as a uhwi instead of an shwi. Update after above changes to
383 strinfo and new_strinfo.
384 (zero_length_string): Assert that chainsi contains full strings.
385 Use zero_length_string_p. Update call to new_strinfo.
386 (adjust_related_strinfos): Update after above changes to strinfo.
387 Copy full_string_p from origsi.
388 (adjust_last_stmt): Use zero_length_string_p.
389 (handle_builtin_strlen): Update after above changes to strinfo and
390 new_strinfo. Install the lhs as the string length if the previous
391 entry didn't describe a full string.
392 (handle_builtin_strchr): Update after above changes to strinfo
393 and new_strinfo.
394 (handle_builtin_strcpy): Likewise.
395 (handle_builtin_strcat): Likewise.
396 (handle_builtin_malloc): Likewise.
397 (handle_pointer_plus): Likewise.
398 (handle_builtin_memcpy): Likewise. Track nonzero characters
399 that aren't necessarily followed by a nul terminator.
400 (handle_char_store): Likewise.
401
402 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
403
404 PR tree-optimization/80769
405 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
406 for malloc and calloc. Document the new invariant that all related
407 strinfos have delayed lengths or none do.
408 (verify_related_strinfos): Move earlier in file.
409 (set_endptr_and_length): New function, split out from...
410 (get_string_length): ...here. Also set the lengths of related
411 strinfos.
412 (zero_length_string): Assert that chainsi has known (rather than
413 delayed) lengths.
414 (adjust_related_strinfos): Likewise.
415
416 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
417
418 PR tree-optimization/81136
419 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
420 assert that two references with the same misalignment have the same
421 compile-time misalignment if those compile-time misalignments
422 are known.
423
424 2017-07-01 Andi Kleen <ak@linux.intel.com>
425
426 * print-tree.c (print_node): Print all attributes.
427
428 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
429
430 * cfg.c (scale_bbs_frequencies): New function.
431 * cfg.h (scale_bbs_frequencies): Declare it.
432 * cfgloopanal.c (single_likely_exit): Cleanup.
433 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
434 as parameter.
435 (scale_loop_profile): Likewise.
436 (loop_version): Likewise.
437 (create_empty_loop_on_edge): Update.
438 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
439 scale_loop_frequencies, scale_loop_profile, loopify,
440 loop_version): Update prototypes.
441 * modulo-sched.c (sms_schedule): Update.
442 * predict.c (unlikely_executed_edge_p): Also check probability.
443 (probably_never_executed_edge_p): Fix typo.
444 * tree-if-conv.c (version_loop_for_if_conversion): Update.
445 * tree-parloops.c (gen_parallel_loop): Update.
446 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
447 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
448 * tree-ssa-loop-split.c (split_loop): Update.
449 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
450 * tree-vect-loop-manip.c (vect_do_peeling): Update.
451 (vect_loop_versioning): Update.
452 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
453
454 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
455
456 * trans-mem.c (split_bb_make_tm_edge): Update profile.
457
458 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
459
460 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
461 to keep profile consistent.
462
463 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
464
465 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
466 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
467 * profile-count.h (max_safe_multiplier): Make unsigned.
468 (profile_count::guessed_zero): New.
469
470 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
471
472 * bb-reorder.c (fix_up_crossing_landing_pad,
473 fix_crossing_conditional_branches): Use make_single_succ_edge
474 to keep profile consistent.
475
476 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
477
478 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
479 to update profile.
480
481 2017-07-01 Jakub Jelinek <jakub@redhat.com>
482
483 PR sanitizer/81262
484 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
485 the right scopes, make sure cond_jump isn't preserved between multiple
486 iterations. Search for fallthru edge whenever there are 3+ edges and
487 use find_fallthru_edge for it.
488
489 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
490
491 Patch by Alexander Monakov <amonakov@ispras.ru>
492 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
493 probabilities consistently.
494
495 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
496
497 * pa.c (pa_expand_compare_and_swap_loop): Update call of
498 emit_cmp_and_jump_insns.
499
500 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
501
502 PR ipa/81261
503 * tree-inline.c (expand_call_inline): Combine profile statuses.
504
505 2017-06-30 Andrew Pinski <apinski@cavium.com>
506
507 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
508 fold_stmt returned true.
509
510 2017-06-30 Nathan Sidwell <nathan@acm.org>
511
512 * ggc.h (empty_string): Delete.
513 * cfgexpand.c (expand_asm_stmt): Use plain "".
514 * optabs.c (expand_asm_memory_barrier): Likewise.
515 * stringpool.c (empty_string): Delete.
516 (digit_vector, digit_string): Delete.
517 (ggc_alloc_string): Use plain "", don't optimize single digit
518 strings. Use ggc_alloc_atomic.
519
520 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
521
522 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
523 comparison set and one other set, use the cost of the non-comparison
524 set.
525
526 2017-06-30 Nathan Sidwell <nathan@acm.org>
527
528 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
529 some formatting.
530
531 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
532
533 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
534 loops. Remove now unneeded calls to gimple_switch_set_label() that
535 just set removed labels to NULL_TREE.
536
537 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
538
539 * tree-ssanames.c (set_range_info_raw): Abstract from ...
540 (set_range_info): ...here. Only call set_range_info_raw if domain
541 is useful.
542 (set_nonzero_bits): Call set_range_info_raw.
543 * tree-ssanames.h (set_range_info_raw): New.
544
545 2017-06-30 Jakub Jelinek <jakub@redhat.com>
546
547 PR target/81225
548 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
549 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
550 of nonimmediate_operand and <store_mask_constraint> instead of m
551 for the input operand. For V8FI iterator, always split if input
552 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
553 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
554 <store_mask_predicate> instead of register_operand and
555 <store_mask_constraint> instead of v for the input operand. Make
556 sure both operands aren't MEMs for if not <mask_applied>.
557
558 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
559
560 * lto-wrapper.c (copy_file) Close both file descriptors before
561 exiting normally.
562
563 2017-06-30 Martin Liska <mliska@suse.cz>
564
565 PR ipa/81214
566 * multiple_target.c (create_dispatcher_calls): Make ifunc
567 also for function that don't have calls or are not referenced.
568
569 2017-06-30 Richard Biener <rguenther@suse.de>
570
571 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
572 analyze the first scalar stmt. Move vector type computation
573 for the BB case here from ...
574 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
575 live operation processing in the SLP case properly.
576
577 2017-06-30 Richard Biener <rguenther@suse.de>
578
579 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
580
581 2017-06-30 Martin Liska <mliska@suse.cz>
582
583 PR sanitizer/81021
584 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
585 before BUILT_IN_UNWIND_RESUME when ASAN is used.
586
587 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
588
589 * doc/invoke.texi (AArch64): Add missing options and remove redundant
590 ones.
591
592 2017-06-30 Richard Biener <rguenther@suse.de>
593
594 PR tree-optimization/81249
595 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
596 condition reduction result to original scalar type.
597
598 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
599
600 * profile-count.h (enum profile_quality): Fix typos and whitespace
601 issues.
602
603 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
604
605 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
606 type for branch probabilities.
607
608 2017-06-29 Julian Brown <julian@codesourcery.com>
609 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
610
611 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
612 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
613 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
614 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
615
616 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
617
618 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
619 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
620 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
621 CC usage from generic code to here.
622 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
623 CC usage into the target macros.
624
625 2017-06-29 Maya Rashish <coypu@sdf.org>
626
627 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
628 objects.
629
630 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
631
632 * arm/arm-builtins.c: Include profile-count.h
633 * except.c (sjlj_emit_function_enter): Use
634 profile_probability::unlikely.
635
636 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
637
638 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
639 and tocrel_offset be pointer args rather than implicitly using
640 static versions.
641 (legitimate_constant_pool_address_p, rs6000_emit_move,
642 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
643 tocrel_offset and use in toc_relative_expr_p call.
644 (print_operand, print_operand_address): Use static tocrel_base_oac
645 and tocrel_offset_oac.
646 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
647 tocrel_offset_oac.
648
649 2017-06-29 Maya Rashish <coypu@sdf.org>
650
651 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
652
653 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
654
655 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
656 objects, take into account only the alignment of 'op0' and 'mode1' if
657 'op0' is a MEM.
658
659 2017-06-29 Steve Ellcey <sellcey@cavium.com>
660
661 * ccmp.c (ccmp_tree_comparison_p): New function.
662 (ccmp_candidate_p): Update to use above function.
663 (get_compare_parts): New function.
664 (expand_ccmp_next): Update to use new functions.
665 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
666 new functions.
667 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
668 take mode as argument.
669 * ccmp.h (expand_ccmp_expr): Add mode as argument.
670 * expr.c (expand_expr_real_1): Pass mode as argument.
671
672 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
673
674 * combine.c (combine_instructions): Print insns to dump_file, together
675 with their costs.
676
677 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
678
679 * asan.c (asan_emit_stack_protection): Update.
680 (create_cond_insert_point): Update.
681 * auto-profile.c (afdo_propagate_circuit): Update.
682 * basic-block.h (struct edge_def): Turn probability to
683 profile_probability.
684 (EDGE_FREQUENCY): Update.
685 * bb-reorder.c (find_traces_1_round): Update.
686 (better_edge_p): Update.
687 (sanitize_hot_paths): Update.
688 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
689 (make_single_succ_edge): Update.
690 (check_bb_profile): Update.
691 (dump_edge_info): Update.
692 (update_bb_profile_for_threading): Update.
693 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
694 probabilitycount to 0.
695 * cfgbuild.c (compute_outgoing_frequencies): Update.
696 * cfgcleanup.c (try_forward_edges): Update.
697 (outgoing_edges_match): Update.
698 (try_crossjump_to_edge): Update.
699 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
700 (expand_gimple_tailcall): Update.
701 (construct_init_block): Use make_single_succ_edge.
702 (construct_exit_block): Use make_single_succ_edge.
703 * cfghooks.c (verify_flow_info): Update.
704 (redirect_edge_succ_nodup): Update.
705 (split_edge): Update.
706 (account_profile_record): Update.
707 * cfgloopanal.c (single_likely_exit): Update.
708 * cfgloopmanip.c (scale_loop_profile): Update.
709 (set_zero_probability): Remove.
710 (duplicate_loop_to_header_edge): Update.
711 * cfgloopmanip.h (loop_version): Update prototype.
712 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
713 (force_nonfallthru_and_redirect): Update.
714 (update_br_prob_note): Update.
715 (rtl_verify_edges): Update.
716 (purge_dead_edges): Update.
717 (rtl_lv_add_condition_to_bb): Update.
718 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
719 * cgraphunit.c (init_lowered_empty_function): Update.
720 (cgraph_node::expand_thunk): Update.
721 * cilk-common.c: Include profile-count.h
722 * dojump.c (inv): Remove.
723 (jumpifnot): Update.
724 (jumpifnot_1): Update.
725 (do_jump_1): Update.
726 (do_jump): Update.
727 (do_jump_by_parts_greater_rtx): Update.
728 (do_compare_rtx_and_jump): Update.
729 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
730 do_jump_1. do_compare_rtx_and_jump): Update prototype.
731 * dwarf2cfi.c: Include profile-count.h
732 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
733 (sjlj_emit_dispatch_table): Likewise.
734 * explow.c: Include profile-count.h
735 * expmed.c (emit_store_flag_force): Update.
736 (do_cmp_and_jump): Update.
737 * expr.c (compare_by_pieces_d::generate): Update.
738 (compare_by_pieces_d::finish_mode): Update.
739 (emit_block_move_via_loop): Update.
740 (store_expr_with_bounds): Update.
741 (store_constructor): Update.
742 (expand_expr_real_2): Update.
743 (expand_expr_real_1): Update.
744 * expr.h (try_casesi, try_tablejump): Update prototypes.
745 * gimple-pretty-print.c (dump_probability): Update.
746 (dump_profile): New.
747 (dump_gimple_label): Update.
748 (dump_gimple_bb_header): Update.
749 * graph.c (draw_cfg_node_succ_edges): Update.
750 * hsa-gen.c (convert_switch_statements): Update.
751 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
752 (find_if_case_1): Update.
753 (find_if_case_2): Update.
754 * internal-fn.c (expand_arith_overflow_result_store): Update.
755 (expand_addsub_overflow): Update.
756 (expand_neg_overflow): Update.
757 (expand_mul_overflow): Update.
758 (expand_vector_ubsan_overflow): Update.
759 * ipa-cp.c (good_cloning_opportunity_p): Update.
760 * ipa-split.c (split_function): Use make_single_succ_edge.
761 * ipa-utils.c (ipa_merge_profiles): Update.
762 * loop-doloop.c (add_test): Update.
763 (doloop_modify): Update.
764 * loop-unroll.c (compare_and_jump_seq): Update.
765 (unroll_loop_runtime_iterations): Update.
766 * lra-constraints.c (lra_inheritance): Update.
767 * lto-streamer-in.c (input_cfg): Update.
768 * lto-streamer-out.c (output_cfg): Update.
769 * mcf.c (adjust_cfg_counts): Update.
770 * modulo-sched.c (sms_schedule): Update.
771 * omp-expand.c (expand_omp_for_init_counts): Update.
772 (extract_omp_for_update_vars): Update.
773 (expand_omp_ordered_sink): Update.
774 (expand_omp_for_ordered_loops): Update.
775 (expand_omp_for_generic): Update.
776 (expand_omp_for_static_nochunk): Update.
777 (expand_omp_for_static_chunk): Update.
778 (expand_cilk_for): Update.
779 (expand_omp_simd): Update.
780 (expand_omp_taskloop_for_outer): Update.
781 (expand_omp_taskloop_for_inner): Update.
782 * omp-simd-clone.c (simd_clone_adjust): Update.
783 * optabs.c (expand_doubleword_shift): Update.
784 (expand_abs): Update.
785 (emit_cmp_and_jump_insn_1): Update.
786 (expand_compare_and_swap_loop): Update.
787 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
788 * predict.c (predictable_edge_p): Update.
789 (edge_probability_reliable_p): Update.
790 (set_even_probabilities): Update.
791 (combine_predictions_for_insn): Update.
792 (combine_predictions_for_bb): Update.
793 (propagate_freq): Update.
794 (estimate_bb_frequencies): Update.
795 (force_edge_cold): Update.
796 * profile-count.c (profile_count::dump): Add missing space into dump.
797 (profile_count::debug): Add newline.
798 (profile_count::differs_from_p): Explicitly convert to unsigned.
799 (profile_count::stream_in): Update.
800 (profile_probability::dump): New member function.
801 (profile_probability::debug): New member function.
802 (profile_probability::differs_from_p): New member function.
803 (profile_probability::differs_lot_from_p): New member function.
804 (profile_probability::stream_in): New member function.
805 (profile_probability::stream_out): New member function.
806 * profile-count.h (profile_count_quality): Rename to ...
807 (profile_quality): ... this one.
808 (profile_probability): New.
809 (profile_count): Update.
810 * profile.c (compute_branch_probabilities): Update.
811 * recog.c (peep2_attempt): Update.
812 * sched-ebb.c (schedule_ebbs): Update.
813 * sched-rgn.c (find_single_block_region): Update.
814 (compute_dom_prob_ps): Update.
815 (schedule_region): Update.
816 * sel-sched-ir.c (compute_succs_info): Update.
817 * stmt.c (struct case_node): Update.
818 (do_jump_if_equal): Update.
819 (get_outgoing_edge_probs): Update.
820 (conditional_probability): Update.
821 (emit_case_dispatch_table): Update.
822 (expand_case): Update.
823 (expand_sjlj_dispatch_table): Update.
824 (emit_case_nodes): Update.
825 * targhooks.c: Update.
826 * tracer.c (better_p): Update.
827 (find_best_successor): Update.
828 * trans-mem.c (expand_transaction): Update.
829 * tree-call-cdce.c: Update.
830 * tree-cfg.c (gimple_split_edge): Upate.
831 (move_sese_region_to_fn): Upate.
832 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
833 * tree-eh.c (lower_resx): Upate.
834 (cleanup_empty_eh_move_lp): Upate.
835 * tree-if-conv.c (version_loop_for_if_conversion): Update.
836 * tree-inline.c (copy_edges_for_bb): Update.
837 (copy_cfg_body): Update.
838 * tree-parloops.c (gen_parallel_loop): Update.
839 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
840 (gimple_gen_time_profiler): Update.
841 * tree-ssa-dce.c (remove_dead_stmt): Update.
842 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
843 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
844 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
845 (unloop_loops): Update.
846 (try_peel_loop): Update.
847 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
848 * tree-ssa-loop-split.c (connect_loops): Update.
849 (split_loop): Update.
850 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
851 (hoist_guard): Update.
852 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
853 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
854 (value_replacement): Update.
855 * tree-ssa-reassoc.c (branch_fixup): Update.
856 * tree-ssa-tail-merge.c (replace_block_by): Update.
857 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
858 (create_edge_and_update_destination_phis): Update.
859 (compute_path_counts): Update.
860 (recompute_probabilities): Update.
861 (update_joiner_offpath_counts): Update.
862 (freqs_to_counts_path): Update.
863 (duplicate_thread_path): Update.
864 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
865 (struct switch_conv_info): Update.
866 (gen_inbound_check): Update.
867 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
868 (vect_do_peeling): Update.
869 (vect_loop_versioning): Update.
870 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
871 (optimize_mask_stores): Update.
872 * ubsan.c (ubsan_expand_null_ifn): Update.
873 * value-prof.c (gimple_divmod_fixed_value): Update.
874 (gimple_divmod_fixed_value_transform): Update.
875 (gimple_mod_pow2): Update.
876 (gimple_mod_pow2_value_transform): Update.
877 (gimple_mod_subtract): Update.
878 (gimple_mod_subtract_transform): Update.
879 (gimple_ic): Update.
880 (gimple_stringop_fixed_value): Update.
881 (gimple_stringops_transform): Update.
882 * value-prof.h: Update.
883
884 2017-06-29 Carl Love <cel@us.ibm.com>
885
886 * config/rs6000/rs6000-c.c: Add support for built-in functions
887 vector signed int vec_signed (vector float);
888 vector signed long long vec_signed (vector double);
889 vector signed int vec_signed2 (vector double, vector double);
890 vector signed int vec_signede (vector double);
891 vector signed int vec_signedo (vector double);
892 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
893 instruction generator.
894 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
895 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
896 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
897 Add define_insn.
898 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
899 vunsignede_v2df): Add define_expands.
900 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
901 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
902 VEC_UNSIGNEDO): Add definitions.
903 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
904 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
905 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
906 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
907 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
908 * config/rs6000/altivec.h (vec_signed, vec_signed2,
909 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
910 vec_unsignede, vec_unsignedo): Add builtin defines.
911 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
912 declaration.
913 * doc/extend.texi: Update the built-in documentation file for the
914 new built-in functions.
915
916 2017-06-29 Richard Biener <rguenther@suse.de>
917
918 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
919 reduction chains to LOOP_VINFO_REDUCTIONS.
920 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
921 SLP reductions after processing reduction chains.
922
923 2017-06-29 Nathan Sidwell <nathan@acm.org>
924
925 * builtins.c (fold_builtin_FUNCTION): Use
926 lang_hooks.decl_printable_name.
927
928 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
929
930 PR middle-end/81194
931 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
932 with only one label.
933 * stmt.c (expand_case): Assert NCASES is greater than one.
934
935 2017-06-29 Richard Biener <rguenther@suse.de>
936
937 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
938 anything.
939 (group_case_labels): Likewise.
940 (find_taken_edge): Push sanity checking on val to workers...
941 (find_taken_edge_cond_expr): ... here
942 (find_taken_edge_switch_expr): ... and here, handle cases
943 with just a default label.
944 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
945 (group_case_labels): Likewise.
946 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
947 group_case_labels does anything cleanup the CFG again.
948
949 2017-06-29 Bin Cheng <bin.cheng@arm.com>
950
951 PR tree-optimization/81196
952 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
953 exit condition comparing two IVs.
954
955 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
956
957 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
958 profile to the dummy entry at the end of the list of architectures.
959 * config/arm/arm-cpu-cdata.h: Regenerated.
960
961 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
962 Michael Collison <michael.collison@arm.com>
963
964 PR target/70119
965 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
966 New pattern.
967 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
968 (*aarch64_reg_<mode>3_minus_mask): New pattern.
969 (*aarch64_<optab>_reg_di3_mask2): New pattern.
970 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
971 of shift when the shift amount is masked with constant equal to
972 the size of the mode.
973 * config/aarch64/predicates.md (subreg_lowpart_operator): New
974 predicate.
975
976 2017-06-29 Martin Liska <mliska@suse.cz>
977
978 * config/i386/i386.opt: Change range from [1,5] to [0,5].
979
980 2017-06-29 Yury Gribov <tetra2005@gmail.com>
981
982 PR bootstrap/80565
983 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
984 code.
985 * ipa-inline.h
986 (edge_growth_cache_entry::edge_growth_cache_entry): New
987 function.
988 (reset_edge_growth_cache): Update to use constructor.
989
990 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
991
992 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
993 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
994 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
995
996 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
997
998 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
999 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
1000
1001 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
1002
1003 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
1004 (*-linux-uclibc*): Add t-uclibc tmake_file.
1005 * config/t-musl: New.
1006 * config/t-uclibc: New.
1007
1008 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
1009
1010 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
1011 context.
1012 (gen_comm_data): Emit architectural setting of arch_prof.
1013 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
1014 profile.
1015 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
1016 (armv8-m.base, armv8-m.main): Likewise.
1017 * arm-protos.h (arm_build_target): Add profile field.
1018 (arch_option): Likewise.
1019 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
1020 the active target.
1021 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
1022 arm_active_target.profile.
1023
1024 2017-06-28 Richard Biener <rguenther@suse.de>
1025
1026 PR middle-end/81227
1027 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
1028 TYPE_OVERFLOW_WRAPS.
1029 * match.pd (negate_expr_p): Likewise.
1030 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
1031 fold_build2, not fold_binary.
1032
1033 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1034
1035 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
1036 Convert memory address to Pmode.
1037 (aarch64_print_operand): Assert MEM operands are always Pmode.
1038
1039 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1040
1041 PR target/79665
1042 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
1043 Remove redundant if.
1044 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
1045 * config/arm/aarch-common-protos.h
1046 (aarch_forward_to_shift_is_not_shifted_re): Remove.
1047 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
1048
1049 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
1050
1051 PR ipa/81238
1052 * multiple_target.c (create_dispatcher_calls): Set the default
1053 clone to be static, not public.
1054
1055 2017-06-28 Richard Biener <rguenther@suse.de>
1056
1057 * tree-vect-loop.c (vectorizable_reduction): Move special
1058 cond reduction IV var creation ...
1059 (vect_create_epilog_for_reduction): ... here. Remove induction_index
1060 parameter. Use STMT_VINFO_VECTYPE.
1061 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
1062 constant_p.
1063
1064 2017-06-28 Martin Liska <mliska@suse.cz>
1065
1066 PR ipa/81128
1067 * ipa-visibility.c (non_local_p): Handle visibility.
1068
1069 2017-06-28 Martin Liska <mliska@suse.cz>
1070
1071 PR driver/79659
1072 * common.opt: Add IntegerRange to various options.
1073 * opt-functions.awk (integer_range_info): New function.
1074 * optc-gen.awk: Add integer_range_info to cl_options struct.
1075 * opts-common.c (decode_cmdline_option): Handle
1076 CL_ERR_INT_RANGE_ARG.
1077 (cmdline_handle_error): Likewise.
1078 * opts.c (print_filtered_help): Show valid interval in
1079 when --help is provided.
1080 * opts.h (struct cl_option): Add range_min and range_max fields.
1081 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
1082
1083 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
1084
1085 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
1086 (x * C EQ/NE y * C): New transformation.
1087
1088 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
1089
1090 * genmultilib (combination_space): Accept '+' in option names.
1091
1092 2017-06-28 Martin Liska <mliska@suse.cz>
1093
1094 PR sanitizer/81224
1095 * asan.c (instrument_derefs): Bail out inner references
1096 that are hard register variables.
1097
1098 2017-06-28 Jakub Jelinek <jakub@redhat.com>
1099
1100 PR target/81175
1101 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
1102 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
1103
1104 2017-06-28 Richard Biener <rguenther@suse.de>
1105
1106 * tree-vectorizer.h (vect_get_vec_defs): Remove.
1107 (vect_get_slp_defs): Adjust.
1108 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
1109 out from ...
1110 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
1111 simplify.
1112 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1113 get_initial_defs_for_reduction instead of vect_get_vec_defs.
1114 (vectorizable_reduction): Adjust.
1115 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
1116 handling.
1117 (vect_get_slp_defs): Likewise.
1118 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
1119 (vectorizable_bswap): Adjust.
1120 (vectorizable_call): Likewise.
1121 (vectorizable_conversion): Likewise.
1122 (vectorizable_assignment): Likewise.
1123 (vectorizable_shift): Likewise.
1124 (vectorizable_operation): Likewise.
1125 (vectorizable_store): Likewise.
1126 (vectorizable_condition): Likewise.
1127 (vectorizable_comparison): Likewise.
1128
1129 2017-06-28 Michael Collison <michael.collison@arm.com>
1130
1131 PR target/68535
1132 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
1133 set of base_reg
1134 (arm_gen_movmemqi): Removed unused variable 'i'.
1135 Convert 'for' loop into 'while' loop.
1136 (arm_expand_prologue): Remove last unnecessary set of insn.
1137 (thumb_pop): Remove unused variable 'pushed_words'.
1138 (thumb_exit): Remove last unnecessary set of regs_to_pop.
1139
1140 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1141
1142 * config/s390/predicates.md: Use s390_rel_address_ok_p.
1143 * config/s390/s390-protos.h: Add prototype of
1144 s390_rel_address_ok_p.
1145 * config/s390/s390.c (s390_got_symbol): New function.
1146 (s390_rel_address_ok_p): New function.
1147 (legitimize_pic_address): Use s390_rel_address_ok_p.
1148 (s390_load_got): Use s390_got_symbol.
1149 (s390_option_override): Issue error if
1150 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
1151 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
1152 New macro.
1153 * config/s390/s390.opt: New option mpic-data-is-text-relative.
1154
1155 2017-06-27 Andrew Pinski <apinski@cavium.com>
1156
1157 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
1158 (X * copysign (1.0, X)): New pattern.
1159 (X * copysign (1.0, -X)): New pattern.
1160 (copysign (-1.0, CST)): New pattern.
1161
1162 2017-06-27 Joseph Myers <joseph@codesourcery.com>
1163
1164 * genmultilib (combination_space): Remove variable.
1165 Validate reuse rules against regular expression for any sequence
1166 of multilib options in any order.
1167
1168 2017-06-27 Michael Collison <michael.collison@arm.com>
1169
1170 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
1171 call aarch64_split_simd_combine.
1172 * (aarch64_combine_internal<mode>): Delete pattern.
1173 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
1174 Allow register and subreg operands.
1175
1176 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1177
1178 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
1179 specific need, just fallback on defaults.
1180 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
1181
1182 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1183 Olivier Hainque <hainque@adacore.com>
1184
1185 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
1186 map for 64bits.
1187 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
1188 targets. Pick a default if no particular attempt applied.
1189 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
1190 larger contexts.
1191
1192 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1193
1194 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
1195 (x86_64-wrs-vxworks7): Likewise.
1196
1197 2017-06-27 Marek Polacek <polacek@redhat.com>
1198
1199 PR sanitizer/81223
1200 * ubsan.c (instrument_null): Check get_base_address's result for null.
1201
1202 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1203
1204 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
1205
1206 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1207
1208 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
1209 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
1210 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
1211 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
1212 New function types.
1213 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
1214 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
1215 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
1216 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
1217 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
1218 BUILT_IN_FEUPDATEENV): New builtins.
1219 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
1220 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
1221 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
1222 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
1223 macros.
1224 (builtin_structptr_types): Adjust size.
1225 * tree.c (builtin_structptr_types): Add four entries.
1226
1227 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1228 Olivier Hainque <hainque@adacore.com>
1229
1230 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
1231 (TLS_SYM): New local macro, forcing reference to __tls__ on
1232 link command lines for VxWorks 7 RTPs, triggering initialization
1233 of tlsLib.
1234 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
1235 OS features TLS support, true for RTPs on VxWorks 7.
1236 * config/vxworks.c (vxworks_override_options): Setup emutls
1237 accordingly.
1238
1239 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1240
1241 * predict.c (test_prediction_value_range): Use -1U instead of -1
1242 to avoid narrowing conversion warning.
1243 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
1244 to avoid narrowing conversion warning.
1245 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
1246 -1.
1247 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
1248
1249 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1250
1251 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
1252 64bit configurations.
1253 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
1254 (SIZE_TYPE): Likewise.
1255 * config/vxworks.c (vxworks_emutls_var_fields): Use
1256 long_unsigned_type_node instead of unsigned_type_node as the offset
1257 field type, which is "pointer" mode in emutls.c.
1258
1259 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1260
1261 PR sanitizer/81209
1262 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
1263
1264 PR middle-end/81207
1265 * gimple-fold.c (replace_call_with_call_and_fold): Handle
1266 gimple_vuse copying separately from gimple_vdef copying.
1267
1268 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1269
1270 * value-prof.c (free_hist): Remove call to memset and the enclosing if
1271 condition.
1272
1273 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1274 Olivier Hainque <hainque@adacore.com>
1275
1276 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
1277 for all vxworks7 targets.
1278 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
1279 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
1280 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
1281 variations for VX6/VX7 and 32/64bits later on in ...
1282 (VXWORKS_LIB_SPEC): Leverage new macros.
1283 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
1284 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
1285
1286 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1287
1288 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
1289 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
1290
1291 2017-06-26 Carl Love <cel@us.ibm.com>
1292
1293 * config/rs6000/rs6000-c.c: Add support for built-in functions
1294 vector bool char vec_reve (vector bool char);
1295 vector signed char vec_reve (vector signed char);
1296 vector unsigned char vec_reve (vector unsigned char);
1297 vector bool int vec_reve (vector bool int);
1298 vector signed int vec_reve (vector signed int);
1299 vector unsigned int vec_reve (vector unsigned int);
1300 vector bool long long vec_reve (vector bool long long);
1301 vector signed long long vec_reve (vector signed long long);
1302 vector unsigned long long vec_reve (vector unsigned long long);
1303 vector bool short vec_reve (vector bool short);
1304 vector signed short vec_reve (vector signed short);
1305 vector double vec_reve (vector double);
1306 vector float vec_reve (vector float);
1307 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
1308 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
1309 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
1310 (altivec_vreve): New pattern.
1311 * config/rs6000/altivec.h (vec_reve): New define.
1312 * doc/extend.texi (vec_rev): Update the built-in documentation file
1313 for the new built-in functions.
1314
1315 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1316
1317 PR tree-optimization/71815
1318 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
1319 function.
1320 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
1321 has_single_use.
1322 (slsr_process_phi): Likewise.
1323 (replace_uncond_cands_and_profitable_phis): Don't replace a
1324 multiply candidate with a stride of 1 (copy or cast).
1325 (phi_incr_cost): Call uses_consumed_by_stmt rather than
1326 has_single_use.
1327 (lowest_cost_path): Likewise.
1328 (total_savings): Likewise.
1329
1330 2017-06-26 Richard Biener <rguenther@suse.de>
1331
1332 PR target/81175
1333 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
1334 Use def_builtin_pure for all gather builtins.
1335
1336 2017-06-26 Richard Biener <rguenther@suse.de>
1337
1338 PR tree-optimization/81203
1339 * tree-tailcall.c (find_tail_calls): Do not move stmts into
1340 non-dominating BBs.
1341
1342 2017-06-26 Marek Polacek <polacek@redhat.com>
1343
1344 PR c/80116
1345 * doc/invoke.texi: Document -Wmultistatement-macros.
1346
1347 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
1348
1349 * doc/sourcebuild.texi (ARM-specific attributes): Document new
1350 arm_neon_ok_no_float_abi effective target.
1351
1352 2017-06-26 Richard Biener <rguenther@suse.de>
1353
1354 PR tree-optimization/80928
1355 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
1356 (copy_bbs): Set BB_DUPLICATED flag early.
1357 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
1358 marked blocks.
1359 (execute_on_shrinking_pred): Likewise.
1360 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
1361 BB_DUPLICATED blocks.
1362 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
1363 iterate over all PHIs considering removal of *gsi.
1364
1365 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
1366
1367 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
1368 qdf24xx.
1369
1370 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1371
1372 * config/rs6000/rs6000-string.c: (expand_block_clear,
1373 do_load_for_compare, select_block_compare_mode,
1374 compute_current_alignment, expand_block_compare,
1375 expand_strncmp_align_check, expand_strn_compare,
1376 expand_block_move, rs6000_output_load_multiple)
1377 Move functions related to string/block move/compare
1378 to a separate file.
1379 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
1380 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
1381 for this function which is now used in two files.
1382 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
1383 * config.gcc: Add rs6000-string.o to extra_objs for
1384 targets powerpc*-*-* and rs6000*-*-*.
1385
1386 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1387
1388 PR target/80510
1389 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
1390 32-bit, since indexed is not valid for DImode.
1391 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
1392 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
1393 (define_peephole2 for Altivec d-form load): Add 32-bit support.
1394 (define_peephole2 for Altivec d-form store): Likewise.
1395
1396 PR ipa/81185
1397 * multiple_target.c (create_dispatcher_calls): Only create the
1398 dispatcher call if the function is the default clone of a
1399 versioned function.
1400
1401 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
1402
1403 PR middle-end/80902
1404 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
1405 a call, force the call to not be a tail call.
1406
1407 2017-06-23 Jeff Law <law@redhat.com>
1408
1409 * doc/contrib.texi: Add entry for Steven Pemberton's work on
1410 enquire.
1411
1412 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
1413
1414 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
1415 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
1416 handling for early expansion of vector shifts (sl,sr,sra,rl).
1417 (builtin_function_type): Add vector shift right instructions
1418 to the unsigned argument list.
1419
1420 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
1421
1422 rtl-optimizatoin/79286
1423 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
1424 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
1425 trap. PIC register plus a const unspec without offset can never trap.
1426
1427 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
1428
1429 * tree.h (builtin_structptr_type): New type.
1430 (builtin_structptr_types): Declare new array.
1431 * tree.c (builtin_structptr_types): New array.
1432 (free_lang_data, build_common_tree_nodes): Use it.
1433
1434 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
1435
1436 PR c++/81187
1437 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
1438 -Wnoexcept.
1439
1440 2017-06-22 Matt Turner <mattst88@gmail.com>
1441
1442 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
1443 Lake models to skylake case. Assume skylake for unknown
1444 models with clflushopt.
1445
1446 2017-06-22 Jeff Law <law@redhat.com>
1447
1448 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
1449 frame sizes that do not satisfy aarch64_uimm12_shift.
1450
1451 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
1452
1453 * profile-count.h (apply_probability,
1454 apply_scale, probability_in): Fix checks for zero.
1455
1456 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1457
1458 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
1459 * doc/cppdiropts.texi (-I @var{dir}): Document it.
1460
1461 2016-06-22 Richard Biener <rguenther@suse.de>
1462
1463 * tree-vect-loop.c (vect_model_reduction_cost): Handle
1464 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
1465 REDUC_MAX_EXPR support.
1466 (vectorizable_reduction): Likewise.
1467 (vect_create_epilog_for_reduction): Likewise.
1468
1469 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
1470
1471 * match.pd (A / (1 << B) -> A >> B): New.
1472 * generic-match-head.c: Include optabs-tree.h.
1473 * gimple-match-head.c: Likewise.
1474 * optabs-tree.h (target_supports_op_p): New.
1475 * optabs-tree.c (target_supports_op_p): New.
1476
1477 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1478
1479 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
1480 $gcc_cv_ld --help output.
1481 (gcc_cv_ld_demangle): Likewise.
1482 (gcc_cv_ld_eh_frame_hdr): Likewise.
1483 (gcc_cv_ld_pie): Likewise.
1484 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
1485 (gcc_cv_ld_buildid): Likewise.
1486 (gcc_cv_ld_sysroot): Likewise.
1487 (ld_bndplt_support): Likewise.
1488 (ld_pushpopstate_support): Likewise.
1489 * configure: Regenerate.
1490 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
1491
1492 2017-06-21 Jakub Jelinek <jakub@redhat.com>
1493
1494 PR target/81151
1495 * config/i386/sse.md (round<mode>2): Renumber match_dup and
1496 operands indexes to avoid gap between operands and match_dups.
1497
1498 2017-06-21 Andrew Pinski <apinski@cavium.com>
1499
1500 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
1501 Increment Arith_shift and Arith_shift_reg by 1.
1502 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
1503 New tuning flag.
1504 * config/aarch64/aarch64.c (thunderx_tunings): Enable
1505 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
1506 (aarch64_strip_extend): Add new argument and test for it.
1507 (aarch64_cheap_mult_shift_p): New function.
1508 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
1509 add a cost if it is true.
1510 Update calls to aarch64_strip_extend.
1511 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
1512
1513 2017-06-21 Andrew Pinski <apinski@cavium.com>
1514
1515 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
1516 tunings.
1517 (thunderxt88): Likewise.
1518 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
1519 (thunderx_prefetch_tune): New variable.
1520 (thunderx2t99_prefetch_tune): Update for the correct values.
1521 (thunderxt88_tunings): New variable.
1522 (thunderx_tunings): Use thunderx_prefetch_tune instead of
1523 generic_prefetch_tune.
1524 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
1525
1526 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1527
1528 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
1529 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
1530 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
1531 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
1532 (aarch64_atomic_cas<mode>, GPI): Likewise.
1533
1534 2017-06-21 Martin Liska <mliska@suse.cz>
1535
1536 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
1537 statements on cold and hot labels.
1538 * predict.c (tree_estimate_probability_bb): Remove the
1539 prediction from this place.
1540
1541 2017-06-21 Martin Liska <mliska@suse.cz>
1542
1543 PR tree-optimization/79489
1544 * gimplify.c (maybe_add_early_return_predict_stmt): New
1545 function.
1546 (gimplify_return_expr): Call the function.
1547 * predict.c (tree_estimate_probability_bb): Remove handling
1548 of early return.
1549 * predict.def: Update comment about early return predictor.
1550 * gimple-predict.h (is_gimple_predict): New function.
1551 * predict.def: Change default value of early return to 66.
1552 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
1553 statements.
1554 * passes.def: Put pass_strip_predict_hints to the beginning of
1555 IPA passes.
1556
1557 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
1558
1559 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
1560 FUNCTION_DECL declarations.
1561 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
1562 declarations.
1563 (dwaf2out_decl): Likewise.
1564 * godump.c (go_early_global_decl): Skip call to the real debug hook
1565 for FUNCTION_DECL declarations.
1566 * passes.c (rest_of_decl_compilation): Skip call to the
1567 early_global_decl debug hook for FUNCTION_DECL declarations, unless
1568 -fdump-go-spec is passed.
1569
1570 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
1571
1572 * config/i386/i386.c (struct builtin_isa): New field pure_p.
1573 Reorder for compactness.
1574 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
1575 (def_builtin_pure, def_builtin_pure2): New functions.
1576 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
1577
1578 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
1579
1580 * match.pd (nop_convert): New predicate.
1581 ((A +- CST1) +- CST2): Allow some NOP conversions.
1582
1583 2017-06-21 Jakub Jelinek <jakub@redhat.com>
1584
1585 PR c++/81130
1586 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
1587 with ctors/dtors if GOVD_SHARED is set.
1588
1589 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1590
1591 * config/aarch64/aarch64.md (movti_aarch64):
1592 Emit mov rather than orr.
1593 (movtf_aarch64): Likewise.
1594 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
1595 Emit mov rather than orr.
1596
1597 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1598
1599 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
1600 Swap alternatives, make integer dup more expensive.
1601
1602 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1603
1604 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
1605 Return true for non-tls symbols.
1606
1607 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
1608
1609 * config/aarch64/aarch64-cores.def (cortex-a55): New.
1610 (cortex-a75): Likewise.
1611 (cortex-a75.cortex-a55): Likewise.
1612 * config/aarch64/aarch64-tune.md: Regenerate.
1613 * doc/invoke.texi (-mtune): Document new values for -mtune.
1614
1615 2017-06-21 Tom de Vries <tom@codesourcery.com>
1616
1617 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
1618 stack_size feature.
1619 (Effective-Target Keywords, Other attributes): Suggest using
1620 dg-add-options stack_size feature to get stack limit in stack_size
1621 effective target documentation.
1622
1623 2017-06-21 Julian Brown <julian@codesourcery.com>
1624 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1625
1626 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
1627 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
1628 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
1629 reservation.
1630 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
1631 attribute type list for neon_multiply.
1632 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
1633 attribute type list for neon_multiply.
1634 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
1635 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
1636 attribute type list for neon_multiply.
1637 * config/arm/types.md (crypto_pmull): Add.
1638 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
1639 attribute type list.
1640
1641 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
1642
1643 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
1644 arm1176jzf-s.
1645
1646 2017-06-20 Jakub Jelinek <jakub@redhat.com>
1647
1648 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
1649 to make sure not to dereference a NULL cost_classes_ptr pointer.
1650
1651 2017-06-20 Carl Love <cel@us.ibm.com>
1652
1653 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1654 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
1655 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
1656 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
1657 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
1658 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
1659 VMULOSW): New enum "unspec" values.
1660 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
1661 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
1662 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
1663 altivec_vmulosw): New patterns.
1664 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
1665 VMULOSW): Add definitions.
1666
1667 2017-06-20 Julia Koval <julia.koval@intel.com>
1668
1669 * config/i386/i386.c: Fix rounding expand for new pattern.
1670 * config/i386/subst.md: Fix pattern (parallel -> unspec).
1671
1672 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1673
1674 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
1675 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
1676
1677 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1678
1679 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
1680 feature string.
1681
1682 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1683
1684 * config/aarch64/aarch64-cores.def: Rearrange to sort by
1685 architecture, then by implementer ID.
1686 * config/aarch64/aarch64-tune.md: Regenerate.
1687
1688 2017-06-20 Richard Biener <rguenther@suse.de>
1689
1690 PR middle-end/81097
1691 * fold-const.c (split_tree): Fold to type before negating.
1692
1693 2017-06-20 David Malcolm <dmalcolm@redhat.com>
1694
1695 * diagnostic-show-locus.c
1696 (selftest::test_fixit_deletion_affecting_newline): New function.
1697 (selftest::diagnostic_show_locus_c_tests): Call it.
1698
1699 2017-06-20 Andreas Schwab <schwab@suse.de>
1700
1701 PR target/80970
1702 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
1703 instead of "+d".
1704
1705 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
1706
1707 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
1708 __ARM_FEATURE_COPROC according to support.
1709
1710 2017-06-20 Jakub Jelinek <jakub@redhat.com>
1711
1712 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
1713 Rewritten to avoid overflow for > 32-bit pointers.
1714
1715 PR sanitizer/81125
1716 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
1717 by removing enum keyword.
1718 (ubsan_type_descriptor): Likewise. Formatting fix.
1719
1720 PR target/81121
1721 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
1722 splitter): Require TARGET_SSE2 in the condition.
1723
1724 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1725
1726 PR target/79799
1727 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
1728 for doing vector set of SFmode on ISA 3.0.
1729 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
1730 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
1731 element.
1732 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
1733 SFmode value into a V4SF variable that was extracted from another
1734 V4SF variable without converting the element to double precision
1735 and back to single precision vector format.
1736 (vsx_insert_extract_v4sf_p9_2): Likewise.
1737
1738 2017-06-19 Jakub Jelinek <jakub@redhat.com>
1739
1740 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
1741 in UWHI to avoid undefined overflow.
1742
1743 PR sanitizer/81125
1744 * ubsan.h (enum ubsan_encode_value_phase): New.
1745 (ubsan_encode_value): Change second argument to
1746 enum ubsan_encode_value_phase with default value of
1747 UBSAN_ENCODE_VALUE_GENERIC.
1748 * ubsan.c (ubsan_encode_value): Change second argument to
1749 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
1750 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
1751 create_tmp_var_raw instead of create_tmp_var and use a
1752 TARGET_EXPR.
1753 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
1754 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
1755 ubsan_encode_value callers.
1756
1757 PR sanitizer/81111
1758 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
1759 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
1760 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
1761
1762 2017-06-19 Richard Biener <rguenther@suse.de>
1763
1764 PR middle-end/81118
1765 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
1766 estimates if we changed anything.
1767
1768 2017-06-19 Richard Biener <rguenther@suse.de>
1769
1770 PR tree-optimization/80887
1771 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
1772 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
1773 simplified lookups, then reset mprts_hook.
1774 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
1775 simplifying.
1776 (try_to_simplify): Likewise.
1777
1778 2017-06-19 Martin Liska <mliska@suse.cz>
1779
1780 PR sanitizer/80879
1781 * gimplify.c (gimplify_switch_expr):
1782 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
1783
1784 2017-06-19 Martin Liska <mliska@suse.cz>
1785
1786 * doc/install.texi: Document that PGO runs in 4 stages.
1787
1788 2017-06-19 Martin Liska <mliska@suse.cz>
1789
1790 PR ipa/80732
1791 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
1792 to dispatcher function name.
1793 * multiple_target.c (replace_function_decl): New function.
1794 (create_dispatcher_calls): Redirect both edges and references.
1795
1796 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
1797
1798 * profile-count.c (profile_count::dump): Dump quality.
1799 (profile_count::differs_from_p): Update for unsigned val.
1800 * profile-count.h (profile_count_quality): New enum.
1801 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
1802
1803 2017-06-19 Richard Biener <rguenther@suse.de>
1804
1805 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
1806 struct function as arg.
1807 (estimate_numbers_of_iterations): Export overload with loop arg.
1808 (free_numbers_of_iterations_estimates_loop): Use an overload of
1809 free_numbers_of_iterations_estimates instead.
1810 * tree-cfg.c (remove_bb): Adjust.
1811 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
1812 * tree-parloops.c (gen_parallel_loop): Likewise.
1813 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1814 Likewise.
1815 (tree_unroll_loops_completely): Likewise.
1816 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1817 Use an overload instead and export.
1818 (estimated_loop_iterations): Adjust.
1819 (max_loop_iterations): Likewise.
1820 (likely_max_loop_iterations): Likewise.
1821 (estimate_numbers_of_iterations): Take struct function as arg
1822 and adjust.
1823 (loop_exits_before_overflow): Adjust.
1824 (free_numbers_of_iterations_estimates_loop): Use an overload.
1825 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
1826 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
1827
1828 2017-06-19 Richard Biener <rguenther@suse.de>
1829
1830 PR ipa/81112
1831 * ipa-prop.c (find_constructor_constant_at_offset): Handle
1832 RANGE_EXPR conservatively.
1833
1834 2017-06-16 Carl Love <cel@us.ibm.com>
1835
1836 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1837 definitions for vec_float, vec_float2, vec_floato,
1838 vec_floate built-ins.
1839 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
1840 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
1841 floate.
1842 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
1843 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
1844 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
1845 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
1846 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
1847 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
1848 vec_floato): Add builtin defines.
1849 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
1850 Update the built-in documentation file for the new built-in
1851 functions.
1852
1853 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1854
1855 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
1856 (mthumb): Mark as the negative of -marm.
1857
1858 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1859
1860 * doc/invoke.texi (ARM Options, -mcpu): Document supported
1861 extension options.
1862 (ARM Options, -mtune): Document that this accepts the same
1863 extension options as -mcpu.
1864 (ARM Options, -mfpu): Document addition of -mfpu=auto.
1865
1866 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1867
1868 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
1869 permitted extensions.
1870
1871 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1872
1873 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
1874 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
1875 (armv8-m.main): Add option +nodsp.
1876 * config/arm/arm-cpu-cdata.h: Regenerated.
1877
1878 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1879
1880 * config/arm/t-fuchsia: New file.
1881 * config.gcc (arm*-*-fuchsia*): Use it.
1882
1883 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1884
1885 * config/arm/t-symbian: Rewrite for new option infrastructure.
1886
1887 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1888
1889 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
1890 (MULTILIB_REQUIRED): Likewise.
1891
1892 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1893
1894 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
1895 (MULTILIB_RESUE): Likewise.
1896 (MULTILIB_MATCHES): Likewise.
1897 (MULTLIB_REQUIRED): Likewise.
1898
1899 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1900
1901 * config/arm/t-rtems: Rewrite for new option framework.
1902
1903 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1904
1905 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
1906 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
1907 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
1908 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
1909 * config/arm/t-multilib: ... here.
1910 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
1911 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
1912 armv7-a and armv8*-a when A-profile libraries have not been built.
1913 * config/arm/t-rmprofile: Rewrite.
1914
1915 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1916
1917 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
1918 with a backslash. Remove the backslash after substituting unescaped
1919 periods.
1920 * doc/fragments.texi (MULTILIB_REUSE): Document it.
1921
1922 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1923
1924 * config.gcc: (arm*-*-*): When building a-profile libraries, force
1925 the driver to pass through the default setting of -mfloat-abi.
1926 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
1927 rather than NULL.
1928 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
1929 (all_feat_combs): New rule.
1930 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
1931 default libraries.
1932 * config/arm/t-aprofile: Rewrite.
1933
1934 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1935
1936 * config/arm/arm.h (FPUTYPE_AUTO): Define.
1937 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
1938 fpu is not specified by the user/command-line.
1939 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
1940 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
1941 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
1942 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
1943 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
1944 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
1945
1946 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1947
1948 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
1949 * config/arm/t-arm-elf: Rewritten.
1950
1951 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1952
1953 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
1954 have some floating-point instructions.
1955 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
1956 (TARGET_MAYBE_HARD_FLOAT): New macro.
1957 * config/arm/arm-builtins.c (arm_init_builtins): Use
1958 TARGET_MAYBE_HARD_FLOAT.
1959 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
1960
1961 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1962
1963 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
1964 (configargs.h): Include it.
1965 (arm_print_hint_for_fpu_option): New function.
1966 (arm_parse_fpu_option): New function.
1967 (candidate_extension): New class.
1968 (arm_canon_for_multilib): New function.
1969 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
1970 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
1971 (ARCH_CANONICAL_SPECS): New macro.
1972 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
1973
1974 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1975
1976 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
1977 are set after handling multilib fragments. Set target_cpu_default2
1978 from with_cpu.
1979
1980 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1981
1982 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
1983 cpu name.
1984 (arm*-*-*): Set target_cpu_default2 to a quoted string.
1985 * config/arm/parsecpu.awk (check_cpu): Validate any extension
1986 options.
1987 (check_arch): Likewise.
1988 * config/arm/arm.c (arm_configure_build_target): Handle
1989 TARGET_CPU_DEFAULT being a string constant. Scan any feature
1990 options in the default.
1991
1992 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
1993
1994 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
1995 when an option is an alias of another.
1996 * config/arm/parsecpu.awk (optalias): New parser token.
1997 (gen_comm_data): Mark non-alias options as such. Emit entries
1998 for extension aliases.
1999 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
2000 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
2001 (armv6kz, armv6zk, armv6t2): Likewise.
2002 (armv7): Make vfpv3-d16 an alias.
2003 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
2004 canonical order.
2005 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
2006 Sort in canonical order.
2007 (armv8-a): Sort in canonical order.
2008 (armv8.1-a, armv8.2-a): Likewise.
2009 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
2010 canonical order.
2011 (cortex-a9): Sort in canonical order.
2012 * config/arm/arm.c (selftests.h): Include it.
2013 (arm_test_cpu_arch_data): New function.
2014 (arm_run_self_tests): New function.
2015 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
2016 (targetm): Move declaration to the end of the file.
2017 * arm-cpu-cdata.h: Regenerated.
2018
2019 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2020
2021 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
2022 call to target_mode_check describing the type of option passed.
2023 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
2024 (arm_target_thumb_only): Use arm_parse_arch_option_name or
2025 arm_parse_cpu_option_name to match parameters against list of
2026 available targets.
2027 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
2028 arm_arch_core_flags data structure.
2029 * config/arm/arm-cpu_cdata.h: Regenerated.
2030
2031 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2032
2033 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
2034 config/arm/arm.c.
2035 (arm_print_hint_for_cpu_option): Likewise.
2036 (arm_print_hint_for_arch_option): Likewise.
2037 (arm_parse_cpu_option_name): Likewise.
2038 (arm_parse_arch_option_name): Likewise.
2039 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
2040 of entries in the all_fpus list.
2041 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
2042 (arm_parse_cpu_option_name): Declare.
2043 (arm_parse_arch_option_name): Declare.
2044 (arm_parse_option_features): Declare.
2045 (arm_intialize_isa): Declare.
2046 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
2047 data tables to ...
2048 (gen_comm_data): ... here. Make definitions non-static.
2049 * config/arm/arm-cpu-data.h: Regenerated.
2050 * config/arm/arm-cpu-cdata.h: Regenerated.
2051
2052 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2053
2054 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
2055 (cpu_arch_extension): New structure.
2056 (cpu_arch_option, arch_option, cpu_option): New structures.
2057 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
2058 architecture types.
2059 (gen_data): Generate new format data tables.
2060 * config/arm/arm.c (cpu_tune): New structure.
2061 (cpu_option, processors): Delete.
2062 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
2063 (arm_print_hint_for_cpu_option): ... this and ...
2064 (arm_print_hint_for_arch_option): ... this.
2065 (arm_parse_arch_cpu_name): Delete. Replace with ...
2066 (arm_parse_cpu_option_name): ... this and ...
2067 (arm_parse_arch_option_name): ... this.
2068 (arm_unrecognized_feature): Change type of target parameter to
2069 cpu_arch_option.
2070 (arm_parse_arch_cpu_features): Delete. Replace with ...
2071 (arm_parse_option_features): ... this.
2072 (arm_configure_build_target): Rework to use new configuration data
2073 tables.
2074 (arm_print_tune_info): Rework for new configuration data tables.
2075 * config/arm/arm-cpu-data.h: Regenerated.
2076 * config/arm/arm-cpu.h: Regenerated.
2077
2078 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2079
2080 * Makefile.in (OBJS): Move sbitmap.o from here ...
2081 (OBJS-libcommon): ... to here.
2082
2083 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2084
2085 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
2086 (ISA_ALL_CRYPTO): New macro.
2087 (ISA_ALL_SIMD): New macro
2088 (ISA_ALL_FP): New macro.
2089 * config/arm/arm.c (fpu_bitlist): Update initializer.
2090 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
2091 simd or fp.
2092 (arm9e): Add fpu. Add option for nofp
2093 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
2094 (arm926ej-s, arm1026ej-s): Likewise.
2095 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
2096 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
2097 neon-fp16, neon-vfpv4, nofp and nosimd.
2098 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
2099 (cortex-a8): Add fpu. Add option for nofp.
2100 (cortex-a9): Add fpu. Add options for nosimd and nofp.
2101 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
2102 (cortex-r4f): Add fpu.
2103 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
2104 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
2105 for nofp.
2106 (cortex-r8): Likewise.
2107 (cortex-m4): Add fpu. Add option for nofp.
2108 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
2109 (cortex-a17.cortex-a7): Likewise.
2110 (cortex-a32): Add fpu. Add options for crypto and nofp.
2111 (cortex-a35, cortex-a53): Likewise.
2112 (cortex-a57): Add fpu. Add option for crypto.
2113 (cortex-a72, cortex-a73): Likewise.
2114 (exynos-m1): Likewise.
2115 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
2116 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
2117 (cortex-m33): Add fpu. Add option for nofp.
2118 * config/arm/arm-cpu-cdata.h: Regenerated
2119 * config/arm/arm-cpu-data.h: Regenerated.
2120
2121 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2122
2123 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
2124 (armv5te, armv5tej): Likewise.
2125 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
2126 (armv7): Add options fp and vfpv3-d16.
2127 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
2128 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
2129 nofp and nosimd.
2130 (armv7ve): Likewise.
2131 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
2132 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
2133 (armv8-a): Add nocrypto option.
2134 (armv8.1-a, armv8.2-a): Likewise.
2135 (armv8-m.main): add options fp, fp.dp and nofp.
2136
2137 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2138
2139 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
2140 nofp.
2141 (armv8-a+crc): Delete.
2142 (armv8.1-a): Add options simd, crypto and nofp.
2143 (armv8.2-a): Add options fp16, simd, crypto and nofp.
2144 (armv8.2-a+fp16): Delete.
2145 (armv8-m.main): Add option dsp.
2146 (armv8-m.main+dsp): Delete.
2147 (cortex-a8): Add fpu. Add nofp option.
2148 (cortex-a9): Add fpu. Add nofp and nosimd options.
2149 * config/arm/parsecpu.awk (gen_data): Generate option tables and
2150 link to main cpu and architecture data structures.
2151 (gen_comm_data): Only put isa attributes from the main architecture
2152 in common tables.
2153 (option): New statement for architecture and CPU entries.
2154 * arm.c (struct cpu_option): New structure.
2155 (struct processors): Add entry for options.
2156 (arm_unrecognized_feature): New function.
2157 (arm_parse_arch_cpu_name): Ignore any characters after the first
2158 '+' character.
2159 (arm_parse_arch_cpu_feature): New function.
2160 (arm_configure_build_target): Separate out any CPU and architecture
2161 features and parse separately. Don't error out if -mfpu=auto is
2162 used with only an architecture string.
2163 (arm_print_asm_arch_directives): New function.
2164 (arm_file_start): Call it.
2165 * config/arm/arm-cpu-cdata.h: Regenerated.
2166 * config/arm/arm-cpu-data.h: Likewise.
2167 * config/arm/arm-tables.opt: Likewise.
2168
2169 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2170
2171 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
2172 assembler when it is not -mfpu=auto.
2173
2174 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2175
2176 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
2177 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
2178 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
2179 (ASM_CPU_SPEC): Rewrite.
2180 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
2181 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
2182 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
2183 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
2184 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
2185 copied string is NUL-terminated. Also strip any characters prefixed
2186 by '+'.
2187 (arm_rewrite_selected_arch): New function.
2188 (arm_rewrite_march): New function.
2189
2190 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2191
2192 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
2193 (x_arm_cpu_string, x_arm_tune_string): Likewise.
2194 (march, mcpu, mtune): Convert to string-based options.
2195 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
2196 (arm_parse_arch_cpu_name): New function.
2197 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
2198 identify selected architecture or CPU.
2199 (arm_option_save): New function.
2200 (TARGET_OPTION_SAVE): Redefine.
2201 (arm_option_restore): Restore string options.
2202 (arm_option_print): Print string options.
2203
2204 2017-06-16 Martin Sebor <msebor@redhat.com>
2205
2206 PR tree-optimization/80933
2207 PR tree-optimization/80934
2208 * builtins.c (fold_builtin_3): Do not handle bcmp here.
2209 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
2210 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
2211 (gimple_fold_builtin): Call them.
2212
2213 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2214
2215 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
2216 as unlikely; update profile.
2217
2218 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2219
2220 * predict.c (force_edge_cold): Handle declaring edges impossible
2221 more aggresively.
2222
2223 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2224
2225 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
2226 profile.
2227 (try_unroll_loop_completely): Fix reporting.
2228
2229 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2230
2231 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
2232
2233 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
2234
2235 PR target/71778
2236 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
2237 if given a non-constant argument for an intrinsic which requires a
2238 constant.
2239
2240 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2241
2242 * profile.c (compare_freqs): New function.
2243 (branch_prob): Sort edge list.
2244 (find_spanning_tree): Assume that the list is priority sorted.
2245
2246 2017-06-16 Richard Biener <rguenther@suse.de>
2247
2248 PR tree-optimization/81090
2249 * passes.def (pass_record_bounds): Remove.
2250 * tree-pass.h (make_pass_record_bounds): Likewise.
2251 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
2252 make_pass_record_bounds): Likewise.
2253 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
2254 not free niter estimates at the beginning but at the end.
2255 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
2256
2257 2017-06-16 Richard Biener <rguenther@suse.de>
2258
2259 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
2260 initializer to workaround ICE in host GCC 4.8.
2261
2262 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2263
2264 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
2265 counts.
2266 (clone_inlined_nodes): Update.
2267
2268 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2269
2270 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
2271 prefetch settings, and enable prefetching by default at -O3.
2272
2273 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2274
2275 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2276 Set flag_prefetch_loop_arrays according to tuning data.
2277
2278 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2279
2280 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
2281 New tune structure.
2282 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
2283 [Unrelated to main purpose of the patch] Place the pointer field last
2284 to enable type checking errors when tune structure are wrongly merged.
2285 * config/aarch64/aarch64.c (generic_prefetch_tune,)
2286 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
2287 (thunderx2t99_prefetch_tune): New tune constants.
2288 (tune_params *_tunings): Update all tunings (no functional change).
2289 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
2290 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
2291 from tunings structures.
2292
2293 2017-06-16 Jakub Jelinek <jakub@redhat.com>
2294
2295 PR sanitizer/81094
2296 * ubsan.c (instrument_null): Add T argument, use it instead
2297 of computing it based on IS_LHS.
2298 (instrument_object_size): Likewise.
2299 (pass_ubsan::execute): Adjust instrument_null and
2300 instrument_object_size callers to pass gimple_get_lhs or
2301 gimple_assign_rhs1 result to it. Use instrument_null instead of
2302 calling get_base_address and instrument_mem_ref. Handle
2303 aggregate call arguments for object-size sanitization.
2304
2305 2017-06-16 Yury Gribov <tetra2005@gmail.com>
2306
2307 PR tree-optimization/81089
2308 * tree-vrp.c (is_masked_range_test): Validate operands of
2309 subexpression.
2310
2311 2017-06-15 Martin Sebor <msebor@redhat.com>
2312
2313 PR c++/80560
2314 * dumpfile.c (dump_register): Avoid calling memset to initialize
2315 a class with a default ctor.
2316 * gcc.c (struct compiler): Remove const qualification.
2317 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
2318 * hash-table.h: Ditto.
2319 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
2320 assignment.
2321 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
2322 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
2323 default ctor.
2324 * params.h (struct param_info): Make struct members non-const.
2325 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
2326 with default initialization.
2327 * vec.h (vec_copy_construct, vec_default_construct): New helper
2328 functions.
2329 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
2330 with vec_copy_construct.
2331 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
2332 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
2333 * doc/invoke.texi (-Wclass-memaccess): Document.
2334
2335 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2336
2337 * emit-rtl.h (is_leaf): Update comment about local
2338 register allocator.
2339
2340 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
2341
2342 PR target/78818
2343 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
2344 for a variable to have a section before checking if the section has a
2345 name.
2346 Set section to.persistent if persistent attribute is set.
2347 Warn if .persistent attribute is used on an automatic variable.
2348
2349 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
2350
2351 PR rtl-optimization/80474
2352 * reorg.c (update_block): Do not ignore instructions in a delay slot.
2353
2354 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
2355
2356 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
2357 of REGNO.
2358
2359 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
2360
2361 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
2362 (casesi): Emit bounds checking as RTL.
2363 (casesi_internal_mips16_<mode>): Remove bounds checking.
2364
2365 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
2366
2367 * config/xtensa/xtensa.c (xtensa_option_override): Append
2368 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
2369 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
2370 xtensa_doloop_hooks): Define unconditionally.
2371 (xtensa_reorg_loops): Only call reorg_loops in the presence of
2372 TARGET_LOOPS.
2373 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
2374 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
2375 for it in xtensa_option_override.
2376 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2377 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
2378
2379 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
2380
2381 * doc/cppopts.texi: Document '-' special value to -MF.
2382
2383 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
2384
2385 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
2386 (cortex_a53_fconst): Likewise.
2387 (cortex_a53_fpmul): Likewise.
2388 (cortex_a53_f_load_64): Likewise.
2389 (cortex_a53_f_load_many): Likewise.
2390 (cortex_a53_advsimd_alu): Likewise.
2391 (cortex_a53_advsimd_alu_q): Likewise.
2392 (cortex_a53_advsimd_mul): Likewise.
2393 (cortex_a53_advsimd_mul_q): Likewise.
2394 (fpmac bypass): Add new bypass for fpmac-fpmac case.
2395 Add missing fmul, r2f_cvt and fconst cases.
2396
2397 2017-06-14 Richard Biener <rguenther@suse.de>
2398
2399 PR middle-end/81088
2400 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
2401 literal constants.
2402 (fold_binary_loc): When associating do not treat pre-existing
2403 TREE_OVERFLOW on literal constants as a reason to allow
2404 TREE_OVERFLOW on associated literal constants.
2405
2406 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2407
2408 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
2409 (MASK_FEATURES): New macro.
2410 * config/sparc/sparc.c (sparc_option_override): Remove the special
2411 handling of -mfpu and generalize it to all MASK_FEATURES switches.
2412
2413 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2414
2415 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
2416 a division of 0 if non-call exceptions are enabled.
2417
2418 2017-06-14 Andrew Pinski <apinski@cavium.com>
2419 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
2420
2421 PR target/71663
2422 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
2423 Improve vector initialization code gen for only variable case.
2424
2425 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2426
2427 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
2428
2429 2017-06-14 Richard Biener <rguenther@suse.de>
2430
2431 PR tree-optimization/81083
2432 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
2433 as values.
2434
2435 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2436
2437 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
2438 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
2439 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
2440 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
2441 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
2442 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
2443
2444 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2445
2446 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
2447 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
2448
2449 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2450
2451 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
2452
2453 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2454
2455 * config/rs6000/t-rtems: Don't handle SPE.
2456
2457 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2458
2459 * config/rs6000/t-linux: Don't handle SPE.
2460
2461 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2462
2463 * config/rs6000/eabispe.h: Delete file.
2464
2465 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2466
2467 * config/rs6000/t-spe: Delete file.
2468
2469 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2470
2471 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
2472 (rs6000_legitimate_offset_address_p): Return false for anything in
2473 V2SImode or V2SFmode.
2474
2475 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2476
2477 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
2478 except V2SF and V2SI. Rearrange the vector modes, and add comments.
2479 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
2480 and V4HImode.
2481 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
2482 (rs6000_legitimate_offset_address_p): Ditto.
2483 (rs6000_emit_move): Ditto.
2484 (rs6000_init_builtins): Remove V4HI_type_node.
2485
2486 2017-06-13 Martin Liska <mliska@suse.cz>
2487
2488 PR sanitize/78204
2489 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
2490 (gate_asan): Likewise.
2491 * asan.h (asan_no_sanitize_address_p): Remove the function.
2492 (sanitize_flags_p): New function.
2493 * builtins.def: Fix coding style.
2494 * common.opt: Use renamed enum value.
2495 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
2496 * doc/extend.texi: Document no_sanitize attribute.
2497 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
2498 to SANITIZE_UNDEFINED_NONDEFAULT.
2499 * gcc.c (sanitize_spec_function): Use the renamed enum value.
2500 * gimple-fold.c (optimize_atomic_compare_exchange_p):
2501 Use sanitize_flags_p.
2502 * gimplify.c (gimplify_function_tree): Likewise.
2503 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
2504 * opts.c (parse_no_sanitize_attribute): New function.
2505 (common_handle_option): Use renamed enum value.
2506 * opts.h (parse_no_sanitize_attribute): Declare.
2507 * tree.c (sanitize_flags_p): New function.
2508 * tree.h: Declared here.
2509 * tsan.c: Use sanitize_flags_p.
2510 * ubsan.c (ubsan_expand_null_ifn): Likewise.
2511 (instrument_mem_ref): Likewise.
2512 (instrument_bool_enum_load): Likewise.
2513 (do_ubsan_in_current_function): Remove the function.
2514 (pass_ubsan::execute): Use sanitize_flags_p.
2515 * ubsan.h: Remove do_ubsan_in_current_function
2516 * tree-cfg.c (print_no_sanitize_attr_value): New function.
2517 (dump_function_to_file): Use it here.
2518
2519 2017-06-13 Martin Jambor <mjambor@suse.cz>
2520
2521 PR tree-optimization/80803
2522 PR tree-optimization/81063
2523 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
2524 (propagate_subaccesses_across_link): Enqueue subtree whenever
2525 necessary instead of relying on the caller.
2526
2527 2017-06-13 Martin Jambor <mjambor@suse.cz>
2528
2529 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
2530 that have a first_link.
2531 (sort_and_splice_var_accesses): Do not check first_link before
2532 enquing.
2533 (subtree_mark_written_and_enqueue): Likewise.
2534 (propagate_all_subaccesses): Likewise and do not stop at first
2535 parent with a first_link.
2536
2537 2017-06-13 Martin Jambor <mjambor@suse.cz>
2538
2539 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
2540 instead of f.
2541
2542 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2543
2544 * match.pd: New pattern.
2545
2546 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2547
2548 * tree-vrp.c (is_masked_range_test): New function.
2549 (register_edge_assert_for): Determine ranges for
2550 some bit tests.
2551
2552 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2553
2554 PR tree-optimization/67328
2555 * fold-const.c (maskable_range_p): New function.
2556 (build_range_check): Generate bittests if possible.
2557
2558 2017-06-13 Martin Liska <mliska@suse.cz>
2559
2560 * gimple-pretty-print.c (dump_probability): Add new argument.
2561 (dump_edge_probability): Dump both probability and count.
2562 (dump_gimple_label): Likewise.
2563 (dump_gimple_bb_header): Likewise.
2564
2565 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
2566
2567 PR target/81072
2568 * config/avr/avr-devices.c: Fix indentation.
2569 * config/avr/gen-avr-mmcu-specs.c: Dito.
2570
2571 2017-06-13 Richard Biener <rguenther@suse.de>
2572
2573 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
2574 instead get vector type from stmt_info.
2575 (vectorizable_reduction): Adjust. Remove dead code.
2576
2577 2017-06-13 Richard Biener <rguenther@suse.de>
2578
2579 PR middle-end/81065
2580 * fold-const.c (extract_muldiv_1): Remove bogus distribution
2581 case of C * (x * C2 + C3).
2582 (fold_addr_of_array_ref_difference): Properly fold index difference.
2583
2584 2017-06-12 David S. Miller <davem@davemloft.net>
2585
2586 PR target/80968
2587 * config/sparc/sparc.md (return expander): Emit frame blockage if
2588 function uses alloca.
2589
2590 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
2591
2592 * combine.c (make_field_assignment): Check len rather than the mode
2593 precision when calling force_to_mode.
2594
2595 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
2596
2597 Support multilibs and devices that see flash in RAM address range.
2598
2599 PR target/81072
2600 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
2601 (avr_mcu_t) <flash_pm_offset>: New field.
2602 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
2603 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
2604 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
2605 (AVR_TINY_PM_OFFSET): Remove macro.
2606 * config/avr/avr.opt (-mshort-calls): New option.
2607 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
2608 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
2609 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
2610 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
2611 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
2612 instead of avr_arch->have_jmp_call.
2613 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
2614 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
2615 avr_arch->flash_pm_offset to define.
2616 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
2617 new field flash_pm_offset. Add entry for avrxmega3.
2618 (avr_texinfo): Add entry for avrxmega3.
2619 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
2620 attiny212, attiny214,
2621 attiny412, attiny414, attiny416, attiny417,
2622 attiny814, attiny816, attiny817,
2623 attiny1614, attiny1616, attiny1617,
2624 attiny3214, attiny3216, attiny3217.
2625 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
2626 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
2627 (avr_print_operand_address) [AVR_TINY]: Same.
2628 (avr_asm_init_sections) <readonly_data_section>: Only patch
2629 callback if avr_arch->flash_pm_offset = 0.
2630 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
2631 for rodata if avr_arch->flash_pm_offset != 0.
2632 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
2633 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
2634 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
2635 (m_options): Append opt_rcall.
2636 (m_dirnames): Append dir_rcall.
2637 * config/avr/t-multilib: Regenerate.
2638
2639 * configure.ac [target=avr]: Check whether avrxmega3 default
2640 linker description file works as needed.
2641 * configure: Regenerate.
2642 * doc/avr-mmcu.texi: Regenerate.
2643 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
2644 <__AVR_ARCH__>: Document avrxmega3 and 103.
2645 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
2646 <__AVR_SHORT_CALLS__>: Document it.
2647 <__AVR_PM_BASE_ADDRESS__>: Document it.
2648 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
2649 (AVR Variable Attributes) <progmem>: Document this is
2650 not needed for avrxmega3.
2651 (AVR Named Address Spaces) <__flash>: Dito.
2652
2653 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
2654
2655 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
2656
2657 2017-06-12 Doug Rupp <rupp@adacore.com>
2658
2659 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
2660 Append vxworks-stdint.h to the tm_file list.
2661 * config/vxworks-stdint.h: New file.
2662
2663 2017-06-12 Martin Liska <mliska@suse.cz>
2664
2665 PR tree-optimization/81041
2666 * tree-profile.c (gimple_gen_ic_func_profiler):
2667 Create an extra BB in profile-generate
2668 (gimple_gen_time_profiler): Likewise.
2669
2670 2017-06-12 Jakub Jelinek <jakub@redhat.com>
2671
2672 PR tree-optimization/81003
2673 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
2674 (update_range_test): Use it instead of force_gimple_operand_gsi.
2675
2676 2017-06-12 Richard Biener <rguenther@suse.de>
2677
2678 PR tree-optimization/81053
2679 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
2680 with backedge value not defined in loop. Simplify def stmt
2681 compute.
2682
2683 2017-06-11 Tom de Vries <tom@codesourcery.com>
2684
2685 PR target/79939
2686 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
2687 Return true.
2688 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
2689 nvptx_cannot_force_const_mem.
2690
2691 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2692
2693 * opts.c (finish_options): Move test for flag_split_stack after
2694 it has been initialized.
2695
2696 2017-06-11 Jason Merrill <jason@redhat.com>
2697
2698 * tree.h (id_equal): New.
2699 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
2700 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
2701 instead of strcmp of IDENTIFIER_POINTER.
2702
2703 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2704
2705 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
2706 (mark_all_inlined_calls_cdtor): Fix formating.
2707 (inline_transform): Rescale profile before inlining.
2708
2709 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2710
2711 * cgraph.h (cgraph_edge::clone): Update prototype.
2712 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
2713 (cgraph_node::create_clone): Update.
2714 (cgraph_node::create_version_clone): Update.
2715 * tree-inline.c (copy_bb): Update.
2716 (expand_call_inline): Update.
2717
2718 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
2719
2720 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
2721 factored out from ...
2722 (rs6000_emit_prologue): ... here.
2723
2724 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
2725
2726 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
2727 factored out from ...
2728 (rs6000_emit_prologue): ... here.
2729
2730 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2731
2732 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
2733 edge counts.
2734 (handle_missing_profiles): Fix computation of tp_first_run.
2735 (counts_to_freqs): Do not touch freqs when count is 0.
2736
2737 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2738
2739 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
2740 profile.
2741
2742 2017-06-10 Tom de Vries <tom@codesourcery.com>
2743
2744 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2745 attributes): Document signal effective target.
2746
2747 2017-06-10 Tom de Vries <tom@codesourcery.com>
2748
2749 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2750 Document effective target stack_size.
2751
2752 2017-06-09 David Malcolm <dmalcolm@redhat.com>
2753
2754 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
2755 to the edit_context if they can be auto-applied.
2756
2757 2017-06-9 Ian Lance Taylor <iant@golang.org>
2758
2759 * opts.c (finish_options): If -fsplit-stack, disable implicit
2760 -forder-blocks-and-partition.
2761 * doc/invoke.texi (Optimize Options): Document that when using
2762 -fsplit-stack -forder-blocks-and-partition is not implicitly
2763 enabled.
2764
2765 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2766
2767 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
2768 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
2769 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
2770 * builtins.def (abort, trap, unreachable): Declare cold.
2771 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
2772 * tree-core.h (ECF_COLD): New.
2773 * tree.c (set_call_expr_flags): Handle ECF_COLD.
2774 (build_common_builtin_nodes): Mark unreachable and abort as cold.
2775
2776 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2777
2778 * predict.c (unlikely_executed_stmt_p): Cleanup.
2779
2780 2017-06-09 Richard Biener <rguenther@suse.de>
2781
2782 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
2783 model if the ref is always written to.
2784
2785 2017-06-09 Tamar Christina <tamar.christina@arm.com>
2786
2787 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
2788
2789 2017-06-09 Tamar Christina <tamar.christina@arm.com>
2790
2791 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
2792 than udiv.
2793
2794 2017-06-09 Tom de Vries <tom@codesourcery.com>
2795
2796 PR target/80855
2797 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
2798 "target cannot support label values" when encountering LABEL_REF.
2799
2800 2017-06-09 Martin Liska <mliska@suse.cz>
2801
2802 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
2803 (gimple_gen_ic_func_profiler): Emit direct comparison
2804 of __gcov_indirect_call_callee with NULL.
2805 (gimple_gen_time_profiler): Change probability from
2806 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
2807
2808 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2809
2810 * profile.c (edge_gcov_counts): Turn to pointer.
2811 (compute_branch_probabilities, compute_branch_probabilities): Update.
2812 (branch_prob): Do not clear edge_gcov_count.
2813 * profile.h (edge_gcov_counts): Turn to pointer.
2814 (edge_gcov_count): Update.
2815
2816 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2817
2818 * gimple.h (gimple_check_failed): Mark cold.
2819
2820 2017-06-09 Richard Biener <rguenther@suse.de>
2821
2822 PR tree-optimization/66623
2823 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
2824 refactor check_reduction into two parts, properly computing
2825 whether we have to check reduction validity for outer loop
2826 vectorization.
2827
2828 2017-06-09 Richard Biener <rguenther@suse.de>
2829
2830 PR tree-optimization/79483
2831 * graphite-scop-detection.c (order): New global.
2832 (get_order): Compute bb to order mapping that satisfies code
2833 generation constraints.
2834 (cmp_pbbs): New helper.
2835 (build_scops): Start domwalk at entry block, sort generated
2836 pbbs.
2837
2838 2017-06-09 Richard Biener <rguenther@suse.de>
2839
2840 PR middle-end/81007
2841 * ipa-polymorphic-call.c
2842 (ipa_polymorphic_call_context::restrict_to_inner_class):
2843 Skip FIELD_DECLs with error_mark_node type.
2844 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
2845 last again.
2846
2847 2017-06-09 Martin Liska <mliska@suse.cz>
2848
2849 * predict.c (struct branch_predictor): New struct.
2850 (test_prediction_value_range): New test.
2851 (predict_c_tests): New function.
2852 * selftest-run-tests.c (selftest::run_tests): Run the function.
2853 * selftest.h: Declare new tests.
2854
2855 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
2856
2857 PR target/80966
2858 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
2859 gen_add3_insn did not fail.
2860 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
2861 r0, construct that number in a temporary reg and add that reg to r0.
2862 If asked to put the result in r0 as well, fail.
2863
2864 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
2865
2866 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
2867 for early expansion of vec_eqv.
2868
2869 2017-06-08 Jakub Jelinek <jakub@redhat.com>
2870
2871 PR middle-end/81005
2872 * ubsan.c (instrument_null): Avoid pointless code temporary.
2873 (pass_ubsan::execute): Instrument aggregate arguments of calls.
2874
2875 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
2876
2877 PR target/81015
2878 Revert:
2879 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
2880
2881 PR target/59874
2882 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
2883 (*clzhi2): Ditto.
2884
2885 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2886
2887 * predict.c (unlikely_executed_edge_p): Move ahead.
2888 (probably_never_executed_edge_p): Use it.
2889
2890 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
2891
2892 PR middle-end/79988
2893 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
2894 gimple_call_builtin_p call.
2895
2896 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2897
2898 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
2899 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
2900 rtl_check_failed_type2, rtl_check_failed_code1,
2901 rtl_check_failed_code2, rtl_check_failed_code_mode,
2902 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
2903 rtvec_check_failed_bounds, rtl_check_failed_flag,
2904 _fatal_insn_not_found, _fatal_insn): Likewise.
2905 * tree.h (tree_contains_struct_check_failed,
2906 tree_check_failed, tree_not_check_failed,
2907 tree_class_check_failed, tree_range_check_failed,
2908 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
2909 tree_vec_elt_check_failed, phi_node_elt_check_failed,
2910 tree_operand_check_failed, omp_clause_check_failed,
2911 omp_clause_operand_check_failed, omp_clause_range_check_failed):
2912 Likewise.
2913
2914 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2915
2916 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
2917 flag_branch_probabilities.
2918 * ipa-inline.c (edge_badness): Likewise.
2919 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
2920 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2921 * predict.c (maybe_hot_frequency_p): Likewise.
2922 (probably_never_executed): Likewise.
2923 * sched-ebb.c (schedule_ebbs): Likewise.
2924 * sched-rgn.c (find_single_block_region): Likewise.
2925 * tracer.c (tail_duplicate): Likewise.
2926
2927 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2928
2929 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
2930 longer requires x_flag_profile_use.
2931
2932 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2933
2934 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
2935 instead of flag_reorder_blocks_and_partition.
2936 * dbxout.c (dbxout_function_end): Likewise.
2937 * dwarf2out.c (gen_subprogram_die): Likewise.
2938 * haifa-sched.c (sched_create_recovery_edges): Likewise.
2939 * hw-doloop.c (reorg_loops): Likewise.
2940 * varasm.c (assemble_start_function,
2941 assemble_end_function): Likewise.
2942 (decide_function_section): Do not check for
2943 flag_reorder_blocks_and_partition.
2944
2945 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
2946
2947 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
2948 New function.
2949 (chkp_get_hard_register_fake_addr_expr): Ditto.
2950 (chkp_build_addr_expr): Add check for hard reg case.
2951 (chkp_parse_array_and_component_ref): Ditto.
2952 (chkp_find_bounds_1): Ditto.
2953 (chkp_process_stmt): Don't generate bounds store for
2954 hard reg case.
2955
2956 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
2957
2958 * predict.c (maybe_hot_bb_p): Do not check profile status.
2959 (maybe_hot_edge_p): Likewise.
2960 (probably_never_executed): Check for zero counts even if profile
2961 is not read.
2962 (unlikely_executed_edge_p): New function.
2963 (unlikely_executed_stmt_p): New function.
2964 (unlikely_executed_bb_p): New function.
2965 (set_even_probabilities): Use unlikely predicates.
2966 (combine_predictions_for_bb): Likewise.
2967 (predict_paths_for_bb): Likewise.
2968 (predict_paths_leading_to_edge): Likewise.
2969 (determine_unlikely_bbs): New function.
2970 (estimate_bb_frequencies): Use it.
2971 (compute_function_frequency): Use zero counts even if profile is
2972 not read.
2973 * profile-count.h: Fix typo.
2974
2975 2017-08-08 Julia Koval <julia.koval@intel.com>
2976
2977 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
2978 _mm512_mask_cvtsepi16_storeu_epi8,
2979 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
2980 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
2981 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
2982 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
2983 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
2984 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
2985 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
2986 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
2987 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
2988 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
2989 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
2990 __builtin_ia32_pmovuswb256mem_mask,
2991 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
2992 __builtin_ia32_pmovwb512mem_mask): New builtins.
2993
2994 2017-08-08 Julia Koval <julia.koval@intel.com>
2995
2996 PR target/73350,80862
2997 * config/i386/subst.md (round): Fix round pattern.
2998 * config/i386/i386.c (ix86_erase_embedded_rounding):
2999 Fix erasing rounding for the fixed pattern.
3000
3001 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3002
3003 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
3004
3005 2017-06-08 Martin Liska <mliska@suse.cz>
3006
3007 PR gcov-profile/80911
3008 * gcov.c (block_info::block_info): New constructor.
3009
3010 2017-06-07 Carl Love <cel@us.ibm.com>
3011
3012 * config/rs6000/rs6000-c: The return type of the following
3013 built-in functions was implemented as int not long long. Fix sign
3014 of return value for the unsigned version of vec_mulo and vec_mule.
3015 vector unsigned long long vec_bperm (vector unsigned long long,
3016 vector unsigned char)
3017 vector signed long long vec_mule (vector signed int,
3018 vector signed int)
3019 vector unsigned long long vec_mule (vector unsigned int,
3020 vector unsigned int)
3021 vector signed long long vec_mulo (vector signed int,
3022 vector signed int)
3023 vector unsigned long long vec_mulo (vector unsigned int,
3024 vector unsigned int)
3025 * doc/extend.texi: Fix the documentation for the built-in
3026 functions.
3027
3028 2017-06-07 Carl Love <cel@us.ibm.com>
3029
3030 PR target/80982
3031 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
3032 for BE.
3033
3034 2017-06-07 Carl Love <cel@us.ibm.com>
3035
3036 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
3037 support, Generate doublehv for signed int/float for BE case only.
3038
3039 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
3040
3041 * doc/invoke.texi (mcx16): Rewrite.
3042
3043 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3044
3045 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
3046 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
3047 *mov<mode>_softfloat, and an anonymous splitter): Use
3048 nonimmediate_operand instead of rs6000_nonimmediate_operand.
3049
3050 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3051
3052 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
3053 SPEFSCR registers.
3054 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3055 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
3056 (rs6000_debug_reg_global): Adjust.
3057 (rs6000_init_hard_regno_mode_ok): Adjust.
3058 (rs6000_dbx_register_number): Adjust.
3059 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
3060 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3061 Remove SPE_ACC and SPEFSCR.
3062 (REG_ALLOC_ORDER): Ditto.
3063 (FRAME_POINTER_REGNUM): Change to 111.
3064 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
3065 (REG_CLASS_NAMES): Ditto.
3066 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
3067 (REGISTER_NAMES): Ditto.
3068 (ADDITIONAL_REG_NAMES): Ditto.
3069 (rs6000_reg_names): Ditto.
3070 * config/rs6000/rs6000.md: Renumber some register number
3071 define_constants.
3072
3073 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3074
3075 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
3076 registers.
3077 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3078 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
3079 to 117.
3080 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
3081 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3082 Delete the SPE high registers.
3083 (REG_ALLOC_ORDER): Ditto.
3084 (enum reg_class): Remove SPE_HIGH_REGS.
3085 (REG_CLASS_NAMES): Ditto.
3086 (REG_CLASS_CONTENTS): Delete the SPE high registers.
3087 (REGISTER_NAMES): Ditto.
3088 (rs6000_reg_names): Ditto.
3089 * doc/tm.texi.in: Remove SPE as example.
3090 * doc/tm.texi: Regenerate.
3091
3092 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3093
3094 * config/rs6000/8540.md (ppc8540_brinc): Delete.
3095 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
3096 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
3097 * config/rs6000/rs6000.md (type): Remove "brinc".
3098
3099 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3100
3101 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
3102 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
3103 * config/rs6000/linuxspe.h: Delete file.
3104 * config/rs6000/rs6000.md: Don't include spe.md.
3105 * config/rs6000/spe.h: Delete file.
3106 * config/rs6000/spe.md: Delete file.
3107 * config/rs6000/t-rs6000: Remove spe.md.
3108
3109 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3110
3111 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
3112 (reg_or_none500mem_operand): Delete.
3113 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
3114 instead of reg_or_none500mem_operand.
3115
3116 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3117
3118 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
3119 handling of SPE flags.
3120 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
3121
3122 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3123
3124 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
3125 SPE ABI handling.
3126 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
3127 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
3128 paired_divv2sf3): Similar.
3129 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
3130 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
3131 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
3132 RS6000_BUILTIN_S.
3133 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
3134 Rename the paired_* instruction patterns.
3135 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
3136 define __SPE__.
3137 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
3138 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
3139 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
3140 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
3141 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
3142 PAIRED_VECTOR_MODE.
3143 (struct machine_function): Delete field spe_insn_chain_scanned_p.
3144 (spe_func_has_64bit_regs_p): Delete.
3145 (spe_expand_predicate_builtin): Delete.
3146 (spe_expand_evsel_builtin): Delete.
3147 (TARGET_DWARF_REGISTER_SPAN): Do not define.
3148 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
3149 (invalid_e500_subreg): Delete.
3150 (rs6000_legitimize_address): Always force_reg op2 as well, for
3151 paired single memory accesses.
3152 (rs6000_member_type_forces_blk): Delete.
3153 (rs6000_spe_function_arg): Delete.
3154 (rs6000_expand_unop_builtin): Delete SPE handling.
3155 (rs6000_expand_binop_builtin): Ditto.
3156 (spe_expand_stv_builtin): Delete.
3157 (bdesc_2arg_spe): Delete.
3158 (spe_expand_builtin): Delete.
3159 (spe_expand_predicate_builtin): Delete.
3160 (spe_expand_evsel_builtin): Delete.
3161 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
3162 (spe_init_builtins): Delete.
3163 (spe_func_has_64bit_regs_p): Delete.
3164 (savres_routine_name): Delete "info" parameter. Adjust callers.
3165 (rs6000_emit_stack_reset): Ditto.
3166 (rs6000_dwarf_register_span): Delete.
3167 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
3168 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
3169 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
3170 Delete.
3171 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
3172 Delete.
3173 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
3174 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
3175 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
3176 mulv2sf3, divv2sf3): Delete expanders.
3177
3178 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3179
3180 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
3181
3182 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3183
3184 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
3185 * config/rs6000/rs6000.c: Ditto.
3186
3187 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3188
3189 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
3190 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
3191 comparison_operator.
3192
3193 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3194
3195 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
3196 * config/rs6000/rs6000.opt: Ditto.
3197 * config/rs6000/t-rtems: Ditto.
3198
3199 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3200
3201 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
3202 TARGET_E500_SINGLE by 0, simplify.
3203 * config/rs6000/rs6000.c: Ditto.
3204 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
3205 (spe_build_register_parallel): Delete.
3206 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
3207 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
3208 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
3209 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
3210 (E500_CONVERT): Delete.
3211 * config/rs6000/spe.md: Remove many patterns and all define_constants.
3212
3213 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3214
3215 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
3216 * config/rs6000/dfp.md: Ditto.
3217 (negdd2, *negdd2_fpr): Merge.
3218 (absdd2, *absdd2_fpr): Merge.
3219 (negtd2, *negtd2_fpr): Merge.
3220 (abstd2, *abstd2_fpr): Merge.
3221 * config/rs6000/e500.h: Delete file.
3222 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
3223 TARGET_FPRS by 1 and simplify.
3224 * config/rs6000/rs6000-c.c: Ditto.
3225 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
3226 TARGET_DF_SPE by 0.
3227 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
3228 TARGET_DF_SPE.
3229 * config/rs6000/rs6000.md: Ditto.
3230 (floatdidf2, *floatdidf2_fpr): Merge.
3231 (move_from_CR_gt_bit): Delete.
3232 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
3233 (E500_CR_IOR_COMPARE): Delete.
3234 (All patterns that require !TARGET_FPRS): Delete.
3235 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
3236
3237 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3238
3239 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
3240
3241 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3242
3243 * graphds.c (add_edge): Intitialize edge's attached data.
3244 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
3245 pointer parameter. Call pointed function on each edge during
3246 graph traversing. Skip traversing the edge when the function
3247 returns true.
3248 (graphds_dfs, graphds_scc): Ditto.
3249 (for_each_edge): New parameter. Pass the new parameter to callback
3250 function.
3251 * graphds.h (skip_edge_callback): New function pointer type.
3252 (graphds_dfs, graphds_scc): New function pointer parameter.
3253 (graphds_edge_callback, for_each_edge): New parameter.
3254
3255 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3256
3257 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
3258 out code checking if runtime alias check is possible to below ...
3259 Call the new function.
3260 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
3261 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
3262
3263 2017-06-07 Marek Polacek <polacek@redhat.com>
3264
3265 PR sanitizer/80932
3266 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
3267 TYPE_OVERFLOW_WRAPS check.
3268
3269 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3270
3271 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
3272 if versioning is required.
3273 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
3274 peeling with the check for versioning.
3275
3276 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3277
3278 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
3279 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
3280 Set true to new parameter if new ssa variable is defined.
3281 (vect_gen_vector_loop_niters): Refactor. Set range information
3282 for the new vector loop bound variable.
3283 (vect_do_peeling): Ditto.
3284
3285 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3286
3287 * tree-affine.c (ssa.h): Include header file.
3288 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
3289 has wrapping overflow behavior.
3290
3291 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3292
3293 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
3294
3295 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3296
3297 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
3298 (tree_to_aff_combination): ... here.
3299
3300 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3301
3302 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
3303 reg_pressure model function.
3304 (ivopts_global_cost_for_size): Delete.
3305 (determine_set_costs, iv_ca_recount_cost): Call new model function
3306 ivopts_estimate_reg_pressure.
3307
3308 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3309
3310 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more expensive than udiv.
3311 Remove floating point cases from mod.
3312
3313 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3314
3315 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost): Increase idiv cost.
3316
3317 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3318
3319 * config/aarch64/aarch64.md
3320 (copysignsf3): Fix mask generation.
3321
3322 2017-06-07 Jakub Jelinek <jakub@redhat.com>
3323
3324 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
3325 TDI_gimple.
3326 (class dump_manager): Add register_dumps method.
3327 * dumpfile.c: Include langhooks.h.
3328 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
3329 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
3330 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
3331 (dump_manager::dump_register): Start with 512 entries instead of 32.
3332 (dump_manager::register_dumps): New method.
3333 * toplev.c (general_init): Instead of invoking register_dumps
3334 langhook, invoke register_dumps method on the dump manager.
3335 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
3336 TDI_generic.
3337
3338 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
3339
3340 * doc/md.texi: Clarify the restrictions on a define_insn condition.
3341 Say that # requires an associated define_split to exist, and that
3342 the define_split must be suitable for use after register allocation.
3343
3344 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3345
3346 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
3347 (compute_outgoing_frequencies): Also initialize zero counts.
3348 (find_many_sub_basic_blocks): Do not produce uninitialized profile
3349 around loops; preserve more of profile when nothing changes.
3350
3351 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
3352
3353 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
3354 here.
3355 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
3356 * config/arm/arm-cpu-cdata.h: Regenerate.
3357 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
3358 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
3359 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
3360 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
3361 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
3362 support.
3363 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
3364 support.
3365 * config/arm/t-rmprofile: Likewise.
3366 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
3367
3368 2017-06-06 David S. Miller <davem@davemloft.net>
3369
3370 PR target/80968
3371 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
3372 blockage if function uses alloca.
3373
3374 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3375
3376 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
3377 New "uid" fields to hold pretty-print IDs of group and ref.
3378 Memory references are now identified as <group_id>:<ref_id>
3379 instead of using [random] addresses.
3380 (dump_mem_details): Simplify, no functional change.
3381 (dump_mem_ref): Simplify and make output more concise.
3382 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
3383 (find_or_create_group): Initialize group uid.
3384 (record_ref): Initialize ref uid. Improve debug output.
3385 (prune_group_by_reuse, should_issue_prefetch_p,)
3386 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
3387 (mark_nontemporal_store, determine_loop_nest_reuse):
3388 Improve debug output.
3389
3390 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3391
3392 * dbgcnt.def (prefetch): New debug counter.
3393 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
3394 (schedule_prefetches): Stop issueing prefetches if debug counter
3395 tripped.
3396
3397 2017-06-06 Tom de Vries <tom@codesourcery.com>
3398
3399 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
3400 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
3401
3402 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3403
3404 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
3405 Use aarch64_reg_or_zero predicate for operand 4.
3406 (aarch64_compare_and_swap<mode> define_insn_and_split):
3407 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
3408 (aarch64_store_exclusive<mode>): Likewise for operand 2.
3409
3410 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
3411
3412 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
3413 (arm_compute_save_core_reg_mask): This.
3414 (thumb1_compute_save_reg_mask): Rename into ...
3415 (thumb1_compute_save_core_reg_mask): This.
3416 (arm_compute_save_reg0_reg12_mask): Adapt comment.
3417 (arm_compute_frame_layout): Likewise.
3418
3419 2017-06-06 Richard Biener <rguenther@suse.de>
3420
3421 PR tree-optimization/80974
3422 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
3423 keep or clear leaders SSA info.
3424
3425 2017-06-06 Tom de Vries <tom@codesourcery.com>
3426
3427 * config/nvptx/nvptx.c (split_mode_p): New function.
3428 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
3429
3430 2017-06-06 Tom de Vries <tom@codesourcery.com>
3431
3432 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
3433
3434 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3435
3436 PR bootstrap/80978
3437 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
3438 profile.
3439
3440 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3441
3442 * shrink-wrap.c (handle_simple_exit): Update profile.
3443 (try_shrink_wrapping): Upate profile.
3444
3445 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3446
3447 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
3448 (tree_guess_outgoing_edge_probabilities): New.
3449 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
3450 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
3451
3452 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3453
3454 * ipa-split.c (split_function): Initialize return bb profile.
3455
3456 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3457
3458 * profile.c (compute_branch_probabilities): Also initialize
3459 EXIT_BLOCK profile.
3460
3461 2017-06-06 Richard Biener <rguenther@suse.de>
3462
3463 PR tree-optimization/80928
3464 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
3465 (vect_analyze_loop_operations): Properly guard analysis for
3466 pure SLP case.
3467 (vect_transform_loop): Likewise.
3468 (vect_analyze_loop_2): Also reset SLP type on PHIs.
3469 (vect_model_induction_cost): Do not cost for pure SLP.
3470 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
3471 of induction in inner loop vectorization.
3472 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
3473 (vect_get_and_check_slp_defs): Handle vect_induction_def.
3474 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
3475 recursion.
3476 (vect_analyze_slp_cost_1): Cost induction.
3477 (vect_detect_hybrid_slp_stmts): Handle PHIs.
3478 (vect_get_slp_vect_defs): Likewise.
3479 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
3480 (vect_transform_stmt): Handle SLP reductions.
3481 * tree-vectorizer.h (vectorizable_induction): Adjust.
3482
3483 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3484
3485 * config/rs6000/rs6000.c (make_resolver_func): Update
3486 init_lowered_empty_function call.
3487
3488 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
3489
3490 * doc/invoke.texi: Document the -fprofile-abs-path option.
3491 * common.opt (fprofile-abs-path): New option.
3492 * gcov-io.h (gcov_write_filename): Declare.
3493 * gcov-io.c (gcov_write_filename): New function.
3494 * coverage.c (coverage_begin_function): Use gcov_write_filename.
3495 * profile.c (output_location): Likewise.
3496
3497 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3498
3499 * shring-wrap.c: Revert accidental commit.
3500
3501 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
3502
3503 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
3504
3505 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3506
3507 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
3508 new edge.
3509 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
3510 profile in callgraph edge.
3511 * profile-count.h (apply_probability): If THIS is 0, then result is 0
3512 (apply_scale): Likewise.
3513 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
3514 Also scale profile when inlining function with zero profile.
3515 (initialize_cfun): Update exit block profile even when it is zero.
3516 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
3517 when profile is read.
3518
3519 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3520
3521 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
3522 (CLONE_*): New constants to define the processors we can generate
3523 code for with the target_clone attribute.
3524 (rs6000_clone_map): New array to identify which clone processors
3525 the current program is running on.
3526 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
3527 target_clone attribute.
3528 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
3529 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
3530 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
3531 (cpu_expand_builtin): Add support for target_clone attribute.
3532 (rs6000_valid_attribute_p): Allow "default" attribute.
3533 (get_decl_name): New debug function to simplify printing the
3534 current function name in debugging statements.
3535 (rs6000_clone_priority): New functions to support the target_clone
3536 attribute, and be able to generate code to switch between ISA 2.05
3537 through ISA 3.0 (power6 through power9).
3538 (rs6000_compare_version_priority): Likewise.
3539 (rs6000_get_function_versions_dispatcher): Likewise.
3540 (make_resolver_func): Likewise.
3541 (add_condition_to_bb): Likewise.
3542 (dispatch_function_versions): Likewise.
3543 (rs6000_generate_version_dispatcher_body): Likewise.
3544 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
3545 (fusion_gpr_load_p): Fix a spacing issue.
3546 * doc/extend.texi (Common Function Attributes): Document that the
3547 PowerPC supports the target_clone attribute.
3548
3549 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
3550
3551 * config/arm/arm.h: explain F symbol found in description of ARM
3552 register allocation in its legend.
3553
3554 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3555
3556 * config/mips/frame-header-opt.c: Include profile-count.h.
3557 * config/riscv/riscv.c: Include profile-count.h
3558
3559 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3560
3561 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
3562 update profile.
3563 (sm_set_flag_if_changed): Add bbs field.
3564 (execute_sm_if_changed_flag_set): Pass BBS.
3565 (execute_sm): Update.
3566
3567 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3568
3569 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
3570 New pattern.
3571
3572 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3573
3574 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
3575 (peephole2): New peephole2 to emit the above.
3576 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
3577
3578 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3579
3580 * config/aarch64/aarch64.c (define_peephole2 above
3581 *sub_<shift>_<mode>): New peephole.
3582
3583 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
3584
3585 * config/i386/i386.c (make_resolver_func): Update.
3586 * Makefile.in: Add profile-count.h and profile-count.o
3587 * auto-profile.c (afdo_indirect_call): Update to new API.
3588 (afdo_set_bb_count): Update.
3589 (afdo_propagate_edge): Update.
3590 (afdo_propagate_circuit): Update.
3591 (afdo_calculate_branch_prob): Update.
3592 (afdo_annotate_cfg): Update.
3593 * basic-block.h: Include profile-count.h
3594 (struct edge_def): Turn count to profile_count.
3595 (struct basic_block_def): Likewie.
3596 (REG_BR_PROB_BASE): Move to profile-count.h
3597 (RDIV): Move to profile-count.h
3598 * bb-reorder.c (max_entry_count): Turn to profile_count.
3599 (find_traces): Update.
3600 (rotate_loop):Update.
3601 (connect_traces):Update.
3602 (sanitize_hot_paths):Update.
3603 * bt-load.c (migrate_btr_defs): Update.
3604 * cfg.c (RDIV): Remove.
3605 (init_flow): Use alloc_block.
3606 (alloc_block): Uninitialize count.
3607 (unchecked_make_edge): Uninitialize count.
3608 (check_bb_profile): Update.
3609 (dump_edge_info): Update.
3610 (dump_bb_info): Update.
3611 (update_bb_profile_for_threading): Update.
3612 (scale_bbs_frequencies_int): Update.
3613 (scale_bbs_frequencies_gcov_type): Update.
3614 (scale_bbs_frequencies_profile_count): New.
3615 * cfg.h (update_bb_profile_for_threading): Update.
3616 (scale_bbs_frequencies_profile_count): Declare.
3617 * cfgbuild.c (compute_outgoing_frequencies): Update.
3618 (find_many_sub_basic_blocks): Update.
3619 * cfgcleanup.c (try_forward_edges): Update.
3620 (try_crossjump_to_edge): Update.
3621 * cfgexpand.c (expand_gimple_tailcall): Update.
3622 (construct_exit_block): Update.
3623 * cfghooks.c (verify_flow_info): Update.
3624 (dump_bb_for_graph): Update.
3625 (split_edge): Update.
3626 (make_forwarder_block): Update.
3627 (duplicate_block): Update.
3628 (account_profile_record): Update.
3629 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
3630 (get_estimated_loop_iterations): Update.
3631 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
3632 (single_likely_exit): Update.
3633 * cfgloopmanip.c (scale_loop_profile): Update.
3634 (loopify): Update.
3635 (set_zero_probability): Update.
3636 (lv_adjust_loop_entry_edge): Update.
3637 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
3638 (purge_dead_edges): Update.
3639 (rtl_account_profile_record): Update.
3640 * cgraph.c (cgraph_node::create): Uninitialize count.
3641 (symbol_table::create_edge): Uninitialize count.
3642 (cgraph_update_edges_for_call_stmt_node): Update.
3643 (cgraph_edge::dump_edge_flags): Update.
3644 (cgraph_node::dump): Update.
3645 (cgraph_edge::maybe_hot_p): Update.
3646 * cgraph.h: Include profile-count.h
3647 (create_clone), create_edge, create_indirect_edge): Update.
3648 (cgraph_node): Turn count to profile_count.
3649 (cgraph_edge0: Likewise.
3650 (make_speculative, clone): Update.
3651 (create_edge): Update.
3652 (init_lowered_empty_function): Update.
3653 * cgraphclones.c (cgraph_edge::clone): Update.
3654 (duplicate_thunk_for_node): Update.
3655 (cgraph_node::create_clone): Update.
3656 * cgraphunit.c (cgraph_node::analyze): Update.
3657 (cgraph_node::expand_thunk): Update.
3658 * final.c (dump_basic_block_info): Update.
3659 * gimple-streamer-in.c (input_bb): Update.
3660 * gimple-streamer-out.c (output_bb): Update.
3661 * graphite.c (print_global_statistics): Update.
3662 (print_graphite_scop_statistics): Update.
3663 * hsa-brig.c: Include basic-block.h.
3664 * hsa-dump.c: Include basic-block.h.
3665 * hsa-gen.c (T sum_slice): Update.
3666 (convert_switch_statements):Update.
3667 * hsa-regalloc.c: Include basic-block.h.
3668 * ipa-chkp.c (chkp_produce_thunks): Update.
3669 * ipa-cp.c (struct caller_statistics): Update.
3670 (init_caller_stats): Update.
3671 (gather_caller_stats): Update.
3672 (ipcp_cloning_candidate_p): Update.
3673 (good_cloning_opportunity_p): Update.
3674 (get_info_about_necessary_edges): Update.
3675 (dump_profile_updates): Update.
3676 (update_profiling_info): Update.
3677 (update_specialized_profile): Update.
3678 (perhaps_add_new_callers): Update.
3679 (decide_about_value): Update.
3680 (ipa_cp_c_finalize): Update.
3681 * ipa-devirt.c (struct odr_type_warn_count): Update.
3682 (struct decl_warn_count): Update.
3683 (struct final_warning_record): Update.
3684 (possible_polymorphic_call_targets): Update.
3685 (ipa_devirt): Update.
3686 * ipa-fnsummary.c (redirect_to_unreachable): Update.
3687 * ipa-icf.c (sem_function::merge): Update.
3688 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
3689 * ipa-inline.c (compute_uninlined_call_time): Update.
3690 (compute_inlined_call_time): Update.
3691 (want_inline_small_function_p): Update.
3692 (want_inline_self_recursive_call_p): Update.
3693 (edge_badness): Update.
3694 (lookup_recursive_calls): Update.
3695 (recursive_inlining): Update.
3696 (inline_small_functions): Update.
3697 (dump_overall_stats): Update.
3698 (dump_inline_stats): Update.
3699 * ipa-profile.c (ipa_profile_generate_summary): Update.
3700 (ipa_propagate_frequency): Update.
3701 (ipa_profile): Update.
3702 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
3703 * ipa-utils.c (ipa_merge_profiles): Update.
3704 * loop-doloop.c (doloop_modify): Update.
3705 * loop-unroll.c (report_unroll): Update.
3706 (unroll_loop_runtime_iterations): Update.
3707 * lto-cgraph.c (lto_output_edge): Update.
3708 (lto_output_node): Update.
3709 (input_node): Update.
3710 (input_edge): Update.
3711 (merge_profile_summaries): Update.
3712 * lto-streamer-in.c (input_cfg): Update.
3713 * lto-streamer-out.c (output_cfg): Update.
3714 * mcf.c (create_fixup_graph): Update.
3715 (adjust_cfg_counts): Update.
3716 (sum_edge_counts): Update.
3717 * modulo-sched.c (sms_schedule): Update.
3718 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
3719 * predict.c (maybe_hot_count_p): Update.
3720 (probably_never_executed): Update.
3721 (dump_prediction): Update.
3722 (combine_predictions_for_bb): Update.
3723 (propagate_freq): Update.
3724 (handle_missing_profiles): Update.
3725 (counts_to_freqs): Update.
3726 (rebuild_frequencies): Update.
3727 (force_edge_cold): Update.
3728 * predict.h: Include profile-count.h
3729 (maybe_hot_count_p, counts_to_freqs): UPdate.
3730 * print-rtl-function.c: Do not include cfg.h
3731 * print-rtl.c: Include basic-block.h
3732 * profile-count.c: New file.
3733 * profile-count.h: New file.
3734 * profile.c (is_edge_inconsistent): Update.
3735 (correct_negative_edge_counts): Update.
3736 (is_inconsistent): Update.
3737 (set_bb_counts): Update.
3738 (read_profile_edge_counts): Update.
3739 (compute_frequency_overlap): Update.
3740 (compute_branch_probabilities): Update; Initialize and deinitialize
3741 gcov_count tables.
3742 (branch_prob): Update.
3743 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
3744 (edge_gcov_count): New.
3745 (bb_gcov_count): New.
3746 * shrink-wrap.c (try_shrink_wrapping): Update.
3747 * tracer.c (better_p): Update.
3748 * trans-mem.c (expand_transaction): Update.
3749 (ipa_tm_insert_irr_call): Update.
3750 (ipa_tm_insert_gettmclone_call): Update.
3751 * tree-call-cdce.c: Update.
3752 * tree-cfg.c (gimple_duplicate_sese_region): Update.
3753 (gimple_duplicate_sese_tail): Update.
3754 (gimple_account_profile_record): Update.
3755 (execute_fixup_cfg): Update.
3756 * tree-inline.c (copy_bb): Update.
3757 (copy_edges_for_bb): Update.
3758 (initialize_cfun): Update.
3759 (freqs_to_counts): Update.
3760 (copy_cfg_body): Update.
3761 (expand_call_inline): Update.
3762 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
3763 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
3764 (try_unroll_loop_completely): Update.
3765 (try_peel_loop): Update.
3766 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
3767 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
3768 * tree-ssa-loop-split.c (connect_loops): Update.
3769 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
3770 * tree-ssa-reassoc.c (branch_fixup): Update.
3771 * tree-ssa-tail-merge.c (replace_block_by): Update.
3772 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
3773 (compute_path_counts): Update.
3774 (update_profile): Update.
3775 (recompute_probabilities): Update.
3776 (update_joiner_offpath_counts): Update.
3777 (estimated_freqs_path): Update.
3778 (freqs_to_counts_path): Update.
3779 (clear_counts_path): Update.
3780 (ssa_fix_duplicate_block_edges): Update.
3781 (duplicate_thread_path): Update.
3782 * tree-switch-conversion.c (case_bit_test_cmp): Update.
3783 (struct switch_conv_info): Update.
3784 * tree-tailcall.c (decrease_profile): Update.
3785 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
3786 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
3787 * value-prof.c (check_counter): Update.
3788 (gimple_divmod_fixed_value): Update.
3789 (gimple_mod_pow2): Update.
3790 (gimple_mod_subtract): Update.
3791 (gimple_ic_transform): Update.
3792 (gimple_stringop_fixed_value): Update.
3793 * value-prof.h (gimple_ic): Update.
3794
3795 2017-06-02 Carl Love <cel@us.ibm.com>
3796
3797 * config/rs6000/rs6000-c: Add support for built-in functions
3798 vector double vec_doublee (vector signed int);
3799 vector double vec_doublee (vector unsigned int);
3800 vector double vec_doublee (vector float);
3801 vector double vec_doubleh (vector signed int);
3802 vector double vec_doubleh (vector unsigned int);
3803 vector double vec_doubleh (vector float);
3804 vector double vec_doublel (vector signed int);
3805 vector double vec_doublel (vector unsigned int);
3806 vector double vec_doublel (vector float);
3807 vector double vec_doubleo (vector signed int);
3808 vector double vec_doubleo (vector unsigned int);
3809 vector double vec_doubleo (vector float);.
3810 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
3811 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
3812 UNS_DOUBLEL.
3813 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
3814 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
3815 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
3816 VS_sxwsp.
3817 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
3818 vec_doublel, vec_doubleh.
3819 * doc/extend.texi: Update the built-in documentation file for the
3820 new built-in functions.
3821
3822 2017-06-02 David Malcolm <dmalcolm@redhat.com>
3823
3824 PR jit/80954
3825 * ipa-inline-analysis.c (free_growth_caches): Set
3826 edge_removal_hook_holder to NULL after removing it.
3827
3828 2017-06-02 Sudakshina Das <sudi.das@arm.com>
3829
3830 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
3831 comparision with zero.
3832
3833 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
3834 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3835 for early expansion of vec_min and vec_max builtins.
3836 (builtin_function_type): Add min/max unsigned variants to those
3837 identified as having unsigned arguments.
3838
3839 2017-06-02 Olivier Hainque <hainque@adacore.com>
3840
3841 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
3842
3843 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3844
3845 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
3846 Use VALL_F16 iterator rather than VALL.
3847
3848 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3849
3850 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
3851 Emit CBNZ inside loop when doing a strong exchange and comparing
3852 against zero. Generate the CC flags after the loop.
3853
3854 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
3855
3856 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
3857 (dl_section_ref): New.
3858 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
3859 On AIX, append an expression to subtract the size of the
3860 section length to dl_section_ref.
3861
3862 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
3863
3864 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3865 for early expansion of vector absolute builtins.
3866
3867 2017-06-02 Richard Biener <rguenther@suse.de>
3868
3869 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
3870 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
3871
3872 2017-06-02 Richard Biener <rguenther@suse.de>
3873
3874 PR tree-optimization/80948
3875 * tree-tailcall.c (find_tail_calls): Track stmts to move in
3876 stmt order as well.
3877
3878 2017-06-02 Richard Biener <rguenther@suse.de>
3879
3880 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
3881 PHIs are ok.
3882 * tree-vect-stmts.c (process_use): Do not mark backedge defs
3883 for inductions as relevant.
3884
3885 2017-06-02 Richard Biener <rguenther@suse.de>
3886
3887 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
3888 (vectorizable_induction): ... this. Remove dead code.
3889
3890 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
3891
3892 * builtins. (expand_builtin_alloca): Remove second parameter and
3893 infer its value from the first parameter instead.
3894 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
3895
3896 2017-06-02 Jakub Jelinek <jakub@redhat.com>
3897
3898 PR rtl-optimization/80903
3899 * loop-doloop.c (add_test): Unshare sequence.
3900
3901 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3902
3903 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
3904
3905 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3906
3907 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
3908 static.
3909 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
3910 xlogue_layout::get_instance, logue_layout::xlogue_layout,
3911 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
3912 (xlogue_layout::get_stub_rtx): Make static.
3913 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
3914 (xlogue_layout::compute_stub_managed_regs): Rename to...
3915 (xlogue_layout::count_stub_managed_regs): ...this.
3916 (xlogue_layout::is_stub_managed_reg): New function.
3917 (xlogue_layout::m_stub_names): Rename to...
3918 (xlogue_layout::s_stub_names): ...this, make static.
3919 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
3920 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
3921 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
3922 xlogue_layout::s_stub_names): Instantiate statics.
3923 (stub_managed_regs): Remove.
3924 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
3925 (disable_call_ms2sysv_xlogues): Rename to...
3926 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
3927 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
3928 warning logic.
3929 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
3930 change after reload_completed.
3931 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
3932 directly.
3933 (ix86_expand_prologue): Likewise.
3934 (ix86_expand_epilogue): Likewise.
3935 (ix86_expand_split_stack_prologue): Likewise.
3936 (ix86_compute_frame_layout): Remove frame parameter ...
3937 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
3938 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
3939 only if necessary.
3940 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
3941 (ix86_frame): Move from here ...
3942 * config/i386/i386.h (ix86_frame): ... to here.
3943 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
3944 complete ix86_frame data structure instead. Remove some_ld_name.
3945
3946 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
3947
3948 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
3949 symbols that hold a DECL_VALUE_EXPR.
3950
3951 2017-06-01 Martin Jambor <mjambor@suse.cz>
3952
3953 PR tree-optimization/80898
3954 * tree-sra.c (process_subtree_disqualification): Removed.
3955 (disqualify_candidate): Do not acll
3956 process_subtree_disqualification.
3957 (subtree_mark_written_and_enqueue): New function.
3958 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
3959 RHS has been disqualified and re-queue LHS if necessary. Apart
3960 from that, ignore disqualified RHS.
3961
3962 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3963
3964 * config/s390/s390.c (s390_emit_epilogue): Disable early return
3965 address fetch for z10 or later.
3966
3967 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3968
3969 * config/arc/arc.md (tst_movb): Add guard when splitting.
3970
3971 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3972
3973 * config/arc/arc.c (arc_can_eliminate): Test against
3974 arc_frame_pointer_needed.
3975
3976 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3977
3978 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
3979 to prevent store reordering.
3980 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
3981 (type): Add block type.
3982 (stack_tie): Define special instruction to be used in
3983 expand_prologue.
3984
3985 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3986
3987 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
3988 constraint. It is not valid for the pattern.
3989 (noncommutative_binary_comparison): Likewise.
3990
3991 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3992
3993 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
3994 scaled addresses.
3995
3996 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
3997
3998 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
3999 be used by the reg-alloc.
4000
4001 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4002
4003 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
4004 reg-alloc when having mul64 or mul32x16 instructions.
4005 (mulsidi3): Likewise.
4006 (umulsidi3): Likewise.
4007 (mulsi32x16): New pattern.
4008 (mulsi64): Likewise.
4009 (mulsidi64): Likewise.
4010 (umulsidi64): Likewise.
4011 (MUL32x16_REG): Define.
4012 (mul64_600): Use MUL32x16_REG.
4013 (mac64_600): Likewise.
4014 (umul64_600): Likewise.
4015 (umac64_600): Likewise.
4016
4017 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4018
4019 * config/arc/arc.md (mulsi3_700): Make it commutative.
4020
4021 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
4022
4023 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
4024 type for movstouw.
4025 (*sign_extendsidi2_insn): Likewise for movstosw.
4026
4027 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
4028
4029 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
4030 the type of the input discriminant value. Convert the
4031 discriminant value of signedness vary.
4032
4033 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
4034
4035 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
4036 Add to -Wall section.
4037
4038 2017-06-01 Richard Biener <rguenther@suse.de>
4039
4040 PR middle-end/66313
4041 * fold-const.c (fold_plusminus_mult_expr): If the factored
4042 factor may be zero use a wrapping type for the inner operation.
4043 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
4044 and handle moved defs.
4045 (process_assignment): Properly guard the unary op case. Return a
4046 tri-state indicating that moving the stmt before the call may allow
4047 to continue. Pass through to_move.
4048 (find_tail_calls): Handle moving unrelated defs before
4049 the call.
4050
4051 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
4052
4053 PR target/80618
4054 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
4055 splitter result in the canonical way.
4056
4057 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
4058
4059 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
4060 also for 32bit target. Update insn attributes.
4061 (zero-extendsidi2 splitter): Allow all registers for operand 1.
4062
4063 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
4064
4065 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
4066 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
4067 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
4068 (_mm_maskz_min_ss): New intrinsics.
4069
4070 2017-05-31 Martin Liska <mliska@suse.cz>
4071
4072 * tree-vect-loop.c (vect_create_epilog_for_reduction):
4073 Change comment style to one we normally use.
4074 (vectorizable_reduction): Likewise.
4075 (vectorizable_induction): Likewise.
4076 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4077 (vectorizable_call): Likewise.
4078 (vectorizable_simd_clone_call): Likewise.
4079 (vectorizable_conversion): Likewise.
4080 (vectorizable_assignment): Likewise.
4081 (vectorizable_shift): Likewise.
4082 (vectorizable_operation): Likewise.
4083 (vectorizable_store): Likewise.
4084 (vectorizable_load): Likewise.
4085 * tree-vectorizer.h: Likewise.
4086
4087 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
4088
4089 * passes.c (emergency_dump_function): New.
4090 * tree-pass.h (emergency_dump_function): Declare.
4091 * plugin.c (plugins_internal_error_function): Remove.
4092 * plugin.h (plugins_internal_error_function): Remove declaration.
4093 * toplev.c (internal_error_function): New static function. Use it...
4094 (general_init): ...here.
4095
4096 2017-05-31 Graham Markall <graham.markall@embecosm.com>
4097
4098 * config/arc/arc.c (arc_print_operand): Handle constant operands.
4099 (arc_rtx_costs): Add costs for new patterns.
4100 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
4101 * config/arc/predicates.md: Add _1_2_3_operand predicate.
4102
4103 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4104
4105 * tree-ssa-strlen.c (get_next_strinfo): New function.
4106 (get_stridx_plus_constant): Use it.
4107 (zero_length_string): Likewise.
4108 (adjust_related_strinfos): Likewise.
4109 (adjust_last_stmt): Likewise.
4110
4111 2017-05-31 Richard Biener <rguenther@suse.de>
4112
4113 PR target/80880
4114 * config/i386/i386.c (ix86_expand_builtin): Remove assert
4115 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
4116
4117 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4118
4119 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
4120 loop_vinfo argument and use of dependence distance vectors.
4121 Check instead whether the two references differ only in their
4122 initial value and assume that they have the same alignment if the
4123 difference is a multiple of the vector alignment.
4124 (vect_analyze_data_refs_alignment): Update call accordingly.
4125
4126 2017-05-31 Martin Liska <mliska@suse.cz>
4127
4128 PR target/79155
4129 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
4130
4131 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4132
4133 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
4134 (create_intersect_range_checks): Move from ...
4135 * tree-data-ref.c (create_intersect_range_checks_index)
4136 (create_intersect_range_checks): ... to here.
4137 (create_runtime_alias_checks): New function factored from ...
4138 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
4139 here. Call above function.
4140 * tree-data-ref.h (create_runtime_alias_checks): New function.
4141
4142 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4143
4144 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
4145 segment length for dr_b and compute it in wide_int.
4146
4147 2017-05-31 Richard Biener <rguenther@suse.de>
4148
4149 PR tree-optimization/80906
4150 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
4151 and pass through iv_map.
4152 (copy_bb_and_scalar_dependences): Adjust.
4153 (translate_pending_phi_nodes): Likewise.
4154 (copy_loop_close_phi_args): Handle code-generating IVs instead
4155 of ICEing.
4156
4157 2017-05-30 David Malcolm <dmalcolm@redhat.com>
4158
4159 * diagnostic-color.c (color_dict): Add "type-diff".
4160 (parse_gcc_colors): Update comment.
4161 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4162 -fdiagnostics-show-template-tree and -fno-elide-type.
4163 (GCC_COLORS): Add type-diff to example.
4164 (type-diff=): New.
4165 (-fdiagnostics-show-template-tree): New.
4166 (-fno-elide-type): New.
4167 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
4168 the pp_format_decoder callback. Call any m_format_postprocessor's
4169 "handle" method.
4170 (pretty_printer::pretty_printer): Initialize
4171 m_format_postprocessor.
4172 (pretty_printer::~pretty_printer): Delete any
4173 m_format_postprocessor.
4174 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
4175 (class format_postprocessor): New class.
4176 (struct pretty_printer::format_decoder): Document the new parameters.
4177 (struct pretty_printer::m_format_postprocessor): New field.
4178 * tree-diagnostic.c (default_tree_printer): Update for new
4179 bool and const char ** params.
4180 * tree-diagnostic.h (default_tree_printer): Likewise.
4181
4182 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
4183
4184 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
4185 (lwa_operand): Delete rs6000_gen_cell_microcode test.
4186 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
4187 rs6000_gen_cell_microcode code.
4188 (rs6000_final_prescan_insn): Delete.
4189 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
4190 "warn-cell-microcode" entries.
4191 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
4192 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
4193 throughout. Change cc_reg_not_micro_cr0_operand to
4194 cc_reg_not_cr0_operand throughout.
4195 (*extendhi<mode>2_noload): Delete.
4196 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
4197 (mwarn-cell-microcode): Delete.
4198 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
4199 -mgen-cell-microcode and -mwarn-cell-microcode.
4200
4201 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
4202
4203 PR target/80833
4204 * config/i386/constraints.md (Yd): New constraint.
4205 (Ye): Ditto.
4206 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
4207 and (?Yd, r) alternatives. Update insn attributes.
4208 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
4209 and (?*Yd, r) alternatives. Update insn attributes.
4210 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
4211
4212 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
4213
4214 * gimplify.c (gimplify_modify_expr): Don't create a
4215 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
4216 function.
4217
4218 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
4219
4220 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
4221
4222 2017-05-30 Richard Biener <rguenther@suse.de>
4223
4224 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
4225 and reduc_def fields.
4226 (STMT_VINFO_REDUC_TYPE): New define.
4227 (STMT_VINFO_REDUC_DEF): Likewise.
4228 (vect_force_simple_reduction): Adjust prototype.
4229 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
4230 (vect_is_simple_reduction): Remove check_reduction argument.
4231 (vect_force_simple_reduction): Adjust and set
4232 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4233 (vectorizable_reduction): Do not re-do reduction analysis
4234 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4235 * tree-parloops.c (gather_scalar_reductions): Adjust.
4236
4237 2017-05-30 Richard Biener <rguenther@suse.de>
4238
4239 PR middle-end/80901
4240 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
4241 split_edge code.
4242
4243 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
4244
4245 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
4246 Introduce unknown_misalignment parameter and remove vf.
4247 (vect_peeling_hash_get_lowest_cost):
4248 Pass unknown_misalignment parameter.
4249 (vect_enhance_data_refs_alignment):
4250 Fix unsupportable data ref treatment.
4251
4252 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4253
4254 * tree-vect-data-refs.c (vect_get_data_access_cost):
4255 Workaround for SLP handling.
4256 (vect_enhance_data_refs_alignment):
4257 Compute costs for doing no peeling at all, compare to the best
4258 peeling costs so far and avoid peeling if cheaper.
4259
4260 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4261
4262 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
4263 Return peeling info and set costs to zero for unlimited cost
4264 model.
4265 (vect_enhance_data_refs_alignment): Also inspect all datarefs
4266 with unknown misalignment. Compute and costs for unknown
4267 misalignment, compare them to the costs for known misalignment
4268 and choose the cheapest for peeling.
4269
4270 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4271
4272 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
4273 (vect_get_peeling_costs_all_drs): Create function.
4274 (vect_peeling_hash_get_lowest_cost):
4275 Use vect_get_peeling_costs_all_drs.
4276 (vect_peeling_supportable): Create function.
4277 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
4278
4279 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4280
4281 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
4282 DR_HAS_NEGATIVE_STEP.
4283 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
4284 (vect_enhance_data_refs_alignment): Use.
4285 (vect_duplicate_ssa_name_ptr_info): Use.
4286 * tree-vectorizer.h (dr_misalignment): Use.
4287 (known_alignment_for_access_p): Use.
4288
4289 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
4290
4291 PR target/78838
4292 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
4293 .lowtext.
4294 (has_section_name): New function.
4295
4296 2017-05-30 Martin Liska <mliska@suse.cz>
4297
4298 PR other/80909
4299 * auto-profile.c (get_function_decl_from_block): Fix
4300 parenthesis.
4301
4302 2017-05-30 Richard Biener <rguenther@suse.de>
4303
4304 PR middle-end/80876
4305 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
4306
4307 2017-05-30 Martin Liska <mliska@suse.cz>
4308
4309 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
4310 * dumpfile.h (struct dump_file_info): Remove ctors.
4311
4312 2017-05-30 Martin Liska <mliska@suse.cz>
4313
4314 * predict.def: Fix GNU coding style.
4315
4316 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
4317
4318 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
4319 Mark 'to' argument with ATTRIBUTE_UNUSED.
4320
4321 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
4322
4323 * config/xtensa/xtensa.c (xtensa_emit_call): Use
4324 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
4325 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
4326 format string.
4327
4328 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
4329
4330 * doc/install.texi (Options specification): Restore entry of
4331 --enable-sjlj-exceptions.
4332
4333 2017-05-27 Michael Eager <eager@eagercon.com>
4334
4335 Revert:
4336 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
4337
4338 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
4339
4340 * config/microblaze/microblaze.h
4341 (FIXED_REGISTERS): Update in macro.
4342 (CALL_USED_REGISTERS): Update in macro.
4343
4344 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
4345
4346 * doc/install.texi: Add links to macOS binary distributions.
4347
4348 2017-05-27 Jakub Jelinek <jakub@redhat.com>
4349
4350 PR bootstrap/80887
4351 Revert:
4352 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4353
4354 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
4355
4356 2017-05-26 Martin Liska <mliska@suse.cz>
4357
4358 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
4359
4360 2017-05-26 Martin Liska <mliska@suse.cz>
4361
4362 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
4363 always leading ';; '.
4364 (dump_bb_info): Likewise.
4365 (brief_dump_cfg): Likewise.
4366 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
4367 * dumpfile.c: Remove usage of TDF_VERBOSE.
4368 * dumpfile.h (enum dump_kind): Likewise.
4369 (dump_gimple_bb_header): Do not use TDF_COMMENT.
4370 * print-tree.c (debug_verbose): Remove.
4371 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
4372 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
4373 * tree-diagnostic.c (default_tree_printer): Replace
4374 TDF_DIAGNOSTIC with TDF_SLIM.
4375
4376 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4377
4378 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
4379 in parameter loop, rather than loop_vinfo.
4380 (create_intersect_range_checks): Ditto.
4381 (vect_create_cond_for_alias_checks): Update call to above functions.
4382
4383 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4384
4385 PR tree-optimization/80815
4386 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
4387 for merging runtime alias checks. Handle negative DR_STEPs.
4388
4389 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4390
4391 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
4392 Move from ...
4393 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
4394 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
4395 out code pruning runtime alias checks.
4396 * tree-data-ref.c (prune_runtime_alias_test_list): New function
4397 factored out from above.
4398 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
4399 Move from ...
4400 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
4401 ... to here.
4402 (prune_runtime_alias_test_list): New decalaration.
4403
4404 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4405
4406 * tree-vect-data-refs.c (compare_tree): Rename and move ...
4407 * tree-data-ref.c (data_ref_compare_tree): ... to here.
4408 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
4409 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
4410 (operator==, comp_dr_with_seg_len_pair): Ditto.
4411 (vect_prune_runtime_alias_test_list): Ditto.
4412
4413 2017-05-26 Martin Liska <mliska@suse.cz>
4414
4415 PR ipa/80663
4416 * params.def: Bound partial-inlining-entry-probability param.
4417
4418 2017-05-26 Marek Polacek <polacek@redhat.com>
4419
4420 PR sanitizer/80875
4421 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
4422 can be negated.
4423
4424 2017-05-26 Richard Biener <rguenther@suse.de>
4425
4426 PR tree-optimization/80842
4427 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
4428 value.
4429
4430 2017-05-26 Richard Biener <rguenther@suse.de>
4431
4432 PR tree-optimization/80844
4433 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
4434
4435 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
4436
4437 * doc/md.texi (Machine Constraints): Update x86 family
4438 machine constraints section to match 'config/i386/constraints.md'.
4439
4440 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
4441
4442 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
4443
4444 2017-05-25 Nathan Sidwell <nathan@acm.org>
4445
4446 * doc/invoke.texi (--enable-languages): Update documentation.
4447
4448 2017-05-25 Martin Liska <mliska@suse.cz>
4449
4450 * dumpfile.c: Add TDF_FOLDING.
4451 * dumpfile.h (enum dump_kind): Likewise.
4452 * genmatch.c (dt_simplify::gen_1): Use it.
4453
4454 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4455
4456 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
4457
4458 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4459
4460 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
4461 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
4462
4463 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4464
4465 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
4466 * match.pd (X == C): Rewrite it here.
4467 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
4468 with_certain_nonzero_bits2): New predicates.
4469 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
4470
4471 2017-05-24 Nathan Sidwell <nathan@acm.org>
4472
4473 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
4474 avoid warning.
4475
4476 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
4477 warning.
4478
4479 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
4480
4481 * config/powerpcspe: New port. Files are copied from the rs6000
4482 port, with "rs6000" in filenames replaced by "powerpcspe".
4483
4484 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
4485
4486 PR rtl-optimization/80754
4487 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
4488
4489 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
4490
4491 * config/sparc/sparc.md (length): Return the correct value for -mflat
4492 sibcalls to match output_sibcall.
4493
4494 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
4495
4496 PR bootstrap/80860
4497 PR bootstrap/80843
4498 * config/rs6000/rs6000.c (struct machine_function): Add new field
4499 n_components.
4500 (rs6000_get_separate_components): Init that field, use it.
4501 (rs6000_components_for_bb): Use the field.
4502
4503 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4504
4505 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
4506
4507 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
4508
4509 PR middle-end/80823
4510 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
4511
4512 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4513
4514 PR target/80725
4515 * config/s390/s390.c (s390_check_qrst_address): Check incoming
4516 address against address_operand predicate.
4517 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
4518
4519 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
4520
4521 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
4522 parameters passed indirectly.
4523
4524 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
4525
4526 * config/i386/i386.md (*movdi_internal): Remove SSE4
4527 alternative 18 (?r, *v). Update insn attributes.
4528 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
4529 Update insn attributes.
4530 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
4531 Update insn attributes.
4532 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
4533 alternative 1 (r, v). Remove isa attribute.
4534 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
4535 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
4536 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
4537
4538 2017-05-23 Tom de Vries <tom@codesourcery.com>
4539
4540 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
4541 dg-line directive.
4542
4543 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4544
4545 * cgraphunit.c (symbol_table::process_new_functions): Update.
4546 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
4547 (inline_generate_summary): Rename to ...
4548 (ipa_fn_summary_generate): ... this one.
4549 (inline_read_summary): Rename to ...
4550 (ipa_fn_summary_read): ... this one.
4551 (inline_write_summary): Rename to ...
4552 (ipa_fn_summary_write): ... this one.
4553 (inline_free_summary): Rename to ...
4554 (ipa_free_fn_summary): ... this one.
4555 (pass_data_local_fn_summary, pass_local_fn_summary,
4556 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
4557 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
4558 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
4559 make_pass_ipa_fn_summary): New.
4560 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
4561 inline_write_summary, inline_free_summary): Remove.
4562 (ipa_free_fn_summary) : New.
4563 * ipa-inline.c (ipa_inline): Update.
4564 (pass_ipa_inline): Do not generate summaries.
4565 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
4566 Remove.
4567 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
4568 and add pass_ipa_fn_summary.
4569 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
4570 New.
4571 (make_pass_inline_parameters): Remove.
4572
4573 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
4574
4575 * omp-low.c (struct omp_context): Remove "default_kind" member.
4576 Adjust all users.
4577
4578 * omp-offload.c (execute_oacc_device_lower): Remove the
4579 parallelism dimensions function attributes for unparallelized
4580 OpenACC kernels constructs.
4581
4582 2017-05-23 Martin Liska <mliska@suse.cz>
4583
4584 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
4585 functions.
4586 (cgraph_edge::make_speculative): Likewise.
4587 (cgraph_edge::resolve_speculation): Likewise.
4588 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
4589 (cgraph_node::dump): Likewise.
4590 * cgraph.h: Likewise.
4591 * cgraphunit.c (analyze_functions): Likewise.
4592 (symbol_table::compile): Likewise.
4593 * ipa-cp.c (print_all_lattices): Likewise.
4594 (determine_versionability): Likewise.
4595 (initialize_node_lattices): Likewise.
4596 (ipcp_verify_propagated_values): Likewise.
4597 (estimate_local_effects): Likewise.
4598 (update_profiling_info): Likewise.
4599 (create_specialized_node): Likewise.
4600 (perhaps_add_new_callers): Likewise.
4601 (decide_about_value): Likewise.
4602 (decide_whether_version_node): Likewise.
4603 (identify_dead_nodes): Likewise.
4604 (ipcp_store_bits_results): Likewise.
4605 * ipa-devirt.c (dump_targets): Likewise.
4606 (ipa_devirt): Likewise.
4607 * ipa-icf.c (sem_item::dump): Likewise.
4608 (sem_function::equals): Likewise.
4609 (sem_variable::equals): Likewise.
4610 (sem_item_optimizer::read_section): Likewise.
4611 (sem_item_optimizer::execute): Likewise.
4612 (congruence_class::dump): Likewise.
4613 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
4614 (dump_inline_summary): Likewise.
4615 (estimate_node_size_and_time): Likewise.
4616 (inline_analyze_function): Likewise.
4617 * ipa-inline-transform.c (inline_call): Likewise.
4618 * ipa-inline.c (report_inline_failed_reason): Likewise.
4619 (want_early_inline_function_p): Likewise.
4620 (edge_badness): Likewise.
4621 (update_edge_key): Likewise.
4622 (inline_small_functions): Likewise.
4623 * ipa-profile.c (ipa_profile): Likewise.
4624 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
4625 (ipa_make_edge_direct_to_target): Likewise.
4626 (remove_described_reference): Likewise.
4627 (ipa_impossible_devirt_target): Likewise.
4628 (propagate_controlled_uses): Likewise.
4629 (ipa_print_node_params): Likewise.
4630 (ipcp_transform_function): Likewise.
4631 * ipa-pure-const.c (pure_const_read_summary): Likewise.
4632 (propagate_pure_const): Likewise.
4633 * ipa-reference.c (generate_summary): Likewise.
4634 (read_write_all_from_decl): Likewise.
4635 (propagate): Likewise.
4636 (ipa_reference_read_optimization_summary): Likewise.
4637 * ipa-utils.c (ipa_merge_profiles): Likewise.
4638 * ipa.c (walk_polymorphic_call_targets): Likewise.
4639 (symbol_table::remove_unreachable_nodes): Likewise.
4640 (ipa_single_use): Likewise.
4641 * passes.c (execute_todo): Likewise.
4642 * predict.c (drop_profile): Likewise.
4643 * symtab.c (symtab_node::get_dump_name): New function.
4644 (symtab_node::dump_name): Likewise.
4645 (symtab_node::dump_asm_name): Likewise.
4646 (symtab_node::dump_references): Likewise.
4647 (symtab_node::dump_referring): Likewise.
4648 (symtab_node::dump_base): Likewise.
4649 (symtab_node::debug_symtab): Likewise.
4650 * tree-sra.c (convert_callers_for_node): Likewise.
4651 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4652 * value-prof.c (init_node_map): Likewise.
4653
4654 2017-05-23 Martin Liska <mliska@suse.cz>
4655
4656 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
4657 and symtab_node::debug_symtab to symbol_table::debug.
4658 * cgraphunit.c (analyze_functions): Use the renamed function.
4659 (symbol_table::compile): Likewise.
4660 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
4661 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
4662 * passes.c (execute_todo): Likewise.
4663 * symtab.c (symbol_table::dump): New function.
4664 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
4665
4666 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4667
4668 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
4669 that nonconst implies exec.
4670
4671 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4672
4673 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
4674 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
4675 (inline_edge_summary_vec): Turn into ...
4676 (ipa_call_summaries): ... this one.
4677 (redirect_to_unreachable, edge_set_predicate,
4678 evaluate_properties_for_edge, inline_summary_alloc,
4679 reset_ipa_call_summary, reset_inline_summary,
4680 inline_summary_t::duplicate): Update.
4681 (inline_edge_duplication_hook): Turn to ...
4682 (ipa_call_summary_t::duplicate): ... this one.
4683 (inline_edge_removal_hook): Turn to ...
4684 (ipa_call_summary_t::remove): ... this one.
4685 (dump_inline_edge_summary): Turn to ...
4686 (dump_ipa_call_summary): ... this one.
4687 (estimate_function_body_sizes): Update.
4688 (inline_update_callee_summaries): Update.
4689 (remap_edge_change_prob): Update.
4690 (remap_edge_summaries): Update.
4691 (inline_merge_summary): Update.
4692 (do_estimate_edge_time): Update.
4693 (inline_generate_summary): Update.
4694 (inline_read_section): Update.
4695 (inline_read_summary): Update.
4696 (inline_free_summary): Update.
4697 * ipa-inline.c (can_inline_edge_p): Update.
4698 (compute_inlined_call_time): Update.
4699 (want_inline_small_function_p): Update.
4700 (edge_badness): Update.
4701 (early_inliner): Update.
4702 * ipa-inline.h (inline_edge_summary): Turn to ...
4703 (ipa_call_summary): ... this one.
4704 (ipa_call_summary_t): New class.
4705 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
4706 (ipa_call_summaries): New.
4707 (inline_edge_summary): Remove.
4708 (estimate_edge_growth): Update.
4709 * ipa-profile.c (ipa_propagate_frequency_1): Update.
4710 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
4711 * ipa-split.c (execute_split_functions): Update.
4712 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
4713
4714 2017-05-23 Tom de Vries <tom@codesourcery.com>
4715
4716 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
4717 attributes): Document rdrand effective target.
4718
4719 2017-05-23 Tom de Vries <tom@codesourcery.com>
4720
4721 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
4722 attributes): Sort alphabetically.
4723
4724 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
4725
4726 * config/avr/genmultilib.awk: Use gsub instead of gensub.
4727
4728 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4729
4730 PR target/80718
4731 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
4732 V2DF/V2DI splat into two separate patterns, one that handles
4733 registers, and the other that only handles memory. Drop support
4734 for splatting from a GPR on ISA 2.07 and then splitting the
4735 splat into direct move and splat.
4736 (vsx_splat_<mode>_reg): Likewise.
4737 (vsx_splat_<mode>_mem): Likewise.
4738
4739 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
4740
4741 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
4742
4743 2017-05-22 Jakub Jelinek <jakub@redhat.com>
4744
4745 PR middle-end/80809
4746 * omp-low.c (finish_taskreg_remap): New function.
4747 (finish_taskreg_scan): If unit size of ctx->record_type
4748 is non-constant, unshare the size expression and replace
4749 decls in it with possible outer var refs.
4750
4751 PR middle-end/80809
4752 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
4753 GOVD_SHARED rather than GOVD_PRIVATE with it.
4754 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
4755 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
4756
4757 PR middle-end/80853
4758 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
4759 as last argument to build_outer_var_ref for pointer bases of array
4760 section reductions.
4761
4762 2017-05-19 Martin Sebor <msebor@redhat.com>
4763
4764 * print-tree.c (print_node): Print DECL_READ_P flag.
4765
4766 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4767
4768 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
4769 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
4770 * cgraph.c: Likewise.
4771 * cgraphunit.c: Likewise.
4772 * gengtype.c: Likewise.
4773 * ipa-cp.c: Likewise.
4774 * ipa-devirt.c: Likewise.
4775 * ipa-icf.c: Likewise.
4776 * ipa-predicate.c: Likewise.
4777 * ipa-profile.c: Likewise.
4778 * ipa-prop.c: Likewise.
4779 * ipa-split.c: Likewise.
4780 * ipa.c: Likewise.
4781 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
4782 edge_predicate_pool, dump_inline_hints,
4783 inline_summary::account_size_time, redirect_to_unreachable,
4784 edge_set_predicate, set_hint_predicate,
4785 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
4786 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
4787 inline_summary_t::remove, remap_hint_predicate_after_duplication,
4788 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
4789 ipa_call_summary_t::remove, initialize_growth_caches,
4790 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
4791 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
4792 mark_modified, unmodified_parm_1, unmodified_parm,
4793 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
4794 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
4795 compute_bb_predicates, will_be_nonconstant_expr_predicate,
4796 will_be_nonconstant_predicate, record_modified_bb_info,
4797 get_minimal_bb, record_modified, param_change_prob,
4798 phi_result_unknown_predicate, predicate_for_phi_result,
4799 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
4800 estimate_function_body_sizes, compute_inline_parameters,
4801 compute_inline_parameters_for_curren, pass_data_inline_parameters,
4802 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
4803 inline_update_callee_summaries, remap_edge_change_prob,
4804 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
4805 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
4806 inline_analyze_function, inline_summary_t::insert,
4807 inline_generate_summary, read_ipa_call_summary, inline_read_section,
4808 inline_read_summary, write_ipa_call_summary, inline_write_summary,
4809 inline_free_summary): Move to ipa-fnsummary.h
4810 (predicate_t): Remove.
4811 * ipa-fnsummary.c: New file.
4812 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
4813 (enum inline_hints_vals, inline_hints, agg_position_info,
4814 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
4815 inline_summaries, ipa_call_summary, ipa_call_summary_t,
4816 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
4817 dump_inline_summary, dump_inline_hints, inline_generate_summary,
4818 inline_read_summary, inline_write_summary, inline_free_summary,
4819 inline_analyze_function, initialize_inline_failed,
4820 inline_merge_summary, inline_update_overall_summary,
4821 compute_inline_parameters): Move to ipa-fnsummary.h
4822 * ipa-fnsummary.h: New file.
4823 * ipa-inline-transform.h: Include ipa-inline.h.
4824 * ipa-inline.c: LIkewise.
4825
4826 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4827
4828 * ipa-inline.c (edge_badness): Use inlined_time instead of
4829 inline_summaries->get.
4830
4831 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4832
4833 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
4834
4835 2017-05-22 Nathan Sidwell <nathan@acm.org>
4836
4837 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
4838 (fdump-lang): Document 'raw' option.
4839 * dumpfile.h (TDI_tu): Delete.
4840 * dumpfile.c (dump_files): Remove translation-unit.
4841 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
4842
4843 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
4844
4845 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
4846 command option from $(AWK) call.
4847 * config/avr/genmultilib.awk: Simplify and rewrite so that it
4848 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
4849 [FORMAT]: Remove handling of variable.
4850 * config/avr/t-multilib: Regenerate.
4851
4852 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4853
4854 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
4855 self_time.
4856 (dump_inline_summary): Do not print self_time.
4857 (estimate_function_body_sizes): Do not set self_time.
4858 (compute_inline_parameters): Likewise.
4859 (inline_read_section, inline_write_summary): Do not stream self_time.
4860 * ipa-inline.h (inline_summary): Drop self_time.
4861
4862 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4863
4864 * ipa-inline-analysis.c (account_size_time): Rename to ...
4865 (inline_summary::account_size_time): ... this one.
4866 (reset_ipa_call_summary): Turn to ...
4867 (ipa_call_summary::reset): ... this one.
4868 (reset_inline_summary): Turn to ...
4869 (inline_summary::reset): ... this one.
4870 (inline_summary_t::remove): Update.
4871 (inline_summary_t::duplicate): Update.
4872 (ipa_call_summary_t::remove): Update.
4873 (dump_inline_summary): Update.
4874 (estimate_function_body_sizes): Update.
4875 (compute_inline_parameters): Update.
4876 (estimate_node_size_and_time): Update.
4877 (inline_merge_summary): Update.
4878 (inline_update_overall_summary): Update.
4879 (inline_read_section): Update.
4880 (inline_write_summary): Update.
4881 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
4882 add account_size_time and reset member functions.
4883 (ipa_call_summary): Add reset function.
4884 * ipa-predicate.h (predicate::operator &): Constify.
4885
4886 2017-05-22 Richard Biener <rguenther@suse.de>
4887
4888 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
4889
4890 2017-05-19 Jason Merrill <jason@redhat.com>
4891
4892 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
4893
4894 2017-05-19 Marek Polacek <polacek@redhat.com>
4895
4896 PR sanitizer/80800
4897 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
4898 TYPE_OVERFLOW_WRAPS checks.
4899
4900 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
4901
4902 * tree-core.h (enum omp_clause_default_kind): Add
4903 "OMP_CLAUSE_DEFAULT_PRESENT".
4904 * tree-pretty-print.c (dump_omp_clause): Handle it.
4905 * gimplify.c (enum gimplify_omp_var_data): Add
4906 "GOVD_MAP_FORCE_PRESENT".
4907 (gimplify_adjust_omp_clauses_1): Map it to
4908 "GOMP_MAP_FORCE_PRESENT".
4909 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
4910
4911 * gimplify.c (oacc_default_clause): Clarify.
4912
4913 2017-05-19 Nathan Sidwell <nathan@acm.org>
4914
4915 LANG_HOOK_REGISTER_DUMPS
4916 * toplev.c (general_init): Call register dump lang hook.
4917 * doc/invoke.texi: Document -fdump-lang option family.
4918 * dumpfile.c (dump_files): Remove class dump here.
4919 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
4920 * dumpfile.h (tree_dump_index): Remove TDI_class.
4921 * langhooks-def.h (lhd_register_dumps): Declare.
4922 (LANG_HOOKS_REGISTER_DUMPS): Define.
4923 (LANG_HOOKS_INITIALIZER): Add it.
4924 * langhooks.c (lhd_register_dumps): Define.
4925 * langhooks.h (struct lang_hooks): Add register_dumps.
4926
4927 2017-05-19 Nathan Sidwell <nathan@acm.org>
4928
4929 * context.h (context::set_passes): New.
4930 * context.c (context::context): Do not create pass manager.
4931 * toplev.c (general_init): Create pass manager here.
4932
4933 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4934
4935 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
4936 use this splitter if two add or or instructions would also work for
4937 the constant we want to generate.
4938
4939 2017-05-19 Richard Biener <rguenther@suse.de>
4940
4941 PR build/80821
4942 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
4943 predicate evaluation.
4944
4945 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
4946
4947 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
4948 add ctor.
4949 * ipa-inline.c (want_inline_small_function_p): Do not cast to
4950 unsigned.
4951
4952 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
4953
4954 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
4955 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
4956 (inline_edge_summary_vec): Turn into ...
4957 (ipa_call_summaries): ... this one.
4958 (redirect_to_unreachable, edge_set_predicate,
4959 evaluate_properties_for_edge, inline_summary_alloc,
4960 reset_ipa_call_summary, reset_inline_summary,
4961 inline_summary_t::duplicate): Update.
4962 (inline_edge_duplication_hook): Turn to ...
4963 (ipa_call_summary_t::duplicate): ... this one.
4964 (inline_edge_removal_hook): Turn to ...
4965 (ipa_call_summary_t::remove): ... this one.
4966 (dump_inline_edge_summary): Turn to ...
4967 (dump_ipa_call_summary): ... this one.
4968 (estimate_function_body_sizes): Update.
4969 (inline_update_callee_summaries): Update.
4970 (remap_edge_change_prob): Update.
4971 (remap_edge_summaries): Update.
4972 (inline_merge_summary): Update.
4973 (do_estimate_edge_time): Update.
4974 (inline_generate_summary): Update.
4975 (inline_read_section): Update.
4976 (inline_read_summary): Update.
4977 (inline_free_summary): Update.
4978 * ipa-inline.c (can_inline_edge_p): Update.
4979 (compute_inlined_call_time): Update.
4980 (want_inline_small_function_p): Update.
4981 (edge_badness): Update.
4982 (early_inliner): Update.
4983 * ipa-inline.h (inline_edge_summary): Turn to ...
4984 (ipa_call_summary): ... this one.
4985 (ipa_call_summary_t): New class.
4986 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
4987 (ipa_call_summaries): New.
4988 (inline_edge_summary): Remove.
4989 (estimate_edge_growth): Update.
4990 * ipa-profile.c (ipa_propagate_frequency_1): Update.
4991 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
4992 * ipa-split.c (execute_split_functions): Update.
4993 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
4994
4995 2017-05-19 Richard Biener <rguenther@suse.de>
4996
4997 PR middle-end/80764
4998 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
4999
5000 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
5001
5002 * config/rs6000/rs6000.c (struct machine_function): Add field
5003 fpr_is_wrapped_separately.
5004 (rs6000_get_separate_components): Use 64 components. Handle the
5005 new FPR components.
5006 (rs6000_components_for_bb): Handle the FPR components.
5007 (rs6000_emit_prologue_components): Handle the FPR components.
5008 (rs6000_emit_epilogue_components): Handle the FPR components.
5009 (rs6000_set_handled_components): Handle the FPR components.
5010 (rs6000_emit_prologue): Don't output prologue code for those FPRs
5011 that are already separately shrink-wrapped.
5012 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
5013 that are already separately shrink-wrapped.
5014
5015 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
5016
5017 PR target/80510
5018 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
5019 New predicate.
5020
5021 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
5022 (define_peephole2 for Altivec d-form load): Add peepholes to catch
5023 cases where the register allocator uses a move and an offsettable
5024 memory operation to/from a FPR register on ISA 2.06/2.07.
5025 (define_peephole2 for Altivec d-form store): Likewise.
5026
5027 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
5028
5029 PR target/80799
5030 * config/i386/mmx.md (*mov<mode>_internal): Enable
5031 alternatives 11, 12, 13 and 14 also for 32bit targets.
5032 Remove alternatives 15, 16, 17 and 18.
5033 * config/i386/sse.md (vec_concatv2di): Change
5034 alternative (!x, *y) to (x, ?!*Yn).
5035
5036 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
5037
5038 * dumpfile.h (enum dump_kind): Remove stray comma.
5039
5040 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5041
5042 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
5043 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
5044 predicate::num_conditions
5045 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
5046 (CHANGED): turn into predicate::changed.
5047 (agg_position_info): Move to ipa-predicate.h
5048 (add_condition, predicate::add_clause, predicate::operator &=,
5049 predicate::or_with, predicate::evaluate, predicate::probability,
5050 dump_condition, dump_clause, predicate::dump,
5051 predicate::remap_after_duplication, predicate::remap_after_inlining,
5052 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
5053 (evaluate_conditions_for_known_args): Update.
5054 (set_cond_stmt_execution_predicate): Update.
5055 * ipa-inline.h: Include ipa-predicate.h
5056 (condition, inline_param_summary, conditions, agg_position_info,
5057 predicate): Move to ipa-predicate.h
5058 * ipa-predicate.c: New file.
5059 * ipa-predicate.h: New file.
5060
5061 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
5062
5063 * final.c (leaf_function_p): Check we are not in a sequence.
5064
5065 2017-05-18 Martin Liska <mliska@suse.cz>
5066
5067 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
5068 * dumpfile.c (dump_register): Use new enum dump_kind.
5069 (get_dump_file_name): Likewise.
5070 (dump_enable_all): Likewise.
5071 (dump_switch_p_1): Likewise.
5072 (enable_rtl_dump_file): Remove usage of TDF_RTL.
5073 * dumpfile.h (enum dump_kind): New enum type.
5074 (struct dump_file_info): Create constructor and
5075 format fields and comments.
5076 * passes.c (pass_manager::register_one_dump_file):
5077 Use num dump_kind.
5078 * statistics.c (statistics_early_init): Likewise.
5079 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
5080 TDF_TREE with TDF_SLIM.
5081 (gather_memory_references_ref): Likewise.
5082
5083 2017-05-18 Martin Liska <mliska@suse.cz>
5084
5085 * vec.h (struct vnull): Use it.
5086
5087 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5088
5089 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
5090 (true_predicate, false_predicate, true_predicate_p,
5091 false_predicate_p): Remove.
5092 (single_cond_predicate, not_inlined_predicate): Turn to member function
5093 in ipa-inline.h
5094 (add_condition): Update.
5095 (add_clause): Turn to...
5096 (predicate::add_clause): ... this one; update; allow passing NULL
5097 as parameter.
5098 (and_predicates): Turn to ...
5099 (predicate::operator &=): ... this one.
5100 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
5101 (or_predicates): Turn to ...
5102 (predicate::or_with): ... this one.
5103 (evaluate_predicate): Turn to ...
5104 (predicate::evaluate): ... this one.
5105 (predicate_probability): Turn to ...
5106 (predicate::probability): ... this one.
5107 (dump_condition): Update.
5108 (dump_predicate): Turn to ...
5109 (predicate::dump): ... this one.
5110 (account_size_time): Update.
5111 (edge_set_predicate): Update.
5112 (set_hint_predicate): UPdate.
5113 (evaluate_conditions_for_known_args): Update.
5114 (evaluate_properties_for_edge): Update.
5115 (remap_predicate_after_duplication): Turn to...
5116 (predicate::remap_after_duplication): ... this one.
5117 (remap_hint_predicate_after_duplication): Update.
5118 (inline_summary_t::duplicate): UPdate.
5119 (dump_inline_edge_summary): Update.
5120 (dump_inline_summary): Update.
5121 (set_cond_stmt_execution_predicate): Update.
5122 (set_switch_stmt_execution_predicate): Update.
5123 (compute_bb_predicates): Update.
5124 (will_be_nonconstant_expr_predicate): Update.
5125 (will_be_nonconstant_predicate): Update.
5126 (phi_result_unknown_predicate): Update.
5127 (predicate_for_phi_result): Update.
5128 (array_index_predicate): Update.
5129 (estimate_function_body_sizes): Update.
5130 (estimate_node_size_and_time): Update.
5131 (estimate_ipcp_clone_size_and_time): Update.
5132 (remap_predicate): Rename to ...
5133 (predicate::remap_after_inlining): ... this one.
5134 (remap_hint_predicate): Update.
5135 (inline_merge_summary): Update.
5136 (inline_update_overall_summary): Update.
5137 (estimate_size_after_inlining): Update.
5138 (read_predicate): Rename to ...
5139 (predicate::stream_in): ... this one.
5140 (read_inline_edge_summary): Update.
5141 (write_predicate): Rename to ...
5142 (predicate::stream_out): ... this one.
5143 (write_inline_edge_summary): Update.
5144 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
5145 (clause_t): Turn to uint32_t
5146 (predicate): Turn to class; implement constructor and operators
5147 ==, !=, &
5148 (size_time_entry): Update.
5149 (inline_summary): Update.
5150 (inline_edge_summary): Update.
5151
5152 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
5153
5154 * fold-const.c (fold_binary_loc): Move transformation...
5155 * match.pd (C - X CMP X): ... here.
5156
5157 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
5158
5159 * config/sparc/sparc.c (sparc_option_override): Set function
5160 alignment for -mcpu=niagara7 to 64 to match the I$ line.
5161 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
5162 latency to 1.
5163 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
5164 latency to 2.
5165 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
5166
5167 2017-05-18 Marek Polacek <polacek@redhat.com>
5168
5169 PR sanitizer/80797
5170 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
5171 (pass_ubsan::execute): Call gimple_assign_single_p instead of
5172 gimple_assign_load_p.
5173
5174 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
5175
5176 PR middle-end/80692
5177 * real.c (do_compare): Give decimal_do_compare preference over
5178 comparing just the signs.
5179
5180 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
5181
5182 * doc/md.texi (Canonicalization of Instructions): Describe the
5183 canonical form of instructions that inherently set a condition
5184 code register.
5185
5186 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
5187
5188 PR middle-end/80775
5189 * tree-cfg.c: Move deletion of unreachable case statements to after
5190 the merging of consecutive case labels.
5191
5192 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5193
5194 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
5195 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
5196 restoring of callee-saved registers.
5197
5198 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
5199
5200 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
5201 * config/visium/visium.c (single_set_and_flags): Likewise.
5202 * config/visium/visium.md (Substitutions): Likewise.
5203
5204 2017-05-17 Martin Liska <mliska@suse.cz>
5205
5206 * cfg.c: Introduce dump_flags_t type and
5207 use it instead of int type.
5208 * cfg.h: Likewise.
5209 * cfghooks.c: Likewise.
5210 * cfghooks.h (struct cfg_hooks): Likewise.
5211 * cfgrtl.c: Likewise.
5212 * cfgrtl.h: Likewise.
5213 * cgraph.c (cgraph_node::get_body): Likewise.
5214 * coretypes.h: Likewise.
5215 * domwalk.c: Likewise.
5216 * domwalk.h: Likewise.
5217 * dumpfile.c (struct dump_option_value_info): Likewise.
5218 (dump_enable_all): Likewise.
5219 (dump_switch_p_1): Likewise.
5220 (opt_info_switch_p): Likewise.
5221 * dumpfile.h (enum tree_dump_index): Likewise.
5222 (struct dump_file_info): Likewise.
5223 * genemit.c: Likewise.
5224 * generic-match-head.c: Likewise.
5225 * gengtype.c (open_base_files): Likewise.
5226 * gimple-pretty-print.c: Likewise.
5227 * gimple-pretty-print.h: Likewise.
5228 * graph.c (print_graph_cfg): Likewise.
5229 * graphite-scop-detection.c (dot_all_sese): Likewise.
5230 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
5231 * loop-unroll.c (report_unroll): Likewise.
5232 * passes.c (pass_manager::register_one_dump_file): Likewise.
5233 * print-tree.c: Likewise.
5234 * statistics.c: Likewise.
5235 * tree-cfg.c: Likewise.
5236 * tree-cfg.h: Likewise.
5237 * tree-dfa.c: Likewise.
5238 * tree-dfa.h: Likewise.
5239 * tree-dump.c (dump_function): Likewise.
5240 * tree-dump.h (struct dump_info): Likewise.
5241 * tree-pretty-print.c: Likewise.
5242 * tree-pretty-print.h: Likewise.
5243 * tree-ssa-live.c: Likewise.
5244 * tree-ssa-live.h: Likewise.
5245 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
5246 * tree-vect-loop.c: Likewise.
5247 * tree-vect-slp.c: Likewise.
5248
5249 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5250 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5251
5252 PR tree-optimization/80457
5253 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
5254 of all arguments to a statement as scalar_to_vec operations.
5255 (vectorizable_call): Adjust call to vect_model_simple_cost for
5256 new parameter.
5257 (vectorizable_conversion): Likewise.
5258 (vectorizable_assignment): Likewise.
5259 (vectorizable_shift): Likewise.
5260 (vectorizable_operation): Likewise.
5261 (vectorizable_comparison): Likewise.
5262 (vect_is_simple_cond): Record the def types for operands.
5263 (vectorizable_condition): Likewise, call vect_model_simple_cost.
5264 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
5265 for statement argument count.
5266
5267 2017-05-16 Carl Love <cel@us.ibm.com>
5268
5269 * config/rs6000/rs6000-c: Add support for built-in functions
5270 vector unsigned long long vec_bperm (vector unsigned long long,
5271 vector unsigned char)
5272 vector signed long long vec_mule (vector signed int,
5273 vector signed int)
5274 vector unsigned long long vec_mule (vector unsigned int,
5275 vector unsigned int)
5276 vector signed long long vec_mulo (vector signed int,
5277 vector signed int)
5278 vector unsigned long long vec_mulo (vector unsigned int,
5279 vector unsigned int)
5280 vector signed char vec_sldw (vector signed char,
5281 vector signed char,
5282 const int)
5283 vector unsigned char vec_sldw (vector unsigned char,
5284 vector unsigned char,
5285 const int)
5286 vector signed short vec_sldw (vector signed short,
5287 vector signed short,
5288 const int)
5289 vector unsigned short vec_sldw (vector unsigned short,
5290 vector unsigned short,
5291 const int)
5292 vector signed int vec_sldw (vector signed int,
5293 vector signed int,
5294 const int)
5295 vector unsigned int vec_sldw (vector unsigned int,
5296 vector unsigned int,
5297 const int)
5298 vector signed long long vec_sldw (vector signed long long,
5299 vector signed long long,
5300 const int)
5301 vector unsigned long long vec_sldw (vector unsigned long long,
5302 vector unsigned long long,
5303 const int)
5304 * config/rs6000/rs6000-c: Add support for built-in functions
5305 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
5306 * config/rs6000/altivec.h: Add defintion for vec_sldw.
5307 * doc/extend.texi: Update the built-in documentation for the
5308 new built-in functions.
5309
5310 2017-05-16 Marek Polacek <polacek@redhat.com>
5311
5312 PR sanitizer/80536
5313 PR sanitizer/80386
5314 * tree.c (save_expr): Don't fold the expression.
5315
5316 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
5317
5318 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
5319 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
5320 and (?*y,m). Update insn attributes.
5321
5322 2017-05-16 Martin Liska <mliska@suse.cz>
5323
5324 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
5325 flags argument of print_gimple_stmt, print_gimple_expr,
5326 print_generic_stmt and print_generic_expr.
5327 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
5328 * coretypes.h: Likewise.
5329 * except.c (dump_eh_tree): Likewise.
5330 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
5331 * gimple-pretty-print.h: Likewise.
5332 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
5333 (backprop::push_to_worklist): Likewise.
5334 (backprop::pop_from_worklist): Likewise.
5335 (backprop::process_use): Likewise.
5336 (backprop::intersect_uses): Likewise.
5337 (note_replacement): Likewise.
5338 * gimple-ssa-store-merging.c
5339 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
5340 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
5341 (pass_store_merging::execute): Likewise.
5342 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
5343 (ssa_base_cand_dump_callback): Likewise.
5344 (dump_incr_vec): Likewise.
5345 (replace_refs): Likewise.
5346 (replace_mult_candidate): Likewise.
5347 (create_add_on_incoming_edge): Likewise.
5348 (create_phi_basis): Likewise.
5349 (insert_initializers): Likewise.
5350 (all_phi_incrs_profitable): Likewise.
5351 (introduce_cast_before_cand): Likewise.
5352 (replace_one_candidate): Likewise.
5353 * gimplify.c (gimplify_expr): Likewise.
5354 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
5355 (set_rename): Likewise.
5356 (rename_uses): Likewise.
5357 (copy_loop_phi_nodes): Likewise.
5358 (add_close_phis_to_merge_points): Likewise.
5359 (copy_loop_close_phi_args): Likewise.
5360 (copy_cond_phi_args): Likewise.
5361 (graphite_copy_stmts_from_block): Likewise.
5362 (translate_pending_phi_nodes): Likewise.
5363 * graphite-poly.c (print_pdr): Likewise.
5364 (dump_gbb_cases): Likewise.
5365 (dump_gbb_conditions): Likewise.
5366 (print_scop_params): Likewise.
5367 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
5368 (build_cross_bb_scalars_use): Likewise.
5369 (gather_bbs::before_dom_children): Likewise.
5370 * hsa-dump.c (dump_hsa_immed): Likewise.
5371 * ipa-cp.c (print_ipcp_constant_value): Likewise.
5372 (get_replacement_map): Likewise.
5373 * ipa-inline-analysis.c (dump_condition): Likewise.
5374 (estimate_function_body_sizes): Likewise.
5375 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
5376 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
5377 * ipa-prop.c (ipa_dump_param): Likewise.
5378 (ipa_print_node_jump_functions_for_edge): Likewise.
5379 (ipa_modify_call_arguments): Likewise.
5380 (ipa_modify_expr): Likewise.
5381 (ipa_dump_param_adjustments): Likewise.
5382 (ipa_dump_agg_replacement_values): Likewise.
5383 (ipcp_modif_dom_walker::before_dom_children): Likewise.
5384 * ipa-pure-const.c (check_stmt): Likewise.
5385 (pass_nothrow::execute): Likewise.
5386 * ipa-split.c (execute_split_functions): Likewise.
5387 * omp-offload.c (dump_oacc_loop_part): Likewise.
5388 (dump_oacc_loop): Likewise.
5389 * trans-mem.c (tm_log_emit): Likewise.
5390 (tm_memopt_accumulate_memops): Likewise.
5391 (dump_tm_memopt_set): Likewise.
5392 (dump_tm_memopt_transform): Likewise.
5393 * tree-cfg.c (gimple_verify_flow_info): Likewise.
5394 (print_loop): Likewise.
5395 * tree-chkp-opt.c (chkp_print_addr): Likewise.
5396 (chkp_gather_checks_info): Likewise.
5397 (chkp_get_check_result): Likewise.
5398 (chkp_remove_check_if_pass): Likewise.
5399 (chkp_use_outer_bounds_if_possible): Likewise.
5400 (chkp_reduce_bounds_lifetime): Likewise.
5401 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
5402 (chkp_mark_completed_bounds): Likewise.
5403 (chkp_register_incomplete_bounds): Likewise.
5404 (chkp_mark_invalid_bounds): Likewise.
5405 (chkp_maybe_copy_and_register_bounds): Likewise.
5406 (chkp_build_returned_bound): Likewise.
5407 (chkp_get_bound_for_parm): Likewise.
5408 (chkp_build_bndldx): Likewise.
5409 (chkp_get_bounds_by_definition): Likewise.
5410 (chkp_generate_extern_var_bounds): Likewise.
5411 (chkp_get_bounds_for_decl_addr): Likewise.
5412 * tree-chrec.c (chrec_apply): Likewise.
5413 * tree-data-ref.c (dump_data_reference): Likewise.
5414 (dump_subscript): Likewise.
5415 (dump_data_dependence_relation): Likewise.
5416 (analyze_overlapping_iterations): Likewise.
5417 * tree-inline.c (expand_call_inline): Likewise.
5418 (tree_function_versioning): Likewise.
5419 * tree-into-ssa.c (dump_defs_stack): Likewise.
5420 (dump_currdefs): Likewise.
5421 (dump_names_replaced_by): Likewise.
5422 (dump_update_ssa): Likewise.
5423 (update_ssa): Likewise.
5424 * tree-object-size.c (pass_object_sizes::execute): Likewise.
5425 * tree-parloops.c (build_new_reduction): Likewise.
5426 (try_create_reduction_list): Likewise.
5427 (ref_conflicts_with_region): Likewise.
5428 (oacc_entry_exit_ok_1): Likewise.
5429 (oacc_entry_exit_single_gang): Likewise.
5430 * tree-pretty-print.h: Likewise.
5431 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
5432 (get_scalar_evolution): Likewise.
5433 (add_to_evolution): Likewise.
5434 (get_loop_exit_condition): Likewise.
5435 (analyze_evolution_in_loop): Likewise.
5436 (analyze_initial_condition): Likewise.
5437 (analyze_scalar_evolution): Likewise.
5438 (instantiate_scev): Likewise.
5439 (number_of_latch_executions): Likewise.
5440 (gather_chrec_stats): Likewise.
5441 (final_value_replacement_loop): Likewise.
5442 (scev_const_prop): Likewise.
5443 * tree-sra.c (dump_access): Likewise.
5444 (disqualify_candidate): Likewise.
5445 (create_access): Likewise.
5446 (reject): Likewise.
5447 (maybe_add_sra_candidate): Likewise.
5448 (create_access_replacement): Likewise.
5449 (analyze_access_subtree): Likewise.
5450 (analyze_all_variable_accesses): Likewise.
5451 (sra_modify_assign): Likewise.
5452 (initialize_constant_pool_replacements): Likewise.
5453 (find_param_candidates): Likewise.
5454 (decide_one_param_reduction): Likewise.
5455 (replace_removed_params_ssa_names): Likewise.
5456 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5457 * tree-ssa-copy.c (dump_copy_of): Likewise.
5458 (copy_prop_visit_cond_stmt): Likewise.
5459 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
5460 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
5461 (record_equivalences_from_stmt): Likewise.
5462 * tree-ssa-dse.c (compute_trims): Likewise.
5463 (delete_dead_call): Likewise.
5464 (delete_dead_assignment): Likewise.
5465 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
5466 (forward_propagate_into_cond): Likewise.
5467 (pass_forwprop::execute): Likewise.
5468 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5469 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
5470 Likewise.
5471 (move_computations_worker): Likewise.
5472 (execute_sm): Likewise.
5473 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
5474 (remove_exits_and_undefined_stmts): Likewise.
5475 (remove_redundant_iv_tests): Likewise.
5476 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
5477 (adjust_iv_update_pos): Likewise.
5478 * tree-ssa-math-opts.c (bswap_replace): Likewise.
5479 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
5480 (value_replacement): Likewise.
5481 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5482 * tree-ssa-pre.c (print_pre_expr): Likewise.
5483 (get_representative_for): Likewise.
5484 (create_expression_by_pieces): Likewise.
5485 (insert_into_preds_of_block): Likewise.
5486 (eliminate_insert): Likewise.
5487 (eliminate_dom_walker::before_dom_children): Likewise.
5488 (eliminate): Likewise.
5489 (remove_dead_inserted_code): Likewise.
5490 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5491 * tree-ssa-reassoc.c (get_rank): Likewise.
5492 (eliminate_duplicate_pair): Likewise.
5493 (eliminate_plus_minus_pair): Likewise.
5494 (eliminate_not_pairs): Likewise.
5495 (undistribute_ops_list): Likewise.
5496 (eliminate_redundant_comparison): Likewise.
5497 (update_range_test): Likewise.
5498 (optimize_range_tests_var_bound): Likewise.
5499 (optimize_vec_cond_expr): Likewise.
5500 (rewrite_expr_tree): Likewise.
5501 (rewrite_expr_tree_parallel): Likewise.
5502 (linearize_expr): Likewise.
5503 (break_up_subtract): Likewise.
5504 (linearize_expr_tree): Likewise.
5505 (attempt_builtin_powi): Likewise.
5506 (attempt_builtin_copysign): Likewise.
5507 (transform_stmt_to_copy): Likewise.
5508 (transform_stmt_to_multiply): Likewise.
5509 (dump_ops_vector): Likewise.
5510 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
5511 (print_scc): Likewise.
5512 (set_ssa_val_to): Likewise.
5513 (visit_reference_op_store): Likewise.
5514 (visit_use): Likewise.
5515 (sccvn_dom_walker::before_dom_children): Likewise.
5516 (run_scc_vn): Likewise.
5517 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
5518 Likewise.
5519 (expr_hash_elt::print): Likewise.
5520 (const_and_copies::pop_to_marker): Likewise.
5521 (const_and_copies::record_const_or_copy_raw): Likewise.
5522 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
5523 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
5524 (dump_predicates): Likewise.
5525 (find_uninit_use): Likewise.
5526 (warn_uninitialized_phi): Likewise.
5527 (pass_late_warn_uninitialized::execute): Likewise.
5528 * tree-ssa.c (verify_vssa): Likewise.
5529 (verify_ssa): Likewise.
5530 (maybe_optimize_var): Likewise.
5531 * tree-vrp.c (dump_value_range): Likewise.
5532 (dump_all_value_ranges): Likewise.
5533 (dump_asserts_for): Likewise.
5534 (register_edge_assert_for_2): Likewise.
5535 (vrp_visit_cond_stmt): Likewise.
5536 (vrp_visit_switch_stmt): Likewise.
5537 (vrp_visit_stmt): Likewise.
5538 (vrp_visit_phi_node): Likewise.
5539 (simplify_cond_using_ranges_1): Likewise.
5540 (fold_predicate_in): Likewise.
5541 (evrp_dom_walker::before_dom_children): Likewise.
5542 (evrp_dom_walker::push_value_range): Likewise.
5543 (evrp_dom_walker::pop_value_range): Likewise.
5544 (execute_early_vrp): Likewise.
5545
5546 2017-05-16 Richard Biener <rguenther@suse.de>
5547
5548 * dwarf2out.c (loc_list_from_tree_1): Do not create
5549 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
5550
5551 2017-05-16 Richard Biener <rguenther@suse.de>
5552
5553 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
5554 just generated.
5555 (note_variable_value_in_expr): If we resolved the decl ref
5556 do not push to the stack.
5557
5558 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
5559
5560 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
5561 operations in fast-math mode.
5562 (vaddq_f16): Likewise.
5563 (vmul_f16): Likewise.
5564 (vmulq_f16): Likewise.
5565 (vsub_f16): Likewise.
5566 (vsubq_f16): Likewise.
5567 * config/arm/neon.md (add<mode>3): New.
5568 (sub<mode>3): New.
5569 (fma:<VH:mode>3): New. Also remove outdated comment.
5570 (mul<mode>3): New.
5571
5572 2017-05-16 Martin Liska <mliska@suse.cz>
5573
5574 PR ipa/79849.
5575 PR ipa/79850.
5576 * ipa-devirt.c (warn_types_mismatch): Fix typo.
5577 (odr_types_equivalent_p): Likewise.
5578
5579 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
5580
5581 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
5582
5583 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
5584
5585 PR target/80425
5586 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
5587 non-interunit SSE move alternatives with '?'.
5588 (zero-extendsidi peephole2): New peephole to skip intermediate
5589 general register in SSE zero-extend sequence.
5590
5591 2017-05-15 Jeff Law <law@redhat.com>
5592
5593 * reorg.c (relax_delay_slots): Create a new variable to hold
5594 the temporary target rather than clobbering TARGET_LABEL.
5595
5596 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
5597 missing argument to extract_bit_field call.
5598 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
5599
5600 2017-05-15 Martin Liska <mliska@suse.cz>
5601
5602 PR driver/31468
5603 * gcc.c (process_command): Do not allow empty argument of -o option.
5604
5605 2017-05-15 Renlin Li <renlin.li@arm.com>
5606
5607 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
5608 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
5609 * config/aarch64/constraints.md (Usf): Add long call check.
5610 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
5611 (call_value): Likewise.
5612 (sibcall): Likewise.
5613 (sibcall_value): Likewise.
5614 (call_insn): New.
5615 (call_value_insn): New.
5616 (sibcall_insn): Update rtx pattern.
5617 (sibcall_value_insn): Likewise.
5618 (call_internal): Remove.
5619 (call_value_internal): Likewise.
5620 (sibcall_internal): Likewise.
5621 (sibcall_value_internal): Likewise.
5622 (call_reg): Likewise.
5623 (call_symbol): Likewise.
5624 (call_value_reg): Likewise.
5625 (call_value_symbol): Likewise.
5626
5627 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
5628
5629 PR target/80600
5630 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
5631
5632 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
5633
5634 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
5635 compatible with CCGOCmode and with CCZmode.
5636
5637 2017-05-14 Martin Sebor <msebor@redhat.com>
5638
5639 PR middle-end/77671
5640 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
5641 (gimple_fold_builtin_snprintf): Same.
5642 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
5643 (gimple_fold_builtin_snprintf): Same.
5644 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
5645 of character types.
5646 (is_call_safe): New function.
5647 (try_substitute_return_value): Call it.
5648 (try_simplify_call): New function.
5649 (pass_sprintf_length::handle_gimple_call): Call it.
5650
5651 2017-05-14 Martin Sebor <msebor@redhat.com>
5652
5653 PR middle-end/80669
5654 * builtins.c (expand_builtin_stpncpy): Simplify.
5655
5656 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
5657
5658 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
5659 * config/i386/i386.h
5660 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
5661 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
5662 (struct machine_function): Add new members call_ms2sysv,
5663 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
5664 (struct machine_frame_state): New fields sp_realigned and
5665 sp_realigned_offset.
5666 * config/i386/i386.c
5667 (enum xlogue_stub): New enum.
5668 (enum xlogue_stub_sets): New enum.
5669 (class xlogue_layout): New class.
5670 (struct ix86_frame): New fields stack_realign_allocate_offset,
5671 stack_realign_offset and outlined_save_offset. Modify comments to
5672 detail stack layout when using out-of-line stubs.
5673 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
5674 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
5675 -mcall-ms2sysv-xlogues.
5676 (stub_managed_regs): New static variable.
5677 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
5678 registers managed by out-of-line stub.
5679 (disable_call_ms2sysv_xlogues): New function.
5680 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
5681 m->call_ms2sysv when appropriate and compute frame layout for
5682 out-of-line stubs.
5683 (sp_valid_at, fp_valid_at): New inline functions.
5684 (choose_basereg): New function.
5685 (choose_baseaddr): Add align parameter, use choose_basereg and modify
5686 all callers.
5687 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
5688 Use align parameter of choose_baseaddr to generated aligned SSE movs
5689 when possible.
5690 (pro_epilogue_adjust_stack): Modify to track
5691 machine_frame_state::sp_realigned.
5692 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
5693 (ix86_nsaved_sseregs): Likewise.
5694 (ix86_emit_save_regs): Likewise.
5695 (ix86_emit_save_regs_using_mov): Likewise.
5696 (ix86_emit_save_sse_regs_using_mov): Likewise.
5697 (get_scratch_register_on_entry): Likewise.
5698 (gen_frame_set): New function.
5699 (gen_frame_load): Likewise.
5700 (gen_frame_store): Likewise.
5701 (emit_outlined_ms2sysv_save): Likewise.
5702 (emit_outlined_ms2sysv_restore): Likewise.
5703 (ix86_expand_prologue): Modify stack re-alignment code and call
5704 emit_outlined_ms2sysv_save when appropriate.
5705 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
5706 parameter rtx_insn *insn, which allows the function to be used to only
5707 generate the notes.
5708 (ix86_expand_epilogue): Modify validity checks of frame and stack
5709 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
5710 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
5711 * config/i386/predicates.md
5712 (save_multiple): New predicate.
5713 (restore_multiple): Likewise.
5714 * config/i386/sse.md
5715 (save_multiple<mode>): New pattern.
5716 (save_multiple_realign<mode>): Likewise.
5717 (restore_multiple<mode>): Likewise.
5718 (restore_multiple_and_return<mode>): Likewise.
5719 (restore_multiple_leave_return<mode>): Likewise.
5720 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
5721
5722 2017-05-14 Julia Koval <julia.koval@intel.com>
5723
5724 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
5725 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
5726 (__builtin_ia32_xsetbv): New builtins.
5727 * config/i386/i386.c (ix86_expand_special_args_builtin):
5728 Process new types.
5729 (ix86_expand_builtin): Special expand for new intrinsics.
5730 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
5731 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
5732 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
5733
5734 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5735
5736 * cfganal.c (inverted_post_order_compute): Change argument type
5737 to vec *.
5738 * cfganal.h (inverted_post_order_compute): Adjust prototype.
5739 * df-core.c (rest_of_handle_df_initialize): Adjust.
5740 (rest_of_handle_df_finish): Likewise.
5741 (df_analyze_1): Likewise.
5742 (df_analyze): Likewise.
5743 (loop_inverted_post_order_compute): Change argument to be a vec *.
5744 (df_analyze_loop): Adjust.
5745 (df_get_n_blocks): Likewise.
5746 (df_get_postorder): Likewise.
5747 * df.h (struct df_d): Change field to be a vec.
5748 * lcm.c (compute_laterin): Adjust.
5749 (compute_available): Likewise.
5750 * lra-lives.c (lra_create_live_ranges_1): Likewise.
5751 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
5752 * tree-ssa-pre.c (compute_antic): Likewise.
5753
5754 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5755
5756 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
5757 (depth_first_search::depth_first_search): Change structure init
5758 function to this constructor.
5759 (depth_first_search::add_bb): Rename function to this member.
5760 (depth_first_search::execute): Likewise.
5761 (flow_dfs_compute_reverse_finish): Adjust.
5762
5763 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5764
5765 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
5766 (longest_simple_path): Likewise.
5767 * shrink-wrap.c (spread_components): Likewise.
5768 (disqualify_problematic_components): Likewise.
5769 (emit_common_heads_for_components): Likewise.
5770 (emit_common_tails_for_components): Likewise.
5771 (insert_prologue_epilogue_for_components): Likewise.
5772
5773 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5774
5775 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
5776 auto_sbitmap.
5777
5778 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5779
5780 * df-core.c (df_set_blocks): Start using auto_bitmap.
5781 (df_compact_blocks): Likewise.
5782 * df-problems.c (df_rd_confluence_n): Likewise.
5783 * df-scan.c (df_insn_rescan_all): Likewise.
5784 (df_process_deferred_rescans): Likewise.
5785 (df_update_entry_block_defs): Likewise.
5786 (df_update_exit_block_uses): Likewise.
5787 (df_entry_block_bitmap_verify): Likewise.
5788 (df_exit_block_bitmap_verify): Likewise.
5789 (df_scan_verify): Likewise.
5790 * lra-constraints.c (lra_constraints): Likewise.
5791 (undo_optional_reloads): Likewise.
5792 (lra_undo_inheritance): Likewise.
5793 * lra-remat.c (calculate_gen_cands): Likewise.
5794 (do_remat): Likewise.
5795 * lra-spills.c (assign_spill_hard_regs): Likewise.
5796 (spill_pseudos): Likewise.
5797 * tree-ssa-pre.c (bitmap_set_and): Likewise.
5798 (bitmap_set_subtract_values): Likewise.
5799
5800 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5801
5802 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
5803 management with auto_bitmap.
5804 (fix_inter_tick): Likewise.
5805 (fix_recovery_deps): Likewise.
5806 * ira.c (add_store_equivs): Likewise.
5807 (find_moveable_pseudos): Likewise.
5808 (split_live_ranges_for_shrink_wrap): Likewise.
5809 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
5810 (rtx_reuse_manager::seen_def_p): Likewise.
5811 (rtx_reuse_manager::set_seen_def): Likewise.
5812 * print-rtl.h (class rtx_reuse_manager): Likewise.
5813
5814 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5815
5816 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
5817 lifetime.
5818 (migrate_btr_def): Likewise.
5819 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
5820 * df-core.c (loop_post_order_compute): Likewise.
5821 (loop_inverted_post_order_compute): Likewise.
5822 * hsa-common.h: Likewise.
5823 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
5824 * init-regs.c (initialize_uninitialized_regs): Likewise.
5825 * ipa-inline.c (resolve_noninline_speculation): Likewise.
5826 (inline_small_functions): Likewise.
5827 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
5828 * ira.c (combine_and_move_insns): Likewise.
5829 (build_insn_chain): Likewise.
5830 * loop-invariant.c (find_invariants): Likewise.
5831 * lower-subreg.c (propagate_pseudo_copies): Likewise.
5832 * predict.c (tree_predict_by_opcode): Likewise.
5833 (predict_paths_leading_to): Likewise.
5834 (predict_paths_leading_to_edge): Likewise.
5835 (estimate_loops_at_level): Likewise.
5836 (estimate_loops): Likewise.
5837 * shrink-wrap.c (try_shrink_wrapping): Likewise.
5838 (spread_components): Likewise.
5839 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
5840 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
5841 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
5842 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
5843 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
5844 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
5845 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
5846 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
5847 (mark_threaded_blocks): Likewise.
5848 (thread_through_all_blocks): Likewise.
5849 * tree-ssa.c (verify_ssa): Likewise.
5850 (execute_update_addresses_taken): Likewise.
5851 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
5852
5853 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5854
5855 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
5856 auto_vec.
5857 (post_order_compute): Likewise.
5858 (inverted_post_order_compute): Likewise.
5859 (pre_and_rev_post_order_compute_fn): Likewise.
5860
5861 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5862
5863 * genrecog.c (int_set::int_set): Explicitly construct our
5864 auto_vec base class.
5865 * vec.h (auto_vec::auto_vec): New constructor.
5866
5867 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5868
5869 * bitmap.h (class auto_bitmap): New constructor taking
5870 bitmap_obstack * argument.
5871
5872 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5873
5874 * bitmap.h (class auto_bitmap): Change type of m_bits to
5875 bitmap_head, and adjust ctor / dtor and member operators.
5876
5877 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
5878
5879 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
5880 when returned register mode doesn't match original mode.
5881
5882 2017-05-12 Jeff Law <law@redhat.com>
5883 Jakub Jelinek <jakub@redhat.com>
5884
5885 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
5886 we look for cc setter after the compare-elim changes.
5887 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
5888 within the vector to match what compare-elim now expects.
5889 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
5890 (xorsi3_flags, one_cmplsi2_flags): Likewise.
5891
5892 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
5893 after the compare-elim changes.
5894 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
5895 the vector to match what compare-elim now expects.
5896 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
5897 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
5898 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
5899 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
5900 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
5901
5902 * config/visium/visium.c (single_set_and_flags): Fix where
5903 we look for cc setter after the compare-elim changes.
5904 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
5905 with the vector to match what compare-elim now expects.
5906 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
5907 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
5908 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
5909 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
5910 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
5911 (neg<mode>2_insn_set_overflow): Likewise.
5912
5913 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
5914
5915 PR middle-end/79794
5916 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
5917 maybe_expand_insn call, set ops[0].target. If still set after call,
5918 set alt_rtl. Add extra arg to recursive calls.
5919 (extract_bit_field): Add alt_rtl argument. Pass to
5920 extract_bit_field.
5921 * expmed.h (extract_bit_field): Fix prototype.
5922 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
5923 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
5924 to extract_bit_field_calls.
5925 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
5926 Pass alt_rtl to extract_bit_field calls.
5927 * calls.c (store_unaligned_arguments_into_psuedos)
5928 load_register_parameters): Pass extra NULL to extract_bit_field calls.
5929 * optabs.c (maybe_legitimize_operand): Clear op->target when call
5930 gen_reg_rtx.
5931 * optabs.h (struct expand_operand): Add target bitfield.
5932
5933 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
5934
5935 * compare-elim.c (try_eliminate_compare): Canonicalize
5936 operation with embedded compare to
5937 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
5938 (set (reg) (operation)].
5939
5940 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
5941
5942 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
5943
5944 PR target/80723
5945 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
5946 cost of adding a carry flag for ADC instruction.
5947 [case MINUS]: Ignore the cost of subtracting a carry flag
5948 for SBB instruction.
5949
5950 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
5951
5952 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
5953 and x86intrin.h
5954 * config/rs6000/bmiintrin.h: New file.
5955 * config/rs6000/bmi2intrin.h: New file.
5956 * config/rs6000/x86intrin.h: New file.
5957
5958 2017-05-12 Jeff Law <law@redhat.com>
5959
5960 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
5961 markers.
5962
5963 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
5964
5965 PR middle-end/80707
5966 * tree-cfg.c: Remove cfg edges of unreachable case statements.
5967
5968 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
5969
5970 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
5971 early expansion of vector divide builtins.
5972 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
5973 builtins identified as having unsigned arguments.
5974
5975 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
5976
5977 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
5978 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
5979 expansion of vector logical operations (and, andc, or, xor,
5980 nor, orc, nand).
5981
5982 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
5983
5984 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
5985 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
5986
5987 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
5988
5989 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
5990 early GIMPLE expansion of vector multiplies.
5991
5992 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
5993
5994 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
5995 TARGET_HAVE_MOVT conditional.
5996 (movt splitter): Likewise.
5997
5998 2017-05-12 Richard Biener <rguenther@suse.de>
5999
6000 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
6001 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6002 Fold all stmts not inplace.
6003
6004 2017-05-12 Richard Biener <rguenther@suse.de>
6005
6006 PR tree-optimization/80713
6007 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
6008 inserted_exprs bit for not removed stmts.
6009
6010 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
6011
6012 PR middle-end/69921
6013 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
6014 parallelized" attribute for parallelized OpenACC kernels.
6015 * omp-offload.c (execute_oacc_device_lower): Use it.
6016
6017 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
6018 Set "oacc kernels" attribute.
6019 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
6020 parameter. Adjust all users.
6021 (oacc_fn_attrib_kernels_p): Remove function.
6022 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
6023 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
6024 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
6025 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
6026 assert "oacc kernels" attribute is set.
6027
6028 2017-05-11 Carl Love <cel@us.ibm.com>
6029
6030 * config/rs6000/rs6000-c: Add support for built-in functions
6031 vector unsigned char vec_popcnt (vector signed char)
6032 vector unsigned char vec_popcnt (vector unsigned char)
6033 vector unsigned short vec_popcnt (vector signed short)
6034 vector unsigned short vec_popcnt (vector unsigned short)
6035 vector unsigned int vec_popcnt (vector signed int)
6036 vector unsigned int vec_popcnt (vector unsigned int)
6037 vector unsigned long long vec_popcnt (vector signed long long)
6038 vector unsigned long long vec_popcnt (vector unsigned long long)
6039 vector signed long long vec_slo (vector signed long long,
6040 vector signed char)
6041 vector signed long long vec_slo (vector signed long long,
6042 vector unsigned char)
6043 vector unsigned long long vec_slo (vector unsigned long long,
6044 vector signed char)
6045 vector unsigned long long vec_slo (vector unsigned long long,
6046 vector unsigned char)
6047 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
6048 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
6049 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
6050 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
6051 * doc/extend.texi: Update the built-in documentation file for the
6052 new built-in functions.
6053
6054 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6055
6056 * attribs.h (sorted_attr_string): Move machine independent
6057 functions for target clone support from the i386 port to common
6058 code. Rename ix86_function_versions to common_function_versions.
6059 Rename make_name to make_unique_name.
6060 (common_function_versions): Likewise.
6061 (make_unique_name): Likewise.
6062 (make_dispatcher_decl): Likewise.
6063 (is_function_default_version): Likewise.
6064 * attribs.c (attr_strcmp): Likewise.
6065 (sorted_attr_string): Likewise.
6066 (common_function_versions): Likewise.
6067 (make_unique_name): Likewise.
6068 (make_dispatcher_decl): Likewise.
6069 (is_function_default_version): Likewise.
6070 * config/i386/i386.c (attr_strcmp): Likewise.
6071 (sorted_attr_string): Likewise.
6072 (ix86_function_versions): Likewise.
6073 (make_name): Likewise.
6074 (make_dispatcher_decl): Likewise.
6075 (is_function_default_version): Likewise.
6076 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
6077
6078 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6079
6080 PR target/80695
6081 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6082 Account for direct move costs for vec_construct of integer
6083 vectors.
6084
6085 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
6086
6087 PR target/80706
6088 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
6089 (UNSPEC_STX_ATOMIC): Ditto.
6090 (loaddi_via_sse): New insn.
6091 (storedi_via_sse): Ditto.
6092 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
6093 Update corresponding peephole2 patterns.
6094 (atomic_storedi_fpu): Ditto.
6095
6096 2017-05-11 Julia Koval <julia.koval@intel.com>
6097
6098 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
6099 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
6100 New intrinsics.
6101 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
6102 (__builtin_ia32_rsqrt14ss_mask): New builtins.
6103 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
6104
6105 2017-05-11 Nathan Sidwell <nathan@acm.org>
6106
6107 * graphite-poly.c: Include dumpfile.h.
6108
6109 * dumpfle.h (dump_function): Declare here ...
6110 * tree-dump.h (dump_function): ... not here.
6111 * dumpfile.c: #include tree-cfg.h.
6112 (dump_function): Move here from ...
6113 * tree-dump.c (dump_function): ... here.
6114 * gimplify.c: #include splay-tree.h, not tree-dump.h.
6115 * graphite-poly.c: Don't include tree-dump.h.
6116 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
6117 * print-tree.c: Likewise.
6118 * stor-layout.c: Likewise.
6119 * tree-nested.c: Likewise.
6120
6121 * dumpfile.c (dump_start): Use TDF_FLAGS.
6122 (dump_enable_all): Fix TDF_KIND check thinko.
6123
6124 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
6125
6126 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6127 array entries to represent two legal parameterizations of the
6128 overloaded __builtin_cmpb function, as represented by the
6129 P6_OV_BUILTIN_CMPB constant.
6130 (altivec_resolve_overloaded_builtin): Add special case handling
6131 for the __builtin_cmpb function, as represented by the
6132 P6_OV_BUILTIN_CMPB constant.
6133 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
6134 (BU_P6_64BIT_2): New macro.
6135 (BU_P6_OVERLOAD_2): New macro
6136 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
6137 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
6138 (CMPB): Add overload support to represent both 32-bit and 64-bit
6139 compare-bytes function.
6140 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
6141 support for TARGET_CMPB.
6142 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
6143 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
6144 documentation of the __builtin_cmpb overloaded built-in function.
6145
6146 2017-05-11 Richard Biener <rguenther@suse.de>
6147
6148 PR tree-optimization/80705
6149 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
6150 bases are not vectorizable.
6151
6152 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6153
6154 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
6155 when counting register pressure.
6156
6157 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6158
6159 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
6160 (iv_ca_more_deps): Renamed to ...
6161 (iv_ca_compare_deps): ... this.
6162 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
6163
6164 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6165
6166 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
6167 to ...
6168 (determine_group_iv_costs): ... here.
6169 (find_inv_vars_cb): Record inv var if it's not recorded before.
6170
6171 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6172
6173 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
6174 (get_shiftadd_cost): Ditto.
6175
6176 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6177
6178 * tree-ssa-address.c: Include header file.
6179 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
6180 address.
6181 (add_to_parts): Refactor.
6182 (addr_to_parts): New parameter. Update use of move_hint_to_base.
6183 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
6184 in new order.
6185
6186 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6187
6188 PR tree-optimization/53090
6189 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
6190 COMP_IV_EXPR_2.
6191 (extract_cond_operands): Detect condition with IV on both sides
6192 and return COMP_IV_EXPR_2.
6193 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
6194 (rewrite_use_compare): Simplify by removing call to function
6195 extract_cond_operands.
6196
6197 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6198
6199 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
6200 (extract_cond_operands): Detect condition comparing against non-
6201 invariant bound and return appropriate enum value.
6202 (find_interesting_uses_cond): Update use of extract_cond_operands.
6203 Handle its return value accordingly.
6204 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
6205
6206 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6207
6208 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
6209 nonlinear iv_use computation in loop invariant sensitive way.
6210
6211 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6212
6213 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
6214 (find_iv_candidates): Call relate_compare_use_with_all_cands.
6215
6216 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6217
6218 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
6219 (dump_cand): Support iv_cand.inv_exprs.
6220 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
6221 for candidates.
6222 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
6223 iv_cand.inv_exprs.
6224
6225 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6226
6227 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
6228 from ...
6229 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
6230 as local function. Include necessary header files.
6231 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
6232
6233 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6234
6235 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
6236
6237 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6238
6239 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
6240 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
6241 RSHIFT_EXPR and BIT_NOT_EXPR.
6242
6243 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6244
6245 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
6246 (adjust_setup_cost): New parameter supporting round up adjustment.
6247 (struct address_cost_data): Delete.
6248 (force_expr_to_var_cost): Don't bound cost with spill_cost.
6249 (split_address_cost, ptr_difference_cost): Delete.
6250 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
6251 (struct ainc_cost_data): New struct.
6252 (get_address_cost_ainc): New function.
6253 (get_address_cost, get_computation_cost): Reimplement.
6254 (determine_group_iv_cost_address): Record inv_expr for all uses of
6255 a group.
6256 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
6257 (iv_ca_has_deps): Reimplemented to ...
6258 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
6259 than OLD_CP.
6260 (iv_ca_extend): Call iv_ca_more_deps.
6261
6262 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6263
6264 * tree-ssa-address.c (struct mem_address): Move to header file.
6265 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
6266 * tree-ssa-address.h (struct mem_address): Move from C file.
6267 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
6268
6269 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6270
6271 * tree-affine.h (aff_combination_type): New interface.
6272 (aff_combination_zero_p): Remove static.
6273 (aff_combination_const_p): New interface.
6274 (aff_combination_singleton_var_p): New interfaces.
6275
6276 2017-05-11 Richard Biener <rguenther@suse.de>
6277
6278 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6279 Skip unreachable blocks and destinations.
6280 (eliminate): Move stmt removal and fixup ...
6281 (fini_eliminate): ... here. Skip inserted exprs.
6282 (pass_pre::execute): Move fini_pre after fini_eliminate.
6283 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
6284 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
6285 PRE to get rid of dead code that has invalid SSA form and
6286 split critical edges again.
6287
6288 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6289
6290 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
6291
6292 2017-05-11 Richard Biener <rguenther@suse.de>
6293
6294 * passes.c (execute_function_todo): Verify loops if they are
6295 said to be up-to-date.
6296 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
6297 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
6298
6299 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
6300
6301 PR target/80090
6302 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
6303 handle calling assemble_external ourself.
6304
6305 PR target/79027
6306 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
6307 modes with zero size. Enhance comment.
6308
6309 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6310
6311 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
6312 built-ins for vec_xl and vec_xst with short and char pointer
6313 arguments.
6314
6315 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
6316
6317 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
6318 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
6319 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
6320 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
6321 (_mm_maskz_min_round_ss): New intrinsics.
6322 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
6323 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
6324 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
6325 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
6326 (__builtin_ia32_minss_mask_round): New builtins.
6327 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6328 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
6329 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
6330 Rename to ...
6331 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
6332 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
6333 Change to ...
6334 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
6335 ... this.
6336
6337 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
6338
6339 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
6340 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
6341 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
6342 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
6343 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
6344 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
6345 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
6346 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6347 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
6348 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
6349 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
6350 (__builtin_ia32_mulss_mask_round): New builtins.
6351 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6352 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
6353 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
6354 Rename to ...
6355 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
6356 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
6357 Change to ...
6358 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
6359 ... this.
6360
6361 2017-05-10 Julia Koval <julia.koval@intel.com>
6362
6363 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
6364 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
6365 (_mm256_setr_m128i): New intrinsics.
6366
6367 2017-05-10 Julia Koval <julia.koval@intel.com>
6368
6369 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
6370 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
6371 (_mm_maskz_rcp14_ss): New intrinsics.
6372 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
6373 (__builtin_ia32_rcp14ss_mask): New builtins.
6374 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
6375
6376 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
6377
6378 PR tree-optimization/51513
6379 * tree-cfg.c (gimple_seq_unreachable_p): New function.
6380 (assert_unreachable_fallthru_edge_p): Use it.
6381 (group_case_labels_stmt): Likewise.
6382 * tree-cfg.h: Prototype it.
6383 * stmt.c: Include cfghooks.h and tree-cfg.h.
6384 (emit_case_dispatch_table) <gap_label>: New local variable.
6385 Use it to fill dispatch table gaps.
6386 Test for default_label before updating probabilities.
6387 (expand_case) <default_label>: Remove unneeded initialization.
6388 Test for unreachable default case statement and remove its edge.
6389 Set default_label accordingly.
6390 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
6391
6392 2017-05-10 Carl Love <cel@us.ibm.com>
6393
6394 * config/rs6000/rs6000-c: Add support for built-in functions
6395 vector signed char vec_neg (vector signed char)
6396 vector signed short int vec_neg (vector short int)
6397 vector signed int vec_neg (vector signed int)
6398 vector signed long long vec_neg (vector signed long long)
6399 vector float vec_neg (vector float)
6400 vector double vec_neg (vector double)
6401 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
6402 overload.
6403 * config/rs6000/altivec.h: Add define for vec_neg
6404 * doc/extend.texi: Update the built-in documentation for the
6405 new built-in functions.
6406
6407 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6408
6409 PR tree-optimization/77644
6410 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
6411
6412 2017-05-10 Nathan Sidwell <nathan@acm.org>
6413
6414 * dumpfile.h (TDI_lang_all): New.
6415 (TDF_KIND): New. Renumber others
6416 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
6417 than bits.
6418 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
6419 lang-all.
6420 (get_dump_file_name): Adjust suffix generation.
6421 (dump_enable_all): Use TDF_KIND.
6422 * doc/invoke.texi (-fdump-lang-all): Document.
6423
6424 * dumpfile.h: Tabify.
6425
6426 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
6427
6428 PR target/80671
6429 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
6430 Move member access before delete.
6431
6432 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
6433
6434 * tree-inline.c (expand_call_inline): Split block at stmt
6435 before the call.
6436
6437 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
6438
6439 PR target/68163
6440 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
6441 are now unused after splitting mov{sf,sd}_hardfloat.
6442 (f32_lr2): Likewise.
6443 (f32_lm): Likewise.
6444 (f32_lm2): Likewise.
6445 (f32_li): Likewise.
6446 (f32_li2): Likewise.
6447 (f32_lv): Likewise.
6448 (f32_sr): Likewise.
6449 (f32_sr2): Likewise.
6450 (f32_sm): Likewise.
6451 (f32_sm2): Likewise.
6452 (f32_si): Likewise.
6453 (f32_si2): Likewise.
6454 (f32_sv): Likewise.
6455 (f32_dm): Likewise.
6456 (f32_vsx): Likewise.
6457 (f32_av): Likewise.
6458 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
6459 For movsf, order stores so the VSX stores occur before the GPR
6460 store which encourages the register allocator to use a traditional
6461 FPR instead of a GPR. For movsd, order the stores so that the GPR
6462 store comes before the VSX stores to allow the power6 to work.
6463 This is due to the power6 not having a 32-bit integer store
6464 instruction from a FPR.
6465 (movsf_hardfloat): Likewise.
6466 (movsd_hardfloat): Likewise.
6467
6468 2017-05-09 Martin Sebor <msebor@redhat.com>
6469
6470 PR translation/80280
6471 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
6472 added in r247778.
6473
6474 PR translation/80280
6475 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
6476 data member added in r247778.
6477 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
6478
6479 2017-05-09 Nathan Sidwell <nathan@acm.org>
6480
6481 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
6482
6483 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
6484 typedefs.
6485
6486 2017-05-09 Marek Polacek <polacek@redhat.com>
6487
6488 * doc/invoke.texi: Fix typo.
6489
6490 2017-05-09 Richard Biener <rguenther@suse.de>
6491
6492 * tree-vrp.c (vrp_val_is_max): Adjust comment.
6493 (vrp_val_is_min): Likewise.
6494 (set_value_range_to_value): Likewise.
6495 (set_value_range_to_nonnegative): Likewise.
6496 (gimple_assign_nonzero_p): Likewise.
6497 (gimple_stmt_nonzero_p): Likewise.
6498 (vrp_int_const_binop): Likewise. Remove unreachable case.
6499 (adjust_range_with_scev): Adjust comments.
6500 (compare_range_with_value): Likewise.
6501 (extract_range_from_phi_node): Likewise.
6502 (test_for_singularity): Likewise.
6503
6504 2017-05-09 Richard Biener <rguenther@suse.de>
6505
6506 * tree-vrp.c (get_single_symbol): Add assert that we don't
6507 get overflowed constants as invariant part.
6508 (compare_values_warnv): Add comment before the TREE_NO_WARNING
6509 checks. Use wi::cmp instead of recursing for integer constants.
6510 (compare_values): Just ignore whether we assumed undefined
6511 overflow instead of failing the compare.
6512 (extract_range_for_var_from_comparison_expr): Add comment before the
6513 TREE_NO_WARNING sets.
6514 (test_for_singularity): Likewise.
6515 (extract_range_from_comparison): Do not disable optimization
6516 when we assumed undefined overflow.
6517 (extract_range_basic): Remove init of unused var.
6518
6519 2017-05-09 Richard Biener <rguenther@suse.de>
6520
6521 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
6522 (extract_range_from_multiplicative_op_1): Adjust.
6523 (extract_range_from_binary_expr_1): Use int_const_binop.
6524
6525 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
6526
6527 PR target/80101
6528 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
6529 rs6000_store_data_bypass_p in seven define_bypass directives and
6530 in several comments.
6531 * config/rs6000/rs6000-protos.h: Add prototype for
6532 rs6000_store_data_bypass_p function.
6533 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
6534 function implements slightly different (rs6000-specific) semantics
6535 than store_data_bypass_p, returning false rather than aborting
6536 with assertion error when arguments do not satisfy the
6537 requirements of store data bypass.
6538 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
6539 rs6000_store_data_bypass_p.
6540
6541 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
6542
6543 * config/xtensa/xtensa-protos.h
6544 (xtensa_initial_elimination_offset): New declaration.
6545 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
6546 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
6547 macro definition, add case for FRAME_POINTER_REGNUM when
6548 FRAME_GROWS_DOWNWARD.
6549 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
6550 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
6551 xtensa_initial_elimination_offset.
6552
6553 2017-05-08 Nathan Sidwell <nathan@acm.org>
6554
6555 * doc/invoke.texi: Alphabetize -fdump options.
6556
6557 2017-05-08 Martin Sebor <msebor@redhat.com>
6558
6559 PR translation/80280
6560 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
6561
6562 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
6563
6564 * target.def (compute_frame_layout): New optional target hook.
6565 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
6566 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
6567 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
6568 target hook.
6569 * reload1.c (verify_initial_elim_offsets): Likewise.
6570 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
6571 (use_simple_return_p): Call arm_compute_frame_layout if needed.
6572 (arm_get_frame_offsets): Split up into this ...
6573 (arm_compute_frame_layout): ... and this function.
6574
6575 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
6576
6577 * config/aarch64/constraints.md (Usa): New constraint.
6578 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
6579
6580 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
6581
6582 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
6583 with_multilib_list after it has been checked.
6584
6585 2017-05-08 Richard Biener <rguenther@suse.de>
6586
6587 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
6588 (bitmap_set_subtract_values): Likewise.
6589
6590 2017-05-08 Richard Biener <rguenther@suse.de>
6591
6592 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
6593 (gimple_assign_nonzero): ... this and remove strict_overflow_p
6594 argument.
6595 (gimple_stmt_nonzero_warnv_p): Rename to ...
6596 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
6597 argument.
6598 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
6599 (extract_range_basic): Adjust, do not disable propagation on
6600 strict overflow sensitive simplification.
6601 (vrp_visit_cond_stmt): Likewise.
6602
6603 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
6604
6605 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
6606 body size unconditionally.
6607
6608 2017-05-07 Jeff Law <law@redhat.com>
6609
6610 Revert:
6611 2017-05-06 Jeff Law <law@redhat.com>
6612 PR tree-optimization/78496
6613 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
6614 code.
6615
6616 PR tree-optimization/78496
6617 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
6618 (simplify_stmt_using_ranges): Call it.
6619 (vrp_dom_walker::before_dom_children): Extract equivalences
6620 from an ASSERT_EXPR with an equality comparison against a
6621 constant.
6622
6623 2017-05-06 Jeff Law <law@redhat.com>
6624
6625 PR tree-optimization/78496
6626 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
6627 code.
6628
6629 PR tree-optimization/78496
6630 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
6631 (simplify_stmt_using_ranges): Call it.
6632 (vrp_dom_walker::before_dom_children): Extract equivalences
6633 from an ASSERT_EXPR with an equality comparison against a
6634 constant.
6635
6636 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
6637
6638 * lra-constraints.c (lra_copy_reg_equiv): New function.
6639 (split_reg): Use it to copy equivalence information from the
6640 original register to the spill register.
6641
6642 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
6643
6644 PR rtl-optimization/75964
6645 * simplify-rtx.c (simplify_const_relational_operation): Remove
6646 invalid handling of comparisons of integer ABS.
6647
6648 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
6649
6650 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
6651 initialize to zero.
6652 (init_regs): Remove declaration.
6653 (function_arg_advance_32): Initialize error_p as boolean variable.
6654
6655 2017-05-05 Nathan Sidwell <nathan@acm.org>
6656
6657 * store-motion.c (remove_reachable_equiv_notes): Reformat long
6658 lines. Use for (;;).
6659
6660 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6661
6662 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
6663 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
6664 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
6665 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
6666 VF=2 that require versioning.
6667
6668 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6669
6670 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
6671 int.
6672
6673 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6674
6675 * diagnostic.h (diagnostic_override_option_index): Convert from
6676 macro to inline function.
6677
6678 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6679
6680 * diagnostic.c (last_module_changed_p): New function.
6681 (set_last_module): New function.
6682 (diagnostic_report_current_module): Convert macro usage to
6683 the above functions.
6684 * diagnostic.h (diagnostic_context::last_module): Strengthen
6685 from const line_map * to const line_map_ordinary *.
6686 (diagnostic_last_module_changed): Delete macro.
6687 (diagnostic_set_last_module): Delete macro.
6688
6689 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6690
6691 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
6692 with diagnostic_report_diagnostic.
6693 (diagnostic_n_impl_richloc): Likewise.
6694 * diagnostic.h (report_diagnostic): Delete macro.
6695 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
6696 with diagnostic_report_diagnostic.
6697 * substring-locations.c (format_warning_va): Likewise.
6698
6699 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6700
6701 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
6702 save/restor of format_spec. Move option-printing code to...
6703 (print_option_information): ...this new function, and
6704 reimplement by simply printing to the pretty_printer,
6705 rather than appending to the format string.
6706
6707 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6708
6709 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
6710 handling logic into...
6711 (update_effective_level_from_pragmas): ...this new function.
6712
6713 2017-05-04 Andrew Waterman <andrew@sifive.com>
6714
6715 * config/riscv/riscv.opt (mstrict-align): New option.
6716 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
6717 (SLOW_UNALIGNED_ACCESS): Define.
6718 (riscv_slow_unaligned_access): Declare.
6719 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
6720 field.
6721 (riscv_slow_unaligned_access): New variable.
6722 (rocket_tune_info): Set slow_unaligned_access to true.
6723 (optimize_size_tune_info): Set slow_unaligned_access to false.
6724 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
6725 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
6726 (riscv_option_override): Set riscv_slow_unaligned_access.
6727 * doc/invoke.texi: Add -mstrict-align to RISC-V.
6728
6729 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
6730
6731 * config/riscv/riscv.md: Unify indentation.
6732
6733 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6734
6735 PR target/79038
6736 PR target/79202
6737 PR target/79203
6738 * config/rs6000/rs6000.md (u code attribute): Add FIX and
6739 UNSIGNED_FIX.
6740 (extendsi<mode>2): Add support for doing sign extension via
6741 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
6742 don't have ISA 3.0 instructions.
6743 (extendsi<mode>2 splitter): Likewise.
6744 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
6745 generate the normal insns since SImode can now go in vector
6746 registers. Disallow the special UNSPECs needed for previous
6747 machines to hide SImode being used. Add new insns
6748 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
6749 (fix_trunc<mode>si2_stfiwx): Likewise.
6750 (fix_trunc<mode>si2_internal): Likewise.
6751 (fixuns_trunc<mode>si2): Likewise.
6752 (fixuns_trunc<mode>si2_stfiwx): Likewise.
6753 (fctiw<u>z_<mode>_smallint): Likewise.
6754 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
6755 of floating point to 32-bit integer from doing a direct move to
6756 the GPR registers to do a store.
6757 (fctiwz_<mode>): Break long line.
6758
6759 2017-05-05 Bin Cheng <bin.cheng@arm.com>
6760
6761 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
6762 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
6763 (addr_list, addr_offset_valid_p): New.
6764 (split_address_groups): Check offset validity with above function.
6765 (gt-tree-ssa-loop-ivopts.h): Include header file.
6766
6767 2017-05-05 Nathan Sidwell <nathan@acm.org>
6768
6769 * config.gcc (arm*-*-*): Add missing 'fi'.
6770
6771 2017-05-05 Steve Ellcey <sellcey@cavium.com>
6772
6773 * doc/invoke.texi (-fopt-info): Explicitly say order of options
6774 included in -fopt-info does not matter.
6775 * doc/optinfo.texi (-fopt-info): Fix description of default
6776 behavour. Explicitly say order of options included in -fopt-info
6777 does not matter.
6778
6779 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
6780
6781 * config.gcc: Allow combinations of aprofile and rmprofile values for
6782 --with-multilib-list.
6783 * config/arm/t-multilib: New file.
6784 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
6785 variables. Remove setting of ISA and floating-point ABI in
6786 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
6787 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
6788 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
6789 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
6790 CPU options.
6791 * config/arm/t-rmprofile: Likewise except for the matches changes.
6792 * doc/install.texi (--with-multilib-list): Document the combination of
6793 aprofile and rmprofile values and warn about pitfalls in doing that.
6794
6795 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
6796
6797 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
6798 (movdi_aarch64): Likewise.
6799
6800 2017-05-05 Jakub Jelinek <jakub@redhat.com>
6801
6802 PR tree-optimization/80632
6803 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
6804 field.
6805 (build_arrays): Initialize it for virtual phis.
6806 (fix_phi_nodes): Use it for virtual phis.
6807
6808 PR tree-optimization/80558
6809 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
6810 [x, y] op z into [x op, y op z] for op & or | if conditions
6811 are met.
6812
6813 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
6814 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
6815
6816 PR target/71607
6817 * config/arm/arm.md (use_literal_pool): Remove.
6818 (64-bit immediate split): No longer takes cost into consideration
6819 if arm_disable_literal_pool is enabled.
6820 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
6821 used when arm_disable_literal_pool is enabled.
6822 (arm_max_const_double_inline_cost): Remove use of
6823 arm_disable_literal_pool.
6824 (push_minipool_fix): Add assert.
6825 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
6826 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
6827 (no_literal_pool_sf_immediate): New.
6828
6829 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6830
6831 PR tree-optimization/80613
6832 * tree-ssa-dce.c (propagate_necessity): Remove cases for
6833 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
6834
6835 2017-05-05 Richard Biener <rguenther@suse.de>
6836
6837 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
6838
6839 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
6840
6841 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
6842 of this flag from insn conditions due to removal from r247495.
6843
6844 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
6845
6846 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
6847 New function.
6848 (arm_early_store_addr_dep_ptr): Likewise.
6849 * config/arm/aarch-common-protos.h
6850 (arm_early_load_addr_dep_ptr): Add prototype.
6851 (arm_early_store_addr_dep_ptr): Likewise.
6852 * config/arm/cortex-a53.md: Add new bypasses.
6853
6854 2017-05-05 Jakub Jelinek <jakub@redhat.com>
6855
6856 * tree.c (next_type_uid): Change type to unsigned.
6857 (type_hash_canon): Decrement back next_type_uid if
6858 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
6859 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
6860 if possible.
6861
6862 2017-05-04 Martin Sebor <msebor@redhat.com>
6863
6864 * builtins.c: Fix a trivial typo in a comment.
6865
6866 PR middle-end/79234
6867 * builtins.c (check_sizes): Adjust to handle reading past the end.
6868 Avoid printing excessive upper bound of ranges. Use %E to print
6869 tree nodes instead of converting them to %wu.
6870 (expand_builtin_memchr): New function.
6871 (compute_dest_size): Rename...
6872 (compute_objsize): ...to this.
6873 (expand_builtin_memcpy): Adjust.
6874 (expand_builtin_mempcpy): Adjust.
6875 (expand_builtin_strcat): Adjust.
6876 (expand_builtin_strcpy): Adjust.
6877 (check_strncat_sizes): Adjust.
6878 (expand_builtin_strncat): Adjust.
6879 (expand_builtin_strncpy): Adjust and simplify.
6880 (expand_builtin_memset): Adjust.
6881 (expand_builtin_bzero): Adjust.
6882 (expand_builtin_memcmp): Adjust.
6883 (expand_builtin): Handle memcmp.
6884 (maybe_emit_chk_warning): Check strncat just once.
6885
6886 2017-05-04 Martin Sebor <msebor@redhat.com>
6887
6888 PR preprocessor/79214
6889 PR middle-end/79222
6890 PR middle-end/79223
6891 * builtins.c (check_sizes): Add inlining context and issue
6892 warnings even when -Wno-system-headers is set.
6893 (check_strncat_sizes): Same.
6894 (expand_builtin_strncat): Same.
6895 (expand_builtin_memmove): New function.
6896 (expand_builtin_stpncpy): Same.
6897 (expand_builtin): Handle memmove and stpncpy.
6898
6899 2017-05-04 Bin Cheng <bin.cheng@arm.com>
6900
6901 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
6902 which is not used any more.
6903
6904 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
6905
6906 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
6907
6908 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
6909
6910 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
6911 (cortexa53_tunings): Likewise.
6912 (cortexa57_tunings): Likewise.
6913 (cortexa72_tunings): Likewise.
6914 (cortexa73_tunings): Likewise.
6915
6916 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
6917
6918 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
6919 Set loop alignment to 8.
6920
6921 2017-05-04 Martin Sebor <msebor@redhat.com>
6922
6923 PR translation/80280
6924 * builtins.c (expand_builtin_object_size): Add missing quoting to
6925 %D and like directives.
6926 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
6927 (hsa_type_for_tree_type): Same.
6928 (verify_function_arguments): Same.
6929 * symtab.c (symbol_table::change_decl_assembler_name): Same.
6930 * varasm.c (get_section): Same.
6931 (mark_weak): Same.
6932
6933 2017-05-04 Martin Sebor <msebor@redhat.com>
6934
6935 PR translation/80280
6936 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
6937
6938 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
6939
6940 * config/aarch64/aarch64.c (generic_addrcost_table):
6941 Change HI/TI mode setting.
6942
6943 2017-05-04 Martin Jambor <mjambor@suse.cz>
6944
6945 PR tree-optimization/80622
6946 * tree-sra.c (comes_initialized_p): New function.
6947 (build_accesses_from_assign): Only set write lazily when
6948 comes_initialized_p is false.
6949 (analyze_access_subtree): Use comes_initialized_p.
6950 (propagate_subaccesses_across_link): Assert !comes_initialized_p
6951 instead of testing for PARM_DECL.
6952
6953 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6954
6955 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
6956 constraint on operand 0 to allow more general addressing modes.
6957 Adjust output template.
6958 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
6959 New function.
6960 * config/aarch64/aarch64-protos.h
6961 (aarch64_address_valid_for_prefetch_p): Declare prototype.
6962 * config/aarch64/constraints.md (Dp): New address constraint.
6963 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
6964 predicate.
6965
6966 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
6967
6968 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
6969 update use of estimate_ipcp_clone_size_and_time.
6970 (estimate_local_effects): Update use of
6971 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
6972 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
6973 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
6974 Return nonspecialized time.
6975
6976 2017-05-04 Richard Biener <rguenther@suse.de>
6977
6978 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
6979 for the last VUSE which def dominates the PHI. Directly call
6980 maybe_skip_until.
6981 (get_continuation_for_phi_1): Remove.
6982
6983 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
6984
6985 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
6986 to explain the use of truncating division. Cap the number of
6987 iterations to the maximum given by nb_iterations_upper_bound,
6988 if defined.
6989
6990 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
6991
6992 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
6993 * configure: Regenerate.
6994 * config.in: Regenerate.
6995 * config/i386/driver-mingw32.c: new file.
6996 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
6997 * config.host: Link driver-mingw32.o on MinGW host.
6998 * doc/install.texi: Document new --enable-mingw-wildcard configure
6999 option.
7000
7001 2017-05-04 Marek Polacek <polacek@redhat.com>
7002
7003 PR tree-optimization/80612
7004 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
7005
7006 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7007 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
7008
7009 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
7010 (movt splitter): Likewise.
7011 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
7012 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
7013 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
7014 block for Thumb-1 with MOVT.
7015 (thumb2_legitimate_address_p): Move code block ...
7016 (can_avoid_literal_pool_for_label_p): ... into this new function.
7017 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
7018 literal pool.
7019 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
7020 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
7021 "M-profile targets with the MOVT instruction".
7022
7023 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7024
7025 * config/arm/arm-builtins.c (arm_init_builtins): Rename
7026 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
7027 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
7028
7029 2017-05-04 Martin Liska <mliska@suse.cz>
7030
7031 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
7032 variable cond_code.
7033
7034 2017-05-04 Richard Biener <rguenther@suse.de>
7035
7036 * tree.c (array_at_struct_end_p): Handle arrays at struct
7037 end with flexarrays more conservatively. Refactor and treat
7038 arrays of arrays or aggregates more strict. Fix
7039 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
7040 * tree.c (array_at_struct_end_p): Adjust prototype.
7041 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
7042 * gimple-fold.c (get_range_strlen): Likewise.
7043 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
7044
7045 2017-05-04 Richard Biener <rguenther@suse.de>
7046
7047 PR tree-optimization/31130
7048 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
7049 false.
7050 (supports_overflow_infinity): Likewise.
7051 (is_negative_overflow_infinity): Likewise.
7052 (is_positive_overflow_infinity): Likewise.
7053 (is_overflow_infinity): Likewise.
7054 (stmt_overflow_infinity): Likewise.
7055 (overflow_infinity_range_p): Likewise.
7056 (usable_range_p): Remove as always returning true.
7057 (make_overflow_infinity): Remove.
7058 (negative_overflow_infinity): Likewise.
7059 (positive_overflow_infinity): Likewise.
7060 (avoid_overflow_infinity): Likewise.
7061 (set_value_range): Adjust accordingly.
7062 (set_value_range_to_nonnegative): Likewise, remove now unused
7063 overflow_infinity arg.
7064 (vrp_operand_equal_p): Adjust.
7065 (update_value_range): Likewise.
7066 (range_int_cst_singleton_p): Likewise.
7067 (operand_less_p): Likewise.
7068 (compare_values_warnv): Likewise.
7069 (extract_range_for_var_from_comparison_expr): Likewise.
7070 (vrp_int_const_binop): Likewise.
7071 (zero_nonzero_bits_from_vr): Likewise.
7072 (extract_range_from_multiplicative_op_1): Likewise.
7073 (extract_range_from_binary_expr_1): Likewise.
7074 (extract_range_from_unary_expr): Likewise.
7075 (extract_range_from_comparison): Likewise.
7076 (extract_range_basic): Likewise.
7077 (adjust_range_with_scev): Likewise.
7078 (compare_ranges): Likewise.
7079 (compare_range_with_value): Likewise.
7080 (dump_value_range): Likewise.
7081 (test_for_singularity): Likewise, remove strict_overflow_p parameter
7082 never used.
7083 (simplify_cond_using_ranges): Adjust.
7084
7085 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
7086
7087 * brig-builtins.def: Added a builtin for class_f64.
7088 * builtin-types.def: Added a builtin type needed by class_f64.
7089
7090 2017-05-03 Jason Merrill <jason@redhat.com>
7091
7092 * timevar.def: Add TV_CONSTEXPR.
7093
7094 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7095
7096 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
7097
7098 2017-05-03 Martin Jambor <mjambor@suse.cz>
7099
7100 * ipa-prop.c (ipa_update_after_lto_read): Removed.
7101 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
7102 * ipa-cp.c (ipcp_propagate_stage): Do not call
7103 ipa_update_after_lto_read.
7104 * ipa-inline.c (ipa_inline): Likewise.
7105
7106 2017-05-03 Martin Jambor <mjambor@suse.cz>
7107
7108 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
7109 tag. Added a default constructor and a destructor.
7110 (ipa_edge_args_sum_t): New class;
7111 (ipa_edge_args_sum): Declare.
7112 (ipa_edge_args_vector): Remove declaration.
7113 (IPA_EDGE_REF): Use ipa_edge_args_sum.
7114 (ipa_free_edge_args_substructures): Remove declaration.
7115 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
7116 (ipa_edge_args_info_available_for_edge_p): Likewise.
7117 * ipa-prop.c (ipa_edge_args_vector): Removed.
7118 (edge_removal_hook_holder): Likewise.
7119 (edge_duplication_hook_holder): Likewise.
7120 (ipa_edge_args_sum): New variable.
7121 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
7122 ipa_edge_args_vector.
7123 (ipa_free_edge_args_substructures): Likewise.
7124 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
7125 ipa_edge_args_vector.
7126 (ipa_edge_removal_hook): Turned into method
7127 ipa_edge_args_sum_t::remove.
7128 (ipa_edge_duplication_hook): Turned into method
7129 ipa_edge_args_sum_t::duplicate.
7130 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
7131 registering edge hooks.
7132 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
7133 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
7134 ipa_edge_args_sum instead of ipa_edge_args_vector.
7135 * ipa-profile.c (ipa_profile): Likewise.
7136
7137 2017-05-03 Martin Jambor <mjambor@suse.cz>
7138
7139 * symbol-summary.h (function_summary): New method exists.
7140 (function_summary::symtab_removal): Deallocate through release.
7141 (call_summary): New class.
7142 (gt_ggc_mx): New overload.
7143 (gt_pch_nx): Likewise.
7144 (gt_pch_nx): Likewise.
7145
7146 2017-05-03 Jeff Law <law@redhat.com>
7147
7148 PR tree-optimization/78496
7149 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
7150 from simplify_cond_using_ranges. Split off code to walk
7151 backwards through casts into ...
7152 (simplify_cond_using_ranges_2): New function.
7153 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
7154 (execute_vrp): After identifying jump threads, call
7155 simplify_cond_using_ranges_2.
7156
7157 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
7158
7159 PR bootstrap/80609
7160 * ipa-inline.h (inline_summary): Add ctor.
7161 (create_ggc): Do not use ggc_cleared_alloc.
7162
7163 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
7164 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7165
7166 * gcc.c (handle_braces): Support escaping in switch matching
7167 text.
7168 * doc/invoke.texi (Spec Files): Document it.
7169 Remove superfluous @code markup in items.
7170
7171 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7172
7173 * diagnostic-show-locus.c (struct column_range): New struct.
7174 (get_affected_columns): New function.
7175 (get_printed_columns): New function.
7176 (struct correction): New struct.
7177 (correction::ensure_capacity): New function.
7178 (correction::ensure_terminated): New function.
7179 (struct line_corrections): New struct.
7180 (line_corrections::~line_corrections): New dtor.
7181 (line_corrections::add_hint): New function.
7182 (layout::print_trailing_fixits): Reimplement in terms of the new
7183 classes.
7184 (selftest::test_overlapped_fixit_printing): New function.
7185 (selftest::diagnostic_show_locus_c_tests): Call it.
7186
7187 2017-05-03 Nathan Sidwell <nathan@acm.org>
7188
7189 Canonicalize canonical type hashing
7190 * tree.h (type_hash_canon_hash): Declare.
7191 * tree.c (type_hash_list, attribute_hash_list): Move into
7192 type_hash_canon_hash.
7193 (build_type_attribute_qual_variant): Break out hash code calc into
7194 type_hash_canon_hash.
7195 (type_hash_canon_hash): New. Generic type hash computation.
7196 (build_range_type_1, build_array_type_1, build_function_type,
7197 build_method_type_directly, build_offset_type, build_complex_type,
7198 make_vector_type): Call it.
7199
7200 2017-05-03 Richard Biener <rguenther@suse.de>
7201
7202 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7203 When all DRs have unknown misaligned do not always peel
7204 when there is a store but apply the same costing model as if
7205 there were only loads.
7206
7207 2017-05-03 Richard Biener <rguenther@suse.de>
7208
7209 Revert
7210 PR tree-optimization/80492
7211 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
7212 compare_base_decls returning dont-know properly.
7213
7214 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
7215
7216 * config/arm/iterators.md (CCSI): New mode iterator.
7217 (arch): New mode attribute.
7218 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
7219 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
7220 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
7221 code iterator for success result mode.
7222 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
7223 the corresponding new insn generators.
7224
7225 2017-05-03 Bin Cheng <bin.cheng@arm.com>
7226
7227 Revert r247509
7228 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7229 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
7230
7231 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
7232
7233 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
7234 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
7235 (DDR_A): Wrap DDR argument in brackets.
7236 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
7237 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
7238 (DDR_REVERSED_P): Likewise.
7239
7240 2017-05-03 Jakub Jelinek <jakub@redhat.com>
7241
7242 PR tree-optimization/79472
7243 * tree-switch-conversion.c (struct switch_conv_info): Add
7244 contiguous_range and default_case_nonstandard fields.
7245 (collect_switch_conv_info): Compute contiguous_range and
7246 default_case_nonstandard fields, don't clear final_bb if
7247 contiguous_range and only the default case doesn't have the required
7248 structure.
7249 (check_all_empty_except_final): Set default_case_nonstandard instead
7250 of failing if contiguous_range and the default case doesn't have empty
7251 block.
7252 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
7253 and only the default case doesn't have the required constants. Skip
7254 virtual phis.
7255 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
7256 if default_case_nonstandard.
7257 (build_constructors): Build constant 1 just once. Assert that default
7258 values aren't inserted in between cases if contiguous_range. Skip
7259 virtual phis.
7260 (build_arrays): Skip virtual phis.
7261 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
7262 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
7263 Handle virtual phis.
7264 (gen_inbound_check): Handle default_case_nonstandard case.
7265 (process_switch): Adjust check_final_bb caller. Call
7266 gather_default_values with the first non-default case instead of
7267 default case if default_case_nonstandard.
7268
7269 2017-05-02 Nathan Sidwell <nathan@acm.org>
7270
7271 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
7272 check. Fix formatting.
7273
7274 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
7275
7276 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
7277 errors when comparing specialized and unspecialized times.
7278
7279 2017-05-02 David Malcolm <dmalcolm@redhat.com>
7280
7281 * diagnostic-show-locus.c
7282 (layout::should_print_annotation_line_p): Make private.
7283 (layout::print_annotation_line): Make private.
7284 (layout::annotation_line_showed_range_p): Make private.
7285 (layout::show_ruler): Make private.
7286 (layout::print_source_line): Make private. Pass in line and
7287 line_width, rather than calling location_get_source_line. Drop
7288 returned value.
7289 (layout::print_leading_fixits): New method.
7290 (layout::print_any_fixits): Rename to...
7291 (layout::print_trailing_fixits): ...this, and make private.
7292 Don't print newline fixits.
7293 (diagnostic_show_locus): Move logic for printing one row into...
7294 (layout::print_line): ...this new function. Move the
7295 location_get_source_line call and error-handling from
7296 print_source_line to here. Call print_leading_fixits, and rename
7297 print_any_fixits to print_trailing_fixits.
7298 (selftest::test_fixit_insert_containing_newline): Update now that
7299 newlines are partially supported.
7300 (selftest::test_fixit_insert_containing_newline_2): New test.
7301 (selftest::test_fixit_replace_containing_newline): Update comments.
7302 (selftest::diagnostic_show_locus_c_tests): Call the new test.
7303 * edit-context.c (class added_line): New class.
7304 (class edited_line): Describe newline handling in comment.
7305 (edited_line::actually_edited_p): New method.
7306 (edited_line::print_content): Delete redundant decl.
7307 (edited_line::m_predecessors): New field.
7308 (edited_file::print_content): Call edited_line::print_content.
7309 (edited_file::print_diff): Update to support newlines.
7310 (edited_file::print_diff_hunk): Likewise.
7311 (edited_file::print_run_of_changed_lines): New function.
7312 (edited_file::print_diff_line): Convert to...
7313 (print_diff_line): ...this.
7314 (edited_file::get_effective_line_count): New function.
7315 (edited_line::edited_line): Initialize new field m_predecessors.
7316 (edited_line::~edited_line): Clean up m_predecessors.
7317 (edited_line::apply_fixit): Handle newlines.
7318 (edited_line::get_effective_line_count): New function.
7319 (edited_line::print_content): New function.
7320 (edited_line::print_diff_lines): New function.
7321 (selftest::test_applying_fixits_insert_containing_newline): New
7322 test.
7323 (selftest::test_applying_fixits_replace_containing_newline): New
7324 test.
7325 (selftest::insert_line): New function.
7326 (selftest::test_applying_fixits_multiple_lines): Add example of
7327 inserting a line.
7328 (selftest::edit_context_c_tests): Call the new tests.
7329
7330 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7331
7332 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
7333 parameter cand. Update dump information.
7334 (get_computation_cost): Update uses.
7335
7336 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7337
7338 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
7339 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
7340 (get_computation_at, rewrite_use_address): Update use of
7341 get_computation_aff.
7342
7343 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7344
7345 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
7346 (get_computation): Delete.
7347 (get_computation_cost): Implement like get_computation_cost_at.
7348 Use get_computation_at.
7349 (get_computation_cost_at): Delete.
7350 (rewrite_use_nonlinear_expr): Use get_computation_at.
7351 (rewrite_use_compare, remove_unused_ivs): Ditto.
7352
7353 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7354
7355 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
7356
7357 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7358
7359 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
7360 (ivopts_global_cost_for_size): Rename parameter and update uses.
7361 (iv_ca_recount_cost): Update uses.
7362 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
7363 candidates seperately in n_invs and n_cands.
7364 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
7365
7366 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7367
7368 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
7369 (find_inv_vars_cb): New.
7370 (find_depends): Renamed to ...
7371 (find_inv_vars): ... this.
7372 (add_candidate_1, force_var_cost): Call find_inv_vars.
7373 (split_address_cost, determine_group_iv_cost_cond): Ditto.
7374
7375 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7376
7377 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
7378 inv_vars. Add inv_exprs.
7379 (struct iv_cand): Rename depends_on to inv_vars.
7380 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
7381 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
7382 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
7383 (dump_cand): Dump inv_vars.
7384 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
7385 (record_invariant, find_depends, add_candidate_1): Ditto.
7386 (set_group_iv_cost, force_var_cost): Ditto.
7387 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
7388 (get_computation_cost_at, get_computation_cost): Ditto.
7389 (determine_group_iv_cost_generic): Ditto.
7390 (determine_group_iv_cost_address): Ditto.
7391 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
7392 (determine_group_iv_costs): Ditto.
7393 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
7394 (iv_ca_set_remove_invariants): Renamed to ...
7395 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
7396 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
7397 (iv_ca_set_add_invariants): Renamed to ...
7398 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
7399 (iv_ca_set_cp): Use iv_ca_set_add_invs.
7400 (iv_ca_has_deps): Support inv_vars and inv_exprs.
7401 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
7402 (create_new_ivs): Remove useless dump.
7403
7404 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7405
7406 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
7407 iv_cand code.
7408 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
7409 (iv_ca_set_no_cp, create_new_iv): Ditto.
7410
7411 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7412
7413 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
7414
7415 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
7416
7417 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
7418 function tree_check2.
7419
7420 2017-05-02 Martin Liska <mliska@suse.cz>
7421
7422 * doc/gcov.texi: Add missing preposition.
7423 * gcov.c (function_info::function_info): Properly fill up
7424 all member variables.
7425
7426 2017-05-02 Tamar Christina <tamar.christina@arm.com>
7427
7428 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
7429
7430 2017-05-02 Tamar Christina <tamar.christina@arm.com>
7431
7432 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
7433
7434 2017-05-02 Martin Liska <mliska@suse.cz>
7435
7436 PR lto/77954.
7437 * lto-streamer-in.c (lto_read_tree_1): Remove
7438 LTO_STREAMER_DEBUG.
7439 * lto-streamer.c (struct tree_hash_entry): Likewise.
7440 (struct tree_entry_hasher): Likewise.
7441 (tree_entry_hasher::hash): Likewise.
7442 (tree_entry_hasher::equal): Likewise.
7443 (lto_streamer_init): Likewise.
7444 (lto_orig_address_map): Likewise.
7445 (lto_orig_address_get): Likewise.
7446 (lto_orig_address_remove): Likewise.
7447 * lto-streamer.h: Likewise.
7448 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
7449 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
7450
7451 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
7452
7453 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
7454 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
7455 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
7456 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
7457 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
7458 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
7459 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
7460 (mm_maskz_sub_ss): New intrinsics.
7461 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7462 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
7463 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
7464 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
7465 (__builtin_ia32_subss_mask_round): New builtins.
7466 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7467 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
7468 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
7469 Renamed to ...
7470 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
7471 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
7472 Changed to ...
7473 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
7474 ... this.
7475
7476 2017-05-02 Martin Jambor <mjambor@suse.cz>
7477
7478 PR tree-optimization/78687
7479 * tree-sra.c (access): New field parent.
7480 (process_subtree_disqualification): New function.
7481 (disqualify_candidate): Call it.
7482 (build_accesses_from_assign): Reset write flag if creating an
7483 assighnment link.
7484 (build_access_subtree): Fill in parent field and also prpagate
7485 down grp_write flag.
7486 (create_artificial_child_access): New parameter set_grp_write, set
7487 grp_write to its value.
7488 (propagate_subaccesses_across_link): Also propagate grp_write flag
7489 values.
7490 (propagate_all_subaccesses): Push the closest parent back to work
7491 queue if add_access_to_work_queue returned true.
7492
7493 2017-05-02 Richard Biener <rguenther@suse.de>
7494
7495 * common.opt (fstrict-overflow): Alias negative to fwrapv.
7496 * doc/invoke.texi (fstrict-overflow): Remove all traces of
7497 -fstrict-overflow documentation.
7498 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
7499 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
7500 flag_strict_overflow.
7501 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
7502 * lto-opts.c (lto_write_options): Do not stream it.
7503 * lto-wrapper.c (merge_and_complain): Do not handle it.
7504 * opts.c (default_options_table): Do not set -fstrict-overflow.
7505 (finish_options): Likewise do not clear it when sanitizing.
7506 * simplify-rtx.c (simplify_const_relational_operation): Do not
7507 test flag_strict_overflow.
7508
7509 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
7510
7511 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
7512 using enabled attribute.
7513 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
7514 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
7515 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
7516 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
7517 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
7518 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
7519 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
7520 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
7521 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
7522 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
7523
7524 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
7525
7526 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
7527
7528 2017-05-02 Richard Biener <rguenther@suse.de>
7529
7530 PR tree-optimization/80591
7531 Revert
7532 2017-04-10 Richard Biener <rguenther@suse.de>
7533
7534 * tree-ssa-structalias.c (find_func_aliases): Properly handle
7535 asm inputs.
7536
7537 2017-05-02 Richard Biener <rguenther@suse.de>
7538
7539 PR tree-optimization/80549
7540 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
7541 (cleanup_tree_cfg_noloop): Create forwarders to known loop
7542 headers if they do not have a preheader.
7543
7544 2017-05-02 Martin Liska <mliska@suse.cz>
7545
7546 PR other/80589
7547 * common.opt: Fix typo.
7548 * doc/invoke.texi: Likewise.
7549
7550 2017-05-01 Jan Beulich <jbeulich@suse.com>
7551
7552 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
7553 swapping, add (x,x,m,x,n) alternative.
7554
7555 2017-05-01 Nathan Sidwell <nathan@acm.org>
7556
7557 * calls.c (combine_pending_stack_adjustment_and_call): Remove
7558 unnecessary unadjusted_alignment check.
7559
7560 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
7561
7562 PR c++/80038
7563 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
7564 operations here.
7565 * gimplify.c (gimplify_cilk_detach): New function.
7566 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
7567 * tree-core.h: Document EXPR_CILK_SPAWN.
7568 * tree.h (EXPR_CILK_SPAWN): Define.
7569
7570 2017-05-01 David Malcolm <dmalcolm@redhat.com>
7571
7572 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
7573 to use new fixit_hint representation, using the "replace" logic.
7574 (get_line_span_for_fixit_hint): Likewise.
7575 (layout::print_any_fixits): Likewise.
7576 (selftest::test_one_liner_many_fixits): Rename to...
7577 (selftest::test_one_liner_many_fixits_1): ...this, and update
7578 comment and expected output to reflect that the multiple fix-it
7579 hints are now consolidated into one insertion.
7580 (selftest::test_one_liner_many_fixits_2): New test.
7581 (selftest::test_diagnostic_show_locus_one_liner): Update for
7582 above.
7583 (selftest::test_fixit_consolidation): Update for fix-it API
7584 change.
7585 * diagnostic.c (print_parseable_fixits): Likewise.
7586 * edit-context.c (edited_line::m_line_events): Convert from
7587 auto_vec <line_event *> to auto_vec <line_event>.
7588 (class line_event): Convert from abstract base class to a concrete
7589 class, taking over the role of replace_event.
7590 (class insert_event): Delete.
7591 (class replace_event): Rename to class line_event. Convert to
7592 half-open range.
7593 (edit_context::add_fixits): Reimplement.
7594 (edit_context::apply_insert): Delete.
7595 (edit_context::apply_replace): Rename to...
7596 (edit_context::apply_fixit): ...this. Convert to half-open range.
7597 (edited_file::apply_insert): Delete.
7598 (edited_file::apply_replace): Rename to...
7599 (edited_file::apply_fixit): ...this.
7600 (edited_line::~edited_line): Drop deletion of events.
7601 (edited_line::apply_insert): Delete.
7602 (edited_line::apply_replace): Rename to...
7603 (edited_line::apply_fixit): ...this. Convert to half-open range.
7604 Update for change to type of m_line_events.
7605 * edit-context.h (edit_context::apply_insert): Delete.
7606 (edit_context::apply_replace): Rename to...
7607 (edit_context::apply_fixit): ...this.
7608
7609 2017-05-01 Martin Sebor <msebor@redhat.com>
7610
7611 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
7612 known.
7613
7614 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
7615
7616 PR target/68491
7617 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
7618 __get_cpuid_max returns 0.
7619 (__get_cpuid_count): Ditto.
7620
7621 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
7622
7623 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
7624 replacement expression is another instance of one of its arguments.
7625
7626 2017-05-01 Jakub Jelinek <jakub@redhat.com>
7627
7628 PR target/79430
7629 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
7630 check for stack push/pop autoinc.
7631 * config/i386/i386.c (ix86_agi_dependent): Return false
7632 if the only reason why modified_in_p returned true is that
7633 addr is SP based and set_insn is a push or pop.
7634
7635 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
7636
7637 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
7638 overflow check.
7639
7640 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
7641
7642 PR ipa/79224
7643 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
7644 (account_size_time): Use two predicates - exec_pred and
7645 nonconst_pred_ptr.
7646 (evaluate_conditions_for_known_args): Compute both clause and
7647 nonspec_clause.
7648 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
7649 (inline_summary_t::duplicate): Update.
7650 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
7651 separately.
7652 (compute_inline_parameters): Likewise.
7653 (estimate_edge_size_and_time): Update caluclation of time.
7654 (estimate_node_size_and_time): Compute both time and nonspecialized
7655 time.
7656 (estimate_ipcp_clone_size_and_time): Update.
7657 (inline_merge_summary): Update.
7658 (do_estimate_edge_time): Update.
7659 (do_estimate_edge_size): Update.
7660 (do_estimate_edge_hints): Update.
7661 (inline_read_section, inline_write_summary): Stream both new predicates.
7662 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
7663 as argument.
7664 (compute_inlined_call_time): Cleanup.
7665 (big_speedup_p): Update.
7666 (edge_badness): Update.
7667 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
7668 (size_time_entry): Replace predicate by exec_predicate and
7669 nonconst_predicate.
7670 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
7671 (estimate_edge_time): Return also nonspec_time.
7672 (reset_edge_growth_cache): Update.
7673
7674 2017-04-29 Jakub Jelinek <jakub@redhat.com>
7675
7676 PR rtl-optimization/80491
7677 * ifcvt.c (noce_process_if_block): When looking for x setter
7678 with missing else_bb, don't check only the insn right before
7679 cond_earliest, but look for the last insn that x is modified in
7680 within the same bb.
7681
7682 PR rtl-optimization/80491
7683 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
7684
7685 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
7686
7687 PR tree-optimization/80487
7688 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
7689
7690 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7691
7692 PR tree-optimization/79697
7693 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
7694 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
7695 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
7696 BUILT_IN_STRNDUP.
7697 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
7698 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
7699
7700 2017-04-28 Martin Sebor <msebor@redhat.com>
7701
7702 PR tree-optimization/80523
7703 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
7704 (init_target_to_host_charmap, target_to_host, target_strtol10): New
7705 functions.
7706 (maybe_warn, format_directive, parse_directive): Use new functions.
7707 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
7708
7709 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
7710
7711 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
7712
7713 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
7714
7715 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
7716 target_header_dir): Set correctly.
7717 * configure: Regenerated.
7718 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
7719 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
7720 instead of SYSTEM_HEADER_DIR.
7721
7722 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
7723
7724 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
7725 (estimate_local_effects): Likewise.
7726 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
7727 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
7728 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
7729 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
7730 do_estimate_edge_time, estimate_edge_time): Likewise.
7731 * ipa-inline-analysis.c (estimate_node_size_and_time,
7732 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
7733 (estimate_time_after_inlining): Remove.
7734
7735 2017-04-28 Martin Liska <mliska@suse.cz>
7736
7737 * doc/gcov.texi: Enhance documentation of gcov.
7738
7739 2017-04-28 Martin Liska <mliska@suse.cz>
7740
7741 * doc/gcov.texi: Sort options in alphabetic order.
7742 * doc/gcov-dump.texi: Likewise.
7743 * doc/gcov-tool.texi: Likewise.
7744 * gcov.c (print_usage): Likewise.
7745 * gcov-dump.c (print_usage): Likewise.
7746 * gcov-tool.c (print_merge_usage_message): Likewise.
7747 (print_rewrite_usage_message): Likewise.
7748 (print_overlap_usage_message): Likewise.
7749
7750 2017-04-28 Martin Liska <mliska@suse.cz>
7751
7752 PR gcov-profile/53915
7753 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
7754
7755 2017-04-28 Martin Liska <mliska@suse.cz>
7756
7757 PR gcov-profile/79891
7758 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
7759 is marked by compiler as living on a line.
7760 (get_cycles_count): Remove usage of the union.
7761 (output_intermediate_file): Likewise.
7762 (find_source): Fix GNU coding style.
7763 (accumulate_line_counts): Remove old non-all block mode.
7764 (output_lines): Remove usage of the union.
7765 * profile.c (output_location): Include all BBs, even if
7766 belonging to a same line (and file) as a previous BB.
7767
7768 2017-04-28 Martin Liska <mliska@suse.cz>
7769
7770 * gcov.c (process_args): Handle new argument 'w'.
7771 (read_graph_file): Assign ID to BBs.
7772 (output_branch_count): Display BB # if verbose flag is set.
7773 (output_lines): Likewise for arcs.
7774 (print_usage): Add '--verbose' option help.
7775 * doc/gcov.texi: Document --verbose (-w) option.
7776
7777 2017-04-28 Martin Liska <mliska@suse.cz>
7778
7779 * gcov.c (struct block_location_info): New struct.
7780 (process_file): Fill up the new structure.
7781 (read_graph_file): Replace usage of encoding by the newly added
7782 struct.
7783 (add_line_counts): Likewise.
7784 (accumulate_line_counts): Remove usage of the union.
7785 (function_info::function_info): New function.
7786 (function_info::~function_info): Likewise.
7787 (process_file): Call delete instead of release_function.
7788 (release_function): Release the function.
7789 (release_structures): Call delete instead of release_function.
7790 (solve_flow_graph): Replace usage of num_blocks.
7791 (find_exception_blocks): Likewise.
7792 (output_lines): Fix GNU coding style.
7793
7794 2017-04-28 Martin Liska <mliska@suse.cz>
7795
7796 PR driver/56469
7797 * coverage.c (coverage_remove_note_file): New function.
7798 * coverage.h: Declare the function.
7799 * toplev.c (finalize): Clean if an error has been seen.
7800
7801 2017-04-28 Martin Liska <mliska@suse.cz>
7802
7803 PR gcov-profile/80031
7804 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
7805 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
7806 * gcov.c (read_graph_file): Read just number of blocks.
7807 * profile.c (branch_prob): Do not stream 0 flags per a basic
7808 block.
7809
7810 2017-04-28 Martin Liska <mliska@suse.cz>
7811
7812 * gcov-dump.c (tag_*): Add new argument to declarations.
7813 (dump_gcov_file): Likewise.
7814 (tag_blocks): Add and use new argument depth.
7815 (tag_arcs): Likewise.
7816 (tag_lines): Likewise.
7817 (tag_counters): Likewise.
7818 (tag_summary): Likewise.
7819 (dump_working_sets): Use depth to do a proper indentation.
7820
7821 2017-04-28 Jakub Jelinek <jakub@redhat.com>
7822
7823 PR bootstrap/80531
7824 * cgraph.h (symtab_node::debug_symtab): No longer inline.
7825 * symtab.c (symtab_node::debug_symtab): Move definition here.
7826
7827 2017-04-28 Richard Biener <rguenther@suse.de>
7828
7829 * lto-streamer.h (LTO_major_version): Bump to 7.
7830
7831 2017-04-28 Richard Biener <rguenther@suse.de>
7832
7833 * tree-vrp.c (assert_info): New struct.
7834 (add_assert_info): New helper.
7835 (register_edge_assert_for_2): Refactor to add asserts to a vector
7836 of assert_info.
7837 (register_edge_assert_for_1): Likewise.
7838 (register_edge_assert_for): Likewise.
7839 (finish_register_edge_assert_for): New helper actually registering
7840 asserts where live on edge.
7841 (find_conditional_asserts): Adjust.
7842 (find_switch_asserts): Likewise.
7843 (evrp_dom_walker::try_find_new_range): Generalize.
7844 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
7845
7846 2017-04-27 Marek Polacek <polacek@redhat.com>
7847
7848 PR sanitizer/80349
7849 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
7850 arg10 and arg11 to itype.
7851
7852 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
7853
7854 * doc/extend.texi (Object Size Checking): Improve grammar.
7855
7856 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
7857
7858 PR target/80530
7859 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
7860 that the logic for permitting reciprocal estimates matches that
7861 in use_rsqrt_p.
7862
7863 2017-04-27 Jakub Jelinek <jakub@redhat.com>
7864
7865 PR c++/80534
7866 * tree.c (type_cache_hasher::equal): Only compare
7867 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
7868 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
7869 non-aggregate element types.
7870 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
7871 about the flag on ARRAY_TYPEs in the comment, formatting fix.
7872
7873 2017-04-27 Richard Biener <rguenther@suse.de>
7874
7875 PR middle-end/80533
7876 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
7877 stripping ARRAY_REFs from MEM_EXPR make sure we're not
7878 keeping a reference to a trailing array.
7879
7880 2017-04-27 Richard Biener <rguenther@suse.de>
7881
7882 PR middle-end/80539
7883 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
7884 being in loop-closed SSA form conservatively.
7885 (chrec_fold_multiply_poly_poly): Likewise.
7886
7887 2017-04-27 Tamar Christina <tamar.christina@arm.com>
7888
7889 PR middle-end/79665
7890 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
7891 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
7892
7893 2017-04-27 Jakub Jelinek <jakub@redhat.com>
7894
7895 PR target/77728
7896 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
7897 (aarch64_function_arg_alignment): Return unsigned int again, but still
7898 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
7899 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
7900 Don't emit -Wpsabi note.
7901 (aarch64_function_arg_boundary): Likewise.
7902 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
7903 caller.
7904
7905 2017-04-26 Nathan Sidwell <nathan@acm.org>
7906
7907 * tree.h (crc32_unsigned_n): Declare.
7908 (crc32_unsigned, crc32_unsigned): Make inline.
7909 * tree.c (crc32_unsigned_bits): Replace with ...
7910 (crc32_unsigned_n): ... this.
7911 (crc32_unsigned, crc32_byte): Remove.
7912 (crc32_string): Remove unnecessary braces.
7913
7914 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
7915
7916 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
7917 * ipa-inline-analysis.c (MAX_TIME): Remove.
7918 (account_size_time): Use sreal for time.
7919 (dump_inline_summary): Update.
7920 (estimate_function_body_sizes): Update.
7921 (estimate_edge_size_and_time): Update.
7922 (estimate_calls_size_and_time): Update.
7923 (estimate_node_size_and_time): Update.
7924 (inline_merge_summary): Update.
7925 (inline_update_overall_summary): Update.
7926 (estimate_time_after_inlining): Update.
7927 (inline_read_section): Update.
7928 (inline_write_summary): Update.
7929 * ipa-inline.c (compute_uninlined_call_time): Update.
7930 (compute_inlined_call_time): Update.
7931 (recursive_inlining): Update.
7932 (inline_small_functions): Update.
7933 (dump_overall_stats): Update.
7934 * ipa-inline.h: Include sreal.h.
7935 (size_time_entry): Turn time to sreal.
7936 (inline_summary): Turn self_time nad time to sreal.
7937
7938 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
7939
7940 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
7941 data-streamer.h
7942 (sreal::stream_out, sreal::stream_in): New.
7943 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
7944
7945 2017-04-25 Jakub Jelinek <jakub@redhat.com>
7946
7947 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
7948 environment.
7949
7950 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
7951
7952 PR target/70799
7953 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
7954 Handle ASHIFTRT.
7955 (dimode_scalar_chain::compute_convert_gain): Ditto.
7956 (dimode_scalar_chain::make_vector_copies): Ditto.
7957 (dimode_scalar_chain::convert_reg): Ditto.
7958 (dimode_scalar_chain::convert_insn): Ditto.
7959 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
7960 (VI248_AVX512BW_1): New mode iterator.
7961 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
7962 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
7963 mode iterator.
7964
7965 2017-04-25 Martin Sebor <msebor@redhat.com>
7966
7967 PR tree-optimization/80497
7968 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
7969 constants are representable in HOST_WIDE_INT.
7970 (parse_directive): Ditto.
7971
7972 2017-04-25 Martin Sebor <msebor@redhat.com>
7973
7974 PR bootstrap/80486
7975 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
7976 (new_zero_array): Adjust signature.
7977 (dom_info::dom_init): Used unsigned rather that size_t.
7978 (dom_info::dom_info): Same.
7979
7980 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7981 Jakub Jelinek <jakub@redhat.com>
7982
7983 PR target/77728
7984 * config/arm/arm.c: Include gimple.h.
7985 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
7986 returns negative, increment ncrn only if it returned positive.
7987 (arm_needs_doubleword_align): Return int instead of bool,
7988 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
7989 members, but if there is any such non-FIELD_DECL
7990 > PARM_BOUNDARY aligned decl, return -1 instead of false.
7991 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
7992 returns negative, increment nregs only if it returned positive.
7993 (arm_setup_incoming_varargs): Likewise.
7994 (arm_function_arg_boundary): Emit -Wpsabi note if
7995 arm_needs_doubleword_align returns negative, return
7996 DOUBLEWORD_ALIGNMENT only if it returned positive.
7997
7998 2017-04-25 Marek Polacek <polacek@redhat.com>
7999
8000 PR sanitizer/80349
8001 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8002 first argument to type.
8003
8004 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
8005
8006 PR target/80482
8007 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
8008 type checks to test for compatibility instead of equality.
8009
8010 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8011 Jakub Jelinek <jakub@redhat.com>
8012
8013 PR target/77728
8014 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
8015 type.
8016 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
8017 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
8018 the alignment computation, but return their maximum in warn_alignment.
8019 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8020 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
8021 is smaller.
8022 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
8023 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8024 caller.
8025
8026 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8027
8028 * config/arc/simdext.md (dmpyh): Fix typo.
8029
8030 2017-04-25 Richard Biener <rguenther@suse.de>
8031
8032 PR tree-optimization/80492
8033 * alias.c (compare_base_decls): Handle registers with asm
8034 specification conservatively.
8035 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
8036 compare_base_decls returning dont-know properly.
8037
8038 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8039
8040 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
8041 (legitimate_offset_address_p): New function.
8042 (arc_legitimate_address_p): Use above function.
8043
8044 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8045
8046 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
8047
8048 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8049
8050 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
8051 ACCH registers whenever they are available.
8052
8053 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8054
8055 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
8056 double regs fix when not used.
8057
8058 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8059
8060 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
8061 core registers.
8062 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
8063 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
8064
8065 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8066
8067 * config/arc/arc.c (arc_output_addsi): Check for h-register class
8068 when emitting short ADD instructions.
8069
8070 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8071
8072 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
8073 constraint.
8074 (cmpsi_cc_c_insn): Likewise.
8075 (cbranchsi4_scratch): Compute proper instruction length using
8076 compact_hreg_operand.
8077 * config/arc/predicates.md (compact_hreg_operand): New predicate.
8078
8079 2017-04-25 Richard Biener <rguenther@suse.de>
8080
8081 PR middle-end/80509
8082 * passes.c (pass_manager::pass_manager): Initialize
8083 m_name_to_pass_map.
8084
8085 2017-04-25 Richard Biener <rguenther@suse.de>
8086
8087 PR tree-optimization/79201
8088 * tree-ssa-sink.c (statement_sink_location): Handle calls.
8089
8090 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8091
8092 PR target/80464
8093 * config/s390/vector.md: Split MEM->GPR vector moves for
8094 non-s_operand addresses.
8095
8096 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8097
8098 PR target/79895
8099 * config/s390/predicates.md (reload_const_wide_int_operand): New
8100 predicate.
8101 * config/s390/s390.md ("movti"): Remove d/P alternative.
8102 ("movti_bigconst"): New pattern definition.
8103
8104 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8105
8106 PR target/80080
8107 * s390-protos.h (s390_expand_cs_hqi): Removed.
8108 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
8109 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
8110 modes as well as CCZ1mode and CCZmode.
8111 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
8112 signature of s390_emit_compare_and_swap.
8113 (s390_expand_cs_hqi): Likewise, make static.
8114 (s390_expand_cs_tdsi): Generate an explicit compare before trying
8115 compare-and-swap, in some cases.
8116 (s390_expand_cs): Wrapper function.
8117 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
8118 atomic_exchange.
8119 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
8120 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
8121 patterns for small and large integers. Forbid symref memory operands.
8122 Move expander to s390.c. Require cc register.
8123 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
8124 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
8125 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
8126 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
8127 symref memory operands. Remove CC mode and call s390_match_ccmode
8128 instead.
8129 ("atomic_exchange<mode>"): Allow and implement all integer modes.
8130
8131 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8132
8133 * config/s390/s390.md (define_peephole2): New peephole to help
8134 combining the load-and-test pattern with volatile memory.
8135
8136 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8137
8138 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
8139 with CCZmode for TARGET_Z196.
8140
8141 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8142
8143 PR rtl-optimization/80501
8144 * combine.c (make_compound_operation_int): Set subreg_code to SET
8145 even for AND with mask of the sign bit of mode.
8146
8147 PR rtl-optimization/80500
8148 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
8149 sum's initial value.
8150
8151 2017-04-25 Julian Brown <julian@codesourcery.com>
8152 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8153
8154 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
8155
8156 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
8157
8158 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
8159
8160 2017-04-25 Julian Brown <julian@codesourcery.com>
8161 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8162
8163 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
8164 (thunderx2t99_sha): New Reservation.
8165
8166 2017-04-25 Julian Brown <julian@codesourcery.com>
8167 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8168
8169 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
8170 type for 1-element load.
8171
8172 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
8173
8174 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
8175
8176 2017-04-24 Martin Jambor <mjambor@suse.cz>
8177
8178 PR tree-optimization/80293
8179 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
8180 char arrays not totally scalarizable if it is false.
8181 (analyze_all_variable_accesses): Pass correct value in the new
8182 parameter. Add a statistics counter.
8183
8184 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
8185
8186 PR middle-end/79931
8187 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
8188
8189 2017-04-24 Richard Biener <rguenther@suse.de>
8190
8191 PR tree-optimization/80494
8192 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
8193 out for complex types.
8194
8195 2017-04-24 Richard Biener <rguenther@suse.de>
8196
8197 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
8198 * tree-ssa-sccvn.c (print_scc): Print SCC size.
8199 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
8200 (DFS): Adjust and never fail.
8201 (sccvn_dom_walker::fail): Remove.
8202 (sccvn_dom_walker::before_dom_children): Adjust.
8203 (run_scc_vn): Likewise and never fail.
8204 * tree-ssa-pre.c (pass_pre::execute): Adjust.
8205 (pass_fre::execute): Likewise.
8206
8207 2017-04-24 Richard Biener <rguenther@suse.de>
8208
8209 PR tree-optimization/79725
8210 * tree-ssa-sink.c (statement_sink_location): Return whether
8211 failure reason was zero uses. Move that check later.
8212 (sink_code_in_bb): Deal with zero uses by removing the stmt
8213 if possible.
8214
8215 2017-04-24 Richard Biener <rguenther@suse.de>
8216
8217 PR c++/2972
8218 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
8219 pointer-based references.
8220
8221 2017-04-24 Richard Biener <rguenther@suse.de>
8222
8223 PR bootstrap/79814
8224 * pass_manager.h (pass_manager::operator new): Remove.
8225 (pass_manager::operator delete): Likewise.
8226 * passes.c (pass_manager::operator new): Remove.
8227 (pass_manager::operator delete): Likewise.
8228 (pass_manager::pass_manager): Zero individual pass members.
8229
8230 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
8231
8232 PR target/70799
8233 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
8234 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
8235 Check "XEXP (src, 1)" operand here.
8236 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
8237 Check "XEXP (src, 1)" operand here.
8238 (dimode_scalar_chain::make_vector_copies): Detect count register
8239 of a shift instruction. Zero extend count register from QImode
8240 to DImode to satisfy vector shift pattern count operand predicate.
8241 Substitute vector shift count operand with a DImode copy.
8242 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
8243 vector register.
8244
8245 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
8246
8247 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
8248 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8249 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
8250 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8251 (UNSPEC_NOREX_MEM): Remove definition.
8252
8253 2017-04-21 Richard Biener <rguenther@suse.de>
8254
8255 PR tree-optimization/79547
8256 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8257 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
8258 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
8259 without any constraints.
8260
8261 2017-04-21 Richard Biener <rguenther@suse.de>
8262
8263 PR tree-optimization/78847
8264 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
8265
8266 2017-04-21 Richard Biener <rguenther@suse.de>
8267
8268 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
8269 (build_distinct_type_copy): Likewise.
8270 (build_variant_type_copy): Likewise.
8271 * tree.c (build_qualified_type): Pass down mem-stat info.
8272 (build_distinct_type_copy): Likewise.
8273 (build_variant_type_copy): Likewise.
8274
8275 2017-04-21 Richard Biener <rguenther@suse.de>
8276
8277 PR tree-optimization/80237
8278 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
8279 defaulted to NULL.
8280 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
8281 for a simplified result.
8282
8283 2016-04-21 Richard Biener <rguenther@suse.de>
8284
8285 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
8286 sth as strict as a simple_iv but a chrec without symbols and an
8287 operand defined in the loop we are peeling (and not some subloop).
8288 (propagate_constants_for_unrolling): Propagate all constants.
8289
8290 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8291
8292 PR target/79804
8293 * config/i386/i386.c (print_reg): Remove assert for disalowed
8294 regno values, call output_operand_lossage instead.
8295
8296 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8297
8298 PR target/78090
8299 * config/i386/constraints.md (Yc): New register constraint.
8300 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
8301 Use Yc constraint for alternative 2 of operand 0. Remove
8302 preferred_for_speed attribute.
8303
8304 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8305
8306 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
8307 lastprivate clauses in SIMT case.
8308
8309 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
8310
8311 * doc/invoke.texi (-Wextra-semi): Document new warning option.
8312
8313 2017-04-20 Richard Biener <rguenther@suse.de>
8314
8315 PR tree-optimization/57796
8316 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
8317 as N scalar stores.
8318 (vect_model_load_cost): Cost gathers as N scalar loads.
8319
8320 2017-04-20 Richard Biener <rguenther@suse.de>
8321
8322 * ggc-page.c (ggc_allocated_p): Rename to ...
8323 (safe_lookup_page_table_entry): ... this and return the lookup
8324 result.
8325 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
8326
8327 2017-04-20 Richard Biener <rguenther@suse.de>
8328
8329 PR tree-optimization/80453
8330 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
8331 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
8332 from the conditions.
8333 (vn_phi_eq): Pass them down.
8334 (vn_phi_lookup): Record them.
8335 (vn_phi_insert): Likewise.
8336
8337 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
8338
8339 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
8340 uninitialized variable warning to avoid buffer overrun.
8341
8342 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8343
8344 PR other/71250
8345 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
8346 is suppressed for '{ 0 }' in C.
8347
8348 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8349
8350 * BASE-VER: Set to 8.0.0.
8351
8352 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
8353
8354 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
8355 priority .init_array and .fini_array section with SECTION_NOTYPE
8356 flag.
8357
8358 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8359
8360 PR middle-end/80423
8361 * tree.h (build_array_type): Add typeless_storage default argument.
8362 * tree.c (type_cache_hasher::equal): Also compare
8363 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
8364 (build_array_type): Add typeless_storage argument, set
8365 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
8366 recursive call.
8367 (build_nonshared_array_type): Adjust build_array_type_1 caller.
8368 (build_array_type): Likewise. Add typeless_storage argument.
8369
8370 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8371 Jakub Jelinek <jakub@redhat.com>
8372
8373 PR tree-optimization/80426
8374 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
8375 operation on symbolic operands, also compute the overflow for the
8376 invariant part when the operation degenerates into a negation.
8377
8378 2017-04-19 Jakub Jelinek <jakub@redhat.com>
8379
8380 PR debug/80461
8381 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
8382 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
8383
8384 PR debug/80436
8385 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
8386
8387 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
8388
8389 PR target/80462
8390 * config/avr/avr.c (tree.h): Include it.
8391 (cgraph.h): Include it.
8392 (avr_encode_section_info): Don't warn for uninitialized progmem
8393 variable if it's just an alias.
8394
8395 2017-04-19 Richard Biener <rguenther@suse.de>
8396
8397 PR ipa/65972
8398 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
8399 when needed by AutoPGO.
8400
8401 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
8402
8403 PR lto/50345
8404 * doc/lto.texi: Remove an extra 'that'.
8405
8406 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
8407
8408 PR rtl-optimization/80429
8409 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
8410 are only used in debug insns.
8411
8412 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8413 Vladimir Makarov <vmakarov@redhat.com>
8414
8415 * config/sparc/predicates.md (input_operand): Add comment. Return
8416 true for any memory operand when LRA is in progress.
8417 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
8418
8419 2017-04-18 Jeff Law <law@redhat.com>
8420
8421 PR target/74563
8422 * mips.md ({return,simple_return}_internal): Do not overwrite
8423 operands[0].
8424
8425 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8426
8427 PR tree-optimization/80443
8428 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
8429 instead of adding 1, subtract -1 and similarly instead of subtracting
8430 1 add -1.
8431
8432 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
8433
8434 PR rtl-optimization/80357
8435 * haifa-sched.c (tmp_bitmap): New variable.
8436 (model_recompute): Handle duplicate use records.
8437 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
8438 (free_global_sched_pressure_data): Free it.
8439
8440 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
8441
8442 Revert:
8443 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
8444 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8445 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8446 instead of SYSTEM_HEADER_DIR.
8447
8448 2017-04-18 Jeff Law <law@redhat.com>
8449
8450 PR middle-end/80422
8451 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
8452 predecessors after walking up the insn chain.
8453
8454 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8455
8456 PR debug/80263
8457 * dwarf2out.c (modified_type_die): Try harder not to emit internal
8458 sizetype type into debug info.
8459
8460 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8461
8462 PR target/80099
8463 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
8464 unneeded test for TARGET_UPPER_REGS_SF.
8465 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
8466
8467 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8468
8469 PR sanitizer/80444
8470 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
8471 instead of gsi_after_labels.
8472
8473 2017-04-18 Jeff Law <law@redhat.com>
8474
8475 * regcprop.c (maybe_mode_change): Avoid creating copies of the
8476 stack pointer.
8477
8478 Revert:
8479 2017-04-13 Jeff Law <law@redhat.com>
8480 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8481 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8482
8483 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
8484
8485 PR target/79453
8486 * config/avr/avr.c (intl.h): Include it.
8487 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
8488
8489 2017-04-18 Martin Liska <mliska@suse.cz>
8490
8491 PR gcov-profile/78783
8492 * gcov-tool.c (gcov_output_files): Validate that destination
8493 file is either removed by the tool or by a user.
8494
8495 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8496 Guy Benyei <guybe@mellanox.com>
8497
8498 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
8499 block, and do not negate it, the stored id is already negative.
8500
8501 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8502
8503 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
8504
8505 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8506
8507 PR target/80098
8508 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
8509 masks of options that should be turned off if the VSX vector
8510 options are turned off.
8511 (OTHER_P8_VECTOR_MASKS): Likewise.
8512 (OTHER_VSX_VECTOR_MASKS): Likewise.
8513 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
8514 rs6000_disable_incompatible_switches to validate no type switches
8515 like -mvsx.
8516 (rs6000_incompatible_switch): New function to disallow turning on
8517 other vector options if -mno-vsx, -mno-power8-vector, or
8518 -mno-power9-vector are specified.
8519
8520 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8521
8522 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
8523
8524 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8525
8526 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
8527 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
8528 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
8529 (ARG_POINTER_CFA_OFFSET): Likewise.
8530
8531 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8532
8533 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
8534 conditions to take advantage of various optimizations.
8535
8536 2017-04-13 Jeff Law <law@redhat.com>
8537
8538 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8539 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8540 (zero_extendsidi2_dext): Likewise.
8541
8542 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8543
8544 PR sanitizer/80403
8545 * fold-const.c (fold_ternary_loc): Revert
8546 use op0 instead of fold_convert_loc (loc, type, arg0) part of
8547 2017-04-12 change.
8548
8549 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
8550
8551 PR rtl-optimization/80343
8552 * lra-remat.c (update_scratch_ops): Assign original hard reg to
8553 new scratch pseudo.
8554
8555 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
8556
8557 PR sanitizer/80414
8558 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
8559 to ubsan_encode_value.
8560
8561 2017-04-13 Jeff Law <law@redhat.com>
8562
8563 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
8564 appearing in DEBUG_INSNs.
8565
8566 2017-04-13 Martin Liska <mliska@suse.cz>
8567
8568 PR gcov-profile/80413
8569 * gcov-io.c (gcov_write_string): Copy to buffer just when
8570 allocated size is greater than zero.
8571
8572 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8573
8574 PR debug/80321
8575 * dwarf2out.c (decls_for_scope): Ignore declarations of
8576 current_function_decl in BLOCK_NONLOCALIZED_VARS.
8577
8578 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
8579
8580 PR lto/69953
8581 * ipa-visibility.c (non_local_p): Fix typos.
8582 (localize_node): When localizing symbol in same comdat group,
8583 dissolve the group only when we know external symbols are going
8584 to be privatized.
8585 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
8586
8587 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8588
8589 PR tree-optimization/79390
8590 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
8591 order does not result in usable sequence, retry with reversed operand
8592 order.
8593
8594 PR sanitizer/80403
8595 PR sanitizer/80404
8596 PR sanitizer/80405
8597 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
8598 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
8599 op0 instead of fold_convert_loc (loc, type, arg0).
8600
8601 2017-04-12 Jeff Law <law@redhat.com>
8602
8603 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
8604 has a delay slot in the generated code.
8605
8606 * config/cris/cris.md (cris_preferred_reload_class): Return
8607 GENNONACR_REGS rather than GENERAL_REGS.
8608
8609 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8610
8611 PR c/80163
8612 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
8613 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
8614 signedness of the result type.
8615
8616 2017-04-12 Richard Biener <rguenther@suse.de>
8617 Jeff Law <law@redhat.com>
8618
8619 PR tree-optimization/80359
8620 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
8621 trim stores to TARGET_MEM_REFs.
8622
8623 2017-04-12 Richard Biener <rguenther@suse.de>
8624
8625 PR tree-optimization/79390
8626 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
8627 threading case even more.
8628
8629 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
8630
8631 PR target/80382
8632 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
8633 for quad_address_p for TImode, instead of just not indexed_address.
8634
8635 2017-04-12 Richard Biener <rguenther@suse.de>
8636 Bernd Edlinger <bernd.edlinger@hotmail.de>
8637
8638 PR middle-end/79671
8639 * alias.c (component_uses_parent_alias_set_from): Handle
8640 TYPE_TYPELESS_STORAGE.
8641 (get_alias_set): Likewise.
8642 * tree-core.h (tree_type_common): Add typeless_storage flag.
8643 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
8644 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
8645 for types containing members with TYPE_TYPELESS_STORAGE.
8646 (place_field): Likewise.
8647 (layout_type): Likewise for ARRAY_TYPE.
8648 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
8649 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
8650 TYPE_TYPELESS_STORAGE.
8651 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8652
8653 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8654
8655 PR sanitizer/80349
8656 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8657 first argument to type.
8658
8659 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8660
8661 PR target/80376
8662 PR target/80315
8663 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
8664 CONST0_RTX (mode) rather than const0_rtx where appropriate.
8665 (rs6000_expand_binop_builtin): Likewise.
8666 (rs6000_expand_ternop_builtin): Likewise; also add missing
8667 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
8668 vshasigma built-ins.
8669 * doc/extend.texi: Document that vec_xxpermdi's third argument
8670 must be a constant.
8671
8672 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
8673
8674 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
8675 Use shift_const cost parameter when calculating gain of STV shifts.
8676
8677 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
8678
8679 PR rtl-optimization/70478
8680 * lra-constraints.c (process_alt_operands): Check memory for
8681 disfavoring memory insn operand.
8682
8683 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8684
8685 PR middle-end/80100
8686 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
8687 left shift in unsigned HOST_WIDE_INT type.
8688
8689 PR rtl-optimization/80385
8690 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
8691 (not (neg X)) into (plus X -1) for complex or non-integral modes.
8692
8693 PR libgomp/80394
8694 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
8695 if they have any depend clauses.
8696
8697 2017-04-11 Martin Liska <mliska@suse.cz>
8698
8699 PR ipa/80212
8700 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
8701 * ipa-split.c (split_function): Create a local comdat symbol
8702 if caller is in a comdat group.
8703
8704 2017-04-11 Martin Liska <mliska@suse.cz>
8705
8706 PR ipa/80212
8707 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
8708 flags.
8709
8710 2017-04-11 Martin Sebor <msebor@redhat.com>
8711
8712 PR middle-end/80364
8713 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
8714 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
8715 for INTEGER_TYPE.
8716 (directive::set_width, directive::set_precision, format_character):
8717 Adjust.
8718 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
8719 INTEGER_TYPE.
8720
8721 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
8722
8723 PR target/80389
8724 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
8725 conflict, set target->arch_name instead of target->cpu_name.
8726
8727 2017-04-11 Richard Biener <rguenther@suse.de>
8728
8729 PR tree-optimization/80374
8730 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
8731 build_zero_cst, remove fold_convertible_p check again.
8732
8733 2017-04-11 Martin Liska <mliska@suse.cz>
8734
8735 PR sanitizer/70878
8736 * ubsan.c (instrument_object_size): Do not instrument register
8737 variables.
8738
8739 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8740
8741 PR target/80381
8742 * config/i386/i386-builtin-types.def
8743 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
8744 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
8745 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
8746 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
8747 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
8748 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
8749 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
8750 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
8751 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
8752 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
8753 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
8754 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
8755 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
8756 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
8757 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
8758 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
8759 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
8760 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
8761 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
8762 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
8763 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
8764 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
8765 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
8766 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
8767 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
8768 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
8769 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
8770 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
8771 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
8772 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
8773 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
8774 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
8775 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
8776 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
8777 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
8778 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
8779 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
8780 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
8781 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
8782 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
8783 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
8784 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
8785 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
8786 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
8787 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
8788 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
8789 aliases.
8790 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
8791 flag to second_arg_count, handle 4 argument function type _COUNT
8792 aliases, handle second_arg_count on second argument rather than last.
8793
8794 2017-04-10 Jeff Law <law@redhat.com>
8795
8796 PR tree-optimization/80374
8797 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
8798 record anything if we can not convert integer_zero_node to the
8799 desired type.
8800
8801 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
8802
8803 PR target/80108
8804 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8805 Enhance special handling given to the TARGET_P9_MINMAX option in
8806 relation to certain other options.
8807
8808 2017-04-10 Bin Cheng <bin.cheng@arm.com>
8809
8810 PR tree-optimization/80153
8811 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
8812 remove POINTER_PLUS_EXPR's base part directly, rather than through
8813 aff_tree.
8814
8815 2017-04-10 Richard Biener <rguenther@suse.de>
8816 Bin Cheng <bin.cheng@arm.com>
8817
8818 PR tree-optimization/80153
8819 * tree-affine.c (aff_combination_to_tree): Get base pointer from
8820 the first element of pointer type aff_tree. Build result expr in
8821 aff_tree's type.
8822 (add_elt_to_tree): Convert to type unconditionally. Remove other
8823 fold_convert calls.
8824 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
8825 (rewrite_use_nonlinear_expr): Check invariant using iv information.
8826
8827 2017-04-10 Richard Biener <rguenther@suse.de>
8828
8829 * tree-ssa-structalias.c (find_func_aliases): Properly handle
8830 asm inputs.
8831
8832 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
8833
8834 PR rtl-optimization/70478
8835 * lra-constraints.c (curr_small_class_check): New.
8836 (update_and_check_small_class_inputs): New.
8837 (process_alt_operands): Update curr_small_class_check. Disfavor
8838 alternative insn memory operands. Check available regs for small
8839 class operands.
8840
8841 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
8842
8843 PR target/80057
8844 * config/mips/mips.opt (-mvirt): Update description.
8845 * doc/invoke.texi (-mvirt): Likewise.
8846
8847 2017-04-10 Richard Biener <rguenther@suse.de>
8848
8849 PR middle-end/80362
8850 * fold-const.c (fold_binary_loc): Look at unstripped ops when
8851 looking for NEGATE_EXPR in -A / -B to A / B folding.
8852
8853 2017-04-10 Martin Liska <mliska@suse.cz>
8854
8855 PR gcov-profile/80224
8856 * gcov.c (print_usage): Fix usage string.
8857 (get_gcov_intermediate_filename): Remove.
8858 (output_gcov_file): Use both for normal and intermediate format.
8859 (generate_results): Do not initialize special file for
8860 intermediate format.
8861
8862 2017-04-10 Richard Biener <rguenther@suse.de>
8863
8864 PR tree-optimization/80304
8865 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
8866 for safelen.
8867
8868 2017-04-10 Nathan Sidwell <nathan@acm.org>
8869
8870 PR target/79905
8871 * config/rs6000/rs6000.c (rs6000_vector_type): New.
8872 (rs6000_init_builtins): Use it.
8873
8874 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8875
8876 * config/arm/arm.md (<mrc>): Add mode to SET source.
8877 (<mrrc>): Likewise.
8878
8879 2017-04-10 Richard Biener <rguenther@suse.de>
8880
8881 PR middle-end/80344
8882 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
8883
8884 2017-04-10 Jakub Jelinek <jakub@redhat.com>
8885
8886 PR target/80324
8887 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
8888 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
8889 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
8890 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
8891 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
8892 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
8893 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
8894 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
8895 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
8896 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
8897 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
8898 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
8899 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
8900 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
8901 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
8902 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
8903 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
8904 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
8905 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
8906 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
8907 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
8908 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
8909 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
8910
8911 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
8912
8913 PR rtl-optimization/70478
8914 * lra-constraints.c: Reverse the last patch.
8915
8916 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
8917
8918 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
8919 Add comment for WCHAR_T.
8920
8921 2017-04-08 Martin Liska <mliska@suse.cz>
8922
8923 Revert:
8924 2017-04-07 Martin Liska <mliska@suse.cz>
8925
8926 PR ipa/80212
8927 * ipa-split.c (split_function): Add function part to a same comdat
8928 group.
8929
8930 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8931
8932 PR target/80358
8933 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
8934
8935 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
8936
8937 * rs6000/rs6000.c (vec_load_pendulum): Rename...
8938 (vec_pairing): ...to this.
8939 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
8940 (rs6000_sched_init): Adjust for name change.
8941 (struct rs6000_sched_context): Likewise.
8942 (rs6000_init_sched_context): Likewise.
8943 (rs6000_set_sched_context): Likewise.
8944
8945 2017-04-07 Jakub Jelinek <jakub@redhat.com>
8946
8947 PR target/80322
8948 PR target/80323
8949 PR target/80325
8950 PR target/80326
8951 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
8952 intrinsics.
8953 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
8954 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
8955 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
8956
8957 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
8958
8959 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
8960
8961 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
8962
8963 PR rtl-optimization/70703
8964 * ira-color.c (update_conflict_hard_regno_costs): Use
8965 int64_t instead of HOST_WIDE_INT.
8966
8967 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
8968
8969 PR rtl-optimization/70478
8970 * lra-constraints.c (process_alt_operands): Disfavor alternative
8971 insn memory operands.
8972
8973 2017-04-07 Jeff Law <law@redhat.com>
8974
8975 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
8976 CALL and NOTE_INSN_CALL_ARG_LOCATION.
8977
8978 2017-04-07 Martin Liska <mliska@suse.cz>
8979
8980 PR target/79889
8981 * config/aarch64/aarch64.c (aarch64_process_target_attr):
8982 Show error message instead of an ICE.
8983
8984 2017-04-07 Martin Liska <mliska@suse.cz>
8985
8986 PR ipa/80212
8987 * ipa-split.c (split_function): Add function part to a same comdat
8988 group.
8989
8990 2017-04-07 Richard Biener <rguenther@suse.de>
8991
8992 PR middle-end/80341
8993 * tree.c (get_unwidened): Also handle ! for_type case for
8994 INTEGER_CSTs.
8995 * convert.c (do_narrow): Split out from ...
8996 (convert_to_integer_1): ... here. Do not pass final truncation
8997 type to get_unwidened for TRUNC_DIV_EXPR.
8998
8999 2017-04-07 Richard Biener <rguenther@suse.de>
9000
9001 * tree-affine.c (wide_int_ext_for_comb): Take type rather
9002 than aff_tree.
9003 (aff_combination_const): Adjust.
9004 (aff_combination_scale): Likewise.
9005 (aff_combination_add_elt): Likewise.
9006 (aff_combination_add_cst): Likewise.
9007 (aff_combination_convert): Likewise.
9008 (add_elt_to_tree): Likewise. Remove unused argument.
9009 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
9010
9011 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
9012
9013 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
9014 definition.
9015 * config/arm/arm.c (arm_default_short_enums): Use
9016 ARM_DEFAULT_SHORT_ENUMS.
9017 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
9018
9019 2017-04-06 Jakub Jelinek <jakub@redhat.com>
9020
9021 PR debug/80234
9022 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
9023 members with redundant out-of-class redeclaration.
9024
9025 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9026
9027 PR target/80286
9028 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
9029 * config/i386/i386.md (*zero_extendsidi2):
9030 Add (?*x,*x) and (?*v,*v) alternatives.
9031
9032 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9033
9034 PR target/79733
9035 * config/i386/i386.c (ix86_expand_builtin)
9036 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
9037 mode from insn data. Convert operands to insn operand mode.
9038 Copy operands that don't satisfy insn predicate to a register.
9039
9040 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
9041
9042 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
9043 Update comments.
9044
9045 2017-04-06 Richard Biener <rguenther@suse.de>
9046
9047 PR tree-optimization/80334
9048 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
9049 preserve alignment of accesses.
9050
9051 2017-04-06 Richard Biener <rguenther@suse.de>
9052
9053 PR tree-optimization/80262
9054 * tree-sra.c (build_ref_for_offset): Preserve address-space
9055 information.
9056 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
9057 Drop useless address-space information on MEM_REF offsets.
9058
9059 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
9060
9061 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
9062
9063 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9064
9065 PR rtl-optimization/70703
9066 * ira-color.c (update_conflict_hard_regno_costs): Use
9067 HOST_WIDE_INT instead of long.
9068
9069 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
9070
9071 PR target/80298
9072 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
9073 not defined for x86_64 target. Add -mmmx target option when __SSE2__
9074 is not defined.
9075 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
9076 for x86_64 target. Handle -m3dnowa option.
9077
9078 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9079
9080 PR rtl-optimization/70703
9081 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
9082 (update_conflict_hard_regno_costs): Use long instead of unsigned
9083 arithmetic for cost calculation.
9084
9085 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9086 Bernd Edlinger <bernd.edlinger@hotmail.de>
9087
9088 PR sanitizer/80308
9089 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
9090 for big endian.
9091
9092 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
9093
9094 PR target/78002
9095 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
9096 ptr_mode with Pmode throughout.
9097 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
9098 into probe_stack_range and use DImode.
9099
9100 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9101
9102 PR target/79890
9103 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
9104 call_eh_return is true.
9105
9106 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9107
9108 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
9109 Initialize last_match_fntype_index.
9110
9111 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9112
9113 PR target/80310
9114 * tree-nvr.c: Include internal-fn.h.
9115 (pass_return_slot::execute): Ignore internal calls without
9116 direct optab.
9117
9118 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9119 Richard Biener <rguenther@suse.de>
9120
9121 PR c++/80297
9122 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
9123 captures used multiple times, except for the last use.
9124 * generic-match-head.c: Include gimplify.h.
9125
9126 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9127
9128 PR tree-optimization/79390
9129 * target.h (struct noce_if_info): Declare.
9130 * targhooks.h (default_noce_conversion_profitable_p): Declare.
9131 * target.def (noce_conversion_profitable_p): New target hook.
9132 * ifcvt.h (struct noce_if_info): New type, moved from ...
9133 * ifcvt.c (struct noce_if_info): ... here.
9134 (noce_conversion_profitable_p): Renamed to ...
9135 (default_noce_conversion_profitable_p): ... this. No longer
9136 static nor inline.
9137 (noce_try_store_flag_constants, noce_try_addcc,
9138 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
9139 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
9140 instead of noce_conversion_profitable_p.
9141 * config/i386/i386.c: Include ifcvt.h.
9142 (ix86_option_override_internal): Don't override
9143 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
9144 (ix86_noce_conversion_profitable_p): New function.
9145 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
9146 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
9147 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
9148 * doc/tm.texi: Regenerated.
9149
9150 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9151
9152 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
9153 correction.
9154
9155 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9156
9157 PR target/80307
9158 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
9159 instructions for small multiply cores.
9160
9161 2017-04-04 Jeff Law <law@redhat.com>
9162
9163 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
9164 added member.
9165 (mips_expand_vec_perm_const): Initialize elements in orig_perm
9166 that are not set by the loop over the elements.
9167
9168 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9169
9170 PR target/80286
9171 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
9172 int mode, convert_modes it to mode as unsigned, otherwise use
9173 lowpart_subreg to mode rather than SImode.
9174 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
9175 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
9176 Use DImode instead of SImode for the shift count operand.
9177 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
9178 Likewise.
9179
9180 2017-04-04 Richard Biener <rguenther@suse.de>
9181
9182 PR middle-end/80281
9183 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
9184 arithmetic done for the negate or the plus. Simplify.
9185 (A - (-B) -> A + B): Likewise.
9186 * fold-const.c (split_tree): Make sure to not negate pointers.
9187
9188 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
9189
9190 PR rtl-optimization/60818
9191 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
9192 a compare of comparisons with the thing compared if this results
9193 in a different machine mode.
9194
9195 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
9196
9197 * alias.c (base_alias_check): Fix typo in comment.
9198 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
9199 * cgraphunit.c (symbol_table::compile): Likewise.
9200 * collect2.c (maybe_run_lto_and_relink): Likewise.
9201 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
9202 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
9203 * config/avr/avr.c (avr_map_op_t): Likewise.
9204 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
9205 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
9206 * config/epiphany/epiphany.md (movcc): Likewise.
9207 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
9208 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
9209 Likewise.
9210 * config/mips/mips.c (mips_save_restore_reg): Likewise.
9211 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
9212 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
9213 * config/sh/sh.c (sh_rtx_costs): Likewise.
9214 * fold-const.c (fold_truth_andor): Likewise.
9215 * genautomata.c (collapse_flag): Likewise.
9216 * gengtype.h (struct type::u::s): Likewise.
9217 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
9218 * input.c (FORMAT_AMOUNT): Likewise.
9219 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
9220 (known_aggs_to_agg_replacement_list): Likewise.
9221 * ipa-inline-analysis.c: Likewise.
9222 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
9223 * ipa-polymorphic-call.c
9224 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
9225 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
9226 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
9227 Likewise.
9228 * modulo-sched.c (apply_reg_moves): Likewise.
9229 * omp-expand.c (build_omp_regions_1): Likewise.
9230 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
9231 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
9232 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
9233 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9234 * value-prof.c: Likewise.
9235 * var-tracking.c (val_reset): Likewise.
9236
9237 2017-04-03 Richard Biener <rguenther@suse.de>
9238
9239 PR tree-optimization/80275
9240 * fold-const.c (split_address_to_core_and_offset): Handle
9241 POINTER_PLUS_EXPR.
9242
9243 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
9244
9245 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
9246 descriptors is at least equal to that of functions.
9247
9248 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9249
9250 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
9251
9252 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9253
9254 PR target/80250
9255 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
9256 (mov<IMOD4:mode>): New expander.
9257 (*mov<IMOD4:mode>_internal): New insn and split pattern.
9258
9259 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
9260
9261 PR rtl-optimization/79405
9262 * fwprop.c (propagations_left): New variable.
9263 (forward_propagate_into): Decrement it.
9264 (fwprop_init): Initialize it.
9265 (fw_prop): If the variable has reached zero, stop propagating.
9266 (fwprop_addr): Ditto.
9267
9268 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9269
9270 PR debug/79255
9271 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
9272 a FUNCTION_DECL, pass it as decl instead of origin to
9273 process_scope_var.
9274
9275 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
9276
9277 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
9278 string.
9279
9280 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
9281
9282 PR target/80107
9283 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
9284 TARGET_VSX_SMALL_INTEGER.
9285
9286 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9287
9288 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
9289 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
9290
9291 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
9292
9293 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
9294 extraction from odd-numbered MSA register.
9295
9296 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9297
9298 PR middle-end/80173
9299 * expmed.c (store_bit_field_1): Don't attempt to create
9300 a word subreg out of hard registers wider than word if they
9301 have HARD_REGNO_NREGS of 1 for their mode.
9302
9303 PR middle-end/80163
9304 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
9305 conversions to integer types wider than word and pointer.
9306
9307 PR debug/80025
9308 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
9309 (rtx_equal_for_cselib_p): Pass 0 to it.
9310 * cselib.c (cselib_hasher::equal): Likewise.
9311 (rtx_equal_for_cselib_1): Add depth argument. If depth
9312 is 128, don't look up VALUE locs and punt. Increment
9313 depth in recursive calls when walking VALUE locs.
9314
9315 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
9316
9317 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
9318 (make_gcov_file_name): Use the canonical path name for generating
9319 the MD5 value.
9320 (read_line): Fix handling of files with ascii null bytes.
9321
9322 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
9323
9324 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
9325 to initialise a vector register instead
9326 of using a const_int.
9327
9328 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9329
9330 PR translation/80189
9331 * gimplify.c (omp_default_clause): Use %qs instead of %s in
9332 diagnostic messages.
9333
9334 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
9335
9336 PR target/80246
9337 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
9338 (dfp_diex_<mode>): Update mode of operand 1.
9339 * doc/extend.texi (dxex, dxexq): Document change to return type.
9340 (diex, diexq): Document change to argument type.
9341
9342 2017-03-30 Martin Jambor <mjambor@suse.cz>
9343
9344 PR ipa/77333
9345 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
9346 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
9347 it reflects the signature changes performed at the callee side.
9348 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
9349 to cgraph_build_function_type_skip_args.
9350 (build_function_decl_skip_args): Adjust call to the above function.
9351
9352 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9353
9354 PR target/80206
9355 * config/i386/sse.md
9356 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
9357 register as dest whenever it is a MEM not rtx_equal_p to the
9358 corresponding dup operand, and when forcing into reg move the
9359 reg into the memory afterwards.
9360 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
9361 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
9362 for the force_reg mode.
9363 (avx512vl_vextractf128<mode>): Use register as dest either
9364 always when a MEM, or when it is a MEM not rtx_equal_p to the
9365 corresponding dup operand, or even not when it is a CONST_VECTOR
9366 depending on the mode and lo vs. hi.
9367 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
9368 parens.
9369 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
9370 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
9371 Likewise. Require that operands[2] is even.
9372 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
9373 Remove extraneous parens. Require that operands[2] is a multiple
9374 of 4.
9375 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
9376 operands[0] is a MEM if <mask_applied>, the predicates/constraints
9377 disallow memory then.
9378
9379 2017-03-30 Richard Biener <rguenther@suse.de>
9380
9381 PR tree-optimization/77498
9382 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
9383 to non-constants over backedges.
9384
9385 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
9386
9387 PR rtl-optimization/80233
9388 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
9389 as last_combined_insn. Do not test for BARRIER_P separately.
9390
9391 2017-03-29 Andreas Schwab <schwab@suse.de>
9392
9393 PR ada/80146
9394 * calls.c (prepare_call_address): Convert funexp to Pmode before
9395 copying to temp reg.
9396
9397 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9398
9399 PR tree-optimization/80158
9400 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
9401 Handle possible future case of more than one alternate
9402 interpretation.
9403 (replace_rhs_if_not_dup): Likewise.
9404 (replace_one_candidate): Likewise.
9405
9406 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
9407
9408 PR rtl-optimization/80193
9409 * ira.c (ira): Do not check allocation for LRA.
9410
9411 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
9412
9413 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
9414 (nvptx_output_simt_exit): Declare.
9415 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
9416 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
9417 (init_softstack_frame): Move initialization of crtl->is_leaf to...
9418 (nvptx_declare_function_name): ...here. Emit declaration of local
9419 memory space buffer for omp_simt_enter insn.
9420 (nvptx_output_unisimt_switch): New.
9421 (nvptx_output_softstack_switch): New.
9422 (nvptx_output_simt_enter): New.
9423 (nvptx_output_simt_exit): New.
9424 * config/nvptx/nvptx.h (struct machine_function): New fields
9425 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
9426 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
9427 (UNSPECV_SIMT_EXIT): Ditto.
9428 (omp_simt_enter_insn): New insn.
9429 (omp_simt_enter): New expansion.
9430 (omp_simt_exit): New insn.
9431 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
9432
9433 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
9434 (expand_GOMP_SIMT_ENTER_ALLOC): New.
9435 (expand_GOMP_SIMT_EXIT): New.
9436 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
9437 (GOMP_SIMT_ENTER_ALLOC): Ditto.
9438 (GOMP_SIMT_EXIT): Ditto.
9439 * target-insns.def (omp_simt_enter): New insn.
9440 (omp_simt_exit): Ditto.
9441 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
9442 simt_dlist.
9443 (lower_rec_simd_input_clauses): Implement SIMT privatization.
9444 (lower_rec_input_clauses): Likewise.
9445 (lower_lastprivate_clauses): Handle SIMT privatization.
9446
9447 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
9448 (ompdevlow_adjust_simt_enter): New.
9449 (find_simtpriv_var_op): New.
9450 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
9451 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
9452
9453 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
9454 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
9455 (copy_decl_for_dup_finish): Ditto.
9456
9457 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
9458
9459 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
9460
9461 PR target/53383
9462 * config/i386/i386.c (ix86_option_override_internal): Always
9463 allow -mpreferred-stack-boundary=3 for 64-bit targets.
9464
9465 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9466
9467 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
9468
9469 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9470
9471 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
9472 mark new edge's irreducible flag accordign to it.
9473 (vect_do_peeling): Check loop preheader edge's irreducible flag
9474 and pass it to function slpeel_add_loop_guard.
9475
9476 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
9477
9478 PR tree-optimization/80218
9479 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
9480 Update block frequencies and counts.
9481
9482 2017-03-28 Richard Biener <rguenther@suse.de>
9483
9484 PR tree-optimization/78644
9485 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
9486 of a simplification result we may not use it at all.
9487
9488 2017-03-28 Richard Biener <rguenther@suse.de>
9489
9490 PR ipa/80205
9491 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
9492 without arguments, generate default definition of a SSA name.
9493
9494 2017-03-28 Richard Biener <rguenther@suse.de>
9495
9496 PR middle-end/80222
9497 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
9498 TYPE_REF_CAN_ALIAS_ALL references.
9499 * fold-const.c (fold_indirect_ref_1): Likewise.
9500
9501 2017-03-28 Martin Liska <mliska@suse.cz>
9502
9503 PR ipa/80104
9504 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
9505 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
9506
9507 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9508 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9509
9510 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
9511 (EXTRA_SPECS): Define.
9512 (SUBTARGET_EXTRA_SPECS): Likewise.
9513 (SUBTARGET_CPP_SPEC): Likewise.
9514 * config/arc/elf.h (EXTRA_SPECS): Renamed to
9515 SUBTARGET_EXTRA_SPECS.
9516 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
9517
9518 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9519
9520 * config/arc/simdext.md (vst64_insn): Update pattern.
9521 (vld32wh_insn): Likewise.
9522 (vld32wl_insn): Likewise.
9523 (vld64_insn): Likewise.
9524 (vld32_insn): Likewise.
9525
9526 2017-03-28 Marek Polacek <polacek@redhat.com>
9527
9528 PR sanitizer/80067
9529 * fold-const.c (fold_comparison): Use protected_set_expr_location
9530 instead of SET_EXPR_LOCATION.
9531
9532 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
9533
9534 * tree.c (add_expr): Avoid name lookup warning.
9535
9536 2017-03-27 Jeff Law <law@redhat.com>
9537
9538 PR tree-optimization/80216
9539 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
9540 function name. Limit recursion depth.
9541 (record_temporary_equivalences): Corresponding changes.
9542
9543 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
9544
9545 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
9546 covered first.
9547
9548 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9549
9550 PR target/80102
9551 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
9552 notes.
9553 * cfgcleanup.c (reg_note_cfa_p): New array.
9554 (insns_have_identical_cfa_notes): New function.
9555 (old_insns_match_p): Don't cross-jump in between /f
9556 and non-/f instructions. If both i1 and i2 are frame related,
9557 verify all CFA notes, their order and content.
9558
9559 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9560
9561 PR target/78543
9562 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
9563 HImode and SImode with zero extend to DImode to one insn.
9564 (bswap<mode>2_extenddi): Likewise.
9565 (bswapsi2_extenddi): Likewise.
9566 (bswaphi2_extendsi): Likewise.
9567 (bswaphi2): Combine bswap HImode and SImode into one insn.
9568 Separate memory insns from swapping register.
9569 (bswapsi2): Likewise.
9570 (bswap<mode>2): Likewise.
9571 (bswaphi2_internal): Delete, no longer used.
9572 (bswapsi2_internal): Likewise.
9573 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
9574 store, and gpr<-gpr swap insns.
9575 (bswap<mode>2_store): Likewise.
9576 (bswaphi2_reg): Register only splitter, combine with the splitter.
9577 (bswaphi2 splitter): Likewise.
9578 (bswapsi2_reg): Likewise.
9579 (bswapsi2 splitter): Likewise.
9580 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
9581 the insns into load, store, and register/register insns.
9582 (bswapdi2_ldbrx): Likewise.
9583 (bswapdi2_load): Likewise.
9584 (bswapdi2_store): Likewise.
9585 (bswapdi2_reg): Likewise.
9586
9587 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
9588
9589 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
9590 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
9591
9592 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
9593
9594 PR target/80103
9595 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
9596 add comments.
9597 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9598 special handling for target option conflicts between dform
9599 options (-mpower9-dform, -mpower9-dform-vector,
9600 -mpower9-dform-scalar) and -mno-direct-move.
9601
9602 2017-03-27 Richard Biener <rguenther@suse.de>
9603
9604 PR tree-optimization/80181
9605 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
9606
9607 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9608
9609 * config/arc/predicates.md (move_double_src_operand): Replace the
9610 call to move_double_src_operand with a call to address_operand.
9611
9612 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9613
9614 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
9615 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
9616 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
9617
9618 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9619
9620 * config/arc/predicates.md (long_immediate_loadstore_operand):
9621 Consider scaled addresses cases.
9622
9623 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9624
9625 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
9626 restored when in interrupt.
9627 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
9628 doesn't have delay slot.
9629
9630 2017-03-27 Richard Biener <rguenther@suse.de>
9631
9632 PR ipa/79776
9633 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
9634 inlined thunk clones.
9635
9636 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9637
9638 PR sanitizer/80168
9639 * asan.c (instrument_derefs): Copy over last operand from
9640 original COMPONENT_REF to the new COMPONENT_REF with
9641 DECL_BIT_FIELD_REPRESENTATIVE.
9642 * ubsan.c (instrument_object_size): Likewise.
9643
9644 2017-03-27 Richard Biener <rguenther@suse.de>
9645
9646 PR tree-optimization/80170
9647 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
9648 sure DR/SCEV didnt fold in constants we do not see when looking
9649 at the reference base alignment.
9650
9651 2017-03-27 Richard Biener <rguenther@suse.de>
9652
9653 PR middle-end/80171
9654 * gimple-fold.c (fold_ctor_reference): Properly guard against
9655 NULL return value from canonicalize_constructor_val.
9656
9657 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
9658
9659 PR target/80180
9660 * config/i386/i386.c (ix86_expand_builtin)
9661 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
9662 flags reg setting and flags reg using instructions.
9663 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
9664 clobbering instructions to zero extend op2.
9665
9666 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
9667
9668 * doc/install.texi (Configuration) <--with-aix-soname>:
9669 Update link to AIX ld.
9670
9671 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
9672
9673 PR rtl-optimization/80160
9674 PR rtl-optimization/80159
9675 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
9676 reg_alternate_class into account.
9677
9678 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
9679
9680 PR target/80148
9681 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
9682 to consider in curr_insn_transform.
9683
9684 2017-03-24 Jakub Jelinek <jakub@redhat.com>
9685
9686 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
9687 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
9688 and emit_mode_inner.
9689
9690 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9691
9692 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
9693 argument to the overloaded builtin variants. Use the new flag to
9694 deprecate certain builtin variants.
9695 * config/s390/s390-builtin-types.def: Add new builtin types.
9696 * config/s390/s390-builtins.h: Support new flags field for
9697 overloaded builtins.
9698 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
9699 (s390_macro_to_expand): Enable vector float data type.
9700 (s390_cpu_cpp_builtins_internal): Indicate support of the new
9701 builtins by incrementing the __VEC__ version number.
9702 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
9703 vec_xst.
9704 (s390_resolve_overloaded_builtin): Emit error messages depending
9705 on the builtin flags.
9706 * config/s390/s390.c (s390_expand_builtin): Support additional
9707 flags argument. Change error message to match the messages
9708 emitted in s390-c.c.
9709 * config/s390/s390.md: New UNSPEC_* constants.
9710 (op_type): Add new instruction types.
9711 * config/s390/vecintrin.h: Add new builtins and test data class
9712 constants.
9713 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
9714 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
9715 (VEC_INEXACT, VEC_NOINEXACT): New constants.
9716 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
9717 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
9718 ("vec_mergel<mode>"): V_HW -> VEC_HW.
9719
9720 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
9721 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
9722 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
9723 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
9724
9725 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
9726 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
9727 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
9728 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
9729
9730 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
9731 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
9732 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
9733 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
9734 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
9735 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
9736 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
9737
9738 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
9739 ("vec_scatter_element<V_HW_4:mode>_DI")
9740 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
9741 ("vec_fpint<mode>", "vflls")
9742 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
9743 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
9744 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
9745 ("*vec_cmphe<mode>_cc"): ... these.
9746
9747 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
9748 mode constant instead of magic value.
9749
9750 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9751
9752 * config/s390/s390.c (s390_expand_vec_compare): Support other
9753 vector floating point modes than just V2DF.
9754 (s390_expand_vcond): Likewise.
9755 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
9756 (s390_cannot_change_mode_class): Prevent mode changes between TF
9757 and V1TF in vector registers.
9758 * config/s390/s390.md (DF, SF): New mode attributes.
9759 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
9760 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
9761 SFmode support for VRs.
9762 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
9763 vector fp modes.
9764 (VFT, VF_HW): New mode iterators.
9765 (vw, sdx): New mode attributes.
9766 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
9767 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
9768 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
9769 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
9770 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
9771 also the new vector floating point modes. Renaming to ...
9772
9773 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
9774 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
9775 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
9776 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
9777 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
9778 ("vec_unordered<mode>"): ... these.
9779
9780 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
9781 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
9782 ("*vec_extendv2df"): New insn definitions.
9783
9784 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9785
9786 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
9787 ("mulditi3_2", "*muldi3_sign"): New patterns.
9788 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
9789 rename the pattern definition.
9790
9791 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9792
9793 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
9794 expander.
9795 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
9796
9797 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9798
9799 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
9800 instruction if possible.
9801 * config/s390/vector.md (vec_halfnumelts): New mode
9802 attribute.
9803 ("*vec_vllezlf<mode>"): New pattern.
9804
9805 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9806
9807 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
9808 ("popcountv4si2", "popcountv2di2"): Rename to ...
9809 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
9810 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
9811 condition.
9812 ("popcount<mode>2_vxe"): New pattern.
9813
9814 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9815
9816 * common/config/s390/s390-common.c (processor_flags_table): Add
9817 arch12.
9818 * config.gcc: Add arch12.
9819 * config/s390/driver-native.c (s390_host_detect_local_cpu):
9820 Default to arch12 for unknown CPU model numbers.
9821 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
9822 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
9823 PROCESSOR_max sanity check.
9824 * config/s390/s390-opts.h (enum processor_type): Add
9825 PROCESSOR_ARCH12.
9826 * config/s390/s390.c (processor_table): Add arch12.
9827 (s390_expand_builtin): Add check for B_VXE flag.
9828 (s390_issue_rate): Add PROCESSOR_ARCH12.
9829 (s390_get_sched_attrmask): Likewise.
9830 (s390_get_unit_mask): Likewise.
9831 (s390_sched_score): Enable z13 scheduling for arch12.
9832 (s390_sched_reorder): Likewise.
9833 (s390_sched_variable_issue): Likewise.
9834 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
9835 PF_VXE.
9836 (s390_tune_attr): Use z13 scheduling also for arch12.
9837 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
9838 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
9839 (TARGET_VXE_P): New macros.
9840 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
9841 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
9842 * config/s390/s390.opt: Add arch12 as processor_type.
9843
9844 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9845
9846 * config/s390/s390.md
9847 ("fixuns_truncdddi2", "fixuns_trunctddi2")
9848 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
9849 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
9850
9851 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
9852 Rename expanders to ...
9853
9854 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
9855 ("fixuns_truncdddi2_emu"): ... these.
9856
9857 ("fixuns_trunc<mode>si2_emu"): New expander.
9858
9859 ("*fixuns_truncdfdi2_z13"): Rename to ...
9860 ("*fixuns_truncdfdi2_vx"): ... this.
9861
9862 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9863
9864 * config/s390/2964.md: Remove the single element vector compare
9865 instructions which are no longer used.
9866 * config/s390/s390.c (s390_select_ccmode): Remove handling of
9867 vector CCmodes.
9868 (s390_canonicalize_comparison): Remove handling of DFmode
9869 compares.
9870 (s390_expand_vec_compare_scalar): Remove function.
9871 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
9872 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
9873 pattern.
9874 ("*cmp<mode>_ccs"): Add wfcdb instruction.
9875
9876 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9877
9878 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
9879 FP zero.
9880 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
9881 will anyway by matched by mov<mode>_64dfp.
9882
9883 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9884
9885 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
9886 vlef/vstef. Add missing operand to vleif.
9887
9888 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9889
9890 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
9891 pair for all vector types with 64 bit elements.
9892 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
9893 * config/s390/vector.md (V_HW_64): ... here.
9894 (V_128_NOSINGLE): New mode iterator.
9895 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
9896 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
9897 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
9898 ("*vec_load_pairv2di"): Change to ...
9899 ("*vec_load_pair<mode>"): ... this one.
9900
9901 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9902
9903 * config/s390/constraints.md: Add comments.
9904 (jKK): Reject element sizes > 8 bytes.
9905 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
9906 s_operands.
9907 * config/s390/s390.md: Add the s_operand checks formerly in
9908 s390_split_ok_p to various splitters where they are still
9909 required.
9910 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
9911 for 128 bit vectors. Plus two splitters.
9912
9913 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9914
9915 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
9916 the file.
9917
9918 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9919
9920 PR target/79893
9921 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
9922 error if the boundary argument is not constant.
9923
9924 2017-03-24 Jakub Jelinek <jakub@redhat.com>
9925
9926 PR rtl-optimization/80112
9927 * loop-doloop.c (doloop_condition_get): Don't check condition
9928 if cmp isn't SET with IF_THEN_ELSE src.
9929
9930 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9931
9932 PR tree-optimization/80158
9933 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
9934 replacing a candidate statement, also replace it for the
9935 candidate's alternate interpretation.
9936 (replace_rhs_if_not_dup): Likewise.
9937 (replace_one_candidate): Likewise.
9938
9939 2017-03-24 Richard Biener <rguenther@suse.de>
9940
9941 PR tree-optimization/80167
9942 * graphite-isl-ast-to-gimple.c
9943 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
9944 properly.
9945 (translate_isl_ast_to_gimple::get_rename): Likewise.
9946
9947 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
9948
9949 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
9950 handling of certain combinations of target options, including the
9951 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
9952 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
9953
9954 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9955
9956 PR target/71436
9957 * config/arm/arm.md (*load_multiple): Add reload_completed to
9958 matching condition.
9959
9960 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9961 Richard Biener <rguenth@suse.de>
9962
9963 PR tree-optimization/79908
9964 PR tree-optimization/80136
9965 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
9966 been cast away, gimplify_and_add suffices.
9967
9968 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
9969
9970 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
9971
9972 2017-03-23 Richard Biener <rguenther@suse.de>
9973
9974 PR tree-optimization/80032
9975 * gimplify.c (gimple_push_cleanup): Forced unconditional
9976 cleanups still have to go to the conditional_cleanups
9977 sequence.
9978
9979 2017-03-22 Jakub Jelinek <jakub@redhat.com>
9980
9981 PR tree-optimization/80072
9982 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
9983 to unsigned int.
9984 (next_operand_entry_id): Change type to unsigned int.
9985 (sort_by_operand_rank): Make sure to return the right return value
9986 even if unsigned fields are bigger than INT_MAX.
9987 (struct oecount): Change cnt and id type to unsigned int.
9988 (oecount_hasher::equal): Formatting fix.
9989 (oecount_cmp): Make sure to return the right return value
9990 even if unsigned fields are bigger than INT_MAX.
9991 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
9992
9993 PR c++/80129
9994 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
9995 TREE_READONLY on result if writing it more than once.
9996
9997 PR sanitizer/80110
9998 * doc/invoke.texi (-fsanitize=thread): Document that with
9999 -fnon-call-exceptions atomics are not able to throw
10000 exceptions.
10001
10002 PR sanitizer/80110
10003 * tsan.c: Include tree-eh.h.
10004 (instrument_builtin_call): Call maybe_clean_eh_stmt or
10005 maybe_clean_or_replace_eh_stmt where needed.
10006 (instrument_memory_accesses): Add cfg_changed argument.
10007 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
10008 if it returned true.
10009 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
10010
10011 PR rtl-optimization/63191
10012 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
10013 wrapper function, moved the whole old content into ...
10014 (ix86_delegitimize_address_1): ... this. New inline function.
10015 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
10016 true as last argument instead of ix86_delegitimize_address.
10017
10018 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10019
10020 * config/aarch64/aarch64.c (generic_branch_cost): Copy
10021 cortexa57_branch_cost.
10022
10023 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10024
10025 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
10026
10027 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10028
10029 PR target/80123
10030 * doc/md.texi (Constraints): Document wA constraint.
10031 * config/rs6000/constraints.md (wA): New.
10032 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
10033 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
10034 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
10035 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
10036
10037 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
10038
10039 PR c++/80029
10040 * gimplify.c (is_oacc_declared): New function.
10041 (oacc_default_clause): Use it to set default flags for acc declared
10042 variables inside parallel regions.
10043 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
10044 declared variables.
10045 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
10046 declare attribute to any decl as necessary.
10047
10048 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
10049
10050 PR target/80082
10051 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
10052 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
10053 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
10054 (arm_arch_lpae): This.
10055 * config/arm/arm.c (arm_arch7ve): Rename into ...
10056 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
10057 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
10058 arm_arch_lpae.
10059
10060 2017-03-22 Martin Liska <mliska@suse.cz>
10061
10062 PR target/79906
10063 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
10064 error message instead of an ICE.
10065
10066 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10067
10068 * doc/extend.texi (6.11 Additional Floating Types): Revise.
10069
10070 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
10071
10072 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
10073 comments.
10074 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10075 comments.
10076
10077 2017-03-21 Martin Sebor <msebor@redhat.com>
10078
10079 * doc/extend.texi: Use "cannot" instead of "can't."
10080 * doc/hostconfig.texi: Same.
10081 * doc/install.texi: Same.
10082 * doc/invoke.texi: Same.
10083 * doc/loop.texi: Same.
10084 * doc/md.texi: Same.
10085 * doc/objc.texi: Same.
10086 * doc/rtl.texi: Same.
10087 * doc/tm.texi: Same.
10088 * doc/tm.texi.in: Same.
10089 * doc/trouble.texi: Same.
10090
10091 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
10092
10093 PR debug/63238
10094 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
10095 (collect_checksum_attributes): Set it.
10096 (die_checksum_ordered): Use it.
10097
10098 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10099
10100 PR tree-optimization/79908
10101 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
10102 change: For a VA_ARG whose LHS has been cast away, use
10103 force_gimple_operand to construct the side effects.
10104
10105 2017-03-21 David Malcolm <dmalcolm@redhat.com>
10106
10107 PR translation/80001
10108 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
10109 more amenable to translation.
10110 (oacc_loop_auto_partitions): Likewise.
10111
10112 2017-03-21 Marek Polacek <polacek@redhat.com>
10113 Martin Sebor <msebor@redhat.com>
10114
10115 PR tree-optimization/80109
10116 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
10117 on INTEGRAL_TYPE_P.
10118
10119 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10120 Segher Boessenkool <segher@kernel.crashing.org>
10121
10122 PR target/80125
10123 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
10124 check reg_used_between_p between insn and one of succ or succ2
10125 depending on if succ is artificial insn not inserted into insn
10126 stream.
10127
10128 2017-03-21 Martin Liska <mliska@suse.cz>
10129
10130 PR gcov-profile/80081
10131 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
10132 * doc/gcc.texi: Include gcov-dump stuff.
10133 * doc/gcov-dump.texi: New file.
10134
10135 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
10136
10137 PR rtl-optimization/79150
10138 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
10139 conditional jump, if the jump is the last insn of the loop.
10140
10141 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10142 Richard Biener <rguenth@suse.de>
10143
10144 PR tree-optimization/79908
10145 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10146 been cast away, use force_gimple_operand to construct the side
10147 effects.
10148
10149 2017-03-21 Martin Liska <mliska@suse.cz>
10150
10151 PR libfortran/79956
10152 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
10153 to NULL.
10154
10155 2017-03-21 Brad Spengler <spender@grsecurity.net>
10156
10157 PR plugins/80094
10158 * plugin.c (htab_hash_plugin): New function.
10159 (add_new_plugin): Use it and adjust.
10160 (parse_plugin_arg_opt): Adjust.
10161 (init_one_plugin): Likewise.
10162
10163 2017-03-21 Richard Biener <rguenther@suse.de>
10164
10165 PR tree-optimization/80032
10166 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
10167 if set force the cleanup to happen unconditionally.
10168 (gimplify_target_expr): Push inserted clobbers with force_uncond
10169 to avoid them being removed by control-dependent DCE.
10170
10171 2017-03-21 Richard Biener <rguenther@suse.de>
10172
10173 PR tree-optimization/80122
10174 * tree-inline.c (copy_bb): Do not expans va-arg packs or
10175 va_arg_pack_len when the inlined call stmt requires pack
10176 expansion itself.
10177 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
10178
10179 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10180
10181 PR sanitizer/78158
10182 * tsan.c (instrument_builtin_call): If the memory model argument
10183 is not a constant, assume it is valid.
10184
10185 PR c/67338
10186 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
10187 avoid UB.
10188
10189 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10190
10191 PR rtl-optimization/79910
10192 * combine.c (can_combine_p): Do not allow combining an I0 or I1
10193 if its dest is used by an insn before I2 (other than the combined
10194 insns themselves, which are properly handled already).
10195
10196 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10197
10198 Revert:
10199 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10200
10201 * combine.c (record_used_regs): New static function.
10202 (try_combine): Handle situations where there is an additional
10203 instruction between I2 and I3 which needs to have a LOG_LINK
10204 updated.
10205
10206 Revert:
10207 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10208
10209 * combine.c (try_combine): Delete redundant i1 test. Call
10210 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10211
10212 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10213
10214 PR target/80083
10215 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
10216 alternatives 13/14.
10217
10218 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10219
10220 PR tree-optimization/80054
10221 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
10222 the optimization if a PHI or any of its arguments is not dominated
10223 by the candidate's basis. Use gphi* rather than gimple* as
10224 appropriate.
10225 (replace_profitable_candidates): Clean up a gimple* variable that
10226 should be a gphi* variable.
10227
10228 2017-03-20 Martin Sebor <msebor@redhat.com>
10229
10230 PR c++/52477
10231 * doc/extend.texi (attribute constructor): Document present limitation.
10232
10233 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
10234
10235 PR target/79963
10236 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
10237 __POWER9_VECTOR__ #ifdef control, change template definition to
10238 use Power9-specific built-in function.
10239 (vec_any_eq): Likewise.
10240 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
10241 to control outcomes from this test.
10242 (vector_ae_<mode>p): For VEC_F modes, likewise.
10243
10244 2017-03-20 Ian Lance Taylor <iant@google.com>
10245
10246 * config/i386/i386.c (ix86_function_regparm): Save an extra
10247 register for -fsplit-stack with DECL_STATIC_CHAIN.
10248
10249 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10250
10251 PR target/79912
10252 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
10253 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
10254
10255 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10256
10257 * config/riscv/riscv.c (riscv_print_operand): Use "fence
10258 iorw,ow".
10259 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
10260 iorw,iorw".
10261
10262 2017-03-20 Marek Polacek <polacek@redhat.com>
10263
10264 PR sanitizer/80063
10265 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
10266
10267 2017-03-20 Richard Biener <rguenther@suse.de>
10268
10269 PR tree-optimization/80113
10270 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
10271 allocate extra SSA name for PHI def.
10272 (add_close_phis_to_outer_loops): Likewise.
10273 (add_close_phis_to_merge_points): Likewise.
10274 (copy_loop_close_phi_args): Likewise.
10275 (copy_cond_phi_nodes): Likewise.
10276
10277 2017-03-20 Martin Liska <mliska@suse.cz>
10278
10279 PR middle-end/79753
10280 * tree-chkp.c (chkp_build_returned_bound): Do not build
10281 returned bounds for a LHS that's not a BOUNDED_P type.
10282
10283 2017-03-20 Martin Liska <mliska@suse.cz>
10284
10285 PR target/79769
10286 PR target/79770
10287 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
10288 COMPLEX_CST and VECTOR_CST.
10289
10290 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10291
10292 PR target/78857
10293 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
10294 target operand. A new splitter adds the clobber statement in case
10295 the target operand is dead anyway.
10296
10297 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
10298
10299 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
10300 to age-old versions of binutils and glibc.
10301
10302 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
10303
10304 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
10305
10306 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10307
10308 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
10309
10310 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10311
10312 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
10313 requirement for binutils 2.13.
10314
10315 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10316
10317 * combine.c (try_combine): Delete redundant i1 test. Call
10318 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10319
10320 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
10321
10322 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
10323 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
10324 contents.
10325 <riscv64-*-elf>: Re-arrange section
10326 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
10327 <riscv32-*-linux>: Likewise.
10328 <riscv64-*-elf>: Likewise
10329 <riscv64-*-linux>: Likewise.
10330
10331 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
10332
10333 PR target/80052
10334 * aarch64.opt(verbose-cost-dump): Fix typo.
10335
10336 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
10337
10338 PR target/79951
10339 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
10340 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
10341
10342 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10343
10344 * reload.c (find_reloads): When reloading a nonoffsettable address,
10345 use RELOAD_OTHER for it and its address reloads.
10346
10347 PR rtl-optimization/79910
10348 * combine.c (record_used_regs): New static function.
10349 (try_combine): Handle situations where there is an additional
10350 instruction between I2 and I3 which needs to have a LOG_LINK
10351 updated.
10352
10353 2017-03-17 Jeff Law <law@redhat.com>
10354
10355 PR tree-optimization/71437
10356 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
10357 conditional in the hash table first.
10358 (vrp_dom_walker::before_dom_children): Extract condition from
10359 ASSERT_EXPR. Record condition, its inverion and any implied
10360 conditions as well.
10361
10362 2017-03-17 Marek Polacek <polacek@redhat.com>
10363 Markus Trippelsdorf <markus@trippelsdorf.de>
10364
10365 PR tree-optimization/80079
10366 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
10367 m_stores_head.
10368
10369 2017-03-17 Richard Biener <rguenther@suse.de>
10370
10371 PR middle-end/80075
10372 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
10373 Properly verify the LHS before the RHS possibly claims to be
10374 handled.
10375 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
10376 do not throw.
10377
10378 2017-03-17 Martin Jambor <mjambor@suse.cz>
10379
10380 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
10381 (List of -O2 options): Likewise.
10382 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
10383 (-fipa-vrp) New.
10384
10385 2017-03-17 Tom de Vries <tom@codesourcery.com>
10386
10387 * gcov-dump.c (print_usage): Print bug_report_url.
10388
10389 2017-03-17 Richard Biener <rguenther@suse.de>
10390
10391 PR middle-end/80050
10392 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
10393 (parser::peek): Likewise.
10394
10395 2017-03-17 Richard Biener <rguenther@suse.de>
10396
10397 PR tree-optimization/80048
10398 * sese.c (free_sese_info): Properly release rename_map and
10399 copied_bb_map elements.
10400
10401 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
10402
10403 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
10404 Add linked-list forward and backlinks. Insert on
10405 construction, remove on destruction.
10406 (class pass_store_merging): Add m_stores_head field.
10407 (pass_store_merging::terminate_and_process_all_chains):
10408 Iterate over m_stores_head list.
10409 (pass_store_merging::terminate_all_aliasing_chains):
10410 Likewise.
10411 (pass_store_merging::execute): Check for debug stmts first.
10412 Push new chains onto the m_stores_head stack.
10413
10414 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10415
10416 PR target/71294
10417 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
10418 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
10419 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
10420
10421 2017-03-16 Jeff Law <law@redhat.com>
10422
10423 PR tree-optimization/71437
10424 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
10425 member function. Implementation moved into after_dom_children
10426 member function and into the threader's thread_outgoing_edges
10427 function.
10428 (dom_opt_dom_walker::after_dom_children): Simplify by moving
10429 some code into new thread_outgoing_edges.
10430 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
10431 definition. Simplify marker handling (do it here). Assume we always
10432 have the available expression and the const/copies tables.
10433 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
10434 and tree-vrp.c
10435 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
10436 * tree-vrp.c (equiv_stack): No longer file scoped.
10437 (vrp_dom_walker): New class.
10438 (vrp_dom_walker::before_dom_children): New member function.
10439 (vrp_dom_walker::after_dom_children): Likewise.
10440 (identify_jump_threads): Setup domwalker. Use it rather than
10441 walking edges in a random order by hand. Simplify setup/finalization.
10442 (finalize_jump_threads): Remove.
10443 (vrp_finalize): Do not call identify_jump_threads here.
10444 (execute_vrp): Do it here instead and call thread_through_all_blocks
10445 here too.
10446
10447 PR tree-optimization/71437
10448 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
10449 callers changed.
10450 (simplify_stmt_for_jump_threading): Add basic_block argument. All
10451 callers changed.
10452 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
10453 (dom_opt_dom_walker::thread_across_edge): Remove
10454 handle_dominating_asserts argument. All callers changed.
10455 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
10456 changes. Remove calls to lhs_of_dominating_assert. Other
10457 uses of handle_dominating_asserts turn into unconditional code
10458 (simplify_control_stmt_condition_1): Likewise.
10459 (simplify_control_stmt_condition): Likewise.
10460 (thread_through_normal_block, thread_across_edge): Likewise.
10461 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
10462 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
10463 object if it is not an SSA_NAME.
10464 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
10465 before calling into the VRP specific simplifiers.
10466 (identify_jump_threads): Remove handle_dominating_asserts
10467 argument.
10468
10469 2017-03-16 Jakub Jelinek <jakub@redhat.com>
10470
10471 PR fortran/79886
10472 * tree-diagnostic.c (default_tree_printer): No longer static.
10473 * tree-diagnostic.h (default_tree_printer): New prototype.
10474
10475 2017-03-16 Tamar Christina <tamar.christina@arm.com>
10476
10477 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
10478 Change ins into fmov.
10479
10480 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10481
10482 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
10483 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
10484 Use h_con constraint for operand 1.
10485 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
10486 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
10487
10488 2017-03-15 Jeff Law <law@redhat.com>
10489
10490 PR tree-optimization/71437
10491 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
10492 (record_temporary_equivalences): Use it.
10493
10494 PR tree-optimization/71437
10495 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
10496 tree-ssa-scopedtables.
10497 (lookup_avail_expr, build_and_record_new_cond): Likewise.
10498 (record_conditions, record_cond, vuse_eq): Likewise.
10499 (record_edge_info): Adjust to API tweak of record_conditions.
10500 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
10501 (record_temporary_equivalences, optimize_stmt): Likewise.
10502 (eliminate_redundant_computations): Likewise.
10503 (record_equivalences_from_stmt): Likewise.
10504 * tree-ssa-scopedtables.c: Include options.h and params.h.
10505 (vuse_eq): New function, moved from tree-ssa-dom.c
10506 (build_and_record_new_cond): Likewise.
10507 (record_conditions): Likewise. Accept vector of conditions rather
10508 than edge_equivalence structure for first argument.
10509 for the first argument.
10510 (avail_exprs_stack::lookup_avail_expr): New member function, moved
10511 from tree-ssa-dom.c.
10512 (avail_exprs_stack::record_cond): Likewise.
10513 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
10514 from tree-ssa-dom.c.
10515 (avail_exprs_stack): Add new member functions lookup_avail_expr
10516 and record_cond.
10517 (record_conditions): Declare.
10518
10519 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
10520
10521 PR target/80017
10522 * lra-constraints.c (process_alt_operands): Increase reject for
10523 reloading an input/output operand.
10524
10525 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10526
10527 PR target/79038
10528 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
10529 insns to convert from signed/unsigned char/short to IEEE 128-bit
10530 floating point.
10531 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
10532
10533 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
10534
10535 PR target/80019
10536 * config/i386/i386.c (ix86_vector_duplicate_value): Create
10537 subreg of inner mode for values already in registers.
10538
10539 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
10540
10541 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
10542 iteration reg is used after the loop.
10543
10544 2017-03-14 Martin Sebor <msebor@redhat.com>
10545
10546 PR tree-optimization/79800
10547 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
10548 precision in negative-positive range.
10549 (format_floating): Call non-const overload with adjusted precision.
10550
10551 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10552
10553 PR target/79947
10554 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
10555 -mpowerpc-gfxopt.
10556
10557 2017-03-14 Martin Sebor <msebor@redhat.com>
10558
10559 PR middle-end/80020
10560 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
10561 * builtins.def (aligned_alloc): Use it.
10562
10563 PR c/79936
10564 * Makefile.in (GTFILES): Add calls.c.
10565 * calls.c: Include "gt-calls.h".
10566
10567 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
10568
10569 PR rtl-optimization/79728
10570 * regs.h (struct target_regs): New field
10571 x_contains_allocatable_regs_of_mode.
10572 (contains_allocatable_regs_of_mode): New macro.
10573 * reginfo.c (init_reg_sets_1): Initialize it, and change
10574 contains_reg_of_mode so it includes global regs as well.
10575 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
10576 rather than contains_regs_of_mode.
10577
10578 2017-03-14 Martin Liska <mliska@suse.cz>
10579
10580 * doc/invoke.texi: Document options that can't be combined with
10581 -fcheck-pointer-bounds.
10582
10583 2017-03-14 Martin Liska <mliska@suse.cz>
10584
10585 PR middle-end/79831
10586 * doc/invoke.texi (-Wchkp): Document the option.
10587
10588 2017-03-14 Martin Liska <mliska@suse.cz>
10589
10590 * Makefile.in: Install gcov-dump.
10591
10592 2017-03-14 Martin Liska <mliska@suse.cz>
10593
10594 * multiple_target.c (expand_target_clones): Bail out for
10595 an invalid attribute.
10596
10597 2017-03-14 Richard Biener <rguenther@suse.de>
10598
10599 * alias.c (struct alias_set_entry): Pack properly.
10600 * cfgloop.h (struct loop): Likewise.
10601 * cse.c (struct set): Likewise.
10602 * ipa-utils.c (struct searchc_env): Likewise.
10603 * loop-invariant.c (struct invariant): Likewise.
10604 * lra-remat.c (struct cand): Likewise.
10605 * recog.c (struct change_t): Likewise.
10606 * rtl.h (struct address_info): Likewise.
10607 * symbol-summary.h (function_summary): Likewise.
10608 * tree-loop-distribution.c (struct partition): Likewise.
10609 * tree-object-size.c (struct object_size_info): Likewise.
10610 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
10611 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
10612 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
10613 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
10614 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
10615 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
10616 (struct _stmt_vec_info): Likewise.
10617
10618 2017-03-14 Martin Liska <mliska@suse.cz>
10619
10620 PR target/79892
10621 * multiple_target.c (create_dispatcher_calls): Check that
10622 a target can create a function dispatcher.
10623
10624 2017-03-14 Martin Liska <mliska@suse.cz>
10625
10626 PR lto/66295
10627 * multiple_target.c (expand_target_clones): Drop local.local
10628 flag for default implementation.
10629
10630 2017-03-14 Richard Biener <rguenther@suse.de>
10631
10632 PR tree-optimization/80030
10633 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
10634
10635 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
10636
10637 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
10638 gcc_fallthrough() instead of __attribute__((fallthrough));
10639
10640 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10641
10642 * doc/gcc.texi: Remove "up" link to (DIR).
10643 * doc/gccint.texi: Ditto.
10644
10645 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10646
10647 * doc/install.texi (Specific) <avr>: Remove reference to
10648 binutils 2.13.
10649
10650 2017-03-13 Jeff Law <law@redhat.com>
10651
10652 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
10653 attribute rather than comments.
10654
10655 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
10656 match_scratch operand is highest.
10657
10658 2017-03-13 Martin Liska <mliska@suse.cz>
10659
10660 PR middle-end/78339
10661 * ipa-pure-const.c (warn_function_noreturn): If the declarations
10662 is a CHKP clone, use original declaration.
10663
10664 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10665
10666 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
10667 (arc_conditional_register_usage): Use a different allocation order
10668 when optimizing for size.
10669 * common/config/arc/arc-common.c (arc_option_optimization_table):
10670 Section anchors default on when optimizing for size.
10671
10672 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10673
10674 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
10675
10676 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10677
10678 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
10679 * config/arc/arc.md (cpu_facility): Add cd variant.
10680 (*movqi_insn): Add code density variant.
10681 (*movhi_insn): Likewise.
10682 (*movqi_insn): Likewise.
10683 (*addsi3_mixed): Likewise.
10684 (subsi3_insn): Likewise.
10685
10686 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10687
10688 * config/arc/arc.md (movsi_cond_exec): Update constraint.
10689
10690 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10691
10692 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
10693 expressions with MINUS and UNARY ops.
10694
10695 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10696
10697 PR target/79911
10698 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
10699 Rename to...
10700 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
10701 between vec_select and vector argument.
10702 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
10703 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
10704 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
10705 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
10706 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
10707 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
10708
10709 2017-03-13 Richard Biener <rguenther@suse.de>
10710
10711 PR other/79991
10712 * params.def (vect-max-peeling-for-alignment): Fix typo.
10713
10714 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10715
10716 * doc/install.texi (Specific) <mips-*-*>: Remove description of
10717 issue that only occurred with binutils below 2.18.
10718
10719 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10720
10721 * doc/install.texi (Specific) <cris-axis-elf>: No longer
10722 refer to binutils 2.11/2.12 minimum.
10723
10724 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10725
10726 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
10727 ftp.kernel.org and simplify binutils requirement.
10728
10729 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
10730
10731 * doc/invoke.texi (Warning Options): Fix spelling of link-time
10732 optimization.
10733 (Optimize Options): Ditto. Also remove redundancy.
10734
10735 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10736
10737 PR translation/79848
10738 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
10739 "%qs".
10740 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
10741 to G_ to avoid double translation.
10742
10743 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10744
10745 PR translation/79923
10746 * auto-profile.c (get_combined_location): Convert leading
10747 character of diagnostics to lower case and remove trailing period.
10748 (read_profile): Likewise for various diagnostics.
10749 * config/arm/arm.c (arm_option_override): Remove trailing period
10750 from various diagnostics.
10751 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
10752 (msp430_expand_delay_cycles): Likewise.
10753
10754 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10755
10756 PR target/79925
10757 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
10758 full command-line argument, rather than just "str".
10759 (aarch64_validate_march): Likewise.
10760 (aarch64_validate_mtune): Likewise.
10761
10762 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
10763
10764 PR rtl-optimization/78911
10765 * lra-assigns.c (must_not_spill_p): New function.
10766 (spill_for): Use it.
10767
10768 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10769
10770 PR tree-optimization/79981
10771 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
10772 ATOMIC_COMPARE_EXCHANGE ifn result.
10773 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
10774 IFN_ATOMIC_COMPARE_EXCHANGE.
10775
10776 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10777
10778 PR driver/79875
10779 * opts.c (parse_sanitizer_options): Add missing question mark to
10780 "did you mean" message.
10781
10782 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10783
10784 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
10785 built-in.
10786 (VMULEUH_UNS): Likewise.
10787 (VMULOUB_UNS): Likewise.
10788 (VMULOUH_UNS): Likewise.
10789 * config/rs6000/rs6000.c (builtin_function_type): Remove
10790 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
10791
10792 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10793
10794 PR bootstrap/79952
10795 * read-rtl-function.c (function_reader::read_rtx_operand): Update
10796 x with result of extra_parsing_for_operand_code_0.
10797 (function_reader::extra_parsing_for_operand_code_0): Convert
10798 return type from void to rtx, returning x. When reading
10799 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
10800 larger size containing struct block_symbol.
10801
10802 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
10803
10804 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
10805 -mfloat128-hardware without -m64.
10806
10807 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
10808
10809 PR target/79941
10810 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
10811 entries to the case statement that marks unsigned arguments to
10812 overloaded functions.
10813
10814 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
10815
10816 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
10817 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
10818
10819 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
10820
10821 PR target/79907
10822 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
10823 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
10824
10825 2017-03-10 Martin Liska <mliska@suse.cz>
10826
10827 PR target/65705
10828 PR target/69804
10829 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
10830 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
10831 FIELD != NULL.
10832
10833 2017-03-10 Olivier Hainque <hainque@adacore.com>
10834
10835 * tree-switch-conversion (array_value_type): Start by resetting
10836 candidate type to it's main variant.
10837
10838 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10839
10840 PR rtl-optimization/79909
10841 * combine.c (try_combine): Use simplify_replace_rtx on individual
10842 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
10843 of the whole CALL_INSN_FUNCTION_USAGE.
10844
10845 PR tree-optimization/79972
10846 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
10847 get_range_info on SSA_NAMEs. Formatting fixes.
10848
10849 2017-03-10 Richard Biener <rguenther@suse.de>
10850 Jakub Jelinek <jakub@redhat.com>
10851
10852 PR tree-optimization/77975
10853 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
10854 edge to be constant.
10855 (get_val_for): For constant x return it. Formatting fix.
10856 (loop_niter_by_eval): Avoid pointless looping if the next iteration
10857 would use the same bases as the current one.
10858
10859 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10860
10861 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
10862 instead of vec_select for V1TImode.
10863 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
10864 longer needed.
10865 (VSX_LE_128): Add V1TI to this mode iterator.
10866 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
10867 (*vsx_le_perm_store_<mode>): Likewise.
10868 (pre-reload splitter for VSX stores): Likewise.
10869 (post-reload splitter for VSX stores): Likewise.
10870 (*vsx_xxpermdi2_le_<mode>): Likewise.
10871 (*vsx_lxvd2x2_le_<mode>): Likewise.
10872 (*vsx_stxvd2x2_le_<mode>): Likewise.
10873
10874 2017-03-09 Michael Eager <eager@eagercon.com>
10875
10876 Correct failures with --enable-checking=yes,rtl.
10877
10878 * config/microblaze/microblaze.c (microblaze_expand_shift):
10879 Replace GET_CODE test with CONST_INT_P and INTVAL test with
10880 test for const0_rtx.
10881 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
10882 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
10883
10884 2017-03-09 Richard Biener <rguenther@suse.de>
10885
10886 PR tree-optimization/79977
10887 * graphite-scop-detection.c (scop_detection::merge_sese):
10888 Handle the case of extra exits to blocks dominating the entry.
10889
10890 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
10891
10892 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
10893 Document rdynamic.
10894
10895 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
10896
10897 PR rtl-optimization/79949
10898 * lra-constraints.c (process_alt_operands): Check memory when
10899 trying to predict a cycle. Print about the overall increase.
10900
10901 2017-03-09 Richard Biener <rguenther@suse.de>
10902
10903 PR middle-end/79971
10904 * gimple-expr.c (useless_type_conversion_p): Preserve
10905 TYPE_SATURATING for fixed-point types.
10906
10907 2017-03-09 Richard Biener <rguenther@suse.de>
10908
10909 PR ipa/79970
10910 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
10911 alignment of BLKmode params.
10912
10913 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10914
10915 PR target/79913
10916 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
10917 (VALL_NO_V2Q): Likewise.
10918 (VDQF_DF): Delete.
10919 * config/aarch64/aarch64-simd.md
10920 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
10921 iterator.
10922 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
10923 VALL_NO_V2Q mode iterator.
10924 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
10925
10926 2017-03-09 Martin Liska <mliska@suse.cz>
10927
10928 PR tree-optimization/79631
10929 * tree-chkp-opt.c (chkp_is_constant_addr): Call
10930 tree_int_cst_sign_bit just for INTEGER constants.
10931
10932 2017-03-09 Martin Liska <mliska@suse.cz>
10933
10934 PR target/65705
10935 PR target/69804
10936 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
10937 sanitizers.
10938
10939 2017-03-09 Marek Polacek <polacek@redhat.com>
10940
10941 PR c++/79672
10942 * tree.c (inchash::add_expr): Handle TREE_VEC.
10943
10944 2017-03-09 Martin Liska <mliska@suse.cz>
10945
10946 PR ipa/79764
10947 (chkp_narrow_size_and_offset): New function.
10948 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
10949 (void chkp_parse_bit_field_ref): New function.
10950 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
10951 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
10952
10953 2017-03-09 Martin Liska <mliska@suse.cz>
10954
10955 PR ipa/79761
10956 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
10957 (chkp_find_bounds_1): Remove gcc_unreachable.
10958
10959 2017-03-09 Jakub Jelinek <jakub@redhat.com>
10960
10961 PR sanitizer/79944
10962 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
10963 BUILT_IN_SYNC*, determine the access type from the size suffix and
10964 always build a MEM_REF with that type. Handle forgotten
10965 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
10966
10967 PR target/79932
10968 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
10969 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
10970 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
10971 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
10972 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
10973 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
10974 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
10975 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
10976 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
10977 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
10978 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
10979 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
10980 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
10981 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
10982 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
10983 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
10984 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
10985 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
10986 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
10987 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
10988 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
10989 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
10990 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
10991 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
10992 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
10993 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
10994 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
10995 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
10996 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
10997 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
10998 definitions outside of __OPTIMIZE__ guarded section.
10999
11000 PR target/79932
11001 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
11002 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
11003 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
11004 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
11005 guarded section.
11006
11007 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11008
11009 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
11010 ("vfenez<mode>"): Add missing constraints.
11011
11012 2017-03-08 Martin Sebor <msebor@redhat.com>
11013
11014 PR target/79928
11015 * config/nds32/nds32.c (nds32_option_override):
11016 Fix misspelled diagnostic.
11017
11018 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11019
11020 PR c/79940
11021 * gimplify.c (gimplify_omp_for): Replace index var in outer
11022 taskloop statement with an artificial variable and add
11023 OMP_CLAUSE_PRIVATE clause for it.
11024
11025 2017-03-08 Richard Biener <rguenther@suse.de>
11026
11027 PR tree-optimization/79955
11028 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
11029 for accesses that are completely outside of the variable.
11030
11031 2017-03-08 Andrew Haley <aph@redhat.com>
11032
11033 PR tree-optimization/79943
11034 * tree-ssa-loop-split.c (compute_new_first_bound): When
11035 calculating the new upper bound, (END-BEG) should be added, not
11036 subtracted.
11037
11038 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11039
11040 * config/avr/avr.md (setmemhi): Make sure match_dup
11041 operand number comes before match_scratch.
11042
11043 2017-03-08 Richard Biener <rguenther@suse.de>
11044
11045 PR tree-optimization/79920
11046 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
11047 with ncopies == 1 to ...
11048 (vect_transform_slp_perm_load): ... here. Properly compute
11049 all element loads by iterating VF times over the group. Do
11050 not handle ncopies (computed in a broken way) in
11051 vect_create_mask_and_perm.
11052
11053 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11054
11055 PR sanitizer/79904
11056 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
11057 is a uniform vector, use uniform_vector_p return value instead of
11058 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
11059
11060 2017-03-07 Marek Polacek <polacek@redhat.com>
11061
11062 PR middle-end/79809
11063 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
11064 (alloca_call_type): Likewise.
11065
11066 2017-03-07 Martin Liska <mliska@suse.cz>
11067
11068 * gcov.c (process_args): Put comment to correct location.
11069
11070 2017-03-07 Martin Liska <mliska@suse.cz>
11071
11072 PR middle-end/68270
11073 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
11074 Use array_at_struct_end_p instead of DECL_CHAIN (field).
11075 (chkp_narrow_bounds_for_field): Likewise.
11076 (chkp_parse_array_and_component_ref): Pass one more argument to
11077 call.
11078
11079 2017-03-07 Richard Biener <rguenther@suse.de>
11080
11081 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
11082 preheaders.
11083
11084 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
11085
11086 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
11087 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
11088
11089 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11090
11091 PR c/79855
11092 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
11093 to end of description.
11094 (PARAM_MAX_STORES_TO_MERGE): Likewise.
11095
11096 2017-03-07 Jakub Jelinek <jakub@redhat.com>
11097
11098 PR rtl-optimization/79901
11099 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
11100 ...
11101 (*avx512f_<code><mode>3<mask_name>): ... this.
11102 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
11103 iterator instead of VI8_AVX2_AVX512BW.
11104
11105 PR rtl-optimization/79901
11106 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
11107 min/max expander, expand it using expand_vec_cond_expr.
11108
11109 PR sanitizer/79897
11110 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
11111 temporary.
11112
11113 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11114
11115 PR c++/79821
11116 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
11117 to void * for PCH reasons.
11118 * dwarf2out.c (output_loc_operands, output_die): Cast
11119 v.val_vec.array to unsigned char *.
11120
11121 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
11122
11123 PR target/77850
11124 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
11125 vector types.
11126
11127 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
11128
11129 PR rtl-optimization/79571
11130 * lra-constraints.c (process_alt_operands): Calculate static
11131 reject and subtract it from overall when only addresses will be
11132 reloaded.
11133
11134 2017-03-06 Julia Koval <julia.koval@intel.com>
11135
11136 PR target/79793
11137 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
11138 incoming stack boundary to 128 for 64-bit targets.
11139
11140 2017-03-06 Richard Biener <rguenther@suse.de>
11141
11142 PR tree-optimization/79894
11143 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
11144 to NULL after folding it.
11145
11146 2017-03-06 Richard Biener <rguenther@suse.de>
11147
11148 PR tree-optimization/79824
11149 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
11150 check disabling peeling for gaps.
11151
11152 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
11153
11154 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
11155 attributes): Document gettimeofday.
11156
11157 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11158
11159 * config/s390/s390.c (s390_option_override_internal): Set
11160 PARAM_MIN_VECT_LOOP_BOUND
11161
11162 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11163
11164 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
11165 * config/s390/s390.md: Likewise.
11166
11167 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11168
11169 PR target/79812
11170 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
11171 (<avx2_avx512>_perm<mode>): Rename to ...
11172 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
11173 of VI8F_256_512.
11174 (<avx512>_perm<mode>_mask): Rename to ...
11175 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
11176 of VI8F_256_512.
11177 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
11178 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
11179 instead of VI8F_256_512.
11180 (avx512f_perm<mode>): New define_expand.
11181 (avx512f_perm<mode>_mask): Likewise.
11182 (avx512f_perm<mode>_1<mask_name>): New define_insn.
11183 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
11184
11185 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11186
11187 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
11188 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
11189 if_then_else.
11190 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
11191
11192 2017-03-06 Martin Liska <mliska@suse.cz>
11193
11194 PR sanitize/79783
11195 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
11196 when having a SSA NAME w/o VAR_DECL assigned to it.
11197
11198 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11199
11200 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
11201 msa_dpsub_<su>_d): Fix MODE for vec_select.
11202
11203 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11204
11205 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
11206 argument.
11207 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
11208
11209 2017-03-06 Richard Biener <rguenther@suse.de>
11210
11211 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
11212 * plugin.c (register_plugin_info): Likewise.
11213 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
11214
11215 2017-03-05 Jakub Jelinek <jakub@redhat.com>
11216
11217 * config/i386/sse.md (sse_storehps, sse_storelps,
11218 avx_<castmode><avxsizesuffix>_<castmode>,
11219 avx512f_<castmode><avxsizesuffix>_<castmode>,
11220 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
11221 in condition that at least one operand is not a MEM.
11222
11223 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11224
11225 PR middle-end/79805
11226 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
11227 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
11228 ECF_NOTHROW.
11229 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
11230 gimple_call_nothrow_p flag based on whether original builtin can throw.
11231 If it can, emit following stmts on the fallthrough edge.
11232 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
11233 don't create new bb if inserting just debug stmts on the edge, try to
11234 insert them on the fallthru bb or just reset debug stmts.
11235
11236 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
11237
11238 PR target/43763
11239 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
11240 restore recog_data (including the operand rtxes inside it) around
11241 the call to get_insn_template.
11242
11243 2017-03-03 Martin Sebor <msebor@redhat.com>
11244
11245 PR tree-optimization/79699
11246 * context.c (context::~context): Free MPFR caches to avoid
11247 a memory leak on program exit.
11248
11249 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11250
11251 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
11252 Use wide_int::ulow () instead of .elt (0).
11253
11254 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11255
11256 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
11257 (*pushxf): Limit oF constraint to 32bit targets and add oC
11258 constraint for 64bit targets.
11259 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
11260 (*pushdf): Change rmF constraint to rmC.
11261
11262 2017-03-03 Martin Liska <mliska@suse.cz>
11263
11264 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
11265 Remove unused variable.
11266
11267 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11268
11269 PR target/79807
11270 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
11271 is a memory operand, increase num_memory.
11272 (ix86_expand_args_builtin): Likewise.
11273
11274 2017-03-03 Jan Hubicka <jh@suse.cz>
11275
11276 PR lto/79760
11277 * ipa-devirt.c (maybe_record_node): Properly handle
11278 __cxa_pure_virtual visibility.
11279
11280 2017-03-03 Martin Liska <mliska@suse.cz>
11281
11282 PR tree-optimization/79803
11283 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
11284 assert.
11285 (pass_loop_prefetch::execute): Disabled optimization if an
11286 assumption about L1 cache size is not met.
11287
11288 2017-03-03 Martin Liska <mliska@suse.cz>
11289
11290 PR rtl-optimization/79574
11291 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
11292 (hash_scan_set): Likewise.
11293 (dump_hash_table): Likewise.
11294 (hoist_code): Likewise.
11295
11296 2017-03-03 Richard Biener <rguenther@suse.de>
11297
11298 * fixed-value.c (fixed_from_string): Restore use of elt (1)
11299 in place of uhigh ().
11300 (fixed_convert_from_real): Likewise.
11301
11302 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11303
11304 PR target/79514
11305 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
11306
11307 2017-03-03 Richard Biener <rguenther@suse.de>
11308
11309 PR middle-end/79818
11310 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
11311 TYPE_OVERFLOW_UNDEFINED check.
11312
11313 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11314
11315 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
11316 numbers.
11317 (vector_ae_<mode>_p): Likewise.
11318 (vector_nez_<mode>_p): Likewise.
11319 (vector_ne_v2di_p): Likewise.
11320 (vector_ae_v2di_p): Likewise.
11321 (vector_ne_<mode>_p): Likewise.
11322 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
11323 numbers.
11324 (vsx_tsqrt<mode>2_fe): Likewise.
11325
11326 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
11327
11328 PR target/79514
11329 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
11330
11331 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11332
11333 PR rtl-optimization/79780
11334 * cprop.c (one_cprop_pass): When second and further conditional trap
11335 in a single basic block is turned into an unconditional trap, turn it
11336 into a deleted note to avoid RTL verification failures.
11337
11338 2017-03-02 Richard Biener <rguenther@suse.de>
11339
11340 * fold-const.c (const_binop): Use ulow () instead of elt (0).
11341
11342 2017-03-02 Richard Biener <rguenther@suse.de>
11343
11344 PR tree-optimization/79345
11345 PR c++/42000
11346 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
11347 param and abort the walk, returning -1 if it is hit.
11348 (walk_aliased_vdefs): Take a limit param and pass it on.
11349 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
11350 defaulting to 0 and return a signed int.
11351 * tree-ssa-uninit.c (struct check_defs_data): New struct.
11352 (check_defs): New helper.
11353 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
11354 about uninitialized memory.
11355 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
11356 bogus uninitialized warning.
11357 (fixed_convert_from_real): Likewise.
11358
11359 2017-03-02 Bin Cheng <bin.cheng@arm.com>
11360
11361 PR tree-optimization/66768
11362 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
11363 iv_use if base object can't be determined.
11364
11365 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11366
11367 PR tree-optimization/79345
11368 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
11369 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
11370 (get_pattern_stats): Initialize it.
11371 * genemit.c (gen_expand): Verify match_scratch numbers come after
11372 match_operand/match_dup numbers.
11373 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
11374 match_scratch numbers.
11375 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
11376 Likewise.
11377 * config/s390/s390.md (trunctdsd2): Likewise.
11378
11379 2017-03-02 Richard Biener <rguenther@suse.de>
11380
11381 * wide-int.h (wide_int_storage::operator=): Implement in terms
11382 of wi::copy.
11383
11384 2017-03-02 Richard Biener <rguenther@suse.de>
11385
11386 PR tree-optimization/79777
11387 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
11388 the to insert expression to sth existing.
11389
11390 2017-03-01 Martin Sebor <msebor@redhat.com>
11391
11392 PR middle-end/79692
11393 * gimple-ssa-sprintf.c
11394 (directive::known_width_and_precision): New function.
11395 (format_integer): Use it.
11396 (get_mpfr_format_length): Consider the full range of precision
11397 when computing %g output with the # flag. Set the likely byte
11398 count to 3 rather than 1 when precision is indeterminate.
11399 (format_floating): Correct the lower bound of precision.
11400
11401 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11402
11403 * doc/invoke.texi: Document default code model for 64-bit Linux.
11404
11405 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11406
11407 PR target/79752
11408 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
11409 udiv rather than div since input pattern is unsigned.
11410
11411 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
11412
11413 * config/i386/i386.c (print_reg): Warn for values of
11414 unsupported size in integer register.
11415
11416 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11417
11418 PR target/79439
11419 * config/rs6000/predicates.md (current_file_function_operand): Do
11420 not allow self calls to be local if the function is replaceable.
11421
11422 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11423
11424 PR target/79395
11425 * config/rs6000/altivec.h (vec_ctz and others): Change the
11426 preprocessor macro that controls conditional compilation from
11427 _ARCH_PWR9 to __POWER9_VECTOR__.
11428 (vec_all_ne): Change parameterization of __altivec_scalar_pred
11429 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
11430 control (instead of _ARCH_PWR9 control) so that template
11431 definition uses power9-specific function.
11432 (vec_any_eq): Likewise.
11433 (vec_all_ne): Change macro definition to use a power9-specific
11434 expansion under #ifdef __POWER9_VECTOR__ control (instead of
11435 _ARCH_PWR9 control).
11436 (vec_any_eq) Likewise.
11437 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
11438 expansion for CMPNEF to remove support for xvcmpnesp instruction.
11439 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
11440 support for xvcmpnedp instruction.
11441 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
11442 macro expansion so that Power9 implementation of vec_all_ne does
11443 not use the AltiVec predicate framework.
11444 (VCMPNEH_P): Likewise.
11445 (VCMPNEW_P): Likewise.
11446 (VCMPNED_P): Likewise.
11447 (VCMPNEFP_P): Likewise.
11448 (VCMPNEDP_P): Likewise.
11449 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
11450 implementation of vec_any_eq to not use AltiVec predicate
11451 framework.
11452 (VCMPAEH_P): Likewise.
11453 (VCMPAEW_P): Likewise.
11454 (VCMPAED_P): Likewise.
11455 (VCMPAEFP_P): Likewise.
11456 (VCMPAEDP_P): Likewise.
11457 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
11458 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
11459 not use the AltiVec predicate framework.
11460 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
11461 of vec_any_eq to not use AltiVec predicate framework.
11462 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
11463 support for predefined __POWER9_VECTOR__ macro to indicate that
11464 Power9 instruction selection is enabled.
11465 (altivec_overloaded_builtins): Remove extraneous
11466 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
11467 function argument types RS6000_BTI_bool_V16QI and
11468 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
11469 entry for overloaded function argument types RS6000_BTI_bool_V4SI
11470 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
11471 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
11472 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
11473 Power9 for implementations of vec_cmpne. Change the signature for
11474 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
11475 (representing vec_all_ne) to remove the previously described first
11476 argument of type RS6000_BTI_INTSI, as this was an artifact of
11477 reliance on the AltiVec predicate framework, which is no longer
11478 used in the implementation of these functions. Add
11479 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
11480 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
11481 since, unlike the AltiVec predicate framework implementation, we
11482 do not share function descriptors between vec_alle and vec_anyeq.
11483 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
11484 set of modes that receive special treatment even when
11485 TARGET_P9_VECTOR is true. The special treatment emits code that
11486 does not depend on Power9 instructions.
11487 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
11488 define_expand to not rely on AltiVec predicate framework.
11489 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11490 function.
11491 (vector_ne_v2di_p): Change this define_expand to not rely on
11492 AltiVec predicate framework.
11493 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
11494 function.
11495 (vector_ne_<mode>_p): Change this define_expand to not rely on
11496 AltiVec predicate framework.
11497 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11498 function.
11499 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
11500 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
11501 define_insn pattern.
11502 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
11503 define_insn pattern because the xvcmpne<VSs>. instruction is not
11504 supported.
11505 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
11506 instruction is not supported.
11507
11508 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11509
11510 * config/nvptx/nvptx.c: Include intl.h.
11511
11512 2017-03-01 Martin Jambor <mjambor@suse.cz>
11513
11514 PR lto/78140
11515 * ipa-prop.h (ipa_bits): Removed field known.
11516 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
11517 to pointers. Adjusted their comments to warn about their sharing.
11518 (ipcp_transformation_summary): Change bits to a vector of pointers.
11519 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
11520 (ipa_get_ipa_bits_for_value): Declare.
11521 * tree-vrp.h (value_range): Mark as GTY((for_user)).
11522 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
11523 (ipa_bits_hash_table): Likewise.
11524 (ipa_vr_ggc_hash_traits): Likewise.
11525 (ipa_vr_hash_table): Likewise.
11526 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
11527 being pointers and vr_known being removed.
11528 (ipa_set_jf_unknown): Likewise.
11529 (ipa_get_ipa_bits_for_value): New function.
11530 (ipa_set_jfunc_bits): Likewise.
11531 (ipa_get_value_range): New overloaded functions.
11532 (ipa_set_jfunc_vr): Likewise.
11533 (ipa_compute_jump_functions_for_edge): Use the above functions to
11534 construct bits and vr parts of jump functions.
11535 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
11536 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11537 exist.
11538 (ipcp_grow_transformations_if_necessary): Also allocate
11539 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11540 exist.
11541 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
11542 them. Fix too long lines.
11543 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
11544 vr_known being removed.
11545 (ipa_read_jump_function): Use new setter functions to construct bits
11546 and vr parts of jump functions or set them to NULL.
11547 (write_ipcp_transformation_info): Adjust for bits being pointers.
11548 (read_ipcp_transformation_info): Likewise.
11549 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
11550 space.
11551 Include gt-ipa-prop.h.
11552 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
11553 being pointers.
11554 (ipcp_store_bits_results): Likewise.
11555 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
11556 Do not write to existing jump functions but use a temporary instead.
11557
11558 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11559
11560 PR c++/79681
11561 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
11562 attempt to use its first operand as BIT_FIELD_REF base.
11563
11564 2017-03-01 Richard Biener <rguenther@suse.de>
11565
11566 PR middle-end/79721
11567 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
11568 interpolating formula in wrapping arithmetic.
11569 (chrec_apply): Convert chrec_evaluate return value to wanted type.
11570
11571 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11572
11573 PR tree-optimization/79734
11574 * tree-vect-generic.c (expand_vector_condition): Optimize
11575 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
11576 Handle VEC_COND_EXPR where comparison has different inner width from
11577 type's inner width.
11578
11579 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
11580
11581 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
11582 markup, and similar issues. Remove @opindex entries for things
11583 that aren't options. Add missing -mmpy-option entries.
11584
11585 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11586
11587 PR tree-optimization/79737
11588 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
11589 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
11590 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
11591 instead of byte_size. Formatting fix.
11592 (shift_bytes_in_array_right): Formatting fix.
11593
11594 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
11595
11596 PR target/79749
11597 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
11598 condition on optimize for the leaf function test.
11599
11600 2017-02-28 Martin Liska <mliska@suse.cz>
11601
11602 PR lto/79625
11603 * read-rtl-function.c (function_reader::handle_unknown_directive):
11604 Bail out when one uses -flto.
11605
11606 2017-02-28 Martin Liska <mliska@suse.cz>
11607
11608 * common.opt: Replace space with tabular for options of <number>
11609 type.
11610 * config/i386/i386.opt: Show <number> value for
11611 -mlarge-data-threshold.
11612 * opts.c (print_filtered_help): Do not display number in hexadecimal
11613 format.
11614
11615 2017-02-28 Martin Liska <mliska@suse.cz>
11616
11617 * common.opt: Fix --help=option -Q for options which are of
11618 an enum type.
11619
11620 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
11621
11622 * config/i386/i386.c (print_reg): Error out for values
11623 of 8-bit size in invalid integer register.
11624
11625 2017-02-28 Martin Sebor <msebor@redhat.com>
11626
11627 PR tree-optimization/79691
11628 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
11629
11630 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11631
11632 PR target/79729
11633 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
11634 gcc_unreachable with output_operand_lossage.
11635
11636 2017-02-28 Richard Biener <rguenther@suse.de>
11637
11638 PR tree-optimization/79740
11639 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
11640 inserts.
11641 (visit_nary_op): Insert the nary into the hashtable if we
11642 pattern-matched sth.
11643 * tree-ssa-pre.c (eliminate_insert): Robustify.
11644
11645 2017-02-28 Richard Biener <rguenther@suse.de>
11646
11647 PR middle-end/79731
11648 * fold-const.c (decode_field_reference): Reject out-of-bound
11649 accesses.
11650
11651 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11652
11653 * config/i386/i386.c: Include intl.h.
11654 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
11655 instead of just cond ? "..." : "...".
11656 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
11657 * coverage.c (read_counts_file): Likewise.
11658 * omp-offload.c: Include intl.h.
11659 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
11660 of just cond ? "..." : "...".
11661 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
11662 of just cond ? "..." : "...".
11663
11664 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
11665
11666 PR target/79742
11667 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
11668 entry, if present.
11669 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
11670 'tune for' CPU name.
11671 * config/arm/arm-cpu-data.h: Regenerated.
11672
11673 2017-02-28 Richard Biener <rguenther@suse.de>
11674
11675 PR tree-optimization/79732
11676 * tree-inline.c (expand_call_inline): Do not shadow var.
11677
11678 2017-02-28 Richard Biener <rguenther@suse.de>
11679
11680 PR tree-optimization/79723
11681 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
11682 address-space properly.
11683
11684 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
11685
11686 * doc/optinfo.texi (Optimization groups): Fix option used for
11687 OPTGROUP_ALL.
11688 * doc/invoke.texi (-fopt-info): Document "omp".
11689 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
11690 (OPTGROUP_ALL): Add OPTGROUP_OMP.
11691 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
11692 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
11693 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
11694
11695 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
11696 all users.
11697 * dumpfile.c (optgroup_options): Instead of "openmp", associate
11698 OPTGROUP_OMP with "omp".
11699
11700 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
11701
11702 PR target/79544
11703 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
11704 for arithmetic shift of unsigned V2DI.
11705
11706 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
11707
11708 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
11709 arc/linux.h headers.
11710 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
11711 (LINK_SPEC): Likewise.
11712 (ARC_TLS_EXTRA_START_SPEC): Likewise.
11713 (EXTRA_SPECS): Likewise.
11714 (STARTFILE_SPEC): Likewise.
11715 (ENDFILE_SPEC): Likewise.
11716 (LIB_SPEC): Likewise.
11717 (TARGET_SDATA_DEFAULT): Likewise.
11718 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
11719 (MULTILIB_DEFAULTS): Likewise.
11720 (DWARF2_UNWIND_INFO): Likewise.
11721 * config/arc/big.h: New file.
11722 * config/arc/elf.h: Likewise.
11723 * config/arc/linux.h: Likewise.
11724 * config/arc/t-uClibc: Remove.
11725
11726 2017-02-27 Bin Cheng <bin.cheng@arm.com>
11727
11728 PR tree-optimization/77536
11729 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
11730 (tree_transform_and_unroll_loop): Use above function to compute the
11731 estimated niter of unrolled loop and use it when scaling profile.
11732 Also use count info rather than frequency if it's non-zero.
11733 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
11734 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
11735 (vect_transform_loop): Call above function.
11736
11737 2017-02-27 Richard Biener <rguenther@suse.de>
11738
11739 PR tree-optimization/45397
11740 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
11741 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
11742 (visit_nary_op): Add pattern matching for CSEing sign-changed
11743 or truncated operations with wider ones.
11744
11745 2017-02-27 Richard Biener <rguenther@suse.de>
11746
11747 PR tree-optimization/79690
11748 * tree-vect-stmts.c (vectorizable_store): Use vector type
11749 built from the DR with address-space.
11750
11751 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11752
11753 * doc/invoke.texi (Optimize Options): Refine the description
11754 of asan-use-after-return.
11755
11756 2017-02-25 Alan Modra <amodra@gmail.com>
11757
11758 PR rtl-optimization/79584
11759 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
11760 base, not ad->base_term, the reg within base. Remove assertion
11761 that ad->base == ad->base_term. Replace gen_int_mode using
11762 bogus mode with const0_rtx.
11763
11764 2017-02-25 Jakub Jelinek <jakub@redhat.com>
11765
11766 PR middle-end/79396
11767 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
11768 FMA_EXPR like tcc_binary or tcc_unary.
11769
11770 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
11771
11772 PR debug/77589
11773 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
11774 bitfield.
11775 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
11776 (output_loc_operands): Handle DW_OP_call_ref and
11777 DW_OP_GNU_variable_value.
11778 (struct variable_value_struct): New type.
11779 (struct variable_value_hasher): Likewise.
11780 (variable_value_hash): New variable.
11781 (string_types): Remove.
11782 (copy_loc_descr): New function.
11783 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
11784 (prepend_loc_descr_to_each): New function.
11785 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
11786 instead of add_loc_descr_to_each if the first argument is single
11787 location list and the second has multiple.
11788 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
11789 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
11790 when looking for variable value which doesn't have other location info.
11791 (loc_list_from_tree): Formatting fix.
11792 (gen_array_type_die): Simplify DW_AT_string_length handling.
11793 (adjust_string_types): Remove.
11794 (gen_subprogram_die): Don't call adjust_string_types nor test/set
11795 string_types. Call resolve_variable_values.
11796 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
11797 (resolve_addr_in_expr): Likewise. Add A argument.
11798 (copy_deref_exprloc): Remove deref argument. Adjust for the
11799 original expression being DW_OP_GNU_variable_value with optionally
11800 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
11801 optionally after it.
11802 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
11803 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
11804 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
11805 (variable_value_hasher::hash, variable_value_hasher::equal): New
11806 methods.
11807 (resolve_variable_value_in_expr, resolve_variable_value,
11808 resolve_variable_values, note_variable_value_in_expr,
11809 note_variable_value): New functions.
11810 (dwarf2out_early_finish): Call note_variable_value on all toplevel
11811 DIEs.
11812
11813 2017-02-24 Jakub Jelinek <jakub@redhat.com>
11814
11815 PR c/79677
11816 * opts.h (handle_generated_option): Add GENERATED_P argument.
11817 * opts-common.c (handle_option): Adjust function comment.
11818 (handle_generated_option): Add GENERATED_P argument, pass it to
11819 handle_option.
11820 (control_warning_option): Pass false to handle_generated_option
11821 GENERATED_P.
11822 * opts.c (maybe_default_option): Pass true to handle_generated_option
11823 GENERATED_P.
11824 * optc-gen.awk: Likewise.
11825
11826 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11827
11828 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
11829 a REG, look at the REG it is a SUBREG of.
11830 (splitter for cmpeqsi_t): Ditto.
11831
11832 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11833
11834 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
11835 the special USEs with the pattern of the insn, not the insn itself.
11836
11837 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
11838
11839 PR target/79473
11840 * doc/invoke.texi: Document -mload-store-pairs.
11841
11842 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11843 Sandra Loosemore <sandra@codesourcery.com>
11844
11845 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
11846 argument isn't a CONST_INT.
11847 (nios2_alternate_compare_const): Assert op is a CONST_INT.
11848 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
11849 (nios2_validate_compare): Bypass alternate compare logic if *op2
11850 is not a CONST_INT.
11851 (ldstwm_operation_p): Return false if first_base is not a REG or
11852 if first_offset is not a CONST_INT.
11853
11854 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11855
11856 * config/cris/cris.md: Use correct operand in a define_peephole2.
11857
11858 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11859
11860 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
11861
11862 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11863
11864 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
11865 this_insn if it is an INSN or JUMP_INSN.
11866 (force_offsettable): Look at base, not at addr.
11867 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
11868 on things that aren't necessarily CONST_INTs.
11869
11870 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
11871
11872 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
11873 -mfpmath=sse is the default also for x86-32 targets with SSE2
11874 instruction set when @option{-ffast-math} is enabled
11875
11876 2017-02-24 Jeff Law <law@redhat.com>
11877
11878 PR rtl-optimizatoin/79286
11879 * ira.c (update_equiv_regs): Drop may_trap_p exception to
11880 dominance test.
11881
11882 2017-02-24 Richard Biener <rguenther@suse.de>
11883
11884 PR tree-optimization/79389
11885 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
11886 debug insns.
11887
11888 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
11889
11890 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
11891 function comment to reflect reality.
11892 (loop_exits_before_overflow): Fix typo in function description.
11893
11894 2017-02-24 Richard Biener <rguenther@suse.de>
11895
11896 PR tree-optimization/79389
11897 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
11898 properly that a threading opportunity exists. Detect conditional
11899 copy/constant propagation opportunities.
11900
11901 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
11902
11903 * config/visium/visium.md (type): Add trap.
11904 (b): New mode attribute.
11905 (*btst): Rename into...
11906 (*btst<mode>): ...this and adjust.
11907 (*cbranchsi4_btst_insn): Rename into...
11908 (*cbranch<mode>4_btst_insn): ...this and adjust.
11909 (trap): New define_insn.
11910
11911 2017-02-23 Jakub Jelinek <jakub@redhat.com>
11912
11913 PR tree-optimization/79389
11914 * ifcvt.c (struct noce_if_info): Add rev_cond field.
11915 (noce_reversed_cond_code): New function.
11916 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
11917 reversed_comparison_code. Formatting fix.
11918 (noce_try_store_flag): Test rev_cond != NULL in addition to
11919 reversed_comparison_code.
11920 (noce_try_store_flag_constants): Likewise.
11921 (noce_try_store_flag_mask): Likewise.
11922 (noce_try_addcc): Use rev_cond if non-NULL instead of
11923 reversed_comparison_code.
11924 (noce_try_cmove_arith): Likewise. Formatting fixes.
11925 (noce_try_minmax, noce_try_abs): Clear rev_cond.
11926 (noce_find_if_block): Initialize rev_cond.
11927 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
11928 instead of false as last argument never attempt to reverse it
11929 afterwards.
11930
11931 2017-02-23 Bin Cheng <bin.cheng@arm.com>
11932
11933 PR tree-optimization/79663
11934 * tree-predcom.c (combine_chains): Process refs in reverse order
11935 only for ZERO length chains, and add explaining comment.
11936
11937 2017-02-23 Jeff Law <law@redhat.com>
11938
11939 PR tree-optimization/79578
11940 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
11941 in call to operand_equal_p.
11942
11943 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
11944
11945 PR target/71017
11946 * config/i386/cpuid.h: Fix another undefined behavior.
11947
11948 2017-02-23 Richard Biener <rguenther@suse.de>
11949
11950 PR tree-optimization/79683
11951 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
11952 vector types for data-refs.
11953
11954 2017-02-23 Martin Liska <mliska@suse.cz>
11955
11956 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
11957
11958 2017-02-23 Jakub Jelinek <jakub@redhat.com>
11959
11960 PR middle-end/79665
11961 * internal-fn.c (get_range_pos_neg): Moved to ...
11962 * tree.c (get_range_pos_neg): ... here. No longer static.
11963 * tree.h (get_range_pos_neg): New prototype.
11964 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
11965 are known to be in between 0 and signed maximum inclusive, try to
11966 expand both unsigned and signed divmod and use the cheaper one from
11967 those.
11968
11969 2017-02-22 Jeff Law <law@redhat.com>
11970
11971 PR tree-optimization/79578
11972 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
11973 to compare base operands.
11974
11975 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
11976
11977 PR target/79211
11978 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
11979 gpc_reg_operand instead of fpr_reg_operand.
11980
11981 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
11982
11983 * config/mips/mips.c (mips_return_in_memory): Force FP
11984 vector types to be returned in memory for o32 ABI.
11985
11986 2017-02-22 Jakub Jelinek <jakub@redhat.com>
11987
11988 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
11989 instead of DW_TAG_member for static data member declarations and don't
11990 set no_linkage_name for static inline data members.
11991 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
11992 to DW_TAG_member.
11993
11994 2017-02-22 Martin Liska <mliska@suse.cz>
11995
11996 * doc/invoke.texi: Replace inequality signs with square brackets
11997 for -Wnormalized.
11998
11999 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12000
12001 PR tree-optimization/68644
12002 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
12003
12004 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
12005
12006 PR target/78660
12007 * lra-constraints.c (simplify_operand_subreg): Handle
12008 WORD_REGISTER_OPERATIONS targets.
12009
12010 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12011
12012 PR target/70465
12013 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
12014 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
12015 elimination by swapping fld*.
12016
12017 2017-02-22 Richard Biener <rguenther@suse.de>
12018
12019 PR tree-optimization/79673
12020 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
12021 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
12022 irrelevant address-space qualifiers and avoiding a
12023 ADDR_SPACE_CONVERT_EXPR from fold_convert.
12024
12025 2017-02-22 Richard Biener <rguenther@suse.de>
12026
12027 PR tree-optimization/79666
12028 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
12029 to not symbolically negate if that may introduce undefined
12030 overflow.
12031
12032 2017-02-22 Martin Liska <mliska@suse.cz>
12033
12034 PR lto/79587
12035 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
12036 * data-streamer-out.c (streamer_write_gcov_count_stream):
12037 Likewise.
12038 * value-prof.c (stream_out_histogram_value): Make assert more
12039 precise based on type of counter.
12040
12041 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
12042
12043 PR target/79593
12044 * config/i386/i386.md (standard_x87sse_constant_load splitter):
12045 Use nonimmediate_operand instead of memory_operand for operand 1.
12046 (float-extend standard_x87sse_constant_load splitter): Ditto.
12047
12048 2017-02-21 Jeff Law <law@redhat.com>
12049
12050 PR tree-optimization/79621
12051 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
12052 blocks with edges to themselves.
12053
12054 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12055
12056 PR target/79633
12057 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
12058 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
12059 Use gimple_call_builtin_p.
12060
12061 PR target/79570
12062 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
12063 on temporarily removed DEBUG_INSNs.
12064
12065 PR tree-optimization/79649
12066 * tree-loop-distribution.c (classify_partition): Give up on
12067 non-generic address space loads/stores.
12068
12069 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
12070
12071 * doc/loop.texi (Loop manipulation): Remove nonexistent
12072 tree_ssa_loop_version from the documentation.
12073 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
12074
12075 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12076
12077 PR target/79494
12078 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
12079 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
12080 * config/rs6000/rs6000.c: Include except.h.
12081 (rs6000_expand_split_stack_prologue): Call
12082 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
12083
12084 2017-02-21 Martin Jambor <mjambor@suse.cz>
12085
12086 PR lto/79579
12087 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
12088 have been analyzed.
12089
12090 2017-02-21 Martin Jambor <mjambor@suse.cz>
12091
12092 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
12093 for backward compatibility only.
12094 * doc/invoke.texi (Option Summary): Remove all references to
12095 -fipa-cp-alignment.
12096
12097 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
12098
12099 PR target/78660
12100 Revert:
12101 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12102
12103 * lra-constraints.c (curr_insn_transform): Handle
12104 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12105
12106 2017-02-21 Martin Liska <mliska@suse.cz>
12107
12108 * config/i386/i386.opt: Replace -masm-dialect with -masm.
12109
12110 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
12111
12112 PR translation/79638
12113 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
12114
12115 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
12116
12117 PR ada/67205
12118 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
12119 (arm_function_ok_for_sibcall): Return false for an indirect call by
12120 descriptor if all the argument registers are used.
12121 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
12122 alignment of the function.
12123
12124 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12125
12126 PR tree-optimization/61441
12127 * simplify-rtx.c (simplify_const_unary_operation): For
12128 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
12129 the sNaN unmodified.
12130
12131 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12132
12133 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
12134 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
12135 instead of SYSTEM_HEADER_DIR.
12136
12137 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
12138 Martin Liška <mliska@suse.cz>
12139
12140 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
12141 Fix typos and grammar, use active voice, and clarify.
12142
12143 2017-02-20 Marek Polacek <polacek@redhat.com>
12144
12145 PR middle-end/79537
12146 * gimplify.c (gimplify_expr): Handle unused *&&L;.
12147
12148 PR sanitizer/79558
12149 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
12150
12151 2017-02-20 Jakub Jelinek <jakub@redhat.com>
12152
12153 PR target/79568
12154 * config/i386/i386.c (ix86_expand_builtin): Handle
12155 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
12156 ix86_builtins_isa[fcode].isa as a requirement of those
12157 flags and any other flag in the bitmask.
12158 (ix86_init_mmx_sse_builtins): Use 0 instead of
12159 ~OPTION_MASK_ISA_64BIT as mask.
12160 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
12161 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
12162 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
12163 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
12164
12165 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12166
12167 PR target/78012
12168 * lra-constraints.c (split_reg): Check requested split mode
12169 is supported by the register.
12170
12171 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12172
12173 * lra-constraints.c (simplify_operand_subreg): Remove early
12174 return false.
12175
12176 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12177
12178 PR target/78660
12179 * lra-constraints.c (curr_insn_transform): Tighten condition
12180 for converting SUBREG reloads from OP_OUT to OP_INOUT.
12181
12182 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12183
12184 PR target/78660
12185 * lra-constraints.c (curr_insn_transform): Handle
12186 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12187
12188 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
12189
12190 Revert:
12191 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12192
12193 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12194
12195 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
12196
12197 PR c++/69523
12198 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
12199 description.
12200
12201 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12202
12203 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
12204 for FMA_EXPR.
12205
12206 2017-02-18 Jakub Jelinek <jakub@redhat.com>
12207
12208 * final.c (last_columnnum, override_columnnum): New variables.
12209 (final_start_function): Set last_columnnum, pass it to begin_prologue
12210 hook and pass 0 to dwarf2out_begin_prologue.
12211 (final_scan_insn): Update override_columnnum. Pass last_columnnum
12212 to source_line debug hook.
12213 (notice_source_line): Compute last_columnnum and for debug_column_info
12214 return true on column changes.
12215 * debug.h (struct gcc_debug_hooks): Add column argument to
12216 source_line and begin_prologue hooks.
12217 (debug_nothing_int_charstar_int_bool): Remove prototype.
12218 (debug_nothing_int_int_charstar,
12219 debug_nothing_int_int_charstar_int_bool): New prototypes.
12220 (dwarf2out_begin_prologue): Add column argument.
12221 * debug.c (do_nothing_debug_hooks): Adjust source_line and
12222 begin_prologue hooks.
12223 (debug_nothing_int_charstar_int_bool): Remove.
12224 (debug_nothing_int_int_charstar,
12225 debug_nothing_int_int_charstar_int_bool): New functions.
12226 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
12227 through to dwarf2out_source_line.
12228 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
12229 (dwarf2out_source_line): Add column argument, emit it if requested.
12230 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
12231 arguments.
12232 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12233 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12234 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
12235 through to dwarf2out_begin_prologue.
12236 (vmsdbgout_source_line): Add column argument, pass it through to
12237 dwarf2out_source_line.
12238 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
12239 dbxout_source_line caller.
12240 (dbxout_source_line): Add column argument.
12241
12242 * common.opt (gno-column-info, gcolumn-info): New options.
12243 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
12244 (check_die): Also test for multiple DW_AT_decl_column attributes.
12245 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
12246 DW_AT_decl_column if requested.
12247 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
12248 if requested.
12249 (gen_variable_die): Likewise.
12250 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
12251 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
12252
12253 PR target/79569
12254 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
12255 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
12256 (ix86_handle_option): Handle OPT_m3dnowa.
12257 * doc/invoke.texi (-m3dnowa): Document.
12258 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
12259 -m3dnowa instead of -m3dnow -march=athlon.
12260
12261 PR target/79559
12262 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
12263 instead of gcc_assert for K, r and R code checks. Formatting fixes.
12264
12265 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12266
12267 PR target/79261
12268 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12269 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
12270 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
12271 generator for vsx_xxpermdi_<mode>_be.
12272 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
12273 force big-endian semantics.
12274 (vsx_xxpermdi_<mode>_be): New define_expand with same
12275 implementation as previous version of vsx_xxpermdi_<mode>.
12276
12277 2017-02-17 Jakub Jelinek <jakub@redhat.com>
12278
12279 PR tree-optimization/79327
12280 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
12281 variable, its initialization and use.
12282
12283 2017-02-17 Julia Koval <julia.koval@intel.com>
12284
12285 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
12286 (OPTION_MASK_ISA_PKU_UNSET): New.
12287 (ix86_handle_option): Handle -mrdpid.
12288 * config/i386/cpuid.h (bit_RDPID): New.
12289 * config/i386/driver-i386.c (host_detect_local_cpu):
12290 Detect RDPID feature.
12291 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
12292 * config/i386/i386-c.c (ix86_target_macros_internal):
12293 Handle RDPID flag.
12294 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
12295 (ix86_valid_target_attribute_inner_p): Add "rdpid".
12296 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
12297 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
12298 * config/i386/i386.md (define_insn "rdpid"): New.
12299 * config/i386/i386.opt Add -mrdpid.
12300 * config/i386/immintrin.h (_rdpid_u32): New.
12301
12302 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
12303
12304 PR rtl-optimization/79541
12305 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
12306 instead of transforming it into USE.
12307
12308 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
12309
12310 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
12311 If HONOR_SNANS (SFmode) force the input to a register.
12312 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
12313 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
12314 an frsp or similar insn.
12315
12316 2017-02-17 Martin Liska <mliska@suse.cz>
12317
12318 PR rtl-optimization/79577
12319 * params.def (selsched-max-sched-times): Increase minimum to 1.
12320
12321 2017-02-17 Martin Liska <mliska@suse.cz>
12322
12323 PR rtl-optimization/79574
12324 * gcse.c (want_to_gcse_p): Prevent integer overflow.
12325
12326 2017-02-17 Martin Liska <mliska@suse.cz>
12327
12328 PR tree-optimization/79529
12329 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
12330 ssa_defined_default_def_p to handle cases which are implicitly
12331 defined.
12332 * tree-ssa.c (ssa_defined_default_def_p): New function.
12333 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
12334 which are implicitly defined.
12335 * tree-ssa.h (ssa_defined_default_def_p): Declare.
12336
12337 2017-02-17 Richard Biener <rguenther@suse.de>
12338
12339 PR middle-end/79576
12340 * params.def (max-ssa-name-query-depth): Limit to 10.
12341
12342 2017-02-17 Richard Biener <rguenther@suse.de>
12343
12344 PR tree-optimization/79552
12345 * tree-ssa-structalias.c (visit_loadstore): Properly verify
12346 default defs.
12347
12348 2017-02-17 Richard Biener <rguenther@suse.de>
12349
12350 PR bootstrap/79567
12351 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
12352
12353 2017-02-17 Marek Polacek <polacek@redhat.com>
12354
12355 PR middle-end/79536
12356 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
12357 (fold_negate_expr): New wrapper.
12358
12359 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
12360
12361 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
12362 Correct terminology and de-emphasize pre-standard behavior.
12363
12364 2017-02-16 Alan Modra <amodra@gmail.com>
12365
12366 PR rtl-optimization/79286
12367 * ira.c (def_dominates_uses): New function.
12368 (update_equiv_regs): Don't create an equivalence for insns that
12369 may trap where the register def does not dominate the use.
12370
12371 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
12372
12373 PR rtl-optimization/78127
12374 * lra.c (lra): Call lra_eliminate before finish the loop after
12375 lra_constraint.
12376
12377 2017-02-16 Richard Biener <rguenther@suse.de>
12378
12379 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
12380 isl/isl_val.h.
12381 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
12382 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
12383 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
12384 (isl_val_int_from_wi): New function.
12385 (extract_affine_gmp): Rename to ...
12386 (extract_affine_wi): ... this, take a widest_int.
12387 (extract_affine_int): Just wrap extract_affine_wi.
12388 (add_param_constraints): Use isl_val_int_from_wi.
12389 (add_loop_constraints): Likewise, and extract_affine_wi.
12390
12391 2017-02-15 Jeff Law <law@redhat.com>
12392
12393 PR middle-end/79521
12394 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
12395 ira_init_register_move_cost_if_necessary.
12396
12397 2017-02-15 Martin Sebor <msebor@redhat.com>
12398
12399 PR middle-end/32003
12400 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
12401 removed in a prior commit.
12402
12403 2017-02-15 Bin Cheng <bin.cheng@arm.com>
12404
12405 PR tree-optimization/79347
12406 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
12407 counters during peeling.
12408
12409 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
12410
12411 * Makefile.in (site.exp): Remove "set ISLVER".
12412
12413 2017-02-15 Jakub Jelinek <jakub@redhat.com>
12414
12415 PR target/79487
12416 * real.c (real_from_integer): Call real_convert even for decimal.
12417
12418 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12419
12420 PR target/79421
12421 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
12422
12423 2017-02-14 Andrew Pinski <apinski@cavium.com>
12424
12425 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
12426 cores and change the partno/implementer to be correct.
12427 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
12428 the 'B" as the implementer.
12429 * config/aarch64/aarch64-tune.md: Regenerate.
12430
12431 2017-02-14 Carl Love <cel@us.ibm.com>
12432
12433 * config/rs6000/rs6000.c: Add case statement entry to make the
12434 xvcvuxdsp built-in argument unsigned.
12435 * config/rs6000/vsx.md: Fix the source and return operand types so they
12436 match the instruction definitions from the ISA document. Fix typo
12437 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
12438 statement.
12439
12440 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
12441
12442 PR target/79282
12443 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
12444 member early_clobber_alts.
12445 * lra-lives.c (reg_early_clobber_p): New.
12446 (process_bb_lives): Use it.
12447 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
12448 (debug_operand_data): Initialize early_clobber_alts.
12449 (setup_operand_alternative): Set up early_clobber_alts.
12450 (collect_non_operand_hard_regs): Ditto. Pass early clobber
12451 alternatives to new_insn_reg.
12452 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
12453 it.
12454 (lra_update_insn_regno_info): Pass the new arg.
12455
12456 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12457
12458 PR middle-end/79505
12459 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
12460 (new_oacc_loop_raw): Don't clear already cleared fields.
12461
12462 PR target/79481
12463 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
12464 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
12465 _mm512_prefetch_i64gather_ps): New inline functions and macros.
12466
12467 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
12468
12469 PR target/79495
12470 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
12471
12472 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
12473
12474 PR target/79498
12475 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
12476 the extra instruction to the right place to store 128-bit constant
12477 when needed.
12478
12479 2017-02-14 Martin Sebor <msebor@redhat.com>
12480
12481 PR middle-end/79448
12482 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
12483 warning for strings of unknown length.
12484
12485 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
12486
12487 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
12488
12489 2017-02-14 Jeff Law <law@redhat.com>
12490
12491 PR target/79404
12492 * ira-costs.c (scan_one_insn): Initialize register move costs
12493 for pseudos seen in USE/CLOBBER insns.
12494
12495 PR tree-optimization/79095
12496 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
12497 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
12498 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
12499 if the operands are known to be not equal, then the resulting range
12500 is ~[0,0].
12501 (intersect_ranges): If the new range is ~[0,0] and the old range is
12502 wide, then prefer ~[0,0].
12503 * tree-vrp.c (overflow_comparison_p_1): New function.
12504 (overflow_comparison_p): New function.
12505 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
12506 if NAME is used in an overflow test.
12507 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
12508 overflow check that can be expressed as an equality test, then adjust
12509 ops to be that equality test.
12510
12511 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12512
12513 * config/s390/s390-builtin-types.def: Remove flags argument.
12514 * config/s390/s390.c (s390_init_builtins): Likewise.
12515
12516 2017-02-14 Martin Liska <mliska@suse.cz>
12517
12518 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
12519 vector. Fix trailing white spaces.
12520
12521 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
12522
12523 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
12524 HFmode.
12525
12526 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12527
12528 PR rtl-optimization/68664
12529 * config/arm/arm.c (arm_sched_can_speculate_insn):
12530 New function. Declare prototype.
12531 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12532
12533 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12534
12535 PR rtl-optimization/68664
12536 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
12537 New function.
12538 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12539
12540 2017-02-14 Amit Pawar <amit.pawar@amd.com>
12541
12542 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
12543 max skip bytes for function, loop and jump.
12544
12545 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12546
12547 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
12548 ABS_EXPR for gimple dump.
12549
12550 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12551
12552 PR target/79462
12553 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
12554
12555 PR tree-optimization/79408
12556 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
12557 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
12558 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
12559 also if rhs1 is INTEGER_CST.
12560
12561 2017-02-14 Richard Biener <rguenther@suse.de>
12562
12563 PR middle-end/79432
12564 * tree-into-ssa.c (insert_phi_nodes): When the function can
12565 have abnormal edges rewrite SSA names with broken use-def
12566 dominance out of SSA and register them for PHI insertion.
12567
12568 2017-02-13 Martin Sebor <msebor@redhat.com>
12569
12570 PR middle-end/79496
12571 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
12572 clearing info.nowrite flag when snprintf size argument is a range.
12573
12574 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12575
12576 * cprop.c (cprop_jump): Add missing space in string literal.
12577 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
12578 (get_constraint_for_component_ref): Likewise.
12579 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
12580 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
12581 * lra-constraints.c (process_alt_operands): Likewise.
12582 * ipa-inline.c (inline_small_functions): Likewise.
12583 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
12584 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
12585 * trans-mem.c (diagnose_tm_1_op): Likewise.
12586 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
12587 (grid_parallel_clauses_gridifiable): Likewise.
12588
12589 * config/nvptx/mkoffload.c (process): Add space in between
12590 , and %d.
12591
12592 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
12593 "MOD4_SSE_REGS" and "ALL_REGS".
12594
12595 * spellcheck.c (test_data): Add , in between "foo" and "food".
12596
12597 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12598
12599 PR target/79449
12600 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
12601 boundary crossing check and subsequent code generation agree.
12602
12603 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12604
12605 * config/aarch64/aarch64.c (has_memory_op): Delete.
12606 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
12607 has_memory_op.
12608
12609 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12610
12611 PR rtl-optimization/79388
12612 PR rtl-optimization/79450
12613 * combine.c (distribute_notes): When removing TEM_INSN for which
12614 corresponding dest has last value recorded, invalidate that last
12615 value.
12616
12617 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12618
12619 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
12620 of explicit '@'. Add missing assembly comment marker on branch costs
12621 printout.
12622
12623 2017-02-13 Nathan Sidwell <nathan@acm.org>
12624
12625 * gengtype-lex.l (<in_struct>): Add '/'.
12626
12627 2017-02-13 Martin Liska <mliska@suse.cz>
12628
12629 PR c/79471
12630 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
12631
12632 2017-02-13 Richard Biener <rguenther@suse.de>
12633
12634 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
12635 Remove.
12636 * configure: Re-generate.
12637 * config.in: Likewise.
12638 * graphite-dependences.c: Simplify as if
12639 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
12640 * graphite-isl-ast-to-gimple.c: Likewise.
12641 * graphite-optimize-isl.c: Likewise.
12642 * graphite-poly.c: Likewise.
12643 * graphite-sese-to-poly.c: Likewise.
12644 * graphite.h: Likewise.
12645 * toplev.c: Include isl/version.h and use isl_version () for
12646 printing the ISL version.
12647 * doc/install.texi: Update ISL requirement.
12648
12649 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12650
12651 * doc/standards.texi (Standards): Update reference to
12652 Objective-C 2.0.
12653
12654 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12655
12656 * doc/extend.texi (Named Address Spaces): sourceware.org now
12657 defaults to https.
12658 * doc/install.texi (Binaries): Ditto.
12659 (Specific): Ditto.
12660
12661 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12662
12663 * doc/cpp.texi: Replace "stringify"/"stringification" with C
12664 standard terminology "stringize"/"stringizing" throughout.
12665 * doc/cppinternals.texi: Likewise.
12666
12667 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12668
12669 * doc/extend.texi: Fix some spelling mistakes and typos.
12670 * doc/invoke.texi: Likewise.
12671
12672 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12673
12674 PR ipa/79224
12675 * params.def (inline-min-speedup) Change from 10 to 8.
12676
12677 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12678
12679 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
12680 4.5.
12681
12682 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12683
12684 PR ipa/79224
12685 * ipa-inline-analysis.c (get_minimal_bb): New function.
12686 (record_modified): Use it.
12687 (remap_edge_change_prob): Handle also ancestor functions.
12688
12689 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
12690
12691 * doc/contrib.texi (Contributors): Remove broken link into
12692 the Mauve CVS repository.
12693
12694 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12695
12696 PR middle-end/79454
12697 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
12698 result computation whenever lhs doesn't have vector mode, not
12699 just when it has BLKmode.
12700
12701 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12702
12703 * doc/makefile.texi (profiledbootstrap): Refer to the
12704 installation instructions only in textual form.
12705
12706 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12707
12708 PR target/79295
12709 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
12710
12711 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12712
12713 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
12714 (Specific): Update mingw-w64 reference.
12715 (Binaries): Ditto.
12716 (Specific): Remove broken link to Renesas RX processor.
12717
12718 2017-02-10 Richard Biener <rguenther@suse.de>
12719
12720 * toplev.c (process_options): Do not mention obsolete graphite
12721 options when printing sorry message about missing graphite support.
12722 Mention -floop-nest-optimize.
12723
12724 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
12725
12726 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
12727 (vtst_p16): Likewise.
12728 (vtstq_p8): Likewise.
12729 (vtstq_p16): Likewise.
12730 (vtst_p64): New.
12731 (vtstq_p64): Likewise.
12732 * config/arm/arm_neon.h (vgetq_lane_p64): New.
12733 (vset_lane_p64): New.
12734 (vsetq_lane_p64): New.
12735
12736 2017-02-10 Jakub Jelinek <jakub@redhat.com>
12737
12738 PR tree-optimization/79411
12739 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
12740 stmt operands are SSA_NAMEs used in abnormal phis.
12741 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
12742 phis.
12743
12744 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12745
12746 PR ipa/70795
12747 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
12748 flag if needed.
12749
12750 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12751
12752 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
12753
12754 2017-02-09 Jakub Jelinek <jakub@redhat.com>
12755
12756 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
12757 to avoid warning.
12758
12759 PR c/79413
12760 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
12761 not arbitrary TREE_CONSTANT.
12762
12763 PR c/79431
12764 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
12765 "omp declare target link" attribute unless is_global_var.
12766 * omp-offload.c (find_link_var_op): Likewise.
12767
12768 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
12769 Chung-Lin Tang <cltang@codesourcery.com>
12770
12771 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
12772 OMP_CLAUSE_TILE.
12773 (gimplify_adjust_omp_clauses): Don't delete TILE.
12774 (gimplify_omp_for): Deal with TILE.
12775 * internal-fn.c (expand_GOACC_TILE): New function.
12776 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
12777 (GOACC_TILE): New.
12778 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
12779 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
12780 element fields.
12781 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
12782 avoid DIV for outermost collapse var.
12783 (expand_oacc_for): Insert tile element loop as needed. Adjust.
12784 Remove out of date comments, fix whitespace.
12785 * omp-general.c (omp_extract_for_data): Deal with tiling.
12786 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
12787 adjust OLF_DIM_BASE value.
12788 (struct omp_for_data): Add tiling field.
12789 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
12790 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
12791 for auto loops. Remove default auto determining, moved to
12792 oacc_loop_fixed_partitions.
12793 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
12794 stmts, add e_mask field.
12795 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
12796 (oacc_thread_numbers): Use oacc_dim_call.
12797 (oacc_xform_tile): New.
12798 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
12799 (finish_oacc_loop): Adjust for ifns vector.
12800 (oacc_loop_discover_walk): Append loop abstraction sites to list,
12801 add case for GOACC_TILE fns.
12802 (oacc_loop_xform_loop): Delete.
12803 (oacc_loop_process): Iterate over call list directly, and add
12804 handling for GOACC_TILE fns.
12805 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
12806 dump partitioning.
12807 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
12808 vector partitioning to outer loops. Assign 2 partitions to loops
12809 when available. Add TILE handling.
12810 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
12811 (execite_oacc_device_lower): Process GOACC_TILE fns,
12812 ignore unknown specs.
12813 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
12814 * tree.c (omp_clause_num_ops): Adjust TILE ops.
12815 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
12816
12817 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
12818
12819 * configure.ac (ACX_BUGURL): Update.
12820 * configure: Regenerate.
12821
12822 2017-02-09 Richard Biener <rguenther@suse.de>
12823
12824 PR tree-optimization/69823
12825 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
12826 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
12827
12828 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12829
12830 * config/arc/arc-c.def: Add __NPS400__ definition.
12831 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
12832 (TARGET_NPS400): Define.
12833
12834 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12835
12836 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
12837 file.
12838 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
12839 pointer, arch_info.
12840 (arc_cpu_types): Fill the arch_info field with a pointer into the
12841 arc_arch_types table.
12842 (arc_selected_cpu): Declare.
12843 * config/arc/arc.c (arc_selected_cpu): Make global.
12844 (arc_selected_arch): Delete.
12845 (arc_base_cpu): Delete.
12846 (arc_override_options): Remove references to deleted variables,
12847 update access to arch information.
12848 (ARC_OPT): Update access to arch information.
12849 (ARC_OPTX): Likewise.
12850 * config/arc/arc.h (arc_base_cpu): Remove declaration.
12851 (TARGET_ARC600): Update access to arch information.
12852 (TARGET_ARC601): Likewise.
12853 (TARGET_ARC700): Likewise.
12854 (TARGET_EM): Likewise.
12855 (TARGET_HS): Likewise.
12856 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
12857 information.
12858
12859 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
12860
12861 PR target/78604
12862 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
12863 condition/operands for integer GE/LE/GEU/LEU operations.
12864
12865 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
12866
12867 PR translation/79397
12868 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
12869 of AltiVec.
12870
12871 2017-02-08 Martin Jambor <mjambor@suse.cz>
12872
12873 PR ipa/79375
12874 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
12875 whether allocation happened.
12876 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
12877 nothing was allocated.
12878
12879 2017-02-08 Jakub Jelinek <jakub@redhat.com>
12880
12881 PR tree-optimization/79408
12882 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
12883 constant, but SSA_NAME with a known integer range, use the minimum
12884 of that range instead of op1 to determine if modulo can be replaced
12885 with its first operand.
12886
12887 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12888
12889 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
12890
12891 2017-02-08 Richard Biener <rguenther@suse.de>
12892
12893 PR tree-optimization/71824
12894 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
12895 Check all loops contained in the merged region.
12896
12897 2017-02-07 Andrew Pinski <apinski@cavium.com>
12898
12899 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
12900
12901 2017-02-07 Andrew Pinski <apinski@cavium.com>
12902
12903 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
12904 (thunderxt88): Likewise.
12905 (thunderxt81): Disable LSE and change v8.1 to v8.
12906 (thunderxt83): Likewise.
12907
12908 2017-02-07 Jakub Jelinek <jakub@redhat.com>
12909 Richard Biener <rguenther@suse.de>
12910
12911 PR middle-end/79399
12912 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
12913 type from int to size_t.
12914 * ira-costs.c (struct_costs_size): Change type from int to size_t.
12915
12916 2017-02-07 Jakub Jelinek <jakub@redhat.com>
12917
12918 PR rtl-optimization/79386
12919 * cprop.c (bypass_conditional_jumps): Initialize
12920 bypass_last_basic_block already before splitting bbs after
12921 unconditional traps...
12922 (bypass_conditional_jumps): ... rather than here.
12923
12924 PR target/79299
12925 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
12926 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
12927 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
12928 fix -masm=intel patterns.
12929
12930 2017-02-07 Richard Biener <rguenther@suse.de>
12931
12932 PR tree-optimization/79256
12933 PR middle-end/79278
12934 * builtins.c (get_object_alignment_2): Use min_align_of_type
12935 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
12936 and ADJUST_FIELD_ALIGN.
12937
12938 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
12939 type parameter.
12940 * doc/tm.texi: Regenerate.
12941 * stor-layout.c (layout_decl): Adjust.
12942 (update_alignment_for_field): Likewise.
12943 (place_field): Likewise.
12944 (min_align_of_type): Likewise.
12945 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
12946 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
12947 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
12948 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
12949 * config/frv/frv.c (frv_adjust_field_align): Likewise.
12950 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
12951 * config/i386/i386.c (x86_field_alignment): Likewise.
12952 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
12953 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
12954 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
12955 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12956 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
12957 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
12958 Likewise.
12959
12960 Revert
12961 2017-01-30 Richard Biener <rguenther@suse.de>
12962
12963 PR tree-optimization/79256
12964 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
12965 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
12966 alignment on TYPE.
12967
12968 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
12969
12970 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
12971 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
12972 builtins to SImode and emit a zero-extend, if necessary.
12973
12974 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12975
12976 * docs/invoke.texi (RISC-V Options): Alphabetize.
12977
12978 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12979
12980 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
12981 options.
12982
12983 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12984
12985 * config/riscv/riscv.c: New file.
12986 * gcc/common/config/riscv/riscv-common.c: Likewise.
12987 * config.gcc: Likewise.
12988 * config/riscv/constraints.md: Likewise.
12989 * config/riscv/elf.h: Likewise.
12990 * config/riscv/generic.md: Likewise.
12991 * config/riscv/linux.h: Likewise.
12992 * config/riscv/multilib-generator: Likewise.
12993 * config/riscv/peephole.md: Likewise.
12994 * config/riscv/pic.md: Likewise.
12995 * config/riscv/predicates.md: Likewise.
12996 * config/riscv/riscv-builtins.c: Likewise.
12997 * config/riscv/riscv-c.c: Likewise.
12998 * config/riscv/riscv-ftypes.def: Likewise.
12999 * config/riscv/riscv-modes.def: Likewise.
13000 * config/riscv/riscv-opts.h: Likewise.
13001 * config/riscv/riscv-protos.h: Likewise.
13002 * config/riscv/riscv.h: Likewise.
13003 * config/riscv/riscv.md: Likewise.
13004 * config/riscv/riscv.opt: Likewise.
13005 * config/riscv/sync.md: Likewise.
13006 * config/riscv/t-elf-multilib: Likewise.
13007 * config/riscv/t-linux: Likewise.
13008 * config/riscv/t-linux-multilib: Likewise.
13009 * config/riscv/t-riscv: Likewise.
13010 * configure.ac: Likewise.
13011 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
13012 Waterman as RISC-V maintainers.
13013 * doc/install.texi: Add RISC-V entries.
13014 * doc/invoke.texi: Add RISC-V options section.
13015 * doc/md.texi: Add RISC-V constraints section.
13016 * configure: Regenerated.
13017
13018 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13019
13020 PR target/66144
13021 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
13022 false values to be constant vectors with all 0 or all 1 bits set.
13023 (vcondu<mode><mode>): Likewise.
13024 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
13025 predicate.
13026 (fpmask_comparison_operator): Update comment.
13027 (vecint_comparison_operator): New predicate.
13028 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
13029 vector conditionals when the true and false values are constant
13030 vectors with all 0 bits or all 1 bits set.
13031
13032 2017-02-06 Martin Sebor <msebor@redhat.com>
13033
13034 PR tree-optimization/79376
13035 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
13036
13037 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
13038
13039 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
13040 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
13041 to simplify split condition.
13042
13043 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13044
13045 * omp-expand.c (oxpand_omp_atomic_fetch_op,
13046 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
13047 false.
13048
13049 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
13050
13051 PR rtl-optimization/68664
13052 * target.def (can_speculate_insn): New hook.
13053 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
13054 * doc/tm.texi: Regenerate.
13055 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
13056 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
13057 (rs6000_sched_can_speculate_insn): New function.
13058
13059 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13060
13061 PR tree-optimization/79284
13062 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
13063 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
13064 vectorizable_mask_load_store, vectorizable_operation,
13065 vect_is_simple_cond, get_same_sized_vectype): Use it instead
13066 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
13067 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
13068 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
13069 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13070 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
13071 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
13072 is_gimple_assign (stmt). Replace another such test with
13073 is_gimple_assign (stmt).
13074
13075 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13076
13077 PR target/78883
13078 * config/avr/avr.c (rtl-iter.h): Include it.
13079 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
13080 (avr_legitimate_combined_insn): ...and implementation.
13081
13082 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
13083
13084 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
13085 * config/s390/s390.c (s390_const_operand_ok)
13086 (s390_canonicalize_comparison, s390_extract_part)
13087 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
13088 (s390_contiguous_bitmask_p, s390_rtx_costs)
13089 (legitimize_pic_address): Likewise.
13090 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
13091 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
13092 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
13093 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
13094 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
13095
13096 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13097
13098 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
13099 REGNO($0) == REGNO($1).
13100
13101 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13102
13103 * config/s390/linux.h(SIZE_TYPE): Add comment.
13104
13105 2017-02-06 Julian Brown <julian@codesourcery.com>
13106 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13107 Virendra Pathak <virendra.pathak@broadcom.com>
13108
13109 * config/aarch64/aarch64-cores.def: Change the scheduler
13110 to Thunderx2t99.
13111 * config/aarch64/aarch64.md: Include thunderx2t99.md.
13112 * config/aarch64/thunderx2t99.md: New file.
13113
13114 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13115
13116 * doc/standards.texi (Go Language): Update link to language
13117 standard.
13118
13119 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13120
13121 * tree-eh.c (lower_resx): Sanitize profile.
13122 (cleanup_empty_eh_move_lp): Likewise.
13123
13124 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13125
13126 PR tree-ssa/79347
13127 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
13128 ELSE_PROB.
13129 * cfgloopmanip.h (loop_version): Update prototype.
13130 * modulo-sched.c (sms_schedule): Update call of loop_version.
13131 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
13132 * tree-parloops.c (gen_parallel_loop): Likewise.
13133 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
13134 * tree-ssa-loop-split.c (split_loop): Likewise.
13135 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
13136 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13137
13138 2017-02-05 Martin Liska <mliska@suse.cz>
13139
13140 PR bootstrap/78985
13141 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
13142 variable to NULL.
13143 (print_operand_address): Initialize a struct to zero.
13144
13145 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13146
13147 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
13148 garbage collector only in textual form.
13149
13150 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13151
13152 * doc/extend.texi (x86 specific memory model extensions for
13153 transactional memory): Simplify a phrase.
13154
13155 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
13156
13157 PR target/79353
13158 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
13159 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
13160 (atomic_storedi_1): Likewise.
13161
13162 2017-02-04 Jakub Jelinek <jakub@redhat.com>
13163
13164 PR tree-optimization/79338
13165 * tree-parloops.c (gather_scalar_reductions): Don't call
13166 vect_analyze_loop_form for loop->inner before destroying loop's
13167 loop_vinfo.
13168
13169 2017-02-03 Martin Sebor <msebor@redhat.com>
13170
13171 PR tree-optimization/79327
13172 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
13173 when precision has resulted in leading zeros.
13174 (format_integer): Adjust the likely counter to assume an unknown
13175 argument that may be zero is non-zero.
13176
13177 2017-02-03 Jason Merrill <jason@redhat.com>
13178
13179 PR c++/78689
13180 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
13181 avoid copying non-taken branch.
13182
13183 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13184
13185 PR tree-optimization/79340
13186 * tree-vect-loop.c (vectorizable_reduction): Release
13187 vec_defs elements after safe_splicing them into other vectors.
13188 Formatting fixes.
13189
13190 PR tree-optimization/79327
13191 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
13192 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
13193 dirtype.
13194 (format_integer): Use wide_int_to_tree instead of build_int_cst
13195 + to_?hwi. If argmin is NULL, just set argmin and argmax to
13196 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
13197 of shortest and longest sequence.
13198
13199 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
13200
13201 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
13202 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
13203
13204 2017-02-03 Walter Lee <walt@tilera.com>
13205
13206 PR target/78862
13207 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
13208 after initial stackframe link reg save.
13209 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
13210
13211 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13212
13213 PR target/79354
13214 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
13215 wu for stxssp alternative.
13216
13217 2017-02-03 Martin Sebor <msebor@redhat.com>
13218
13219 PR tree-optimization/79352
13220 * gimple-fold.c (get_range_strlen): Add argument.
13221 (get_range_strlen): Change return type to bool.
13222 (get_maxval_strlen): Pass in a dummy argument.
13223 * gimple-fold.h (get_range_strlen): Change return type to bool.
13224 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
13225 * tree.h (array_at_struct_end_p): Add argument.
13226 * tree.c (array_at_struct_end_p): Handle it.
13227
13228 2017-02-03 Martin Liska <mliska@suse.cz>
13229
13230 PR lto/66295
13231 * multiple_target.c (create_dispatcher_calls): Redirect edge
13232 from a caller of a dispatcher.
13233 (expand_target_clones): Make the clones local.
13234 (ipa_target_clone): Do both target clones and resolvers.
13235 (ipa_dispatcher_calls): Remove the pass.
13236 (pass_dispatcher_calls::gate): Likewise.
13237 (make_pass_dispatcher_calls): Likewise.
13238 * passes.def (pass_target_clone): Put as very first IPA early
13239 pass.
13240
13241 2017-02-03 Martin Liska <mliska@suse.cz>
13242
13243 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
13244 in case of a function with ifunc attribute.
13245
13246 2017-02-03 Martin Liska <mliska@suse.cz>
13247
13248 * cgraph.c (cgraph_node::dump): Dump function version info.
13249 * symtab.c (symtab_node::dump_base): Add missing new line.
13250
13251 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13252
13253 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
13254 (ifcombine_ifandif): Use it.
13255
13256 2017-02-03 Martin Liska <mliska@suse.cz>
13257
13258 * doc/invoke.texi: Document default value for
13259 use-after-scope-direct-emission-threshold.
13260
13261 2017-02-03 Martin Liska <mliska@suse.cz>
13262
13263 PR tree-optimization/79339
13264 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
13265 (format_floating): Likewise.
13266
13267 2017-02-03 Martin Liska <mliska@suse.cz>
13268
13269 PR ipa/79337
13270 * ipa-prop.c (ipa_node_params_t::insert): Remove current
13271 implementation.
13272 (ipa_node_params_t::remove): Likewise.
13273 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
13274 initialization from removed ipa_node_params_t::insert.
13275 (ipa_node_params::~ipa_node_params): Move from removed
13276 ipa_node_params_t::release.
13277 * symbol-summary.h (symbol_summary::m_released): New member.
13278 Do not release a summary twice. Do not allow to call finalizer
13279 for types of a summary that live in GGC memory.
13280
13281 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13282
13283 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
13284 cmp_branch fusion.
13285
13286 2017-02-02 Martin Sebor <msebor@redhat.com>
13287
13288 PR middle-end/79275
13289 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
13290 (format_string): Tighten up the range of output for non-constant
13291 strings and correct the expected range for wide non-constant strings.
13292
13293 2017-02-02 Martin Sebor <msebor@redhat.com>
13294
13295 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
13296
13297 PR middle-end/32003
13298 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
13299 index.
13300 (-fdump-tree-@var): Add to index and document how to come up
13301 with pass-specific option and dump file names.
13302 (-fdump-passes): Clarify where to look for output.
13303
13304 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13305
13306 PR middle-end/77445
13307 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
13308 statistics of the analyzed path; allow threading for speed when
13309 any of BBs along the path are optimized for speed.
13310
13311 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
13312
13313 PR middle-end/78468
13314 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
13315 settings of the virtual registers.
13316
13317 Revert again
13318 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13319
13320 * explow.c (get_dynamic_stack_size): Take known alignment of stack
13321 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
13322 needed.
13323
13324 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13325
13326 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
13327 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
13328
13329 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13330
13331 * config/s390/s390.md: Add missing comments with the expanded
13332 mnemonics.
13333 * config/s390/vector.md: Likewise.
13334 * config/s390/vx-builtins.md: Likewise.
13335
13336 2017-02-02 Jakub Jelinek <jakub@redhat.com>
13337
13338 PR target/79197
13339 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
13340 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
13341 conditions on a single line.
13342
13343 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13344
13345 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13346 __S390_VX__ to __VX__.
13347
13348 2017-02-01 Andrew Pinski <apinski@cavium.com>
13349
13350 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
13351 stmt_info to record_stmt_cost.
13352 (vect_get_known_peeling_cost): Pass stmt_info if known to
13353 record_stmt_cost.
13354 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
13355 cpu_vector_cost field into
13356 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
13357 field into vec_int_stmt_cost and vec_fp_stmt_cost.
13358 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
13359 splitting of scalar_stmt_cost and vec_stmt_cost.
13360 (thunderx_vector_cost): Likewise.
13361 (cortexa57_vector_cost): LIkewise.
13362 (exynosm1_vector_cost): Likewise.
13363 (xgene1_vector_cost): Likewise.
13364 (thunderx2t99_vector_cost): Improve after the splitting of the two
13365 fields.
13366 (aarch64_builtin_vectorization_cost): Update for the splitting of
13367 scalar_stmt_cost and vec_stmt_cost.
13368
13369 2017-02-01 Torvald Riegel <triegel@redhat.com>
13370 Richard Henderson <rth@redhat.com>
13371
13372 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
13373 conditional on existance of a fast atomic load.
13374 * optabs-query.c (can_atomic_load_p): New function.
13375 * optabs-query.h (can_atomic_load_p): Declare it.
13376 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
13377 no fast atomic load is available for the particular size of access.
13378 (expand_atomic_compare_and_swap): Likewise.
13379 (expand_atomic_load): Likewise.
13380 (expand_atomic_store): Likewise.
13381 (expand_atomic_fetch_op): Likewise.
13382 * testsuite/lib/target-supports.exp
13383 (check_effective_target_sync_int_128): Remove x86 because it provides
13384 no fast atomic load.
13385 (check_effective_target_sync_int_128_runtime): Likewise.
13386
13387 2017-02-01 Richard Biener <rguenther@suse.de>
13388
13389 * graphite.c: Include tree-vectorizer.h for find_loop_location.
13390 (graphite_transform_loops): Provide opt-info for optimized nests.
13391 * tree-parloop.c (parallelize_loops): Provide opt-info for
13392 parallelized loops.
13393
13394 2017-02-01 Richard Biener <rguenther@suse.de>
13395
13396 PR middle-end/79315
13397 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
13398 was not set before.
13399
13400 2017-02-01 Richard Biener <rguenther@suse.de>
13401
13402 PR tree-optimization/71824
13403 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
13404 Verify the loops are valid in the merged SESE region.
13405 (scop_detection::can_represent_loop_1): Check analyzing the
13406 evolution of the number of iterations in the region succeeds.
13407
13408 2017-01-31 Ian Lance Taylor <iant@golang.org>
13409
13410 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
13411 REG_ARGS_SIZE note to 32-bit push insns and call insn.
13412
13413 2017-01-31 David Malcolm <dmalcolm@redhat.com>
13414
13415 PR preprocessor/79210
13416 * input.c (get_substring_ranges_for_loc): Replace line_width
13417 assertion with error-handling.
13418
13419 2017-01-31 Richard Biener <rguenther@suse.de>
13420
13421 PR tree-optimization/77318
13422 * graphite-sese-to-poly.c (extract_affine): Fix assert.
13423 (create_pw_aff_from_tree): Take loop parameter.
13424 (add_condition_to_pbb): Pass loop of the condition to
13425 create_pw_aff_from_tree.
13426
13427 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13428
13429 * config/s390/s390.c (s390_asan_shadow_offset): New function.
13430 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
13431
13432 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
13433
13434 PR target/78597
13435 PR target/79038
13436 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
13437 no longer used.
13438 (convert_int_to_float128): Likewise.
13439 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
13440 (convert_int_to_float128): Likewise.
13441 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
13442 (UNSPEC_IEEE128_CONVERT): Likewise.
13443 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
13444 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
13445 Use local variables for IBM extended format.
13446 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
13447 (fix_trunc<mode>si2_fprs): Likewise.
13448 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
13449 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
13450 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
13451 to know that we can now have integers of all sizes in vector
13452 registers.
13453 (fix<uns>_<mode>di2_hw): Likewise.
13454 (float<uns>_<mode>si2_hw): Likewise.
13455 (fix_<mode>si2_hw): Likewise.
13456 (fixuns_<mode>si2_hw): Likewise.
13457 (float<uns>_<mode>di2_hw): Likewise.
13458 (float_<mode>di2_hw): Likewise.
13459 (float_<mode>si2_hw): Likewise.
13460 (floatuns_<mode>di2_hw): Likewise.
13461 (floatuns_<mode>si2_hw): Likewise.
13462 (xscvqp<su>wz_<mode>): Delete, no longer used.
13463 (xscvqp<su>dz_<mode>): Likewise.
13464 (xscv<su>dqp_<mode>): Likewise.
13465 (ieee128_mfvsrd_64bit): Likewise.
13466 (ieee128_mfvsrd_32bit): Likewise.
13467 (ieee128_mfvsrwz): Likewise.
13468 (ieee128_mtvsrw): Likewise.
13469 (ieee128_mtvsrd_64bit): Likewise.
13470 (ieee128_mtvsrd_32bit): Likewise.
13471
13472 2017-01-31 Martin Liska <mliska@suse.cz>
13473
13474 PR ipa/79285
13475 * ipa-prop.c (ipa_free_all_node_params): Call release method
13476 instead of ~sumbol_summary to not to trigger double times
13477 dtor of hash_map.
13478
13479 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
13480
13481 PR tree-optimization/71691
13482 * bitmap.h (class auto_bitmap): New.
13483 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
13484 is_maybe_undefined instead of ssa_undefined_value_p.
13485
13486 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13487
13488 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13489 __S390_ARCH_LEVEL__ to __ARCH__.
13490
13491 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13492
13493 PR tree-optimization/79267
13494 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
13495 if should_remove_lhs_p is true.
13496
13497 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
13498
13499 PR debug/63238
13500 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
13501 (add_alignment_attribute): New.
13502 (base_type_die): Add alignment attribute.
13503 (subrange_type_die): Likewise.
13504 (modified_type_die): Likewise.
13505 (gen_array_type_die): Likewise.
13506 (gen_descr_array_type_die: Likewise.
13507 (gen_enumeration_type_die): Likewise.
13508 (gen_subprogram_die): Likewise.
13509 (gen_variable_die): Likewise.
13510 (gen_field_die): Likewise.
13511 (gen_ptr_to_mbr_type_die): Likewise.
13512 (gen_struct_or_union_type_die): Likewise.
13513 (gen_subroutine_type_die): Likewise.
13514 (gen_typedef_die): Likewise.
13515 (base_type_cmp): Compare alignment attribute.
13516
13517 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13518
13519 PR target/79170
13520 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
13521 (setb_unsigned) New pattern for setb with CCUNS.
13522 * config/rs6000/rs6000.c (expand_block_compare): Use a different
13523 subfc./subfe sequence to avoid overflow problems. Generate a
13524 shorter sequence with cmpld/setb for power9.
13525 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
13526 for generating subfc. instruction.
13527 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
13528 now uses this instruction.
13529
13530 2017-01-30 Ian Lance Taylor <iant@google.com>
13531
13532 PR debug/79289
13533 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
13534 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
13535
13536 2017-01-30 Martin Sebor <msebor@redhat.com>
13537
13538 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
13539 Move constant to the right of a relational operator.
13540 (get_mpfr_format_length, format_character, format_string): Ditto.
13541 (should_warn_p, maybe_warn): Same.
13542
13543 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
13544
13545 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
13546
13547 PR lto/79061
13548 * asan.c (get_translation_unit_decl): Remove function.
13549 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
13550
13551 2017-01-30 Martin Liska <mliska@suse.cz>
13552
13553 PR gcov-profile/79259
13554 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
13555 -fprofile-generate.
13556
13557 2017-01-30 Martin Liska <mliska@suse.cz>
13558
13559 PR bootstrap/78985
13560 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
13561 Initialize variables with NULL value.
13562
13563 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
13564
13565 PR target/79260
13566 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
13567 tm_p_file.
13568 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
13569
13570 2017-01-30 Richard Biener <rguenther@suse.de>
13571
13572 PR tree-optimization/79276
13573 * tree-vrp.c (process_assert_insertions): Properly adjust common
13574 when removing a duplicate.
13575
13576 * gcc.dg/torture/pr79276.c: New testcase.
13577
13578 2017-01-30 Richard Biener <rguenther@suse.de>
13579
13580 PR tree-optimization/79256
13581 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
13582 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
13583 alignment on TYPE.
13584 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
13585
13586 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
13587
13588 PR target/79240
13589 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
13590 ("*r<noxa>sbg_<mode>_sll_bitmask")
13591 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
13592 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
13593 Use contiguous_bitmask_nowrap_operand.
13594
13595 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13596
13597 PR target/79268
13598 * config/rs6000/altivec.h (vec_xl): Revise #define.
13599 (vec_xst): Likewise.
13600
13601 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
13602
13603 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
13604
13605 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
13606
13607 PR rtl-optimization/79194
13608 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
13609 traps before call to bypass_conditional_jumps.
13610
13611 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13612
13613 PR tree-optimization/71374
13614 * lra-constraints.c (check_conflict_input_operands): New.
13615 (match_reload): Use it.
13616
13617 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13618
13619 PR target/79131
13620 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
13621 account to calculate conflict_set.
13622
13623 2017-01-27 Bin Cheng <bin.cheng@arm.com>
13624
13625 PR rtl-optimization/78559
13626 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
13627 other_insn in combine.
13628
13629 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
13630
13631 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
13632 uint16_type_node for BT_UINT16.
13633
13634 2017-01-27 David Malcolm <dmalcolm@redhat.com>
13635
13636 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
13637 "RTL Tests" to menu.
13638 (GIMPLE Tests): New node.
13639 (RTL Tests): New node.
13640
13641 2017-01-27 Richard Biener <rguenther@suse.de>
13642
13643 PR tree-optimization/79245
13644 * tree-loop-distribution.c (distribute_loop): Apply cost
13645 modeling also to detected patterns.
13646
13647 2017-01-27 Richard Biener <rguenther@suse.de>
13648
13649 PR tree-optimization/71433
13650 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
13651 (compare_assert_loc): New function.
13652 (process_assert_insertions): Sort and optimize assert locations
13653 to remove duplicates and push down identical assertions on
13654 edges to their destination block.
13655
13656 2017-01-27 Richard Biener <rguenther@suse.de>
13657
13658 PR tree-optimization/79244
13659 * tree-vrp.c (remove_range_assertions): Forcefully propagate
13660 out SSA names even if abnormal.
13661
13662 2017-01-27 Jakub Jelinek <jakub@redhat.com>
13663
13664 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
13665 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
13666 instead of MPFR_RNDN.
13667
13668 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
13669
13670 PR target/79239
13671 * arm.c (arm_option_override): Don't call build_target_option_node
13672 until after doing all option overrides.
13673 (arm_valid_target_attribute_tree): Likewise.
13674
13675 2017-01-27 Martin Liska <mliska@suse.cz>
13676
13677 * doc/invoke.texi (-fprofile-arcs): Document profiling support
13678 for {cd}tors and C++ {cd}tors.
13679
13680 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
13681
13682 * config/s390/s390.md ("*setmem_long_and")
13683 ("*setmem_long_and_31z"): Use zero_extend instead of and.
13684
13685 2017-01-26 Martin Sebor <msebor@redhat.com>
13686
13687 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
13688 of precision.
13689
13690 2017-01-26 Martin Sebor <msebor@redhat.com>
13691
13692 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
13693 HAVE_DFmode before using XFmode or DFmode.
13694 (parse_directive): Avoid using the z length modifier to avoid
13695 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
13696
13697 PR middle-end/78703
13698 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
13699 to accept adjustment as an array.
13700 (get_int_range): New function.
13701 (struct directive): Make width and prec arrays.
13702 (directive::set_width, directive::set_precision): Call get_int_range.
13703 (format_integer, format_floating): Handle width and precision ranges.
13704 (format_string, parse_directive): Same.
13705
13706 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13707
13708 PR debug/79129
13709 * dwarf2out.c (generate_skeleton_bottom_up): For children with
13710 comdat_type_p set, just clone them, but keep the children in the
13711 original DIE.
13712
13713 PR debug/78835
13714 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
13715 which have direct callers with -fvar-tracking-assignments enabled
13716 in the current TU.
13717 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
13718 inside of type units.
13719
13720 2017-01-26 Martin Sebor <msebor@redhat.com>
13721
13722 PR middle-end/78703
13723 * gimple-ssa-sprintf.c (struct result_range): Add likely and
13724 unlikely counters.
13725 (struct format_result): Replace number_chars, number_chars_min,
13726 and number_chars_max with a single member of struct result_range.
13727 Remove bounded.
13728 (format_result::operator+=): Adjust.
13729 (struct fmtresult): Remove bounded. Handle likely and unlikely
13730 counters.
13731 (fmtresult::adjust_for_width_or_precision): New function.
13732 (fmtresult:type_max_digits): New function.
13733 (bytes_remaining): Handle likely and unlikely counters.
13734 (min_bytes_remaining): Remove.
13735 (format_percent): Simplify.
13736 (format_integer, format_floating): Set likely and unlikely counters.
13737 (get_string_length, format_character, format_string): Same.
13738 (format_plain, should_warn_p): New function.
13739 (maybe_warn): Call should_warn_p. Update diagnostic messages
13740 and handle those for all directives, including plain strings.
13741 (format_directive): Handle likely and unlikely counters.
13742 Remove unnecessary quoting from diagnostics. Add an informational
13743 note.
13744 (add_bytes): Remove.
13745 (pass_sprintf_length::compute_format_length): Simplify.
13746 (try_substitute_return_value): Handle likely and unlikely counters.
13747
13748 2017-01-26 Carl Love <cel@us.ibm.com>
13749
13750 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
13751 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
13752
13753 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
13754
13755 PR target/79131
13756 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
13757 endianess for subregs into account.
13758 * lra-constraints.c (lra_constraints): Do risky transformations
13759 always on the first iteration.
13760 * lra-lives.c (check_pseudos_live_through_calls): Add arg
13761 last_call_used_reg_set.
13762 (process_bb_lives): Define and use last_call_used_reg_set.
13763 * lra.c (lra): Always continue after lra_constraints on the first
13764 iteration.
13765
13766 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
13767
13768 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
13769 constant.
13770 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
13771
13772 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13773
13774 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
13775 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
13776 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
13777 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
13778 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
13779 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
13780 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
13781 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
13782 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
13783
13784 2017-01-26 Marek Polacek <polacek@redhat.com>
13785
13786 PR c/79199
13787 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
13788 for the third operand.
13789
13790 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13791
13792 PR middle-end/79236
13793 * omp-low.c (struct omp_context): Add simt_stmt field.
13794 (scan_omp_for): Return omp_context *.
13795 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
13796 context to the _simt_ SIMD stmt.
13797 (lower_omp_for): For combined SIMD with sibling _simt_
13798 SIMD, make sure to use the same decls in _looptemp_
13799 clauses as in the sibling.
13800
13801 2017-01-26 David Sherwood <david.sherwood@arm.com>
13802
13803 PR middle-end/79212
13804 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
13805 all contexts.
13806
13807 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13808
13809 PR target/70465
13810 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
13811 emit fld b; fld a; if possible.
13812
13813 * brig-builtins.def: Update copyright years.
13814 * config/arm/arm_acle_builtins.def: Update copyright years.
13815
13816 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
13817
13818 PR target/79179
13819 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
13820 constraint instead of o for the stxsd instruction.
13821
13822 2017-01-25 Carl Love <cel@us.ibm.com>
13823
13824 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
13825 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
13826
13827 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
13828
13829 * doc/invoke.texi (C++ Dialect Options): Fix typo.
13830
13831 2017-01-25 Richard Biener <rguenther@suse.de>
13832
13833 PR tree-optimization/69264
13834 * target.def (vector_alignment_reachable): Improve documentation.
13835 * doc/tm.texi: Regenerate.
13836 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
13837 and add a comment.
13838 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
13839 earlier changes with respect to TYPE_USER_ALIGN.
13840 (vector_alignment_reachable_p): Likewise. Improve dumping.
13841
13842 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13843
13844 PR target/79145
13845 * config/arm/arm.md (xordi3): Force constant operand into a register
13846 for TARGET_IWMMXT.
13847
13848 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13849
13850 * doc/invoke.texi (-fstore-merging): Correct default optimization
13851 levels at which it is enabled.
13852 (-O): Move -fstore-merging from list to...
13853 (-O2): ... Here.
13854
13855 2017-01-25 Richard Biener <rguenther@suse.de>
13856
13857 PR debug/78363
13858 * omp-expand.c: Include debug.h.
13859 (expand_omp_taskreg): Make sure to generate early debug before
13860 outlining anything from a function.
13861 (expand_omp_target): Likewise.
13862 (grid_expand_target_grid_body): Likewise.
13863
13864 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
13865
13866 PR lto/79061
13867 * asan.c (get_translation_unit_decl): New function.
13868 (asan_add_global): Extract modules file name from globals
13869 TRANSLATION_UNIT_DECL name.
13870
13871 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
13872
13873 PR target/77439
13874 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
13875 for long calls with APCS frame and VFP.
13876
13877 2017-01-24 David Malcolm <dmalcolm@redhat.com>
13878
13879 * cfg.c (original_copy_tables_initialized_p): New function.
13880 * cfg.h (original_copy_tables_initialized_p): New decl.
13881 * cfgrtl.c (relink_block_chain): Guard the call to
13882 free_original_copy_tables with a call to
13883 original_copy_tables_initialized_p.
13884 * cgraph.h (symtab_node::native_rtl_p): New decl.
13885 * cgraphunit.c (symtab_node::native_rtl_p): New function.
13886 (symtab_node::needed_p): Don't assert for early assembly output
13887 for __RTL functions.
13888 (cgraph_node::finalize_function): Set "force_output" for __RTL
13889 functions.
13890 (cgraph_node::analyze): Bail out early for __RTL functions.
13891 (analyze_functions): Update assertion to support __RTL functions.
13892 (cgraph_node::expand): Bail out early for __RTL functions.
13893 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
13894 __RTL functions.
13895 * function.h (struct function): Update comment for field
13896 "pass_startwith".
13897 * gimple-expr.c: Include "tree-pass.h".
13898 (gimple_has_body_p): Return false for __RTL functions.
13899 * Makefile.in (OBJS): Add run-rtl-passes.o.
13900 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
13901 accessor.
13902 (gcc::pass_manager::get_clean_slate): New accessor.
13903 * passes.c: Include "insn-addr.h".
13904 (should_skip_pass_p): Add logging. Update logic for running
13905 "expand" to be compatible with both __GIMPLE and __RTL. Guard
13906 property-provider override so it is only done for gimple passes.
13907 Don't skip dfinit.
13908 (skip_pass): New function.
13909 (execute_one_pass): Call skip_pass when skipping passes.
13910 * read-md.c (md_reader::read_char): Support filtering
13911 the input to a subset of line numbers.
13912 (md_reader::md_reader): Initialize fields
13913 m_first_line and m_last_line.
13914 (md_reader::read_file_fragment): New function.
13915 * read-md.h (md_reader::read_file_fragment): New decl.
13916 (md_reader::m_first_line): New field.
13917 (md_reader::m_last_line): New field.
13918 * read-rtl-function.c (function_reader::create_function): Only
13919 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
13920 curr_properties. Set DECL_INITIAL to a dummy block.
13921 (read_rtl_function_body_from_file_range): New function.
13922 * read-rtl-function.h (read_rtl_function_body_from_file_range):
13923 New decl.
13924 * run-rtl-passes.c: New file.
13925 * run-rtl-passes.h: New file.
13926
13927 2017-01-24 Jeff Law <law@redhat.com>
13928
13929 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
13930 buffer size.
13931
13932 2017-01-24 Bin Cheng <bin.cheng@arm.com>
13933
13934 PR tree-optimization/79159
13935 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
13936 (record_nonwrapping_iv): Improve boundary using above function if no
13937 value range information.
13938
13939 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
13940 Martin Jambor <mjambor@suse.cz>
13941
13942 * brig-builtins.def: New file.
13943 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
13944 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
13945 (DEF_HSAIL_SAT_BUILTIN): Likewise.
13946 (DEF_HSAIL_INTR_BUILTIN): Likewise.
13947 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
13948 * builtin-types.def (BT_INT8): New.
13949 (BT_INT16): Likewise.
13950 (BT_UINT8): Likewise.
13951 (BT_UINT16): Likewise.
13952 (BT_FN_ULONG): Likewise.
13953 (BT_FN_UINT_INT): Likewise.
13954 (BT_FN_UINT_ULONG): Likewise.
13955 (BT_FN_UINT_LONG): Likewise.
13956 (BT_FN_UINT_PTR): Likewise.
13957 (BT_FN_ULONG_PTR): Likewise.
13958 (BT_FN_INT8_FLOAT): Likewise.
13959 (BT_FN_INT16_FLOAT): Likewise.
13960 (BT_FN_UINT32_FLOAT): Likewise.
13961 (BT_FN_UINT16_FLOAT): Likewise.
13962 (BT_FN_UINT8_FLOAT): Likewise.
13963 (BT_FN_UINT64_FLOAT): Likewise.
13964 (BT_FN_UINT16_UINT32): Likewise.
13965 (BT_FN_UINT32_UINT16): Likewise.
13966 (BT_FN_UINT16_UINT16_UINT16): Likewise.
13967 (BT_FN_INT_PTR_INT): Likewise.
13968 (BT_FN_UINT_PTR_UINT): Likewise.
13969 (BT_FN_LONG_PTR_LONG): Likewise.
13970 (BT_FN_ULONG_PTR_ULONG): Likewise.
13971 (BT_FN_VOID_UINT64_UINT64): Likewise.
13972 (BT_FN_UINT8_UINT8_UINT8): Likewise.
13973 (BT_FN_INT8_INT8_INT8): Likewise.
13974 (BT_FN_INT16_INT16_INT16): Likewise.
13975 (BT_FN_INT_INT_INT): Likewise.
13976 (BT_FN_UINT_FLOAT_UINT): Likewise.
13977 (BT_FN_FLOAT_UINT_UINT): Likewise.
13978 (BT_FN_ULONG_UINT_UINT): Likewise.
13979 (BT_FN_ULONG_UINT_PTR): Likewise.
13980 (BT_FN_ULONG_ULONG_ULONG): Likewise.
13981 (BT_FN_UINT_UINT_UINT): Likewise.
13982 (BT_FN_VOID_UINT_PTR): Likewise.
13983 (BT_FN_UINT_UINT_PTR: Likewise.
13984 (BT_FN_UINT32_UINT64_PTR): Likewise.
13985 (BT_FN_INT_INT_UINT_UINT): Likewise.
13986 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
13987 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
13988 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
13989 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
13990 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
13991 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
13992 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
13993 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
13994 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
13995 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
13996 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
13997 * doc/frontends.texi: List BRIG FE.
13998 * doc/install.texi (Testing): Add BRIG tesring requirements.
13999 * doc/invoke.texi (Overall Options): Mention BRIG.
14000 * doc/standards.texi (Standards): Doucment BRIG HSA version.
14001
14002 2017-01-24 Richard Biener <rguenther@suse.de>
14003
14004 PR translation/79208
14005 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
14006
14007 2017-01-24 Martin Jambor <mjambor@suse.cz>
14008
14009 PR bootstrap/79198
14010 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
14011 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
14012 and known_contexts.
14013
14014 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
14015
14016 PR middle-end/79123
14017 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
14018 casts from signed to unsigned really don't have a range.
14019
14020 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
14021
14022 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
14023 GMP_RNDx for compatiblity.
14024
14025 2017-01-24 Martin Liska <mliska@suse.cz>
14026
14027 PR bootstrap/79132
14028 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
14029 that would prevent us to call alloca with -1 as argument.
14030
14031 2017-01-24 Jakub Jelinek <jakub@redhat.com>
14032
14033 * dwarf2out.c (output_compilation_unit_header, output_file_names):
14034 Avoid -Wformat-security warning.
14035
14036 2017-01-23 Andrew Pinski <apinski@cavium.com>
14037
14038 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
14039 cost table.
14040
14041 2017-01-23 Martin Sebor <msebor@redhat.com>
14042
14043 PR middle-end/78703
14044 * gimple-ssa-sprintf.c (warn_level): New global.
14045 (format_integer): Use it here and throughout the rest of the file.
14046 Use the same switch to compute sign as base.
14047 (maybe_warn): New function.
14048 (format_directive): Factor out warnings into maybe_warn.
14049 Add debugging output. Use warn_level.
14050 (add_bytes): Use warn_level.
14051 (pass_sprintf_length::compute_format_length): Add debugging output.
14052 (try_substitute_return_value): Same.
14053 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
14054
14055 PR middle-end/78703
14056 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
14057 (struct fmtresult, format_integer, format_floating): Adjust.
14058 (fmtresult::fmtresult): Set max correctly in two argument ctor.
14059 (get_string_length, format_string,format_directive): Same.
14060 (pass_sprintf_length::compute_format_length): Same.
14061 (try_substitute_return_value): Simplify slightly.
14062
14063 PR middle-end/78703
14064 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
14065 (fmtresult::operator+=): Outlined.
14066 (struct fmtresult): Add ctors.
14067 (struct conversion_spec): Rename...
14068 (struct directive): ...to this. Add and remove data members.
14069 (directive::set_width, directive::set_precision): New functions.
14070 (format_percent): Use fmtresult ctor.
14071 (get_width_and_precision): Remove.
14072 (format_integer): Make naming changes. Avoid computing width and
14073 precision.
14074 (format_floating): Same. Adjust indentation.
14075 (format_character, format_none): New functions.
14076 (format_string): Moved character handling to format_character.
14077 (format_directive): Remove arguments, change return type.
14078 (parse_directive): New function.
14079 (pass_sprintf_length::compute_format_length): Move directive
14080 parsing to parse_directive.
14081
14082 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14083
14084 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
14085 (assign_assembler_name_if_needed): ... this.
14086 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
14087 (assign_assembler_name_if_needed): ... this.
14088 (free_lang_data_in_cgraph): Adjust callers.
14089 * cgraphunit.c (cgraph_node::analyze): Likewise.
14090 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
14091 Likewise.
14092
14093 2017-01-23 Richard Biener <rguenther@suse.de>
14094
14095 PR tree-optimization/79088
14096 PR tree-optimization/79188
14097 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
14098 resetting loop bounds after last path deletion. Reset loop
14099 bounds of the target loop, make code match the comments.
14100 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
14101 Make sure loops need no fixups.
14102
14103 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
14104
14105 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
14106 exponent support with double type for first argument.
14107 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
14108 type returned by __builtin_vec_extract_sig,
14109 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
14110 functions from "vector int" to "vector unsigned int" or from
14111 "vector long long int" to "vector unsigned long long int".
14112 Changed type returned by __builtin_vec_extract_exp,
14113 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
14114 functions from "vector int" to "vector unsigned int" or from
14115 "vector long long int" to "vector unsigned long long int".
14116 Changed return type of __builtin_vec_test_data_class,
14117 __builtin_vec_test_data_class_sp, and
14118 __builtin_vec_test_data_class_dp from "vector int" to
14119 "vector bool int" or from "vector long long int" to "vector bool
14120 long long int" and changed second argument type from "unsigned
14121 int" to "int". Added new overloaded function forms "vector float
14122 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
14123 "vector float __builtin_vec_insert_exp_sp (vector float, vector
14124 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
14125 double, vector unsigned long long int)" and "vector double
14126 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
14127 long int)". Changed return type of
14128 __builtin_scalar_test_data_class and
14129 __builtin_scalar_test_data_class_sp and
14130 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
14131 int" and changed second argument from "unsigned int" to "int".
14132 Changed type returned by __builtin_scalar_test_neg,
14133 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
14134 from "int" to "bool int". Added new overloaded function form
14135 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
14136 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
14137 exponent double-precision with floating point first argument.
14138 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
14139 documentation of scalar_test_data_class, scalar_test_neg,
14140 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
14141 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
14142 vec_test_data_class built-in functions to reflect refinements in
14143 their type signatures.
14144
14145 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
14146
14147 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
14148 size of buf.
14149 (aarch64_elf_asm_destructor): Likewise.
14150
14151 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
14152
14153 PR rtl-optimization/78634
14154 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
14155 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
14156 * ifcvt.c (noce_try_cmove): Add missing cost check.
14157
14158 PR rtl-optimization/71724
14159 * combine.c (if_then_else_cond): Look for situations where it is
14160 beneficial to undo the work of one of the recursive calls.
14161
14162 2017-01-23 Bin Cheng <bin.cheng@arm.com>
14163
14164 PR tree-optimization/70754
14165 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
14166 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
14167 combined stmt before it if not NULL.
14168 (combine_chains): Process refs reversely and compute dominance point
14169 for root ref.
14170
14171 2017-01-23 Martin Liska <mliska@suse.cz>
14172
14173 PR tree-optimization/79196
14174 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
14175 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
14176 instead of memcmp.
14177 (strlen_optimize_stmt): Call the renamed function.
14178
14179 2017-01-23 Michael Matz <matz@suse.de>
14180
14181 PR tree-optimization/78384
14182 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
14183
14184 2017-01-23 Richard Biener <rguenther@suse.de>
14185
14186 PR tree-optimization/79186
14187 * tree-vrp.c (register_new_assert_for): Make sure we've seen
14188 both incoming edges before moving an assert.
14189
14190 2017-01-23 Martin Jambor <mjambor@suse.cz>
14191
14192 * ipa-prop.c (load_from_param_1): Removed.
14193 (load_from_unmodified_param): Bits from load_from_param_1 put back
14194 here.
14195 (load_from_param): Removed.
14196 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
14197 with stmt. Reverted back to use of load_from_unmodified_param.
14198
14199 2017-01-23 Martin Jambor <mjambor@suse.cz>
14200
14201 PR ipa/79108
14202 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
14203 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
14204 field a pointer to garbage collected vector, mark lattices and
14205 ipcp_orig_node with GTY((skip)).
14206 (ipa_get_param_count): Adjust to descriptors being a pointer.
14207 (ipa_get_param): Likewise.
14208 (ipa_get_type): Likewise.
14209 (ipa_get_param_move_cost): Likewise.
14210 (ipa_set_param_used): Likewise.
14211 (ipa_get_controlled_uses): Likewise.
14212 (ipa_set_controlled_uses): Likewise.
14213 (ipa_is_param_used): Likewise.
14214 (ipa_node_params_t): Move into garbage collector. New methods insert
14215 and remove.
14216 (ipa_node_params_sum): Annotate wth GTY(()).
14217 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
14218 garbage collected.
14219 (ipa_load_from_parm_agg): Adjust declaration.
14220 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
14221 * ipa-profile.c (ipa_profile): Likewise.
14222 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
14223 (ipa_populate_param_decls): Make descriptors parameter garbage
14224 collected.
14225 (ipa_dump_param): Adjust to descriptors being a pointer.
14226 (ipa_alloc_node_params): Likewise.
14227 (ipa_initialize_node_params): Likewise.
14228 (load_from_param_1): Make descriptors parameter garbage collected.
14229 (load_from_unmodified_param): Likewise.
14230 (load_from_param): Likewise.
14231 (ipa_load_from_parm_agg): Likewise.
14232 (ipa_node_params::~ipa_node_params): Removed.
14233 (ipa_free_all_node_params): Remove call to delete operator.
14234 (ipa_node_params_t::insert): New.
14235 (ipa_node_params_t::remove): Likewise.
14236 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
14237 copy known_csts and known_contexts vectors.
14238 (ipa_read_node_info): Adjust to descriptors being a pointer.
14239 (ipcp_modif_dom_walker): Make m_descriptors field garbage
14240 collected.
14241 (ipcp_transform_function): Make descriptors variable garbage
14242 collected.
14243
14244 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
14245
14246 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
14247 * config/i386/avx512dqintrin.h: Ditto.
14248 * config/i386/avx512fintrin.h: Ditto.
14249 * gcc/config/i386/i386.c: Handle new builtins.
14250 * config/i386/i386-builtin.def: Add new builtins.
14251 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
14252 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
14253
14254 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14255 Martin Liska <mliska@suse.cz>
14256
14257 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
14258 * asan.c (asan_expand_poison_ifn): Support stores and use
14259 appropriate ASAN report function.
14260 * internal-fn.c (expand_ASAN_POISON_USE): New function.
14261 * internal-fn.def (ASAN_POISON_USE): Declare.
14262 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
14263 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
14264 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
14265 ASAN_POISON calls w/o LHS.
14266 * tree-ssa.c (execute_update_addresses_taken): Create clobber
14267 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
14268 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
14269 * gimplify.c (asan_poison_variables): Add attribute
14270 use_after_scope_memory to variables that really needs to live
14271 in memory.
14272 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
14273 having the attribute.
14274
14275 2017-01-23 Martin Liska <mliska@suse.cz>
14276
14277 * asan.c (create_asan_shadow_var): New function.
14278 (asan_expand_poison_ifn): Likewise.
14279 * asan.h (asan_expand_poison_ifn): New declaration.
14280 * internal-fn.c (expand_ASAN_POISON): Likewise.
14281 * internal-fn.def (ASAN_POISON): New builtin.
14282 * sanopt.c (pass_sanopt::execute): Expand
14283 asan_expand_poison_ifn.
14284 * tree-inline.c (copy_decl_for_dup_finish): Make function
14285 external.
14286 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
14287 * tree-ssa.c (is_asan_mark_p): New function.
14288 (execute_update_addresses_taken): Rewrite local variables
14289 (identified just by use-after-scope as addressable) into SSA.
14290
14291 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14292
14293 * doc/install.texi (Specific): opensource.apple.com uses https
14294 now. Remove trailing slash.
14295
14296 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14297
14298 * README.Portability: Remove note on an Irix compatibility issue.
14299
14300 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
14301
14302 * gcov.c (INCLUDE_ALGORITHM): Define.
14303 (INCLUDE_VECTOR): Define.
14304 No longer include <vector> and <algorithm> directly.
14305
14306 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
14307
14308 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
14309 to https.
14310 * doc/invoke.texi (Code Gen Options): Ditto.
14311
14312 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
14313
14314 PR lto/78407
14315 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
14316
14317 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
14318
14319 rtl-optimization/79125
14320 * cprop.c (local_cprop_pass): Handle cases where we make an
14321 unconditional trap.
14322
14323 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
14324
14325 PR target/61729
14326 PR target/77850
14327 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
14328 read from, for big endian.
14329
14330 2017-01-20 Jiong Wang <jiong.wang@arm.com>
14331
14332 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
14333 register pauth builtins for LP64 only.
14334
14335 2017-01-20 Marek Polacek <polacek@redhat.com>
14336
14337 PR c/79152
14338 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
14339 non-case labels.
14340
14341 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14342
14343 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
14344 of safelen status.
14345 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
14346 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
14347 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
14348
14349 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14350
14351 PR target/71270
14352 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
14353 in big-endian mode when they are not a single duplicated value.
14354
14355 2017-01-20 Richard Biener <rguenther@suse.de>
14356
14357 * BASE-VER: Bump to 7.0.1.
14358
14359 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14360
14361 * omp-low.c (omplow_simd_context): New struct. Use it...
14362 (lower_rec_simd_input_clauses): ...here and...
14363 (lower_rec_input_clauses): ...here to hold common data. Adjust all
14364 references to idx, lane, max_vf, is_simt.
14365
14366 2017-01-20 Graham Markall <graham.markall@embecosm.com>
14367
14368 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
14369 mcpu=nps400.
14370
14371 2017-01-20 Martin Jambor <mjambor@suse.cz>
14372
14373 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
14374 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
14375 gt-hsa-common.h.
14376 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
14377 (GTFILES): Rename hsa.c to hsa-common.c.
14378 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
14379 * hsa-dump.c: Likewise.
14380 * hsa-gen.c: Likewise.
14381 * hsa-regalloc.c: Likewise.
14382 * ipa-hsa.c: Likewise.
14383 * omp-expand.c: Likewise.
14384 * omp-low.c: Likewise.
14385 * toplev.c: Likewise.
14386
14387 2017-01-20 Marek Polacek <polacek@redhat.com>
14388
14389 PR c/64279
14390 * doc/invoke.texi: Document -Wduplicated-branches.
14391 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
14392 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
14393 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
14394 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
14395 return 0 only when not OEP_LEXICOGRAPHIC.
14396 (fold_build_cleanup_point_expr): Use the expression
14397 location when building CLEANUP_POINT_EXPR.
14398 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
14399 * tree.c (add_expr): Handle error_mark_node.
14400
14401 2017-01-20 Martin Liska <mliska@suse.cz>
14402
14403 PR lto/69188
14404 * tree-profile.c (init_ic_make_global_vars): Do not call
14405 finalize_decl.
14406 (gimple_init_gcov_profiler): Likewise.
14407
14408 2017-01-20 Martin Liska <mliska@suse.cz>
14409
14410 PR ipa/71190
14411 * cgraph.h (maybe_create_reference): Remove argument and
14412 update comment.
14413 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
14414 argument.
14415 * ipa-cp.c (create_specialized_node): Likewise.
14416 * symtab.c (symtab_node::maybe_create_reference): Handle
14417 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
14418
14419 2017-01-20 Martin Liska <mliska@suse.cz>
14420
14421 * read-rtl-function.c (function_reader::create_function): Use
14422 build_decl instread of build_decl_stat.
14423
14424 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
14425
14426 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
14427 * config/i386/avx512dqintrin.h: Ditto.
14428 * config/i386/avx512fintrin.h: Ditto.
14429 * config/i386/i386-builtin-types.def: Add new types.
14430 * gcc/config/i386/i386.c: Handle new types.
14431 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
14432 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
14433 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
14434 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
14435 (__builtin_ia32_kshiftridi): New.
14436 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
14437
14438 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
14439
14440 PR target/78875
14441 PR target/79140
14442 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
14443 define to rs6000_init_stack_protect_guard.
14444 (rs6000_init_stack_protect_guard): New function.
14445
14446 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14447 Yunqiang Su <yunqiang.su@imgtec.com>
14448
14449 * config.gcc (supported_defaults): Add madd4.
14450 (with_madd4): Add validation.
14451 (all_defaults): Add madd4.
14452 * config/mips/mips.opt (mmadd4): New option.
14453 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14454 mmadd4.
14455 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14456 __mips_no_madd4.
14457 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
14458 (ISA_HAS_FUSED_MADD4): Likewise.
14459 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
14460 * gcc/doc/install.texi (--with-madd4): Document the new option.
14461
14462 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14463
14464 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
14465 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
14466 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
14467 (aarch64_init_pauth_hint_builtins): New.
14468 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
14469 (aarch64_expand_builtin): Expand new builtins.
14470
14471 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14472
14473 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
14474 * combine-stack-adj.c (no_unhandled_cfa): Handle
14475 REG_CFA_TOGGLE_RA_MANGLE.
14476 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
14477 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
14478 info for return address signing.
14479 (aarch64_expand_epilogue): Likewise.
14480
14481 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14482
14483 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
14484 * config/aarch64/aarch64-protos.h
14485 (aarch64_return_address_signing_enabled): New declaration.
14486 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
14487 New function.
14488 (aarch64_expand_prologue): Sign return address before it's pushed onto
14489 stack.
14490 (aarch64_expand_epilogue): Authenticate return address fetched from
14491 stack.
14492 (aarch64_override_options): Sanity check for ILP32 and ISA level.
14493 (aarch64_attributes): New function attributes for "sign-return-address".
14494 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
14495 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
14496 ("*do_return"): Generate combined instructions according to key index.
14497 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
14498 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
14499 iterators.
14500 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
14501 * config/aarch64/aarch64.opt (msign-return-address=): New.
14502 * doc/extend.texi (AArch64 Function Attributes): Documents
14503 "sign-return-address=".
14504 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
14505
14506 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14507
14508 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
14509 overall option summary.
14510
14511 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14512
14513 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
14514 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
14515 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
14516 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
14517
14518 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
14519
14520 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
14521 -mpower9-minmax by default for -mcpu=power9.
14522 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
14523 128-bit floating point.
14524
14525 2017-01-20 Alan Modra <amodra@gmail.com>
14526
14527 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
14528 optimizing for size.
14529
14530 2017-01-20 Alan Modra <amodra@gmail.com>
14531
14532 PR target/79144
14533 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
14534 for strcmp and strncmp from corresponding builtin decl.
14535
14536 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14537
14538 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
14539 instead of i386/rtems-64.h.
14540 * config/i386/rtems-64.h: Remove.
14541
14542 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14543
14544 PR target/78478
14545 Revert:
14546 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
14547
14548 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
14549
14550 2017-01-19 Tamar Christina <tamar.christina@arm.com>
14551
14552 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
14553 Change int to HOST_WIDE_INT.
14554 * config/aarch64/aarch64-protos.h
14555 (aarch64_simd_gen_const_vector_dup): Likewise.
14556 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
14557
14558 2017-01-19 David Malcolm <dmalcolm@redhat.com>
14559
14560 * langhooks-def.h (lhd_type_for_size): New decl.
14561 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
14562 * langhooks.c (lhd_type_for_size): New function, taken from
14563 lto_type_for_size.
14564
14565 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
14566
14567 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
14568 define_bypass for CR latency.
14569 (power9-cracked-alu): Update bypass latency and remove power9-branch.
14570 (power9-alu2): Add define_bypass for CR latency.
14571 (power9-cmp): New.
14572 (power9-mul): Update insn latency.
14573 (power9-mul-compare): Update insn latency, bypass latency and remove
14574 power9-branch.
14575
14576 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14577
14578 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
14579 Delete.
14580 * config/aarch64/aarch64.md
14581 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
14582 aarch64_nopcrelative_literal_loads.
14583 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
14584
14585 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
14586
14587 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
14588 TARGET_LOONGSON_3A.
14589 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
14590
14591 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
14592
14593 PR target/78176
14594 * config.gcc (supported_defaults): Add lxc1-sxc1.
14595 (with_lxc1_sxc1): Add validation.
14596 (all_defaults): Add lxc1-sxc1.
14597 * config/mips/mips.opt (mlxc1-sxc1): New option.
14598 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14599 mlxc1-sxc1.
14600 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14601 __mips_no_lxc1_sxc1.
14602 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
14603 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
14604 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
14605
14606 2017-01-19 Richard Biener <rguenther@suse.de>
14607
14608 PR tree-optimization/72488
14609 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
14610 sure to restore SSA info.
14611 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
14612
14613 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
14614
14615 PR rtl-optimization/79121
14616 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
14617 of the inner type when shifting an extended value.
14618
14619 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
14620
14621 PR lto/78407
14622 * symtab.c (symtab_node::equal_address_to): Fix comparing of
14623 interposable aliases.
14624
14625 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
14626
14627 PR target/78516
14628 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
14629 Use the evmergelohi instruction.
14630 (mov_si<mode>_e500_subreg4_2_le): Likewise.
14631 (mov_sitf_e500_subreg8_2_be): Likewise.
14632 (mov_sitf_e500_subreg12_2_le): Likewise.
14633 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
14634 (mov_si<mode>_e500_subreg4_2_be): Likewise.
14635 (mov_sitf_e500_subreg8_2_le): Likewise.
14636 (mov_sitf_e500_subreg12_2_be): Likewise.
14637
14638 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14639
14640 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
14641 attribute from vecsimple to vecperm.
14642 (altivec_vbpermq2): Likewise.
14643
14644 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14645
14646 PR target/79040
14647 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
14648
14649 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14650 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
14651 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
14652 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
14653 case where N arg is SIZE_MAX.
14654 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
14655 (cmpstrsi): Add pattern.
14656
14657 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14658
14659 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14660 __builtin_vec_revb builtins.
14661 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
14662 built-in functions to support generation of the ISA 3.0 XXBR<x>
14663 vector byte reverse instructions.
14664 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
14665 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
14666 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
14667 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
14668 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
14669 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
14670 (P9V_BUILTIN_VEC_REVB): Likewise.
14671 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
14672 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
14673 (p9_xxbrq_v16qi): Likewise.
14674 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
14675 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
14676 (p9_xxbrh_v8hi): Likewise.
14677 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
14678 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
14679 vec_revb built-in functions.
14680
14681 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
14682
14683 PR rtl-optimization/78952
14684 * config/i386/i386.md (any_extract): New code iterator.
14685 (*insvqi_2): Use any_extract for source operand.
14686 (*insvqi_3): Use any_shiftrt for source operand.
14687
14688 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
14689
14690 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
14691 New function.
14692 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
14693
14694 2017-01-18 Matthias Klose <doko@ubuntu.com>
14695
14696 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
14697
14698 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14699
14700 * config/rs6000/altivec.h (vec_bperm): Change #define.
14701 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
14702 (altivec_vbpermq2): New define_insn.
14703 (altivec_vbpermd): Likewise.
14704 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
14705 function interface.
14706 (VBPERMD): Likewise.
14707 (VBPERM): New polymorphic function interface.
14708 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
14709 Add entries for P9V_BUILTIN_VEC_VBPERM.
14710 * doc/extend.texi: Add interfaces for vec_bperm.
14711
14712 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14713
14714 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
14715 first letter of error messages.
14716 (s390_resolve_overloaded_builtin): Likewise.
14717 * config/s390/s390.c (s390_expand_builtin): Likewise.
14718 (s390_invalid_arg_for_unprototyped_fn): Likewise.
14719 (s390_valid_target_attribute_inner_p): Likewise.
14720 * config/s390/s390.md ("tabort"): Likewise.
14721
14722 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
14723
14724 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
14725 (ISA_AVOID_DIV_HILO): New macro.
14726 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
14727 (ISA_HAS_DDIV): Likewise.
14728
14729 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14730
14731 * doc/invoke.texi (fabi-version): Correct number of occurrences.
14732
14733 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14734
14735 * doc/invoke.texi (fabi-version): Spelling fix.
14736
14737 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14738
14739 PR c++/70182
14740 * doc/invoke.texi (fabi-version): Mention mangling fix for
14741 operator names.
14742
14743 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14744
14745 PR c++/77489
14746 * doc/invoke.texi (fabi-version): Document discriminator mangling.
14747
14748 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
14749
14750 PR target/78875
14751 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
14752 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
14753 the new options.
14754 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
14755 flexible settings.
14756 (stack_protect_test): Ditto.
14757 * config/rs6000/rs6000.opt (mstack-protector-guard=,
14758 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
14759 options.
14760 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
14761 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
14762 -mstack-protector-guard-offset=.
14763 (RS/6000 and PowerPC Options): Ditto.
14764
14765 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
14766
14767 * config/i386/i386.h (MASK_CLASS_P): New define.
14768 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
14769 there are no registers from different register sets also when
14770 mask registers are used. Update function comment.
14771 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
14772 to (*k/*r) and (*k/*km) alternatives.
14773
14774 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
14775
14776 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
14777 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
14778 (EH_RETURN_HANDLER_RTX): New define.
14779 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
14780 Force frame pointer in EH return functions.
14781 (aarch64_expand_epilogue): Add barrier for eh_return.
14782 (aarch64_final_eh_return_addr): Remove.
14783 (aarch64_eh_return_handler_rtx): New function.
14784 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
14785 Remove.
14786 (aarch64_eh_return_handler_rtx): New prototype.
14787
14788 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14789
14790 * config/rs6000/altivec.h (vec_rlmi): New #define.
14791 (vec_vrlnm): Likewise.
14792 (vec_rlnm): Likewise.
14793 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
14794 (UNSPEC_VRLNM): Likewise.
14795 (VIlong): New mode iterator.
14796 (altivec_vrl<VI_char>mi): New define_insn.
14797 (altivec_vrl<VI_char>nm): Likewise.
14798 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
14799 function entry.
14800 (VRLDNM): Likewise.
14801 (RLNM): New polymorphic function entry.
14802 (VRLWMI): New monomorphic function entry.
14803 (VRLDMI): Likewise.
14804 (RLMI): New polymorphic function entry.
14805 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
14806 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
14807 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
14808 vec_vrlnm.
14809
14810 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14811
14812 PR debug/78839
14813 * dwarf2out.c (field_byte_offset): Restore the
14814 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
14815 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
14816 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
14817 of build2 + fold.
14818
14819 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14820
14821 PR ada/67205
14822 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
14823
14824 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14825
14826 PR debug/71669
14827 * dwarf2out.c (add_data_member_location_attribute): For constant
14828 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
14829 instead of DW_AT_data_member_location, DW_AT_bit_offset and
14830 DW_AT_byte_size attributes.
14831
14832 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14833
14834 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
14835 after forcing to constant memory when the code model is medium.
14836
14837 2017-01-17 Julia Koval <julia.koval@intel.com>
14838
14839 PR target/76731
14840 * config/i386/avx512fintrin.h
14841 (_mm512_i32gather_ps): Change __addr type to void const*.
14842 (_mm512_mask_i32gather_ps): Ditto.
14843 (_mm512_i32gather_pd): Ditto.
14844 (_mm512_mask_i32gather_pd): Ditto.
14845 (_mm512_i64gather_ps): Ditto.
14846 (_mm512_mask_i64gather_ps): Ditto.
14847 (_mm512_i64gather_pd): Ditto.
14848 (_mm512_mask_i64gather_pd): Ditto.
14849 (_mm512_i32gather_epi32): Ditto.
14850 (_mm512_mask_i32gather_epi32): Ditto.
14851 (_mm512_i32gather_epi64): Ditto.
14852 (_mm512_mask_i32gather_epi64): Ditto.
14853 (_mm512_i64gather_epi32): Ditto.
14854 (_mm512_mask_i64gather_epi32): Ditto.
14855 (_mm512_i64gather_epi64): Ditto.
14856 (_mm512_mask_i64gather_epi64): Ditto.
14857 (_mm512_i32scatter_ps): Change __addr type to void*.
14858 (_mm512_mask_i32scatter_ps): Ditto.
14859 (_mm512_i32scatter_pd): Ditto.
14860 (_mm512_mask_i32scatter_pd): Ditto.
14861 (_mm512_i64scatter_ps): Ditto.
14862 (_mm512_mask_i64scatter_ps): Ditto.
14863 (_mm512_i64scatter_pd): Ditto.
14864 (_mm512_mask_i64scatter_pd): Ditto.
14865 (_mm512_i32scatter_epi32): Ditto.
14866 (_mm512_mask_i32scatter_epi32): Ditto.
14867 (_mm512_i32scatter_epi64): Ditto.
14868 (_mm512_mask_i32scatter_epi64): Ditto.
14869 (_mm512_i64scatter_epi32): Ditto.
14870 (_mm512_mask_i64scatter_epi32): Ditto.
14871 (_mm512_i64scatter_epi64): Ditto.
14872 (_mm512_mask_i64scatter_epi64): Ditto.
14873 * config/i386/avx512pfintrin.h
14874 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
14875 (_mm512_mask_prefetch_i32gather_ps): Ditto.
14876 (_mm512_mask_prefetch_i64gather_pd): Ditto.
14877 (_mm512_mask_prefetch_i64gather_ps): Ditto.
14878 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
14879 (_mm512_prefetch_i32scatter_ps): Ditto.
14880 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
14881 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
14882 (_mm512_prefetch_i64scatter_pd): Ditto.
14883 (_mm512_prefetch_i64scatter_ps): Ditto.
14884 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
14885 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
14886 * config/i386/avx512vlintrin.h
14887 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
14888 (_mm_mmask_i32gather_ps): Ditto.
14889 (_mm256_mmask_i32gather_pd): Ditto.
14890 (_mm_mmask_i32gather_pd): Ditto.
14891 (_mm256_mmask_i64gather_ps): Ditto.
14892 (_mm_mmask_i64gather_ps): Ditto.
14893 (_mm256_mmask_i64gather_pd): Ditto.
14894 (_mm_mmask_i64gather_pd): Ditto.
14895 (_mm256_mmask_i32gather_epi32): Ditto.
14896 (_mm_mmask_i32gather_epi32): Ditto.
14897 (_mm256_mmask_i32gather_epi64): Ditto.
14898 (_mm_mmask_i32gather_epi64): Ditto.
14899 (_mm256_mmask_i64gather_epi32): Ditto.
14900 (_mm_mmask_i64gather_epi32): Ditto.
14901 (_mm256_mmask_i64gather_epi64): Ditto.
14902 (_mm_mmask_i64gather_epi64): Ditto.
14903 (_mm256_i32scatter_ps): Change __addr type to void*.
14904 (_mm256_mask_i32scatter_ps): Ditto.
14905 (_mm_i32scatter_ps): Ditto.
14906 (_mm_mask_i32scatter_ps): Ditto.
14907 (_mm256_i32scatter_pd): Ditto.
14908 (_mm256_mask_i32scatter_pd): Ditto.
14909 (_mm_i32scatter_pd): Ditto.
14910 (_mm_mask_i32scatter_pd): Ditto.
14911 (_mm256_i64scatter_ps): Ditto.
14912 (_mm256_mask_i64scatter_ps): Ditto.
14913 (_mm_i64scatter_ps): Ditto.
14914 (_mm_mask_i64scatter_ps): Ditto.
14915 (_mm256_i64scatter_pd): Ditto.
14916 (_mm256_mask_i64scatter_pd): Ditto.
14917 (_mm_i64scatter_pd): Ditto.
14918 (_mm_mask_i64scatter_pd): Ditto.
14919 (_mm256_i32scatter_epi32): Ditto.
14920 (_mm256_mask_i32scatter_epi32): Ditto.
14921 (_mm_i32scatter_epi32): Ditto.
14922 (_mm_mask_i32scatter_epi32): Ditto.
14923 (_mm256_i32scatter_epi64): Ditto.
14924 (_mm256_mask_i32scatter_epi64): Ditto.
14925 (_mm_i32scatter_epi64): Ditto.
14926 (_mm_mask_i32scatter_epi64): Ditto.
14927 (_mm256_i64scatter_epi32): Ditto.
14928 (_mm256_mask_i64scatter_epi32): Ditto.
14929 (_mm_i64scatter_epi32): Ditto.
14930 (_mm_mask_i64scatter_epi32): Ditto.
14931 (_mm256_i64scatter_epi64): Ditto.
14932 (_mm256_mask_i64scatter_epi64): Ditto.
14933 (_mm_i64scatter_epi64): Ditto.
14934 (_mm_mask_i64scatter_epi64): Ditto.
14935 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
14936 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
14937 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
14938 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
14939 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
14940 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
14941 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
14942 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
14943 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
14944 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
14945 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
14946 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
14947 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
14948 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
14949 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
14950 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
14951 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
14952 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
14953 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
14954 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
14955 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
14956 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
14957 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
14958 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
14959 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
14960 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
14961 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
14962 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
14963 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
14964 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
14965 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
14966 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
14967 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
14968 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
14969 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
14970 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
14971 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
14972 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
14973 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
14974 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
14975 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
14976 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
14977 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
14978 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
14979 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
14980 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
14981 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
14982 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
14983 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
14984 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
14985 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
14986 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
14987 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
14988 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
14989 definitions accordingly.
14990
14991 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
14992 Kuan-Lin Chen <kuanlinchentw@gmail.com>
14993
14994 PR target/79079
14995 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
14996 gen_lowpart.
14997
14998 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
14999
15000 PR target/79058
15001 * ira-conflicts.c (ira_build_conflicts): Update total conflict
15002 hard regs for inner regno.
15003
15004 2017-01-17 Martin Liska <mliska@suse.cz>
15005
15006 PR ipa/71207
15007 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
15008 assumption and add comment.
15009
15010 2017-01-17 Nathan Sidwell <nathan@acm.org>
15011
15012 * ipa-visibility.c (localize_node): New function, broken out of ...
15013 (function_and_variable_visibility): ... here. Call it.
15014
15015 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
15016
15017 PR middle-end/77445
15018 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
15019 correctly set frequency of oudgoing edge.
15020 (duplicate_thread_path): Fix profile updating.
15021
15022 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15023
15024 PR other/79046
15025 * configure.ac: Add GCC_BASE_VER.
15026 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
15027 version from BASE-VER file.
15028 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
15029 (gcc.o): Depend on $(BASEVER).
15030 * common.opt (dumpfullversion): New option.
15031 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
15032 * doc/invoke.texi: Document -dumpfullversion.
15033 * doc/install.texi: Document --with-gcc-major-version-only.
15034 * configure: Regenerated.
15035
15036 2017-01-17 Richard Biener <rguenther@suse.de>
15037
15038 PR tree-optimization/71433
15039 * tree-vrp.c (register_new_assert_for): Merge same asserts
15040 on all incoming edges.
15041 (process_assert_insertions_for): Handle insertions at the
15042 beginning of BBs.
15043
15044 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
15045
15046 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
15047 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
15048
15049 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
15050
15051 PR target/78633
15052 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
15053 RTL sharing.
15054
15055 2017-01-17 Alan Modra <amodra@gmail.com>
15056
15057 PR target/79066
15058 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
15059 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
15060 symbolic stack limit when pic.
15061
15062 2017-01-16 Martin Sebor <msebor@redhat.com>
15063
15064 PR tree-optimization/78608
15065 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
15066
15067 2017-01-16 Jeff Law <law@redhat.com>
15068
15069 Revert:
15070 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
15071 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
15072 for several include directories that may be relative to sysroot.
15073 * config/i386/x-mingw32 (gplus_includedir): Define.
15074 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
15075 (native_system_includedir): Likewise.
15076 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
15077 override if TARGET_SYSTEM_ROOT is defined.
15078 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
15079
15080 PR tree-optimization/79090
15081 PR tree-optimization/33562
15082 PR tree-optimization/61912
15083 PR tree-optimization/77485
15084 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
15085 and computed trims into the dump file.
15086
15087 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
15088
15089 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
15090
15091 2017-01-16 Jakub Jelinek <jakub@redhat.com>
15092
15093 PR c/79089
15094 * gimplify.c (gimplify_init_constructor): If want_value and
15095 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
15096 fix.
15097
15098 PR target/79080
15099 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
15100 sequence. Formatting fixes.
15101 (doloop_optimize): Formatting fixes.
15102
15103 PR driver/49726
15104 * gcc.c (debug_level_greater_than_spec_func): New function.
15105 (static_spec_functions): Add debug-level-gt spec function.
15106 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
15107 !g0.
15108 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15109 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15110 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
15111 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
15112 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
15113 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
15114
15115 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
15116
15117 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
15118 QImode fixups to general and mask registers only.
15119
15120 2017-01-16 Carl Love <cel@us.ibm.com>
15121
15122 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
15123 for built-in functions
15124 vector signed char vec_nabs (vector signed char)
15125 vector signed short vec_nabs (vector signed short)
15126 vector signed int vec_nabs (vector signed int)
15127 vector signed long long vec_nabs (vector signed long long)
15128 vector float vec_nabs (vector float)
15129 vector double vec_nabs (vector double)
15130 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
15131 and NABS overload.
15132 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
15133 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
15134 * doc/extend.texi: Update the documentation file for the new built-in
15135 functions.
15136
15137 2017-01-16 Martin Sebor <msebor@redhat.com>
15138
15139 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
15140 message.
15141
15142 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15143
15144 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
15145 UNSPEC_VSX__XXSPLTD to require special splat handling.
15146
15147 2017-01-16 David Malcolm <dmalcolm@redhat.com>
15148
15149 PR bootstrap/78616
15150 * system.h: Poison strndup.
15151
15152 2017-01-16 Alan Modra <amodra@gmail.com>
15153
15154 PR target/79098
15155 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
15156 use a switch.
15157
15158 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
15159
15160 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
15161
15162 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
15163
15164 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
15165 call recog here. Assert that INSN_CODE (insn) is non-negative.
15166
15167 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15168
15169 PR target/72749
15170 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
15171 fallthrough.
15172 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
15173 in the currently scheduled RTL fragment.
15174
15175 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15176
15177 PR rtl-optimization/78751
15178 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
15179 give up.
15180
15181 2017-01-14 Jeff Law <law@redhat.com>
15182
15183 PR tree-optimization/79090
15184 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
15185 variable length stores.
15186 (compute_trims): Delete dead assignment to *trim_tail.
15187 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
15188 zero length.
15189
15190 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
15191
15192 PR rtl-optimization/78626
15193 PR rtl-optimization/78727
15194 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
15195 of a block, and split such blocks after everything else is finished.
15196
15197 2017-01-14 Alan Modra <amodra@gmail.com>
15198
15199 PR target/72749
15200 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
15201 target legitimate_combined_insn.
15202 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
15203 (rs6000_legitimate_combined_insn): New function.
15204 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
15205 all uses.
15206 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
15207 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
15208 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
15209
15210 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
15211
15212 * doc/frontends.texi (G++ and GCC): Remove references to Java.
15213
15214 2017-01-13 Jeff Law <law@redhat.com>
15215
15216 PR tree-optimization/33562
15217 PR tree-optimization/61912
15218 PR tree-optimization/77485
15219 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
15220 a statement.
15221 (delete_dead_assignment): Likewise.
15222 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
15223 statement to delete_dead_call and delete_dead_assignment.
15224
15225 2017-01-13 David Malcolm <dmalcolm@redhat.com>
15226
15227 PR c/78304
15228 * substring-locations.c (format_warning_va): Strengthen case 1 so
15229 that both endpoints of the substring must be within the format
15230 range for just the substring to be printed.
15231
15232 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
15233
15234 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
15235 * config/i386/i386.c (ix86_target_string): Add missing options
15236 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
15237 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
15238 flags_other and ix86_target_other to flags2_other. Display unknown
15239 isa2 options.
15240 (ix86_valid_target_attribute_inner_p): Add missing options and
15241 reorder options by implied ISAs, as in ix86_target_string.
15242
15243 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15244
15245 * hash-table.h (hash_table::too_empty_p): New function.
15246 (hash_table::expand): Use it.
15247 (hash_table::traverse): Likewise.
15248 (hash_table::empty_slot): Use sizeof (value_type) instead of
15249 sizeof (PTR) to convert bytes to elements. Shrink the table
15250 if the current size is excessive for the current number of
15251 elements.
15252
15253 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15254
15255 * ira-costs.c (record_reg_classes): Break from the inner loop
15256 early once alt_fail is known to be true. Update outer loop
15257 handling accordingly.
15258
15259 2017-01-13 Jeff Law <law@redhat.com>
15260
15261 * tree-ssa-dse.c (decrement_count): New function.
15262 (increment_start_addr, maybe_trim_memstar_call): Likewise.
15263 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
15264 when we know the partially dead statement is a mem* function.
15265
15266 PR tree-optimization/61912
15267 PR tree-optimization/77485
15268 * tree-ssa-dse.c: Include expr.h.
15269 (maybe_trim_constructor_store): New function.
15270 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
15271
15272 PR tree-optimization/33562
15273 PR tree-optimization/61912
15274 PR tree-optimization/77485
15275 * doc/invoke.texi: Document new dse-max-object-size param.
15276 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
15277 * tree-ssa-dse.c: Include params.h.
15278 (dse_store_status): New enum.
15279 (initialize_ao_ref_for_dse): New, partially extracted from
15280 dse_optimize_stmt.
15281 (valid_ao_ref_for_dse, normalize_ref): New.
15282 (setup_live_bytes_from_ref, compute_trims): Likewise.
15283 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
15284 (maybe_trim_partially_dead_store): Likewise.
15285 (maybe_trim_complex_store): Likewise.
15286 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
15287 Track what bytes live from the original store. Return tri-state
15288 for dead, partially dead or live.
15289 (dse_dom_walker): Add constructor, destructor and new private members.
15290 (delete_dead_call, delete_dead_assignment): New extracted from
15291 dse_optimize_stmt.
15292 (dse_optimize_stmt): Make a member of dse_dom_walker.
15293 Use initialize_ao_ref_for_dse.
15294
15295 PR tree-optimization/33562
15296 PR tree-optimization/61912
15297 PR tree-optimization/77485
15298 * sbitmap.h (bitmap_count_bits): Prototype.
15299 (bitmap_clear_range, bitmap_set_range): Likewise.
15300 * sbitmap.c (bitmap_clear_range): New function.
15301 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
15302
15303 2017-01-13 Martin Liska <mliska@suse.cz>
15304
15305 PR ipa/79043
15306 * function.c (set_cfun): Add new argument force.
15307 * function.h (set_cfun): Likewise.
15308 * ipa-inline-transform.c (inline_call): Use the function when
15309 strict alising from is dropped for function we inline to.
15310
15311 2017-01-13 Richard Biener <rguenther@suse.de>
15312
15313 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
15314 for dumping GIMPLE INTEGER_CSTs.
15315
15316 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15317
15318 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
15319 to 201112L since C++17.
15320
15321 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
15322
15323 PR sanitizer/78887
15324 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
15325 if -fsanitize=kernel-address is present.
15326
15327 2017-01-13 Richard Biener <rguenther@suse.de>
15328
15329 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
15330 as _Literal ( type ) number in case usual suffixes do not
15331 preserve all information.
15332
15333 2017-01-13 Richard Biener <rguenther@suse.de>
15334
15335 PR tree-optimization/77283
15336 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
15337 and ssa-iterators.h.
15338 (is_feasible_trace): Implement a cost model based on joiner
15339 PHI node uses.
15340
15341 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15342
15343 PR target/79004
15344 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
15345 char or short to __float128/_Float128 directly.
15346
15347 2017-01-12 Martin Sebor <msebor@redhat.com>
15348
15349 to -Wformat-overflow.
15350 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
15351 (min_bytes_remaining): Same.
15352 (get_string_length): Same.
15353 (format_string): Same.
15354 (format_directive): Same.
15355 (add_bytes): Same.
15356 (pass_sprintf_length::handle_gimple_call): Same.
15357
15358 2017-01-12 Jakub Jelinek <jakub@redhat.com>
15359
15360 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
15361 info.nowrite calls with no lhs that can't throw. Return bool
15362 whether gsi_remove has been called or not.
15363 (pass_sprintf_length::handle_gimple_call): Return bool whether
15364 try_substitute_return_value called gsi_remove. Formatting fix.
15365 (pass_sprintf_length::execute): Don't use gsi_remove if
15366 handle_gimple_call returned true.
15367
15368 PR bootstrap/79069
15369 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
15370 be removed due to side-effects, don't remove following barrier nor
15371 turn the successor edge into fallthru edge.
15372
15373 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15374
15375 PR target/79044
15376 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
15377 element-reversing loads and stores as not swappable.
15378
15379 2017-01-12 Nathan Sidwell <nathan@acm.org>
15380 Nicolai Stange <nicstange@gmail.com>
15381
15382 * combine.c (try_combine): Don't ignore result of overlap checking
15383 loop. Combine overlap & asm check into single loop.
15384
15385 2017-01-12 Richard Biener <rguenther@suse.de>
15386
15387 * tree-pretty-print.c (dump_generic_node): Provide -gimple
15388 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
15389
15390 2017-01-12 Richard Biener <rguenther@suse.de>
15391
15392 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
15393 and TS_TARGET_OPTION directly derive from TS_BASE.
15394 * tree-core.h (tree_optimization_option): Derive from tree_base.
15395 (tree_target_option): Likewise.
15396
15397 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
15398
15399 * config/i386/i386.c (memory_address_length): Increase len
15400 only when rip_relative_addr_p returns false.
15401
15402 2017-01-11 Julia Koval <julia.koval@intel.com>
15403
15404 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
15405 (OPTION_MASK_ISA_SGX_SET): New.
15406 (ix86_handle_option): Handle OPT_msgx.
15407 * config.gcc: Added sgxintrin.h.
15408 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
15409 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
15410 * config/i386/i386.c (ix86_target_string): Add -msgx.
15411 (PTA_SGX): New.
15412 (ix86_option_override_internal): Handle new options.
15413 (ix86_valid_target_attribute_inner_p): Add sgx.
15414 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
15415 * config/i386/i386.opt: Add msgx.
15416 * config/i386/sgxintrin.h: New file.
15417 * config/i386/x86intrin.h: Add sgxintrin.h.
15418
15419 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15420
15421 PR c++/71537
15422 * fold-const.c (maybe_nonzero_address): Return 1 for function
15423 local objects.
15424 (tree_single_nonzero_warnv_p): Don't handle function local objects
15425 here.
15426
15427 PR c++/72813
15428 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
15429 of c-header.
15430
15431 2017-01-11 David Malcolm <dmalcolm@redhat.com>
15432
15433 PR driver/78877
15434 * opts.c: Include "spellcheck.h"
15435 (struct string_fragment): New struct.
15436 (struct edit_distance_traits<const string_fragment &>): New
15437 struct.
15438 (get_closest_sanitizer_option): New function.
15439 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
15440
15441 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15442
15443 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
15444 by 12.
15445 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
15446 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
15447 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
15448 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
15449 for initial die_offset if dwarf_split_debug_info.
15450 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
15451 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
15452 fields.
15453 (output_skeleton_debug_sections): Formatting fix. Use
15454 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
15455 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
15456
15457 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
15458
15459 * config/arm/cortex-a53.md: Add bypasses for
15460 cortex_a53_r2f_cvt.
15461 (cortex_a53_r2f): Only use for transfers.
15462 (cortex_a53_f2r): Likewise.
15463 (cortex_a53_r2f_cvt): Add reservation for conversions.
15464 (cortex_a53_f2r_cvt): Likewise.
15465
15466 2017-01-11 Tamar Christina <tamar.christina@arm.com>
15467
15468 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
15469 to all inlined functions, change static to extern.
15470
15471 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
15472
15473 PR target/78253
15474 * config/arm/arm.c (legitimize_pic_address): Handle reference to
15475 weak symbol.
15476 (arm_assemble_integer): Likewise.
15477
15478 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
15479
15480 * config.gcc: Use new awk script to check CPU, FPU and architecture
15481 parameters for --with-... options.
15482 * config/arm/parsecpu.awk: New file
15483 * config/arm/arm-cpus.in: New file.
15484 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
15485 files.
15486 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
15487 files.
15488 * config/arm/t-arm: Update dependency rules.
15489 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
15490 of processing .def files.
15491 * config/arm/genopt.sh: Deleted.
15492 * config/arm/gentune.sh: Deleted.
15493 * config/arm/arm-cores.def: Deleted.
15494 * config/arm/arm-arches.def: Deleted.
15495 * config/arm/arm-fpus.def: Deleted.
15496 * config/arm/arm-tune.md: Regenerated.
15497 * config/arm/arm-tables.opt: Regenerated.
15498 * config/arm/arm-cpu.h: New generated file.
15499 * config/arm/arm-cpu-data.h: New generated file.
15500 * config/arm/arm-cpu-cdata.h: New generated file.
15501
15502 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
15503
15504 PR lto/79042
15505 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
15506 bit.
15507 (input_varpool_node): Unpack dynamically_initialized bit.
15508
15509 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
15510
15511 PR rtl-optimization/79032
15512 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
15513 the alignment of the adjusted memory reference against that of MODE,
15514 instead of the alignment of the original memory reference.
15515
15516 2017-01-11 Martin Jambor <mjambor@suse.cz>
15517
15518 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
15519 test.
15520 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
15521 decorated functions.
15522
15523 2017-01-11 Richard Biener <rguenther@suse.de>
15524
15525 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
15526 set range/nonnull info for PHI results. Do not set it on
15527 stmts marked for removal.
15528
15529 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
15530
15531 * expr.c (store_field): In the bitfield case, fetch the return value
15532 from the registers before applying a single big-endian adjustment.
15533 Always do a final load for a BLKmode value not larger than a word.
15534
15535 2017-01-10 David Malcolm <dmalcolm@redhat.com>
15536
15537 PR c++/77949
15538 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
15539 that we correctly handle column numbers greater than
15540 LINE_MAP_MAX_COLUMN_NUMBER.
15541
15542 2017-01-10 Martin Sebor <msebor@redhat.com>
15543
15544 PR middle-end/78245
15545 * gimple-ssa-sprintf.c (get_destination_size): Call
15546 {init,fini}object_sizes.
15547 * tree-object-size.c (addr_object_size): Adjust.
15548 (pass_through_call): Adjust.
15549 (pass_object_sizes::execute): Adjust.
15550 * tree-object-size.h (fini_object_sizes): Declare.
15551
15552 2017-01-10 Martin Sebor <msebor@redhat.com>
15553
15554 PR tree-optimization/78775
15555 * builtins.c (get_size_range): Move...
15556 * calls.c: ...to here.
15557 (alloc_max_size): Accept zero argument.
15558 (operand_signed_p): Remove.
15559 (maybe_warn_alloc_args_overflow): Call get_size_range.
15560 * calls.h (get_size_range): Declare.
15561
15562 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
15563
15564 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
15565 from TI's devices.csv file as of September 2016.
15566 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
15567
15568 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
15569
15570 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
15571 * doc/invoke.texi: Likewise.
15572 * doc/md.texi: Likewise.
15573 * doc/objc.texi: Likewise.
15574
15575 2017-01-10 Joshua Conner <joshconner@google.com>
15576
15577 * config/arm/fuchsia-elf.h: New file.
15578 * config/fuchsia.h: New file.
15579 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
15580 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
15581 targets.
15582 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
15583
15584 2016-01-10 Richard Biener <rguenther@suse.de>
15585
15586 PR tree-optimization/79034
15587 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
15588 Propagate out degenerate PHIs in the joiner.
15589
15590 2017-01-10 Martin Liska <mliska@suse.cz>
15591
15592 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
15593 (sort_congruence_classes_by_decl_uid): Likewise.
15594 (sort_congruence_class_groups_by_decl_uid): Likewise.
15595 (sem_item_optimizer::merge_classes): Sort class, groups in these
15596 classes and members in the groups by DECL_UID of declarations.
15597 This would make merge operations stable.
15598
15599 2017-01-10 Martin Liska <mliska@suse.cz>
15600
15601 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
15602 usage of m_classes_vec.
15603 (sem_item_optimizer::~sem_item_optimizer): Likewise.
15604 (sem_item_optimizer::get_group_by_hash): Likewise.
15605 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
15606 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
15607 (sem_item_optimizer::verify_classes): Likewise.
15608 (sem_item_optimizer::process_cong_reduction): Likewise.
15609 (sem_item_optimizer::dump_cong_classes): Likewise.
15610 (sem_item_optimizer::merge_classes): Likewise.
15611 * ipa-icf.h (congruence_class_hash): Rename from
15612 congruence_class_group_hash. Remove declaration of m_classes_vec.
15613
15614 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
15615
15616 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
15617 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
15618 * config.gcc: Add avx512vpopcntdqintrin.h.
15619 * config/i386/avx512vpopcntdqintrin.h: New.
15620 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
15621 * config/i386/i386-builtin-types.def: Add new types.
15622 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
15623 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
15624 __builtin_ia32_vpopcountq_v8di_mask): New.
15625 * config/i386/i386-c.c (ix86_target_macros_internal): Define
15626 __AVX512VPOPCNTDQ__.
15627 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
15628 (PTA_AVX512VPOPCNTDQ): Define.
15629 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
15630 TARGET_AVX512VPOPCNTDQ_P): Define.
15631 * config/i386/i386.opt: Add mavx512vpopcntdq.
15632 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
15633 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
15634
15635 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15636
15637 PR middle-end/77484
15638 * predict.def (PRED_CALL): Set to 67.
15639
15640 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
15641
15642 * expr.c (store_field): In the bitfield case, if the value comes from
15643 a function call and is of an aggregate type returned in registers, do
15644 not modify the field mode; extract the value in all cases if the mode
15645 is BLKmode and the size is not larger than a word.
15646
15647 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
15648
15649 PR target/71017
15650 * config/i386/cpuid.h: Fix undefined behavior.
15651
15652 2017-01-04 Jeff Law <law@redhat.com>
15653
15654 PR tree-optimization/79007
15655 PR tree-optimization/67955
15656 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
15657 conservative for pt.null when flag_non_call_exceptions is on.
15658
15659 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15660
15661 PR translation/79019
15662 PR translation/79020
15663 * params.def (PARAM_INLINE_MIN_SPEEDUP,
15664 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
15665 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
15666 in descriptions.
15667 * config/avr/avr.opt (maccumulate-args): Likewise.
15668 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
15669 * common.opt (freport-bug): Likewise.
15670 * cif-code.def (CIF_FINAL_ERROR): Likewise.
15671 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
15672 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
15673 translatable string.
15674 * config/i386/i386.c (function_value_32): Likewise.
15675 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
15676 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
15677 Likewise.
15678 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
15679 * common/config/msp430/msp430-common.c (msp430_handle_option):
15680 Likewise.
15681 * symtab.c (symtab_node::verify_base): Likewise.
15682 * opts.c (set_debug_level): Likewise.
15683 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
15684 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15685 missing whitespace to translatable strings.
15686 * config/avr/avr.md (bswapsi2): Fix typo in comment.
15687 * config/sh/superh.h: Likewise.
15688 * config/i386/xopintrin.h: Likewise.
15689 * config/i386/znver1.md: Likewise.
15690 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
15691 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
15692 * double-int.h (struct double_int): Likewise.
15693 * double-int.c (div_and_round_double): Likewise.
15694 * wide-int.cc: Likewise.
15695 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
15696 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
15697 * cfgcleanup.c (crossjumps_occured): Renamed to ...
15698 (crossjumps_occurred): ... this.
15699 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
15700 Adjust all uses.
15701
15702 PR tree-optimization/78899
15703 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
15704 returning bool return struct loop *, NULL for failure and the new
15705 loop on success.
15706 (versionable_outer_loop_p): Don't version outer loop if it has
15707 dont_vectorized bit set.
15708 (tree_if_conversion): When versioning outer loop, ensure
15709 tree_if_conversion is performed also on the inner loop of the
15710 non-vectorizable outer loop copy.
15711 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
15712 LOOP_VECTORIZED in inner loop of the scalar outer loop and
15713 prevent vectorization of it.
15714 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
15715 the outer loop vectorization of the non-scalar version is attempted
15716 before vectorization of the inner loop in scalar version. If
15717 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
15718 vectorization of its inner loop.
15719 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
15720 has 2 inner loops, rename also on edges from bb whose single pred
15721 is outer_loop->header. Fix typo in function comment.
15722
15723 2017-01-09 Martin Sebor <msebor@redhat.com>
15724
15725 PR bootstrap/79033
15726 * asan.c (asan_emit_stack_protection): Increase local buffer size
15727 to avoid snprintf truncation warning.
15728
15729 2017-01-09 Andrew Pinski <apinski@cavium.com>
15730
15731 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
15732 to reference thunderx2t99 for the tuning structure
15733 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
15734 Rename to ...
15735 (thunderx2t99_extra_costs): This.
15736 * config/aarch64/aarch64-tune.md: Regenerate.
15737 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
15738 (vulcan_addrcost_table): This.
15739 (vulcan_regmove_cost): Rename to ...
15740 (thunderx2t99_regmove_cost): This.
15741 (vulcan_vector_cost): Rename to ...
15742 (thunderx2t99_vector_cost): this.
15743 (vulcan_branch_cost): Rename to ...
15744 (thunderx2t99_branch_cost): This.
15745 (vulcan_tunings): Rename to ...
15746 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
15747 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
15748
15749 2017-01-09 Martin Jambor <mjambor@suse.cz>
15750
15751 PR ipa/78365
15752 PR ipa/78599
15753 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
15754 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
15755 (propagate_vr_accross_jump_function): Use the above function for all
15756 value range computations for pass-through jump functions and type
15757 converasion from explicit value range values.
15758 (ipcp_propagate_stage): Do not attempt to deduce types of formal
15759 parameters from TYPE_ARG_TYPES.
15760 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
15761 (ipa_write_node_info): Stream type of the actual argument.
15762 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
15763
15764 2017-01-09 Martin Liska <mliska@suse.cz>
15765
15766 PR pch/78970
15767 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
15768 (lookup_compiler): Do not show error message with have_E.
15769
15770 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15771
15772 PR tree-optimization/78938
15773 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
15774 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
15775 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
15776 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
15777 fixes.
15778
15779 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15780
15781 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
15782 is const0_rtx.
15783
15784 2017-01-09 Richard Biener <rguenther@suse.de>
15785
15786 PR tree-optimization/78997
15787 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
15788 name condition properly.
15789
15790 2017-01-09 Richard Biener <rguenther@suse.de>
15791
15792 PR debug/79000
15793 * dwarf2out.c (is_cxx): New overload with context.
15794 (is_naming_typedef_decl): Use it.
15795
15796 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15797
15798 * invoke.texi (Option Summary): Correct spacing in option lists
15799 and add line breaks to fix over-long lines.
15800
15801 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15802
15803 PR middle-end/17660
15804
15805 * extend.texi (Common Variable Attributes): Add xref to GCC
15806 Internals manual to explain mode attribute keywords.
15807
15808 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15809
15810 PR other/16519
15811 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
15812 and Preprocessor Options.
15813 (Options for Linking): Document -pthread here....
15814 (RS/6000 and PowerPC Options): ...not here.
15815 (Solaris 2 Options): ...or here.
15816 * doc/cppopts.texi: Document -pthread.
15817
15818 2017-01-08 Martin Sebor <msebor@redhat.com>
15819
15820 PR middle-end/77708
15821 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
15822 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
15823 New member functions.
15824 (format_directive): Used them.
15825 (add_bytes): Same.
15826 (pass_sprintf_length::handle_gimple_call): Same.
15827 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
15828 to avoid truncation for any argument.
15829 (extract_affine_mul): Same.
15830 * tree.c (get_file_function_name): Same.
15831
15832 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15833
15834 PR middle-end/77484
15835 * predict.def (PRED_INDIR_CALL): Set to 86.
15836
15837 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15838
15839 PR preprocessor/54124
15840 * doc/cppopts.texi: Reformat -d subtable to list the full name
15841 of the options. Add cross-reference to the docs for the general
15842 compiler -d options.
15843 * doc/invoke.texi (Developer Options): Add cross-reference to the
15844 preprocessor-specific -d option documentation.
15845
15846 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15847
15848 PR preprocessor/13498
15849 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
15850 redudant material, and reflect new command-line options.
15851 (System Headers): Likewise.
15852
15853 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15854
15855 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
15856 -isystem, and -idirafter. Copy-edit.
15857 * doc/cppopts.texi: Copy-edit. Remove contradiction about
15858 default for -ftrack-macro-expansion. Delete obsolete and
15859 badly-formatted implementation details about -fdebug-cpp output.
15860 * doc/cppwarnopts.texi: Copy-edit.
15861
15862 2017-01-07 David Malcolm <dmalcolm@redhat.com>
15863
15864 PR c++/72803
15865 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
15866 that the transition from a max line width >= 1<<10 to narrower
15867 lines works correctly.
15868
15869 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
15870
15871 * doc/options.texi (PerFunction): New.
15872 * opt-functions.awk (switch_flags): Map both Optimization and
15873 PerFunction to CL_OPTIMIZATION.
15874 * opth-gen.awk: Test for PerFunction flag along with
15875 Optimization.
15876 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
15877 it only when the latter is present. Skip those that don't in
15878 the hash function generator.
15879 * common.opt (fvar-tracking): Mark as PerFunction instead of
15880 Optimization.
15881 (fvar-tracking-assignments): Likewise.
15882 (fvar-tracking-assignments-toggle): Likewise.
15883 (fvar-tracking-uninit): Likewise.
15884
15885 2017-01-07 Jakub Jelinek <jakub@redhat.com>
15886
15887 PR translation/79018
15888 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
15889 the and store.
15890
15891 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
15892
15893 PR target/57583
15894 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
15895 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
15896 TARGET_LONG_JUMP_TABLE_OFFSETS.
15897 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
15898 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
15899 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
15900 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
15901 * config/m68k/m68k.md (tablejump expander): Likewise.
15902 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
15903 TARGET_LONG_JUMP_TABLE_OFFSETS.
15904 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
15905 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
15906
15907 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
15908 David Holsgrove <david.holsgrove@xilinx.com>
15909
15910 * common/config/microblaze/microblaze-common.c
15911 (TARGET_EXCEPT_UNWIND_INFO): Remove.
15912 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
15913 New prototype.
15914 * config/microblaze/microblaze.c (microblaze_must_save_register)
15915 (microblaze_expand_epilogue, microblaze_return_addr): Handle
15916 calls_eh_return.
15917 (microblaze_eh_return): New function.
15918 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
15919 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
15920 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
15921 * config/microblaze/microblaze.md (eh_return): New pattern.
15922
15923 2017-01-06 Jakub Jelinek <jakub@redhat.com>
15924
15925 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
15926 GCC_DIAGNOSTIC_STRINGIFY): Define.
15927
15928 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
15929
15930 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15931
15932 * config/arm/arm.md (<mcrr>): New.
15933 (<mrrc>): New.
15934 * config/arm/arm.c (arm_arch5te): New.
15935 (arm_option_override): Set arm_arch5te.
15936 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
15937 and mrrc2.
15938 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
15939 (arm_mcrr_qualifiers): ... this. New.
15940 (MRRC_QUALIFIERS): Define to...
15941 (arm_mrrc_qualifiers): ... this. New.
15942 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
15943 __arm_mrrc2): New.
15944 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
15945 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
15946 (MRRCI, mrrc, MRRC): New.
15947 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
15948 VUNSPEC_MRRC2): New.
15949
15950 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15951
15952 * config/arm/arm.md (<mcr>): New.
15953 (<mrc>): New.
15954 * config/arm/arm.c (arm_coproc_builtin_available): Add
15955 support for mcr, mrc, mcr2 and mrc2.
15956 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
15957 (arm_mcr_qualifiers): ... this. New.
15958 (MRC_QUALIFIERS): Define to ...
15959 (arm_mrc_qualifiers): ... this. New.
15960 (MCR_QUALIFIERS): Define to ...
15961 (arm_mcr_qualifiers): ... this. New.
15962 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
15963 __arm_mrc2): New.
15964 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
15965 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
15966 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
15967 VUNSPEC_MRC2): New.
15968
15969 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15970
15971 * config/arm/arm.md (*ldc): New.
15972 (*stc): New.
15973 (<ldc>): New.
15974 (<stc>): New.
15975 * config/arm/arm.c (arm_coproc_builtin_available): Add
15976 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
15977 (arm_coproc_ldc_stc_legitimate_address): New.
15978 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
15979 'qualifier_const_pointer'.
15980 (LDC_QUALIFIERS): Define to...
15981 (arm_ldc_qualifiers): ... this. New.
15982 (STC_QUALIFIERS): Define to...
15983 (arm_stc_qualifiers): ... this. New.
15984 * config/arm/arm-protos.h
15985 (arm_coproc_ldc_stc_legitimate_address): New.
15986 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
15987 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
15988 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
15989 stc2, stcl, stc2l): New.
15990 * config/arm/constraints.md (Uz): New.
15991 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
15992 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
15993 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
15994 VUNSPEC_STC2L): New.
15995
15996 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15997
15998 * config/arm/arm.md (<cdp>): New.
15999 * config/arm/arm.c (neon_const_bounds): Rename this ...
16000 (arm_const_bounds): ... this.
16001 (arm_coproc_builtin_available): New.
16002 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
16003 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
16004 (CDP_QUALIFIERS): Define to...
16005 (arm_cdp_qualifiers): ... this. New.
16006 (void_UP): Define.
16007 (arm_expand_builtin_args): Add case for 6 arguments.
16008 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
16009 (arm_const_bounds): ... this.
16010 (arm_coproc_builtin_available): New.
16011 * config/arm/arm_acle.h (__arm_cdp): New.
16012 (__arm_cdp2): New.
16013 * config/arm/arm_acle_builtins.def (cdp): New.
16014 (cdp2): New.
16015 * config/arm/iterators.md (CDPI,CDP,cdp): New.
16016 * config/arm/neon.md: Rename all 'neon_const_bounds' to
16017 'arm_const_bounds'.
16018 * config/arm/types.md (coproc): New.
16019 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
16020 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
16021 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
16022 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
16023
16024 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16025
16026 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
16027 (UBINOP_QUALIFIERS): New.
16028 (si_UP): Define.
16029 (acle_builtin_data): New. Change comment.
16030 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
16031 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
16032 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
16033 arm_acle_builtins.def.
16034 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
16035 (arm_init_acle_builtins): New.
16036 (CRC32_BUILTIN): Remove.
16037 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
16038 crc32cb, crc32ch and crc32cw.
16039 (arm_init_crc32_builtins): Remove.
16040 (arm_init_builtins): Use arm_init_acle_builtins rather
16041 than arm_init_crc32_builtins.
16042 (arm_expand_acle_builtin): New.
16043 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
16044 * config/arm/arm_acle_builtins.def: New.
16045
16046 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16047
16048 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
16049 (arm_builtin_datum): ... this.
16050 (arm_init_neon_builtin): Rename to ...
16051 (arm_init_builtin): ... this. Add a new parameters PREFIX
16052 and USE_SIG_IN_NAME.
16053 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
16054 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
16055 'arm_builtin_datum'.
16056 (arm_init_vfp_builtins): Likewise.
16057 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
16058 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
16059 (arm_expand_neon_args): Rename to ...
16060 (arm_expand_builtin_args): ... this. Rename builtin_arg
16061 enum values and differentiate between ARG_BUILTIN_MEMORY
16062 and ARG_BUILTIN_NEON_MEMORY.
16063 (arm_expand_neon_builtin_1): Rename to ...
16064 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
16065 values, arm_expand_builtin_args and add bool parameter NEON.
16066 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
16067 (arm_expand_vfp_builtin): Likewise.
16068 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
16069
16070 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16071
16072 PR middle-end/77484
16073 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
16074 * predict.c (tree_estimate_probability_bb): Reverse direction of
16075 polymorphic call predictor.
16076
16077 2017-01-06 David Malcolm <dmalcolm@redhat.com>
16078
16079 * passes.c (execute_one_pass): Split out pass-skipping logic into...
16080 (determine_pass_name_match): ...this new function and...
16081 (should_skip_pass_p): ...this new function.
16082
16083 2017-01-06 Nathan Sidwell <nathan@acm.org>
16084
16085 * ipa-visibility.c (function_and_variable_visibility): Reformat
16086 comments and long lines. Remove extrneous if.
16087 * symtab.c (symtab_node::make_decl_local): Fix code format.
16088 (symtab_node::set_section_for_node): Fix comment typo.
16089
16090 2017-01-06 Martin Liska <mliska@suse.cz>
16091
16092 PR bootstrap/79003
16093 * lra-constraints.c: Rename invariant to lra_invariant.
16094 * predict.c (set_even_probabilities): Initialize e to NULL.
16095
16096 2017-01-05 Martin Sebor <msebor@redhat.com>
16097
16098 PR tree-optimization/78910
16099 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
16100 (format_integer): Correct off-by-one error in the handling
16101 of precision with negative numbers in signed conversions..
16102
16103 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
16104
16105 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
16106
16107 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16108
16109 PR tree-optimization/71016
16110 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
16111 factor_out_conditional_conversion. Formatting fix.
16112 (factor_out_conditional_conversion): Add cond_stmt argument.
16113 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
16114 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
16115 Formatting fix.
16116
16117 2017-01-05 David Malcolm <dmalcolm@redhat.com>
16118
16119 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
16120 read-rtl-function.o, and selftest-rtl.o.
16121 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
16122 (selftest::aarch64_test_loading_full_dump): New function.
16123 (selftest::aarch64_run_selftests): New function.
16124 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
16125 selftest::aarch64_run_selftests.
16126 * config/i386/i386.c
16127 (selftest::ix86_test_loading_dump_fragment_1): New function.
16128 (selftest::ix86_test_loading_call_insn): New function.
16129 (selftest::ix86_test_loading_full_dump): New function.
16130 (selftest::ix86_test_loading_unspec): New function.
16131 (selftest::ix86_run_selftests): Call the new functions.
16132 * emit-rtl.c (maybe_set_max_label_num): New function.
16133 * emit-rtl.h (maybe_set_max_label_num): New decl.
16134 * function.c (instantiate_decls): Guard call to
16135 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
16136 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
16137 "static".
16138 * gensupport.c (gen_reader::gen_reader): Pass "false"
16139 for new "compact" param of rtx_reader.
16140 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
16141 rather than an empty string for NULL strings.
16142 * read-md.c: Potentially include config.h rather than bconfig.h.
16143 Wrap include of errors.h with #ifdef GENERATOR_FILE.
16144 (have_error): New global, copied from errors.c.
16145 (md_reader::read_name): Rename to...
16146 (md_reader::read_name_1): ...this, adding "out_loc" param,
16147 and converting "missing name or number" to returning false, rather
16148 than failing.
16149 (md_reader::read_name): Reimplement in terms of read_name_1.
16150 (md_reader::read_name_or_nil): New function.
16151 (md_reader::read_string): Handle "(nil)" by returning NULL.
16152 (md_reader::md_reader): Add new param "compact".
16153 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
16154 (md_reader::read_file): New method.
16155 * read-md.h (md_reader::md_reader): Add new param "compact".
16156 (md_reader::read_file): New method.
16157 (md_reader::is_compact): New accessor.
16158 (md_reader::read_name): Convert return type from void to file_location.
16159 (md_reader::read_name_or_nil): New decl.
16160 (md_reader::read_name_1): New decl.
16161 (md_reader::m_compact): New field.
16162 (noop_reader::noop_reader): Pass "false" for new "compact" param
16163 of rtx_reader.
16164 (rtx_reader::rtx_reader): Add new "compact" param.
16165 (rtx_reader::read_rtx_operand): Make virtual and convert return
16166 type from void to rtx.
16167 (rtx_reader::read_until): New decl.
16168 (rtx_reader::handle_any_trailing_information): New virtual function.
16169 (rtx_reader::postprocess): New virtual function.
16170 (rtx_reader::finalize_string): New virtual function.
16171 (rtx_reader::m_in_call_function_usage): New field.
16172 (rtx_reader::m_reuse_rtx_by_id): New field.
16173 * read-rtl-function.c: New file.
16174 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
16175 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
16176 (selftest::verify_three_block_rtl_cfg): New decl.
16177 * read-rtl-function.h: New file.
16178 * read-rtl.c: Potentially include config.h rather than bconfig.h.
16179 For host, include function.h, memmodel.h, and emit-rtl.h.
16180 (one_time_initialization): New function.
16181 (struct compact_insn_name): New struct.
16182 (compact_insn_names): New array.
16183 (find_code): Handle insn codes in compact dumps.
16184 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
16185 (bind_subst_iter_and_attr): Likewise.
16186 (add_condition_to_string): Likewise.
16187 (add_condition_to_rtx): Likewise.
16188 (apply_attribute_uses): Likewise.
16189 (add_current_iterators): Likewise.
16190 (apply_iterators): Likewise.
16191 (initialize_iterators): Guard usage of apply_subst_iterator with
16192 #ifdef GENERATOR_FILE.
16193 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
16194 (md_reader::read_mapping): Likewise.
16195 (add_define_attr_for_define_subst): Likewise.
16196 (add_define_subst_attr): Likewise.
16197 (read_subst_mapping): Likewise.
16198 (check_code_iterator): Likewise.
16199 (rtx_reader::read_rtx): Likewise. Move one-time initialization
16200 logic to...
16201 (one_time_initialization): New function.
16202 (rtx_reader::read_until): New method.
16203 (read_flags): New function.
16204 (parse_reg_note_name): New function.
16205 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
16206 Handle reuse_rtx ids.
16207 Wrap iterator lookup within #ifdef GENERATOR_FILE.
16208 Add parsing support for RTL dumps, mirroring the special-cases in
16209 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
16210 values, and calling handle_any_trailing_information.
16211 (rtx_reader::read_rtx_operand): Convert return type from void
16212 to rtx, returning return_rtx. Handle case 'e'. Call
16213 finalize_string on XSTR and XTMPL fields.
16214 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
16215 "(nil)" values were omitted. Call the postprocess vfunc on the
16216 return_rtx.
16217 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
16218 class ctor. Initialize m_in_call_function_usage. Call
16219 one_time_initialization.
16220 * rtl-tests.c (selftest::test_uncond_jump): Call
16221 set_new_first_and_last_insn.
16222 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
16223 * selftest-rtl.c: New file.
16224 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
16225 (selftest::get_insn_by_uid): New decl.
16226 * selftest-run-tests.c (selftest::run_tests): Call
16227 read_rtl_function_c_tests.
16228 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
16229 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
16230 dumps.
16231
16232 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
16233
16234 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
16235 operands in a special way. Assert that pos+len <= mode precision.
16236
16237 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16238
16239 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
16240 3 argument Alias with unlimited for the negative form.
16241 (fno-vect-cost-model): Removed.
16242
16243 2017-01-05 Martin Liska <mliska@suse.cz>
16244
16245 * hsa-gen.c (gen_hsa_divmod): New function.
16246 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
16247
16248 2017-01-05 Martin Liska <mliska@suse.cz>
16249
16250 PR pch/78970
16251 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
16252 header.
16253
16254 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16255
16256 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
16257 small constant length operands.
16258
16259 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16260
16261 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
16262 between loop iterations.
16263
16264 2017-01-05 Martin Liska <mliska@suse.cz>
16265
16266 PR sanitizer/78815
16267 * gimplify.c (gimplify_decl_expr): Compare to
16268 asan_poisoned_variables instread of checking flags.
16269 (gimplify_target_expr): Likewise.
16270 (gimplify_expr): Likewise.
16271 (gimplify_function_tree): Conditionally initialize
16272 asan_poisoned_variables.
16273
16274 2017-01-04 Jeff Law <law@redhat.com>
16275
16276 PR tree-optimizatin/78812
16277 * rtl.h (contains_mem_rtx_p): Prototype.
16278 * ifcvt.c (containts_mem_rtx_p): Move from here to...
16279 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
16280 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
16281 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
16282 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
16283
16284 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16285
16286 * input.c (assert_char_at_range): Default-initialize actual_range.
16287
16288 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16289
16290 * df-scan.c (df_ref_create_structure): Make regno unsigned,
16291 to match the caller.
16292
16293 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16294
16295 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
16296 insns after final jump in test to emit dummy move.
16297
16298 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16299
16300 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
16301 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
16302
16303 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16304
16305 * multiple_target.c (create_dispatcher_calls): Init e_next.
16306 * tree-ssa-loop-split.c (split_loop): Init border.
16307 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
16308 scalar_type.
16309
16310 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
16311
16312 PR target/71977
16313 PR target/70568
16314 PR target/78823
16315 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
16316 (altivec_register_operand): Do not return true if the operand
16317 contains a SUBREG mixing SImode and SFmode.
16318 (vsx_register_operand): Likewise.
16319 (vsx_reg_sfsubreg_ok): New predicate.
16320 (vfloat_operand): Do not return true if the operand contains a
16321 SUBREG mixing SImode and SFmode.
16322 (vint_operand): Likewise.
16323 (vlogical_operand): Likewise.
16324 (gpc_reg_operand): Likewise.
16325 (int_reg_operand): Likewise.
16326 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
16327 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
16328 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
16329 SImode and SFmode.
16330 (rs6000_emit_move_si_sf_subreg): New helper function.
16331 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
16332 fixup SUBREGs involving SImode and SFmode.
16333 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
16334 numbers for the new peephole2 optimization.
16335 (peephole2 for SFmode unions): New peephole2 to optimize cases in
16336 the GLIBC math library that do AND/IOR/XOR operations on single
16337 precision floating point.
16338 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
16339 target macros to say whether we need to avoid SUBREGs mixing
16340 SImode and SFmode.
16341 (TARGET_ALLOW_SF_SUBREG): Likewise.
16342 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
16343 (UNSPEC_SI_FROM_SF): Likewise.
16344 (iorxor): Change spacing.
16345 (and_ior_xor): New iterator for AND, IOR, and XOR.
16346 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
16347 (movdi_from_sf_zero_ext): Likewise.
16348 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
16349 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
16350 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
16351 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
16352 (fms<mode>4): Likewise.
16353 (fnma<mode>4): Likewise.
16354 (fnms<mode>4): Likewise.
16355 (nfma<mode>4): Likewise.
16356 (nfms<mode>4): Likewise.
16357
16358 2017-01-04 Marek Polacek <polacek@redhat.com>
16359
16360 PR c++/64767
16361 * doc/invoke.texi: Document -Wpointer-compare.
16362
16363 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16364
16365 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
16366 RejectNegative.
16367
16368 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
16369 descriptions for -gdwarf-5 and emit them as uleb128 instead of
16370 2-byte data.
16371
16372 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
16373
16374 PR target/78056
16375 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
16376 documentation of the powerpc_popcntb_ok attribute.
16377 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16378 code to issue warning messages if a requested CPU configuration is
16379 not supported by the binary (assembler and loader) toolchain.
16380 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
16381 made to define a built-in function that has been disabled.
16382 (paired_init_builtins): Add assertion to prevent ICE if attempt is
16383 made to define a built-in function that has been disabled.
16384 (altivec_init_builtins): Add comment explaining why definition
16385 of the DST built-in functions is not preceded by an assertion
16386 check. Add assertions to prevent ICE if attempts are made to
16387 define an altivec predicate or an abs* built-in function that has
16388 been disabled.
16389 (htm_init_builtins): Add comment explaining why definition of the
16390 htm built-in functions is not preceded by an assertion check.
16391
16392 2017-01-04 Jeff Law <law@redhat.com>
16393
16394 PR tree-optimizatin/67955
16395 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
16396 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
16397 the points-to solution does not include pt_null. Use DECL_PT_UID
16398 unconditionally.
16399
16400 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
16401
16402 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
16403 Use gen_int_mode instead of gen_lopwart for const_int operands.
16404
16405 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16406
16407 PR tree-optimization/71563
16408 * match.pd: Simplify X << Y into X if Y is known to be 0 or
16409 out of range value - has low bits known to be zero.
16410
16411 2017-01-04 Alan Modra <amodra@gmail.com>
16412
16413 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
16414 * configure: Regenerate.
16415 * config.in: Regenerate.
16416
16417 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16418
16419 PR bootstrap/77569
16420 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
16421 a substring of the message, but strcmp with the whole message. Ifdef
16422 ENABLE_NLS, translate the message first using dgettext.
16423
16424 2017-01-03 Jeff Law <law@redhat.com>
16425
16426 PR tree-optimizatin/78856
16427 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
16428 (mark_threaded_blocks): Remove code to truncate thread paths that
16429 cross multiple loop headers. Instead invalidate the cached loop
16430 iteration information and handle case of a thread path walking
16431 into an irreducible region.
16432
16433 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16434
16435 PR target/78900
16436 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
16437 assertions. Add support for doing the signbit if the IEEE 128-bit
16438 floating point value is in a GPR.
16439 * config/rs6000/rs6000.md (Fsignbit): Delete.
16440 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
16441 Update the length attribute if the value is in a GPR.
16442 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
16443 the sign or zero extension instruction, since the value is always 0/1.
16444 (signbit<mode>2_dm2): Delete using <Fsignbit>.
16445
16446 PR target/78953
16447 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
16448 extracting SImode to a GPR register so that we can generate a
16449 store, limit the vector to be in a traditional Altivec register
16450 for the vextuwrx instruction.
16451
16452 2017-01-03 Ian Lance Taylor <iant@google.com>
16453
16454 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
16455
16456 2017-01-03 Martin Sebor <msebor@redhat.com>
16457
16458 PR tree-optimization/78696
16459 * gimple-ssa-sprintf.c (format_floating): Correct handling of
16460 precision. Use MPFR for %f for greater fidelity. Correct handling
16461 of %g.
16462 (pass_sprintf_length::compute_format_length): Set width and precision
16463 specified by asrerisk to void_node for vararg functions.
16464 (try_substitute_return_value): Adjust dump output.
16465
16466 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
16467
16468 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
16469
16470 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
16471
16472 * doc/invoke.texi (SPARC options): Document -mlra as the default.
16473 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
16474 -mlra/-mno-lra was passed to the compiler.
16475
16476 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
16477
16478 PR rtl-optimization/65618
16479 * emit-rtl.c (try_split): Move initialization of "before" and
16480 "after" to just before the call to emit_insn_after_setloc.
16481
16482 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
16483
16484 * doc/md.texi (Standard Names): Remove reference to Java frontend.
16485
16486 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
16487
16488 * dwarf2out.c (gen_enumeration_type_die): When
16489 -gno-strict-dwarf, add a DW_AT_encoding attribute.
16490
16491 2017-01-03 Jakub Jelinek <jakub@redhat.com>
16492
16493 PR tree-optimization/78965
16494 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
16495 Change first argument from const call_info & to call_info &. For %n
16496 set info.nowrite to false.
16497
16498 PR middle-end/78901
16499 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
16500 possibly throwing calls.
16501
16502 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
16503 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
16504 and fns handling, rather than in a separate case SSA_NAME.
16505
16506 2017-01-02 Jeff Law <law@redhat.com>
16507
16508 * config/darwin-driver.c (darwin_driver_init): Const-correctness
16509 fixes for first_period and second_period variables.
16510
16511 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
16512
16513 PR target/78967
16514 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
16515 (*insvqi_1): New insn pattern.
16516 (*insvqi_1_mem_rex64): Ditto.
16517 (*insvqi_2): Ditto.
16518 (*insvqi_3): Rename from *insvqi.
16519
16520 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
16521
16522 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
16523
16524 * doc/cfg.texi (Edges): Remove reference to Java.
16525 (Maintaining the CFG): Ditto.
16526
16527 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16528
16529 PR middle-end/77674
16530 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
16531 transparent aliases.
16532
16533 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16534
16535 PR middle-end/77484
16536 * predict.def (PRED_CALL): Update hitrate.
16537 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
16538 * predict.c (tree_estimate_probability_bb): Split CALL predictor
16539 into direct/indirect/polymorphic variants.
16540
16541 2017-01-01 Jakub Jelinek <jakub@redhat.com>
16542
16543 Update copyright years.
16544
16545 * gcc.c (process_command): Update copyright notice dates.
16546 * gcov-dump.c (print_version): Ditto.
16547 * gcov.c (print_version): Ditto.
16548 * gcov-tool.c (print_version): Ditto.
16549 * gengtype.c (create_file): Ditto.
16550 * doc/cpp.texi: Bump @copying's copyright year.
16551 * doc/cppinternals.texi: Ditto.
16552 * doc/gcc.texi: Ditto.
16553 * doc/gccint.texi: Ditto.
16554 * doc/gcov.texi: Ditto.
16555 * doc/install.texi: Ditto.
16556 * doc/invoke.texi: Ditto.
16557 \f
16558 Copyright (C) 2017 Free Software Foundation, Inc.
16559
16560 Copying and distribution of this file, with or without modification,
16561 are permitted in any medium without royalty provided the copyright
16562 notice and this notice are preserved.